UNPKG

epic-designer

Version:

基于vue3的设计器,可视化开发页面表单

2 lines (1 loc) 1.41 kB
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const u=require("vue");;/* empty css */require("vuedraggable");const w=require("../../../../../utils/src/common/data.cjs"),p=require("../../../../../utils/src/manager/pageManager.cjs");function F(){const i=u.ref(!1),o=p.usePageManager(),n=u.ref({});function c(){return new Promise(a=>{if(i.value)a();else{const t=u.watch(i,()=>{t(),a()})}})}async function s(a="default"){var e;await c();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 s(a);return w.deepClone(await t(e))}async function g(a="default"){return await l(a,t=>t.getData())}function f(a,t="default"){var r;o.setFormData(a,t);const e=(r=n.value)==null?void 0:r[t];e==null||e.clearValidate()}async function y(a="default"){return await l(a,async t=>(await t.validate(),await t.getData()))}async function d(a){await c();const t={};for(const e in n.value){const r=n.value[e];r&&(t[e]=w.deepClone(await a(r)))}return t}async function m(){return await d(a=>a.getData())}function v(a){for(const t in a)f(a[t],t)}async function D(){return await d(async a=>(await a.validate(),await a.getData()))}return{forms:n,getData:g,getFormInstance:s,getForms:m,pageManager:o,ready:i,setData:f,setForms:v,validate:y,validateAll:D}}exports.useBuilder=F;