UNPKG

epic-designer-dev

Version:

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

77 lines (76 loc) 1.95 kB
import { effectScope as N, ref as c } from "vue"; /* empty css */ import "vuedraggable"; import { deepCompareAndModify as y, findSchemaById as E } from "../common/data.js"; import "@vueuse/core"; import "../../../hooks/src/store/index.js"; import "./pluginManager.js"; function B(l, v, f) { const p = N(), u = c([]), o = c([]), t = c(null), h = 60, m = 150; let s = 0; const a = (e) => { try { const n = JSON.parse(e.pageSchema); y(l, n); const r = e.selectedId ? E(l.schemas, e.selectedId) : void 0; f(r ?? void 0); } catch (n) { console.error("解析历史记录失败:", n); } }, i = (e) => { var n; return { pageSchema: JSON.stringify(l), selectedId: (n = v.selectedNode) == null ? void 0 : n.id, type: e }; }; function g(e = "插入组件") { var r; if (e === "加载数据" && ((r = t.value) == null ? void 0 : r.type) === "初始化") { t.value = i(e); return; } const n = Date.now(); s + m > n || (s = n, t.value !== null && (u.value.push(t.value), o.value = []), t.value = i(e), u.value.length > h && u.value.shift()); } function R() { if (u.value.length === 0) return !1; const e = u.value.pop(); return t.value !== null && o.value.push(t.value), t.value = e, a(e), !0; } function O() { if (o.value.length === 0) return !1; const e = o.value.pop(); return t.value !== null && u.value.push(t.value), t.value = e, a(e), !0; } function d() { u.value = [], o.value = [], t.value = null; } function S() { return u.value.length; } function C() { return o.value.length; } function I() { p.stop(), d(); } return { currentRecord: t, dispose: I, getRedoCount: C, getUndoCount: S, push: g, recordList: u, redo: O, reset: d, undo: R, undoList: o }; } export { B as useRevoke };