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