refactor(sidebar): 优化侧边栏组件结构

- 移除Item.vue中未使用的num1和num2属性
- 为el-menu-item和el-submenu组件添加基于meta.id的索引支持
- 移除未使用的Logo组件引用
This commit is contained in:
chenxf 2026-01-05 16:19:55 +08:00
parent 91837e1a68
commit cd55e024ff
3 changed files with 4 additions and 5 deletions

View File

@ -31,7 +31,7 @@ export default {
} }
}, },
render(h, context) { render(h, context) {
const { icon, title, routePath, num1, num2 } = context.props const { icon, title } = context.props
const vnodes = [] const vnodes = []
if (icon) { if (icon) {
vnodes.push(<svg-icon icon-class={icon}></svg-icon>) vnodes.push(<svg-icon icon-class={icon}></svg-icon>)

View File

@ -2,7 +2,7 @@
<div v-if="!item.hidden" class="menu-wrapper"> <div v-if="!item.hidden" class="menu-wrapper">
<template v-if="hasOneShowingChild(item.children,item) && (!onlyOneChild.children||onlyOneChild.noShowingChildren)&&!item.alwaysShow"> <template v-if="hasOneShowingChild(item.children,item) && (!onlyOneChild.children||onlyOneChild.noShowingChildren)&&!item.alwaysShow">
<app-link v-if="onlyOneChild.meta" :to="resolvePath(onlyOneChild.path)" style="font-size:16px"> <app-link v-if="onlyOneChild.meta" :to="resolvePath(onlyOneChild.path)" style="font-size:16px">
<el-menu-item :index="resolvePath(onlyOneChild.path)" :class="{'submenu-title-noDropdown':!isNest}"> <el-menu-item :index="(onlyOneChild.meta && onlyOneChild.meta.id) || resolvePath(onlyOneChild.path)" :class="{'submenu-title-noDropdown':!isNest}">
<item <item
:icon="onlyOneChild.meta.icon||(item.meta&&item.meta.icon)" :icon="onlyOneChild.meta.icon||(item.meta&&item.meta.icon)"
:title="onlyOneChild.meta.title" :title="onlyOneChild.meta.title"
@ -14,7 +14,7 @@
</app-link> </app-link>
</template> </template>
<el-submenu v-else ref="subMenu" :index="resolvePath(item.path)" popper-append-to-body> <el-submenu v-else ref="subMenu" :index="(item.meta && item.meta.id) || resolvePath(item.path)" popper-append-to-body>
<template slot="title"> <template slot="title">
<item <item
v-if="item.meta" v-if="item.meta"

View File

@ -21,12 +21,11 @@
<script> <script>
import { mapGetters } from 'vuex' import { mapGetters } from 'vuex'
import Logo from './Logo'
import SidebarItem from './SidebarItem' import SidebarItem from './SidebarItem'
import variables from '@/styles/variables.scss' import variables from '@/styles/variables.scss'
export default { export default {
components: { SidebarItem, Logo }, components: { SidebarItem },
computed: { computed: {
...mapGetters([ ...mapGetters([
'permission_routes', 'permission_routes',