epic-designer
Version:
基于vue3的设计器,可视化开发页面表单
2 lines (1 loc) • 1.56 kB
JavaScript
;Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const u=require("vue");;/* empty css */require("vuedraggable");const y=require("../../../../../utils/src/common/data.cjs"),h=require("../../../../../utils/src/manager/pageManager.cjs");require("../../../../../utils/src/manager/pluginManager.cjs");function M(){const i=u.ref(!1),c=h.usePageManager(),n=u.ref({});function s(){return new Promise(a=>{if(i.value)a();else{const t=u.watch(i,()=>{t(),a()})}})}async function o(a="default"){var e;await s();const t=(e=n.value)==null?void 0:e[a];if(!t)throw new Error(`表单 [name=${a}] 不存在`);return t}async function l(a,t){const e=await o(a);return y.deepClone(await t(e))}async function v(a="default"){return await l(a,t=>t.getData())}function d(a,t="default"){var r,w,g;c.setFormData(a,t);const e=(r=n.value)==null?void 0:r[t];((w=e==null?void 0:e.clearValidate)==null?void 0:w.call(e))??((g=e==null?void 0:e.restoreValidation)==null||g.call(e))}async function D(a="default"){return await l(a,async t=>(await t.validate(),await t.getData()))}async function f(a){await s();const t={};for(const e in n.value){const r=n.value[e];r&&(t[e]=y.deepClone(await a(r)))}return t}async function p(){return await f(a=>a.getData())}function q(a){for(const t in a)d(a[t],t)}async function F(){return await f(async a=>(await a.validate(),await a.getData()))}return{forms:n,getData:v,getFormInstance:o,getForms:p,pageManager:c,ready:i,setData:d,setForms:q,validate:D,validateAll:F}}exports.useBuilder=M;