Skip to content

Commit ff557cd

Browse files
committed
fix: 修复刷新dockview时panel状态不对
1 parent 23a44f8 commit ff557cd

2 files changed

Lines changed: 16 additions & 11 deletions

File tree

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

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,9 @@ const observePanelActiveChange = panel => {
2727
const dockview = panel.accessor;
2828
if (dockview.params.options.renderer === 'onlyWhenVisible' && dockview._inited && isVisible) {
2929
const visiblePanels = dockview.groups.map(g => g.panels.find(p => p.params.isActive) || g.panels.find(p => p.api.isVisible))
30-
dockview._loadTabs?.fire(visiblePanels.filter(p => Boolean(p)).map(p => p.params.key));
30+
setTimeout(function() {
31+
dockview._loadTabs?.fire(visiblePanels.filter(p => Boolean(p)).map(p => p.params.key));
32+
}, 0)
3133
}
3234
})
3335
}

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

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@ const cerateDockview = (el, options) => {
99
const theme = options.theme || "dockview-theme-light";
1010
const template = el.querySelector('template');
1111
options.renderer ??= 'onlyWhenVisible'; // onlyWhenVisible | partial | always
12+
console.log(options);
13+
console.log(options.renderer);
1214
const dockview = new DockviewComponent(el, {
1315
parentElement: el,
1416
theme: {
@@ -91,6 +93,17 @@ const initDockview = (dockview, options, template) => {
9193
const groups = dockview.groups;
9294
const delPanelsStr = localStorage.getItem(dockview.params.options.localStorageKey + '-panels');
9395
const delPanels = delPanelsStr && JSON.parse(delPanelsStr) || [];
96+
97+
panels.forEach(panel => {
98+
const visible = panel.params.visible
99+
if (!visible) {
100+
dockview.removePanel(panel)
101+
}
102+
dockview._panelVisibleChanged?.fire({ title: panel.title, status: visible });
103+
})
104+
delPanels.forEach(panel => {
105+
dockview._panelVisibleChanged?.fire({ title: panel.title, status: false });
106+
})
94107
if (options.renderer === 'always') {
95108

96109
}
@@ -103,16 +116,6 @@ const initDockview = (dockview, options, template) => {
103116
dockview._loadTabs?.fire(dockview.panels.map(p => p.params.key));
104117
}
105118
}
106-
panels.forEach(panel => {
107-
const visible = panel.params.visible
108-
if (!visible) {
109-
dockview.removePanel(panel)
110-
}
111-
dockview._panelVisibleChanged?.fire({ title: panel.title, status: visible });
112-
})
113-
delPanels.forEach(panel => {
114-
dockview._panelVisibleChanged?.fire({ title: panel.title, status: false });
115-
})
116119
const { floatingGroups } = dockview.params
117120
dockview.floatingGroups.forEach(fg => {
118121
const { top, right, bottom, left } = floatingGroups.find(g => g.data.id == fg.group.id).position

0 commit comments

Comments
 (0)