Skip to content

Commit 475725c

Browse files
committed
fix: 添加js消除多余的线条
1 parent fdbe66f commit 475725c

4 files changed

Lines changed: 29 additions & 6 deletions

File tree

src/components/BootstrapBlazor.DockView/wwwroot/css/dockview-bb.css

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -300,6 +300,12 @@
300300
z-index: -1 !important;
301301
}
302302

303-
.dv-split-view-container.dv-vertical .dv-view:not(.visible) + .dv-view:before {
303+
/* .dv-split-view-container.dv-vertical .dv-view:not(.visible) + .dv-view:before {
304304
height: 0;
305-
}
305+
} */
306+
307+
.bb-dockview .dv-split-view-container.dv-vertical > .dv-view-container > .dv-view:not(:first-child):not(.visible):before,
308+
.bb-dockview .dv-split-view-container.dv-vertical > .dv-view-container > .dv-view:first-child:not(.visible) + .dv-view.visible:before,
309+
.bb-dockview .dv-split-view-container.dv-vertical > .dv-view-container > .dv-view.first-visible::before {
310+
height: 0;
311+
}

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

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import { DockviewComponent, DockviewGroupPanel, DockviewGroupPanelModel, getGridLocation, getRelativeLocation, DockviewEmitter } from "./dockview-core.esm.js"
22
import { getConfigFromStorage, saveConfig } from "./dockview-config.js"
33
import { disposeGroup, removeDrawerBtn } from "./dockview-group.js"
4+
import { markFirstVisibleElement } from "./dockview-utils.js"
45

56
DockviewComponent.prototype.on = function(eventType, callback) {
67
this['_' + eventType] = new DockviewEmitter();
@@ -84,7 +85,7 @@ DockviewGroupPanelModel.prototype.closePanel = function(panel, triggerVisibleCha
8485

8586
const setVisible = DockviewComponent.prototype.setVisible
8687
DockviewComponent.prototype.setVisible = function(...args) {
87-
setVisible.apply(this, args)
88+
setVisible.apply(this, args);
8889
const branch = getBranchByGroup(args[0])
8990
const { orientation, splitview: { sashes } } = branch
9091

@@ -110,6 +111,7 @@ DockviewComponent.prototype.setVisible = function(...args) {
110111
}
111112
});
112113
}
114+
markFirstVisibleElement(args[0])
113115
}
114116
function getBranchByGroup(group) {
115117
const groupEle = group.element

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

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
import { getIcons, getIcon } from "./dockview-icon.js"
1+
import { getIcons, getIcon } from "./dockview-icon.js"
22
import { deletePanel, findContentFromPanels, moveAlwaysRenderPanel } from "./dockview-panel.js"
33
import { saveConfig } from "./dockview-config.js"
4-
import { observeGroup } from "./dockview-utils.js"
4+
import { observeGroup, markFirstVisibleElement } from "./dockview-utils.js"
55
import EventHandler from '../../BootstrapBlazor/modules/event-handler.js'
66

77
const onAddGroup = group => {
@@ -20,7 +20,8 @@ const onAddGroup = group => {
2020
saveConfig(dockview)
2121
})
2222
group.model.contentContainer.dropTarget.onDrop(() => {
23-
saveConfig(dockview)
23+
saveConfig(dockview);
24+
markFirstVisibleElement(group)
2425
})
2526
createGroupActions(group);
2627
dockview._inited && observeGroup(group)

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

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,9 @@ const initDockview = (dockview, options, template) => {
8383
})
8484

8585
dockview.onDidLayoutFromJSON(() => {
86+
dockview.groups.forEach(group => {
87+
markFirstVisibleElement(group);
88+
})
8689
const handler = setTimeout(() => {
8790
clearTimeout(handler);
8891
const panels = dockview.panels;
@@ -267,5 +270,16 @@ const toggleGroupLock = (dockview, options) => {
267270
toggleLock(group, group.header.rightActionsContainer, options.lock)
268271
})
269272
}
273+
export const markFirstVisibleElement = group => {
274+
if (!group) return
275+
const viewContainerEle = group.element.parentElement.parentElement;
276+
const className = 'first-visible';
277+
[...viewContainerEle.children].forEach(ele => {
278+
if (ele.classList.contains(className)) {
279+
ele.classList.remove(className)
280+
}
281+
})
282+
viewContainerEle.querySelector('.visible')?.classList.add(className);
283+
}
270284

271285
export { cerateDockview };

0 commit comments

Comments
 (0)