epic-designer
Version:
基于vue3的设计器,可视化开发页面表单
2 lines (1 loc) • 2.23 kB
JavaScript
;Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("vue"),S=require("../../../../../manager/src/pageManager.cjs");require("../../../../../manager/src/pluginManager.cjs");;/* empty css */;/* empty css */;/* empty css */require("@vueuse/core");require("../../../../../hooks/src/store/index.cjs");;/* empty css */require("vue-draggable-plus");const s=require("../../../../../utils/src/common/data.cjs");require("../../../../../git/epic/epic-designer/node_modules/.pnpm/jsep@1.4.0/node_modules/jsep/dist/jsep.cjs");function b(){const i=c.ref(!1),u=S.createPageManager(),r=c.ref({});function o(){return new Promise(e=>{if(i.value)e();else{const a=c.watch(i,()=>{a(),e()})}})}async function l(e="default"){var t;await o();const a=Object.keys(r.value||{});if(a.length===1)return r.value[a[0]];const n=(t=r.value)==null?void 0:t[e];if(!n)throw new Error(`表单 [name=${e}] 不存在`);return n}async function f(e,a){const n=await l(e);return s.deepClone(await a(n))}async function m(e="default"){return await f(e,a=>a.getData())}function d(e,a="default"){var w,y,v;const n=s.findSchemas(u.pageSchema.schemas,M=>M.type==="form");n&&n.length===1&&(a=n[0].props.name),u.setFormData(e,a);const t=(w=r.value)==null?void 0:w[a];((y=t==null?void 0:t.clearValidate)==null?void 0:y.call(t))??((v=t==null?void 0:t.restoreValidation)==null||v.call(t))}async function q(e="default"){return await f(e,async a=>(await a.validate(),await a.getData()))}async function g(e){await o();const a={};for(const n in r.value){const t=r.value[n];t&&(a[n]=s.deepClone(await e(t)))}return a}async function h(){return await g(e=>e.getData())}function D(e){for(const a in e)d(e[a],a)}async function p(){return await g(async e=>(await e.validate(),await e.getData()))}function F(){for(const e in r.value){const a=r.value[e];a&&a.resetData()}}return{formInstances:r,getData:m,getFormInstance:l,getForms:h,pageManager:u,ready:i,resetData:F,setData:d,setForms:D,validate:q,validateAll:p}}exports.useBuilder=b;