gepic
Version:
基于vue3的设计器,可视化开发页面表单
2 lines (1 loc) • 2.07 kB
JavaScript
;const e=require("vue"),x=require("../../node/src/node.vue.cjs"),S=require("../../../../utils/manager/pluginManager.cjs");require("@vueuse/core");require("../../../../hooks/store/index.cjs");const q=require("../../../../utils/common/component.cjs"),C=require("../../../../utils/common/data.cjs"),M=require("../hooks/useBuilder.cjs"),D=r=>Object.freeze(Object.defineProperty({__proto__:null,default:r},Symbol.toStringTag,{value:"Module"})),E={key:0,class:"epic-loading-box"},w={class:"epic-builder-main epic-scoped"},A={class:"epic-loading-box"},F=e.defineComponent({__name:"builder",props:{pageSchema:{},formData:{},disabled:{type:Boolean}},emits:["ready"],setup(r,{expose:l,emit:d}){const p=q.loadAsyncComponent(()=>Promise.resolve().then(()=>D(require("../../asyncLoader/index.vue.cjs")))),u=d,{ready:c,pageManager:t,forms:m,getData:_,setData:s,validate:g,getForms:f,setForms:h,validateAll:v,getFormInstance:y}=M.useBuilder(),a=r;e.watch(()=>a.pageSchema,o=>{C.deepCompareAndModify(t.pageSchema,o)},{immediate:!0,deep:!0}),e.watch(()=>a.formData,o=>{o&&s(o)},{immediate:!0,deep:!0}),e.provide("slots",e.useSlots()),e.provide("pageManager",t),e.provide("forms",m),e.provide("pageSchema",t.pageSchema),e.provide("disabled",e.computed(()=>a.disabled));const n=e.getCurrentInstance(),i=n==null?void 0:n.proxy;function k(){e.nextTick(()=>{c.value=!0,u("ready",t),i&&t.addComponentInstance("builder",i)})}return l({ready:c,pageManager:t,getData:_,setData:s,validate:g,getForms:f,setForms:h,validateAll:v,getFormInstance:y}),(o,N)=>e.unref(S.pluginManager).initialized.value?(e.openBlock(),e.createBlock(e.Suspense,{key:1,onResolve:k},{default:e.withCtx(()=>[e.createElementVNode("div",w,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(t).pageSchema.schemas,(b,B)=>(e.openBlock(),e.createBlock(e.unref(x),{key:B,"component-schema":b},null,8,["component-schema"]))),128))])]),fallback:e.withCtx(()=>[e.createElementVNode("div",A,[e.createVNode(e.unref(p))])]),_:1})):(e.openBlock(),e.createElementBlock("div",E))}});module.exports=F;