2024-04-11 00:15:57 +08:00
|
|
|
import { dynamicRoutes } from "@/router/route";
|
2024-04-11 13:07:43 +08:00
|
|
|
import pinia from "@/store/index";
|
|
|
|
|
import { storeToRefs } from "pinia";
|
|
|
|
|
import { useUserInfoStore } from "@/store/user-info";
|
|
|
|
|
// import { useRoutesListStore } from "@/store/route-list";
|
|
|
|
|
|
2024-04-08 00:13:27 +08:00
|
|
|
export function initSetRouter() {
|
2024-04-11 00:15:57 +08:00
|
|
|
// 过滤后的结果
|
|
|
|
|
let filteredData = filterByRole(dynamicRoutes[0].children);
|
|
|
|
|
console.log("路由处理完", filteredData);
|
2024-04-08 00:13:27 +08:00
|
|
|
}
|
2024-04-11 00:15:57 +08:00
|
|
|
|
|
|
|
|
// 过滤路由树,返回有权限的树
|
|
|
|
|
export const filterByRole = (nodes: any) => {
|
|
|
|
|
return nodes.filter((item: any) => {
|
|
|
|
|
if (item.meta && item.meta.roles) {
|
|
|
|
|
if (!roleBase(item.meta.roles)) return false;
|
|
|
|
|
}
|
|
|
|
|
if (item.children) item.children = filterByRole(item.children);
|
|
|
|
|
return true;
|
|
|
|
|
});
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
// 校验角色权限
|
|
|
|
|
export const roleBase = (roles: Array<string>) => {
|
2024-04-11 13:07:43 +08:00
|
|
|
const store = useUserInfoStore(pinia);
|
|
|
|
|
const { account } = storeToRefs(store);
|
|
|
|
|
return account.value.roles.some((item: string) => roles.includes(item));
|
2024-04-11 00:15:57 +08:00
|
|
|
};
|