68 lines
1.5 KiB
Vue
68 lines
1.5 KiB
Vue
|
<!--
|
||
|
* @Author: zwq
|
||
|
* @Date: 2023-01-04 10:29:40
|
||
|
* @LastEditors: zwq
|
||
|
* @LastEditTime: 2023-01-05 15:52:01
|
||
|
* @Description:
|
||
|
-->
|
||
|
<template>
|
||
|
<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"
|
||
|
>
|
||
|
<sub-menu
|
||
|
v-for="menu in $store.state.sidebarMenuList"
|
||
|
:key="menu.id"
|
||
|
:menu="menu"
|
||
|
/>
|
||
|
</el-menu>
|
||
|
</div>
|
||
|
</aside>
|
||
|
</template>
|
||
|
|
||
|
<script>
|
||
|
import SubMenu from "./main-sidebar-sub-menu";
|
||
|
export default {
|
||
|
data() {
|
||
|
return {};
|
||
|
},
|
||
|
components: {
|
||
|
SubMenu,
|
||
|
},
|
||
|
created() {
|
||
|
this.$store.state.sidebarMenuList = this.getUnhiddenRoutesListFrom(
|
||
|
window.SITE_CONFIG["menuList"]
|
||
|
);
|
||
|
},
|
||
|
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;
|
||
|
},
|
||
|
},
|
||
|
};
|
||
|
</script>
|