深度画布测试保存
This commit is contained in:
@@ -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>
|
||||||
|
|||||||
@@ -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 {
|
||||||
|
|||||||
@@ -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 = () => {
|
||||||
|
|||||||
@@ -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;
|
||||||
}
|
}
|
||||||
/** 设置激活对象可擦除 */
|
/** 设置激活对象可擦除 */
|
||||||
|
|||||||
@@ -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
|
||||||
})
|
})
|
||||||
|
|||||||
Reference in New Issue
Block a user