update
This commit is contained in:
parent
bc326993da
commit
222242dccc
|
|
@ -12,6 +12,11 @@ const router = new Router({
|
|||
})
|
||||
const LOGIN_PAGE_NAME = 'login'
|
||||
|
||||
const turnTo = (to, access, next) => {
|
||||
if (canTurnTo(to.name, access, routes)) next() // 有权限,可访问
|
||||
else next({ replace: true, name: 'error_401' }) // 无权限,重定向到401页面
|
||||
}
|
||||
|
||||
router.beforeEach((to, from, next) => {
|
||||
iView.LoadingBar.start()
|
||||
const token = getToken()
|
||||
|
|
@ -29,11 +34,18 @@ router.beforeEach((to, from, next) => {
|
|||
name: 'home' // 跳转到home页
|
||||
})
|
||||
} else {
|
||||
store.dispatch('getUserInfo').then(user => {
|
||||
// 拉取用户信息,通过用户权限和跳转的页面的name来判断是否有权限访问;access必须是一个数组,如:['super_admin'] ['super_admin', 'admin']
|
||||
if (canTurnTo(to.name, user.access, routes)) next() // 有权限,可访问
|
||||
else next({ replace: true, name: 'error_401' }) // 无权限,重定向到401页面
|
||||
})
|
||||
if (store.state.user.hasGetInfo) {
|
||||
turnTo(to, store.state.user.access, next)
|
||||
} else {
|
||||
store.dispatch('getUserInfo').then(user => {
|
||||
// 拉取用户信息,通过用户权限和跳转的页面的name来判断是否有权限访问;access必须是一个数组,如:['super_admin'] ['super_admin', 'admin']
|
||||
turnTo(to, user.access, next)
|
||||
}).catch(() => {
|
||||
next({
|
||||
name: 'login'
|
||||
})
|
||||
})
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
|
|
|
|||
|
|
@ -7,7 +7,8 @@ export default {
|
|||
userId: '',
|
||||
avatorImgPath: '',
|
||||
token: getToken(),
|
||||
access: ''
|
||||
access: '',
|
||||
hasGetInfo: false
|
||||
},
|
||||
mutations: {
|
||||
setAvator (state, avatorPath) {
|
||||
|
|
@ -25,6 +26,9 @@ export default {
|
|||
setToken (state, token) {
|
||||
state.token = token
|
||||
setToken(token)
|
||||
},
|
||||
setHasGetInfo (state, status) {
|
||||
state.hasGetInfo = status
|
||||
}
|
||||
},
|
||||
actions: {
|
||||
|
|
@ -63,16 +67,21 @@ export default {
|
|||
// 获取用户相关信息
|
||||
getUserInfo ({ state, commit }) {
|
||||
return new Promise((resolve, reject) => {
|
||||
getUserInfo(state.token).then(res => {
|
||||
const data = res.data
|
||||
commit('setAvator', data.avator)
|
||||
commit('setUserName', data.user_name)
|
||||
commit('setUserId', data.user_id)
|
||||
commit('setAccess', data.access)
|
||||
resolve(data)
|
||||
}).catch(err => {
|
||||
reject(err)
|
||||
})
|
||||
try {
|
||||
getUserInfo(state.token).then(res => {
|
||||
const data = res.data
|
||||
commit('setAvator', data.avator)
|
||||
commit('setUserName', data.user_name)
|
||||
commit('setUserId', data.user_id)
|
||||
commit('setAccess', data.access)
|
||||
commit('setHasGetInfo', true)
|
||||
resolve(data)
|
||||
}).catch(err => {
|
||||
reject(err)
|
||||
})
|
||||
} catch (error) {
|
||||
reject(error)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue