画布问题id丢失、撤回...

This commit is contained in:
李志鹏
2025-11-05 16:28:37 +08:00
parent b1bb96b6fd
commit 4030f54334
17 changed files with 182 additions and 74 deletions

View File

@@ -114,6 +114,10 @@ const props = defineProps({
type: Boolean,
default: false,
},
hideCanvas: {
type: Boolean,
default: false, // 是否隐藏画布-隐藏关闭部分功能
},
});
// 引用和状态
@@ -171,6 +175,15 @@ function toggleShortcutHelp() {
showShortcutHelp.value = !showShortcutHelp.value;
}
watch(()=>props.hideCanvas, (newVal)=>{
console.log("==========是否隐藏画布",newVal)
if(newVal){
keyboardManager?.removeEvents()
}else {
keyboardManager?.init()
}
})
// 工具选择处理
function handleToolSelect(tool) {
activeTool.value = tool;
@@ -693,25 +706,26 @@ function removeLayer(layerId) {
return;
}
if (canvasManager && canvasManager.canvas) {
const layerToRemove = layers.value.find((l) => l.id === layerId);
if (layerToRemove) {
const elementIds = layerToRemove?.fabricObjects?.map((e) => e.id);
elementIds.forEach((elementId) => {
const objectToRemove = canvasManager.canvas
.getObjects()
.find((obj) => obj.id === elementId);
if (objectToRemove) {
canvasManager.canvas.remove(objectToRemove);
}
});
if (activeLayerId.value === layerId) {
activeElementId.value = null;
}
canvasManager.canvas.renderAll();
}
}
layerManager.removeLayer(layerId);
// 此处删除画布上内容导致撤回操作无效(多余)
// if (canvasManager && canvasManager.canvas) {
// const layerToRemove = layers.value.find((l) => l.id === layerId);
// if (layerToRemove) {
// const elementIds = layerToRemove?.fabricObjects?.map((e) => e.id);
// elementIds.forEach((elementId) => {
// const objectToRemove = canvasManager.canvas
// .getObjects()
// .find((obj) => obj.id === elementId);
// if (objectToRemove) {
// canvasManager.canvas.remove(objectToRemove);
// }
// });
// if (activeLayerId.value === layerId) {
// activeElementId.value = null;
// }
// canvasManager.canvas.renderAll();
// }
// }
}
function triggerImageUpload() {