Skip to content

Commit e16923c

Browse files
committed
fix: 修复切换数据节点Template有多余的DOM
1 parent 5c58226 commit e16923c

2 files changed

Lines changed: 13 additions & 18 deletions

File tree

src/components/BootstrapBlazor.DockView/wwwroot/js/dockview-extensions.js

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -70,17 +70,12 @@ DockviewGroupPanelModel.prototype.closePanel = function(panel, triggerVisibleCha
7070
}
7171
}
7272

73-
if (panel.view.content.element) {
74-
if (moveToTemplate) {
75-
if (panel.titleMenuEle) {
76-
panel.view.content.element.append(panel.titleMenuEle)
77-
}
78-
if (this.accessor.params.template) {
79-
this.accessor.params.template.append(panel.view.content.element)
80-
}
73+
if (panel.view.content.element && moveToTemplate) {
74+
if (panel.titleMenuEle) {
75+
panel.view.content.element.append(panel.titleMenuEle)
8176
}
82-
else {
83-
panel.view.content.element.remove()
77+
if (this.accessor.params.template) {
78+
this.accessor.params.template.append(panel.view.content.element)
8479
}
8580
}
8681
}

src/components/BootstrapBlazor.DockView/wwwroot/js/dockview-panel.js

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -12,15 +12,15 @@ const observePanelActiveChange = panel => {
1212
const dockview = panel.accessor;
1313
if (dockview._isDisposed) return;
1414
const renderer = dockview.params.options.renderer;
15-
if (renderer === 'onlyWhenVisible' && dockview._inited && isVisible) {
16-
saveConfig(panel.accessor)
17-
if (!panel.group.api.isMaximized()) {
18-
panel.group.panels.filter(p => p != panel.group.activePanel).forEach(p => {
19-
appendTemplatePanelEle(p)
20-
})
15+
if (renderer === 'onlyWhenVisible' && dockview._inited) {
16+
if (isVisible) {
17+
saveConfig(panel.accessor)
18+
const visiblePanels = dockview.groups.map(g => g.panels.find(p => p.params.isActive) || g.panels.find(p => p.api.isVisible))
19+
dockview._loadTabs?.fire(visiblePanels.filter(p => Boolean(p)).map(p => p.params.key));
20+
}
21+
else {
22+
appendTemplatePanelEle(panel)
2123
}
22-
const visiblePanels = dockview.groups.map(g => g.panels.find(p => p.params.isActive) || g.panels.find(p => p.api.isVisible))
23-
dockview._loadTabs?.fire(visiblePanels.filter(p => Boolean(p)).map(p => p.params.key));
2424
}
2525

2626
if (isVisible && panel.group.getParams().floatType == 'drawer') {

0 commit comments

Comments
 (0)