修复菜单未开启手风琴模式时,标签导航点击关闭所有后菜单openNames不正确的问题

This commit is contained in:
zhigang.li 2018-08-10 16:56:41 +08:00
parent d53fa7578a
commit ad9922a35e
2 changed files with 14 additions and 3 deletions

View File

@ -79,6 +79,10 @@ export default {
},
getOpenedNamesByActiveName (name) {
return this.$route.matched.map(item => item.name).filter(item => item !== name)
},
updateOpenName (name) {
if (name === 'home') this.openedNames = []
else this.openedNames = this.getOpenedNamesByActiveName(name)
}
},
computed: {

View File

@ -1,7 +1,7 @@
<template>
<Layout style="height: 100%" class="main">
<Sider hide-trigger collapsible :width="256" :collapsed-width="64" v-model="collapsed" class="left-sider" :style="{overflow: 'hidden'}">
<side-menu :active-name="$route.name" :collapsed="collapsed" @on-select="turnToPage" :menu-list="menuList">
<side-menu accordion ref="sideMenu" :active-name="$route.name" :collapsed="collapsed" @on-select="turnToPage" :menu-list="menuList">
<!-- 需要放在菜单上面的内容如Logo写在side-menu标签内部如下 -->
<div class="logo-con">
<img v-show="!collapsed" :src="maxLogo" key="max-logo" />
@ -107,8 +107,15 @@ export default {
handleCloseTag (res, type, name) {
const nextName = getNextName(this.tagNavList, name)
this.setTagNavList(res)
if (type === 'all') this.turnToPage('home')
else if (this.$route.name === name) this.$router.push({ name: nextName })
let openName = ''
if (type === 'all') {
this.turnToPage('home')
openName = 'home'
} else if (this.$route.name === name) {
this.$router.push({ name: nextName })
openName = nextName
}
this.$refs.sideMenu.updateOpenName(openName)
},
handleClick (item) {
this.turnToPage(item.name)