@@ -18,40 +18,36 @@ const getSystemMenuIcon = (systemMenuItem: LayoutMenuItem) => (isSystemMenuActiv
1818<template >
1919 <div class =" mk-system-sidebar flex h-full flex-col" >
2020 <el-scrollbar class =" min-h-0 flex-1" >
21- <el-menu
22- class =" mt-2!"
23- :class =" props.collapsed ? 'px-3.5!' : 'px-4!'"
24- :collapse =" props.collapsed"
25- :collapse-transition =" false"
26- :default-active =" route.path"
27- router
28- :persistent =" false"
29- >
30- <template v-for =" item in systemMenuItems " :key =" item .name " >
31- <template v-if =" item .permission ? item .permission (): true " >
32- <!-- 有子菜单 -->
33- <el-sub-menu v-if =" item.children?.length && item.route" :index =" router.resolve(item.route).path" popper-class =" mk-system-sidebar-menu-popper" >
34- <template #title >
21+ <el-menu class =" mt-2!" :class =" props.collapsed ? 'px-3.5!' : 'px-4!'" :collapse =" props.collapsed"
22+ :collapse-transition =" false" :default-active =" route.path" router :persistent =" false" >
23+ <template v-for =" item in systemMenuItems " :key =" item .name " >
24+ <template v-if =" item .permission ? item .permission () : true " >
25+ <!-- 有子菜单 -->
26+ <el-sub-menu v-if =" item.children?.length && item.route" :index =" router.resolve(item.route).path"
27+ popper-class =" mk-system-sidebar-menu-popper" >
28+ <template #title >
29+ <MkIcon v-if =" item .icon " :name =" getSystemMenuIcon (item )" :size =" 18 " />
30+ <span >{{ item.label }}</span >
31+ </template >
32+ <el-menu-item-group >
33+ <template #title v-if =" props .collapsed " ><span >{{ item.label }}</span ></template >
34+ <template v-for =" child in item .children " :key =" child .name " >
35+ <template v-if =" child .permission ? child .permission () : true " >
36+ <el-menu-item :index =" child.route ? router.resolve(child.route).path : child.name" >
37+ {{ child.label }}
38+ </el-menu-item >
39+ </template >
40+ </template >
41+ </el-menu-item-group >
42+ </el-sub-menu >
43+ <!-- 无子菜单 -->
44+ <el-menu-item v-else :index =" item.route ? router.resolve(item.route).path : item.name" >
3545 <MkIcon v-if =" item .icon " :name =" getSystemMenuIcon (item )" :size =" 18 " />
36- <span >{{ item.label }}</span >
37- </template >
38- <el-menu-item-group >
39- <template #title v-if =" props .collapsed "
40- ><span >{{ item.label }}</span ></template
41- >
42- <el-menu-item v-for =" child in item.children" :key =" child.name" :index =" child.route ? router.resolve(child.route).path : child.name" >
43- {{ child.label }}
44- </el-menu-item >
45- </el-menu-item-group >
46- </el-sub-menu >
47- <!-- 无子菜单 -->
48- <el-menu-item v-else :index =" item.route ? router.resolve(item.route).path : item.name" >
49- <MkIcon v-if =" item .icon " :name =" getSystemMenuIcon (item )" :size =" 18 " />
50- <template #title >{{ item.label }}</template >
51- </el-menu-item >
46+ <template #title >{{ item.label }}</template >
47+ </el-menu-item >
5248
5349 </template >
54-
50+
5551 </template >
5652 </el-menu >
5753 </el-scrollbar >
@@ -61,21 +57,20 @@ const getSystemMenuIcon = (systemMenuItem: LayoutMenuItem) => (isSystemMenuActiv
6157 </div >
6258 <!-- 收起导航按钮 -->
6359 <div :class =" props.collapsed ? 'px-3.5' : 'px-4'" class =" py-2" >
64- <button
65- type =" button"
66- :class =" props.collapsed ? 'p-2.75' : 'px-2 p-2.75'"
60+ <button type =" button" :class =" props.collapsed ? 'p-2.75' : 'px-2 p-2.75'"
6761 class =" mk-system-sidebar-toggle flex w-full cursor-pointer items-center gap-2 rounded-md"
68- @click =" emit('toggle')"
69- >
62+ @click =" emit('toggle')" >
7063 <MkIcon name="icon_side-fold_outlined" :size =" 18 " :class =" props .collapsed && ' rotate-180' " />
71- <span class =" whitespace-nowrap transition-opacity duration-100" :class =" props.collapsed ? 'opacity-0' : 'delay-200 opacity-100'" > 收起导航 </span >
64+ <span class =" whitespace-nowrap transition-opacity duration-100"
65+ :class =" props.collapsed ? 'opacity-0' : 'delay-200 opacity-100'" > 收起导航 </span >
7266 </button >
7367 </div >
7468 </div >
7569</template >
7670<style lang="scss">
7771.mk-system-sidebar ,
7872.mk-system-sidebar-menu-popper {
73+
7974 /* menu */
8075 .el-menu {
8176 background : none !important ;
@@ -87,24 +82,29 @@ const getSystemMenuIcon = (systemMenuItem: LayoutMenuItem) => (isSystemMenuActiv
8782 gap : calc (var (--spacing ) * 1 );
8883 }
8984 }
85+
9086 .el-menu-item {
9187 border-radius : var (--el-border-radius-base );
9288 color : var (--el-text-color-primary );
9389 height : auto ;
9490 line-height : 18px ;
9591 padding : 11px calc (var (--spacing ) * 2 ) !important ;
92+
9693 [class ^= ' el-icon' ] {
9794 margin-right : calc (var (--spacing ) * 2 );
9895 }
96+
9997 & :hover {
10098 background-color : var (--mk-N900-transparent-10 );
10199 }
100+
102101 & .is-active {
103102 background-color : white ;
104103 color : var (--mk-primary );
105104 font-weight : 500 ;
106105 }
107106 }
107+
108108 // 子菜单
109109 .el-sub-menu {
110110 display : flex ;
@@ -117,53 +117,62 @@ const getSystemMenuIcon = (systemMenuItem: LayoutMenuItem) => (isSystemMenuActiv
117117 height : auto ;
118118 line-height : 18px ;
119119 padding : 11px calc (var (--spacing ) * 2 ) !important ;
120+
120121 & :hover {
121122 background-color : var (--mk-N900-transparent-10 );
122123 }
123124 }
125+
124126 .el-icon {
125127 margin-right : calc (var (--spacing ) * 2 );
126128 width : auto ;
127129 }
130+
128131 .el-menu-item {
129132 height : auto ;
130133 line-height : 18px ;
131134 padding : 11px calc (var (--spacing ) * 2 ) !important ;
132135 padding-left : 34px !important ;
133136 }
137+
134138 .el-sub-menu__icon-arrow {
135139 font-size : 16px ;
136140 margin-top : calc (var (--spacing ) * -2 );
137141 right : 0 ;
138142 }
139143 }
144+
140145 .el-menu-item-group {
141- > ul {
146+ >ul {
142147 display : flex ;
143148 flex-direction : column ;
144149 gap : calc (var (--spacing ) * 1 );
145150 }
151+
146152 & __title {
147153 padding : 9px calc (var (--spacing ) * 4 ) !important ;
148154 font-size : var (--mk-font-size-base );
149155 color : var (--el-text-color-regular );
150156 }
151157 }
158+
152159 // 菜单收起
153160 .el-menu--collapse {
154- > .el-menu-item {
161+ >.el-menu-item {
155162 min-height : calc (var (--spacing ) * 10 );
163+
156164 .el-menu-tooltip__trigger {
157165 padding : 11px !important ;
158166 }
159167 }
160168
161- > .el-sub-menu {
162- > .el-sub-menu__title {
169+ >.el-sub-menu {
170+ >.el-sub-menu__title {
163171 min-height : calc (var (--spacing ) * 10 );
164172 padding : 11px !important ;
165173 }
166- & .is-active > .el-sub-menu__title {
174+
175+ & .is-active >.el-sub-menu__title {
167176 background-color : white ;
168177 }
169178 }
@@ -180,10 +189,12 @@ const getSystemMenuIcon = (systemMenuItem: LayoutMenuItem) => (isSystemMenuActiv
180189 background-color : var (--mk-N200 );
181190 background-image : rgb (var (--mk-primary-rgb ) / 5% );
182191 border-radius : var (--el-border-radius-base );
192+
183193 .el-menu {
184194 padding : calc (var (--spacing ) * 2 );
185195 border-radius : var (--el-border-radius-base );
186196 }
197+
187198 .el-menu-item {
188199 padding : 9px calc (var (--spacing ) * 4 ) !important ;
189200 }
0 commit comments