diff --git a/src/components/Canvas/DepthCanvas/manager/CanvasManager.ts b/src/components/Canvas/DepthCanvas/manager/CanvasManager.ts index 10d3d38..dc5684c 100644 --- a/src/components/Canvas/DepthCanvas/manager/CanvasManager.ts +++ b/src/components/Canvas/DepthCanvas/manager/CanvasManager.ts @@ -270,7 +270,7 @@ export class CanvasManager { return JSON.stringify(json) } /** 加载画布JSON */ - loadJSON(json: string) { + loadJSON(json: string, rerecord = true) { return new Promise((resolve) => { let jsonObj = null; try { @@ -280,9 +280,11 @@ export class CanvasManager { } if (!jsonObj) return resolve(false) this.canvas.loadFromJSON(jsonObj, () => { + if (rerecord) this.stateManager.clearState() this.resetZoom(false) this.layerManager.updateLayers() this.renderAll() + if (rerecord) this.stateManager.recordState() resolve(true) }) diff --git a/src/components/Canvas/DepthCanvas/manager/StateManager.ts b/src/components/Canvas/DepthCanvas/manager/StateManager.ts index d1c569d..b68be75 100644 --- a/src/components/Canvas/DepthCanvas/manager/StateManager.ts +++ b/src/components/Canvas/DepthCanvas/manager/StateManager.ts @@ -92,7 +92,7 @@ export class StateManager { if (!state) return this.running.value = true this.historyIndex.value = index - this.canvasManager.loadJSON(state.canvas).then(() => { + this.canvasManager.loadJSON(state.canvas, false).then(() => { this.event.emit('canvas:undo', state) this.running.value = false }) @@ -105,7 +105,7 @@ export class StateManager { if (!state) return this.running.value = true this.historyIndex.value = index - this.canvasManager.loadJSON(state.canvas).then(() => { + this.canvasManager.loadJSON(state.canvas, false).then(() => { this.event.emit('canvas:redo', state) this.running.value = false })