From d58e96c7f726fb36d677c6afb958c8f2305d9666 Mon Sep 17 00:00:00 2001 From: zqm Date: Sun, 4 Jan 2026 11:10:25 +0800 Subject: [PATCH] =?UTF-8?q?=E8=BE=B9=E6=A1=86=E8=B0=83=E8=8A=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Windows/Robot/Web/src/DockLayout/Area.vue | 12 ++++++--- .../Robot/Web/src/DockLayout/Panel.vue | 26 +++++++++++++++++-- 2 files changed, 32 insertions(+), 6 deletions(-) diff --git a/AutoRobot/Windows/Robot/Web/src/DockLayout/Area.vue b/AutoRobot/Windows/Robot/Web/src/DockLayout/Area.vue index a821ab5..57df5bd 100644 --- a/AutoRobot/Windows/Robot/Web/src/DockLayout/Area.vue +++ b/AutoRobot/Windows/Robot/Web/src/DockLayout/Area.vue @@ -528,41 +528,45 @@ const onResizeMove = (e) => { // 根据方向调整大小 switch (resizeDirection.value) { case 'nw': + // 左上方向:向左上拖动,宽度增加,高度增加,位置左上移 newWidth = Math.max(200, resizeStartSize.value.width - deltaX) newHeight = Math.max(30, resizeStartSize.value.height - deltaY) newLeft = resizeStartAreaPos.value.left + deltaX newTop = resizeStartAreaPos.value.top + deltaY break case 'ne': + // 右上方向:向右上拖动,宽度增加,高度增加,位置右上移 newWidth = Math.max(200, resizeStartSize.value.width + deltaX) newHeight = Math.max(30, resizeStartSize.value.height - deltaY) newTop = resizeStartAreaPos.value.top + deltaY break case 'sw': + // 左下方向:向左下拖动,宽度增加,高度增加,位置左下移 newWidth = Math.max(200, resizeStartSize.value.width - deltaX) newHeight = Math.max(30, resizeStartSize.value.height + deltaY) newLeft = resizeStartAreaPos.value.left + deltaX break case 'se': + // 右下方向:向右下拖动,宽度增加,高度增加 newWidth = Math.max(200, resizeStartSize.value.width + deltaX) newHeight = Math.max(30, resizeStartSize.value.height + deltaY) break case 'n': - // 拖动上边框时,Area向上边扩展 + // 上方向:向上拖动,高度增加,位置上移 newHeight = Math.max(30, resizeStartSize.value.height - deltaY) - // 当deltaY为负时,鼠标向上移动,增加高度并向上移动位置 newTop = resizeStartAreaPos.value.top + deltaY break case 'e': + // 右方向:向右拖动,宽度增加 newWidth = Math.max(200, resizeStartSize.value.width + deltaX) break case 's': + // 下方向:向下拖动,高度增加 newHeight = Math.max(30, resizeStartSize.value.height + deltaY) break case 'w': - // 拖动左边框时,Area向左边扩展 + // 左方向:向左拖动,宽度增加,位置左移 newWidth = Math.max(200, resizeStartSize.value.width - deltaX) - // 当deltaX为负时,鼠标向左移动,增加宽度并向左移动位置 newLeft = resizeStartAreaPos.value.left + deltaX break } diff --git a/AutoRobot/Windows/Robot/Web/src/DockLayout/Panel.vue b/AutoRobot/Windows/Robot/Web/src/DockLayout/Panel.vue index f0a9e71..f92daab 100644 --- a/AutoRobot/Windows/Robot/Web/src/DockLayout/Panel.vue +++ b/AutoRobot/Windows/Robot/Web/src/DockLayout/Panel.vue @@ -470,9 +470,31 @@ const onResizeStart = (e, direction) => { height: currentPosition.y - startPosition.y }; + // 根据方向正确计算新尺寸 + let newWidth = areaStartState.width; + let newHeight = areaStartState.height; + + // 宽度计算 + if (currentResizeDirection.includes('left')) { + // 左方向:宽度增加 = 原始宽度 - deltaX(因为deltaX为负) + newWidth = areaStartState.width - totalDelta.width; + } else if (currentResizeDirection.includes('right')) { + // 右方向:宽度增加 = 原始宽度 + deltaX + newWidth = areaStartState.width + totalDelta.width; + } + + // 高度计算 + if (currentResizeDirection.includes('top')) { + // 上方向:高度增加 = 原始高度 - deltaY(因为deltaY为负) + newHeight = areaStartState.height - totalDelta.height; + } else if (currentResizeDirection.includes('bottom')) { + // 下方向:高度增加 = 原始高度 + deltaY + newHeight = areaStartState.height + totalDelta.height; + } + const newSize = { - width: areaStartState.width + totalDelta.width, - height: areaStartState.height + totalDelta.height + width: newWidth, + height: newHeight }; const newPosition = {