|
@@ -1,10 +1,10 @@
|
1
|
1
|
<template>
|
2
|
2
|
<div v-if="!item.hidden&&item.children" class="menu-wrapper">
|
3
|
3
|
|
4
|
|
- <router-link v-if="hasOneShowingChildren(item.children) && !item.children[0].children&&!item.alwaysShow" :to="resolvePath(item.children[0].path)">
|
5
|
|
- <el-menu-item :index="resolvePath(item.children[0].path)" :class="{'submenu-title-noDropdown':!isNest}">
|
6
|
|
- <svg-icon v-if="item.children[0].meta&&item.children[0].meta.icon" :icon-class="item.children[0].meta.icon"></svg-icon>
|
7
|
|
- <span v-if="item.children[0].meta&&item.children[0].meta.title" slot="title">{{item.children[0].meta.title}}</span>
|
|
4
|
+ <router-link v-if="hasOneShowingChild(item.children) && !onlyOneChild.children&&!item.alwaysShow" :to="resolvePath(onlyOneChild.path)">
|
|
5
|
+ <el-menu-item :index="resolvePath(onlyOneChild.path)" :class="{'submenu-title-noDropdown':!isNest}">
|
|
6
|
+ <svg-icon v-if="onlyOneChild.meta&&onlyOneChild.meta.icon" :icon-class="onlyOneChild.meta.icon"></svg-icon>
|
|
7
|
+ <span v-if="onlyOneChild.meta&&onlyOneChild.meta.title" slot="title">{{onlyOneChild.meta.title}}</span>
|
8
|
8
|
</el-menu-item>
|
9
|
9
|
</router-link>
|
10
|
10
|
|
|
@@ -49,10 +49,21 @@ export default {
|
49
|
49
|
default: ''
|
50
|
50
|
}
|
51
|
51
|
},
|
|
52
|
+ data() {
|
|
53
|
+ return {
|
|
54
|
+ onlyOneChild: null
|
|
55
|
+ }
|
|
56
|
+ },
|
52
|
57
|
methods: {
|
53
|
|
- hasOneShowingChildren(children) {
|
|
58
|
+ hasOneShowingChild(children) {
|
54
|
59
|
const showingChildren = children.filter(item => {
|
55
|
|
- return !item.hidden
|
|
60
|
+ if (item.hidden) {
|
|
61
|
+ return false
|
|
62
|
+ } else {
|
|
63
|
+ // temp set(will be used if only has one showing child )
|
|
64
|
+ this.onlyOneChild = item
|
|
65
|
+ return true
|
|
66
|
+ }
|
56
|
67
|
})
|
57
|
68
|
if (showingChildren.length === 1) {
|
58
|
69
|
return true
|