| | |
| | | |
| | | NProgress.configure({ showSpinner: false }) |
| | | |
| | | const whiteList = ['/login', '/register'] |
| | | const whiteList = ['/login', '/register','/singlePage'] |
| | | |
| | | router.beforeEach((to, from, next) => { |
| | | NProgress.start() |
| | |
| | | isRelogin.show = true |
| | | // 判断当前用户是否已拉取完user_info信息 |
| | | store.dispatch('GetInfo').then(() => { |
| | | |
| | | isRelogin.show = false |
| | | store.dispatch('GenerateRoutes').then(accessRoutes => { |
| | | // 根据roles权限生成可访问的路由表 |
| | | router.addRoutes(accessRoutes) // 动态添加可访问路由表 |
| | | next({ ...to, replace: true }) // hack方法 确保addRoutes已完成 |
| | | // next({ ...to, replace: true }) // hack方法 确保addRoutes已完成 |
| | | let path = ''; |
| | | if (accessRoutes[0].path === '/') { |
| | | if(accessRoutes[0].children){ |
| | | path = accessRoutes[0].path + accessRoutes[0].children[0].path; //获取第一路由路径 |
| | | }else { |
| | | path = accessRoutes[0].path |
| | | } |
| | | } else { |
| | | if(accessRoutes[0].children){ |
| | | path = accessRoutes[0].path + '/' + accessRoutes[0].children[0].path; //获取第一路由路径 |
| | | }else { |
| | | path = accessRoutes[0].path + '/' |
| | | } |
| | | } |
| | | |
| | | if (accessRoutes[0].children && accessRoutes[0].children[0].query !== undefined) { //如果当前路由存在路由参数,则带入 |
| | | let query = JSON.parse(accessRoutes[0].children[0].query); |
| | | let temp = ''; |
| | | for (var val in query) { |
| | | if (temp.length == 0) { |
| | | temp = "?"; |
| | | } else { |
| | | temp = temp + "&"; |
| | | } |
| | | temp = temp + val + "=" + query[val]; |
| | | } |
| | | path = path + temp; |
| | | } |
| | | var temp = {...to, replace: true}; |
| | | var curPath = temp.path; |
| | | if (from.path == '/login' || curPath == "/" ) { |
| | | next({path, replace: true}) // hack方法 确保addRoutes已完成 |
| | | } else { |
| | | next(temp) // hack方法 确保addRoutes已完成 |
| | | } |
| | | }) |
| | | }).catch(err => { |
| | | store.dispatch('LogOut').then(() => { |