| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 | import router from './router'import store from './store'import { Message } from 'element-ui'import NProgress from 'nprogress' // progress barimport 'nprogress/nprogress.css' // progress bar styleimport { getToken, getConfig } from '@/utils/auth' // get token from cookieimport getPageTitle from '@/utils/get-page-title'NProgress.configure({ showSpinner: false }) // NProgress Configurationconst whiteList = ['/login'] // no redirect whitelistrouter.beforeEach(async (to, from, next) => {  // start progress bar  NProgress.start()  // set page title  document.title = getPageTitle(to.meta.title)  //next();  NProgress.done()  const hasToken = getToken()  if (hasToken) {    let config = getConfig();    if (config) {      if (to.path === '/login') {        // if is logged in, redirect to the home page        next({ path: '/EnterSys' })        NProgress.done()      } else {        try {          next()        } catch (error) {          Message.error(error || 'Has Error')          next(`/login?redirect=${to.path}`)          NProgress.done()        }      }    } else {      next(`/login?redirect=${to.path}`)      NProgress.done()    }  } else {    /* has no token*/    if (whiteList.indexOf(to.path) !== -1) {      // in the free login whitelist, go directly      next()    } else {      // other pages that do not have permission to access are redirected to the login page.      next(`/login?redirect=${to.path}`)      NProgress.done()    }  }})router.afterEach(() => {  // finish progress bar  NProgress.done()})
 |