boyuehasfj-vue3/boyuehasfj-admin/assets/mybatis-input--eiMLqjr.js

2 lines
3.3 KiB
JavaScript
Raw Permalink Normal View History

2025-06-02 21:34:56 +08:00
import{_ as e,aH as l,aI as t,r as a,a3 as s,D as r,c as n,o as u,F as o,f as i,R as p,aJ as c,aE as d,k as f,I as h,J as v}from"./index-C-c3zR6K.js";const g=["innerHTML"],m=e({__name:"mybatis-input",props:l({height:{type:String,default:"200px"},width:{type:String,default:"100%"},mode:{type:String,default:"input"}},{modelValue:{},modelModifiers:{}}),emits:l(["change"],["update:modelValue"]),setup(e,{emit:l}){const m=t(e,"modelValue"),b=e,y=a("200px"),w=a("100%"),L=l,T=a(0),_=a({}),x=a({});function q(e){let l=[];for(let t=0;t<e.length;t++){let a=e[t];if("("===a||"{"===a||"["===a||"<"===a)l.push(a);else if(")"===a||"}"===a||"]"===a||">"===a){let e=l.pop();if(")"===a&&"("!==e||"}"===a&&"{"!==e||"]"===a&&"["!==e||">"===a&&"<"!==e)return!1}}return 0===l.length}const S=()=>{const e=(""+m.value).split("\n");let l=0,t=null;function a(e){_.value[l]=e,e=e.replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/\n/g,"<br/>").replace(/\s/g,"&nbsp;"),x.value[l]=function(e){const l=[{filter:/(?!=[\s]|[&nbsp;])?(count\(|date_format\(|find_in_set\()(.*?)(\))(?!=[\s]|[&nbsp;])?/gi,replace(e){return e.replace(this.filter,'<span class="code-sql">$1<span class="code-fun-params">$2</span>$3</span>')}},{filter:new RegExp("(?<=^|&nbsp;|\\s)(select|where|insert|update|delete|create|alter|drop|database|table|from|order|group|by|having|join|into|values|like|between|null|not|and|or|in|bigint|varchar|date|timestamp|union|all|as)(?=\\s|&nbsp;|$)","gi"),replace(e){return e.replace(this.filter,'<span class="code-sql">$1</span>')}},{filter:/(&lt;.*?&gt;)/g,replace(e){return e.replace(this.filter,'<span class="code-tag">$1</span>')}},{filter:/(&lt;\/.*?&gt;)/g,replace(e){return e.replace(this.filter,'<span class="code-tag">$1</span>')}},{filter:/(#{.*?})/g,replace(e){return e.replace(this.filter,'<span class="code-insert-params">$1</span>')}}];for(let t of l)t.filter.test(e)&&(e=t.replace(e));return e}(e),l+=1}for(let s=0;s<e.length;s++)t=null==t?e[s]:t+"\n"+e[s],q(t)&&t!=x[l]&&(a(t),t=null);(T.value=l)&&(T.value=l)};s((()=>m.value),(()=>{S(),L("change",{texts:_.value,htmls:x.value,length:T.value,scrollTop:$.value.scrollTop,scrollLeft:$.value.scrollLeft})}));const $=a(null),V=a(null);function k(e){V.value.scrollTop=$.value.scrollTop,V.value.scrollLeft=$.value.scrollLeft,L("change",{texts:_.value,htmls:x.value,length:T.value,scrollTop:$.value.scrollTop,scrollLeft:$.value.scrollLeft})}return r((()=>{new MutationObserver(((e,l)=>{y.value=getComputedStyle($.value).getPropertyValue("height"),w.value=getComputedStyle($.value).getPropertyValue("width")})).observe($.value,{attributes:!0,childList:!1,subtree:!0,attributeFilter:["style"],attributeOldValue:!0}),S(),y.value=b.height,w.value=b.width,L("change",{texts:_.value,htmls:x.value,length:T.value,scrollTop:$.value.scrollTop,scrollLeft:$.value.scrollLeft})})),(l,t)=>(u(),n("div",{class:"sql-wrap",style:d({height:f(y),width:f(w)})},[o(i("textarea",{class:"sql-input",ref_key:"sqlInput",ref:$,onScroll:k,"onUpdate:modelValue":t[0]||(t[0]=e=>m.value=e),style:d({height:f(y),width:f(w)})},null,36),[[p,"input"===e.mode],[c,m.value]]),i("div",{class:"sql-show",ref_key:"sqlShow",ref:V,onScroll:k,style:d({height:f(y),width:f(w)})},[(u(!0),n(h,null,v(f(T),(e=>(u(),n("div",{class:"sql-line",key:e,innerHTML:f(x)[e-1]},null,8,g)))),128))],36)],4))}},[["__scopeId","data-v-6a1de948"]]);export{m as default};