import router from "./router/index"; import NProgress from "nprogress"; import "nprogress/nprogress.css"; import { Route } from "vue-router"; NProgress.configure({ showSpinner: false }); const whiteList = ["/login"]; router.beforeEach(async (to: Route, _: Route, next: any) => { // 加载进度条 NProgress.start(); // 确定用户是否已登录 // if (UserModule.token) { // if (to.path === "/login") { // // 如果已登录,请重定向到主页 // next({ path: "/" }); // NProgress.done(); // } else { // // 检查用户是否已获得其角色权限 // if (UserModule.roles.length === 0) { // try { // // 获取用户信息,包括角色 // await UserModule.GetUserInfo(); // // 设置replace:true,这样导航就不会留下历史记录 // next({ ...to, replace: true }); // } catch (err) { // // 删除令牌并重定向到登录页 // UserModule.ResetToken(); // Message.error(err || "Has Error"); // next(`/login?redirect=${to.path}`); // NProgress.done(); // } // } else { // next(); // } // } // } else { // // 没有令牌 // if (whiteList.indexOf(to.path) !== -1) { // // 在免费登录白名单中,直接进入 // next(); // } else { // // 其他没有访问权限的页面将重定向到登录页面。 // next(`/login?redirect=${to.path}`); // NProgress.done(); // } // } next(); }); router.afterEach((to: Route) => { // 完成进度条 NProgress.done(); // 设置页面标题 document.title = to.meta.title; });