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