深度画布测试保存

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 () => {
exportCanvasToImage(canvasManager.canvas).then((url) => {
emit('workbench', { url })
const json = canvasManager.getCanvasJSON()
emit('workbench', { url, json })
})
}
</script>

View File

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

View File

@@ -19,12 +19,16 @@
const open = (options) => {
config.value = options
console.log(config.value)
config.value.json = sessionStorage.getItem('canvasJson_' + config.value.id)
dialogVisible.value = true
}
// 工作区
const onWorkbench = (options) => {
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 = () => {

View File

@@ -343,10 +343,11 @@ export class LayerManager {
const index = this.canvasManager.getObjects().indexOf(targetLayer);
this.deleteLayerById(targetLayer.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.renderAll()
this.updateLayers()
this.stateManager.recordState()
return true;
}
/** 设置激活对象可擦除 */

View File

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