发现点击tabpage的不同页标签,标签页内容没有改变
This commit is contained in:
@@ -115,28 +115,7 @@
|
||||
@tabDragStart="() => {}"
|
||||
@tabDragMove="() => {}"
|
||||
@tabDragEnd="() => {}"
|
||||
>
|
||||
<!-- 在TabPage内渲染其包含的Panels -->
|
||||
<Panel
|
||||
v-for="panel in item.tabPage.panels"
|
||||
:key="`received-panel-${index}-${panel.id}`"
|
||||
:id="panel.id"
|
||||
:title="panel.title"
|
||||
:collapsed="panel.collapsed"
|
||||
:toolbarExpanded="panel.toolbarExpanded"
|
||||
:maximized="panel.maximized"
|
||||
:content="panel.content"
|
||||
@toggleCollapse="() => {}"
|
||||
@maximize="onPanelMaximize"
|
||||
@close="() => {}"
|
||||
@toggleToolbar="() => {}"
|
||||
@dragStart="() => {}"
|
||||
@dragMove="() => {}"
|
||||
@dragEnd="() => {}"
|
||||
@dragover="handleDragOver"
|
||||
@dragleave="handleDragLeave"
|
||||
/>
|
||||
</TabPage>
|
||||
/>
|
||||
</template>
|
||||
</div>
|
||||
</div>
|
||||
@@ -593,11 +572,10 @@ const mergeAreaContent = (sourceArea) => {
|
||||
sourceArea.tabPages.forEach((tabPage, tabIndex) => {
|
||||
const newTabPageId = `merged-tabpage-${Date.now()}-${tabIndex}`
|
||||
const newPanels = (tabPage.panels || []).map((panel, panelIndex) => {
|
||||
const newPanelId = `merged-panel-${Date.now()}-${tabIndex}-${panelIndex}`
|
||||
console.log(`[Area] 添加Panel: ${panel.id} -> ${newPanelId}`)
|
||||
// 保持原有Panel ID不变,确保Vue响应式和状态稳定性
|
||||
console.log(`[Area] 添加Panel: ${panel.id}`)
|
||||
return {
|
||||
...panel,
|
||||
id: newPanelId,
|
||||
maximized: true
|
||||
}
|
||||
})
|
||||
@@ -643,20 +621,18 @@ const mergeAreaContent = (sourceArea) => {
|
||||
if (sourceArea.tabPages && sourceArea.tabPages.length > 0) {
|
||||
sourceArea.tabPages.forEach((sourceTabPage, tabIndex) => {
|
||||
if (sourceTabPage && sourceTabPage.panels) {
|
||||
// 为每个Panel创建新的唯一ID避免冲突
|
||||
// 保持原有Panel ID不变,避免Vue组件重新创建和状态丢失
|
||||
const newPanels = sourceTabPage.panels.map((panel, panelIndex) => {
|
||||
const newPanelId = `merged-panel-${Date.now()}-${tabIndex}-${panelIndex}`
|
||||
console.log(`[Area] 合并Panel到现有TabPage: ${panel.id} -> ${newPanelId}`)
|
||||
console.log(`[Area] 合并Panel到现有TabPage: ${panel.id}`)
|
||||
return {
|
||||
...panel,
|
||||
id: newPanelId,
|
||||
maximized: true
|
||||
}
|
||||
})
|
||||
|
||||
// 将新的Panel添加到现有TabPage
|
||||
existingTabPage.tabPage.panels.push(...newPanels)
|
||||
existingTabPage.panels.push(...newPanels)
|
||||
// existingTabPage.panels 是旧引用,保持结构一致性但避免重复添加
|
||||
|
||||
console.log(`[Area] 成功合并 ${newPanels.length} 个Panel到现有TabPage`)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user