核心原因:
if (auths && auths.length > 0) { // like12 find bug,数组为空[]时依然会进入死循环
原来为:if (auths)
// 获取用户信息
getInfo({ commit, state }) {
return new Promise((resolve, reject) => {
getInfo(state.token).then(response => {
// const { name, avatar, roles, auths } = response.data
const { name, avatar, auths } = response.data
if (!name) {
reject('用户未登录,请登录.')
}
commit('SET_NAME', name)// 姓名
commit('SET_AVATAR', avatar)// 头像
commit('SET_USER', response.data)// 用户信息
// commit('SET_ROLES', roles)// 用户角色(实际值为空 没有用到)
if (auths && auths.length > 0) { // like12 find bug,数组为空[]时依然会进入死循环
commit('SET_ROLES', auths)// 用户角色(按钮权限控制 v-permission实际使用的是roles 而非permissions)
commit('SET_PERMISSIONS', auths)// 用户权限
} else {
// 如果没有任何权限 则赋一个默认权限 避免请求死循环
commit('SET_ROLES', 'admin')
commit('SET_PERMISSIONS', 'admin')
}
resolve(response)
}).catch(error => {
reject(error)
})
})
},