st-comp 0.0.280 → 0.0.281
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.
- package/es/CustomFunction.cjs +2 -2
- package/es/CustomFunction.js +512 -306
- package/es/FactorWarning.cjs +1 -1
- package/es/FactorWarning.js +25 -25
- package/es/Kline.cjs +1 -1
- package/es/Kline.js +10 -10
- package/es/KlineBasic.cjs +1 -1
- package/es/KlineBasic.js +39 -39
- package/es/KlineConfig.cjs +1 -1
- package/es/KlineConfig.js +16 -16
- package/es/KlineNew.cjs +1 -1
- package/es/KlineNew.js +9 -9
- package/es/KlinePlus.cjs +1 -1
- package/es/KlinePlus.js +11 -11
- package/es/MonacoEditor.cjs +1 -1
- package/es/MonacoEditor.js +17 -17
- package/es/Pagination.cjs +1 -1
- package/es/Pagination.js +13 -13
- package/es/PasswordPrompt.cjs +1 -1
- package/es/PasswordPrompt.js +2 -2
- package/es/Table.cjs +1 -1
- package/es/Table.js +22 -22
- package/es/User.cjs +1 -1
- package/es/User.js +18 -18
- package/es/VarSelectDialog.cjs +1 -1
- package/es/VarSelectDialog.js +19 -19
- package/es/VarietyAiHelper.cjs +7 -7
- package/es/VarietyAiHelper.js +426 -437
- package/es/VarietyAutoComplete.cjs +1 -1
- package/es/VarietyAutoComplete.js +7 -7
- package/es/VarietySearch.cjs +1 -1
- package/es/VarietySearch.js +29 -29
- package/es/{VarietySelect-c402bade.js → VarietySelect-3fc0f0ce.js} +3 -3
- package/es/{VarietySelect-aa082a9c.cjs → VarietySelect-d2d25a3d.cjs} +1 -1
- package/es/VarietyTextCopy.cjs +1 -1
- package/es/VarietyTextCopy.js +10 -10
- package/es/VirtualTable.cjs +1 -1
- package/es/VirtualTable.js +94 -94
- package/es/{_baseClone-10bdb989.cjs → _baseClone-f8e5d3ba.cjs} +1 -1
- package/es/{_baseClone-98af8b33.js → _baseClone-fb6a3947.js} +2 -2
- package/es/{config-provider-563023c9.js → config-provider-06d8207f.js} +3 -3
- package/es/{config-provider-33a127c4.cjs → config-provider-bb61bd3e.cjs} +1 -1
- package/es/{dropdown-ce7496c7.cjs → dropdown-8fa21bfd.cjs} +1 -1
- package/es/{dropdown-feea8702.js → dropdown-bcf8d198.js} +2 -2
- package/es/{el-autocomplete-d9253bba.cjs → el-autocomplete-13b9e372.cjs} +1 -1
- package/es/{el-autocomplete-eac54f9f.js → el-autocomplete-419bfbcf.js} +5 -5
- package/es/{el-button-8a9721f8.js → el-button-ee9fe159.js} +3 -3
- package/es/{el-button-8259594b.cjs → el-button-fac5e058.cjs} +1 -1
- package/es/{el-checkbox-6303fc92.cjs → el-checkbox-6cf1a71c.cjs} +1 -1
- package/es/{el-checkbox-c328b097.js → el-checkbox-b5ac7f04.js} +4 -4
- package/es/{el-dialog-67536fac.js → el-dialog-060b3735.js} +4 -4
- package/es/{el-dialog-8788bcc1.cjs → el-dialog-54aebacd.cjs} +1 -1
- package/es/{el-form-item-8efcf2c3.js → el-form-item-2be6b683.js} +3 -3
- package/es/{el-form-item-95e68669.cjs → el-form-item-758dfefa.cjs} +1 -1
- package/es/{el-input-c8a9bb71.cjs → el-input-7fe53030.cjs} +1 -1
- package/es/{el-input-e66500b7.js → el-input-d23f5442.js} +60 -60
- package/es/{el-input-number-68ee0d65.js → el-input-number-484fb184.js} +15 -15
- package/es/{el-input-number-d7a81922.cjs → el-input-number-f0f4eedb.cjs} +1 -1
- package/es/{el-loading-db4c6d13.js → el-loading-9d3e405c.js} +1 -1
- package/es/{el-loading-62132db2.cjs → el-loading-fafaaa7b.cjs} +1 -1
- package/es/{el-menu-item-c2523d82.js → el-menu-item-0ac22681.js} +4 -4
- package/es/{el-menu-item-4b8e7794.cjs → el-menu-item-c91ae430.cjs} +1 -1
- package/es/{el-message-box-7c13546c.js → el-message-box-568a0aa6.js} +9 -9
- package/es/{el-message-box-fed174f0.cjs → el-message-box-ceacb54e.cjs} +1 -1
- package/es/{el-overlay-17299785.cjs → el-overlay-9f36e73c.cjs} +1 -1
- package/es/{el-overlay-36f223e9.js → el-overlay-cb5c85aa.js} +3 -3
- package/es/{el-popconfirm-520b2928.cjs → el-popconfirm-4a8cd35c.cjs} +1 -1
- package/es/{el-popconfirm-a857c54a.js → el-popconfirm-6f8e65c8.js} +4 -4
- package/es/{el-popper-852446fd.js → el-popper-0454c8e8.js} +1 -1
- package/es/{el-popper-f824c63b.cjs → el-popper-acd0ff35.cjs} +1 -1
- package/es/{el-segmented-bf08279f.js → el-segmented-64dc7258.js} +2 -2
- package/es/{el-segmented-45dcc036.cjs → el-segmented-eb3c8e65.cjs} +1 -1
- package/es/{el-select-a34348e1.js → el-select-a573c78b.js} +8 -8
- package/es/{el-select-d2958ae8.cjs → el-select-c317294a.cjs} +1 -1
- package/es/{el-table-column-e2be313e.js → el-table-column-1c443963.js} +9 -9
- package/es/{el-table-column-ad70ee0e.cjs → el-table-column-f555115d.cjs} +1 -1
- package/es/{el-tag-9bcfae32.js → el-tag-2d8a3fe7.js} +2 -2
- package/es/{el-tag-527f06f0.cjs → el-tag-dca1292c.cjs} +1 -1
- package/es/{el-text-fc345ffd.cjs → el-text-649c986a.cjs} +1 -1
- package/es/{el-text-f9379288.js → el-text-761e6717.js} +1 -1
- package/es/{index-7711aa69.cjs → index-11181b5f.cjs} +1 -1
- package/es/{index-5e76a22d.cjs → index-21a3dc89.cjs} +1 -1
- package/es/{index-99bb359f.cjs → index-33e039e3.cjs} +1 -1
- package/es/{index-bb0bc131.cjs → index-4614e8e9.cjs} +2 -2
- package/es/{index-dfb34e00.js → index-53beef02.js} +1 -1
- package/es/index-5cada1ed.cjs +1 -0
- package/es/{index-3ed0c678.cjs → index-6a36e1fc.cjs} +1 -1
- package/es/{index-60900c6c.js → index-6a52dc7c.js} +112 -82
- package/es/{index-b9a26e7f.js → index-78dab605.js} +3 -3
- package/es/{index-99d4335d.cjs → index-798fec2d.cjs} +1 -1
- package/es/{index-47d30a52.js → index-9573f74b.js} +1 -1
- package/es/{index-69d2353a.js → index-ab0ad219.js} +9 -9
- package/es/{index-3a0a7c36.cjs → index-beb5cb7d.cjs} +1 -1
- package/es/{index-86678b72.js → index-c09fc6f5.js} +2 -2
- package/es/{index-5dec535a.cjs → index-ceae4c47.cjs} +1 -1
- package/es/{index-a0522466.js → index-d9379af4.js} +2 -2
- package/es/{index-7c4d8f5d.js → index-dddacf80.js} +1 -1
- package/es/{index-2419d69a.js → index-e2e58ea9.js} +5 -5
- package/es/{python-922eca89.cjs → python-60e79979.cjs} +1 -1
- package/es/{python-6eafa04b.js → python-673bf8b8.js} +17 -17
- package/es/style.css +1 -1
- package/es/{use-form-item-0a831287.cjs → use-form-item-76516e50.cjs} +1 -1
- package/es/{use-form-item-187cd7db.js → use-form-item-784142b4.js} +16 -16
- package/es/{use-global-config-c90c91f7.cjs → use-global-config-7ff9a1c2.cjs} +1 -1
- package/es/{use-global-config-17dafd40.js → use-global-config-9a4ccf33.js} +2 -2
- package/es/{validator-ee5bc3eb.cjs → validator-1926345b.cjs} +1 -1
- package/es/{validator-800ed2ba.js → validator-a66ec4f8.js} +1 -1
- package/es/{zh-cn-26cc7233.js → zh-cn-51c2e528.js} +1 -1
- package/es/{zh-cn-a22a6792.cjs → zh-cn-ad12d9f5.cjs} +1 -1
- package/lib/bundle.js +1 -1
- package/lib/bundle.umd.cjs +197 -197
- package/lib/{index-74ed48c6.js → index-7282d3be.js} +22370 -22147
- package/lib/{python-7aaa84e4.js → python-418be57d.js} +1 -1
- package/lib/style.css +1 -1
- package/package.json +1 -1
- package/es/index-3e7d5ffb.cjs +0 -1
package/es/CustomFunction.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";const p=require("./index-3e7d5ffb.cjs"),U=require("./el-button-8259594b.cjs"),O=require("./el-select-d2958ae8.cjs"),L=require("./el-popconfirm-520b2928.cjs"),w=require("./index-5dec535a.cjs");require("./base-d987e5c9.cjs");require("./el-scrollbar-225c6c9e.cjs");require("./el-popper-f824c63b.cjs");require("./el-tag-527f06f0.cjs");require("./el-popover-0ea8fbf8.cjs");const e=require("vue"),j=require("./el-form-item-95e68669.cjs"),R=require("./el-input-c8a9bb71.cjs"),J=require("./index-3a0a7c36.cjs"),Q=require("./el-dialog-8788bcc1.cjs"),X=require("./el-divider-3f0320be.cjs"),Y=require("./el-empty-58bc2a10.cjs"),Z=require("./el-message-box-fed174f0.cjs");require("./el-overlay-17299785.cjs");const ee=require("./index-94131fd7.cjs");require("./el-message-0ea8fbf8.cjs");const P=require("./_plugin-vue_export-helper-f246444f.cjs");require("./use-form-item-0a831287.cjs");require("./index-d372e68f.cjs");require("./index-f5474dcc.cjs");require("./use-global-config-c90c91f7.cjs");require("./index-3ed0c678.cjs");require("./index-71ba4c28.cjs");require("./castArray-d9ffe84a.cjs");require("./vnode-6f7b84f0.cjs");require("./index-5e76a22d.cjs");require("./scroll-07bade1e.cjs");require("./index-7711aa69.cjs");require("./toNumber-b47ceb68.cjs");require("./clamp-17c4d8aa.cjs");require("./config-provider-33a127c4.cjs");require("./typescript-b63f8e83.cjs");require("./_baseClone-10bdb989.cjs");require("./raf-735cc598.cjs");require("./validator-ee5bc3eb.cjs");const te={class:"custom-header"},ne={class:"left"},oe=["id"],le={class:"right"},ae={class:"manage-dialog-body"},se={class:"func-list"},re={class:"search"},ie=["onClick"],ce={class:"icon-box"},ue={class:"rule-form"},de={class:"header"},fe={class:"right"},me={class:"custom-header"},pe={class:"left"},_e=["id"],ve={class:"right"},Ve={class:"content"},xe={class:"dialog-footer"},Ne={__name:"ManageDialog",props:{data:{type:Array,default:()=>[]}},emits:["refreshData"],setup(N,{expose:M,emit:$}){const{request:g}=e.inject("stConfig"),u=e.ref(null),E=e.ref(null),_=$,v=N,V=e.ref(!1),h=e.reactive({save:!1,test:!1}),C=e.ref(null),x=e.computed(()=>C.value?v.data.filter(o=>o.funcName.includes(C.value)):v.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=u.value)==null||o.setValue(l.funcExpression)},b=o=>{var t;Object.assign(l,{id:o.id,funcName:o.funcName,funcExpression:o.funcExpression}),(t=u.value)==null||t.setValue(l.funcExpression)},F=o=>{var t;Object.assign(l,{id:null,funcName:`${o.funcName}-复制`,funcExpression:o.funcExpression}),(t=u.value)==null||t.setValue(l.funcExpression)},S=async o=>{var t;o.id===l.id&&(Object.assign(l,{id:null,funcName:"",funcExpression:""}),(t=u.value)==null||t.setValue(l.funcExpression)),await g.post("/common/qt/deleteSearchFunctionById",{id:o.id}),_("refreshData")},d=ee.j(async()=>{try{if(h.save=!0,l.funcExpression=u.value.getValue(),!l.funcName)return w.ElMessage.error("函数名称不可为空");if(!l.funcExpression)return w.ElMessage.error("函数内容不可为空");await g.post("/common/qt/saveOrUpdateSearchFunction",l),w.ElMessage.success("操作成功"),_("refreshData"),l.id||q()}finally{h.save=!1}}),D=o=>new Promise(t=>{const s=e.ref(o.reduce((c,f)=>(c[f]="",c),{})),i=e.ref({}),m=()=>{let c=!0;const f={};return o.forEach(y=>{var B;(B=s.value[y])!=null&&B.trim()||(f[y]=`请输入${y}的值`,c=!1)}),i.value=f,c},z={setup(){return()=>e.h("div",[e.h(j.ElForm,{model:s.value},()=>o.map(c=>e.h(j.ElFormItem,{label:`${c}: `,prop:c,error:i.value[c],"label-width":"90px"},()=>e.h(R.ElInput,{modelValue:s.value[c],"onUpdate:modelValue":f=>{s.value[c]=f,i.value[c]&&delete i.value[c]},placeholder:`请输入 ${c} 的值`,status:i.value[c]?"error":""}))))])}};Z.ElMessageBox({title:"填写变量值用于接口测试",message:e.h(z),showCancelButton:!0,confirmButtonText:"确定",cancelButtonText:"取消",customClass:"variable-input-dialog",beforeClose:async(c,f,y)=>{c!=="confirm"&&(t(!1),y()),await e.nextTick(),m()&&(t({...s.value}),y())}}).catch(()=>t(!1))}),W=o=>{const t=/\$\{([^}]*)\}/g,s=[];let i;for(;(i=t.exec(o))!==null;)s.push(i[1]);return[...new Set(s)]},A=(o,t)=>o.replace(/\$\{([^}]*)\}/g,(s,i)=>t[i]!==void 0?t[i]:s),I=async o=>{switch(o){case"submit":{let t=u.value.getValue();if(!t)return w.ElMessage.error("函数内容不可为空");if(/\$\{[^}]*\}/.test(t)){const s=W(t),i=await D(s);if(!i)return;t=A(t,i)}try{h.test=!0;const{body:s}=await g.post("/common/qt/testFactorSelect",{factorSelectExpr:t}),{result:i,detail:m}=s;Object.assign(n,{result:i,detail:m,code:t}),i===1?w.ElMessage.success("测试通过"):(w.ElMessage.error("测试未能通过"),a.value=!0)}finally{h.test=!1}break}case"log":{if(n.result===null)return w.ElMessage.warning("请先进行测试, 等待测试完成后可查看日志");a.value=!0;break}}},H=()=>{E.value.open(u.value)};return e.watch(()=>V.value,o=>{o||(E.value.close(),a.value=!1)}),M({open:o=>{V.value=!0,e.nextTick(()=>{var t;if((t=u.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=p.ElIcon,i=R.ElInput,m=U.ElButton,z=L.ElPopconfirm,c=Y.ElEmpty,f=J.ElScrollbar,y=e.resolveComponent("st-monacoEditor"),B=e.resolveComponent("st-varSelectDialog"),K=X.ElDivider,T=Q.ElDialog;return e.openBlock(),e.createBlock(T,{"modal-class":"manage-dialog",modelValue:V.value,"onUpdate:modelValue":t[8]||(t[8]=r=>V.value=r),width:"1600","align-center":"","append-to-body":"",overflow:"",modal:!1,"modal-penetrable":!0,"show-close":!1},{header:e.withCtx(({titleId:r,titleClass:k})=>[e.createElementVNode("div",te,[e.createElementVNode("div",ne,[e.createElementVNode("span",{id:r,class:e.normalizeClass(k)}," 自定义函数管理面板 ",10,oe)]),e.createElementVNode("div",le,[e.createVNode(s,{onClick:t[0]||(t[0]=G=>V.value=!1)},{default:e.withCtx(()=>[e.createVNode(e.unref(p.close_default))]),_:1})])])]),default:e.withCtx(()=>[e.createElementVNode("div",ae,[e.createElementVNode("div",se,[e.createElementVNode("div",re,[t[10]||(t[10]=e.createElementVNode("span",null,"输入函数关键字",-1)),e.createVNode(i,{modelValue:C.value,"onUpdate:modelValue":t[1]||(t[1]=r=>C.value=r),clearable:""},null,8,["modelValue"]),e.createVNode(m,{type:"primary",onClick:q},{default:e.withCtx(()=>[...t[9]||(t[9]=[e.createTextVNode("新建",-1)])]),_:1})]),e.createVNode(f,{class:"list"},{default:e.withCtx(()=>[x.value.length?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(x.value,r=>(e.openBlock(),e.createElementBlock("div",{key:r.id,class:e.normalizeClass([{"active-list-item":l.id===r.id},"list-item"])},[e.createElementVNode("span",{class:"func-name",onClick:k=>b(r)},e.toDisplayString(r.funcName),9,ie),e.createElementVNode("div",ce,[e.createVNode(s,null,{default:e.withCtx(()=>[e.createVNode(e.unref(p.document_copy_default),{onClick:k=>F(r)},null,8,["onClick"])]),_:2},1024),e.createVNode(z,{title:"确认是否删除?","confirm-button-text":"确认","cancel-button-text":"取消",onConfirm:k=>S(r)},{reference:e.withCtx(()=>[e.createVNode(s,{onClick:e.withModifiers(()=>{},["stop"])},{default:e.withCtx(()=>[e.createVNode(e.unref(p.delete_default))]),_:1})]),_:1},8,["onConfirm"])])],2))),128)):(e.openBlock(),e.createBlock(c,{key:1,description:"暂无数据"}))]),_:1})]),e.createElementVNode("div",ue,[e.createElementVNode("div",de,[t[15]||(t[15]=e.createElementVNode("span",null,"函数名称:",-1)),e.createVNode(i,{modelValue:l.funcName,"onUpdate:modelValue":t[2]||(t[2]=r=>l.funcName=r)},null,8,["modelValue"]),e.createElementVNode("div",fe,[e.createVNode(m,{type:"primary",onClick:e.unref(d),loading:h.save},{default:e.withCtx(()=>[...t[11]||(t[11]=[e.createTextVNode(" 保存 ",-1)])]),_:1},8,["onClick","loading"]),e.createVNode(m,{loading:h.test,onClick:t[3]||(t[3]=r=>I("submit"))},{default:e.withCtx(()=>[...t[12]||(t[12]=[e.createTextVNode(" 测试 ",-1)])]),_:1},8,["loading"]),e.createVNode(m,{icon:e.unref(p.document_default),onClick:t[4]||(t[4]=r=>I("log"))},{default:e.withCtx(()=>[...t[13]||(t[13]=[e.createTextVNode(" 日志明细 ",-1)])]),_:1},8,["icon"]),e.createVNode(m,{type:"primary",onClick:H},{default:e.withCtx(()=>[...t[14]||(t[14]=[e.createTextVNode(" 变量选择器 ",-1)])]),_:1})])]),t[16]||(t[16]=e.createElementVNode("div",{class:"tip-box"},"说明: 公式里可以使用变量, 变量名命名格式: ${变量名}, 后续可在应用函数时填写具体值, 系统会自动换算",-1)),e.createVNode(y,{ref_key:"stMonacoEditorRef",ref:u,language:"lua",style:{width:"100%",height:"calc(80vh - 75px)"}},null,512)])]),e.createVNode(B,{ref_key:"stVarSelectDialogRef",ref:E},null,512),e.createVNode(T,{"modal-class":"log-dialog",modelValue:a.value,"onUpdate:modelValue":t[7]||(t[7]=r=>a.value=r),width:"830","align-center":"","append-to-body":"",draggable:"",overflow:"",modal:!1,"modal-penetrable":!0,"show-close":!1},{header:e.withCtx(({titleId:r,titleClass:k})=>[e.createElementVNode("div",me,[e.createElementVNode("div",pe,[e.createElementVNode("span",{id:r,class:e.normalizeClass(k)}," 日志明细 ",10,_e)]),e.createElementVNode("div",ve,[e.createVNode(s,{onClick:t[5]||(t[5]=G=>a.value=!1)},{default:e.withCtx(()=>[e.createVNode(e.unref(p.close_default))]),_:1})])])]),footer:e.withCtx(()=>[e.createElementVNode("div",xe,[e.createVNode(m,{onClick:t[6]||(t[6]=r=>a.value=!1)},{default:e.withCtx(()=>[...t[17]||(t[17]=[e.createTextVNode(" 关闭 ",-1)])]),_:1})])]),default:e.withCtx(()=>[e.createElementVNode("div",Ve,[e.createVNode(f,{class:"code",height:"600px"},{default:e.withCtx(()=>[e.createElementVNode("pre",null,e.toDisplayString(n.code),1)]),_:1}),e.createVNode(K,{direction:"vertical"}),e.createVNode(f,{height:"600px"},{default:e.withCtx(()=>[e.createElementVNode("pre",{class:e.normalizeClass(n.result===1?"success-log":"error-log")},e.toDisplayString(n.result===1?`✅️ 测试通过
|
|
2
|
-
${
|
|
1
|
+
"use strict";const m=require("./index-5cada1ed.cjs"),Y=require("./el-button-fac5e058.cjs"),J=require("./el-select-c317294a.cjs"),Z=require("./el-popconfirm-4a8cd35c.cjs"),g=require("./index-ceae4c47.cjs");require("./base-d987e5c9.cjs");require("./el-scrollbar-225c6c9e.cjs");require("./el-popper-acd0ff35.cjs");require("./el-tag-dca1292c.cjs");require("./el-popover-0ea8fbf8.cjs");const e=require("vue"),K=require("./el-form-item-758dfefa.cjs"),G=require("./el-input-7fe53030.cjs"),ue=require("./index-beb5cb7d.cjs"),de=require("./el-dialog-54aebacd.cjs"),fe=require("./el-divider-3f0320be.cjs"),me=require("./el-empty-58bc2a10.cjs"),Q=require("./el-message-box-ceacb54e.cjs");require("./el-overlay-9f36e73c.cjs");const X=require("./index-94131fd7.cjs"),pe=require("./aiTools-229609fb.cjs");require("./el-message-0ea8fbf8.cjs");const ee=require("./_plugin-vue_export-helper-f246444f.cjs");require("./use-form-item-76516e50.cjs");require("./index-d372e68f.cjs");require("./index-f5474dcc.cjs");require("./use-global-config-7ff9a1c2.cjs");require("./index-6a36e1fc.cjs");require("./index-71ba4c28.cjs");require("./castArray-d9ffe84a.cjs");require("./vnode-6f7b84f0.cjs");require("./index-21a3dc89.cjs");require("./scroll-07bade1e.cjs");require("./index-11181b5f.cjs");require("./toNumber-b47ceb68.cjs");require("./clamp-17c4d8aa.cjs");require("./config-provider-bb61bd3e.cjs");require("./typescript-b63f8e83.cjs");require("./_baseClone-f8e5d3ba.cjs");require("./raf-735cc598.cjs");require("./validator-1926345b.cjs");const ve={class:"custom-header"},_e={class:"left"},Ve=["id"],xe={class:"right"},ge={class:"manage-dialog-body"},Ne={class:"func-list"},Ee={class:"search"},ke=["onClick"],he={class:"icon-box"},Ce={class:"rule-form"},ye={class:"header"},we={class:"right"},Be={class:"custom-header"},be={class:"left"},qe=["id"],Se={class:"right"},De={class:"ai-dialog-body"},$e={key:0,class:"node-progress"},Ie={key:1,class:"ai-error"},Me={key:2,class:"ai-result"},Fe={class:"factor-expr"},Te={class:"dialog-footer"},ze={class:"custom-header"},Oe={class:"left"},Ae=["id"],Re={class:"right"},Ue={class:"content"},je={class:"dialog-footer"},Le={__name:"ManageDialog",props:{data:{type:Array,default:()=>[]}},emits:["refreshData"],setup(C,{expose:R,emit:z}){const N=e.inject("stConfig"),{request:q}=N,u=e.ref(null),v=e.ref(null),E=z,S=C,w=e.ref(!1),k=e.reactive({save:!1,test:!1}),_=e.ref(null),f=e.computed(()=>_.value?S.data.filter(l=>l.funcName.includes(_.value)):S.data),o=e.reactive({id:null,funcName:"",funcExpression:""}),c=e.reactive({result:null,detail:"",code:""}),h=e.ref(!1),F=()=>{var l;Object.assign(o,{id:null,funcName:"",funcExpression:""}),(l=u.value)==null||l.setValue(o.funcExpression)},T=l=>{var t;Object.assign(o,{id:l.id,funcName:l.funcName,funcExpression:l.funcExpression}),(t=u.value)==null||t.setValue(o.funcExpression)},O=l=>{var t;Object.assign(o,{id:null,funcName:`${l.funcName}-复制`,funcExpression:l.funcExpression}),(t=u.value)==null||t.setValue(o.funcExpression)},p=async l=>{var t;l.id===o.id&&(Object.assign(o,{id:null,funcName:"",funcExpression:""}),(t=u.value)==null||t.setValue(o.funcExpression)),await q.post("/common/qt/deleteSearchFunctionById",{id:l.id}),E("refreshData")},A=X.j(async()=>{try{if(k.save=!0,o.funcExpression=u.value.getValue(),!o.funcName)return g.ElMessage.error("函数名称不可为空");if(!o.funcExpression)return g.ElMessage.error("函数内容不可为空");await q.post("/common/qt/saveOrUpdateSearchFunction",o),g.ElMessage.success("操作成功"),E("refreshData"),o.id||F()}finally{k.save=!1}}),te=l=>new Promise(t=>{const a=e.ref(l.reduce((s,d)=>(s[d]="",s),{})),r=e.ref({}),i=()=>{let s=!0;const d={};return l.forEach(y=>{var M;(M=a.value[y])!=null&&M.trim()||(d[y]=`请输入${y}的值`,s=!1)}),r.value=d,s},I={setup(){return()=>e.h("div",[e.h(K.ElForm,{model:a.value},()=>l.map(s=>e.h(K.ElFormItem,{label:`${s}: `,prop:s,error:r.value[s],"label-width":"90px"},()=>e.h(G.ElInput,{modelValue:a.value[s],"onUpdate:modelValue":d=>{a.value[s]=d,r.value[s]&&delete r.value[s]},placeholder:`请输入 ${s} 的值`,status:r.value[s]?"error":""}))))])}};Q.ElMessageBox({title:"填写变量值用于接口测试",message:e.h(I),showCancelButton:!0,confirmButtonText:"确定",cancelButtonText:"取消",customClass:"variable-input-dialog",beforeClose:async(s,d,y)=>{s!=="confirm"&&(t(!1),y()),await e.nextTick(),i()&&(t({...a.value}),y())}}).catch(()=>t(!1))}),oe=l=>{const t=/\$\{([^}]*)\}/g,a=[];let r;for(;(r=t.exec(l))!==null;)a.push(r[1]);return[...new Set(a)]},le=(l,t)=>l.replace(/\$\{([^}]*)\}/g,(a,r)=>t[r]!==void 0?t[r]:a),L=async l=>{switch(l){case"submit":{let t=u.value.getValue();if(!t)return g.ElMessage.error("函数内容不可为空");if(/\$\{[^}]*\}/.test(t)){const a=oe(t),r=await te(a);if(!r)return;t=le(t,r)}try{k.test=!0;const{body:a}=await q.post("/common/qt/testFactorSelect",{factorSelectExpr:t}),{result:r,detail:i}=a;Object.assign(c,{result:r,detail:i,code:t}),r===1?g.ElMessage.success("测试通过"):(g.ElMessage.error("测试未能通过"),h.value=!0)}finally{k.test=!1}break}case"log":{if(c.result===null)return g.ElMessage.warning("请先进行测试, 等待测试完成后可查看日志");h.value=!0;break}}},D=e.ref(!1),U=e.ref(""),B=e.ref(!1),b=e.ref(""),j=e.ref(""),P=e.ref(null),$=e.ref([]),V=e.reactive({parsedConditions:[],factorSelectExpr:""}),ne=()=>{D.value=!0,b.value=""},ae=()=>{j.value="",b.value="",$.value=[],Object.assign(V,{parsedConditions:[],factorSelectExpr:""})},W=async()=>{var t,a;const l=(t=U.value)==null?void 0:t.trim();if(!l)return g.ElMessage.error("请输入脚本描述");B.value||(ae(),B.value=!0,await pe.sendToNodeVarietyAiHelper({baseUrl:(a=N==null?void 0:N.env)==null?void 0:a.VITE_BASE_URL,token:X.R(),value:l,sessionId:P.value,callback:(r,i)=>{var I;switch(r){case"session":{P.value=i;break}case"node":{const s=$.value.findIndex(d=>d.name===i.name);s===-1?$.value.push(i):$.value[s]=i;break}case"message":{j.value=i;break}case"finish":{B.value=!1;try{const s=JSON.parse(j.value),d=(I=s==null?void 0:s.factorScreen)==null?void 0:I.factorSelectExpr;d?Object.assign(V,{parsedConditions:s.parsedConditions??[],factorSelectExpr:d}):b.value="AI 未能生成有效的因子脚本, 请调整描述后重试"}catch{b.value="AI 返回结果解析失败, 请重试"}break}case"error":{B.value=!1,b.value=typeof i=="string"?i:"AI 生成失败, 请重试";break}}}}))},se=async()=>{var t,a;if(!V.factorSelectExpr)return;if((t=u.value)==null?void 0:t.getValue())try{await Q.ElMessageBox.confirm("当前编辑器已有内容, 将被 AI 生成结果覆盖, 是否继续?","提示",{confirmButtonText:"覆盖",cancelButtonText:"取消",type:"warning"})}catch{return}(a=u.value)==null||a.setValue(V.factorSelectExpr),o.funcExpression=V.factorSelectExpr,D.value=!1,g.ElMessage.success("已插入到编辑器")},re=()=>{v.value.open(u.value)};return e.watch(()=>w.value,l=>{l||(v.value.close(),h.value=!1,D.value=!1)}),R({open:l=>{w.value=!0,e.nextTick(()=>{var t;if((t=u.value)==null||t.resize(),_.value=null,Object.assign(c,{result:null,detail:"",code:""}),l){const a={id:l.id,funcName:l.funcName,funcExpression:l.funcExpression};T(a)}else f.value.length?T(f.value[0]):F()})}}),(l,t)=>{const a=m.ElIcon,r=G.ElInput,i=Y.ElButton,I=Z.ElPopconfirm,s=me.ElEmpty,d=ue.ElScrollbar,y=e.resolveComponent("st-monacoEditor"),M=de.ElDialog,ce=e.resolveComponent("st-varSelectDialog"),ie=fe.ElDivider;return e.openBlock(),e.createBlock(M,{"modal-class":"manage-dialog",modelValue:w.value,"onUpdate:modelValue":t[11]||(t[11]=n=>w.value=n),width:"1600","align-center":"","append-to-body":"",overflow:"",modal:!1,"modal-penetrable":!0,"show-close":!1},{header:e.withCtx(({titleId:n,titleClass:x})=>[e.createElementVNode("div",ve,[e.createElementVNode("div",_e,[e.createElementVNode("span",{id:n,class:e.normalizeClass(x)}," 自定义函数管理面板 ",10,Ve)]),e.createElementVNode("div",xe,[e.createVNode(a,{onClick:t[0]||(t[0]=H=>w.value=!1)},{default:e.withCtx(()=>[e.createVNode(e.unref(m.close_default))]),_:1})])])]),default:e.withCtx(()=>[e.createElementVNode("div",ge,[e.createElementVNode("div",Ne,[e.createElementVNode("div",Ee,[t[13]||(t[13]=e.createElementVNode("span",null,"输入函数关键字",-1)),e.createVNode(r,{modelValue:_.value,"onUpdate:modelValue":t[1]||(t[1]=n=>_.value=n),clearable:""},null,8,["modelValue"]),e.createVNode(i,{type:"primary",onClick:F},{default:e.withCtx(()=>[...t[12]||(t[12]=[e.createTextVNode("新建",-1)])]),_:1})]),e.createVNode(d,{class:"list"},{default:e.withCtx(()=>[f.value.length?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(f.value,n=>(e.openBlock(),e.createElementBlock("div",{key:n.id,class:e.normalizeClass([{"active-list-item":o.id===n.id},"list-item"])},[e.createElementVNode("span",{class:"func-name",onClick:x=>T(n)},e.toDisplayString(n.funcName),9,ke),e.createElementVNode("div",he,[e.createVNode(a,null,{default:e.withCtx(()=>[e.createVNode(e.unref(m.document_copy_default),{onClick:x=>O(n)},null,8,["onClick"])]),_:2},1024),e.createVNode(I,{title:"确认是否删除?","confirm-button-text":"确认","cancel-button-text":"取消",onConfirm:x=>p(n)},{reference:e.withCtx(()=>[e.createVNode(a,{onClick:e.withModifiers(()=>{},["stop"])},{default:e.withCtx(()=>[e.createVNode(e.unref(m.delete_default))]),_:1})]),_:1},8,["onConfirm"])])],2))),128)):(e.openBlock(),e.createBlock(s,{key:1,description:"暂无数据"}))]),_:1})]),e.createElementVNode("div",Ce,[e.createElementVNode("div",ye,[t[19]||(t[19]=e.createElementVNode("span",null,"函数名称:",-1)),e.createVNode(r,{modelValue:o.funcName,"onUpdate:modelValue":t[2]||(t[2]=n=>o.funcName=n)},null,8,["modelValue"]),e.createElementVNode("div",we,[e.createVNode(i,{type:"primary",onClick:e.unref(A),loading:k.save},{default:e.withCtx(()=>[...t[14]||(t[14]=[e.createTextVNode(" 保存 ",-1)])]),_:1},8,["onClick","loading"]),e.createVNode(i,{loading:k.test,onClick:t[3]||(t[3]=n=>L("submit"))},{default:e.withCtx(()=>[...t[15]||(t[15]=[e.createTextVNode(" 测试 ",-1)])]),_:1},8,["loading"]),e.createVNode(i,{icon:e.unref(m.document_default),onClick:t[4]||(t[4]=n=>L("log"))},{default:e.withCtx(()=>[...t[16]||(t[16]=[e.createTextVNode(" 日志明细 ",-1)])]),_:1},8,["icon"]),e.createVNode(i,{type:"primary",icon:e.unref(m.magic_stick_default),onClick:ne},{default:e.withCtx(()=>[...t[17]||(t[17]=[e.createTextVNode(" AI 生成 ",-1)])]),_:1},8,["icon"]),e.createVNode(i,{type:"primary",onClick:re},{default:e.withCtx(()=>[...t[18]||(t[18]=[e.createTextVNode(" 变量选择器 ",-1)])]),_:1})])]),t[20]||(t[20]=e.createElementVNode("div",{class:"tip-box"},"说明: 公式里可以使用变量, 变量名命名格式: ${变量名}, 后续可在应用函数时填写具体值, 系统会自动换算",-1)),e.createVNode(y,{ref_key:"stMonacoEditorRef",ref:u,language:"lua",style:{width:"100%",height:"calc(80vh - 75px)"}},null,512)])]),e.createVNode(M,{"modal-class":"ai-dialog",modelValue:D.value,"onUpdate:modelValue":t[7]||(t[7]=n=>D.value=n),width:"600","align-center":"","append-to-body":"",draggable:"",overflow:"",modal:!1,"modal-penetrable":!0,"show-close":!1,"close-on-click-modal":!1},{header:e.withCtx(({titleId:n,titleClass:x})=>[e.createElementVNode("div",Be,[e.createElementVNode("div",be,[e.createElementVNode("span",{id:n,class:e.normalizeClass(x)}," AI 生成脚本 ",10,qe)]),e.createElementVNode("div",Se,[e.createVNode(a,{onClick:t[5]||(t[5]=H=>D.value=!1)},{default:e.withCtx(()=>[e.createVNode(e.unref(m.close_default))]),_:1})])])]),footer:e.withCtx(()=>[e.createElementVNode("div",Te,[V.factorSelectExpr?(e.openBlock(),e.createBlock(i,{key:0,onClick:W,disabled:B.value},{default:e.withCtx(()=>[...t[21]||(t[21]=[e.createTextVNode(" 重新生成 ",-1)])]),_:1},8,["disabled"])):e.createCommentVNode("",!0),V.factorSelectExpr?(e.openBlock(),e.createBlock(i,{key:1,type:"primary",onClick:se},{default:e.withCtx(()=>[...t[22]||(t[22]=[e.createTextVNode(" 插入到编辑器 ",-1)])]),_:1})):(e.openBlock(),e.createBlock(i,{key:2,type:"primary",loading:B.value,onClick:W},{default:e.withCtx(()=>[...t[23]||(t[23]=[e.createTextVNode(" 生成 ",-1)])]),_:1},8,["loading"]))])]),default:e.withCtx(()=>[e.createElementVNode("div",De,[e.createVNode(r,{modelValue:U.value,"onUpdate:modelValue":t[6]||(t[6]=n=>U.value=n),type:"textarea",rows:3,placeholder:"用自然语言描述脚本逻辑, 例: 收盘价大于10",disabled:B.value},null,8,["modelValue","disabled"]),$.value.length?(e.openBlock(),e.createElementBlock("div",$e,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList($.value,n=>(e.openBlock(),e.createElementBlock("div",{key:n.name,class:"node-item"},[n.status==="success"?(e.openBlock(),e.createBlock(a,{key:0,class:"success"},{default:e.withCtx(()=>[e.createVNode(e.unref(m.circle_check_filled_default))]),_:1})):(e.openBlock(),e.createBlock(a,{key:1,class:"is-loading executing"},{default:e.withCtx(()=>[e.createVNode(e.unref(m.loading_default))]),_:1})),e.createElementVNode("span",null,e.toDisplayString(n.name),1)]))),128))])):e.createCommentVNode("",!0),b.value?(e.openBlock(),e.createElementBlock("div",Ie," ❌ "+e.toDisplayString(b.value),1)):e.createCommentVNode("",!0),V.factorSelectExpr?(e.openBlock(),e.createElementBlock("div",Me,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(V.parsedConditions,(n,x)=>(e.openBlock(),e.createElementBlock("div",{key:x,class:"parsed-condition"},e.toDisplayString(n),1))),128)),e.createElementVNode("pre",Fe,e.toDisplayString(V.factorSelectExpr),1)])):e.createCommentVNode("",!0)])]),_:1},8,["modelValue"]),e.createVNode(ce,{ref_key:"stVarSelectDialogRef",ref:v},null,512),e.createVNode(M,{"modal-class":"log-dialog",modelValue:h.value,"onUpdate:modelValue":t[10]||(t[10]=n=>h.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:x})=>[e.createElementVNode("div",ze,[e.createElementVNode("div",Oe,[e.createElementVNode("span",{id:n,class:e.normalizeClass(x)}," 日志明细 ",10,Ae)]),e.createElementVNode("div",Re,[e.createVNode(a,{onClick:t[8]||(t[8]=H=>h.value=!1)},{default:e.withCtx(()=>[e.createVNode(e.unref(m.close_default))]),_:1})])])]),footer:e.withCtx(()=>[e.createElementVNode("div",je,[e.createVNode(i,{onClick:t[9]||(t[9]=n=>h.value=!1)},{default:e.withCtx(()=>[...t[24]||(t[24]=[e.createTextVNode(" 关闭 ",-1)])]),_:1})])]),default:e.withCtx(()=>[e.createElementVNode("div",Ue,[e.createVNode(d,{class:"code",height:"600px"},{default:e.withCtx(()=>[e.createElementVNode("pre",null,e.toDisplayString(c.code),1)]),_:1}),e.createVNode(ie,{direction:"vertical"}),e.createVNode(d,{height:"600px"},{default:e.withCtx(()=>[e.createElementVNode("pre",{class:e.normalizeClass(c.result===1?"success-log":"error-log")},e.toDisplayString(c.result===1?`✅️ 测试通过
|
|
2
|
+
${c.detail}`:c.detail),3)]),_:1})])]),_:1},8,["modelValue"])]),_:1},8,["modelValue"])}}},Pe=ee._export_sfc(Le,[["__scopeId","data-v-5797123f"]]);const We={class:"custom-function"},He={class:"func-option"},Je={class:"icons"},Ke={__name:"index",props:{size:{type:String,default:"small"},selectWidth:{type:String,default:"200px"}},emits:["insert","actionState"],setup(C,{emit:R}){const{request:z}=e.inject("stConfig"),N=e.ref(null),q=R,u=e.ref(null),v=e.ref(""),E=e.ref([]),S=async()=>{const{body:f}=await z.post("/common/qt/querySearchFunctions");if(E.value=f??[],u.value===null)v.value="";else{const o=E.value.find(({id:c})=>c===u.value);v.value=o?o.funcName:""}},w=f=>{var o;f?u.value=(o=E.value.find(c=>c.funcName===f))==null?void 0:o.id:u.value=null},k=()=>{if(!v.value)return g.ElMessage.error("请先选择自定义函数后, 再执行插入");const{funcName:f,funcExpression:o}=E.value.find(c=>c.funcName===v.value);q("insert",f,o)},_=async(f,o)=>{switch(f){case"open":{N.value.open(),q("actionState","因子筛选","函数管理");break}case"copy":{const c={id:null,funcName:`${o.funcName}-复制`,funcExpression:o.funcExpression};N.value.open(c);break}case"edit":{const c={id:o.id,funcName:o.funcName,funcExpression:o.funcExpression};N.value.open(c);break}case"delete":{await z.post("/common/qt/deleteSearchFunctionById",{id:o.id}),S();break}}};return e.onMounted(()=>{S()}),(f,o)=>{const c=m.ElIcon,h=Z.ElPopconfirm,F=J.ElOption,T=J.ElSelect,O=Y.ElButton;return e.openBlock(),e.createElementBlock("div",We,[e.createVNode(T,{modelValue:v.value,"onUpdate:modelValue":o[0]||(o[0]=p=>v.value=p),size:C.size,placeholder:"自定义函数","no-match-text":"无匹配选项","no-data-text":"无选项数据",clearable:"",filterable:"",onChange:w,style:e.normalizeStyle({width:C.selectWidth})},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(E.value,p=>(e.openBlock(),e.createBlock(F,{key:p.id,label:p.funcName,value:p.funcName,onClick:k},{default:e.withCtx(()=>[e.createElementVNode("div",He,[e.createElementVNode("span",null,e.toDisplayString(p.funcName),1),e.createElementVNode("div",Je,[e.createVNode(c,{onClick:e.withModifiers(A=>_("copy",p),["stop"])},{default:e.withCtx(()=>[e.createVNode(e.unref(m.document_copy_default))]),_:1},8,["onClick"]),e.createVNode(c,{onClick:e.withModifiers(A=>_("edit",p),["stop"])},{default:e.withCtx(()=>[e.createVNode(e.unref(m.edit_default))]),_:1},8,["onClick"]),e.createVNode(h,{title:"确认是否删除?","confirm-button-text":"确认","cancel-button-text":"取消",onConfirm:A=>_("delete",p)},{reference:e.withCtx(()=>[e.createVNode(c,{onClick:e.withModifiers(()=>{},["stop"])},{default:e.withCtx(()=>[e.createVNode(e.unref(m.delete_default))]),_:1})]),_:1},8,["onConfirm"])])])]),_:2},1032,["label","value"]))),128))]),_:1},8,["modelValue","size","style"]),e.createVNode(O,{type:"primary",size:C.size,onClick:k},{default:e.withCtx(()=>[...o[2]||(o[2]=[e.createTextVNode(" 插入 ",-1)])]),_:1},8,["size"]),e.createVNode(O,{type:"primary",size:C.size,onClick:o[1]||(o[1]=p=>_("open"))},{default:e.withCtx(()=>[...o[3]||(o[3]=[e.createTextVNode(" 函数管理 ",-1)])]),_:1},8,["size"]),e.createVNode(Pe,{ref_key:"ManageDialogRef",ref:N,data:E.value,onRefreshData:S},null,8,["data"])])}}},Ge=ee._export_sfc(Ke,[["__scopeId","data-v-d01721a6"]]),Qe={install(C){C.component("st-customFunction",Ge)}};module.exports=Qe;
|