Skip to content

Commit da4650e

Browse files
committed
feat: 添加配置项-左侧菜单子目录气泡显示
1 parent 33ca726 commit da4650e

File tree

5 files changed

+40
-6
lines changed

5 files changed

+40
-6
lines changed

src/layout/components/Settings/index.vue

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,11 @@
2323
<el-switch v-model="sidebarLogo" class="drawer-switch" />
2424
</div>
2525

26+
<div class="drawer-item">
27+
<span>左侧菜单子目录气泡显示</span>
28+
<el-switch v-model="secondMenuPopup" class="drawer-switch" />
29+
</div>
30+
2631
</div>
2732
</div>
2833
</template>
@@ -72,6 +77,17 @@ export default defineComponent({
7277
value: val
7378
});
7479
}
80+
},
81+
secondMenuPopup: {
82+
get() {
83+
return store.settings().secondMenuPopup;
84+
},
85+
set(val) {
86+
store.settings().changeSetting({
87+
key: 'secondMenuPopup',
88+
value: val
89+
});
90+
}
7591
}
7692
},
7793
methods: {

src/layout/components/Sidebar/SidebarItem.vue

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
<template v-if="get2MetaIconPath(onlyOneChild, item)">
1111
<template v-if="typeof get2MetaIconPath(onlyOneChild, item) === 'string'">
1212
<svg-icon :icon-class="get2MetaIconPath(onlyOneChild, item)" />
13-
<span v-if="isTopRoute" class="text text-one text-one-added">{{ onlyOneChild.meta.title }}</span>
13+
<span v-if="secondMenuPopup && isTopRoute" class="text text-one text-one-added">{{ onlyOneChild.meta.title }}</span>
1414
</template>
1515
<component v-else :is="get2MetaIconPath(onlyOneChild, item)" class="svg-icon el-svg-icon" />
1616
</template>
@@ -28,7 +28,7 @@
2828
<svg-icon v-if="typeof getMetaIconPath(item) === 'string'" :icon-class="getMetaIconPath(item)" />
2929
<component v-else :is="getMetaIconPath(item)" class="svg-icon el-svg-icon" />
3030
</template>
31-
<svg-icon v-else icon-class="sub-el-icon" />
31+
<!-- <svg-icon v-else icon-class="list" /> -->
3232
<span class="text text-two">{{ item.meta.title }}</span>
3333
</template>
3434
<sidebar-item v-for="child in item.children" :key="child.path" :is-nest="true" :item="child"
@@ -44,6 +44,8 @@ import { isExternal } from '@/utils/validate';
4444
// import Item from './Item';
4545
import AppLink from './Link';
4646
import FixiOSBug from './FixiOSBug';
47+
import { mapState } from 'pinia';
48+
import store from '@/store';
4749
4850
export default defineComponent({
4951
name: 'SidebarItem',
@@ -78,6 +80,9 @@ export default defineComponent({
7880
return {};
7981
},
8082
computed: {
83+
...mapState(store.settings, {
84+
secondMenuPopup: 'secondMenuPopup'
85+
}),
8186
isItemHidden() {
8287
if (this.item.meta && this.item.meta.hidden) {
8388
return true;

src/layout/components/Sidebar/index.vue

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,9 @@ export default defineComponent({
3939
...mapState(store.permission, {
4040
permission_routes: 'routes'
4141
}),
42+
...mapState(store.settings, {
43+
secondMenuPopup: 'secondMenuPopup'
44+
}),
4245
activeMenu() {
4346
const route = this.$route;
4447
const { meta, path } = route;
@@ -52,8 +55,10 @@ export default defineComponent({
5255
return store.settings().sidebarLogo;
5356
},
5457
isCollapse() {
55-
return true;
56-
// return !this.sidebar.opened;
58+
if (this.secondMenuPopup) {
59+
return true;
60+
}
61+
return !this.sidebar.opened;
5762
}
5863
}
5964
});

src/settings.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ interface ISettings {
44
tagsView: boolean;
55
fixedHeader: boolean;
66
sidebarLogo: boolean;
7+
secondMenuPopup: boolean;
78
errorLog: string | string[];
89
}
910

@@ -34,6 +35,12 @@ const settings:ISettings = {
3435
*/
3536
sidebarLogo: false,
3637

38+
/**
39+
* @type {boolean} true | false
40+
* @description 左侧菜单子目录气泡显示
41+
*/
42+
secondMenuPopup: false,
43+
3744
/**
3845
* @type {string | array} 'production' | ['production', 'development']
3946
* @description Need show err logs component.

src/store/modules/settings.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { defineStore } from 'pinia';
22
import defaultSettings from '@/settings';
33

4-
const { showSettings, tagsView, fixedHeader, sidebarLogo } = defaultSettings;
4+
const { showSettings, tagsView, fixedHeader, sidebarLogo, secondMenuPopup } = defaultSettings;
55

66
export default defineStore({
77
id: 'settings',
@@ -10,7 +10,8 @@ export default defineStore({
1010
showSettings: showSettings,
1111
tagsView: tagsView,
1212
fixedHeader: fixedHeader,
13-
sidebarLogo: sidebarLogo
13+
sidebarLogo: sidebarLogo,
14+
secondMenuPopup: secondMenuPopup
1415
}),
1516
getters: {},
1617
actions: {

0 commit comments

Comments
 (0)