Skip to content

Commit 560a336

Browse files
committed
修复用户退出登录时,把 LANG、THEME、LAYOUT、IS_DARK 给清空的问题
1 parent f413556 commit 560a336

File tree

4 files changed

+27
-10
lines changed

4 files changed

+27
-10
lines changed

src/config/axios/service.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import { getAccessToken, getRefreshToken, getTenantId, removeToken, setToken } f
1313
import errorCode from './errorCode'
1414

1515
import { resetRouter } from '@/router'
16-
import { useCache } from '@/hooks/web/useCache'
16+
import { deleteUserCache } from '@/hooks/web/useCache'
1717

1818
const tenantEnable = import.meta.env.VITE_APP_TENANT_ENABLE
1919
const { result_code, base_url, request_timeout } = config
@@ -217,9 +217,8 @@ const handleAuthorized = () => {
217217
confirmButtonText: t('login.relogin'),
218218
type: 'warning'
219219
}).then(() => {
220-
const { wsCache } = useCache()
221220
resetRouter() // 重置静态路由表
222-
wsCache.clear()
221+
deleteUserCache() // 删除用户缓存
223222
removeToken()
224223
isRelogin.show = false
225224
// 干掉token后再走一次路由让它过router.beforeEach的校验

src/hooks/web/useCache.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,3 +25,9 @@ export const useCache = (type: CacheType = 'localStorage') => {
2525
wsCache
2626
}
2727
}
28+
29+
export const deleteUserCache = () => {
30+
const { wsCache } = useCache()
31+
wsCache.delete(CACHE_KEY.USER)
32+
wsCache.delete(CACHE_KEY.ROLE_ROUTERS)
33+
}

src/layout/components/UserInfo/src/components/LockPage.vue

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<script lang="ts" setup>
22
import { resetRouter } from '@/router'
3-
import { useCache } from '@/hooks/web/useCache'
3+
import { deleteUserCache } from '@/hooks/web/useCache'
44
import { useLockStore } from '@/store/modules/lock'
55
import { useNow } from '@/hooks/web/useNow'
66
import { useDesign } from '@/hooks/web/useDesign'
@@ -10,8 +10,6 @@ import avatarImg from '@/assets/imgs/avatar.gif'
1010
1111
const tagsViewStore = useTagsViewStore()
1212
13-
const { wsCache } = useCache()
14-
1513
const { replace } = useRouter()
1614
1715
const userStore = useUserStore()
@@ -52,7 +50,7 @@ async function unLock() {
5250
async function goLogin() {
5351
await userStore.loginOut().catch(() => {})
5452
// 登出后清理
55-
wsCache.clear()
53+
deleteUserCache() // 清空用户缓存
5654
tagsViewStore.delAllViews()
5755
resetRouter() // 重置静态路由表
5856
lockStore.resetLockInfo()

src/store/modules/user.ts

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
import { store } from '../index'
1+
import { store } from '@/store'
22
import { defineStore } from 'pinia'
33
import { getAccessToken, removeToken } from '@/utils/auth'
4-
import { CACHE_KEY, useCache } from '@/hooks/web/useCache'
4+
import { CACHE_KEY, useCache, deleteUserCache } from '@/hooks/web/useCache'
55
import { getInfo, loginOut } from '@/api/login'
66

77
const { wsCache } = useCache()
@@ -13,11 +13,20 @@ interface UserVO {
1313
deptId: number
1414
}
1515

16+
interface RememberMeInfo {
17+
enable: boolean // 是否记住我
18+
username: string
19+
password: string
20+
}
21+
1622
interface UserInfoVO {
23+
// USER 缓存
1724
permissions: string[]
1825
roles: string[]
1926
isSetUser: boolean
2027
user: UserVO
28+
// REMEMBER_ME 缓存
29+
rememberMe: RememberMeInfo
2130
}
2231

2332
export const useUserStore = defineStore('admin-user', {
@@ -30,6 +39,11 @@ export const useUserStore = defineStore('admin-user', {
3039
avatar: '',
3140
nickname: '',
3241
deptId: 0
42+
},
43+
rememberMe: {
44+
enable: true,
45+
username: '',
46+
password: ''
3347
}
3448
}),
3549
getters: {
@@ -80,7 +94,7 @@ export const useUserStore = defineStore('admin-user', {
8094
async loginOut() {
8195
await loginOut()
8296
removeToken()
83-
wsCache.clear()
97+
deleteUserCache() // 删除用户缓存
8498
this.resetState()
8599
},
86100
resetState() {

0 commit comments

Comments
 (0)