diff --git a/AutoRobot/Windows/Robot/Web/src/DockLayout/DockLayout.vue b/AutoRobot/Windows/Robot/Web/src/DockLayout/DockLayout.vue index 91333e6..5ad0fcf 100644 --- a/AutoRobot/Windows/Robot/Web/src/DockLayout/DockLayout.vue +++ b/AutoRobot/Windows/Robot/Web/src/DockLayout/DockLayout.vue @@ -139,20 +139,23 @@ const onMaximize = (panelId) => { for (const area of floatingAreas.value) { if (area.panels && area.panels.length === 1 && area.panels[0].id === panelId) { // 当区域只包含一个Panel时,切换Area和Panel的最大化状态 - if (area.WindowState === '最大化' || area.WindowState === 'maximized') { + const isCurrentlyMaximized = area.WindowState === '最大化' || area.WindowState === 'maximized' + + // 使用Vue推荐的方式更新响应式数据 + if (isCurrentlyMaximized) { + // 切换为正常状态 area.WindowState = '正常' - // 确保Panel也恢复正常状态 - if (area.panels[0]) { - area.panels[0].maximized = false - } + // 确保Panel也恢复正常状态 - 使用展开运算符创建新对象确保响应式 + area.panels[0] = { ...area.panels[0], maximized: false } } else { + // 切换为最大化状态 area.WindowState = '最大化' - // 同时最大化Panel - if (area.panels[0]) { - area.panels[0].maximized = true - } + // 同时最大化Panel - 使用展开运算符创建新对象确保响应式 + area.panels[0] = { ...area.panels[0], maximized: true } } + console.log('Panel最大化按钮触发,切换Area状态:', area.WindowState) + console.log('Panel最大化状态:', area.panels[0].maximized) break } }