12345678910111213141516171819202122232425262728293031323334 |
- import { changSaveLocal, getLocal } from "@/util/localUtil";
- import { ref } from "vue";
- import { findRoute, RouteName, Routes } from "@/router";
- import { pubPermissions } from "@/constant/permission";
- import { DataScope, RoleLevel, RoleMenuTreeItem, getRole } from "./role";
- export type UserPermission = {
- resourceKey: string;
- dataScope: DataScope;
- type: "menu" | "button";
- };
- export const permission = ref(getLocal("permission", [] as UserPermission[]));
- changSaveLocal("permission", () => permission.value);
- /**
- * 获取具有权限的路由
- * @param routeNames 所有路由
- */
- export const getPermissionRoutes = (routeNames: string[], e: string[] = []) => {
- return routeNames
- .filter(
- (routeName) =>
- e.includes(routeName) ||
- permission.value.some((p) => p.resourceKey === routeName)
- )
- .map((routeName) => findRoute(routeName))
- .filter((route) => route) as Routes;
- };
- export const setPermission = (perms: UserPermission[]) => {
- permission.value = perms.concat(pubPermissions);
- };
|