Skip to content

Commit 1e5fcd2

Browse files
committed
feat: added mixSide trigger
1 parent 0e7c57b commit 1e5fcd2

File tree

2 files changed

+43
-12
lines changed

2 files changed

+43
-12
lines changed

src/hooks/setting/useMenuSetting.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -93,8 +93,10 @@ const getCalcContentWidth = computed(() => {
9393
unref(getIsTopMenu) || !unref(getShowMenu) || (unref(getSplit) && unref(getMenuHidden))
9494
? 0
9595
: unref(getIsMixSidebar)
96-
? SIDE_BAR_SHOW_TIT_MINI_WIDTH +
97-
(unref(getMixSideFixed) && unref(mixSideHasChildren) ? unref(getRealWidth) : 0)
96+
? unref(getCollapsed)
97+
? SIDE_BAR_MINI_WIDTH
98+
: SIDE_BAR_SHOW_TIT_MINI_WIDTH +
99+
(unref(getMixSideFixed) && unref(mixSideHasChildren) ? unref(getRealWidth) : 0)
98100
: unref(getRealWidth);
99101
return `calc(100% - ${unref(width)}px)`;
100102
});

src/layouts/default/sider/MixSider.vue

Lines changed: 39 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,9 @@
1515
v-bind="getMenuEvents"
1616
>
1717
<AppLogo :showTitle="false" :class="`${prefixCls}-logo`" />
18+
19+
<Trigger :class="`${prefixCls}-trigger`" />
20+
1821
<ScrollContainer>
1922
<ul :class="`${prefixCls}-module`">
2023
<li
@@ -76,25 +79,30 @@
7679
</div>
7780
</template>
7881
<script lang="ts">
79-
import { defineComponent, onMounted, ref, computed, CSSProperties, unref } from 'vue';
8082
import type { Menu } from '/@/router/types';
81-
import { RouteLocationNormalized } from 'vue-router';
82-
import { useDesign } from '/@/hooks/web/useDesign';
83-
import { getShallowMenus, getChildrenMenus, getCurrentParentPath } from '/@/router/menus';
84-
import { useI18n } from '/@/hooks/web/useI18n';
83+
import type { CSSProperties } from 'vue';
84+
import type { RouteLocationNormalized } from 'vue-router';
85+
86+
import { defineComponent, onMounted, ref, computed, unref } from 'vue';
87+
88+
import { BasicMenu, MenuTag } from '/@/components/Menu';
8589
import { ScrollContainer } from '/@/components/Container';
8690
import Icon from '/@/components/Icon';
8791
import { AppLogo } from '/@/components/Application';
88-
import { useGo } from '/@/hooks/web/usePage';
89-
import { BasicMenu, MenuTag } from '/@/components/Menu';
90-
import { listenerLastChangeTab } from '/@/logics/mitt/tabChange';
92+
import Trigger from '../trigger/HeaderTrigger.vue';
93+
9194
import { useMenuSetting } from '/@/hooks/setting/useMenuSetting';
9295
import { useDragLine } from './useLayoutSider';
9396
import { useGlobSetting } from '/@/hooks/setting';
97+
import { useDesign } from '/@/hooks/web/useDesign';
98+
import { useI18n } from '/@/hooks/web/useI18n';
99+
import { useGo } from '/@/hooks/web/usePage';
94100
95101
import { SIDE_BAR_SHOW_TIT_MINI_WIDTH, SIDE_BAR_MINI_WIDTH } from '/@/enums/appEnum';
96102
97103
import clickOutside from '/@/directives/clickOutside';
104+
import { getShallowMenus, getChildrenMenus, getCurrentParentPath } from '/@/router/menus';
105+
import { listenerLastChangeTab } from '/@/logics/mitt/tabChange';
98106
99107
export default defineComponent({
100108
name: 'LayoutMixSider',
@@ -104,6 +112,7 @@
104112
BasicMenu,
105113
MenuTag,
106114
Icon,
115+
Trigger,
107116
},
108117
directives: {
109118
clickOutside,
@@ -419,7 +428,7 @@
419428
}
420429
421430
> .scrollbar {
422-
height: calc(100% - @header-height) !important;
431+
height: calc(100% - @header-height - 38px);
423432
}
424433
425434
&.mini &-module {
@@ -468,22 +477,42 @@
468477
&__icon {
469478
margin-bottom: 8px;
470479
font-size: 24px;
480+
transition: all 0.2s;
471481
}
472482
473483
&__name {
474484
margin-bottom: 0;
475485
font-size: 12px;
486+
transition: all 0.2s;
476487
}
477488
}
478489
490+
&-trigger {
491+
position: absolute;
492+
bottom: 0;
493+
left: 0;
494+
width: 100%;
495+
padding: 6px;
496+
padding-left: 12px;
497+
font-size: 18px;
498+
color: rgba(255, 255, 255, 0.65);
499+
cursor: pointer;
500+
background: @sider-dark-bg-color;
501+
}
502+
503+
&.light &-trigger {
504+
color: rgba(0, 0, 0, 0.65);
505+
background: #fff;
506+
}
507+
479508
&-menu-list {
480509
position: fixed;
481510
top: 0;
482511
width: 0;
483512
width: 200px;
484513
height: calc(100%);
485514
background: #fff;
486-
transition: width 0.2s;
515+
transition: all 0.2s;
487516
.@{tag-prefix-cls} {
488517
position: absolute;
489518
top: 10px;

0 commit comments

Comments
 (0)