st-comp 0.0.223 → 0.0.225

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,8 +1,2 @@
1
- "use strict";require("./base-ef747d02.cjs");const L=require("./el-button-eec58cff.cjs");require("./el-tag-a33c4b22.cjs");const R=require("./el-select-d8d91db1.cjs");require("./el-scrollbar-bc3f790d.cjs");require("./el-popper-b6c99b28.cjs");const P=require("./el-popconfirm-70a976bf.cjs");require("./el-popover-0ea8fbf8.cjs");const e=require("vue"),_=require("./index-098c2447.cjs"),te=require("./el-divider-4713d74c.cjs"),oe=require("./el-dialog-ae86edb8.cjs");require("./el-overlay-9e34965f.cjs");const ne=require("./el-empty-1697ded8.cjs"),j=require("./el-input-7fd293af.cjs"),le=require("./index-8901a38c.cjs"),g=require("./el-message-5e6a6be9.cjs"),ae=require("./el-message-box-c10adb52.cjs"),A=require("./el-form-item-c3fe189b.cjs"),W=require("./_plugin-vue_export-helper-f246444f.cjs"),se=require("./index-298075cf.cjs");require("./index-f1c702f6.cjs");require("./use-global-config-30d7d8ce.cjs");require("./use-form-common-props-fd9b61a0.cjs");require("./index-9780a537.cjs");require("./index-bb833443.cjs");require("./index-c108567d.cjs");require("./index-eea0bcb3.cjs");require("./index-f3562b52.cjs");require("./castArray-35947698.cjs");require("./index-11547a0c.cjs");require("./scroll-b108dabd.cjs");require("./debounce-62f5b6e8.cjs");require("./vnode-b906ae6d.cjs");require("./typescript-b63f8e83.cjs");require("./config-provider-a584d81e.cjs");require("./validator-1b8a6128.cjs");require("./_initCloneObject-52b6a510.cjs");const U=u=>(e.pushScopeId("data-v-cbbcbba3"),u=u(),e.popScopeId(),u),re={class:"custom-header"},ce={class:"left"},ie=["id"],ue={class:"right"},de={class:"manage-dialog-body"},fe={class:"func-list"},me={class:"search"},pe=U(()=>e.createElementVNode("span",null,"输入函数关键字",-1)),_e=["onClick"],ve={class:"icon-box"},Ve={class:"rule-form"},xe={class:"header"},he=U(()=>e.createElementVNode("span",null,"函数名称:",-1)),Ne={class:"right"},ge=U(()=>e.createElementVNode("div",{class:"tip-box"},"说明: 公式里可以使用变量, 变量名命名格式: ${变量名}, 后续可在应用函数时填写具体值, 系统会自动换算",-1)),Ee={class:"custom-header"},Ce={class:"left"},ye=["id"],we={class:"right"},ke={class:"dialog-footer"},be={class:"custom-header"},qe={class:"left"},$e=["id"],Se={class:"right"},De={class:"content"},Me={class:"dialog-footer"},Be={__name:"ManageDialog",props:{data:{type:Array,default:()=>[]}},emits:["refreshData"],setup(u,{expose:I,emit:M}){const{request:E}=e.inject("stConfig"),d=e.ref(null),C=e.ref(null),v=M,V=u,x=e.ref(!1),y=e.reactive({save:!1,test:!1}),w=e.ref(null),h=e.computed(()=>w.value?V.data.filter(o=>o.funcName.includes(w.value)):V.data),l=e.reactive({id:null,funcName:"",funcExpression:""}),a=e.ref(""),c=e.reactive({result:null,detail:"",code:""}),k=e.ref(!1),N=e.ref(!1),S=()=>{var o;Object.assign(l,{id:null,funcName:"",funcExpression:""}),a.value="",(o=d.value)==null||o.setValue(l.funcExpression)},$=o=>{var t;Object.assign(l,{id:o.id,funcName:o.funcName,funcExpression:o.funcExpression}),a.value="",(t=d.value)==null||t.setValue(l.funcExpression)},f=o=>{var t;Object.assign(l,{id:null,funcName:`${o.funcName}-复制`,funcExpression:o.funcExpression}),a.value="",(t=d.value)==null||t.setValue(l.funcExpression)},B=async o=>{var t;o.id===l.id&&(Object.assign(l,{id:null,funcName:"",funcExpression:""}),(t=d.value)==null||t.setValue(l.funcExpression)),await E.post("/common/qt/deleteSearchFunctionById",{id:o.id}),v("refreshData")},G=le.G(async()=>{try{if(y.save=!0,l.funcExpression=d.value.getValue(),!l.funcName)return g.ElMessage.error("函数名称不可为空");if(!l.funcExpression)return g.ElMessage.error("函数内容不可为空");await E.post("/common/qt/saveOrUpdateSearchFunction",l),g.ElMessage.success("操作成功"),v("refreshData"),l.id||S()}finally{y.save=!1}}),H=o=>new Promise(t=>{const s=e.ref(o.reduce((i,p)=>(i[p]="",i),{})),r=e.ref({}),m=()=>{let i=!0;const p={};return o.forEach(b=>{var F;(F=s.value[b])!=null&&F.trim()||(p[b]=`请输入${b}的值`,i=!1)}),r.value=p,i},D={setup(){return()=>e.h("div",[e.h(A.ElForm,{model:s.value},()=>o.map(i=>e.h(A.ElFormItem,{label:`${i}: `,prop:i,error:r.value[i],"label-width":"90px"},()=>e.h(j.ElInput,{modelValue:s.value[i],"onUpdate:modelValue":p=>{s.value[i]=p,r.value[i]&&delete r.value[i]},placeholder:`请输入 ${i} 的值`,status:r.value[i]?"error":""}))))])}};ae.ElMessageBox({title:"填写变量值用于接口测试",message:e.h(D),showCancelButton:!0,confirmButtonText:"确定",cancelButtonText:"取消",customClass:"variable-input-dialog",beforeClose:async(i,p,b)=>{i!=="confirm"&&(t(!1),b()),await e.nextTick(),m()&&(t({...s.value}),b())}}).catch(()=>t(!1))}),K=o=>{const t=/\$\{([^}]*)\}/g,s=[];let r;for(;(r=t.exec(o))!==null;)s.push(r[1]);return[...new Set(s)]},J=(o,t)=>o.replace(/\$\{([^}]*)\}/g,(s,r)=>t[r]!==void 0?t[r]:s),Q=o=>o?o.split(`
2
- `).reduce((t,s)=>{const r=s.trim().replace(/\s+/gi," ").split(" ")[0];return r&&t.push(r),t},[]):[],T=async o=>{switch(o){case"open":{if(!d.value.getValue())return g.ElMessage.error("函数内容不可为空");k.value=!0;break}case"submit":{let t=d.value.getValue();if(!t)return g.ElMessage.error("函数内容不可为空");if(/\$\{[^}]*\}/.test(t)){const s=K(t),r=await H(s);if(!r)return;t=J(t,r)}k.value=!1;try{y.test=!0;const s={codes:Q(a.value),factorSelectExpr:t},{body:r}=await E.post("/common/qt/testFactorSelect",s),{result:m,detail:D}=r;Object.assign(c,{result:m,detail:D,code:s.factorSelectExpr}),m===1?g.ElMessage.success("测试通过"):(g.ElMessage.error("测试未能通过"),N.value=!0)}finally{y.test=!1}break}case"log":{if(c.result===null)return g.ElMessage.warning("请先进行测试, 等待测试完成后可查看日志");N.value=!0;break}}},X=()=>{C.value.open(d.value)};return e.watch(()=>x.value,o=>{o||(C.value.close(),k.value=!1,N.value=!1)}),I({open:o=>{x.value=!0,e.nextTick(()=>{var t;if((t=d.value)==null||t.resize(),w.value=null,Object.assign(c,{result:null,detail:"",code:""}),o){const s={id:o.id,funcName:o.funcName,funcExpression:o.funcExpression};$(s)}else h.value.length?$(h.value[0]):S()})}}),(o,t)=>{const s=_.ElIcon,r=j.ElInput,m=L.ElButton,D=P.ElPopconfirm,i=ne.ElEmpty,p=se.ElScrollbar,b=e.resolveComponent("st-monacoEditor"),F=e.resolveComponent("st-varSelectDialog"),Y=e.resolveComponent("st-varietyAutoComplete"),O=oe.ElDialog,Z=te.ElDivider;return e.openBlock(),e.createBlock(O,{"modal-class":"manage-dialog",modelValue:x.value,"onUpdate:modelValue":t[13]||(t[13]=n=>x.value=n),width:"1600","align-center":"","append-to-body":"",overflow:"",modal:!1,"modal-penetrable":!0,"show-close":!1},{header:e.withCtx(({titleId:n,titleClass:q})=>[e.createElementVNode("div",re,[e.createElementVNode("div",ce,[e.createElementVNode("span",{id:n,class:e.normalizeClass(q)}," 自定义函数管理面板 ",10,ie)]),e.createElementVNode("div",ue,[e.createVNode(s,{onClick:t[0]||(t[0]=z=>x.value=!1)},{default:e.withCtx(()=>[e.createVNode(e.unref(_.close_default))]),_:1})])])]),default:e.withCtx(()=>[e.createElementVNode("div",de,[e.createElementVNode("div",fe,[e.createElementVNode("div",me,[pe,e.createVNode(r,{modelValue:w.value,"onUpdate:modelValue":t[1]||(t[1]=n=>w.value=n),clearable:""},null,8,["modelValue"]),e.createVNode(m,{type:"primary",onClick:S},{default:e.withCtx(()=>[e.createTextVNode("新建")]),_:1})]),e.createVNode(p,{class:"list"},{default:e.withCtx(()=>[h.value.length?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(h.value,n=>(e.openBlock(),e.createElementBlock("div",{key:n.id,class:e.normalizeClass([{"active-list-item":l.id===n.id},"list-item"])},[e.createElementVNode("span",{class:"func-name",onClick:q=>$(n)},e.toDisplayString(n.funcName),9,_e),e.createElementVNode("div",ve,[e.createVNode(s,null,{default:e.withCtx(()=>[e.createVNode(e.unref(_.document_copy_default),{onClick:q=>f(n)},null,8,["onClick"])]),_:2},1024),e.createVNode(D,{title:"确认是否删除?","confirm-button-text":"确认","cancel-button-text":"取消",onConfirm:q=>B(n)},{reference:e.withCtx(()=>[e.createVNode(s,{onClick:e.withModifiers(()=>{},["stop"])},{default:e.withCtx(()=>[e.createVNode(e.unref(_.delete_default))]),_:1})]),_:2},1032,["onConfirm"])])],2))),128)):(e.openBlock(),e.createBlock(i,{key:1,description:"暂无数据"}))]),_:1})]),e.createElementVNode("div",Ve,[e.createElementVNode("div",xe,[he,e.createVNode(r,{modelValue:l.funcName,"onUpdate:modelValue":t[2]||(t[2]=n=>l.funcName=n)},null,8,["modelValue"]),e.createElementVNode("div",Ne,[e.createVNode(m,{type:"primary",onClick:e.unref(G),loading:y.save},{default:e.withCtx(()=>[e.createTextVNode(" 保存 ")]),_:1},8,["onClick","loading"]),e.createVNode(m,{loading:y.test,onClick:t[3]||(t[3]=n=>T("open"))},{default:e.withCtx(()=>[e.createTextVNode(" 测试 ")]),_:1},8,["loading"]),e.createVNode(m,{icon:e.unref(_.document_default),onClick:t[4]||(t[4]=n=>T("log"))},{default:e.withCtx(()=>[e.createTextVNode(" 日志明细 ")]),_:1},8,["icon"]),e.createVNode(m,{type:"primary",onClick:X},{default:e.withCtx(()=>[e.createTextVNode(" 变量选择器 ")]),_:1})])]),ge,e.createVNode(b,{ref_key:"stMonacoEditorRef",ref:d,language:"lua",style:{width:"100%",height:"calc(80vh - 75px)"}},null,512)])]),e.createVNode(F,{ref_key:"stVarSelectDialogRef",ref:C},null,512),e.createVNode(O,{"modal-class":"test-variety-dialog",modelValue:k.value,"onUpdate:modelValue":t[9]||(t[9]=n=>k.value=n),width:"500","align-center":"","append-to-body":"",overflow:"",modal:!1,"modal-penetrable":!0,"show-close":!1},{header:e.withCtx(({titleId:n,titleClass:q})=>[e.createElementVNode("div",Ee,[e.createElementVNode("div",Ce,[e.createElementVNode("span",{id:n,class:e.normalizeClass(q)}," 测试品种 ",10,ye)]),e.createElementVNode("div",we,[e.createVNode(Y,{label:"",onSelect:t[5]||(t[5]=({name:z,code:ee})=>a.value+=`${ee} ${z}
3
- `)}),e.createVNode(s,{onClick:t[6]||(t[6]=z=>k.value=!1)},{default:e.withCtx(()=>[e.createVNode(e.unref(_.close_default))]),_:1})])])]),footer:e.withCtx(()=>[e.createElementVNode("div",ke,[e.createVNode(m,{type:"primary",onClick:t[8]||(t[8]=n=>T("submit"))},{default:e.withCtx(()=>[e.createTextVNode(" 确认 ")]),_:1})])]),default:e.withCtx(()=>[e.createVNode(r,{class:"full-height-textarea",modelValue:a.value,"onUpdate:modelValue":t[7]||(t[7]=n=>a.value=n),resize:"none",type:"textarea",placeholder:`不填写时, 默认为000001 平安银行
4
- 格式示例:
5
- hc8888    热轧卷板期货指数
6
- sp8888    纸浆期货指数
7
- bu8888    石油沥青期货指数`},null,8,["modelValue"])]),_:1},8,["modelValue"]),e.createVNode(O,{"modal-class":"log-dialog",modelValue:N.value,"onUpdate:modelValue":t[12]||(t[12]=n=>N.value=n),width:"830","align-center":"","append-to-body":"",draggable:"",overflow:"",modal:!1,"modal-penetrable":!0,"show-close":!1},{header:e.withCtx(({titleId:n,titleClass:q})=>[e.createElementVNode("div",be,[e.createElementVNode("div",qe,[e.createElementVNode("span",{id:n,class:e.normalizeClass(q)}," 日志明细 ",10,$e)]),e.createElementVNode("div",Se,[e.createVNode(s,{onClick:t[10]||(t[10]=z=>N.value=!1)},{default:e.withCtx(()=>[e.createVNode(e.unref(_.close_default))]),_:1})])])]),footer:e.withCtx(()=>[e.createElementVNode("div",Me,[e.createVNode(m,{onClick:t[11]||(t[11]=n=>N.value=!1)},{default:e.withCtx(()=>[e.createTextVNode(" 关闭 ")]),_:1})])]),default:e.withCtx(()=>[e.createElementVNode("div",De,[e.createVNode(p,{class:"code",height:"600px"},{default:e.withCtx(()=>[e.createElementVNode("pre",null,e.toDisplayString(c.code),1)]),_:1}),e.createVNode(Z,{direction:"vertical"}),e.createVNode(p,{height:"600px"},{default:e.withCtx(()=>[e.createElementVNode("pre",{class:e.normalizeClass(c.result===1?"success-log":"error-log")},e.toDisplayString(c.result===1?`✅️ 测试通过
8
- ${c.detail}`:c.detail),3)]),_:1})])]),_:1},8,["modelValue"])]),_:1},8,["modelValue"])}}},Fe=W._export_sfc(Be,[["__scopeId","data-v-cbbcbba3"]]);const ze={class:"custom-function"},Ie={class:"func-option"},Te={class:"icons"},Oe={__name:"index",props:{size:{type:String,default:"small"},selectWidth:{type:String,default:"200px"}},emits:["insert"],setup(u,{emit:I}){const{request:M}=e.inject("stConfig"),E=e.ref(null),d=I,C=e.ref(null),v=e.ref(""),V=e.ref([]),x=async()=>{const{body:l}=await M.post("/common/qt/querySearchFunctions");if(V.value=l??[],C.value===null)v.value="";else{const a=V.value.find(({id:c})=>c===C.value);v.value=a?a.funcName:""}},y=l=>{var a;l?C.value=(a=V.value.find(c=>c.funcName===l))==null?void 0:a.id:C.value=null},w=()=>{if(!v.value)return g.ElMessage.error("请先选择自定义函数后, 再执行插入");const{funcName:l,funcExpression:a}=V.value.find(c=>c.funcName===v.value);d("insert",l,a)},h=async(l,a)=>{switch(l){case"open":{E.value.open();break}case"copy":{const c={id:null,funcName:`${a.funcName}-复制`,funcExpression:a.funcExpression};E.value.open(c);break}case"edit":{const c={id:a.id,funcName:a.funcName,funcExpression:a.funcExpression};E.value.open(c);break}case"delete":{await M.post("/common/qt/deleteSearchFunctionById",{id:a.id}),x();break}}};return e.onMounted(()=>{x()}),(l,a)=>{const c=_.ElIcon,k=P.ElPopconfirm,N=R.ElOption,S=R.ElSelect,$=L.ElButton;return e.openBlock(),e.createElementBlock("div",ze,[e.createVNode(S,{modelValue:v.value,"onUpdate:modelValue":a[0]||(a[0]=f=>v.value=f),size:u.size,placeholder:"自定义函数","no-match-text":"无匹配选项","no-data-text":"无选项数据",clearable:"",filterable:"",onChange:y,style:e.normalizeStyle({width:u.selectWidth})},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(V.value,f=>(e.openBlock(),e.createBlock(N,{key:f.id,label:f.funcName,value:f.funcName,onClick:w},{default:e.withCtx(()=>[e.createElementVNode("div",Ie,[e.createElementVNode("span",null,e.toDisplayString(f.funcName),1),e.createElementVNode("div",Te,[e.createVNode(c,{onClick:e.withModifiers(B=>h("copy",f),["stop"])},{default:e.withCtx(()=>[e.createVNode(e.unref(_.document_copy_default))]),_:2},1032,["onClick"]),e.createVNode(c,{onClick:e.withModifiers(B=>h("edit",f),["stop"])},{default:e.withCtx(()=>[e.createVNode(e.unref(_.edit_default))]),_:2},1032,["onClick"]),e.createVNode(k,{title:"确认是否删除?","confirm-button-text":"确认","cancel-button-text":"取消",onConfirm:B=>h("delete",f)},{reference:e.withCtx(()=>[e.createVNode(c,{onClick:e.withModifiers(()=>{},["stop"])},{default:e.withCtx(()=>[e.createVNode(e.unref(_.delete_default))]),_:1})]),_:2},1032,["onConfirm"])])])]),_:2},1032,["label","value"]))),128))]),_:1},8,["modelValue","size","style"]),e.createVNode($,{type:"primary",size:u.size,onClick:w},{default:e.withCtx(()=>[e.createTextVNode(" 插入 ")]),_:1},8,["size"]),e.createVNode($,{type:"primary",size:u.size,onClick:a[1]||(a[1]=f=>h("open"))},{default:e.withCtx(()=>[e.createTextVNode(" 函数管理 ")]),_:1},8,["size"]),e.createVNode(Fe,{ref_key:"ManageDialogRef",ref:E,data:V.value,onRefreshData:x},null,8,["data"])])}}},Ue=W._export_sfc(Oe,[["__scopeId","data-v-d2f2ff3e"]]),Re={install(u){u.component("st-customFunction",Ue)}};module.exports=Re;
1
+ "use strict";require("./base-ef747d02.cjs");const L=require("./el-button-eec58cff.cjs");require("./el-tag-a33c4b22.cjs");const R=require("./el-select-d8d91db1.cjs");require("./el-scrollbar-bc3f790d.cjs");require("./el-popper-b6c99b28.cjs");const P=require("./el-popconfirm-70a976bf.cjs");require("./el-popover-0ea8fbf8.cjs");const e=require("vue"),_=require("./index-098c2447.cjs"),Q=require("./el-dialog-ae86edb8.cjs");require("./el-overlay-9e34965f.cjs");const X=require("./el-divider-4713d74c.cjs"),Y=require("./el-empty-1697ded8.cjs"),j=require("./el-input-7fd293af.cjs"),Z=require("./index-8901a38c.cjs"),w=require("./el-message-5e6a6be9.cjs"),ee=require("./el-message-box-c10adb52.cjs"),U=require("./el-form-item-c3fe189b.cjs"),W=require("./_plugin-vue_export-helper-f246444f.cjs"),te=require("./index-298075cf.cjs");require("./index-f1c702f6.cjs");require("./use-global-config-30d7d8ce.cjs");require("./use-form-common-props-fd9b61a0.cjs");require("./index-9780a537.cjs");require("./index-bb833443.cjs");require("./index-c108567d.cjs");require("./index-eea0bcb3.cjs");require("./index-f3562b52.cjs");require("./castArray-35947698.cjs");require("./index-11547a0c.cjs");require("./scroll-b108dabd.cjs");require("./debounce-62f5b6e8.cjs");require("./vnode-b906ae6d.cjs");require("./typescript-b63f8e83.cjs");require("./config-provider-a584d81e.cjs");require("./validator-1b8a6128.cjs");require("./_initCloneObject-52b6a510.cjs");const z=u=>(e.pushScopeId("data-v-b5dcb4b8"),u=u(),e.popScopeId(),u),oe={class:"custom-header"},ne={class:"left"},le=["id"],ae={class:"right"},se={class:"manage-dialog-body"},ce={class:"func-list"},re={class:"search"},ie=z(()=>e.createElementVNode("span",null,"输入函数关键字",-1)),ue=["onClick"],de={class:"icon-box"},fe={class:"rule-form"},me={class:"header"},pe=z(()=>e.createElementVNode("span",null,"函数名称:",-1)),_e={class:"right"},ve=z(()=>e.createElementVNode("div",{class:"tip-box"},"说明: 公式里可以使用变量, 变量名命名格式: ${变量名}, 后续可在应用函数时填写具体值, 系统会自动换算",-1)),he={class:"custom-header"},Ve={class:"left"},xe=["id"],Ne={class:"right"},ge={class:"content"},Ee={class:"dialog-footer"},Ce={__name:"ManageDialog",props:{data:{type:Array,default:()=>[]}},emits:["refreshData"],setup(u,{expose:M,emit:$}){const{request:N}=e.inject("stConfig"),f=e.ref(null),g=e.ref(null),v=$,h=u,V=e.ref(!1),E=e.reactive({save:!1,test:!1}),C=e.ref(null),x=e.computed(()=>C.value?h.data.filter(o=>o.funcName.includes(C.value)):h.data),l=e.reactive({id:null,funcName:"",funcExpression:""}),n=e.reactive({result:null,detail:"",code:""}),a=e.ref(!1),q=()=>{var o;Object.assign(l,{id:null,funcName:"",funcExpression:""}),(o=f.value)==null||o.setValue(l.funcExpression)},b=o=>{var t;Object.assign(l,{id:o.id,funcName:o.funcName,funcExpression:o.funcExpression}),(t=f.value)==null||t.setValue(l.funcExpression)},F=o=>{var t;Object.assign(l,{id:null,funcName:`${o.funcName}-复制`,funcExpression:o.funcExpression}),(t=f.value)==null||t.setValue(l.funcExpression)},S=async o=>{var t;o.id===l.id&&(Object.assign(l,{id:null,funcName:"",funcExpression:""}),(t=f.value)==null||t.setValue(l.funcExpression)),await N.post("/common/qt/deleteSearchFunctionById",{id:o.id}),v("refreshData")},d=Z.G(async()=>{try{if(E.save=!0,l.funcExpression=f.value.getValue(),!l.funcName)return w.ElMessage.error("函数名称不可为空");if(!l.funcExpression)return w.ElMessage.error("函数内容不可为空");await N.post("/common/qt/saveOrUpdateSearchFunction",l),w.ElMessage.success("操作成功"),v("refreshData"),l.id||q()}finally{E.save=!1}}),D=o=>new Promise(t=>{const s=e.ref(o.reduce((i,m)=>(i[m]="",i),{})),r=e.ref({}),p=()=>{let i=!0;const m={};return o.forEach(y=>{var B;(B=s.value[y])!=null&&B.trim()||(m[y]=`请输入${y}的值`,i=!1)}),r.value=m,i},I={setup(){return()=>e.h("div",[e.h(U.ElForm,{model:s.value},()=>o.map(i=>e.h(U.ElFormItem,{label:`${i}: `,prop:i,error:r.value[i],"label-width":"90px"},()=>e.h(j.ElInput,{modelValue:s.value[i],"onUpdate:modelValue":m=>{s.value[i]=m,r.value[i]&&delete r.value[i]},placeholder:`请输入 ${i} 的值`,status:r.value[i]?"error":""}))))])}};ee.ElMessageBox({title:"填写变量值用于接口测试",message:e.h(I),showCancelButton:!0,confirmButtonText:"确定",cancelButtonText:"取消",customClass:"variable-input-dialog",beforeClose:async(i,m,y)=>{i!=="confirm"&&(t(!1),y()),await e.nextTick(),p()&&(t({...s.value}),y())}}).catch(()=>t(!1))}),A=o=>{const t=/\$\{([^}]*)\}/g,s=[];let r;for(;(r=t.exec(o))!==null;)s.push(r[1]);return[...new Set(s)]},G=(o,t)=>o.replace(/\$\{([^}]*)\}/g,(s,r)=>t[r]!==void 0?t[r]:s),T=async o=>{switch(o){case"submit":{let t=f.value.getValue();if(!t)return w.ElMessage.error("函数内容不可为空");if(/\$\{[^}]*\}/.test(t)){const s=A(t),r=await D(s);if(!r)return;t=G(t,r)}try{E.test=!0;const{body:s}=await N.post("/common/qt/testFactorSelect",{factorSelectExpr:t}),{result:r,detail:p}=s;Object.assign(n,{result:r,detail:p,code:t}),r===1?w.ElMessage.success("测试通过"):(w.ElMessage.error("测试未能通过"),a.value=!0)}finally{E.test=!1}break}case"log":{if(n.result===null)return w.ElMessage.warning("请先进行测试, 等待测试完成后可查看日志");a.value=!0;break}}},H=()=>{g.value.open(f.value)};return e.watch(()=>V.value,o=>{o||(g.value.close(),a.value=!1)}),M({open:o=>{V.value=!0,e.nextTick(()=>{var t;if((t=f.value)==null||t.resize(),C.value=null,Object.assign(n,{result:null,detail:"",code:""}),o){const s={id:o.id,funcName:o.funcName,funcExpression:o.funcExpression};b(s)}else x.value.length?b(x.value[0]):q()})}}),(o,t)=>{const s=_.ElIcon,r=j.ElInput,p=L.ElButton,I=P.ElPopconfirm,i=Y.ElEmpty,m=te.ElScrollbar,y=e.resolveComponent("st-monacoEditor"),B=e.resolveComponent("st-varSelectDialog"),K=X.ElDivider,O=Q.ElDialog;return e.openBlock(),e.createBlock(O,{"modal-class":"manage-dialog",modelValue:V.value,"onUpdate:modelValue":t[8]||(t[8]=c=>V.value=c),width:"1600","align-center":"","append-to-body":"",overflow:"",modal:!1,"modal-penetrable":!0,"show-close":!1},{header:e.withCtx(({titleId:c,titleClass:k})=>[e.createElementVNode("div",oe,[e.createElementVNode("div",ne,[e.createElementVNode("span",{id:c,class:e.normalizeClass(k)}," 自定义函数管理面板 ",10,le)]),e.createElementVNode("div",ae,[e.createVNode(s,{onClick:t[0]||(t[0]=J=>V.value=!1)},{default:e.withCtx(()=>[e.createVNode(e.unref(_.close_default))]),_:1})])])]),default:e.withCtx(()=>[e.createElementVNode("div",se,[e.createElementVNode("div",ce,[e.createElementVNode("div",re,[ie,e.createVNode(r,{modelValue:C.value,"onUpdate:modelValue":t[1]||(t[1]=c=>C.value=c),clearable:""},null,8,["modelValue"]),e.createVNode(p,{type:"primary",onClick:q},{default:e.withCtx(()=>[e.createTextVNode("新建")]),_:1})]),e.createVNode(m,{class:"list"},{default:e.withCtx(()=>[x.value.length?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(x.value,c=>(e.openBlock(),e.createElementBlock("div",{key:c.id,class:e.normalizeClass([{"active-list-item":l.id===c.id},"list-item"])},[e.createElementVNode("span",{class:"func-name",onClick:k=>b(c)},e.toDisplayString(c.funcName),9,ue),e.createElementVNode("div",de,[e.createVNode(s,null,{default:e.withCtx(()=>[e.createVNode(e.unref(_.document_copy_default),{onClick:k=>F(c)},null,8,["onClick"])]),_:2},1024),e.createVNode(I,{title:"确认是否删除?","confirm-button-text":"确认","cancel-button-text":"取消",onConfirm:k=>S(c)},{reference:e.withCtx(()=>[e.createVNode(s,{onClick:e.withModifiers(()=>{},["stop"])},{default:e.withCtx(()=>[e.createVNode(e.unref(_.delete_default))]),_:1})]),_:2},1032,["onConfirm"])])],2))),128)):(e.openBlock(),e.createBlock(i,{key:1,description:"暂无数据"}))]),_:1})]),e.createElementVNode("div",fe,[e.createElementVNode("div",me,[pe,e.createVNode(r,{modelValue:l.funcName,"onUpdate:modelValue":t[2]||(t[2]=c=>l.funcName=c)},null,8,["modelValue"]),e.createElementVNode("div",_e,[e.createVNode(p,{type:"primary",onClick:e.unref(d),loading:E.save},{default:e.withCtx(()=>[e.createTextVNode(" 保存 ")]),_:1},8,["onClick","loading"]),e.createVNode(p,{loading:E.test,onClick:t[3]||(t[3]=c=>T("submit"))},{default:e.withCtx(()=>[e.createTextVNode(" 测试 ")]),_:1},8,["loading"]),e.createVNode(p,{icon:e.unref(_.document_default),onClick:t[4]||(t[4]=c=>T("log"))},{default:e.withCtx(()=>[e.createTextVNode(" 日志明细 ")]),_:1},8,["icon"]),e.createVNode(p,{type:"primary",onClick:H},{default:e.withCtx(()=>[e.createTextVNode(" 变量选择器 ")]),_:1})])]),ve,e.createVNode(y,{ref_key:"stMonacoEditorRef",ref:f,language:"lua",style:{width:"100%",height:"calc(80vh - 75px)"}},null,512)])]),e.createVNode(B,{ref_key:"stVarSelectDialogRef",ref:g},null,512),e.createVNode(O,{"modal-class":"log-dialog",modelValue:a.value,"onUpdate:modelValue":t[7]||(t[7]=c=>a.value=c),width:"830","align-center":"","append-to-body":"",draggable:"",overflow:"",modal:!1,"modal-penetrable":!0,"show-close":!1},{header:e.withCtx(({titleId:c,titleClass:k})=>[e.createElementVNode("div",he,[e.createElementVNode("div",Ve,[e.createElementVNode("span",{id:c,class:e.normalizeClass(k)}," 日志明细 ",10,xe)]),e.createElementVNode("div",Ne,[e.createVNode(s,{onClick:t[5]||(t[5]=J=>a.value=!1)},{default:e.withCtx(()=>[e.createVNode(e.unref(_.close_default))]),_:1})])])]),footer:e.withCtx(()=>[e.createElementVNode("div",Ee,[e.createVNode(p,{onClick:t[6]||(t[6]=c=>a.value=!1)},{default:e.withCtx(()=>[e.createTextVNode(" 关闭 ")]),_:1})])]),default:e.withCtx(()=>[e.createElementVNode("div",ge,[e.createVNode(m,{class:"code",height:"600px"},{default:e.withCtx(()=>[e.createElementVNode("pre",null,e.toDisplayString(n.code),1)]),_:1}),e.createVNode(K,{direction:"vertical"}),e.createVNode(m,{height:"600px"},{default:e.withCtx(()=>[e.createElementVNode("pre",{class:e.normalizeClass(n.result===1?"success-log":"error-log")},e.toDisplayString(n.result===1?`✅️ 测试通过
2
+ ${n.detail}`:n.detail),3)]),_:1})])]),_:1},8,["modelValue"])]),_:1},8,["modelValue"])}}},ye=W._export_sfc(Ce,[["__scopeId","data-v-b5dcb4b8"]]);const we={class:"custom-function"},ke={class:"func-option"},qe={class:"icons"},be={__name:"index",props:{size:{type:String,default:"small"},selectWidth:{type:String,default:"200px"}},emits:["insert"],setup(u,{emit:M}){const{request:$}=e.inject("stConfig"),N=e.ref(null),f=M,g=e.ref(null),v=e.ref(""),h=e.ref([]),V=async()=>{const{body:l}=await $.post("/common/qt/querySearchFunctions");if(h.value=l??[],g.value===null)v.value="";else{const n=h.value.find(({id:a})=>a===g.value);v.value=n?n.funcName:""}},E=l=>{var n;l?g.value=(n=h.value.find(a=>a.funcName===l))==null?void 0:n.id:g.value=null},C=()=>{if(!v.value)return w.ElMessage.error("请先选择自定义函数后, 再执行插入");const{funcName:l,funcExpression:n}=h.value.find(a=>a.funcName===v.value);f("insert",l,n)},x=async(l,n)=>{switch(l){case"open":{N.value.open();break}case"copy":{const a={id:null,funcName:`${n.funcName}-复制`,funcExpression:n.funcExpression};N.value.open(a);break}case"edit":{const a={id:n.id,funcName:n.funcName,funcExpression:n.funcExpression};N.value.open(a);break}case"delete":{await $.post("/common/qt/deleteSearchFunctionById",{id:n.id}),V();break}}};return e.onMounted(()=>{V()}),(l,n)=>{const a=_.ElIcon,q=P.ElPopconfirm,b=R.ElOption,F=R.ElSelect,S=L.ElButton;return e.openBlock(),e.createElementBlock("div",we,[e.createVNode(F,{modelValue:v.value,"onUpdate:modelValue":n[0]||(n[0]=d=>v.value=d),size:u.size,placeholder:"自定义函数","no-match-text":"无匹配选项","no-data-text":"无选项数据",clearable:"",filterable:"",onChange:E,style:e.normalizeStyle({width:u.selectWidth})},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(h.value,d=>(e.openBlock(),e.createBlock(b,{key:d.id,label:d.funcName,value:d.funcName,onClick:C},{default:e.withCtx(()=>[e.createElementVNode("div",ke,[e.createElementVNode("span",null,e.toDisplayString(d.funcName),1),e.createElementVNode("div",qe,[e.createVNode(a,{onClick:e.withModifiers(D=>x("copy",d),["stop"])},{default:e.withCtx(()=>[e.createVNode(e.unref(_.document_copy_default))]),_:2},1032,["onClick"]),e.createVNode(a,{onClick:e.withModifiers(D=>x("edit",d),["stop"])},{default:e.withCtx(()=>[e.createVNode(e.unref(_.edit_default))]),_:2},1032,["onClick"]),e.createVNode(q,{title:"确认是否删除?","confirm-button-text":"确认","cancel-button-text":"取消",onConfirm:D=>x("delete",d)},{reference:e.withCtx(()=>[e.createVNode(a,{onClick:e.withModifiers(()=>{},["stop"])},{default:e.withCtx(()=>[e.createVNode(e.unref(_.delete_default))]),_:1})]),_:2},1032,["onConfirm"])])])]),_:2},1032,["label","value"]))),128))]),_:1},8,["modelValue","size","style"]),e.createVNode(S,{type:"primary",size:u.size,onClick:C},{default:e.withCtx(()=>[e.createTextVNode(" 插入 ")]),_:1},8,["size"]),e.createVNode(S,{type:"primary",size:u.size,onClick:n[1]||(n[1]=d=>x("open"))},{default:e.withCtx(()=>[e.createTextVNode(" 函数管理 ")]),_:1},8,["size"]),e.createVNode(ye,{ref_key:"ManageDialogRef",ref:N,data:h.value,onRefreshData:V},null,8,["data"])])}}},$e=W._export_sfc(be,[["__scopeId","data-v-d2f2ff3e"]]),Se={install(u){u.component("st-customFunction",$e)}};module.exports=Se;