/* * @Author: qinzhenpen qzp1807@126.com * @Date: 2024-08-16 17:56:32 * @LastEditors: qinzhenpen qzp1807@126.com * @LastEditTime: 2025-05-16 17:02:23 * @FilePath: \vue3\src\permission.js * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE */ import router from "./router"; import { ElMessage } from "element-plus"; import NProgress from "nprogress"; import "nprogress/nprogress.css"; import { getToken, getUserInfo } from "@/utils/auth"; import { isHttp } from "@/utils/validate"; import { isRelogin } from "@/utils/request"; import useUserStore from "@/store/modules/user"; import useSettingsStore from "@/store/modules/settings"; import usePermissionStore from "@/store/modules/permission"; NProgress.configure({ showSpinner: false }); const whiteList = ["/login", "/register"]; router.beforeEach((to, from, next) => { NProgress.start(); if (getToken()) { if (to.path === "/login") { if (JSON.parse(getUserInfo()).roleId == 1) { next({ path: "/index" }); NProgress.done(); } else if (JSON.parse(getUserInfo()).roleId == 2) { next({ path: "/index" }); NProgress.done(); } else if (JSON.parse(getUserInfo()).roleId == 3) { next({ path: "/index" }); NProgress.done(); } else if (JSON.parse(getUserInfo()).roleId == 4) { next({ path: "/index" }); NProgress.done(); } } else { usePermissionStore() .getRoutersPermission() .then((accessRoutes) => { next(); // hack方法 确保addRoutes已完成 }); } } else { // 没有token if (whiteList.indexOf(to.path) !== -1) { // 在免登录白名单,直接进入 next(); } else { next(`/login?redirect=${to.fullPath}`); // 否则全部重定向到登录页 NProgress.done(); } } }); router.afterEach(() => { NProgress.done(); });