fx-epic-designer
Version:
基于vue3的设计器,可视化开发页面表单
2 lines (1 loc) • 1.43 kB
JavaScript
;Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("vue");;/* empty css */require("vuedraggable");const f=require("../common/data.cjs");require("@vueuse/core");require("../../../hooks/src/store/index.cjs");require("./pluginManager.cjs");function m(n,i,p){const r=o.ref([]),l=o.ref([]),e=o.ref(null);let s=0;const a=u=>{try{f.deepCompareAndModify(n,JSON.parse(u.pageSchema));const t=u.selectedId?f.findSchemaById(n.schemas,u.selectedId):void 0;p(t||void 0)}catch(t){console.error("解析历史记录失败:",t)}};function h(u="插入组件"){var c,d,v;if(u==="加载数据"&&((c=e.value)==null?void 0:c.type)==="初始化"){e.value={pageSchema:JSON.stringify(n),selectedId:(d=i.selectedNode)==null?void 0:d.id,type:u};return}const t=Date.now();s+150>t||(s=t,e.value!==null&&(r.value.push(e.value),l.value=[]),e.value={pageSchema:JSON.stringify(n),selectedId:(v=i.selectedNode)==null?void 0:v.id,type:u},r.value.length>60&&r.value.shift())}function g(){if(r.value.length===0)return!1;const u=r.value.pop();return e.value!==null&&l.value.push(e.value),e.value=u,a(u),!0}function q(){if(l.value.length===0)return!1;const u=l.value.pop();return e.value!==null&&r.value.push(e.value),e.value=u,a(u),!0}function y(){r.value=[],l.value=[],e.value=null}return{currentRecord:e,push:h,recordList:r,redo:q,reset:y,undo:g,undoList:l}}exports.useRevoke=m;