diff --git a/AutoRobot/Windows/Robot/Web/src/DockLayout/Area.vue b/AutoRobot/Windows/Robot/Web/src/DockLayout/Area.vue
index b592bbc..266fddc 100644
--- a/AutoRobot/Windows/Robot/Web/src/DockLayout/Area.vue
+++ b/AutoRobot/Windows/Robot/Web/src/DockLayout/Area.vue
@@ -101,7 +101,7 @@
-
+
@@ -115,6 +115,7 @@
@tabDragStart="() => {}"
@tabDragMove="() => {}"
@tabDragEnd="() => {}"
+ @maximize="onPanelMaximize"
/>
@@ -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)
}
}
diff --git a/AutoRobot/Windows/Robot/Web/src/DockLayout/DockLayout.vue b/AutoRobot/Windows/Robot/Web/src/DockLayout/DockLayout.vue
index ff19353..c172716 100644
--- a/AutoRobot/Windows/Robot/Web/src/DockLayout/DockLayout.vue
+++ b/AutoRobot/Windows/Robot/Web/src/DockLayout/DockLayout.vue
@@ -64,9 +64,21 @@
:title="tabPage.title"
:panels="tabPage.panels"
:tabPosition="'bottom'"
+ @tab-change="onTabChange"
+ @tab-close="onTabClose"
+ @tab-add="onTabAdd"
@tabDragStart="onTabDragStart(area.id, $event)"
@tabDragMove="onTabDragMove(area.id, $event)"
@tabDragEnd="onTabDragEnd"
+ @toggle-collapse="(panelId) => $emit('toggleCollapse', panelId)"
+ @maximize="(panelId) => onMaximize(panelId)"
+ @close="(panelId) => onClosePanel(area.id, panelId)"
+ @toggle-toolbar="(panelId) => $emit('toggleToolbar', panelId)"
+ @drag-start="(event) => $emit('dragStart', event)"
+ @drag-move="(event) => $emit('dragMove', event)"
+ @drag-end="(event) => $emit('dragEnd', event)"
+ @dragover="handleAreaDragOver"
+ @dragleave="handleAreaDragLeave"
>
$emit('maximize', panelId)"
@close="onClosePanel(area.id, panel.id)"
@toggleToolbar="onToggleToolbar"
@dragStart="onPanelDragStart(area.id, $event)"
@@ -94,12 +106,22 @@