From fba02ccd66fe63121a4128a56cc94e6b8750bbce Mon Sep 17 00:00:00 2001 From: xudan Date: Wed, 10 Sep 2025 10:50:08 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=A2=9E=E5=BC=BA=E4=B8=8A=E4=B8=8B?= =?UTF-8?q?=E6=96=87=E8=8F=9C=E5=8D=95=E9=80=BB=E8=BE=91=EF=BC=8C=E6=96=B0?= =?UTF-8?q?=E5=A2=9E=E5=8F=B3=E9=94=AE=E8=8F=9C=E5=8D=95=E7=8A=B6=E6=80=81?= =?UTF-8?q?=E7=AE=A1=E7=90=86=EF=BC=8C=E9=98=B2=E6=AD=A2=E5=9C=A8=E5=8F=B3?= =?UTF-8?q?=E9=94=AE=E8=8F=9C=E5=8D=95=E6=98=BE=E7=A4=BA=E6=97=B6=E6=9B=B4?= =?UTF-8?q?=E6=96=B0=E9=80=89=E4=B8=AD=E7=8A=B6=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/movement-supervision.vue | 5 +++++ src/services/context-menu/menu-config.service.ts | 2 ++ src/services/context-menu/state-manager.ts | 3 ++- 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/pages/movement-supervision.vue b/src/pages/movement-supervision.vue index 287f2ae..a48b3a0 100644 --- a/src/pages/movement-supervision.vue +++ b/src/pages/movement-supervision.vue @@ -290,6 +290,11 @@ const current = ref<{ type: 'robot' | 'point' | 'line' | 'area'; id: string }>() watch( () => editor.value?.selected.value[0], (v) => { + // 如果右键菜单正在显示,则不更新选中状态 + if (contextMenuState.value.isRightClickActive) { + return; + } + const pen = editor.value?.getPenById(v); if (pen?.id) { current.value = { type: <'point' | 'line' | 'area'>pen.name, id: pen.id }; diff --git a/src/services/context-menu/menu-config.service.ts b/src/services/context-menu/menu-config.service.ts index 809609c..0141882 100644 --- a/src/services/context-menu/menu-config.service.ts +++ b/src/services/context-menu/menu-config.service.ts @@ -120,6 +120,7 @@ export function handleContextMenu( x: parsedData.position.x, y: parsedData.position.y, eventData: parsedData, + isRightClickActive: true, // 标记右键菜单正在显示 ...menuConfig, // 展开具体配置 }); @@ -152,6 +153,7 @@ export function handleContextMenuFromPenData( x: parsedData.position.x, y: parsedData.position.y, eventData: parsedData, + isRightClickActive: true, // 标记右键菜单正在显示 ...menuConfig, // 展开具体配置 }); diff --git a/src/services/context-menu/state-manager.ts b/src/services/context-menu/state-manager.ts index 5513f90..f9669c1 100644 --- a/src/services/context-menu/state-manager.ts +++ b/src/services/context-menu/state-manager.ts @@ -11,6 +11,7 @@ export interface ContextMenuState { eventData?: any; storageLocations?: any[]; robotInfo?: any; + isRightClickActive?: boolean; // 新增:标记右键菜单是否正在显示,用于阻止选中状态更新 } /** @@ -66,7 +67,7 @@ export function createContextMenuManager() { * 关闭菜单 */ function close() { - setState({ visible: false }); + setState({ visible: false, isRightClickActive: false }); } return {