|
|
@ -264,66 +264,71 @@ function handleMouseleave() { |
|
|
class="h-full transition-all duration-150" |
|
|
class="h-full transition-all duration-150" |
|
|
></div> |
|
|
></div> |
|
|
<aside |
|
|
<aside |
|
|
:class="[ |
|
|
|
|
|
theme, |
|
|
|
|
|
{ |
|
|
|
|
|
'bg-sidebar-deep': isSidebarMixed, |
|
|
|
|
|
'border-r border-border bg-sidebar': !isSidebarMixed, |
|
|
|
|
|
}, |
|
|
|
|
|
]" |
|
|
|
|
|
:style="style" |
|
|
:style="style" |
|
|
class="fixed left-0 top-0 h-full transition-all duration-150" |
|
|
class="fixed left-0 top-0 h-full transition-all duration-150" |
|
|
@mouseenter="handleMouseenter" |
|
|
@mouseenter="handleMouseenter" |
|
|
@mouseleave="handleMouseleave" |
|
|
@mouseleave="handleMouseleave" |
|
|
> |
|
|
> |
|
|
<SidebarFixedButton |
|
|
<div |
|
|
v-if="!collapse && !isSidebarMixed && showFixedButton" |
|
|
class="h-full" |
|
|
v-model:expand-on-hover="expandOnHover" |
|
|
:class="[ |
|
|
/> |
|
|
theme, |
|
|
<div v-if="slots.logo" :style="headerStyle"> |
|
|
{ |
|
|
<slot name="logo"></slot> |
|
|
'bg-sidebar-deep': isSidebarMixed, |
|
|
</div> |
|
|
'border-r border-border bg-sidebar': !isSidebarMixed, |
|
|
<VbenScrollbar :style="contentStyle" shadow shadow-border> |
|
|
}, |
|
|
<slot></slot> |
|
|
]" |
|
|
</VbenScrollbar> |
|
|
:style="{ width: `${width}px` }" |
|
|
|
|
|
> |
|
|
<div :style="collapseStyle"></div> |
|
|
<SidebarFixedButton |
|
|
<SidebarCollapseButton |
|
|
v-if="!collapse && !isSidebarMixed && showFixedButton" |
|
|
v-if="showCollapseButton && !isSidebarMixed" |
|
|
v-model:expand-on-hover="expandOnHover" |
|
|
v-model:collapsed="collapse" |
|
|
/> |
|
|
/> |
|
|
<div v-if="slots.logo" :style="headerStyle"> |
|
|
</aside> |
|
|
<slot name="logo"></slot> |
|
|
<div |
|
|
</div> |
|
|
v-if="isSidebarMixed" |
|
|
<VbenScrollbar :style="contentStyle" shadow shadow-border> |
|
|
ref="asideRef" |
|
|
<slot></slot> |
|
|
:class="[ |
|
|
</VbenScrollbar> |
|
|
themeSub, |
|
|
|
|
|
{ |
|
|
<div :style="collapseStyle"></div> |
|
|
'border-l': extraVisible, |
|
|
<SidebarCollapseButton |
|
|
}, |
|
|
v-if="showCollapseButton && !isSidebarMixed" |
|
|
]" |
|
|
v-model:collapsed="collapse" |
|
|
:style="extraStyle" |
|
|
/> |
|
|
class="fixed top-0 h-full overflow-hidden border-r border-border bg-sidebar transition-all duration-200" |
|
|
|
|
|
> |
|
|
|
|
|
<SidebarCollapseButton |
|
|
|
|
|
v-if="isSidebarMixed && expandOnHover" |
|
|
|
|
|
v-model:collapsed="extraCollapse" |
|
|
|
|
|
/> |
|
|
|
|
|
|
|
|
|
|
|
<SidebarFixedButton |
|
|
|
|
|
v-if="!extraCollapse" |
|
|
|
|
|
v-model:expand-on-hover="expandOnHover" |
|
|
|
|
|
/> |
|
|
|
|
|
<div v-if="!extraCollapse" :style="extraTitleStyle" class="pl-2"> |
|
|
|
|
|
<slot name="extra-title"></slot> |
|
|
|
|
|
</div> |
|
|
</div> |
|
|
<VbenScrollbar |
|
|
<div |
|
|
:style="extraContentStyle" |
|
|
v-if="isSidebarMixed" |
|
|
class="border-border py-2" |
|
|
ref="asideRef" |
|
|
shadow |
|
|
:class="[ |
|
|
shadow-border |
|
|
themeSub, |
|
|
|
|
|
{ |
|
|
|
|
|
'border-l': extraVisible, |
|
|
|
|
|
}, |
|
|
|
|
|
]" |
|
|
|
|
|
:style="extraStyle" |
|
|
|
|
|
class="fixed top-0 h-full overflow-hidden border-r border-border bg-sidebar transition-all duration-200" |
|
|
> |
|
|
> |
|
|
<slot name="extra"></slot> |
|
|
<SidebarCollapseButton |
|
|
</VbenScrollbar> |
|
|
v-if="isSidebarMixed && expandOnHover" |
|
|
</div> |
|
|
v-model:collapsed="extraCollapse" |
|
|
|
|
|
/> |
|
|
|
|
|
|
|
|
|
|
|
<SidebarFixedButton |
|
|
|
|
|
v-if="!extraCollapse" |
|
|
|
|
|
v-model:expand-on-hover="expandOnHover" |
|
|
|
|
|
/> |
|
|
|
|
|
<div v-if="!extraCollapse" :style="extraTitleStyle" class="pl-2"> |
|
|
|
|
|
<slot name="extra-title"></slot> |
|
|
|
|
|
</div> |
|
|
|
|
|
<VbenScrollbar |
|
|
|
|
|
:style="extraContentStyle" |
|
|
|
|
|
class="border-border py-2" |
|
|
|
|
|
shadow |
|
|
|
|
|
shadow-border |
|
|
|
|
|
> |
|
|
|
|
|
<slot name="extra"></slot> |
|
|
|
|
|
</VbenScrollbar> |
|
|
|
|
|
</div> |
|
|
|
|
|
</aside> |
|
|
</template> |
|
|
</template> |
|
|
|