12345678910111213141516171819202122232425262728293031323334353637383940 |
- import * as VueRouter from 'vue-router'
- import NProgress from 'nprogress';
- import 'nprogress/nprogress.css'
- import store from '@/store';
-
- const routes = [
- { path: '/', name: 'index', component: () => import('@/pages/index.vue') },
- { path: '/login', name: 'login', component: () => import('@/pages/login.vue') },
- ];
-
- const router = VueRouter.createRouter({
- history: VueRouter.createWebHistory(),
- routes,
- })
-
- router.beforeEach((to, from, next) => {
- NProgress.start();
-
- if (to.name === 'login') {
- NProgress.done();
- return next();
- }
-
- const { user, getCurrent } = store.getState('user');
- if (!user || !user.personId) {
- getCurrent().then(() => {
- NProgress.done();
- next();
- }).catch((err) => {
- console.error(err)
- NProgress.done();
- next({ name: 'login', query: { from: encodeURIComponent(from.fullPath) } });
- })
- } else {
- next();
- NProgress.done();
- }
- })
-
- export default router;
|