From 704a721f1ea9e3050be765afff0bb86dbc6bb603 Mon Sep 17 00:00:00 2001 From: zhangwei <1504152376@qq.com> Date: 星期一, 11 八月 2025 10:42:43 +0800 Subject: [PATCH] 报红更改 --- src/router/utils.ts | 30 ++++++++++++++++++++---------- 1 files changed, 20 insertions(+), 10 deletions(-) diff --git a/src/router/utils.ts b/src/router/utils.ts index 1e91571..b5e524f 100644 --- a/src/router/utils.ts +++ b/src/router/utils.ts @@ -21,10 +21,12 @@ import { userKey, type DataInfo } from "@/utils/auth"; import { type menuType, routerArrays } from "@/layout/types"; import { useMultiTagsStoreHook } from "@/store/modules/multiTags"; +import { useUserStoreHook } from "@/store/modules/user"; import { usePermissionStoreHook } from "@/store/modules/permission"; const IFrame = () => import("@/layout/frame.vue"); // https://cn.vitejs.dev/guide/features.html#glob-import const modulesRoutes = import.meta.glob("/src/views/**/*.{vue,tsx}"); +const quanxianList = ["/item"]; // 鍔ㄦ�佽矾鐢� import { getAsyncRoutes } from "@/api/routes"; @@ -54,9 +56,15 @@ /** 杩囨护meta涓璼howLink涓篺alse鐨勮彍鍗� */ function filterTree(data: RouteComponent[]) { + const hasFlsh = useUserStoreHook().nowRole.hasFlsh; const newTree = cloneDeep(data).filter( - (v: { meta: { showLink: boolean } }) => v.meta?.showLink !== false + (v: { meta: { showLink: boolean } }) => { + quanxianList.includes(v.path) ? (v.meta.showLink = hasFlsh) : null; + return v.meta?.showLink !== false; + } ); + console.log(newTree); + newTree.forEach( (v: { children }) => v.children && (v.children = filterTree(v.children)) ); @@ -120,14 +128,14 @@ /** 鏌ユ壘瀵瑰簲 `path` 鐨勮矾鐢变俊鎭� */ function findRouteByPath(path: string, routes: RouteRecordRaw[]) { - let res = routes.find((item: { path: string }) => item.path == path); + let res = routes?.find((item: { path: string }) => item.path == path); if (res) { return isProxy(res) ? toRaw(res) : res; } else { - for (let i = 0; i < routes.length; i++) { + for (let i = 0; i < routes?.length; i++) { if ( - routes[i].children instanceof Array && - routes[i].children.length > 0 + routes[i]?.children instanceof Array && + routes[i]?.children.length > 0 ) { res = findRouteByPath(path, routes[i].children); if (res) { @@ -151,21 +159,21 @@ /** 澶勭悊鍔ㄦ�佽矾鐢憋紙鍚庣杩斿洖鐨勮矾鐢憋級 */ function handleAsyncRoutes(routeList) { - if (routeList.length === 0) { + if (routeList?.length === 0) { usePermissionStoreHook().handleWholeMenus(routeList); } else { formatFlatteningRoutes(addAsyncRoutes(routeList)).map( (v: RouteRecordRaw) => { // 闃叉閲嶅娣诲姞璺敱 if ( - router.options.routes[0].children.findIndex( + router.options.routes[0].children?.findIndex( value => value.path === v.path ) !== -1 ) { return; } else { // 鍒囪灏嗚矾鐢眕ush鍒皉outes鍚庤繕闇�瑕佷娇鐢╝ddRoute锛岃繖鏍疯矾鐢辨墠鑳芥甯歌烦杞� - router.options.routes[0].children.push(v); + router.options.routes[0].children?.push(v); // 鏈�缁堣矾鐢辫繘琛屽崌搴� ascending(router.options.routes[0].children); if (!router.hasRoute(v?.name)) router.addRoute(v); @@ -227,7 +235,7 @@ * @returns 杩斿洖澶勭悊鍚庣殑涓�缁磋矾鐢� */ function formatFlatteningRoutes(routesList: RouteRecordRaw[]) { - if (routesList.length === 0) return routesList; + if (routesList?.length === 0) return routesList; let hierarchyList = buildHierarchyTree(routesList); for (let i = 0; i < hierarchyList.length; i++) { if (hierarchyList[i].children) { @@ -246,7 +254,7 @@ * @returns 杩斿洖灏嗕竴缁存暟缁勯噸鏂板鐞嗘垚瑙勫畾璺敱鐨勬牸寮� */ function formatTwoStageRoutes(routesList: RouteRecordRaw[]) { - if (routesList.length === 0) return routesList; + if (routesList?.length === 0) return routesList; const newRoutesList: RouteRecordRaw[] = []; routesList.forEach((v: RouteRecordRaw) => { if (v.path === "/") { @@ -387,6 +395,8 @@ usePermissionStoreHook().wholeMenus[0]?.children[0] ); tag && useMultiTagsStoreHook().handleTags("push", topMenu); + // console.log(topMenu, "topMenu"); + return topMenu; } -- Gitblit v1.9.1