修复菜单:修复侧边栏空白折叠项与无可见子项目录展示异常
This commit is contained in:
1 parent
215107b132
commit
dea668459d
2 files changed
+29
-4
No files matched your search
@@ -1,16 +1,16 @@
|
||||
<template>
|
||||
<div v-if="!item.hidden">
|
||||
<div v-if="!item.hidden && isMenuVisible(item)">
|
||||
<template v-if="hasOneShowingChild(item.children,item) && (!onlyOneChild.children||onlyOneChild.noShowingChildren)&&!item.alwaysShow">
|
||||
<app-link v-if="onlyOneChild.meta" :to="resolvePath(onlyOneChild.path, onlyOneChild.query)">
|
||||
<app-link v-if="onlyOneChild.meta && onlyOneChild.meta.title" :to="resolvePath(onlyOneChild.path, onlyOneChild.query)">
|
||||
<el-menu-item :index="resolvePath(onlyOneChild.path)" :class="{'submenu-title-noDropdown':!isNest}">
|
||||
<item :icon="onlyOneChild.meta.icon||(item.meta&&item.meta.icon)" :title="onlyOneChild.meta.title" />
|
||||
</el-menu-item>
|
||||
</app-link>
|
||||
</template>
|
||||
|
||||
<el-submenu v-else ref="subMenu" :index="resolvePath(item.path)" popper-append-to-body>
|
||||
<el-submenu v-else-if="hasShowingChildren(item.children) && item.meta && item.meta.title" ref="subMenu" :index="resolvePath(item.path)" popper-append-to-body>
|
||||
<template slot="title">
|
||||
<item v-if="item.meta" :icon="item.meta && item.meta.icon" :title="item.meta.title" />
|
||||
<item :icon="item.meta && item.meta.icon" :title="item.meta.title" />
|
||||
</template>
|
||||
<sidebar-item
|
||||
v-for="child in item.children"
|
||||
@@ -94,6 +94,30 @@ export default {
|
||||
return { path: path.resolve(this.basePath, routePath), query: query }
|
||||
}
|
||||
return path.resolve(this.basePath, routePath)
|
||||
},
|
||||
hasShowingChildren(children = []) {
|
||||
if (!children || !children.length) {
|
||||
return false
|
||||
}
|
||||
return children.some(child => !child.hidden)
|
||||
},
|
||||
isMenuVisible(item) {
|
||||
if (!item || item.hidden) {
|
||||
return false
|
||||
}
|
||||
if (item.children && item.children.length > 0) {
|
||||
const hasVisibleChild = this.hasShowingChildren(item.children)
|
||||
if (!hasVisibleChild) {
|
||||
if (!item.component || item.component === 'Layout' || item.redirect === 'noRedirect') {
|
||||
return false
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (!item.meta || !item.meta.title) {
|
||||
return false
|
||||
}
|
||||
}
|
||||
return true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -101,6 +101,7 @@ export const constantRoutes = [
|
||||
{
|
||||
path: '/train',
|
||||
component: Layout,
|
||||
hidden: true,
|
||||
redirect: '/train/auth',
|
||||
children: [
|
||||
{
|
||||
|
||||
Reference in new issue
Block a user