yinbangzhong
2024-08-05 2be0a4e7b031ff8dedd06f8198838fc238936830
权限资源bug
5个文件已修改
22 ■■■■ 已修改文件
src/api/authority.ts 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/hooks/permission.ts 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/router/guard/permission.ts 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/store/modules/user/index.ts 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/store/modules/user/types.ts 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/authority.ts
@@ -85,8 +85,8 @@
  return axios.post('/base/system/user', { user });
}
export function UserDelete(userId) {
  return axios.delete('/base/system/user/' + userId);
export function UserDelete(id) {
  return axios.delete('/base/system/user/' + id);
}
export function OrganizationList(key: string) {
src/hooks/permission.ts
@@ -5,12 +5,24 @@
  const userStore = useUserStore();
  return {
    accessRouter(route: RouteLocationNormalized | RouteRecordRaw) {
      //遍历userStore.resource
      let isok = false;
      if (userStore.resources) {
        userStore.resources.forEach(r => {
          if ((r.menuType == 0 || r.menuType == 3) && (route.name == r.component || route.path == r.component)) {
            isok = true;
          }
        });
        return isok;
      } else {
      return (
        !route.meta?.requiresAuth ||
        !route.meta?.roles ||
        route.meta?.roles?.includes('*') ||
          route.meta?.roles?.includes("*") ||
        route.meta?.roles?.includes(userStore.role)
      );
      }
    },
    findFirstPermissionRoute(_routers: any, role = 'admin') {
      const cloneRouters = [..._routers];
src/router/guard/permission.ts
@@ -5,6 +5,7 @@
import { useUserStore, useAppStore } from '@/store';
import { appRoutes } from '../routes';
import { WHITE_LIST, NOT_FOUND } from '../constants';
import { defineStore } from "pinia";
export default function setupPermissionGuard(router: Router) {
  router.beforeEach(async (to, from, next) => {
src/store/modules/user/index.ts
@@ -28,6 +28,7 @@
    accountId: undefined,
    certification: undefined,
    role: '',
    resources:undefined,
  }),
  getters: {
@@ -70,6 +71,7 @@
          name: res.data.nickname,
          email: res.data.email,
        };
        this.resources=res.data.resources;
        setUserInfo(JSON.stringify(userInfo));
      } catch (err) {
        clearToken();
src/store/modules/user/types.ts
@@ -16,4 +16,5 @@
  accountId?: string;
  certification?: number;
  role: RoleType;
  resources:any;
}