|
@@ -9,12 +9,12 @@ const DoBusiness = () => import('@/views/doBusiness/index')
|
|
|
const Evaluate = () => import('@/views/evaluate/index')
|
|
|
const EvTwoLevelMenu = () => import('@/views/evaluate/evTwoLevelMenu')
|
|
|
|
|
|
-
|
|
|
-
|
|
|
+import store from '../store'
|
|
|
+import {query} from '../utils/query'
|
|
|
|
|
|
Vue.use(Router)
|
|
|
|
|
|
-export default new Router({
|
|
|
+const router = new Router({
|
|
|
mode: 'history',
|
|
|
routes: [
|
|
|
{
|
|
@@ -60,3 +60,23 @@ export default new Router({
|
|
|
}
|
|
|
]
|
|
|
})
|
|
|
+router.beforeEach(async (to, from, next) => {
|
|
|
+ const token = query().token || sessionStorage.getItem('token')
|
|
|
+ if (store.state.token && Object.keys(store.state.userInfo).length > 0) {
|
|
|
+ next()
|
|
|
+ } else if (token){
|
|
|
+ store.commit('setSsoToken', token)
|
|
|
+ await store.dispatch('loadUserInfo', {token})
|
|
|
+ // 去除浏览器地址栏token
|
|
|
+ if (query().token) {
|
|
|
+ router.replace(location.pathname + location.search.replace(/(&?token=\w+&?)/, ''))
|
|
|
+ }
|
|
|
+ next()
|
|
|
+ } else {
|
|
|
+ let ssoServer = 'http://sso.sagacloud.cn'
|
|
|
+ let redirectUrl = window.location.protocol + '//' + window.location.host +'/strategy'
|
|
|
+ window.location.href = `${ssoServer}/login?redirectUrl=${redirectUrl}`
|
|
|
+ }
|
|
|
+})
|
|
|
+
|
|
|
+export default router
|