snowy-designer
Version:
基于Epic-Designer-Pro版本的设计器,可视化开发页面表单
2 lines (1 loc) • 2.79 kB
JavaScript
;const o=require("vue");;/* empty css */require("radix-vue");require("clsx");require("tailwind-merge");require("lucide-vue-next");require("../../../ui-kit/base-ui/src/shadch-ui/button/index.cjs");require("@vueuse/core");require("../../../ui-kit/base-ui/src/shadch-ui/toast/index.cjs");require("vuedraggable");require("lodash");require("../../../utils/src/manager/pluginManager.cjs");require("monaco-editor");require("../../../utils/src/request/index.cjs");require("../../../hooks/src/store/index.cjs");const w=require("../../../hooks/src/logic/form.cjs"),C=require("ant-design-vue"),_={class:"form-main",style:{height:"100%"}},$=o.defineComponent({__name:"form",props:{componentSchema:{default:()=>({type:""})},scrollToFirstError:{type:Boolean,default:!1}},setup(v,{expose:g}){var m,p;const a=v,q=o.inject("pageManager",{}),n=o.ref(null),c=o.inject("forms",{}),{formData:l,setLogicRules:S}=w.useFormLogic(y);q.addFormData(l,(p=(m=a.componentSchema)==null?void 0:m.componentProps)==null?void 0:p.name),o.provide("formData",l),o.watchEffect(()=>{S(a.componentSchema.componentProps.logicRules)});function i(){return l}async function u(){var e,t;try{return await((e=n.value)==null?void 0:e.validateFields())}catch(r){throw a.scrollToFirstError&&((t=n.value)==null||t.scrollToField(r.errorFields[0].name.toString())),r}}function y(){var e;return(e=n.value)==null?void 0:e.clearValidate()}function s(e){Object.assign(l,e)}const F=e=>{var t,r,d,f,h;if(n.value=(t=e.component)==null?void 0:t.exposed,((r=a.componentSchema)==null?void 0:r.type)==="form"&&c.value&&n.value){const P=((f=(d=a.componentSchema)==null?void 0:d.componentProps)==null?void 0:f.name)??((h=a.componentSchema)==null?void 0:h.name)??"default";return n.value.validate=u,c.value[P]=n.value,n.value.getData=i,n.value.setData=s,!1}},b=o.computed(()=>{const e=a.componentSchema.componentProps??{};let t=e.labelCol,r=e.wrapperCol;return e.layout==="vertical"?t=r={span:24}:e.layout==="inline"&&e.labelLayout==="fixed"?(t={},r={flex:1}):e.labelLayout==="fixed"&&(t={flex:`${typeof e.labelWidth=="number"?`${e.labelWidth}px`:e.labelWidth}`},r={flex:1}),{...e,labelCol:t,wrapperCol:r}});function x(e){console.log(e)}const D=o.computed(()=>a.componentSchema.children??[]);return g({form:n,getData:i,setData:s,validate:u}),(e,t)=>(o.openBlock(),o.createElementBlock("div",_,[o.createVNode(o.unref(C.Form),o.mergeProps({model:o.unref(l)},b.value,{style:{height:"100%"},onFinish:x,onVnodeMounted:F}),{default:o.withCtx(()=>[o.renderSlot(e.$slots,"default",{},()=>[o.renderSlot(e.$slots,"edit-node",{},()=>[(o.openBlock(!0),o.createElementBlock(o.Fragment,null,o.renderList(D.value,r=>o.renderSlot(e.$slots,"node",{componentSchema:r})),256))])])]),_:3},16,["model"])]))}});module.exports=$;