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