UNPKG

snowy-designer

Version:

基于Epic-Designer-Pro版本的设计器,可视化开发页面表单

2 lines (1 loc) 1.63 kB
"use strict";const e=require("vue"),_=require("naive-ui/lib/form"),k={key:0,class:"form-main",style:{height:"100%"}},j=e.defineComponent({__name:"form",props:{componentSchema:{default:()=>({}),require:!0,type:Object}},setup(d,{expose:f}){var u,p;const n=d,v=e.inject("pageManager",{}),o=e.ref(null),m=e.inject("forms",{}),h=e.ref(!0),r=e.reactive({});e.provide("formData",r),v.addFormData(r,(p=(u=n.componentSchema)==null?void 0:u.componentProps)==null?void 0:p.name);function s(){return r}function l(t){Object.assign(r,t)}function g(){var t;return(t=o.value)==null?void 0:t.validate()}function S(){var t;return(t=o.value)==null?void 0:t.restoreValidation()}e.onMounted(async()=>{var t,c,a,i;if(((t=n.componentSchema)==null?void 0:t.type)==="form"&&m.value&&o.value){const P=((a=(c=n.componentSchema)==null?void 0:c.componentProps)==null?void 0:a.name)??((i=n.componentSchema)==null?void 0:i.name)??"default";m.value[P]=o.value,o.value.getData=s,o.value.setData=l}});const y=e.computed(()=>n.componentSchema.componentProps),D=e.computed(()=>n.componentSchema.children??[]);return f({clearValidate:S,form:o,getData:s,setData:l,validate:g}),(t,c)=>h.value?(e.openBlock(),e.createElementBlock("div",k,[e.createVNode(e.unref(_.NForm),e.mergeProps({ref_key:"form",ref:o,model:r},y.value,{style:{height:"100%"}}),{default:e.withCtx(()=>[e.renderSlot(t.$slots,"default",{},()=>[e.renderSlot(t.$slots,"edit-node",{},()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(D.value,a=>e.renderSlot(t.$slots,"node",{componentSchema:a})),256))])])]),_:3},16,["model"])])):e.createCommentVNode("",!0)}});module.exports=j;