index.js 947B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. import * as VueRouter from 'vue-router'
  2. import NProgress from 'nprogress';
  3. import 'nprogress/nprogress.css'
  4. import store from '@/store';
  5. const routes = [
  6. { path: '/', name: 'index', component: () => import('@/pages/index.vue') },
  7. { path: '/login', name: 'login', component: () => import('@/pages/login.vue') },
  8. ];
  9. const router = VueRouter.createRouter({
  10. history: VueRouter.createWebHistory(),
  11. routes,
  12. })
  13. router.beforeEach((to, from, next) => {
  14. NProgress.start();
  15. if (to.name === 'login') {
  16. NProgress.done();
  17. return next();
  18. }
  19. const { user, getCurrent } = store.getState('user');
  20. if (!user || !user.personId) {
  21. getCurrent().then(() => {
  22. NProgress.done();
  23. next();
  24. }).catch((err) => {
  25. console.error(err)
  26. NProgress.done();
  27. next({ name: 'login', query: { from: encodeURIComponent(from.fullPath) } });
  28. })
  29. } else {
  30. next();
  31. NProgress.done();
  32. }
  33. })
  34. export default router;