点击Panel最大化
This commit is contained in:
@@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user