UNPKG

epic-designer-dev

Version:

基于vue3的设计器,可视化开发页面表单。在epic-designer的基础上新增了字典选择器

2 lines (1 loc) 1.69 kB
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("vue");;/* empty css */require("vuedraggable");const m=require("../../../../../utils/src/common/data.cjs"),M=require("../../../../../utils/src/manager/pageManager.cjs");require("../../../../../utils/src/manager/pluginManager.cjs");function b(){const i=s.ref(!1),c=M.usePageManager(),r=s.ref({});function o(){return new Promise(a=>{if(i.value)a();else{const e=s.watch(i,()=>{e(),a()})}})}async function l(a="default"){var u;await o();const e=Object.keys(r.value||{});if(e.length===1)return r.value[e[0]];const t=(u=r.value)==null?void 0:u[a];if(!t)throw new Error(`表单 [name=${a}] 不存在`);return t}async function f(a,e){const t=await l(a);return m.deepClone(await e(t))}async function D(a="default"){return await f(a,e=>e.getData())}function d(a,e="default"){var w,y,v;const t=Object.keys(r.value||{}),u=t.length===1?t[0]:e;c.setFormData(a,u);const n=(w=r.value)==null?void 0:w[u];((y=n==null?void 0:n.clearValidate)==null?void 0:y.call(n))??((v=n==null?void 0:n.restoreValidation)==null||v.call(n))}async function h(a="default"){return await f(a,async e=>(await e.validate(),await e.getData()))}async function g(a){await o();const e={};for(const t in r.value){const u=r.value[t];u&&(e[t]=m.deepClone(await a(u)))}return e}async function F(){return await g(a=>a.getData())}function p(a){for(const e in a)d(a[e],e)}async function q(){return await g(async a=>(await a.validate(),await a.getData()))}return{forms:r,getData:D,getFormInstance:l,getForms:F,pageManager:c,ready:i,setData:d,setForms:p,validate:h,validateAll:q}}exports.useBuilder=b;