修复Panel最大化按钮点击后maximized属性未更新的问题,使用Vue响应式更新方式

This commit is contained in:
zqm
2025-11-04 16:16:22 +08:00
parent 2e1b25c53a
commit dd42984092

View File

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