去掉日志

This commit is contained in:
zqm
2025-11-19 16:06:50 +08:00
parent bb6248b4fa
commit 986c659195
5 changed files with 205 additions and 211 deletions

View File

@@ -258,19 +258,18 @@ const emit = defineEmits(['close', 'update:windowState', 'update:position', 'dra
// 处理Panel的最大化事件 // 处理Panel的最大化事件
const onPanelMaximize = (panelId) => { const onPanelMaximize = (panelId) => {
console.log('🔸 Area接收最大化事件 - Panel ID:', panelId) // // console.log('🔸 Area接收最大化事件 - Panel ID:', panelId)
// 检查内容区是否只有一个Panel // 检查内容区是否只有一个Panel
const panelChildren = $slots.default ? $slots.default() : [] const panelChildren = $slots.default ? $slots.default() : []
const isSinglePanel = panelChildren.length === 1 const isSinglePanel = panelChildren.length === 1
// // console.log('🔸 检查是否单Panel模式:', { panelChildren: panelChildren.length, isSinglePanel })
console.log('🔸 检查是否单Panel模式:', { panelChildren: panelChildren.length, isSinglePanel })
if (isSinglePanel) { if (isSinglePanel) {
console.log('🔸 单Panel模式切换Area最大化状态') // // console.log('🔸 单Panel模式切换Area最大化状态')
onToggleMaximize() onToggleMaximize()
} else { } else {
console.log('🔸 非单Panel模式转发到父组件') // // console.log('🔸 非单Panel模式转发到父组件')
// 如果不是单Panel转发给父组件处理 // 如果不是单Panel转发给父组件处理
emit('maximize', panelId) emit('maximize', panelId)
} }
@@ -571,12 +570,12 @@ onMounted(() => {
// 合并Area内容的方法,只保留合并逻辑 // 处理Area合并内容
const mergeAreaContent = (sourceArea) => { const mergeAreaContent = (sourceArea) => {
console.log(`[Area] ${props.id} 接收到Area合并请求:`, sourceArea) // console.log(`[Area] ${props.id} 接收到Area合并请求:`, sourceArea)
if (!sourceArea) { if (!sourceArea) {
console.warn('[Area] 源Area为空无法合并内容') // console.warn('[Area] 源Area为空无法合并内容')
return false return false
} }
@@ -585,7 +584,7 @@ const mergeAreaContent = (sourceArea) => {
if (isEmpty) { if (isEmpty) {
// 4.2.1 如果目标Area内容区为空将源Area内容区的子组件添加到目标Area内容区 // 4.2.1 如果目标Area内容区为空将源Area内容区的子组件添加到目标Area内容区
console.log('[Area] 目标Area为空添加源Area的子组件') // console.log('[Area] 目标Area为空添加源Area的子组件')
// 处理源Area的所有tabPages // 处理源Area的所有tabPages
if (sourceArea.tabPages && sourceArea.tabPages.length > 0) { if (sourceArea.tabPages && sourceArea.tabPages.length > 0) {
@@ -594,7 +593,7 @@ const mergeAreaContent = (sourceArea) => {
const tabPageId = `merged-tabpage-${tabPage.id}` const tabPageId = `merged-tabpage-${tabPage.id}`
const newPanels = (tabPage.panels || []).map((panel, panelIndex) => { const newPanels = (tabPage.panels || []).map((panel, panelIndex) => {
// 保持原有Panel ID不变确保Vue响应式和状态稳定性 // 保持原有Panel ID不变确保Vue响应式和状态稳定性
console.log(`[Area] 添加Panel: ${panel.id}`) // console.log(`[Area] 添加Panel: ${panel.id}`)
return { return {
...panel, ...panel,
maximized: true maximized: true
@@ -612,7 +611,7 @@ const mergeAreaContent = (sourceArea) => {
panels: newPanels panels: newPanels
}) })
console.log(`[Area] 成功添加TabPage: ${tabPage.title} (${newPanels.length} 个Panel)`) // console.log(`[Area] 成功添加TabPage: ${tabPage.title} (${newPanels.length} 个Panel)`)
}) })
} }
@@ -628,13 +627,13 @@ const mergeAreaContent = (sourceArea) => {
return true return true
} else { } else {
// 4.2.2 如果目标Area内容区已包含TabPage将源Area的每个TabPage添加到目标Area的TabPage中 // 4.2.3 如果目标Area已有TabPage合并TabPage标签页
console.log('[Area] 目标Area已有TabPage合并TabPage标签页') // console.log('[Area] 目标Area已有TabPage合并TabPage标签页')
// 获取第一个现有的TabPage作为合并目标 // 获取第一个现有的TabPage作为合并目标
const existingTabPage = receivedContent.value[0] const existingTabPage = receivedContent.value[0]
if (!existingTabPage) { if (!existingTabPage) {
console.error('[Area] 现有TabPage不存在') // console.error('[Area] 现有TabPage不存在')
return false return false
} }
@@ -643,8 +642,8 @@ const mergeAreaContent = (sourceArea) => {
sourceArea.tabPages.forEach((sourceTabPage, tabIndex) => { sourceArea.tabPages.forEach((sourceTabPage, tabIndex) => {
if (sourceTabPage && sourceTabPage.panels) { if (sourceTabPage && sourceTabPage.panels) {
// 保持原有Panel ID不变避免Vue组件重新创建和状态丢失 // 保持原有Panel ID不变避免Vue组件重新创建和状态丢失
const newPanels = sourceTabPage.panels.map((panel, panelIndex) => { const newPanels = sourceTabPage.panels.map((panel, panelIndex) => {
console.log(`[Area] 合并Panel到现有TabPage: ${panel.id}`) // // console.log(`[Area] 合并Panel到现有TabPage: ${panel.id}`)
return { return {
...panel, ...panel,
maximized: true maximized: true
@@ -652,10 +651,9 @@ const mergeAreaContent = (sourceArea) => {
}) })
// 将新的Panel添加到现有TabPage保持ID连续性 // 将新的Panel添加到现有TabPage保持ID连续性
existingTabPage.tabPage.panels.push(...newPanels) existingTabPage.tabPage.panels.push(...newPanels)
// existingTabPage.panels 是旧引用,保持结构一致性但避免重复添加 // existingTabPage.panels 是旧引用,保持结构一致性但避免重复添加
// // console.log(`[Area] 成功合并 ${newPanels.length} 个Panel到现有TabPage`)
console.log(`[Area] 成功合并 ${newPanels.length} 个Panel到现有TabPage`)
} }
}) })
} }
@@ -668,13 +666,13 @@ const mergeAreaContent = (sourceArea) => {
operation: 'merge-tabpages', operation: 'merge-tabpages',
sourceTabPages: sourceArea.tabPages || [] sourceTabPages: sourceArea.tabPages || []
}) })
// 更新完成
console.log(`[Area] 合并完成现有TabPage共有 ${existingTabPage.tabPage.panels.length} 个Panel`) // // console.log(`[Area] 合并完成现有TabPage共有 ${existingTabPage.tabPage.panels.length} 个Panel`)
return true return true
} }
} catch (error) { } catch (error) {
console.error('[Area] 合并Area内容时出错:', error) // console.error('[Area] 合并Area内容时出错:', error)
return false return false
} }
} }

View File

@@ -539,7 +539,7 @@ const detectMouseArea = (mouseX, mouseY) => {
return null return null
} catch (error) { } catch (error) {
console.warn('检测鼠标区域时出错:', error) // console.warn('检测鼠标区域时出错:', error)
return null return null
} }
} }

View File

@@ -147,21 +147,21 @@ const tabDragState = ref({
// 处理从TabPage转发来的Panel拖拽事件 // 处理从TabPage转发来的Panel拖拽事件
const onPanelDragStartFromTabPage = (areaId, event) => { const onPanelDragStartFromTabPage = (areaId, event) => {
console.log('🔸 DockLayout收到从TabPage转发的Panel拖拽事件:', { areaId, event }) // console.log('🔸 DockLayout收到从TabPage转发的Panel拖拽事件:', { areaId, event })
// 直接调用原始的onPanelDragStart处理函数 // 直接调用原始的onPanelDragStart处理函数
onPanelDragStart(areaId, event) onPanelDragStart(areaId, event)
} }
// 处理从TabPage转发来的Panel拖拽移动事件 // 处理从TabPage转发来的Panel拖拽移动事件
const onPanelDragMoveFromTabPage = (areaId, event) => { const onPanelDragMoveFromTabPage = (areaId, event) => {
console.log('🔸 DockLayout收到从TabPage转发的Panel拖拽移动事件:', { areaId, event }) // console.log('🔸 DockLayout收到从TabPage转发的Panel拖拽移动事件:', { areaId, event })
// 直接调用原始的onPanelDragMove处理函数 // 直接调用原始的onPanelDragMove处理函数
onPanelDragMove(areaId, event) onPanelDragMove(areaId, event)
} }
// 处理从TabPage转发来的Panel拖拽结束事件 // 处理从TabPage转发来的Panel拖拽结束事件
const onPanelDragEndFromTabPage = () => { const onPanelDragEndFromTabPage = () => {
console.log('🔸 DockLayout收到从TabPage转发的Panel拖拽结束事件') // console.log('🔸 DockLayout收到从TabPage转发的Panel拖拽结束事件')
// 直接调用原始的onPanelDragEnd处理函数 // 直接调用原始的onPanelDragEnd处理函数
onPanelDragEnd() onPanelDragEnd()
} }
@@ -196,7 +196,7 @@ const checkMainContentForAreas = () => {
} catch (error) { } catch (error) {
console.error('检查主区域内容时出错:', error) // console.error('检查主区域内容时出错:', error)
hasAreasInMainContent.value = false hasAreasInMainContent.value = false
} }
} }
@@ -304,12 +304,12 @@ const addFloatingPanel = () => {
} }
floatingAreas.value.push(newArea) floatingAreas.value.push(newArea)
console.log('✅ 创建浮动面板成功:', newArea.id, 'z-index:', newZIndex) // console.log('✅ 创建浮动面板成功:', newArea.id, 'z-index:', newZIndex)
console.log('🔍 浮动面板数据结构:', JSON.stringify(newArea, null, 2)) // console.log('🔍 浮动面板数据结构:', JSON.stringify(newArea, null, 2))
// 使用nextTick确保DOM更新后再进行后续操作 // 使用nextTick确保DOM更新后再进行后续操作
nextTick(() => { nextTick(() => {
console.log('🔍 浮动面板已添加到DOMfloatingAreas长度:', floatingAreas.value.length) // console.log('🔍 浮动面板已添加到DOMfloatingAreas长度:', floatingAreas.value.length)
}) })
} }
// 更新区域位置 // 更新区域位置
@@ -434,36 +434,36 @@ const addAreaToHiddenList = (area) => {
...area, ...area,
hiddenAt: new Date().toISOString() hiddenAt: new Date().toISOString()
}) })
console.log('Area已添加到隐藏列表:', area.id) // console.log('Area已添加到隐藏列表:', area.id)
} else { } else {
console.warn('Area已在隐藏列表中:', area.id) // console.warn('Area已在隐藏列表中:', area.id)
} }
} }
// 处理Area合并事件 // 处理Area合并事件
const onAreaMerged = (eventData) => { const onAreaMerged = (eventData) => {
console.log('处理Area合并事件:', eventData) // console.log('处理Area合并事件:', eventData)
const { sourceArea, targetAreaHasContent } = eventData const { sourceArea, targetAreaHasContent } = eventData
// 获取源Area对象 // 获取源Area对象
const sourceAreaObj = floatingAreas.value.find(a => a.id === sourceArea.id) const sourceAreaObj = floatingAreas.value.find(a => a.id === sourceArea.id)
if (!sourceAreaObj) { if (!sourceAreaObj) {
console.warn('找不到源Area:', sourceArea.id) // console.warn('找不到源Area:', sourceArea.id)
return return
} }
// 根据目标Area内容状态执行不同的隐藏逻辑 // 根据目标Area内容状态执行不同的隐藏逻辑
if (targetAreaHasContent) { if (targetAreaHasContent) {
// 目标Area已有内容保存源Area及其TabPage组件到隐藏列表 // 目标Area已有内容保存源Area及其TabPage组件到隐藏列表
console.log('目标Area已有内容保存源Area和TabPage组件到隐藏列表') // console.log('目标Area已有内容保存源Area和TabPage组件到隐藏列表')
addAreaToHiddenList({ addAreaToHiddenList({
...sourceAreaObj, ...sourceAreaObj,
tabPages: [...sourceAreaObj.tabPages] // 深拷贝TabPages tabPages: [...sourceAreaObj.tabPages] // 深拷贝TabPages
}) })
} else { } else {
// 目标Area为空仅保存源Area到隐藏列表 // 目标Area为空仅保存源Area到隐藏列表
console.log('目标Area为空保存源Area到隐藏列表') // console.log('目标Area为空保存源Area到隐藏列表')
addAreaToHiddenList(sourceAreaObj) addAreaToHiddenList(sourceAreaObj)
} }
@@ -471,23 +471,23 @@ const onAreaMerged = (eventData) => {
const sourceIndex = floatingAreas.value.findIndex(a => a.id === sourceArea.id) const sourceIndex = floatingAreas.value.findIndex(a => a.id === sourceArea.id)
if (sourceIndex !== -1) { if (sourceIndex !== -1) {
floatingAreas.value.splice(sourceIndex, 1) floatingAreas.value.splice(sourceIndex, 1)
console.log('源Area已从浮动区域移除:', sourceArea.id) // console.log('源Area已从浮动区域移除:', sourceArea.id)
} }
} }
// Panel拖拽开始 // Panel拖拽开始
const onPanelDragStart = (areaId, event) => { const onPanelDragStart = (areaId, event) => {
console.log('=== PANEL拖拽开始调试 ===') // console.log('=== PANEL拖拽开始调试 ===')
console.log('areaId:', areaId) // console.log('areaId:', areaId)
console.log('event:', event) // console.log('event:', event)
console.log('event.clientX:', event?.clientX) // console.log('event.clientX:', event?.clientX)
console.log('event.clientY:', event?.clientY) // console.log('event.clientY:', event?.clientY)
console.log('event.panelId:', event?.panelId) // console.log('event.panelId:', event?.panelId)
const area = floatingAreas.value.find(a => a.id === areaId) const area = floatingAreas.value.find(a => a.id === areaId)
console.log('找到的area:', area) // console.log('找到的area:', area)
console.log('area.tabPages.length:', area?.tabPages?.length) // console.log('area.tabPages.length:', area?.tabPages?.length)
console.log('area.tabPages[0].panels.length:', area?.tabPages?.[0]?.panels?.length) // console.log('area.tabPages[0].panels.length:', area?.tabPages?.[0]?.panels?.length)
// 只有当Area中只有一个TabPage且该TabPage中只有一个Panel时才允许通过Panel标题栏移动Area // 只有当Area中只有一个TabPage且该TabPage中只有一个Panel时才允许通过Panel标题栏移动Area
if (area && area.tabPages && area.tabPages.length === 1 && area.tabPages[0].panels && area.tabPages[0].panels.length === 1) { if (area && area.tabPages && area.tabPages.length === 1 && area.tabPages[0].panels && area.tabPages[0].panels.length === 1) {
@@ -496,7 +496,7 @@ const onPanelDragStart = (areaId, event) => {
const clientY = event.clientY || (typeof event === 'object' ? event.clientY : event?.clientY) const clientY = event.clientY || (typeof event === 'object' ? event.clientY : event?.clientY)
if (clientX === undefined || clientY === undefined) { if (clientX === undefined || clientY === undefined) {
console.error('无法获取有效的鼠标位置信息:', event) // console.error('无法获取有效的鼠标位置信息:', event)
return return
} }
@@ -542,13 +542,13 @@ const onPanelDragStart = (areaId, event) => {
// Panel拖拽移动 // Panel拖拽移动
const onPanelDragMove = (areaId, event) => { const onPanelDragMove = (areaId, event) => {
console.log('=== PANEL拖拽移动调试 ===') // console.log('=== PANEL拖拽移动调试 ===')
console.log('areaId:', areaId) // console.log('areaId:', areaId)
console.log('panelDragState.isDragging:', panelDragState.value.isDragging) // console.log('panelDragState.isDragging:', panelDragState.value.isDragging)
console.log('panelDragState.currentAreaId:', panelDragState.value.currentAreaId) // console.log('panelDragState.currentAreaId:', panelDragState.value.currentAreaId)
console.log('event:', event) // console.log('event:', event)
console.log('event.clientX:', event?.clientX) // console.log('event.clientX:', event?.clientX)
console.log('event.clientY:', event?.clientY) // console.log('event.clientY:', event?.clientY)
if (panelDragState.value.isDragging && panelDragState.value.currentAreaId === areaId) { if (panelDragState.value.isDragging && panelDragState.value.currentAreaId === areaId) {
const area = floatingAreas.value.find(a => a.id === areaId) const area = floatingAreas.value.find(a => a.id === areaId)
@@ -591,7 +591,7 @@ const onPanelDragMove = (areaId, event) => {
// 根据鼠标位置动态更新停靠区域 // 根据鼠标位置动态更新停靠区域
updateDockZoneByMousePosition(clientX, clientY) updateDockZoneByMousePosition(clientX, clientY)
// 调试信息 // 调试信息(已注释)
} }
} }
@@ -599,11 +599,11 @@ const onPanelDragMove = (areaId, event) => {
// Panel拖拽结束 // Panel拖拽结束
const onPanelDragEnd = () => { const onPanelDragEnd = () => {
console.log('=== PANEL拖拽结束调试 ===') // console.log('=== PANEL拖拽结束调试 ===')
console.log('panelDragState.isDragging:', panelDragState.value.isDragging) // console.log('panelDragState.isDragging:', panelDragState.value.isDragging)
console.log('panelDragState.currentAreaId:', panelDragState.value.currentAreaId) // console.log('panelDragState.currentAreaId:', panelDragState.value.currentAreaId)
console.log('activeDockZone:', activeDockZone.value) // console.log('activeDockZone:', activeDockZone.value)
console.log('currentMousePosition:', currentMousePosition.value) // console.log('currentMousePosition:', currentMousePosition.value)
panelDragState.value.isDragging = false panelDragState.value.isDragging = false
const currentAreaId = panelDragState.value.currentAreaId const currentAreaId = panelDragState.value.currentAreaId
@@ -615,9 +615,9 @@ const onPanelDragEnd = () => {
// 处理中心停靠 // 处理中心停靠
const result = handleCenterDocking(currentAreaId) const result = handleCenterDocking(currentAreaId)
if (!result.success) { if (!result.success) {
console.warn('中心停靠失败:', result.message) // console.warn('中心停靠失败:', result.message)
} else { } else {
console.log('中心停靠成功:', result.message) // console.log('中心停靠成功:', result.message)
} }
} }
@@ -684,7 +684,7 @@ const onAreaDragMove = (areaId, event) => {
// Area拖拽结束 // Area拖拽结束
const onAreaDragEnd = (areaId, event) => { const onAreaDragEnd = (areaId, event) => {
console.log('[DockLayout] Area拖拽结束:', { areaId, event, activeDockZone: activeDockZone.value }) // console.log('[DockLayout] Area拖拽结束:', { areaId, event, activeDockZone: activeDockZone.value })
// 清理拖拽状态 // 清理拖拽状态
panelDragState.value.isDragging = false panelDragState.value.isDragging = false
@@ -693,20 +693,20 @@ const onAreaDragEnd = (areaId, event) => {
// 3.1 在onAreaDragEnd方法中添加中心停靠检测 // 3.1 在onAreaDragEnd方法中添加中心停靠检测
// 确保只有在独立中心指示器区域内释放才执行停靠 // 确保只有在独立中心指示器区域内释放才执行停靠
if (activeDockZone.value === 'center' && isMouseInCenterIndicator(currentMousePosition.value.x, currentMousePosition.value.y)) { if (activeDockZone.value === 'center' && isMouseInCenterIndicator(currentMousePosition.value.x, currentMousePosition.value.y)) {
console.log('[DockLayout] 检测到中心停靠区域,鼠标位置:', currentMousePosition.value) // console.log('[DockLayout] 检测到中心停靠区域,鼠标位置:', currentMousePosition.value)
// 处理中心停靠 // 处理中心停靠
const result = handleCenterDocking(areaId) const result = handleCenterDocking(areaId)
if (!result.success) { if (!result.success) {
console.warn('Area中心停靠失败:', result.message) // console.warn('Area中心停靠失败:', result.message)
} else { } else {
console.log('Area中心停靠成功:', result.message) // console.log('Area中心停靠成功:', result.message)
} }
} else { } else {
console.log('[DockLayout] 未检测到有效的中心停靠:', { // console.log('[DockLayout] 未检测到有效的中心停靠:', {
activeDockZone: activeDockZone.value, // activeDockZone: activeDockZone.value,
mousePosition: currentMousePosition.value, // mousePosition: currentMousePosition.value,
isInCenter: isMouseInCenterIndicator(currentMousePosition.value?.x || 0, currentMousePosition.value?.y || 0) // isInCenter: isMouseInCenterIndicator(currentMousePosition.value?.x || 0, currentMousePosition.value?.y || 0)
}) // })
} }
// 隐藏停靠指示器 // 隐藏停靠指示器
@@ -724,7 +724,7 @@ const onTabDragStart = (areaId, event) => {
const clientY = event.clientY || (typeof event === 'object' ? event.y : event?.y) const clientY = event.clientY || (typeof event === 'object' ? event.y : event?.y)
if (clientX === undefined || clientY === undefined) { if (clientX === undefined || clientY === undefined) {
console.error('无法获取有效的鼠标位置信息:', event) // console.error('无法获取有效的鼠标位置信息:', event)
return return
} }
@@ -830,9 +830,9 @@ const onTabDragEnd = () => {
// 处理中心停靠 // 处理中心停靠
const result = handleCenterDocking(currentAreaId) const result = handleCenterDocking(currentAreaId)
if (!result.success) { if (!result.success) {
console.warn('中心停靠失败:', result.message) // console.warn('中心停靠失败:', result.message)
} else { } else {
console.log('中心停靠成功:', result.message) // console.log('中心停靠成功:', result.message)
} }
} }
@@ -928,14 +928,14 @@ const updateDockZoneByMousePosition = (mouseX, mouseY) => {
if (centerDistance <= centerRadius) { if (centerDistance <= centerRadius) {
newActiveZone = 'center' newActiveZone = 'center'
console.log('[DockLayout] 主区域为空,检测到中心停靠区域:', { // console.log('[DockLayout] 主区域为空,检测到中心停靠区域:', {
mouseX, mouseY, // mouseX, mouseY,
relativeX: relativeX.toFixed(3), // relativeX: relativeX.toFixed(3),
relativeY: relativeY.toFixed(3), // relativeY: relativeY.toFixed(3),
centerDistance: centerDistance.toFixed(3), // centerDistance: centerDistance.toFixed(3),
centerRadius: centerRadius, // centerRadius: centerRadius,
newActiveZone // newActiveZone
}) // })
} }
} else { } else {
// 主区域不为空时:显示所有指示器选项 // 主区域不为空时:显示所有指示器选项
@@ -958,7 +958,7 @@ const updateDockZoneByMousePosition = (mouseX, mouseY) => {
if (activeDockZone.value !== newActiveZone) { if (activeDockZone.value !== newActiveZone) {
const oldZone = activeDockZone.value const oldZone = activeDockZone.value
activeDockZone.value = newActiveZone activeDockZone.value = newActiveZone
console.log('[DockLayout] 停靠区域更新:', { from: oldZone, to: newActiveZone }) // console.log('[DockLayout] 停靠区域更新:', { from: oldZone, to: newActiveZone })
// 如果激活的区域不为空,显示指示器;如果为空,隐藏指示器 // 如果激活的区域不为空,显示指示器;如果为空,隐藏指示器
// 但在拖拽过程中,始终保持中心指示器显示 // 但在拖拽过程中,始终保持中心指示器显示
@@ -970,7 +970,7 @@ const updateDockZoneByMousePosition = (mouseX, mouseY) => {
} }
} }
} catch (error) { } catch (error) {
console.warn('更新停靠区域时出错:', error) // console.warn('更新停靠区域时出错:', error)
} }
} }
@@ -1101,14 +1101,14 @@ const isMouseInCenterIndicator = (mouseX, mouseY) => {
// 查找独立中心指示器元素 // 查找独立中心指示器元素
const centerIndicator = dockLayoutRef.value.querySelector('.center-main-indicator') const centerIndicator = dockLayoutRef.value.querySelector('.center-main-indicator')
if (!centerIndicator) { if (!centerIndicator) {
console.log('未找到.center-main-indicator元素') // console.log('未找到.center-main-indicator元素')
return false return false
} }
// 检查元素是否可见 // 检查元素是否可见
const style = window.getComputedStyle(centerIndicator) const style = window.getComputedStyle(centerIndicator)
if (style.display === 'none' || style.visibility === 'hidden' || style.opacity === '0') { if (style.display === 'none' || style.visibility === 'hidden' || style.opacity === '0') {
console.log('独立中心指示器被隐藏') // console.log('独立中心指示器被隐藏')
return false return false
} }
@@ -1116,17 +1116,17 @@ const isMouseInCenterIndicator = (mouseX, mouseY) => {
const isInIndicator = mouseX >= rect.left && mouseX <= rect.right && const isInIndicator = mouseX >= rect.left && mouseX <= rect.right &&
mouseY >= rect.top && mouseY <= rect.bottom mouseY >= rect.top && mouseY <= rect.bottom
console.log('独立中心指示器检测:', { // console.log('独立中心指示器检测:', {
mouseX, mouseY, // mouseX, mouseY,
indicatorRect: rect, // indicatorRect: rect,
isInIndicator, // isInIndicator,
showDockIndicator: showDockIndicator.value, // showDockIndicator: showDockIndicator.value,
activeDockZone: activeDockZone.value // activeDockZone: activeDockZone.value
}) // })
return isInIndicator return isInIndicator
} catch (error) { } catch (error) {
console.warn('检查独立中心指示器区域时出错:', error) // console.warn('检查独立中心指示器区域时出错:', error)
return false return false
} }
} }
@@ -1157,7 +1157,7 @@ const canDockToCenter = (sourceArea, targetArea) => {
if (targetArea === mainAreaRef.value) { if (targetArea === mainAreaRef.value) {
// Area级别停靠支持将源Area的内容移动到主区域 // Area级别停靠支持将源Area的内容移动到主区域
// 不再要求主区域完全为空允许Area停靠 // 不再要求主区域完全为空允许Area停靠
console.log('Area级别停靠源Area可停靠到主区域') // console.log('Area级别停靠源Area可停靠到主区域')
} else { } else {
// 对于其他目标Area的验证逻辑可以后续扩展 // 对于其他目标Area的验证逻辑可以后续扩展
return { return {
@@ -1221,7 +1221,7 @@ const canDockToCenter = (sourceArea, targetArea) => {
* @returns {Object} 处理结果 {success: boolean, message: string} * @returns {Object} 处理结果 {success: boolean, message: string}
*/ */
const handleCenterDocking = (sourceAreaId) => { const handleCenterDocking = (sourceAreaId) => {
console.log('开始处理中心停靠:', sourceAreaId) // console.log('开始处理中心停靠:', sourceAreaId)
// 1. 查找源Area // 1. 查找源Area
const sourceArea = floatingAreas.value.find(a => a.id === sourceAreaId) const sourceArea = floatingAreas.value.find(a => a.id === sourceAreaId)
@@ -1241,7 +1241,7 @@ const handleCenterDocking = (sourceAreaId) => {
} }
} }
console.log('停靠验证通过:', validationResult.reason) // console.log('停靠验证通过:', validationResult.reason)
try { try {
// 3. 根据策略执行停靠逻辑 // 3. 根据策略执行停靠逻辑
@@ -1253,7 +1253,7 @@ const handleCenterDocking = (sourceAreaId) => {
return handleSimpleAreaDocking(sourceArea) return handleSimpleAreaDocking(sourceArea)
} }
} catch (error) { } catch (error) {
console.error('停靠处理过程中发生错误:', error) // console.error('停靠处理过程中发生错误:', error)
return { return {
success: false, success: false,
message: `停靠过程中发生错误: ${error.message}` message: `停靠过程中发生错误: ${error.message}`
@@ -1270,29 +1270,29 @@ const handleCenterDocking = (sourceAreaId) => {
*/ */
// 合并TabPage标签页的核心处理函数 // 合并TabPage标签页的核心处理函数
const handleMergeTabpagesDocking = (sourceArea) => { const handleMergeTabpagesDocking = (sourceArea) => {
console.log(`[DockLayout] 开始合并TabPage标签页源Area:`, sourceArea) // console.log(`[DockLayout] 开始合并TabPage标签页源Area:`, sourceArea)
try { try {
// 验证源Area是否有效 // 验证源Area是否有效
if (!sourceArea || !sourceArea.tabPages || sourceArea.tabPages.length === 0) { if (!sourceArea || !sourceArea.tabPages || sourceArea.tabPages.length === 0) {
console.warn('[DockLayout] 源Area无效或没有TabPage无法执行合并操作') // console.warn('[DockLayout] 源Area无效或没有TabPage无法执行合并操作')
return null return null
} }
// 查找主区域的Area组件 // 查找主区域的Area组件
const mainArea = mainAreaRef.value const mainArea = mainAreaRef.value
if (!mainArea) { if (!mainArea) {
console.error('[DockLayout] 找不到主区域引用') // console.error('[DockLayout] 找不到主区域引用')
return null return null
} }
console.log('[DockLayout] 使用新的mergeAreaContent方法合并TabPage') // console.log('[DockLayout] 使用新的mergeAreaContent方法合并TabPage')
const success = mainArea.mergeAreaContent(sourceArea) const success = mainArea.mergeAreaContent(sourceArea)
if (success) { if (success) {
const newTabPageId = `merged-${Date.now()}` const newTabPageId = `merged-${Date.now()}`
const panelsCount = sourceArea.tabPages[0]?.panels?.length || 0 const panelsCount = sourceArea.tabPages[0]?.panels?.length || 0
console.log(`[DockLayout] 成功合并 ${panelsCount} 个Panel到主区域TabPage: ${newTabPageId}`) // console.log(`[DockLayout] 成功合并 ${panelsCount} 个Panel到主区域TabPage: ${newTabPageId}`)
return { return {
success: true, success: true,
@@ -1301,11 +1301,11 @@ const handleMergeTabpagesDocking = (sourceArea) => {
} }
} }
console.error('[DockLayout] mergeAreaContent方法执行失败') // console.error('[DockLayout] mergeAreaContent方法执行失败')
return null return null
} catch (error) { } catch (error) {
console.error('[DockLayout] 合并TabPage时发生错误:', error) // console.error('[DockLayout] 合并TabPage时发生错误:', error)
return null return null
} }
} }
@@ -1319,12 +1319,12 @@ const findOrCreateMainAreaTabPage = () => {
// 检查主区域是否已经接收了内容 // 检查主区域是否已经接收了内容
if (mainAreaRef.value && mainAreaRef.value.receivedContent) { if (mainAreaRef.value && mainAreaRef.value.receivedContent) {
const existingContent = mainAreaRef.value.receivedContent const existingContent = mainAreaRef.value.receivedContent
console.log('检查主区域已接收内容数量:', existingContent.length) // console.log('检查主区域已接收内容数量:', existingContent.length)
if (existingContent.length > 0) { if (existingContent.length > 0) {
// 找到现有的TabPage内容 // 找到现有的TabPage内容
const existingTabPage = existingContent[0] // 只使用第一个TabPage const existingTabPage = existingContent[0] // 只使用第一个TabPage
console.log('找到现有的TabPage:', existingTabPage.title) // console.log('找到现有的TabPage:', existingTabPage.title)
return { return {
success: true, success: true,
@@ -1337,7 +1337,7 @@ const findOrCreateMainAreaTabPage = () => {
// 如果主区域没有内容现在不再主动创建空TabPage // 如果主区域没有内容现在不再主动创建空TabPage
// 因为在合并逻辑中Area会自动根据需要创建TabPage // 因为在合并逻辑中Area会自动根据需要创建TabPage
console.log('主区域没有现有TabPage将通过合并操作自动创建') // console.log('主区域没有现有TabPage将通过合并操作自动创建')
return { return {
success: true, success: true,
@@ -1347,7 +1347,7 @@ const findOrCreateMainAreaTabPage = () => {
} }
} catch (error) { } catch (error) {
console.error('查找TabPage时发生错误:', error) // console.error('查找TabPage时发生错误:', error)
return { return {
success: false, success: false,
message: `查找TabPage失败: ${error.message}` message: `查找TabPage失败: ${error.message}`
@@ -1363,7 +1363,7 @@ const findOrCreateMainAreaTabPage = () => {
* @returns {Object} 处理结果 {success: boolean, message: string} * @returns {Object} 处理结果 {success: boolean, message: string}
*/ */
const handleSimpleAreaDocking = (sourceArea) => { const handleSimpleAreaDocking = (sourceArea) => {
console.log('执行简单Area停靠策略使用合并逻辑') // console.log('执行简单Area停靠策略使用合并逻辑')
try { try {
// 1. 验证源Area结构 // 1. 验证源Area结构
@@ -1374,15 +1374,15 @@ const handleSimpleAreaDocking = (sourceArea) => {
} }
} }
console.log('源Area结构验证通过包含', sourceArea.tabPages.length, '个TabPage') // console.log('源Area结构验证通过包含', sourceArea.tabPages.length, '个TabPage')
// 2. 使用mergeAreaContent方法将源Area合并到主区域 // 2. 使用mergeAreaContent方法将源Area合并到主区域
if (mainAreaRef.value && typeof mainAreaRef.value.mergeAreaContent === 'function') { if (mainAreaRef.value && typeof mainAreaRef.value.mergeAreaContent === 'function') {
console.log('通过mergeAreaContent方法合并源Area到主区域') // console.log('通过mergeAreaContent方法合并源Area到主区域')
const result = mainAreaRef.value.mergeAreaContent(sourceArea) const result = mainAreaRef.value.mergeAreaContent(sourceArea)
if (result) { if (result) {
console.log('源Area成功合并到主区域area-merged事件将处理隐藏列表操作') // console.log('源Area成功合并到主区域area-merged事件将处理隐藏列表操作')
// 3. 更新主区域状态(合并完成后由事件处理函数处理隐藏列表) // 3. 更新主区域状态(合并完成后由事件处理函数处理隐藏列表)
nextTick(() => { nextTick(() => {
@@ -1390,7 +1390,7 @@ const handleSimpleAreaDocking = (sourceArea) => {
// 确保主区域最大化显示还原按钮 // 确保主区域最大化显示还原按钮
if (mainAreaRef.value) { if (mainAreaRef.value) {
mainAreaRef.value.WindowState = '最大化' mainAreaRef.value.WindowState = '最大化'
console.log('主区域状态已设置为最大化') // console.log('主区域状态已设置为最大化')
} }
}) })
@@ -1405,7 +1405,7 @@ const handleSimpleAreaDocking = (sourceArea) => {
} }
} }
} else { } else {
console.error('主区域不支持mergeAreaContent方法') // console.error('主区域不支持mergeAreaContent方法')
return { return {
success: false, success: false,
message: '主区域不支持合并操作' message: '主区域不支持合并操作'
@@ -1413,7 +1413,7 @@ const handleSimpleAreaDocking = (sourceArea) => {
} }
} catch (error) { } catch (error) {
console.error('简单Area停靠策略执行时发生错误:', error) // console.error('简单Area停靠策略执行时发生错误:', error)
return { return {
success: false, success: false,
message: `简单Area停靠失败: ${error.message}` message: `简单Area停靠失败: ${error.message}`
@@ -1471,7 +1471,7 @@ const restoreAreaFromHidden = (areaId) => {
} }
} catch (error) { } catch (error) {
console.error('恢复Area时出错:', error) // console.error('恢复Area时出错:', error)
return { return {
success: false, success: false,
message: `恢复失败:${error.message}` message: `恢复失败:${error.message}`
@@ -1503,7 +1503,7 @@ const removeFromHiddenList = (areaId) => {
} }
} catch (error) { } catch (error) {
console.error('移除Area时出错:', error) // console.error('移除Area时出错:', error)
return { return {
success: false, success: false,
message: `移除失败:${error.message}` message: `移除失败:${error.message}`
@@ -1527,7 +1527,7 @@ const clearHiddenList = () => {
} }
} catch (error) { } catch (error) {
console.error('清空隐藏列表时出错:', error) // console.error('清空隐藏列表时出错:', error)
return { return {
success: false, success: false,
message: `清空失败:${error.message}`, message: `清空失败:${error.message}`,
@@ -1545,7 +1545,7 @@ const clearHiddenList = () => {
* @returns {Object} 处理结果 {success: boolean, message: string, strategy?: string} * @returns {Object} 处理结果 {success: boolean, message: string, strategy?: string}
*/ */
const handleDockingEnding = (dragType, sourceAreaId, options = {}) => { const handleDockingEnding = (dragType, sourceAreaId, options = {}) => {
console.log(`[DockLayout] 处理停靠结束事件: type=${dragType}, areaId=${sourceAreaId}`) // console.log(`[DockLayout] 处理停靠结束事件: type=${dragType}, areaId=${sourceAreaId}`)
try { try {
// 确保只有在正确的区域内释放才执行停靠 // 确保只有在正确的区域内释放才执行停靠
@@ -1562,9 +1562,9 @@ const handleDockingEnding = (dragType, sourceAreaId, options = {}) => {
// 中心停靠 // 中心停靠
const centerResult = handleCenterDocking(sourceAreaId) const centerResult = handleCenterDocking(sourceAreaId)
if (!centerResult.success) { if (!centerResult.success) {
console.warn('中心停靠失败:', centerResult.message) // console.warn('中心停靠失败:', centerResult.message)
} else { } else {
console.log('中心停靠成功:', centerResult.message) // console.log('中心停靠成功:', centerResult.message)
} }
return centerResult return centerResult
@@ -1575,9 +1575,9 @@ const handleDockingEnding = (dragType, sourceAreaId, options = {}) => {
// 外部边缘停靠 // 外部边缘停靠
const edgeResult = handleEdgeDocking(sourceAreaId, activeDockZone.value) const edgeResult = handleEdgeDocking(sourceAreaId, activeDockZone.value)
if (!edgeResult.success) { if (!edgeResult.success) {
console.warn('外部边缘停靠失败:', edgeResult.message) // console.warn('外部边缘停靠失败:', edgeResult.message)
} else { } else {
console.log('外部边缘停靠成功:', edgeResult.message) // console.log('外部边缘停靠成功:', edgeResult.message)
} }
return edgeResult return edgeResult
@@ -1589,7 +1589,7 @@ const handleDockingEnding = (dragType, sourceAreaId, options = {}) => {
} }
} catch (error) { } catch (error) {
console.error('[DockLayout] 停靠处理过程中发生错误:', error) // console.error('[DockLayout] 停靠处理过程中发生错误:', error)
return { return {
success: false, success: false,
message: `停靠过程中发生错误: ${error.message}` message: `停靠过程中发生错误: ${error.message}`
@@ -1604,7 +1604,7 @@ const handleDockingEnding = (dragType, sourceAreaId, options = {}) => {
* @returns {Object} 处理结果 {success: boolean, message: string, strategy?: string} * @returns {Object} 处理结果 {success: boolean, message: string, strategy?: string}
*/ */
const handleEdgeDocking = (sourceAreaId, dockZone) => { const handleEdgeDocking = (sourceAreaId, dockZone) => {
console.log(`[DockLayout] 开始外部边缘停靠: areaId=${sourceAreaId}, zone=${dockZone}`) // console.log(`[DockLayout] 开始外部边缘停靠: areaId=${sourceAreaId}, zone=${dockZone}`)
try { try {
// 1. 查找源Area // 1. 查找源Area
@@ -1625,7 +1625,7 @@ const handleEdgeDocking = (sourceAreaId, dockZone) => {
} }
} }
console.log('边缘停靠验证通过:', validationResult.reason) // console.log('边缘停靠验证通过:', validationResult.reason)
// 3. 根据主区域状态选择处理策略 // 3. 根据主区域状态选择处理策略
if (validationResult.strategy === 'side-by-side') { if (validationResult.strategy === 'side-by-side') {
@@ -1639,7 +1639,7 @@ const handleEdgeDocking = (sourceAreaId, dockZone) => {
} }
} catch (error) { } catch (error) {
console.error('[DockLayout] 外部边缘停靠处理过程中发生错误:', error) // console.error('[DockLayout] 外部边缘停靠处理过程中发生错误:', error)
return { return {
success: false, success: false,
message: `外部边缘停靠过程中发生错误: ${error.message}` message: `外部边缘停靠过程中发生错误: ${error.message}`
@@ -1706,7 +1706,7 @@ const canDockToEdge = (sourceArea, dockZone) => {
* @returns {Object} 处理结果 {success: boolean, message: string} * @returns {Object} 处理结果 {success: boolean, message: string}
*/ */
const handleSideBySideDocking = (sourceArea, dockZone) => { const handleSideBySideDocking = (sourceArea, dockZone) => {
console.log(`[DockLayout] 开始并排停靠: areaId=${sourceArea.id}, zone=${dockZone}`) // console.log(`[DockLayout] 开始并排停靠: areaId=${sourceArea.id}, zone=${dockZone}`)
try { try {
// 1. 检查主区域内是否有现有Area // 1. 检查主区域内是否有现有Area
@@ -1717,10 +1717,10 @@ const handleSideBySideDocking = (sourceArea, dockZone) => {
if (hasAreasInMainContent.value) { if (hasAreasInMainContent.value) {
// 主区域内已有Area找到第一个作为目标 // 主区域内已有Area找到第一个作为目标
targetArea = findFirstMainArea() targetArea = findFirstMainArea()
console.log('[DockLayout] 找到现有目标Area:', targetArea?.id) // console.log('[DockLayout] 找到现有目标Area:', targetArea?.id)
} else { } else {
// 主区域内无Area从隐藏列表获取或创建新的目标Area // 主区域内无Area从隐藏列表获取或创建新的目标Area
console.log('[DockLayout] 主区域内无现有Area创建目标Area') // console.log('[DockLayout] 主区域内无现有Area创建目标Area')
const restoreResult = getOrCreateTargetArea() const restoreResult = getOrCreateTargetArea()
if (!restoreResult.success) { if (!restoreResult.success) {
@@ -1745,10 +1745,10 @@ const handleSideBySideDocking = (sourceArea, dockZone) => {
// 3. 添加ResizeBar支持 // 3. 添加ResizeBar支持
const resizeBarResult = addResizeBarForSideBySideLayout(sourceArea, targetArea, dockZone) const resizeBarResult = addResizeBarForSideBySideLayout(sourceArea, targetArea, dockZone)
if (!resizeBarResult.success) { if (!resizeBarResult.success) {
console.warn('[DockLayout] ResizeBar添加失败:', resizeBarResult.message) // console.warn('[DockLayout] ResizeBar添加失败:', resizeBarResult.message)
// ResizeBar失败不影响核心功能继续执行 // ResizeBar失败不影响核心功能继续执行
} else { } else {
console.log('[DockLayout] ResizeBar添加成功') // console.log('[DockLayout] ResizeBar添加成功')
} }
// 4. 更新源Area状态 // 4. 更新源Area状态
@@ -1756,11 +1756,11 @@ const handleSideBySideDocking = (sourceArea, dockZone) => {
if (sourceIndex !== -1) { if (sourceIndex !== -1) {
// 将源Area从浮动区域移除添加到主区域 // 将源Area从浮动区域移除添加到主区域
const [removedArea] = floatingAreas.value.splice(sourceIndex, 1) const [removedArea] = floatingAreas.value.splice(sourceIndex, 1)
console.log('[DockLayout] 源Area已从浮动区域移除') // console.log('[DockLayout] 源Area已从浮动区域移除')
// 将源Area添加到主区域的并排布局中 // 将源Area添加到主区域的并排布局中
// 这里需要根据实际的布局结构进行调整 // 这里需要根据实际的布局结构进行调整
console.log('[DockLayout] 源Area将添加到主区域并排布局') // console.log('[DockLayout] 源Area将添加到主区域并排布局')
} }
// 5. 更新主区域状态 // 5. 更新主区域状态
@@ -1777,7 +1777,7 @@ const handleSideBySideDocking = (sourceArea, dockZone) => {
} }
} catch (error) { } catch (error) {
console.error('[DockLayout] 并排停靠处理过程中发生错误:', error) // console.error('[DockLayout] 并排停靠处理过程中发生错误:', error)
return { return {
success: false, success: false,
message: `并排停靠过程中发生错误: ${error.message}` message: `并排停靠过程中发生错误: ${error.message}`
@@ -1793,14 +1793,14 @@ const handleSideBySideDocking = (sourceArea, dockZone) => {
* @returns {Object} 处理结果 {success: boolean, message: string} * @returns {Object} 处理结果 {success: boolean, message: string}
*/ */
const addResizeBarForSideBySideLayout = (sourceArea, targetArea, dockZone) => { const addResizeBarForSideBySideLayout = (sourceArea, targetArea, dockZone) => {
console.log(`[DockLayout] 为并排布局添加ResizeBar: ${dockZone}`) // console.log(`[DockLayout] 为并排布局添加ResizeBar: ${dockZone}`)
try { try {
// 根据停靠方向确定ResizeBar的方向 // 根据停靠方向确定ResizeBar的方向
const isHorizontal = ['left', 'right'].includes(dockZone) const isHorizontal = ['left', 'right'].includes(dockZone)
const resizeBarDirection = isHorizontal ? 'vertical' : 'horizontal' const resizeBarDirection = isHorizontal ? 'vertical' : 'horizontal'
console.log(`[DockLayout] ResizeBar方向设置: ${resizeBarDirection}`) // console.log(`[DockLayout] ResizeBar方向设置: ${resizeBarDirection}`)
// 创建ResizeBar配置 // 创建ResizeBar配置
const resizeBarConfig = { const resizeBarConfig = {
@@ -1818,7 +1818,7 @@ const addResizeBarForSideBySideLayout = (sourceArea, targetArea, dockZone) => {
// 将ResizeBar配置添加到主区域的resizeBars列表中 // 将ResizeBar配置添加到主区域的resizeBars列表中
mainAreaResizeBars.value.push(resizeBarConfig) mainAreaResizeBars.value.push(resizeBarConfig)
console.log('[DockLayout] ResizeBar配置已添加到主区域') // console.log('[DockLayout] ResizeBar配置已添加到主区域')
return { return {
success: true, success: true,
@@ -1826,7 +1826,7 @@ const addResizeBarForSideBySideLayout = (sourceArea, targetArea, dockZone) => {
} }
} catch (error) { } catch (error) {
console.error('[DockLayout] 添加ResizeBar时发生错误:', error) // console.error('[DockLayout] 添加ResizeBar时发生错误:', error)
return { return {
success: false, success: false,
message: `添加ResizeBar失败: ${error.message}` message: `添加ResizeBar失败: ${error.message}`
@@ -1841,12 +1841,12 @@ const addResizeBarForSideBySideLayout = (sourceArea, targetArea, dockZone) => {
*/ */
const handleMainAreaResizeBar = (resizeBarId, newSize) => { const handleMainAreaResizeBar = (resizeBarId, newSize) => {
try { try {
console.log(`[DockLayout] 主区域ResizeBar调整: id=${resizeBarId}, size=${newSize}`) // console.log(`[DockLayout] 主区域ResizeBar调整: id=${resizeBarId}, size=${newSize}`)
// 找到对应的ResizeBar配置 // 找到对应的ResizeBar配置
const resizeBar = mainAreaResizeBars.value.find(rb => rb.id === resizeBarId) const resizeBar = mainAreaResizeBars.value.find(rb => rb.id === resizeBarId)
if (!resizeBar) { if (!resizeBar) {
console.warn(`[DockLayout] 未找到ResizeBar: ${resizeBarId}`) // console.warn(`[DockLayout] 未找到ResizeBar: ${resizeBarId}`)
return return
} }
@@ -1855,7 +1855,7 @@ const handleMainAreaResizeBar = (resizeBarId, newSize) => {
const targetArea = floatingAreas.value.find(a => a.id === resizeBar.targetAreaId) const targetArea = floatingAreas.value.find(a => a.id === resizeBar.targetAreaId)
if (!sourceArea || !targetArea) { if (!sourceArea || !targetArea) {
console.warn('[DockLayout] 未找到源Area或目标Area') // console.warn('[DockLayout] 未找到源Area或目标Area')
return return
} }
@@ -1869,7 +1869,7 @@ const handleMainAreaResizeBar = (resizeBarId, newSize) => {
} }
} catch (error) { } catch (error) {
console.error('[DockLayout] 处理主区域ResizeBar调整时发生错误:', error) // console.error('[DockLayout] 处理主区域ResizeBar调整时发生错误:', error)
} }
} }
@@ -1878,7 +1878,7 @@ const handleMainAreaResizeBar = (resizeBarId, newSize) => {
* @param {string} resizeBarId - ResizeBar的ID * @param {string} resizeBarId - ResizeBar的ID
*/ */
const handleMainAreaResizeBarStart = (resizeBarId) => { const handleMainAreaResizeBarStart = (resizeBarId) => {
console.log(`[DockLayout] 主区域ResizeBar调整开始: ${resizeBarId}`) // console.log(`[DockLayout] 主区域ResizeBar调整开始: ${resizeBarId}`)
} }
/** /**
@@ -1886,7 +1886,7 @@ const handleMainAreaResizeBarStart = (resizeBarId) => {
* @param {string} resizeBarId - ResizeBar的ID * @param {string} resizeBarId - ResizeBar的ID
*/ */
const handleMainAreaResizeBarEnd = (resizeBarId) => { const handleMainAreaResizeBarEnd = (resizeBarId) => {
console.log(`[DockLayout] 主区域ResizeBar调整结束: ${resizeBarId}`) // console.log(`[DockLayout] 主区域ResizeBar调整结束: ${resizeBarId}`)
} }
/** /**
@@ -1924,7 +1924,7 @@ const getMainAreaResizeBarStyle = (resizeBar) => {
} }
} catch (error) { } catch (error) {
console.error('[DockLayout] 获取ResizeBar样式时发生错误:', error) // console.error('[DockLayout] 获取ResizeBar样式时发生错误:', error)
return { position: 'absolute' } return { position: 'absolute' }
} }
} }
@@ -1938,7 +1938,7 @@ const getMainAreaResizeBarStyle = (resizeBar) => {
*/ */
const handleResizeBarResize = (delta, sourceArea, targetArea, dockZone) => { const handleResizeBarResize = (delta, sourceArea, targetArea, dockZone) => {
try { try {
console.log(`[DockLayout] ResizeBar调整: delta=`, delta, `zone=${dockZone}`) // console.log(`[DockLayout] ResizeBar调整: delta=`, delta, `zone=${dockZone}`)
// 根据停靠方向计算新的尺寸比例 // 根据停靠方向计算新的尺寸比例
if (['left', 'right'].includes(dockZone)) { if (['left', 'right'].includes(dockZone)) {
@@ -1953,7 +1953,7 @@ const handleResizeBarResize = (delta, sourceArea, targetArea, dockZone) => {
updateAreasRatio(sourceArea, targetArea, dockZone) updateAreasRatio(sourceArea, targetArea, dockZone)
} catch (error) { } catch (error) {
console.error('[DockLayout] 处理ResizeBar调整时发生错误:', error) // console.error('[DockLayout] 处理ResizeBar调整时发生错误:', error)
} }
} }
@@ -1974,7 +1974,7 @@ const handleHorizontalResize = (sourceArea, targetArea, deltaX) => {
if (newSourceRatio >= 0.1 && newTargetRatio >= 0.1) { if (newSourceRatio >= 0.1 && newTargetRatio >= 0.1) {
sourceArea.ratio = newSourceRatio sourceArea.ratio = newSourceRatio
targetArea.ratio = newTargetRatio targetArea.ratio = newTargetRatio
console.log(`[DockLayout] 水平调整完成: source=${newSourceRatio.toFixed(2)}, target=${newTargetRatio.toFixed(2)}`) // console.log(`[DockLayout] 水平调整完成: source=${newSourceRatio.toFixed(2)}, target=${newTargetRatio.toFixed(2)}`)
} }
} }
@@ -1995,7 +1995,7 @@ const handleVerticalResize = (sourceArea, targetArea, deltaY) => {
if (newSourceRatio >= 0.1 && newTargetRatio >= 0.1) { if (newSourceRatio >= 0.1 && newTargetRatio >= 0.1) {
sourceArea.ratio = newSourceRatio sourceArea.ratio = newSourceRatio
targetArea.ratio = newTargetRatio targetArea.ratio = newTargetRatio
console.log(`[DockLayout] 垂直调整完成: source=${newSourceRatio.toFixed(2)}, target=${newTargetRatio.toFixed(2)}`) // console.log(`[DockLayout] 垂直调整完成: source=${newSourceRatio.toFixed(2)}, target=${newTargetRatio.toFixed(2)}`)
} }
} }
@@ -2015,7 +2015,7 @@ const updateAreasRatio = (sourceArea, targetArea, dockZone) => {
sourceArea.ratio = sourceNewRatio sourceArea.ratio = sourceNewRatio
targetArea.ratio = targetNewRatio targetArea.ratio = targetNewRatio
console.log(`[DockLayout] 比例调整: source=${sourceNewRatio.toFixed(2)}, target=${targetNewRatio.toFixed(2)}`) // console.log(`[DockLayout] 比例调整: source=${sourceNewRatio.toFixed(2)}, target=${targetNewRatio.toFixed(2)}`)
} }
} }
@@ -2023,7 +2023,7 @@ const updateAreasRatio = (sourceArea, targetArea, dockZone) => {
* 处理ResizeBar调整开始事件 * 处理ResizeBar调整开始事件
*/ */
const handleResizeBarResizeStart = (sourceArea, targetArea) => { const handleResizeBarResizeStart = (sourceArea, targetArea) => {
console.log('[DockLayout] ResizeBar调整开始') // console.log('[DockLayout] ResizeBar调整开始')
// 可以在这里添加视觉反馈或其他开始时的处理 // 可以在这里添加视觉反馈或其他开始时的处理
} }
@@ -2031,7 +2031,7 @@ const handleResizeBarResizeStart = (sourceArea, targetArea) => {
* 处理ResizeBar调整结束事件 * 处理ResizeBar调整结束事件
*/ */
const handleResizeBarResizeEnd = (sourceArea, targetArea) => { const handleResizeBarResizeEnd = (sourceArea, targetArea) => {
console.log('[DockLayout] ResizeBar调整结束') // console.log('[DockLayout] ResizeBar调整结束')
// 可以在这里添加调整完成后的处理,如保存布局状态 // 可以在这里添加调整完成后的处理,如保存布局状态
} }
@@ -2044,7 +2044,7 @@ const handleResizeBarResizeEnd = (sourceArea, targetArea) => {
*/ */
const handleHorizontalResizeWithSize = (sourceArea, targetArea, newSize, dockZone) => { const handleHorizontalResizeWithSize = (sourceArea, targetArea, newSize, dockZone) => {
try { try {
console.log(`[DockLayout] 水平尺寸调整: newSize=${newSize}, zone=${dockZone}`) // console.log(`[DockLayout] 水平尺寸调整: newSize=${newSize}, zone=${dockZone}`)
// 计算总宽度(假设容器宽度) // 计算总宽度(假设容器宽度)
const containerWidth = 800 // 默认容器宽度,实际项目中应该动态获取 const containerWidth = 800 // 默认容器宽度,实际项目中应该动态获取
@@ -2064,11 +2064,11 @@ const handleHorizontalResizeWithSize = (sourceArea, targetArea, newSize, dockZon
sourceArea.width = adjustedSize sourceArea.width = adjustedSize
targetArea.width = containerWidth - adjustedSize targetArea.width = containerWidth - adjustedSize
console.log(`[DockLayout] 水平调整完成: source=${sourceRatio.toFixed(2)}, target=${targetRatio.toFixed(2)}`) // console.log(`[DockLayout] 水平调整完成: source=${sourceRatio.toFixed(2)}, target=${targetRatio.toFixed(2)}`)
} }
} catch (error) { } catch (error) {
console.error('[DockLayout] 水平尺寸调整时发生错误:', error) // console.error('[DockLayout] 水平尺寸调整时发生错误:', error)
} }
} }
@@ -2081,7 +2081,7 @@ const handleHorizontalResizeWithSize = (sourceArea, targetArea, newSize, dockZon
*/ */
const handleVerticalResizeWithSize = (sourceArea, targetArea, newSize, dockZone) => { const handleVerticalResizeWithSize = (sourceArea, targetArea, newSize, dockZone) => {
try { try {
console.log(`[DockLayout] 垂直尺寸调整: newSize=${newSize}, zone=${dockZone}`) // console.log(`[DockLayout] 垂直尺寸调整: newSize=${newSize}, zone=${dockZone}`)
// 计算总高度(假设容器高度) // 计算总高度(假设容器高度)
const containerHeight = 600 // 默认容器高度,实际项目中应该动态获取 const containerHeight = 600 // 默认容器高度,实际项目中应该动态获取
@@ -2101,11 +2101,11 @@ const handleVerticalResizeWithSize = (sourceArea, targetArea, newSize, dockZone)
sourceArea.height = adjustedSize sourceArea.height = adjustedSize
targetArea.height = containerHeight - adjustedSize targetArea.height = containerHeight - adjustedSize
console.log(`[DockLayout] 垂直调整完成: source=${sourceRatio.toFixed(2)}, target=${targetRatio.toFixed(2)}`) // console.log(`[DockLayout] 垂直调整完成: source=${sourceRatio.toFixed(2)}, target=${targetRatio.toFixed(2)}`)
} }
} catch (error) { } catch (error) {
console.error('[DockLayout] 垂直尺寸调整时发生错误:', error) // console.error('[DockLayout] 垂直尺寸调整时发生错误:', error)
} }
} }
@@ -2117,10 +2117,10 @@ const findFirstMainArea = () => {
try { try {
// 这里需要根据实际的DOM结构或数据结构调整 // 这里需要根据实际的DOM结构或数据结构调整
// 目前返回null需要根据实际实现来完善 // 目前返回null需要根据实际实现来完善
console.log('[DockLayout] 查找主区域内的第一个Area') // console.log('[DockLayout] 查找主区域内的第一个Area')
return null return null
} catch (error) { } catch (error) {
console.error('[DockLayout] 查找主区域Area时发生错误:', error) // console.error('[DockLayout] 查找主区域Area时发生错误:', error)
return null return null
} }
} }
@@ -2131,7 +2131,7 @@ const findFirstMainArea = () => {
*/ */
const getOrCreateTargetArea = () => { const getOrCreateTargetArea = () => {
try { try {
console.log('[DockLayout] 获取或创建目标Area') // console.log('[DockLayout] 获取或创建目标Area')
// 1. 尝试从隐藏列表获取Area // 1. 尝试从隐藏列表获取Area
const hiddenResult = getHiddenAreas() const hiddenResult = getHiddenAreas()
@@ -2141,7 +2141,7 @@ const getOrCreateTargetArea = () => {
const restoreResult = restoreAreaFromHidden(targetArea.id) const restoreResult = restoreAreaFromHidden(targetArea.id)
if (restoreResult.success) { if (restoreResult.success) {
console.log('[DockLayout] 从隐藏列表恢复目标Area成功:', targetArea.id) // console.log('[DockLayout] 从隐藏列表恢复目标Area成功:', targetArea.id)
return { return {
success: true, success: true,
message: '成功从隐藏列表获取目标Area', message: '成功从隐藏列表获取目标Area',
@@ -2151,7 +2151,7 @@ const getOrCreateTargetArea = () => {
} }
// 2. 如果没有隐藏Area创建新的Area // 2. 如果没有隐藏Area创建新的Area
console.log('[DockLayout] 创建新的目标Area') // console.log('[DockLayout] 创建新的目标Area')
const newAreaId = `area-${Date.now()}` const newAreaId = `area-${Date.now()}`
const newArea = { const newArea = {
id: newAreaId, id: newAreaId,
@@ -2166,7 +2166,7 @@ const getOrCreateTargetArea = () => {
// 将新Area添加到浮动区域 // 将新Area添加到浮动区域
floatingAreas.value.push(newArea) floatingAreas.value.push(newArea)
console.log('[DockLayout] 创建新目标Area成功:', newAreaId) // console.log('[DockLayout] 创建新目标Area成功:', newAreaId)
return { return {
success: true, success: true,
@@ -2175,7 +2175,7 @@ const getOrCreateTargetArea = () => {
} }
} catch (error) { } catch (error) {
console.error('[DockLayout] 获取或创建目标Area时发生错误:', error) // console.error('[DockLayout] 获取或创建目标Area时发生错误:', error)
return { return {
success: false, success: false,
message: `获取或创建目标Area失败: ${error.message}` message: `获取或创建目标Area失败: ${error.message}`
@@ -2192,7 +2192,7 @@ const getOrCreateTargetArea = () => {
*/ */
const createSideBySideLayout = (sourceArea, targetArea, dockZone) => { const createSideBySideLayout = (sourceArea, targetArea, dockZone) => {
try { try {
console.log(`[DockLayout] 创建并排布局: ${dockZone}`) // console.log(`[DockLayout] 创建并排布局: ${dockZone}`)
// 1. 设置初始比例 // 1. 设置初始比例
sourceArea.ratio = 0.5 sourceArea.ratio = 0.5
@@ -2207,7 +2207,7 @@ const createSideBySideLayout = (sourceArea, targetArea, dockZone) => {
// 3. 调整源Area的位置和大小以适应并排布局 // 3. 调整源Area的位置和大小以适应并排布局
adjustSourceAreaForLayout(sourceArea, targetArea, dockZone) adjustSourceAreaForLayout(sourceArea, targetArea, dockZone)
console.log('[DockLayout] 并排布局创建完成') // console.log('[DockLayout] 并排布局创建完成')
return { return {
success: true, success: true,
@@ -2215,7 +2215,7 @@ const createSideBySideLayout = (sourceArea, targetArea, dockZone) => {
} }
} catch (error) { } catch (error) {
console.error('[DockLayout] 创建并排布局时发生错误:', error) // console.error('[DockLayout] 创建并排布局时发生错误:', error)
return { return {
success: false, success: false,
message: `创建并排布局失败: ${error.message}` message: `创建并排布局失败: ${error.message}`
@@ -2231,7 +2231,7 @@ const createSideBySideLayout = (sourceArea, targetArea, dockZone) => {
*/ */
const compressTargetArea = (targetArea, dockZone) => { const compressTargetArea = (targetArea, dockZone) => {
try { try {
console.log(`[DockLayout] 压缩目标Area空间: ${dockZone}`) // console.log(`[DockLayout] 压缩目标Area空间: ${dockZone}`)
// 根据停靠方向计算新的尺寸 // 根据停靠方向计算新的尺寸
let newWidth = targetArea.width let newWidth = targetArea.width
@@ -2248,7 +2248,7 @@ const compressTargetArea = (targetArea, dockZone) => {
targetArea.width = newWidth targetArea.width = newWidth
targetArea.height = newHeight targetArea.height = newHeight
console.log(`[DockLayout] 目标Area压缩完成: ${newWidth}x${newHeight}`) // console.log(`[DockLayout] 目标Area压缩完成: ${newWidth}x${newHeight}`)
return { return {
success: true, success: true,
@@ -2256,7 +2256,7 @@ const compressTargetArea = (targetArea, dockZone) => {
} }
} catch (error) { } catch (error) {
console.error('[DockLayout] 压缩目标Area空间时发生错误:', error) // console.error('[DockLayout] 压缩目标Area空间时发生错误:', error)
return { return {
success: false, success: false,
message: `压缩目标Area空间失败: ${error.message}` message: `压缩目标Area空间失败: ${error.message}`
@@ -2272,7 +2272,7 @@ const compressTargetArea = (targetArea, dockZone) => {
*/ */
const adjustSourceAreaForLayout = (sourceArea, targetArea, dockZone) => { const adjustSourceAreaForLayout = (sourceArea, targetArea, dockZone) => {
try { try {
console.log(`[DockLayout] 调整源Area适应布局: ${dockZone}`) // console.log(`[DockLayout] 调整源Area适应布局: ${dockZone}`)
// 根据停靠方向调整源Area的尺寸 // 根据停靠方向调整源Area的尺寸
if (['left', 'right'].includes(dockZone)) { if (['left', 'right'].includes(dockZone)) {
@@ -2303,10 +2303,10 @@ const adjustSourceAreaForLayout = (sourceArea, targetArea, dockZone) => {
} }
} }
console.log(`[DockLayout] 源Area调整完成: ${sourceArea.x}, ${sourceArea.y}, ${sourceArea.width}x${sourceArea.height}`) // console.log(`[DockLayout] 源Area调整完成: ${sourceArea.x}, ${sourceArea.y}, ${sourceArea.width}x${sourceArea.height}`)
} catch (error) { } catch (error) {
console.error('[DockLayout] 调整源Area布局时发生错误:', error) // console.error('[DockLayout] 调整源Area布局时发生错误:', error)
} }
} }

View File

@@ -188,43 +188,43 @@ const componentListeners = computed(() => {
if (props.type === 'Area') { if (props.type === 'Area') {
// Area组件的事件 // Area组件的事件
allListeners['areaDragStart'] = (event) => { allListeners['areaDragStart'] = (event) => {
if (props.debug) console.log(`[Render-Area ${props.config.id}] areaDragStart:`, event) // if (props.debug) console.log(`[Render-Area ${props.config.id}] areaDragStart:`, event)
emit('areaDragStart', event) emit('areaDragStart', event)
} }
allListeners['areaDragMove'] = (event) => { allListeners['areaDragMove'] = (event) => {
if (props.debug) console.log(`[Render-Area ${props.config.id}] areaDragMove:`, event) // if (props.debug) console.log(`[Render-Area ${props.config.id}] areaDragMove:`, event)
emit('areaDragMove', event) emit('areaDragMove', event)
} }
allListeners['areaDragEnd'] = (event) => { allListeners['areaDragEnd'] = (event) => {
if (props.debug) console.log(`[Render-Area ${props.config.id}] areaDragEnd:`, event) // if (props.debug) console.log(`[Render-Area ${props.config.id}] areaDragEnd:`, event)
emit('areaDragEnd', event) emit('areaDragEnd', event)
} }
allListeners['area-merged'] = (event) => { allListeners['area-merged'] = (event) => {
if (props.debug) console.log(`[Render-Area ${props.config.id}] area-merged:`, event) // if (props.debug) console.log(`[Render-Area ${props.config.id}] area-merged:`, event)
emit('area-merged', event) emit('area-merged', event)
} }
allListeners['toggleCollapse'] = (event) => { allListeners['toggleCollapse'] = (event) => {
if (props.debug) console.log(`[Render-Area ${props.config.id}] toggleCollapse:`, event) // if (props.debug) console.log(`[Render-Area ${props.config.id}] toggleCollapse:`, event)
emit('toggleCollapse', event) emit('toggleCollapse', event)
} }
allListeners['maximize'] = (event) => { allListeners['maximize'] = (event) => {
if (props.debug) console.log(`[Render-Area ${props.config.id}] maximize:`, event) // if (props.debug) console.log(`[Render-Area ${props.config.id}] maximize:`, event)
emit('maximize', event) emit('maximize', event)
} }
allListeners['close'] = (event) => { allListeners['close'] = (event) => {
if (props.debug) console.log(`[Render-Area ${props.config.id}] close:`, event) // if (props.debug) console.log(`[Render-Area ${props.config.id}] close:`, event)
emit('close', event) emit('close', event)
} }
allListeners['toggleToolbar'] = (event) => { allListeners['toggleToolbar'] = (event) => {
if (props.debug) console.log(`[Render-Area ${props.config.id}] toggleToolbar:`, event) // if (props.debug) console.log(`[Render-Area ${props.config.id}] toggleToolbar:`, event)
emit('toggleToolbar', event) emit('toggleToolbar', event)
} }
allListeners['update:windowState'] = (event) => { allListeners['update:windowState'] = (event) => {
if (props.debug) console.log(`[Render-Area ${props.config.id}] update:windowState:`, event) // if (props.debug) console.log(`[Render-Area ${props.config.id}] update:windowState:`, event)
emit('update:windowState', event) emit('update:windowState', event)
} }
allListeners['update:position'] = (event) => { allListeners['update:position'] = (event) => {
if (props.debug) console.log(`[Render-Area ${props.config.id}] update:position:`, event) // if (props.debug) console.log(`[Render-Area ${props.config.id}] update:position:`, event)
emit('update:position', event) emit('update:position', event)
} }
} }
@@ -232,23 +232,23 @@ const componentListeners = computed(() => {
if (props.type === 'TabPage') { if (props.type === 'TabPage') {
// TabPage组件的事件 // TabPage组件的事件
allListeners['tabChange'] = (event) => { allListeners['tabChange'] = (event) => {
if (props.debug) console.log(`[Render-TabPage ${props.config.id}] tabChange:`, event) // if (props.debug) console.log(`[Render-TabPage ${props.config.id}] tabChange:`, event)
emit('tabChange', event) emit('tabChange', event)
} }
allListeners['tabClose'] = (event) => { allListeners['tabClose'] = (event) => {
if (props.debug) console.log(`[Render-TabPage ${props.config.id}] tabClose:`, event) // if (props.debug) console.log(`[Render-TabPage ${props.config.id}] tabClose:`, event)
emit('tabClose', event) emit('tabClose', event)
} }
allListeners['tabAdd'] = (event) => { allListeners['tabAdd'] = (event) => {
if (props.debug) console.log(`[Render-TabPage ${props.config.id}] tabAdd:`, event) // if (props.debug) console.log(`[Render-TabPage ${props.config.id}] tabAdd:`, event)
emit('tabAdd', event) emit('tabAdd', event)
} }
allListeners['maximize'] = (event) => { allListeners['maximize'] = (event) => {
if (props.debug) console.log(`[Render-TabPage ${props.config.id}] maximize:`, event) // if (props.debug) console.log(`[Render-TabPage ${props.config.id}] maximize:`, event)
emit('maximize', event) emit('maximize', event)
} }
allListeners['close'] = (event) => { allListeners['close'] = (event) => {
if (props.debug) console.log(`[Render-TabPage ${props.config.id}] close:`, event) // if (props.debug) console.log(`[Render-TabPage ${props.config.id}] close:`, event)
emit('close', event) emit('close', event)
} }
} }
@@ -256,31 +256,31 @@ const componentListeners = computed(() => {
if (props.type === 'Panel') { if (props.type === 'Panel') {
// Panel组件的事件 // Panel组件的事件
allListeners['toggleCollapse'] = (event) => { allListeners['toggleCollapse'] = (event) => {
if (props.debug) console.log(`[Render-Panel ${props.config.id}] toggleCollapse:`, event) // if (props.debug) console.log(`[Render-Panel ${props.config.id}] toggleCollapse:`, event)
emit('panelToggleCollapse', event) emit('panelToggleCollapse', event)
} }
allListeners['maximize'] = (event) => { allListeners['maximize'] = (event) => {
if (props.debug) console.log(`[Render-Panel ${props.config.id}] maximize:`, event) // if (props.debug) console.log(`[Render-Panel ${props.config.id}] maximize:`, event)
emit('panelMaximize', event) emit('panelMaximize', event)
} }
allListeners['close'] = (event) => { allListeners['close'] = (event) => {
if (props.debug) console.log(`[Render-Panel ${props.config.id}] close:`, event) // if (props.debug) console.log(`[Render-Panel ${props.config.id}] close:`, event)
emit('panelClose', event) emit('panelClose', event)
} }
allListeners['toggleToolbar'] = (event) => { allListeners['toggleToolbar'] = (event) => {
if (props.debug) console.log(`[Render-Panel ${props.config.id}] toggleToolbar:`, event) // if (props.debug) console.log(`[Render-Panel ${props.config.id}] toggleToolbar:`, event)
emit('panelToggleToolbar', event) emit('panelToggleToolbar', event)
} }
allListeners['dragStart'] = (event) => { allListeners['dragStart'] = (event) => {
if (props.debug) console.log(`[Render-Panel ${props.config.id}] dragStart:`, event) // if (props.debug) console.log(`[Render-Panel ${props.config.id}] dragStart:`, event)
emit('dragStart', event) emit('dragStart', event)
} }
allListeners['dragMove'] = (event) => { allListeners['dragMove'] = (event) => {
if (props.debug) console.log(`[Render-Panel ${props.config.id}] dragMove:`, event) // if (props.debug) console.log(`[Render-Panel ${props.config.id}] dragMove:`, event)
emit('dragMove', event) emit('dragMove', event)
} }
allListeners['dragEnd'] = (event) => { allListeners['dragEnd'] = (event) => {
if (props.debug) console.log(`[Render-Panel ${props.config.id}] dragEnd:`, event) // if (props.debug) console.log(`[Render-Panel ${props.config.id}] dragEnd:`, event)
emit('dragEnd', event) emit('dragEnd', event)
} }
} }

View File

@@ -109,7 +109,7 @@
:maximized="panel.maximized || false" :maximized="panel.maximized || false"
:content="panel.content" :content="panel.content"
@toggle-collapse="$emit('toggleCollapse', $event)" @toggle-collapse="$emit('toggleCollapse', $event)"
@maximize="(event) => { console.log('🔸 TabPage转发最大化事件:', event); $emit('maximize', event); }" @maximize="(event) => { /* console.log('🔸 TabPage转发最大化事件:', event); */ $emit('maximize', event); }"
@close="$emit('close', $event)" @close="$emit('close', $event)"
@toggle-toolbar="$emit('toggleToolbar', $event)" @toggle-toolbar="$emit('toggleToolbar', $event)"
@dragStart="$emit('dragStart', $event)" @dragStart="$emit('dragStart', $event)"
@@ -190,19 +190,15 @@ let dragIndex = -1
// 计算属性:控制标签栏的显示 // 计算属性:控制标签栏的显示
const shouldShowTabs = computed(() => { const shouldShowTabs = computed(() => {
// 暂时保持标签栏始终显示确保用户能清楚看到TabPage结构
// 未来可以优化当只有一个Panel且不是浮动窗口时隐藏标签栏 // 未来可以优化当只有一个Panel且不是浮动窗口时隐藏标签栏
const result = props.showTabs && props.panels && props.panels.length > 0 const result = props.showTabs && props.panels && props.panels.length > 0
// console.log(`[TabPage ${props.id}] shouldShowTabs:`, {
// 调试信息输出TabPage的显示状态 // showTabs: result,
console.log(`[TabPage ${props.id}] shouldShowTabs:`, { // panelsLength: props.panels?.length || 0,
showTabs: props.showTabs, // tabPosition: props.tabPosition,
panelsLength: props.panels?.length || 0, // shouldShow: result,
tabPosition: props.tabPosition, // panels: props.panels
shouldShow: result, // })
panels: props.panels
})
return result return result
}) })