From e2949e6f0b35bf0dec3d0ed3df0f176c6e0b95cc Mon Sep 17 00:00:00 2001
From: birt <2499248221@qq.com>
Date: 星期日, 13 四月 2025 22:31:05 +0800
Subject: [PATCH] 123

---
 zhitan-vue/src/layout/components/Sidebar/index.vue |   79 ++++++++++++++++++++++++++++-----------
 1 files changed, 56 insertions(+), 23 deletions(-)

diff --git a/zhitan-vue/src/layout/components/Sidebar/index.vue b/zhitan-vue/src/layout/components/Sidebar/index.vue
index 68596a6..b0ee0d8 100644
--- a/zhitan-vue/src/layout/components/Sidebar/index.vue
+++ b/zhitan-vue/src/layout/components/Sidebar/index.vue
@@ -5,9 +5,8 @@
     class="sidebar-container-wrapper"
   >
     <el-scrollbar :class="sideTheme" wrap-class="scrollbar-wrapper" view-class="scrollbar-view">
-      <!-- 棣栭〉鏃朵笉鏄剧ず浠讳綍鑿滃崟椤� -->
+      <!-- 濮嬬粓鏄剧ず鑿滃崟椤癸紝涓嶅啀鏍规嵁璺緞鍒ゆ柇 -->
       <el-menu
-        v-if="!isHomePage"
         :default-active="activeMenu"
         :collapse="isCollapse"
         :background-color="'transparent'"
@@ -18,15 +17,24 @@
         mode="vertical"
         class="custom-menu"
       >
-        <sidebar-item
-          v-for="(route, index) in sidebarRouters"
-          :key="route.path + index"
-          :item="route"
-          :base-path="route.path"
-        />
+        <!-- 褰撳墠鏄椤电湅鏉垮瓙璺敱鏃讹紝娓叉煋涓撶敤璺敱 -->
+        <template v-if="isIndexSubRoute">
+          <sidebar-item
+            v-for="(route, index) in indexPageRouters"
+            :key="route.path + index"
+            :item="route"
+            :base-path="route.path"
+          />
+        </template>
+        <template v-else>
+          <sidebar-item
+            v-for="(route, index) in sidebarRouters"
+            :key="route.path + index"
+            :item="route"
+            :base-path="route.path"
+          />
+        </template>
       </el-menu>
-      <!-- 棣栭〉鏃剁殑绌虹櫧鍖哄煙 -->
-      <div v-else class="home-empty-menu"></div>
     </el-scrollbar>
     
     <!-- 搴曢儴鐢ㄦ埛鍖哄煙 -->
@@ -95,19 +103,21 @@
 
 const sidebarRouters = computed(() => permissionStore.sidebarRouters)
 
-// 鍒ゆ柇褰撳墠鏄惁涓洪椤�
-const isHomePage = computed(() => {
-  return route.path === '/index' || route.path === '/' || route.fullPath.startsWith('/index')
+// 鍒ゆ柇褰撳墠鏄惁涓洪椤靛瓙璺敱(/index/index)
+const isIndexSubRoute = computed(() => {
+  return route.path === '/index/index'
 })
 
-// 棣栭〉涓撶敤璺敱锛屽彧鏈夐椤典竴涓彍鍗曢」
-const homePageRouters = computed(() => {
-  // 浠庡師濮嬭矾鐢变腑绛涢�夊嚭棣栭〉璺敱
-  const homeRoute = sidebarRouters.value.find(route => {
-    return route.children && route.children.find(child => child.path === '/index')
-  })
-  
-  return homeRoute ? [homeRoute] : []
+// 鍒ゆ柇褰撳墠鏄惁涓轰富棣栭〉璺敱(/index鎴�/)
+const isMainIndexRoute = computed(() => {
+  return route.path === '/index' || route.path === '/'
+})
+
+// 棣栭〉涓撶敤璺敱锛岄椤电湅鏉跨浉鍏宠彍鍗�
+const indexPageRouters = computed(() => {
+  // 鏌ユ壘name涓篒ndex鐨勮矾鐢�
+  const indexRoute = sidebarRouters.value.find(route => route.name === 'Index')
+  return indexRoute ? [indexRoute] : []
 })
 
 const showLogo = computed(() => settingsStore.sidebarLogo)
@@ -162,12 +172,13 @@
 }
 
 :deep(.scrollbar-wrapper) {
-  height: calc(100% - 290px) !important;
+  height: calc(100% - 220px) !important;
   overflow-x: hidden !important;
 }
 
 :deep(.scrollbar-view) {
   height: 100%;
+  padding-bottom: 20px;
 }
 
 :deep(.el-scrollbar__bar.is-vertical) {
@@ -237,6 +248,28 @@
         height: 38px !important;
         line-height: 38px !important;
       }
+      
+      // Add styling for deeply nested submenus (level 3+)
+      .el-sub-menu {
+        .el-menu-item {
+          padding-left: 65px !important;
+          
+          &.is-active {
+            padding-left: 65px !important;
+          }
+        }
+        
+        // Level 4
+        .el-menu {
+          .el-menu-item {
+            padding-left: 85px !important;
+            
+            &.is-active {
+              padding-left: 85px !important;
+            }
+          }
+        }
+      }
     }
   }
 }
@@ -250,7 +283,7 @@
 // 搴曢儴鐢ㄦ埛鍖哄煙鏍峰紡
 .sidebar-footer {
   position: absolute;
-  bottom: 72px;
+  bottom: 0;
   left: 0;
   width: 100%;
   border-top: 1px solid rgba(255, 255, 255, 0.1);

--
Gitblit v1.9.3