blob: d2e4ead4f5052aae33914c13d323c5e8c51c83ff [file] [log] [blame]
huibing.xie1f1606f2018-08-20 15:46:55 +08001import router from './router'
2import store from './store'
3import NProgress from 'nprogress' // Progress 进度条
4import 'nprogress/nprogress.css'// Progress 进度条样式
5import { Message } from 'element-ui'
6import { getToken } from '@/utils/auth' // 验权
7
8const whiteList = ['/login'] // 不重定向白名单
9router.beforeEach((to, from, next) => {
10 NProgress.start()
11 if (getToken()) {
12 if (to.path === '/login') {
13 next({ path: '/' })
14 NProgress.done() // if current page is dashboard will not trigger afterEach hook, so manually handle it
15 } else {
16 if (store.getters.roles.length === 0) {
17 store.dispatch('GetInfo').then(res => { // 拉取用户信息
18 next()
19 }).catch((err) => {
20 store.dispatch('FedLogOut').then(() => {
21 Message.error(err || '验证失败,请重新登录')
22 next({ path: '/' })
23 })
24 })
25 } else {
26 next()
27 }
28 }
29 } else {
30 if (whiteList.indexOf(to.path) !== -1) {
31 next()
32 } else {
33 next('/login')
34 NProgress.done()
35 }
36 }
37})
38
39router.afterEach(() => {
40 NProgress.done() // 结束Progress
41})