UNPKG

gepic

Version:

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

75 lines (74 loc) 1.69 kB
import { ref as w, watch as p } from "vue"; import { usePageManager as F } from "../../../../utils/manager/pageManager.js"; import { deepClone as d } from "../../../../utils/common/data.js"; function P() { const o = w(!1), i = F(), e = w({}); function c() { return new Promise((a) => { if (o.value) a(); else { const t = p(o, () => { t(), a(); }); } }); } async function u(a = "default") { var n; await c(); const t = (n = e.value) == null ? void 0 : n[a]; if (!t) throw new Error(`表单 [name=${a}] 不存在`); return t; } async function s(a, t) { const n = await u(a); return d(await t(n)); } async function m(a = "default") { return await s(a, (t) => t.getData()); } function f(a, t = "default") { var r; i.setFormData(a, t); const n = (r = e.value) == null ? void 0 : r[t]; n == null || n.clearValidate(); } async function g(a = "default") { return await s(a, async (t) => (await t.validate(), await t.getData())); } async function l(a) { await c(); const t = {}; for (const n in e.value) { const r = e.value[n]; r && (t[n] = d(await a(r))); } return t; } async function y() { return await l((a) => a.getData()); } function D(a) { for (const t in a) f(a[t], t); } async function v() { return await l(async (a) => (await a.validate(), await a.getData())); } return { ready: o, pageManager: i, forms: e, getData: m, setData: f, validate: g, getForms: y, setForms: D, validateAll: v, getFormInstance: u }; } export { P as useBuilder };