You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

42 lines
1.0KB

  1. import router from "./router";
  2. import store from "./store";
  3. import { Message } from "element-ui";
  4. import NProgress from "nprogress";
  5. import "nprogress/nprogress.css";
  6. import Cookies from "js-cookie";
  7. NProgress.configure({ showSpinner: false });
  8. router.beforeEach((to, from, next) => {
  9. NProgress.start();
  10. to.meta.title && store.dispatch("settings/setTitle", to.meta.title);
  11. const cookieToken = Cookies.get('JSESSIONID')
  12. console.log('cookieToken=', cookieToken)
  13. if (cookieToken) {
  14. if (store.getters.permissions.length === 0) {
  15. store
  16. .dispatch("GetPermissions")
  17. .then((res) => {
  18. store.dispatch("GenerateRoutes", res).then(() => {
  19. next({ ...to, replace: true });
  20. });
  21. })
  22. .catch((err) => {
  23. console.error(err);
  24. store.dispatch("LogOut").then(() => {
  25. Message.error(err);
  26. next({ path: "/" });
  27. });
  28. });
  29. return
  30. }
  31. } else {
  32. location.href = process.env.VUE_APP_ADMIN_LOGIN_URL
  33. }
  34. next();
  35. });
  36. router.afterEach(() => {
  37. NProgress.done();
  38. });