|
15 | 15 | v-bind="getMenuEvents" |
16 | 16 | > |
17 | 17 | <AppLogo :showTitle="false" :class="`${prefixCls}-logo`" /> |
| 18 | + |
| 19 | + <Trigger :class="`${prefixCls}-trigger`" /> |
| 20 | + |
18 | 21 | <ScrollContainer> |
19 | 22 | <ul :class="`${prefixCls}-module`"> |
20 | 23 | <li |
|
76 | 79 | </div> |
77 | 80 | </template> |
78 | 81 | <script lang="ts"> |
79 | | - import { defineComponent, onMounted, ref, computed, CSSProperties, unref } from 'vue'; |
80 | 82 | 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'; |
85 | 89 | import { ScrollContainer } from '/@/components/Container'; |
86 | 90 | import Icon from '/@/components/Icon'; |
87 | 91 | 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 | +
|
91 | 94 | import { useMenuSetting } from '/@/hooks/setting/useMenuSetting'; |
92 | 95 | import { useDragLine } from './useLayoutSider'; |
93 | 96 | 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'; |
94 | 100 |
|
95 | 101 | import { SIDE_BAR_SHOW_TIT_MINI_WIDTH, SIDE_BAR_MINI_WIDTH } from '/@/enums/appEnum'; |
96 | 102 |
|
97 | 103 | import clickOutside from '/@/directives/clickOutside'; |
| 104 | + import { getShallowMenus, getChildrenMenus, getCurrentParentPath } from '/@/router/menus'; |
| 105 | + import { listenerLastChangeTab } from '/@/logics/mitt/tabChange'; |
98 | 106 |
|
99 | 107 | export default defineComponent({ |
100 | 108 | name: 'LayoutMixSider', |
|
104 | 112 | BasicMenu, |
105 | 113 | MenuTag, |
106 | 114 | Icon, |
| 115 | + Trigger, |
107 | 116 | }, |
108 | 117 | directives: { |
109 | 118 | clickOutside, |
|
419 | 428 | } |
420 | 429 |
|
421 | 430 | > .scrollbar { |
422 | | - height: calc(100% - @header-height) !important; |
| 431 | + height: calc(100% - @header-height - 38px); |
423 | 432 | } |
424 | 433 |
|
425 | 434 | &.mini &-module { |
|
468 | 477 | &__icon { |
469 | 478 | margin-bottom: 8px; |
470 | 479 | font-size: 24px; |
| 480 | + transition: all 0.2s; |
471 | 481 | } |
472 | 482 |
|
473 | 483 | &__name { |
474 | 484 | margin-bottom: 0; |
475 | 485 | font-size: 12px; |
| 486 | + transition: all 0.2s; |
476 | 487 | } |
477 | 488 | } |
478 | 489 |
|
| 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 | +
|
479 | 508 | &-menu-list { |
480 | 509 | position: fixed; |
481 | 510 | top: 0; |
482 | 511 | width: 0; |
483 | 512 | width: 200px; |
484 | 513 | height: calc(100%); |
485 | 514 | background: #fff; |
486 | | - transition: width 0.2s; |
| 515 | + transition: all 0.2s; |
487 | 516 | .@{tag-prefix-cls} { |
488 | 517 | position: absolute; |
489 | 518 | top: 10px; |
|
0 commit comments