|
@@ -28,53 +28,54 @@ router.beforeEach((to, from, next) => {
|
|
|
} else {
|
|
|
const userInfo = Vue.ls.get('userName')
|
|
|
// console.log(userInfo)
|
|
|
- if (userInfo) {
|
|
|
+ if (userInfo && token != 'null') {
|
|
|
store.dispatch('SetInfo', userInfo)
|
|
|
- } else {
|
|
|
- store.dispatch('Logout').then(() => {
|
|
|
- next({ path: '/user/login', query: { redirect: to.fullPath } })
|
|
|
- })
|
|
|
- }
|
|
|
- // console.log(store.getters.roles)
|
|
|
- if (store.getters.roles.permissionList.length === 0) {
|
|
|
- store
|
|
|
- .dispatch('GetInfo', token)
|
|
|
- .then(res => {
|
|
|
- const roles = res
|
|
|
- // console.log(roles, 'roles')
|
|
|
- if (roles.permissionList.length == 0 || !roles) {
|
|
|
- store.dispatch('Logout').then(() => {
|
|
|
- store.dispatch('ResetRoutes').then(() => {
|
|
|
- next({ path: '/user/login', query: { redirect: to.fullPath } })
|
|
|
+ // console.log(token == 'null')
|
|
|
+ if (store.getters.roles.permissionList.length === 0) {
|
|
|
+ store
|
|
|
+ .dispatch('GetInfo', token)
|
|
|
+ .then(res => {
|
|
|
+ const roles = res
|
|
|
+ // console.log(roles, 'roles')
|
|
|
+ if (roles.permissionList.length == 0 || !roles) {
|
|
|
+ store.dispatch('Logout').then(() => {
|
|
|
+ store.dispatch('ResetRoutes').then(() => {
|
|
|
+ next({ path: '/user/login', query: { redirect: to.fullPath } })
|
|
|
+ })
|
|
|
+ })
|
|
|
+ } else {
|
|
|
+ store.dispatch('GenerateRoutes', { roles }).then(() => {
|
|
|
+ // 根据roles权限生成可访问的路由表
|
|
|
+ // 动态添加可访问路由表
|
|
|
+ // router.addRoutes(store.getters.addRouters)
|
|
|
+ const redirect = decodeURIComponent(from.query.redirect || to.path)
|
|
|
+ if (to.path === redirect) {
|
|
|
+ // hack方法 确保addRoutes已完成 ,set the replace: true so the navigation will not leave a history record
|
|
|
+ next({ ...to, replace: true })
|
|
|
+ } else {
|
|
|
+ // 跳转到目的路由
|
|
|
+ next({ path: redirect })
|
|
|
+ }
|
|
|
})
|
|
|
+ }
|
|
|
+ })
|
|
|
+ .catch(() => {
|
|
|
+ notification.error({
|
|
|
+ message: '错误',
|
|
|
+ description: '请求用户信息失败,请重试'
|
|
|
})
|
|
|
- } else {
|
|
|
- store.dispatch('GenerateRoutes', { roles }).then(() => {
|
|
|
- // 根据roles权限生成可访问的路由表
|
|
|
- // 动态添加可访问路由表
|
|
|
- // router.addRoutes(store.getters.addRouters)
|
|
|
- const redirect = decodeURIComponent(from.query.redirect || to.path)
|
|
|
- if (to.path === redirect) {
|
|
|
- // hack方法 确保addRoutes已完成 ,set the replace: true so the navigation will not leave a history record
|
|
|
- next({ ...to, replace: true })
|
|
|
- } else {
|
|
|
- // 跳转到目的路由
|
|
|
- next({ path: redirect })
|
|
|
- }
|
|
|
+ store.dispatch('Logout').then(() => {
|
|
|
+ next({ path: '/user/login', query: { redirect: to.fullPath } })
|
|
|
})
|
|
|
- }
|
|
|
- })
|
|
|
- .catch(() => {
|
|
|
- notification.error({
|
|
|
- message: '错误',
|
|
|
- description: '请求用户信息失败,请重试'
|
|
|
- })
|
|
|
- store.dispatch('Logout').then(() => {
|
|
|
- next({ path: '/user/login', query: { redirect: to.fullPath } })
|
|
|
})
|
|
|
- })
|
|
|
+ } else {
|
|
|
+ next()
|
|
|
+ }
|
|
|
} else {
|
|
|
- next()
|
|
|
+ console.log('logout')
|
|
|
+ store.dispatch('Logout').then(() => {
|
|
|
+ next({ path: '/user/login', query: { redirect: to.fullPath } })
|
|
|
+ })
|
|
|
}
|
|
|
}
|
|
|
} else {
|