10 changed files with 1240 additions and 921 deletions
@ -1,63 +1,66 @@ |
|||
import router from './router' |
|||
import store from './store' |
|||
import { Message } from 'element-ui' |
|||
import NProgress from 'nprogress' |
|||
import 'nprogress/nprogress.css' |
|||
import { getToken } from '@/utils/auth' |
|||
import { isPathMatch } from '@/utils/validate' |
|||
import { isRelogin } from '@/utils/request' |
|||
import router from "./router"; |
|||
import store from "./store"; |
|||
import { Message } from "element-ui"; |
|||
import NProgress from "nprogress"; |
|||
import "nprogress/nprogress.css"; |
|||
import { getToken } from "@/utils/auth"; |
|||
import { isPathMatch } from "@/utils/validate"; |
|||
import { isRelogin } from "@/utils/request"; |
|||
|
|||
NProgress.configure({ showSpinner: false }) |
|||
NProgress.configure({ showSpinner: false }); |
|||
|
|||
const whiteList = ['/login', '/register','/screening/h5'] |
|||
const whiteList = ["/login", "/register", "/screening/h5", "/screening/h5eva"]; |
|||
|
|||
const isWhiteList = (path) => { |
|||
return whiteList.some(pattern => isPathMatch(pattern, path)) |
|||
} |
|||
return whiteList.some((pattern) => isPathMatch(pattern, path)); |
|||
}; |
|||
|
|||
router.beforeEach((to, from, next) => { |
|||
NProgress.start() |
|||
NProgress.start(); |
|||
if (getToken()) { |
|||
to.meta.title && store.dispatch('settings/setTitle', to.meta.title) |
|||
to.meta.title && store.dispatch("settings/setTitle", to.meta.title); |
|||
/* has token*/ |
|||
if (to.path === '/login') { |
|||
next({ path: '/' }) |
|||
NProgress.done() |
|||
if (to.path === "/login") { |
|||
next({ path: "/" }); |
|||
NProgress.done(); |
|||
} else if (isWhiteList(to.path)) { |
|||
next() |
|||
next(); |
|||
} else { |
|||
if (store.getters.roles.length === 0) { |
|||
isRelogin.show = true |
|||
isRelogin.show = true; |
|||
// 判断当前用户是否已拉取完user_info信息
|
|||
store.dispatch('GetInfo').then(() => { |
|||
isRelogin.show = false |
|||
store.dispatch('GenerateRoutes').then(accessRoutes => { |
|||
// 根据roles权限生成可访问的路由表
|
|||
router.addRoutes(accessRoutes) // 动态添加可访问路由表
|
|||
next({ ...to, replace: true }) // hack方法 确保addRoutes已完成
|
|||
}) |
|||
}).catch(err => { |
|||
store.dispatch('LogOut').then(() => { |
|||
Message.error(err) |
|||
next({ path: '/' }) |
|||
}) |
|||
store |
|||
.dispatch("GetInfo") |
|||
.then(() => { |
|||
isRelogin.show = false; |
|||
store.dispatch("GenerateRoutes").then((accessRoutes) => { |
|||
// 根据roles权限生成可访问的路由表
|
|||
router.addRoutes(accessRoutes); // 动态添加可访问路由表
|
|||
next({ ...to, replace: true }); // hack方法 确保addRoutes已完成
|
|||
}); |
|||
}) |
|||
.catch((err) => { |
|||
store.dispatch("LogOut").then(() => { |
|||
Message.error(err); |
|||
next({ path: "/" }); |
|||
}); |
|||
}); |
|||
} else { |
|||
next() |
|||
next(); |
|||
} |
|||
} |
|||
} else { |
|||
// 没有token
|
|||
if (isWhiteList(to.path)) { |
|||
// 在免登录白名单,直接进入
|
|||
next() |
|||
next(); |
|||
} else { |
|||
next(`/login?redirect=${encodeURIComponent(to.fullPath)}`) // 否则全部重定向到登录页
|
|||
NProgress.done() |
|||
next(`/login?redirect=${encodeURIComponent(to.fullPath)}`); // 否则全部重定向到登录页
|
|||
NProgress.done(); |
|||
} |
|||
} |
|||
}) |
|||
}); |
|||
|
|||
router.afterEach(() => { |
|||
NProgress.done() |
|||
}) |
|||
NProgress.done(); |
|||
}); |
|||
|
After Width: | Height: | Size: 148 KiB |
File diff suppressed because it is too large
File diff suppressed because it is too large
Binary file not shown.
Binary file not shown.
Binary file not shown.
Loading…
Reference in new issue