epic-designer
Version:
基于vue3的设计器,可视化开发页面表单
45 lines (44 loc) • 1.19 kB
JavaScript
import { ref as a } from "vue";
function h() {
const u = a([]), l = a([]), e = a(null);
let o = 0;
function i(n, t = "插入组件") {
var v;
t === "加载数据" && ((v = e.value) == null ? void 0 : v.type) === "初始化" && (e.value = {
componentSchema: JSON.stringify(n),
type: t
});
const r = Date.now();
o + 150 > r || (o = r, e.value !== null && (u.value.push(e.value), l.value.splice(0, l.value.length)), e.value = {
componentSchema: JSON.stringify(n),
type: t
}, u.value.length > 60 && u.value.unshift());
}
function s() {
if (u.value.length === 0)
return !1;
const n = u.value.pop();
return e.value !== null && l.value.push(e.value), e.value = n, JSON.parse(n.componentSchema);
}
function c() {
if (l.value.length === 0)
return !1;
const n = l.value.pop();
return e.value !== null && u.value.push(e.value), e.value = n, JSON.parse(n.componentSchema);
}
function f() {
u.value = [], l.value = [], e.value = null;
}
return {
currentRecord: e,
push: i,
recordList: u,
redo: c,
reset: f,
undo: s,
undoList: l
};
}
export {
h as useRevoke
};