From 1c33d42f99f92cba3b6d168ca27026378a9b7a76 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E6=9D=8E=E5=BF=97=E9=B9=8F?= <2916022834@qq.com>
Date: Thu, 13 Nov 2025 14:54:50 +0800
Subject: [PATCH 1/7] =?UTF-8?q?=E7=94=BB=E5=B8=83=E7=BB=84=E4=BB=B6?=
=?UTF-8?q?=E5=8D=B8=E8=BD=BD=E6=B8=85=E7=90=86=E8=B5=84=E6=BA=90?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../CanvasEditor/components/CropImage.vue | 10 ----------
.../components/SelectMenuPanel.vue | 4 +---
src/component/Canvas/CanvasEditor/index.vue | 18 +++++++++---------
.../CanvasEditor/managers/LayerManager.js | 6 +++---
.../managers/events/KeyboardManager.js | 13 +------------
5 files changed, 14 insertions(+), 37 deletions(-)
diff --git a/src/component/Canvas/CanvasEditor/components/CropImage.vue b/src/component/Canvas/CanvasEditor/components/CropImage.vue
index c2849e03..6eb5d7b7 100644
--- a/src/component/Canvas/CanvasEditor/components/CropImage.vue
+++ b/src/component/Canvas/CanvasEditor/components/CropImage.vue
@@ -277,16 +277,6 @@
clipData.left = x;
clipData.img_width = elInfo.width;
clipData.img_height = elInfo.height;
-
- if (!el.value) return;
- const elh = el.value.offsetHeight;
- const elsh = el.value.scrollHeight;
- const elst = el.value.scrollTop;
- if (y < elst) {
- el.value.scrollTop = y;
- } else if (y + clipInfo.height > elst + elh) {
- el.value.scrollTop = y + clipInfo.height - elh;
- }
};
const mouseup = () => {
window.removeEventListener("mousemove", mousemove);
diff --git a/src/component/Canvas/CanvasEditor/components/SelectMenuPanel.vue b/src/component/Canvas/CanvasEditor/components/SelectMenuPanel.vue
index b7c24f12..c2b5755f 100644
--- a/src/component/Canvas/CanvasEditor/components/SelectMenuPanel.vue
+++ b/src/component/Canvas/CanvasEditor/components/SelectMenuPanel.vue
@@ -279,9 +279,7 @@
layerManager: props.layerManager,
canvas: props.canvas,
toolManager: props.toolManager,
- }).then(res=>{
- console.log("========",res);
- });
+ })
});
};
diff --git a/src/component/Canvas/CanvasEditor/index.vue b/src/component/Canvas/CanvasEditor/index.vue
index bedc9cbb..aebda612 100644
--- a/src/component/Canvas/CanvasEditor/index.vue
+++ b/src/component/Canvas/CanvasEditor/index.vue
@@ -530,15 +530,15 @@ onBeforeUnmount(() => {
// return; // 开发环境下不卸载组件
// }
console.log("onBeforeUnmount 组件卸载,清理资源...");
- // canvasManager?.dispose?.();
- // commandManager?.dispose?.();
- // layerManager?.dispose?.();
- // keyboardManager?.dispose?.();
- // toolManager?.dispose?.();
- // liquifyManager?.dispose?.();
- // selectionManager?.dispose?.();
- // redGreenModeManager?.dispose?.();
- // minimapManager?.dispose?.();
+ canvasManager?.dispose?.();
+ commandManager?.dispose?.();
+ layerManager?.dispose?.();
+ keyboardManager?.dispose?.();
+ toolManager?.dispose?.();
+ liquifyManager?.dispose?.();
+ selectionManager?.dispose?.();
+ redGreenModeManager?.dispose?.();
+// minimapManager?.dispose?.();
canvasManager = null;
commandManager = null;
layerManager = null;
diff --git a/src/component/Canvas/CanvasEditor/managers/LayerManager.js b/src/component/Canvas/CanvasEditor/managers/LayerManager.js
index fc67ea28..ee2d6cc0 100644
--- a/src/component/Canvas/CanvasEditor/managers/LayerManager.js
+++ b/src/component/Canvas/CanvasEditor/managers/LayerManager.js
@@ -2303,9 +2303,9 @@ export class LayerManager {
*/
dispose() {
// 清空画布
- if (this.canvas) {
- this.canvas.clear();
- }
+ // if (this.canvas) {
+ // this.canvas.clear();
+ // }
// 清空图层数据
if (this.layers && this.layers.value) {
diff --git a/src/component/Canvas/CanvasEditor/managers/events/KeyboardManager.js b/src/component/Canvas/CanvasEditor/managers/events/KeyboardManager.js
index d1298dbf..3e76ec9d 100644
--- a/src/component/Canvas/CanvasEditor/managers/events/KeyboardManager.js
+++ b/src/component/Canvas/CanvasEditor/managers/events/KeyboardManager.js
@@ -728,18 +728,7 @@ export class KeyboardManager {
*/
dispose() {
// 移除事件监听
- this.container.removeEventListener("keydown", this._handleKeyDown);
- this.container.removeEventListener("keyup", this._handleKeyUp);
- this.container.removeEventListener("paste", this._handlePaste);
-
- // 如果有触摸事件,也移除它们
- if (this.isTouchDevice) {
- this.container.removeEventListener("touchstart", this._handleTouchStart);
- this.container.removeEventListener("touchmove", this._handleTouchMove);
- this.container.removeEventListener("touchend", this._handleTouchEnd);
- this.container.removeEventListener("touchcancel", this._handleTouchEnd);
- }
-
+ this.removeEvents();
// 清除引用
this.toolManager = null;
this.commandManager = null;
From 0478e95f4f66f7d92fad10e2cc17123fb272bc99 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E6=9D=8E=E5=BF=97=E9=B9=8F?= <2916022834@qq.com>
Date: Thu, 13 Nov 2025 16:07:32 +0800
Subject: [PATCH 2/7] =?UTF-8?q?=E7=94=BB=E5=B8=83=E6=96=87=E5=AD=97?=
=?UTF-8?q?=E5=8F=96=E6=B6=88=E7=BC=96=E8=BE=91=E5=85=B3=E9=97=AD=E6=96=87?=
=?UTF-8?q?=E5=AD=97=E9=9D=A2=E6=9D=BF?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../CanvasEditor/components/TextEditorPanel.vue | 9 ++++++++-
src/component/Canvas/CanvasEditor/index.vue | 14 +++++++-------
2 files changed, 15 insertions(+), 8 deletions(-)
diff --git a/src/component/Canvas/CanvasEditor/components/TextEditorPanel.vue b/src/component/Canvas/CanvasEditor/components/TextEditorPanel.vue
index 33a0c17c..2c01a627 100644
--- a/src/component/Canvas/CanvasEditor/components/TextEditorPanel.vue
+++ b/src/component/Canvas/CanvasEditor/components/TextEditorPanel.vue
@@ -620,12 +620,19 @@ export default {
// 监听显示文本编辑面板事件
document.addEventListener("showTextEditor", showEditor);
document.addEventListener("hideTextEditor", close);
-
+ if(props.canvas) {
+ // props.canvas.on("text:editing:entered", showEditor);
+ props.canvas.on("text:editing:exited", close);
+ }
});
onUnmounted(() => {
document.removeEventListener("showTextEditor", showEditor);
document.removeEventListener("hideTextEditor", close);
+ if(props.canvas) {
+ // props.canvas.off("text:editing:entered", showEditor);
+ props.canvas.off("text:editing:exited", close);
+ }
});
// 返回所有需要在模板中使用的数据和方法
diff --git a/src/component/Canvas/CanvasEditor/index.vue b/src/component/Canvas/CanvasEditor/index.vue
index aebda612..69dcdacd 100644
--- a/src/component/Canvas/CanvasEditor/index.vue
+++ b/src/component/Canvas/CanvasEditor/index.vue
@@ -1209,13 +1209,6 @@ defineExpose({
:activeTool="activeTool"
/>
-
-