// 路由拦截
// import router from './index'
// import { staticRoutes, dataRoutes } from './index'
import { staticRoutes } from './index'
import store from '../store'
import {
getToken
} from '@/utils/auth' // 验权
import 'nprogress/nprogress.css' // 进度条
import NProgress from 'nprogress' // 进度调样式
import Vue from 'vue'
import Router from 'vue-router'
Vue.use(Router)
let router = new Router({ routes: staticRoutes })
NProgress.configure({
showSpinner: false
})
router.beforeEach((to, from, next) => {
NProgress.start()
store.commit('CHANGE_TITLE', to.meta.title)
// console.log(1)
// if (getToken()) {
// // 在token存在时在进行加载下秒的内容,不能用store.state.user.token因为他回去请求getToken(),
// // 由于加载的时间限制会导致store.state.user.token为空,进而导致走else的内容,使第一次动态加载为空,导致第二次刷新才能解决
// if (to.path === '/login') {
// next()
// } else {
// next()
// // // console.log(2)
// // if (!store.state.user.id) { // 当id为空时进行加载,也有预防刷新消失的功能
// // // 只能运行一次
// // store.dispatch('Change', 'qwe') // 改变id使以后不在加载
// // // console.log(3)
// // // dataRoutes.map(function (value) {
// // // if (value.role === sessionStorage.getItem('router')) {
// // // router.addRoutes(value.roleRoutes)
// // // }
// // // })
// // next({ ...to, replace: true })
// // // console.log(4)
// // } else {
// // // console.log(5)
// // // console.log(getToken(), router)
// // next()
// // }
// }
// } else {
// // console.log(6)
// next()
// // router.push({path:'/login'})
// NProgress.done()
// }
if (to.matched.some(res => res.meta.requireAuth)) { // 判断是否需要登录权限
if (getToken()) { // 判断token是否存在
next()
} else {
router.push({
path: '/401'
})
}
} else if (to.path === '/login') {
next()
} else {
next()
NProgress.done()
}
})
router.afterEach(() => {
NProgress.done()
})
export default router