From 15b255af42f124fc188289b784d144d97d0ec89c Mon Sep 17 00:00:00 2001 From: luoyifan Date: Fri, 30 May 2025 18:26:14 +0800 Subject: [PATCH] =?UTF-8?q?ESC=20=E9=94=AE=20/=20=E8=87=AA=E5=B7=B1?= =?UTF-8?q?=E8=BF=9E=E6=8E=A5=E8=87=AA=E5=B7=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/designer/menus/EditMenu.ts | 4 ++-- src/model/ModelUtils.ts | 11 +++++++++++ src/model/itemType/ToolboxLine.ts | 6 +++++- 3 files changed, 18 insertions(+), 3 deletions(-) diff --git a/src/designer/menus/EditMenu.ts b/src/designer/menus/EditMenu.ts index e3df32f..1f4b5ff 100644 --- a/src/designer/menus/EditMenu.ts +++ b/src/designer/menus/EditMenu.ts @@ -1,7 +1,7 @@ import { renderIcon } from '@/utils/webutils.ts' import { defineMenu } from '@/runtime/DefineMenu.ts' import SvgCode from '@/components/icons/SvgCode' -import { quickCopyByMouse } from '@/model/ModelUtils.ts' +import { escByKey, quickCopyByMouse } from '@/model/ModelUtils.ts' export default defineMenu((menus) => { menus.insertChildren('modelFile', @@ -66,7 +66,7 @@ export default defineMenu((menus) => { { name: 'edit_property_esc', label: '取消', order: 1, tip: 'key-esc', click() { - system.msg('ESC') + escByKey() } }, { diff --git a/src/model/ModelUtils.ts b/src/model/ModelUtils.ts index 89ca158..b0d3e24 100644 --- a/src/model/ModelUtils.ts +++ b/src/model/ModelUtils.ts @@ -7,6 +7,17 @@ import { computeBoundsTree, disposeBoundsTree } from 'three-mesh-bvh' import { Vector2 } from 'three/src/math/Vector2' import type Toolbox from '@/model/itemType/Toolbox.ts' +export function escByKey() { + // 按下 ESC 键,取消当前操作 + const viewport: Viewport = window['viewport'] + if (!viewport) { + return + } + + viewport.state.cursorMode = 'normal' + system.msg('操作已取消') +} + export function quickCopyByMouse() { // 获取鼠标位置,查看鼠标是否在某个 viewport 的画布上,并取得该 viewport const currentMouseInfo = window['CurrentMouseInfo'] diff --git a/src/model/itemType/ToolboxLine.ts b/src/model/itemType/ToolboxLine.ts index 3dd461f..7d5d9cc 100644 --- a/src/model/itemType/ToolboxLine.ts +++ b/src/model/itemType/ToolboxLine.ts @@ -71,7 +71,11 @@ export default class ToolboxLine extends Toolbox { } }) - if (vv && catchPoint) { + if (catchPoint) { + if (this.startPoint === catchPoint) { + // 自己连接自己,忽略 + return + } // 如果捕获到点,则将线条连接到该点 if (this.startPoint) { this.afterAddPoint(this.startPoint, catchPoint)