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