1
0

permission.ts 1.0 KB

12345678910111213141516171819202122232425262728293031323334
  1. import { changSaveLocal, getLocal } from "@/util/localUtil";
  2. import { ref } from "vue";
  3. import { findRoute, RouteName, Routes } from "@/router";
  4. import { pubPermissions } from "@/constant/permission";
  5. import { DataScope, RoleLevel, RoleMenuTreeItem, getRole } from "./role";
  6. export type UserPermission = {
  7. resourceKey: string;
  8. dataScope: DataScope;
  9. type: "menu" | "button";
  10. };
  11. export const permission = ref(getLocal("permission", [] as UserPermission[]));
  12. changSaveLocal("permission", () => permission.value);
  13. /**
  14. * 获取具有权限的路由
  15. * @param routeNames 所有路由
  16. */
  17. export const getPermissionRoutes = (routeNames: string[]) => {
  18. console.error(permission.value);
  19. console.error(pubPermissions,routeNames, 'routeNames');
  20. // .filter((routeName) =>
  21. // permission.value.some((p) => p.resourceKey === routeName)
  22. // )
  23. return routeNames
  24. .map((routeName) => findRoute(routeName))
  25. .filter((route) => route) as Routes;
  26. };
  27. export const setPermission = (perms: UserPermission[]) => {
  28. permission.value = perms.concat(pubPermissions);
  29. };