Commit cbeee0f7440e5f440c487155018aac547434b1c2
1 parent
c3560a52
fix: 新用户第一次未设置角色无法登录 bug
Showing
2 changed files
with
8 additions
and
1 deletions
yudao-ui-admin-vue3/src/router/index.ts
| ... | ... | @@ -55,7 +55,7 @@ router.beforeEach(async (to, from, next) => { |
| 55 | 55 | const res = await listSimpleDictDataApi() |
| 56 | 56 | dictStore.setDictMap(res) |
| 57 | 57 | } |
| 58 | - if (userStore.getRoles.length === 0) { | |
| 58 | + if (!userStore.getIsSetUser) { | |
| 59 | 59 | isRelogin.show = true |
| 60 | 60 | const res = await getInfoApi() |
| 61 | 61 | await userStore.setUserInfoAction(res) | ... | ... |
yudao-ui-admin-vue3/src/store/modules/user.ts
| ... | ... | @@ -13,6 +13,7 @@ interface UserVO { |
| 13 | 13 | interface UserInfoVO { |
| 14 | 14 | permissions: string[] |
| 15 | 15 | roles: string[] |
| 16 | + isSetUser: boolean | |
| 16 | 17 | user: UserVO |
| 17 | 18 | } |
| 18 | 19 | |
| ... | ... | @@ -20,6 +21,7 @@ export const useUserStore = defineStore('admin-user', { |
| 20 | 21 | state: (): UserInfoVO => ({ |
| 21 | 22 | permissions: [], |
| 22 | 23 | roles: [], |
| 24 | + isSetUser: false, | |
| 23 | 25 | user: { |
| 24 | 26 | id: 0, |
| 25 | 27 | avatar: '', |
| ... | ... | @@ -33,6 +35,9 @@ export const useUserStore = defineStore('admin-user', { |
| 33 | 35 | getRoles(): string[] { |
| 34 | 36 | return this.roles |
| 35 | 37 | }, |
| 38 | + getIsSetUser(): boolean { | |
| 39 | + return this.isSetUser | |
| 40 | + }, | |
| 36 | 41 | getUser(): UserVO { |
| 37 | 42 | return this.user |
| 38 | 43 | } |
| ... | ... | @@ -46,6 +51,7 @@ export const useUserStore = defineStore('admin-user', { |
| 46 | 51 | this.permissions = userInfo.permissions |
| 47 | 52 | this.roles = userInfo.roles |
| 48 | 53 | this.user = userInfo.user |
| 54 | + this.isSetUser = true | |
| 49 | 55 | wsCache.set(CACHE_KEY.USER, userInfo) |
| 50 | 56 | }, |
| 51 | 57 | loginOut() { |
| ... | ... | @@ -56,6 +62,7 @@ export const useUserStore = defineStore('admin-user', { |
| 56 | 62 | resetState() { |
| 57 | 63 | this.permissions = [] |
| 58 | 64 | this.roles = [] |
| 65 | + this.isSetUser = false | |
| 59 | 66 | this.user = { |
| 60 | 67 | id: 0, |
| 61 | 68 | avatar: '', | ... | ... |