2022-08-02 08:48:23 +08:00
|
|
|
|
<template>
|
2022-08-04 16:13:20 +08:00
|
|
|
|
<aside :class="['aui-sidebar', `aui-sidebar--${$store.state.sidebarLayoutSkin}`]">
|
|
|
|
|
<div class="aui-sidebar__inner">
|
|
|
|
|
<el-menu
|
|
|
|
|
:default-active="$store.state.sidebarMenuActiveName"
|
|
|
|
|
:collapse="$store.state.sidebarFold"
|
|
|
|
|
:unique-opened="true"
|
|
|
|
|
:collapseTransition="false"
|
|
|
|
|
class="aui-sidebar__menu"
|
|
|
|
|
>
|
2022-08-25 13:53:28 +08:00
|
|
|
|
<sub-menu v-for="menu in unhiddenMenuList" :key="menu.id" :menu="menu" />
|
2022-08-04 16:13:20 +08:00
|
|
|
|
</el-menu>
|
|
|
|
|
</div>
|
|
|
|
|
</aside>
|
2022-08-02 08:48:23 +08:00
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
<script>
|
|
|
|
|
import SubMenu from './main-sidebar-sub-menu'
|
|
|
|
|
export default {
|
2022-08-04 16:13:20 +08:00
|
|
|
|
data() {
|
2022-08-25 13:53:28 +08:00
|
|
|
|
return {
|
|
|
|
|
unhiddenMenuList: []
|
|
|
|
|
}
|
2022-08-04 16:13:20 +08:00
|
|
|
|
},
|
|
|
|
|
components: {
|
|
|
|
|
SubMenu
|
|
|
|
|
},
|
2022-08-25 13:53:28 +08:00
|
|
|
|
mounted() {
|
|
|
|
|
// this.$store.state.sidebarMenuList = window.SITE_CONFIG['menuList']
|
|
|
|
|
this.$nextTick(() => {
|
|
|
|
|
this.unhiddenMenuList = this.getUnhiddenRoutesListFrom(window.SITE_CONFIG['menuList'])
|
|
|
|
|
/** 本地保存一份,store保存一份,感觉 store 都不需要保存... */
|
|
|
|
|
this.$store.state.sidebarMenuList = this.unhiddenMenuList
|
|
|
|
|
})
|
|
|
|
|
},
|
|
|
|
|
methods: {
|
|
|
|
|
getUnhiddenRoutesListFrom(fullList) {
|
|
|
|
|
const list = []
|
|
|
|
|
if (fullList.length) {
|
|
|
|
|
fullList.forEach(menu => {
|
|
|
|
|
if (menu.sort !== 99) {
|
|
|
|
|
/** 前后端约定,路由排序值为 99 时不在前端的侧边栏展示该路由 */
|
|
|
|
|
const newRouteItem = JSON.parse(JSON.stringify(menu))
|
|
|
|
|
if (menu.children) {
|
|
|
|
|
newRouteItem.children = this.getUnhiddenRoutesListFrom(menu.children)
|
|
|
|
|
}
|
|
|
|
|
list.push(newRouteItem)
|
|
|
|
|
} else {
|
2022-09-01 16:45:29 +08:00
|
|
|
|
// console.log(menu.name, '是应该被隐藏的路由')
|
2022-08-25 13:53:28 +08:00
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
return list
|
|
|
|
|
}
|
2022-08-04 16:13:20 +08:00
|
|
|
|
}
|
2022-08-02 08:48:23 +08:00
|
|
|
|
}
|
|
|
|
|
</script>
|