diff --git a/AutoRobot/Windows/Robot/Web/src/DockLayout/DockLayout.vue b/AutoRobot/Windows/Robot/Web/src/DockLayout/DockLayout.vue index 54225c9..245a27f 100644 --- a/AutoRobot/Windows/Robot/Web/src/DockLayout/DockLayout.vue +++ b/AutoRobot/Windows/Robot/Web/src/DockLayout/DockLayout.vue @@ -236,7 +236,18 @@ const onMaximize = (event) => { const panelId = event.panelId; const areaId = event.areaId; - if (shouldOperateAreaInsteadOfPanel(areaId)) { + // 检查是否应该操作区域而非面板 + // 1. 只有一个面板时,操作区域 + // 2. 有一个TabPage和多个Panel时,也操作区域 + const shouldOperateArea = shouldOperateAreaInsteadOfPanelFromData(event); + + // 从AreaHandler获取区域状态,检查是否有一个TabPage和多个Panel + const areaState = areaHandler.getAreaState(areaId); + const hasOneTabPageWithMultiplePanels = areaState?.children?.type === 'TabPage' && + Array.isArray(areaState.children.children) && + areaState.children.children.length > 1; + + if (shouldOperateArea || hasOneTabPageWithMultiplePanels) { areaActions.toggleMaximize(areaId); } else { panelActions.maximize(panelId);