permission.ts 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. import router from "./router/index";
  2. import NProgress from "nprogress";
  3. import "nprogress/nprogress.css";
  4. import { Route } from "vue-router";
  5. NProgress.configure({ showSpinner: false });
  6. const whiteList = ["/login"];
  7. router.beforeEach(async (to: Route, _: Route, next: any) => {
  8. // 加载进度条
  9. NProgress.start();
  10. // 确定用户是否已登录
  11. // if (UserModule.token) {
  12. // if (to.path === "/login") {
  13. // // 如果已登录,请重定向到主页
  14. // next({ path: "/" });
  15. // NProgress.done();
  16. // } else {
  17. // // 检查用户是否已获得其角色权限
  18. // if (UserModule.roles.length === 0) {
  19. // try {
  20. // // 获取用户信息,包括角色
  21. // await UserModule.GetUserInfo();
  22. // // 设置replace:true,这样导航就不会留下历史记录
  23. // next({ ...to, replace: true });
  24. // } catch (err) {
  25. // // 删除令牌并重定向到登录页
  26. // UserModule.ResetToken();
  27. // Message.error(err || "Has Error");
  28. // next(`/login?redirect=${to.path}`);
  29. // NProgress.done();
  30. // }
  31. // } else {
  32. // next();
  33. // }
  34. // }
  35. // } else {
  36. // // 没有令牌
  37. // if (whiteList.indexOf(to.path) !== -1) {
  38. // // 在免费登录白名单中,直接进入
  39. // next();
  40. // } else {
  41. // // 其他没有访问权限的页面将重定向到登录页面。
  42. // next(`/login?redirect=${to.path}`);
  43. // NProgress.done();
  44. // }
  45. // }
  46. next();
  47. });
  48. router.afterEach((to: Route) => {
  49. // 完成进度条
  50. NProgress.done();
  51. // 设置页面标题
  52. document.title = to.meta.title;
  53. });