UNPKG

ai-form-designer

Version:

vue3+adv的设计器,可视化开发页面表单

2 lines (1 loc) 12 kB
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),h=require("./index-Dv7gCSaY.cjs"),I=require("./icon.vue_vue_type_script_setup_true_lang-DJbUD5AQ.cjs"),B=require("./vuedraggable.umd-7kGAL5Qy.cjs"),S=require("./tree.vue_vue_type_script_setup_true_lang-BaD0QrTC.cjs"),$={class:"epic-event-info"},w=["title"],M={class:"epic-event-btn text-lg flex items-center text-$epic-text-secondary"},O={class:"epic-action-editor-main"},A={class:"epic-editor-item rounded"},U={class:"w-36px flex items-center text-lg"},D={class:"flex-1"},j={key:0},L={key:1},K={key:2},R={class:"epic-action-box text-lg text-$epic-text-medium"},T=["onClick"],F=["onClick"],q=e.defineComponent({__name:"EActionEditorItem",props:{itemEvents:{type:Array,default:()=>[]},allEvents:{type:Array,default:()=>[]},modelValue:{type:Object,default:()=>[]},events:{type:Object,default:()=>({})}},emits:["add","edit","update:modelValue"],setup(k,{emit:E}){const m=k,_=E,v=e.inject("pageSchema");function V(p){_("add",p)}function f(p){return h.findSchemaById(v.schemas,p).label}function u(p,i){var t;const a=o(i);a[i]=m.events[i].filter((N,x)=>p!==x),(t=a[i])!=null&&t.length||delete a[i],_("update:modelValue",a)}function r(p,i,a){_("edit",p,i,a)}function o(p){const i={};return m.allEvents.forEach(a=>{if(!m.events[a.type].length||a.type===p)return!1;i[a.type]=m.events[a.type]}),i}return(p,i)=>(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(k.itemEvents,a=>(e.openBlock(),e.createElementBlock("div",{key:a.type,class:"epic-event-item"},[e.createElementVNode("div",$,[e.createElementVNode("div",{class:"epic-event-label",title:a.describe},e.toDisplayString(a.describe),9,w),e.createElementVNode("div",M,[e.createVNode(e.unref(I._sfc_main),{name:"icon--epic--add-rounded",onClick:t=>V(a.type)},null,8,["onClick"])])]),e.createElementVNode("div",O,[e.createVNode(e.unref(B.draggable),{modelValue:m.events[a.type],"onUpdate:modelValue":t=>m.events[a.type]=t,"item-key":"id","component-data":{type:"transition-group"},group:"option-list",handle:".handle",animation:200},{item:e.withCtx(({element:t,index:N})=>[e.createElementVNode("div",A,[e.createElementVNode("div",U,[e.createVNode(e.unref(I._sfc_main),{class:"mr-2 text-lg cursor-move handle text-$epic-text-medium",name:"icon--epic--drag"})]),e.createElementVNode("div",D,[t.type==="component"?(e.openBlock(),e.createElementBlock("div",j,e.toDisplayString(f(t.componentId)),1)):t.type==="custom"?(e.openBlock(),e.createElementBlock("div",L," 自定义函数 ")):t.type==="public"?(e.openBlock(),e.createElementBlock("div",K," 公共函数 ")):e.createCommentVNode("",!0),e.createTextVNode(" "+e.toDisplayString(t.methodName),1)]),e.createElementVNode("div",R,[e.createElementVNode("div",{class:"epic-edit-btn",onClick:x=>r(N,a.type,t)},[e.createVNode(e.unref(I._sfc_main),{name:"icon--epic--page-info-outline-rounded"})],8,T),e.createElementVNode("div",{class:"epic-del-btn",onClick:x=>u(N,a.type)},[e.createVNode(e.unref(I._sfc_main),{name:"icon--epic--delete-outline-rounded"})],8,F)])])]),_:2},1032,["modelValue","onUpdate:modelValue"])])]))),128))}}),z={class:"h-full flex flex-col"},J=e.defineComponent({__name:"EScriptEdit",setup(k){const E=h.pluginManager.getComponent("monacoEditor"),m={theme:"vs-light",selectOnLineNumbers:!0,minimap:{enabled:!1}},_=e.ref(null),v=e.inject("pageSchema");return(V,f)=>(e.openBlock(),e.createElementBlock("div",z,[f[1]||(f[1]=e.createElementVNode("div",{class:"pb-2"}," 自定义函数编辑 ",-1)),e.createVNode(e.unref(E),{ref_key:"monacoEditorRef",ref:_,autoToggleTheme:"",modelValue:e.unref(v).script,"onUpdate:modelValue":f[0]||(f[0]=u=>e.unref(v).script=u),class:"epic-editor flex-1",config:m,language:"javascript"},null,8,["modelValue"])]))}}),P={class:"epic-attribute-view"},G=["title"],H={class:"epic-attr-input"},Q=e.defineComponent({__name:"EArgsEditor",props:{modelValue:{},actionArgsConfigs:{}},emits:["update:modelValue"],setup(k,{emit:E}){const m=k,_=E,v=e.computed(()=>m.modelValue?JSON.parse(m.modelValue):[]);function V(u){var r;return typeof u.show=="boolean"?u.show:typeof u.show=="function"?(r=u.show)==null?void 0:r.call(u,{values:v.value}):!0}function f(u,r){const o=[...JSON.parse(m.modelValue??"[]")];o[r]=u,_("update:modelValue",JSON.stringify(o))}return(u,r)=>(e.openBlock(),e.createElementBlock("div",P,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(m.actionArgsConfigs,o=>(e.openBlock(),e.createElementBlock("div",{key:o.field+o.type},[e.withDirectives(e.createElementVNode("div",{class:e.normalizeClass(["epic-attr-item",o.layout])},[e.createElementVNode("div",{class:"epic-attr-label",title:o.label},e.toDisplayString(o.label),9,G),e.createElementVNode("div",H,[e.createVNode(e.unref(h._sfc_main),{componentSchema:{...o,componentProps:{...o.componentProps,input:!1,field:void 0,hidden:!1},show:!0,noFormItem:!0},"model-value":v.value[o.field],"onUpdate:modelValue":p=>f(p,o.field)},null,8,["componentSchema","model-value","onUpdate:modelValue"])])],2),[[e.vShow,V(o)]])]))),128))]))}}),W={class:"rounded epic-modal-action-main"},X={class:"epic-modal-left-panel h-full flex flex-col"},Y={class:"flex flex-1 h-0 flex-col"},Z={class:"flex-1 h-0"},ee={class:"epic-action-select h-30/100 flex flex-col"},te={class:"flex-1 overflow-auto pr-8px"},ne=["onClick"],oe={class:"text-center pt-42px text-gray-400"},le={class:"epic-modal-right-panel"},ae={key:1,class:"text-center pt-42px text-gray-400"},ce=e.defineComponent({__name:"EActionModal",emits:["add","edit"],setup(k,{expose:E,emit:m}){const _=h.pluginManager.getComponent("modal"),v=e.ref(!0),V=e.inject("pageSchema"),f=e.inject("pageManager",{}),u=e.ref(!1),r=e.ref([]),o=e.ref(null),p=m,i=e.computed(()=>{var l;return t.actionItem.type==="component"?o.value?(l=h.pluginManager.getComponentConfings()[o.value.type].config.action)==null?void 0:l.map(n=>({label:n.describe,value:n.type})):[]:t.actionItem.type==="custom"?Object.entries(f.funcs.value).filter(([n,y])=>typeof y=="function").map(([n])=>({label:n,value:n})):t.actionItem.type==="public"?Object.entries(h.pluginManager.publicMethods).map(([n])=>({label:n,value:n})):[]}),a=e.computed(()=>{if(t.actionItem.type==="component"&&o.value){const l=h.pluginManager.getComponentConfings()[o.value.type].config.action,n=l==null?void 0:l.find(y=>y.type===t.actionItem.methodName);if(n!=null&&n.argsConfigs){const y=n.argsConfigs.findIndex(g=>g.label==="设置数据");y!==-1&&(n.argsConfigs[y]={...o.value,label:"设置数据",field:"0",id:h.getUUID()})}return(n==null?void 0:n.argsConfigs)??[]}return[]}),t=e.reactive({actionItem:{type:"custom",methodName:"test",componentId:null},cacheData:{}});function N(){var l;u.value=!0,v.value=!0,t.actionItem.type="custom",t.actionItem.componentId=null,(l=i.value)!=null&&l.length&&d(i.value[0].value)}function x(l){if(u.value=!0,v.value=!1,o.value=null,l.componentId){const n=h.findSchemaById(V.schemas,l.componentId);o.value=n,r.value=[l.componentId]}e.nextTick(()=>{t.actionItem.componentId=l.componentId,t.actionItem.methodName=l.methodName,t.actionItem.type=l.type,t.actionItem.args=l.args})}function b(){if(!t.actionItem.methodName){alert("请先选择动作方法");return}p(v.value?"add":"edit",h.deepClone(e.toRaw(t.actionItem))),C()}function C(){u.value=!1,r.value=[],t.cacheData={}}function s(l){var n;t.actionItem.componentId=null,t.actionItem.type=l,o.value=null,t.actionItem.methodName=null,r.value=[],(n=i.value)!=null&&n.length&&d(i.value[0].value)}function c(l){var n;t.actionItem.args&&(t.cacheData[t.actionItem.componentId+t.actionItem.methodName]=t.actionItem.args),t.actionItem.componentId=l.id,t.actionItem.type="component",t.actionItem.methodName=null,o.value=l.componentSchema,(n=i.value)!=null&&n.length&&d(i.value[0].value)}function d(l){t.actionItem.methodName=l,t.actionItem.args=t.cacheData[t.actionItem.componentId+t.actionItem.methodName]}return E({handleOpen:N,handleOpenEdit:x}),(l,n)=>(e.openBlock(),e.createBlock(e.unref(_),{modelValue:u.value,"onUpdate:modelValue":n[4]||(n[4]=y=>u.value=y),class:"w-1200px",width:"1200px",onClose:C,onOk:b,title:"动作配置"},{default:e.withCtx(()=>{var y;return[e.createElementVNode("div",W,[e.createElementVNode("div",X,[e.createElementVNode("div",Y,[e.createElementVNode("div",{class:e.normalizeClass(["fun-btn",{checked:t.actionItem.type==="custom"}]),onClick:n[0]||(n[0]=g=>s("custom"))}," 自定义函数 ",2),e.createElementVNode("div",{class:e.normalizeClass(["fun-btn",{checked:t.actionItem.type==="public"}]),onClick:n[1]||(n[1]=g=>s("public"))}," 公共函数 ",2),n[5]||(n[5]=e.createTextVNode(" 组件 ")),e.createElementVNode("div",Z,[e.createVNode(e.unref(S._sfc_main),{selectedKeys:r.value,"onUpdate:selectedKeys":n[2]||(n[2]=g=>r.value=g),options:e.unref(V).schemas,onNodeClick:c},null,8,["selectedKeys","options"])])]),e.createElementVNode("div",ee,[n[6]||(n[6]=e.createElementVNode("div",{class:"mb-2"},"动作选择",-1)),e.createElementVNode("div",te,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.value,g=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass([{checked:g.value===t.actionItem.methodName},"epic-action-item"]),onClick:ie=>d(g.value),key:g.value},[e.createElementVNode("span",null,e.toDisplayString(g.label),1)],10,ne))),128)),e.withDirectives(e.createElementVNode("div",oe," 当前组件暂无动作 ",512),[[e.vShow,!((y=i.value)!=null&&y.length)]])])])]),e.createElementVNode("div",le,[t.actionItem.type==="custom"?(e.openBlock(),e.createBlock(J,{key:0})):a.value.length===0?(e.openBlock(),e.createElementBlock("div",ae," 暂无配置 ")):(e.openBlock(),e.createBlock(Q,{key:2,modelValue:t.actionItem.args,"onUpdate:modelValue":n[3]||(n[3]=g=>t.actionItem.args=g),actionArgsConfigs:a.value},null,8,["modelValue","actionArgsConfigs"]))])])]}),_:1},8,["modelValue"]))}}),se=e.defineComponent({__name:"index",props:{eventList:{type:Array,default:()=>[]},modelValue:{type:Object}},emits:["update:modelValue"],setup(k,{emit:E}){const m=h.pluginManager.getComponent("Collapse"),_=h.pluginManager.getComponent("CollapseItem"),v=e.ref(null);let V=0;const f=k,u=E,r=e.computed({get(){return f.modelValue},set(s){u("update:modelValue",s)}}),o=e.ref([]),p=e.computed(()=>f.eventList.filter(s=>s.events.length)),i=e.computed(()=>f.eventList.map(s=>s.events).flat()),a=e.ref({});i.value.forEach(s=>{a.value[s.type]=e.computed({get(){var c;return((c=r.value)==null?void 0:c[s.type])??[]},set(c){c&&c.length?r.value[s.type]=c.map(d=>e.toRaw(d)):delete r.value[s.type]}})}),e.watch(()=>p.value,s=>{s.length&&(o.value=s.filter(c=>{for(let d=0;d<c.events.length;d++){const l=c.events[d].type;if(a.value[l].length)return!0}return!1}).map(c=>c.title))},{immediate:!0});let t="";function N(s){var c;(c=v.value)==null||c.handleOpen(),t=s}function x(s,c,d){var l;(l=v.value)==null||l.handleOpenEdit(d),V=s,t=c}function b(s){a.value[t][V]=s,r.value[t]=[...a.value[t]??[]]}function C(s){if(!r.value){r.value={[t]:[...a.value[t]??[],s]};return}r.value[t]=[...a.value[t]??[],s]}return(s,c)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createVNode(e.unref(m),{modelValue:o.value,"onUpdate:modelValue":c[1]||(c[1]=d=>o.value=d),activeKey:o.value,"onUpdate:activeKey":c[2]||(c[2]=d=>o.value=d),"expanded-names":o.value,"onUpdate:expandedNames":c[3]||(c[3]=d=>o.value=d)},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(p.value,d=>(e.openBlock(),e.createBlock(e.unref(_),{key:d.title,title:d.title,header:d.title,name:d.title},{default:e.withCtx(()=>[e.createVNode(q,{modelValue:r.value,"onUpdate:modelValue":c[0]||(c[0]=l=>r.value=l),"item-events":d.events,"all-events":i.value,events:a.value,onAdd:N,onEdit:x},null,8,["modelValue","item-events","all-events","events"])]),_:2},1032,["title","header","name"]))),128))]),_:1},8,["modelValue","activeKey","expanded-names"]),e.createVNode(ce,{ref_key:"EActionModalRef",ref:v,onAdd:C,onEdit:b},null,512)],64))}});exports.default=se;