From aff935a30d8328da01d7610fb8ec80ed8b73e54d Mon Sep 17 00:00:00 2001 From: hwj Date: Fri, 29 May 2026 09:51:41 +0800 Subject: [PATCH] =?UTF-8?q?perf=EF=BC=9A=E8=8F=9C=E5=8D=95=E9=81=8D?= =?UTF-8?q?=E5=8E=86=E9=80=BB=E8=BE=91=E4=BC=98=E5=8C=96=EF=BC=8C=E4=B8=8D?= =?UTF-8?q?=E5=9B=BA=E5=AE=9A=E7=B4=A2=E5=BC=95=E8=8E=B7=E5=8F=96=E8=8F=9C?= =?UTF-8?q?=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/utils/permissionMenu.js | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/src/utils/permissionMenu.js b/src/utils/permissionMenu.js index f561a8b..c720c13 100644 --- a/src/utils/permissionMenu.js +++ b/src/utils/permissionMenu.js @@ -190,15 +190,19 @@ export function getDynamicTabMenus(menus) { return getTopLevelMenus(menus).filter((menu) => !looksLikeHomeMenu(menu)) } +function normalizePagePath(value) { + const path = String(value || '').trim().replace(/^\/+/, '') + return path ? `/${path}` : '' +} + export function findTabMenuByPage(menus, pagePath) { const dynamicMenus = getDynamicTabMenus(menus) - if (pagePath === 'pages/report') { - return dynamicMenus[0] || null - } - if (pagePath === 'pages/work') { - return dynamicMenus[1] || dynamicMenus[0] || null + const targetPath = normalizePagePath(pagePath) + if (!targetPath) { + return null } - return null + + return dynamicMenus.find((menu) => normalizePagePath(resolveMenuUrl(menu)) === targetPath) || null } export function buildPageModules(tabMenu) { @@ -254,11 +258,12 @@ export function getMenuSymbol(name, index) { } export function syncTabBarMenus(menus, options = {}) { - const dynamicMenus = getDynamicTabMenus(menus) + const reportMenu = findTabMenuByPage(menus, 'pages/report') + const workMenu = findTabMenuByPage(menus, 'pages/work') return [ options.homeText || '首页', - dynamicMenus[0]?.name || options.reportFallback || '报表', - dynamicMenus[1]?.name || dynamicMenus[0]?.name || options.workFallback || '管理', + reportMenu?.name || options.reportFallback || '报表', + workMenu?.name || reportMenu?.name || options.workFallback || '管理', options.mineText || '我的' ] }