Skip to content

Commit 103f853

Browse files
committed
fix: 修复dockview默认隐藏的窗口显示时位置和大小不对
1 parent 5ae8d42 commit 103f853

3 files changed

Lines changed: 21 additions & 14 deletions

File tree

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

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,8 @@ const renewConfigFromOptions = (config, options) => {
5555
if (panel) {
5656
optionPanel.params = {
5757
...panel.params,
58-
...optionPanel.params
58+
...optionPanel.params,
59+
visible: panel.params.visible
5960
}
6061
config.panels[panel.id] = optionPanel
6162
}
@@ -232,6 +233,10 @@ const getTree = (contentItem, { width, height, orientation }, parent, panels, ge
232233
if (contentItem.type === 'row' || contentItem.type === 'column') {
233234
obj.type = 'branch';
234235
obj.size = getSize(boxSize, contentItem.width || contentItem.height) || size
236+
if(contentItem.content.length == 0 || contentItem.content.every(item => !item.visible)){
237+
obj.size = 0
238+
}
239+
235240
obj.data = contentItem.content.map(item => getTree(item, { width, height, orientation }, contentItem, panels, getGroupId, options))
236241
}
237242
else if (contentItem.type === 'group') {
@@ -279,24 +284,22 @@ const getLeafNode = (contentItem, size, boxSize, parent, panels, getGroupId, opt
279284
const visible = contentItem.visible !== false;
280285
const data = {
281286
type: 'leaf',
282-
visible,
287+
visible: true,
283288
size: getSize(boxSize, contentItem.width || contentItem.height) || size,
284289
data: {
285290
id: getGroupId(),
286291
activeView: contentItem.id,
287292
hideHeader: contentItem.showHeader === false,
288-
views: visible ? [contentItem.id] : []
293+
views: [contentItem.id]
289294
}
290295
};
291-
if (visible) {
292-
panels[contentItem.id] = {
293-
id: contentItem.id,
294-
title: contentItem.title,
295-
renderer: contentItem.renderer || options.renderer,
296-
tabComponent: contentItem.componentName,
297-
contentComponent: contentItem.componentName,
298-
params: { ...contentItem, parentId: parent.id }
299-
}
296+
panels[contentItem.id] = {
297+
id: contentItem.id,
298+
title: contentItem.title,
299+
renderer: contentItem.renderer || options.renderer,
300+
tabComponent: contentItem.componentName,
301+
contentComponent: contentItem.componentName,
302+
params: { ...contentItem, parentId: parent.id }
300303
}
301304
return data;
302305
}

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ const addPanelWidthGroupId = (dockview, panel, index) => {
9797
renderer: panel.renderer,
9898
component: panel.component,
9999
position: { referenceGroup: group, index: index || 0 },
100-
params: { ...panel.params, rect, packup }
100+
params: { ...panel.params, rect, packup, visible: true }
101101
})
102102
dockview._panelVisibleChanged?.fire({ title: panel.title, status: true });
103103
}

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

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,11 @@ const initDockview = (dockview, options, template) => {
9191
const delPanelsStr = localStorage.getItem(dockview.params.options.localStorageKey + '-panels')
9292
const delPanels = delPanelsStr && JSON.parse(delPanelsStr) || []
9393
panels.forEach(panel => {
94-
dockview._panelVisibleChanged?.fire({ title: panel.title, status: true });
94+
const visible = panel.params.visible
95+
if(!visible){
96+
dockview.removePanel(panel)
97+
}
98+
dockview._panelVisibleChanged?.fire({ title: panel.title, status: visible });
9599
})
96100
delPanels.forEach(panel => {
97101
dockview._panelVisibleChanged?.fire({ title: panel.title, status: false });

0 commit comments

Comments
 (0)