From 674d800f2a389e63de490b45da67375cab85acd6 Mon Sep 17 00:00:00 2001 From: Asoka Date: Wed, 4 Jun 2025 16:13:16 +0800 Subject: [PATCH] =?UTF-8?q?fix=20home=E9=A1=B5=E8=B7=B3=E8=BD=AC=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/system-entrance/index.vue | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/src/views/system-entrance/index.vue b/src/views/system-entrance/index.vue index 37ac9b2..0bc668f 100644 --- a/src/views/system-entrance/index.vue +++ b/src/views/system-entrance/index.vue @@ -111,9 +111,10 @@ const filterRoutesFun = (arr: T[]): T[] => { }) } -// 设置/过滤路由(完全按照 columnsAside.vue) +// 设置/过滤路由(修改为适合系统入口页面的版本) const setFilterRoutes = () => { state.columnsAsideList = filterRoutesFun(routesList.value) + // 系统入口页面不需要自动点击菜单,只需要过滤出可用的路由即可 } // 主动初始化路由数据 @@ -142,7 +143,7 @@ const initializeRoutes = async () => { } } -// 菜单高亮点击事件(完全按照 columnsAside.vue 的方式) +// 菜单高亮点击事件(修改为直接导航到第一个子菜单) const onColumnsAsideMenuClick = async (v: RouteItem) => { let { path, redirect } = v @@ -156,8 +157,20 @@ const onColumnsAsideMenuClick = async (v: RouteItem) => { if (v.children && v.children.length > 0) { const resData: MittMenu = setSendChildren(path) if (Object.keys(resData).length <= 0) return false + + // 发送菜单数据到布局组件 mittBus.emit('setSendColumnsChildren', resData) - router.push('/') + + // 查找第一个可访问的子菜单 + const firstAvailableChild = v.children.find(child => !child.meta?.isHide) + if (firstAvailableChild) { + // 直接导航到第一个子菜单,而不是主页面 + router.push(firstAvailableChild.path) + } else { + // 如果没有可访问的子菜单,跳转到模块根路径 + router.push(path) + } + themeConfig.value.isCollapse = false } else { router.push(path)