修复Panel最大化按钮点击后maximized属性未更新的问题,使用Vue响应式更新方式
This commit is contained in:
@@ -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
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user