UNPKG

gepic

Version:

基于vue3的设计器,可视化开发页面表单

2 lines (1 loc) 5.22 kB
"use strict";const e=require("vue"),d=require("../../../../utils/manager/pluginManager.cjs");require("@vueuse/core");require("../../../../hooks/store/index.cjs");const h=require("../../../../utils/common/data.cjs"),B=require("../../../../utils/common/string.cjs"),M=require("../../../components/tree/src/tree.vue.cjs"),q=require("./EScriptEdit.vue.cjs"),S=require("./EArgsEditor.vue.cjs"),D={class:"rounded epic-modal-action-main"},w={class:"epic-modal-left-panel h-full flex flex-col"},O={class:"flex flex-1 h-0 flex-col"},U={class:"flex-1 h-0"},j={class:"epic-action-select h-30/100 flex flex-col"},A={class:"flex-1 overflow-auto pr-8px"},z=["onClick"],K={class:"text-center pt-42px text-gray-400"},$={class:"epic-modal-right-panel"},T={key:1,class:"text-center pt-42px text-gray-400"},F=e.defineComponent({__name:"EActionModal",emits:["add","edit"],setup(L,{expose:I,emit:_}){const y=d.pluginManager.getComponent("modal"),m=e.ref(!0),p=e.inject("pageSchema"),k=e.inject("pageManager",{}),s=e.ref(!1),u=e.ref([]),c=e.ref(null),N=_,x=e.computed(()=>{var o;return((o=c.value)==null?void 0:o.id)??""}),i=e.computed(()=>{var o;return n.actionItem.type==="component"?c.value?(o=d.pluginManager.getComponentConfings()[c.value.type].config.action)==null?void 0:o.map(t=>({label:t.describe,value:t.type})):[]:n.actionItem.type==="custom"?Object.entries(k.funcs.value).filter(([t,l])=>typeof l=="function").map(([t])=>({label:t,value:t})):n.actionItem.type==="public"?Object.entries(d.pluginManager.publicMethods).map(([t])=>({label:t,value:t})):[]}),v=e.computed(()=>{if(n.actionItem.type==="component"&&c.value){const o=d.pluginManager.getComponentConfings()[c.value.type].config.action,t=o==null?void 0:o.find(l=>l.type===n.actionItem.methodName);if(t!=null&&t.argsConfigs){const l=t.argsConfigs.findIndex(a=>a.label==="设置数据");l!==-1&&(t.argsConfigs[l]={...c.value,label:"设置数据",field:"0",id:B.getUUID()})}return(t==null?void 0:t.argsConfigs)??[]}return[]}),n=e.reactive({actionItem:{type:"custom",methodName:"test",componentId:null},cacheData:{}});function C(){var o;s.value=!0,m.value=!0,n.actionItem.type="custom",n.actionItem.componentId=null,(o=i.value)!=null&&o.length&&r(i.value[0].value)}function E(o){if(s.value=!0,m.value=!1,c.value=null,o.componentId){const t=h.findSchemaById(p.schemas,o.componentId);c.value=t,u.value=[o.componentId]}e.nextTick(()=>{n.actionItem.componentId=o.componentId,n.actionItem.methodName=o.methodName,n.actionItem.type=o.type,n.actionItem.args=o.args})}function V(){if(!n.actionItem.methodName){alert("请先选择动作方法");return}N(m.value?"add":"edit",h.deepClone(e.toRaw(n.actionItem))),f()}function f(){s.value=!1,u.value=[],n.cacheData={}}function g(o){var t;n.actionItem.componentId=null,n.actionItem.type=o,c.value=null,n.actionItem.methodName=null,u.value=[],(t=i.value)!=null&&t.length&&r(i.value[0].value)}function b(o){var t;n.actionItem.args&&(n.cacheData[n.actionItem.componentId+n.actionItem.methodName]=n.actionItem.args),n.actionItem.componentId=o.id,n.actionItem.type="component",n.actionItem.methodName=null,c.value=o.componentSchema,(t=i.value)!=null&&t.length&&r(i.value[0].value)}function r(o){n.actionItem.methodName=o,n.actionItem.args=n.cacheData[n.actionItem.componentId+n.actionItem.methodName]}return I({handleOpen:C,handleOpenEdit:E}),(o,t)=>(e.openBlock(),e.createBlock(e.unref(y),{modelValue:s.value,"onUpdate:modelValue":t[4]||(t[4]=l=>s.value=l),width:"1200px",title:"动作配置",onClose:f,onOk:V},{default:e.withCtx(()=>{var l;return[e.createElementVNode("div",D,[e.createElementVNode("div",w,[e.createElementVNode("div",O,[e.createElementVNode("div",{class:e.normalizeClass(["fun-btn",{checked:n.actionItem.type==="custom"}]),onClick:t[0]||(t[0]=a=>g("custom"))}," 自定义函数 ",2),e.createElementVNode("div",{class:e.normalizeClass(["fun-btn",{checked:n.actionItem.type==="public"}]),onClick:t[1]||(t[1]=a=>g("public"))}," 公共函数 ",2),t[5]||(t[5]=e.createTextVNode(" 组件 ")),e.createElementVNode("div",U,[e.createVNode(e.unref(M),{"selected-keys":u.value,"onUpdate:selectedKeys":t[2]||(t[2]=a=>u.value=a),options:e.unref(p).schemas,onNodeClick:b},null,8,["selected-keys","options"])])]),e.createElementVNode("div",j,[t[6]||(t[6]=e.createElementVNode("div",{class:"mb-2"}," 动作选择 ",-1)),e.createElementVNode("div",A,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.value,a=>(e.openBlock(),e.createElementBlock("div",{key:a.value,class:e.normalizeClass([{checked:a.value===n.actionItem.methodName},"epic-action-item"]),onClick:R=>r(a.value)},[e.createElementVNode("span",null,e.toDisplayString(a.label),1)],10,z))),128)),e.withDirectives(e.createElementVNode("div",K," 当前组件暂无动作 ",512),[[e.vShow,!((l=i.value)!=null&&l.length)]])])])]),e.createElementVNode("div",$,[n.actionItem.type==="custom"?(e.openBlock(),e.createBlock(q,{key:0})):v.value.length===0?(e.openBlock(),e.createElementBlock("div",T," 暂无配置 ")):(e.openBlock(),e.createBlock(S,{key:x.value,modelValue:n.actionItem.args,"onUpdate:modelValue":t[3]||(t[3]=a=>n.actionItem.args=a),"action-args-configs":v.value},null,8,["modelValue","action-args-configs"]))])])]}),_:1},8,["modelValue"]))}});module.exports=F;