epic-designer
Version:
基于vue3的设计器,可视化开发页面表单
2 lines (1 loc) • 2.48 kB
JavaScript
;const t=require("vue");;/* empty css */require("vuedraggable");require("@vueuse/core");require("../../../../../hooks/src/store/index.cjs");const m=require("../../../../../utils/src/manager/pluginManager.cjs"),x=require("./src/EActionEditorItem.vue.cjs"),q=require("./src/EActionModal.vue.cjs"),A=t.defineComponent({__name:"index",props:{eventList:{default:()=>[],type:Array},modelValue:{default:()=>({}),type:Object}},emits:["update:modelValue"],setup(f,{emit:g}){const s=f,y=g,E=m.pluginManager.getComponent("Collapse"),_=m.pluginManager.getComponent("CollapseItem"),i=t.ref(null);let p=0;const a=t.computed({get(){return s.modelValue},set(l){y("update:modelValue",l)}}),u=t.ref([]),v=t.computed(()=>s.eventList.filter(l=>l.events.length)),c=t.computed(()=>s.eventList.flatMap(l=>l.events)),r=t.ref({});c.value.forEach(l=>{r.value[l.type]=t.computed({get(){var e;return((e=a.value)==null?void 0:e[l.type])??[]},set(e){e&&e.length>0?a.value[l.type]=e.map(n=>t.toRaw(n)):delete a.value[l.type]}})}),t.watch(()=>v.value,l=>{l.length>0&&(u.value=l.filter(e=>{for(let n=0;n<e.events.length;n++){const d=e.events[n].type;if(r.value[d].length>0)return!0}return!1}).map(e=>e.title))},{immediate:!0});let o="";function V(l){var e;(e=i.value)==null||e.handleOpen(),o=l}function h(l,e,n){var d;(d=i.value)==null||d.handleOpenEdit(n),p=l,o=e}function k(l){r.value[o][p]=l,a.value[o]=[...r.value[o]??[]]}function C(l){var e;a.value={...a.value,[o]:[...((e=r.value[o])==null?void 0:e.value)||[],l]}}return(l,e)=>(t.openBlock(),t.createElementBlock(t.Fragment,null,[t.createVNode(t.unref(E),{modelValue:u.value,"onUpdate:modelValue":e[1]||(e[1]=n=>u.value=n),"active-key":u.value,"onUpdate:activeKey":e[2]||(e[2]=n=>u.value=n),"expanded-names":u.value,"onUpdate:expandedNames":e[3]||(e[3]=n=>u.value=n)},{default:t.withCtx(()=>[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(v.value,n=>(t.openBlock(),t.createBlock(t.unref(_),{key:n.title,title:n.title,header:n.title,name:n.title},{default:t.withCtx(()=>[t.createVNode(x,{modelValue:a.value,"onUpdate:modelValue":e[0]||(e[0]=d=>a.value=d),"item-events":n.events,"all-events":c.value,events:r.value,onAdd:V,onEdit:h},null,8,["modelValue","item-events","all-events","events"])]),_:2},1032,["title","header","name"]))),128))]),_:1},8,["modelValue","active-key","expanded-names"]),t.createVNode(q,{ref_key:"EActionModalRef",ref:i,onAdd:C,onEdit:k},null,512)],64))}});module.exports=A;