問題:左側菜單,選中狀態失效,1.路由跳轉過來,選中失效;2.刷新頁面失效
解決方法
1.路由跳轉(NavMenu子菜單沒有v-if)+刷新
app.vue
//html
<el-menu
router
ref='menu'
:default-active='$route.path' //刷新
class="el-menu-vertical-demo"
background-color="#002140"
text-color="#fff"
active-text-color="#ffd04b">
<el-submenu index="1">
<template slot="title">
<i class="el-icon-cold-drink"></i>
<span>米粒姐</span>
</template>
<el-menu-item index="/CallList">通話回推記錄</el-menu-item>
<el-menu-item index="/CallRecordList">通話記錄</el-menu-item>
</el-submenu>
</el-menu>
//js
watch: {
$route() {
let i = this.$route.path;
setTimeout(() => { //路由跳轉
this.$refs.menu.activeIndex = i
}, 100)
}
}
2.路由跳轉(因爲NavMenu有些子菜單會加上v-if,權限控制時候經常發生)+刷新
//html
<el-menu
router
ref='menu'
:default-active='$route.path' //也可以註銷 刷新
class="el-menu-vertical-demo"
background-color="#002140"
text-color="#fff"
active-text-color="#ffd04b">
<el-submenu index="1">
<template slot="title">
<i class="el-icon-cold-drink"></i>
<span>米粒姐</span>
</template>
<el-menu-item index="/CallList">通話回推記錄</el-menu-item>
<el-menu-item index="/CallRecordList">通話記錄</el-menu-item>
</el-submenu>
</el-menu>
//js
mounted () {
setTimeout(() => { //刷新
this.$refs.menu.defaultActive = localStorage.getItem('index')
}, 100)
},
watch: {
$route() {
let i = this.$route.path;
localStorage.setItem('index',i) //刷新
setTimeout(() => { //路由跳轉
this.$refs.menu.activeIndex = i
}, 100)
}
}