mt-yd-ui/src/views/main-sidebar.vue

58 lines
1.5 KiB
Vue
Raw Normal View History

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 {
console.log(menu.name, '是应该被隐藏的路由')
}
})
}
return list
}
2022-08-04 16:13:20 +08:00
}
2022-08-02 08:48:23 +08:00
}
</script>