From d4f3098af7a60f593057d2a5cee45488638e8a24 Mon Sep 17 00:00:00 2001 From: zqm Date: Tue, 18 Nov 2025 13:48:13 +0800 Subject: [PATCH] =?UTF-8?q?=E7=82=B9=E5=87=BBPanel=E6=9C=80=E5=A4=A7?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Windows/Robot/Web/src/DockLayout/Area.vue | 15 ++++++++--- .../Robot/Web/src/DockLayout/DockLayout.vue | 26 +++++++++++++++++-- .../Robot/Web/src/DockLayout/TabPage.vue | 4 +-- 3 files changed, 38 insertions(+), 7 deletions(-) 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 @@
@@ -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" >