|
@ -29,9 +29,13 @@ const modulesRoutes = import.meta.glob("/src/views/**/*.{vue,tsx}"); |
|
|
// 动态路由
|
|
|
// 动态路由
|
|
|
import { getAsyncRoutes } from "@/api/routes"; |
|
|
import { getAsyncRoutes } from "@/api/routes"; |
|
|
|
|
|
|
|
|
function handRank(ramk: number, name: string, path: string) { |
|
|
|
|
|
return isAllEmpty(ramk) || (ramk === 0 && name !== "Home" && path !== "/") |
|
|
|
|
|
? true |
|
|
|
|
|
|
|
|
function handRank(routeInfo: any) { |
|
|
|
|
|
const { name, path, parentId, meta } = routeInfo; |
|
|
|
|
|
return isAllEmpty(parentId) |
|
|
|
|
|
? isAllEmpty(meta?.rank) || |
|
|
|
|
|
(meta?.rank === 0 && name !== "Home" && path !== "/") |
|
|
|
|
|
? true |
|
|
|
|
|
: false |
|
|
: false; |
|
|
: false; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
@ -39,7 +43,7 @@ function handRank(ramk: number, name: string, path: string) { |
|
|
function ascending(arr: any[]) { |
|
|
function ascending(arr: any[]) { |
|
|
arr.forEach((v, index) => { |
|
|
arr.forEach((v, index) => { |
|
|
// 当rank不存在时,根据顺序自动创建,首页路由永远在第一位
|
|
|
// 当rank不存在时,根据顺序自动创建,首页路由永远在第一位
|
|
|
if (handRank(v?.meta?.rank, v.name, v.path)) v.meta.rank = index + 2; |
|
|
|
|
|
|
|
|
if (handRank(v)) v.meta.rank = index + 2; |
|
|
}); |
|
|
}); |
|
|
return arr.sort( |
|
|
return arr.sort( |
|
|
(a: { meta: { rank: number } }, b: { meta: { rank: number } }) => { |
|
|
(a: { meta: { rank: number } }, b: { meta: { rank: number } }) => { |
|
@ -351,6 +355,7 @@ function hasAuth(value: string | Array<string>): boolean { |
|
|
if (!value) return false; |
|
|
if (!value) return false; |
|
|
/** 从当前路由的`meta`字段里获取按钮级别的所有自定义`code`值 */ |
|
|
/** 从当前路由的`meta`字段里获取按钮级别的所有自定义`code`值 */ |
|
|
const metaAuths = getAuths(); |
|
|
const metaAuths = getAuths(); |
|
|
|
|
|
if (!metaAuths) return false; |
|
|
const isAuths = isString(value) |
|
|
const isAuths = isString(value) |
|
|
? metaAuths.includes(value) |
|
|
? metaAuths.includes(value) |
|
|
: isIncludeAllChildren(value, metaAuths); |
|
|
: isIncludeAllChildren(value, metaAuths); |
|
|