From 3c26f50c36d5205ccc3b6556f0bb5654dad7652d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E5=BF=97=E9=B9=8F?= <2916022834@qq.com> Date: Mon, 3 Nov 2025 15:37:18 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E7=94=9F=E6=88=90=E8=A7=86=E9=A2=91?= =?UTF-8?q?=E9=80=89=E6=8B=A9=E5=9B=BE=E7=89=87=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/component/Canvas/ExistsImageList/ToolButton.vue | 1 + src/component/home/tools/poseTransfer/index.vue | 1 + 2 files changed, 2 insertions(+) diff --git a/src/component/Canvas/ExistsImageList/ToolButton.vue b/src/component/Canvas/ExistsImageList/ToolButton.vue index 5c51ff9a..f9606771 100644 --- a/src/component/Canvas/ExistsImageList/ToolButton.vue +++ b/src/component/Canvas/ExistsImageList/ToolButton.vue @@ -159,6 +159,7 @@ onUnmounted(() => { white-space: nowrap; font-size: 1.2rem; z-index: 9999; + pointer-events: none; } .tool-tooltip:before { diff --git a/src/component/home/tools/poseTransfer/index.vue b/src/component/home/tools/poseTransfer/index.vue index 9de45f1e..94ad1517 100644 --- a/src/component/home/tools/poseTransfer/index.vue +++ b/src/component/home/tools/poseTransfer/index.vue @@ -209,6 +209,7 @@ export default defineComponent({ const selectImgItem = (item:any,)=>{ if(item.isChecked){ item.isChecked = !item.isChecked + data.selectImg = {}; return } data.selectImg = item From 33a4d9e398448bfe002f0cad3cebdf2387a7191e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E5=BF=97=E9=B9=8F?= <2916022834@qq.com> Date: Mon, 3 Nov 2025 16:41:54 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E7=94=BB=E5=B8=83=E9=9A=90=E8=97=8F?= =?UTF-8?q?=E5=85=B3=E9=97=AD=E9=94=AE=E7=9B=98=E4=BA=8B=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/component/Canvas/CanvasEditor/index.vue | 13 +++++++++++++ .../managers/events/KeyboardManager.js | 19 +++++++++++++++++++ src/component/home/design/tools.vue | 4 ++++ 3 files changed, 36 insertions(+) diff --git a/src/component/Canvas/CanvasEditor/index.vue b/src/component/Canvas/CanvasEditor/index.vue index 32af587b..63d40b12 100644 --- a/src/component/Canvas/CanvasEditor/index.vue +++ b/src/component/Canvas/CanvasEditor/index.vue @@ -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; diff --git a/src/component/Canvas/CanvasEditor/managers/events/KeyboardManager.js b/src/component/Canvas/CanvasEditor/managers/events/KeyboardManager.js index c97c48d7..b2fd6364 100644 --- a/src/component/Canvas/CanvasEditor/managers/events/KeyboardManager.js +++ b/src/component/Canvas/CanvasEditor/managers/events/KeyboardManager.js @@ -215,6 +215,25 @@ export class KeyboardManager { console.log(`键盘管理器已初始化,平台: ${this.platform}, 触摸设备: ${this.isTouchDevice}`); } + /** + * hide模式下,关闭快捷键 + */ + removeEvents() { + // 移除键盘事件监听 + this.container.removeEventListener("keydown", this._handleKeyDown); + this.container.removeEventListener("keyup", this._handleKeyUp); + + // 如果是触摸设备,移除触摸事件监听 + 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); + } + } + + + /** * 处理键盘按下事件 * @param {KeyboardEvent} event 键盘事件 diff --git a/src/component/home/design/tools.vue b/src/component/home/design/tools.vue index 09764d2e..448a169a 100644 --- a/src/component/home/design/tools.vue +++ b/src/component/home/design/tools.vue @@ -56,6 +56,7 @@ @changeCanvas="changeCanvas" @trigger-library="triggerLibrary" :canvasJSON="canvasJSON" + :hideCanvas="hideCanvas" ref="editCanvas">