点击Panel最大化

This commit is contained in:
zqm
2025-11-18 13:48:13 +08:00
parent 324e5e99cb
commit d4f3098af7
3 changed files with 38 additions and 7 deletions

View File

@@ -101,7 +101,7 @@
<div class="vs-content">
<!-- 这里是内容区域优先显示slot内容如果没有slot内容则显示接收到的外部内容 -->
<template v-if="$slots.default">
<slot @maximize="onPanelMaximize"></slot>
<slot></slot>
</template>
<!-- 直接显示接收到的外部TabPage内容不需要额外包装 -->
<template v-else-if="receivedContent.length > 0">
@@ -115,6 +115,7 @@
@tabDragStart="() => {}"
@tabDragMove="() => {}"
@tabDragEnd="() => {}"
@maximize="onPanelMaximize"
/>
</template>
</div>
@@ -242,17 +243,25 @@ const areaStyle = computed(() => {
return style
})
const emit = defineEmits(['close', 'update:WindowState', 'update:position', 'dragover', 'dragleave', 'areaDragStart', 'areaDragMove', 'areaDragEnd', 'area-merged'])
const emit = defineEmits(['close', 'update:windowState', 'update:position', 'dragover', 'dragleave', 'areaDragStart', 'areaDragMove', 'areaDragEnd', 'area-merged', 'toggleCollapse', 'maximize', 'close', 'toggleToolbar', 'dragStart', 'dragMove', 'dragEnd'])
// 处理Panel的最大化事件
const onPanelMaximize = (panelId) => {
console.log('🔸 Area接收最大化事件 - Panel ID:', panelId)
// 检查内容区是否只有一个Panel
const panelChildren = $slots.default ? $slots.default() : []
const isSinglePanel = panelChildren.length === 1
console.log('🔸 检查是否单Panel模式:', { panelChildren: panelChildren.length, isSinglePanel })
if (isSinglePanel) {
// 如果只有一个Panel切换Area最大化状态
console.log('🔸 单Panel模式切换Area最大化状态')
onToggleMaximize()
} else {
console.log('🔸 非单Panel模式转发到父组件')
// 如果不是单Panel转发给父组件处理
emit('maximize', panelId)
}
}