import router from './router' import store from './store' // import { Message } from 'element-ui' // import Vue from 'vue' import NProgress from 'nprogress' // progress bar import 'nprogress/nprogress.css' // progress bar style import getPageTitle from '@/utils/get-page-title' NProgress.configure({ showSpinner: false }) // NProgress Configuration // get token from cookie import { getRoleRouter } from '@/router/modules/components.js' router.beforeEach(async(to, from, next) => { // start progress bar NProgress.start() // set page title document.title = getPageTitle(to.meta.title) // determine whether the user has logged in // const hasToken = getStorage() const hasToken = window.sessionStorage.getItem('token') if (hasToken) { const userInfo = store.getters.userInfo if (userInfo) { console.log('有 userInfo') console.log(to) next() NProgress.done() } else { console.log('无 userInfo') await store.dispatch('user/getInfo') const userRoles = await getRoleRouter(store.getters.userInfo.userSid) router.options.routes = userRoles router.addRoutes(userRoles) // 动态添加可访问路由表 console.log(to) next({ ...to, replace: true }) // hack方法 确保addRoutes已完成 ,set the replace: } } else { window.location.href = process.env.VUE_APP_URL } }) router.afterEach(() => { // finish progress bar NProgress.done() })