深度画布测试保存

This commit is contained in:
lzp
2026-03-19 11:32:23 +08:00
parent cb8bee736f
commit 88b3e8cd31
5 changed files with 13 additions and 7 deletions

View File

@@ -178,7 +178,8 @@
} }
const onWorkbench = async () => { const onWorkbench = async () => {
exportCanvasToImage(canvasManager.canvas).then((url) => { exportCanvasToImage(canvasManager.canvas).then((url) => {
emit('workbench', { url }) const json = canvasManager.getCanvasJSON()
emit('workbench', { url, json })
}) })
} }
</script> </script>

View File

@@ -99,7 +99,7 @@
canvasHeight: props.config.height || 600, canvasHeight: props.config.height || 600,
url: json ? '' : url url: json ? '' : url
}) })
if (!url && json) await canvasManager.loadJSON(json) if (json) await canvasManager.loadJSON(json)
stateManager.onMounted() stateManager.onMounted()
canvasManager.onMounted() canvasManager.onMounted()
@@ -185,7 +185,7 @@
const importCanvasFromLocalStorage = () => { const importCanvasFromLocalStorage = () => {
const json = localStorage.getItem('canvasJSON') const json = localStorage.getItem('canvasJSON')
if (!json) return if (!json) return
canvasManager.loadJSON(json, (success) => { canvasManager.loadJSON(json).then((success) => {
if (success) { if (success) {
console.log('导入成功') console.log('导入成功')
} else { } else {

View File

@@ -19,12 +19,16 @@
const open = (options) => { const open = (options) => {
config.value = options config.value = options
console.log(config.value)
config.value.json = sessionStorage.getItem('canvasJson_' + config.value.id)
dialogVisible.value = true dialogVisible.value = true
} }
// 工作区 // 工作区
const onWorkbench = (options) => { const onWorkbench = (options) => {
dialogVisible.value = false dialogVisible.value = false
config.value.onWorkbench?.(options) const json = options.json
sessionStorage.setItem('canvasJson_' + config.value.id, json)
config.value.onWorkbench?.({ url: options.url, json })
} }
// 关闭 // 关闭
const onClose = () => { const onClose = () => {

View File

@@ -343,10 +343,11 @@ export class LayerManager {
const index = this.canvasManager.getObjects().indexOf(targetLayer); const index = this.canvasManager.getObjects().indexOf(targetLayer);
this.deleteLayerById(targetLayer.info.id, false) this.deleteLayerById(targetLayer.info.id, false)
this.setActiveID(mergedImage.info.id, false) this.setActiveID(mergedImage.info.id, false)
await this.canvasManager.add(mergedImage); await this.canvasManager.add(mergedImage, false);
this.canvasManager.canvas.moveTo(mergedImage, index); this.canvasManager.canvas.moveTo(mergedImage, index);
this.canvasManager.renderAll() this.canvasManager.renderAll()
this.updateLayers() this.updateLayers()
this.stateManager.recordState()
return true; return true;
} }
/** 设置激活对象可擦除 */ /** 设置激活对象可擦除 */

View File

@@ -92,7 +92,7 @@ export class StateManager {
if (!state) return if (!state) return
this.running.value = true this.running.value = true
this.historyIndex.value = index this.historyIndex.value = index
this.canvasManager.loadJSON(state.canvas, () => { this.canvasManager.loadJSON(state.canvas).then(() => {
this.event.emit('canvas:undo', state) this.event.emit('canvas:undo', state)
this.running.value = false this.running.value = false
}) })
@@ -105,7 +105,7 @@ export class StateManager {
if (!state) return if (!state) return
this.running.value = true this.running.value = true
this.historyIndex.value = index this.historyIndex.value = index
this.canvasManager.loadJSON(state.canvas, () => { this.canvasManager.loadJSON(state.canvas).then(() => {
this.event.emit('canvas:redo', state) this.event.emit('canvas:redo', state)
this.running.value = false this.running.value = false
}) })