lilishop-ui/manager/src/views/main-components/shrinkable-menu/shrinkable-menu.vue

78 lines
1.7 KiB
Vue
Raw Normal View History

2021-05-13 10:56:04 +08:00
<template>
<div class="ivu-shrinkable-menu">
<!-- 一级菜单 -->
<Menu ref="sideMenu" width="110px" theme="dark" :active-name="currNav" @on-select="selectNav">
<MenuItem v-for="(item, i) in navList" :key="i" :name="item.name">
{{item.title}}
</MenuItem>
</Menu>
<!-- 二级菜单 -->
<Menu
ref="childrenMenu"
:active-name="$route.name"
width="130px"
@on-select="changeMenu"
>
<template v-for="item in menuList">
<MenuGroup :title="item.title" :key="item.id" style="padding-left:0;">
<MenuItem :name="menu.name" v-for="menu in item.children" :key="menu.name">
{{menu.title}}
</MenuItem>
</MenuGroup>
</template>
</Menu>
</div>
</template>
<script>
import util from "@/libs/util.js";
export default {
name: "shrinkableMenu",
computed: {
menuList() {
return this.$store.state.app.menuList;
},
navList() {
return this.$store.state.app.navList;
},
},
watch: {
// 监听路由变化
$route: {
handler: function (val, oldVal) {
console.log(val);
}
},
menuList: {
handler: function (val, oldVal) {
}
}
},
mounted() {
},
methods: {
changeMenu(name) { //二级路由点击
this.$router.push({
name: name
});
},
selectNav(name) {
this.$store.commit("setCurrNav", name);
this.setStore("currNav", name);
// if (this.$route.name != "home_index") {
// this.$router.push({
// name: "home_index"
// });
// }
util.initRouter(this);
},
}
};
</script>
<style lang="scss" scoped>
@import "./styles/menu.scss";
</style>