import router from './router' import store from './store' import NProgress from 'nprogress' // progress bar import 'nprogress/nprogress.css' // progress bar style NProgress.configure({ showSpinner: false }) // NProgress Configuration const loginWhiteList = ['/token/verify', '/401', '/404'] // 登录验证白名单 const permissionWhiteList = loginWhiteList.concat(['/']) // 权限验证白名单 router.beforeEach((to, from, next) => { // 线上注释 if (!store.getters.configlist || store.getters.configlist === undefined || store.getters.configlist.length <= 0) { store.dispatch('VerifyConfigList', []).then(() => { next() }) } if (store.getters.permission_routers === undefined) { store.dispatch('xt_GenerateRoutes', []).then(() => { next() }) } else { next() } return // 线上注释 NProgress.start() // console.log(store.getters.current_role_urls.indexOf(to.path)) // alert('path:' + to.path) // 如果 url 带有 lt (login_token)参数,则跳转到验证 token 时等待的页面 if (to.query.lt != null && to.query.lt.length > 0) { // alert('will go to verify token: ' + to.query.lt) next({ path: '/token/verify', query: { token: to.query.lt } }) // 否则 如果没有 user 信息,则前往 sso 登录 } else if (store.getters.xt_user.user.id === 0) { if (loginWhiteList.indexOf(to.path) !== -1) { // alert('登录白名单内,跳过登录') next() } else { // alert('前往登录') window.location.href = process.env.BASE_API + '/login' // sso 地址 } // 否则 如果当前 url 不需要验证访问权限,则通过 } else if (permissionWhiteList.indexOf(to.path) !== -1) { // alert('权限验证白名单内,直接进入') next() // 否则 如果拥有当前 url 的权限,则通过 // } else if (store.getters.current_role_urls.indexOf(to.path) !== -1) { // // alert('权限验证通过') // next() // 否则 跳转401 (未经授权) } else { // console.log(store.getters.current_role_urls) // console.log(store.getters.current_role_urls.indexOf(to.path)) // alert('401') next() // next({ path: '/404' }) } }) router.afterEach(() => { NProgress.done() })