From 089bf5d2378b3c4a61d795b2a92bede2c193b771 Mon Sep 17 00:00:00 2001
From: admin <344137771@qq.com>
Date: Tue, 06 Jan 2026 11:22:58 +0800
Subject: [PATCH] 1
---
src/views/main-sidebar-sub-menu.vue | 87 +++++++++++++++++++++++++++++++++++++++++++
1 files changed, 87 insertions(+), 0 deletions(-)
diff --git a/src/views/main-sidebar-sub-menu.vue b/src/views/main-sidebar-sub-menu.vue
new file mode 100644
index 0000000..2c4a20f
--- /dev/null
+++ b/src/views/main-sidebar-sub-menu.vue
@@ -0,0 +1,87 @@
+<template>
+ <!-- 左侧菜单组件 -->
+ <el-submenu
+ v-if="menu.list && menu.list.length >= 1"
+ :index="menu.menuId + ''"
+ :popper-append-to-body="false"
+ :popper-class="'site-sidebar--' + sidebarLayoutSkin + '-popper'">
+ <template slot="title">
+ <icon-svg :name="menu.icon || ''" class="site-sidebar__menu-icon"></icon-svg>
+ <span>{{ menu.name }}</span>
+ <el-badge class="mark" :value="countNum(menu.name+'_'+menu.type)" v-if="countNum(menu.name+'_'+menu.type) > 0"/>
+ </template>
+ <sub-menu
+ v-for="item in menu.list"
+ :key="item.menuId"
+ :menu="item"
+ :dynamicMenuRoutes="dynamicMenuRoutes">
+ </sub-menu>
+ </el-submenu>
+ <el-menu-item v-else :index="menu.menuId + ''" @click="gotoRouteHandle(menu)">
+ <icon-svg :name="menu.icon || ''" class="site-sidebar__menu-icon"></icon-svg>
+ <span>{{ menu.name }}</span>
+ <el-badge class="mark" :value="countNum(menu.name+'_'+menu.type)" v-if="countNum(menu.name+'_'+menu.type) > 0"/>
+ </el-menu-item>
+
+</template>
+
+<script>
+ import SubMenu from './main-sidebar-sub-menu'
+ export default {
+ name: 'sub-menu',
+ props: {
+ menu: {
+ type: Object,
+ required: true
+ },
+ dynamicMenuRoutes: {
+ type: Array,
+ required: true
+ }
+ },
+ components: {
+ SubMenu
+ },
+ computed: {
+ sidebarLayoutSkin: {
+ get () { return this.$store.state.common.sidebarLayoutSkin }
+ }
+ },
+ methods: {
+ // 通过menuId与动态(菜单)路由进行匹配跳转至指定路由
+ gotoRouteHandle (menu) {
+ var route = this.dynamicMenuRoutes.filter(item => item.meta.menuId === menu.menuId)
+ console.log(menu)
+ if (route.length >= 1) {
+ this.$router.push({ name: route[0].name })
+ }
+ },
+ countNum(name){
+ if(!this.menuMap){
+ // console.log(name + "-->");
+ return 0;
+ }
+ let type = this.menuMap[name];
+ let num = this.main.tips[type]
+ if(isNaN(num)){
+ num = 0
+ }
+ // console.log(name + "-->" + type + "-->" + num);
+ return num;
+ }
+ }
+ }
+</script>
+<style scoped>
+::v-deep .el-menu--popup-right-start{
+ margin-left: 0px !important;
+ border: none !important;
+}
+/* ::v-deep .el-submenu__title{
+ background: rgba(44, 44, 44, 0);
+ color:#BBCAFF !important;
+ } */
+ /* ::v-deep .el-menu-item{
+ color: white;
+ } */
+</style>
--
Gitblit v1.9.3