画布问题id丢失、撤回...
This commit is contained in:
@@ -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() {
|
||||
|
||||
Reference in New Issue
Block a user