mirror of
http://112.124.100.131/ebiz-ai/ebiz-ai-knowledge-manage.git
synced 2025-12-09 19:06:49 +08:00
feat(user): 添加用户角色获取和存储功能
- 在 user store 中添加 roles 状态和 SET_ROLES mutation - 在 getters 中添加 roles 属性 - 修改 permission.js 中的逻辑,增加对用户角色的判断 - 更新 request.js 中的 401 错误处理方式 - 在 404.vue 中更新版权信息
This commit is contained in:
Binary file not shown.
|
Before Width: | Height: | Size: 4.2 KiB After Width: | Height: | Size: 2.7 KiB |
@@ -16,20 +16,24 @@ router.beforeEach((to, from, next) => {
|
|||||||
next({ path: '/login' })
|
next({ path: '/login' })
|
||||||
NProgress.done()
|
NProgress.done()
|
||||||
} else {
|
} else {
|
||||||
// 判断当前用户是否已拉取完user_info信息
|
if (store.getters.roles.length === 0) {
|
||||||
store
|
// 判断当前用户是否已拉取完user_info信息
|
||||||
.dispatch('user/getInfo')
|
store
|
||||||
.then(() => {
|
.dispatch('user/getInfo')
|
||||||
store.dispatch('app/GenerateRoutes').then(() => {
|
.then(() => {
|
||||||
next()
|
store.dispatch('app/GenerateRoutes').then(() => {
|
||||||
|
next()
|
||||||
|
})
|
||||||
})
|
})
|
||||||
})
|
.catch(err => {
|
||||||
.catch(err => {
|
store.dispatch('user/logout').then(() => {
|
||||||
store.dispatch('user/logout').then(() => {
|
Message.error(err)
|
||||||
Message.error(err)
|
next({ path: '/ogin' })
|
||||||
next({ path: '/ogin' })
|
})
|
||||||
})
|
})
|
||||||
})
|
} else {
|
||||||
|
next()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// 没有token
|
// 没有token
|
||||||
|
|||||||
@@ -1,7 +1,8 @@
|
|||||||
import axios from 'axios'
|
import axios from 'axios'
|
||||||
import { MessageBox, Message, Loading } from 'element-ui'
|
import { MessageBox, Message, Loading } from 'element-ui'
|
||||||
import store from '@/store'
|
import store from '@/store'
|
||||||
import { getToken } from '@/assets/js/utils/auth'
|
import { getToken, removeToken } from '@/assets/js/utils/auth'
|
||||||
|
import router from '@/router'
|
||||||
|
|
||||||
// create an axios instance
|
// create an axios instance
|
||||||
const service = axios.create({
|
const service = axios.create({
|
||||||
@@ -61,15 +62,12 @@ service.interceptors.response.use(
|
|||||||
if (res.code === 401) {
|
if (res.code === 401) {
|
||||||
MessageBox.confirm('登录状态已过期,请重新登录', '系统提示', {
|
MessageBox.confirm('登录状态已过期,请重新登录', '系统提示', {
|
||||||
confirmButtonText: '重新登录',
|
confirmButtonText: '重新登录',
|
||||||
cancelButtonText: '取消',
|
showCancelButton: false,
|
||||||
type: 'warning'
|
type: 'warning'
|
||||||
|
}).then(() => {
|
||||||
|
removeToken()
|
||||||
|
router.push({ path: '/login' })
|
||||||
})
|
})
|
||||||
.then(() => {
|
|
||||||
store.dispatch('user/resetToken').then(() => {
|
|
||||||
location.reload()
|
|
||||||
})
|
|
||||||
})
|
|
||||||
.catch(() => {})
|
|
||||||
} else if (res.code === 500) {
|
} else if (res.code === 500) {
|
||||||
Message({
|
Message({
|
||||||
message: res.message,
|
message: res.message,
|
||||||
|
|||||||
@@ -2,8 +2,9 @@ const getters = {
|
|||||||
sidebar: state => state.app.sidebar,
|
sidebar: state => state.app.sidebar,
|
||||||
device: state => state.app.device,
|
device: state => state.app.device,
|
||||||
token: state => state.user.token,
|
token: state => state.user.token,
|
||||||
|
roles: state => state.user.roles,
|
||||||
avatar: state => state.user.avatar,
|
avatar: state => state.user.avatar,
|
||||||
name: state => state.user.name,
|
name: state => state.user.name,
|
||||||
sidebarList: state => state.user.sidebarList,
|
sidebarList: state => state.user.sidebarList
|
||||||
}
|
}
|
||||||
export default getters
|
export default getters
|
||||||
|
|||||||
@@ -4,7 +4,8 @@ import { getToken, setToken, removeToken } from '@/assets/js/utils/auth'
|
|||||||
const state = {
|
const state = {
|
||||||
token: getToken(),
|
token: getToken(),
|
||||||
name: '',
|
name: '',
|
||||||
avatar: ''
|
avatar: '',
|
||||||
|
roles: []
|
||||||
}
|
}
|
||||||
|
|
||||||
const mutations = {
|
const mutations = {
|
||||||
@@ -16,6 +17,9 @@ const mutations = {
|
|||||||
},
|
},
|
||||||
SET_AVATAR: (state, avatar) => {
|
SET_AVATAR: (state, avatar) => {
|
||||||
state.avatar = avatar
|
state.avatar = avatar
|
||||||
|
},
|
||||||
|
SET_ROLES: (state, roles) => {
|
||||||
|
state.roles = roles
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -51,12 +55,12 @@ const actions = {
|
|||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
getInfo(state.token)
|
getInfo(state.token)
|
||||||
.then(res => {
|
.then(res => {
|
||||||
if (!res) {
|
let roles = res.content.content.roleCodes || []
|
||||||
reject('Verification failed, please Login again.')
|
if (roles && roles.length > 0) {
|
||||||
|
// 验证返回的roles是否是一个非空数组
|
||||||
|
commit('SET_ROLES', roles)
|
||||||
}
|
}
|
||||||
|
|
||||||
commit('SET_NAME', res.content.content.userName)
|
commit('SET_NAME', res.content.content.userName)
|
||||||
// commit('SET_AVATAR', res.avatar)
|
|
||||||
resolve(res)
|
resolve(res)
|
||||||
})
|
})
|
||||||
.catch(error => {
|
.catch(error => {
|
||||||
|
|||||||
@@ -11,7 +11,12 @@
|
|||||||
<div class="bullshit__oops">OOPS!</div>
|
<div class="bullshit__oops">OOPS!</div>
|
||||||
<div class="bullshit__info">
|
<div class="bullshit__info">
|
||||||
版权所有
|
版权所有
|
||||||
<a class="link-type" href="http://www.ebiz-interactive.com/" target="_blank">@易商阜极前端团队</a>
|
<a
|
||||||
|
class="link-type"
|
||||||
|
href="http://www.ebiz-interactive.com/"
|
||||||
|
target="_blank"
|
||||||
|
>@易商数智前端团队</a
|
||||||
|
>
|
||||||
</div>
|
</div>
|
||||||
<div class="bullshit__headline">{{ message }}</div>
|
<div class="bullshit__headline">{{ message }}</div>
|
||||||
<div class="bullshit__info">
|
<div class="bullshit__info">
|
||||||
|
|||||||
Reference in New Issue
Block a user