Commit d38ff6670a37478b31447f8058e786c4b044e218
1 parent
e5f37885
fix(lock-screen): ensure lock info is saved
确保打开多个窗口锁屏时,其它窗口不会误覆盖锁屏状态
Showing
1 changed file
with
6 additions
and
5 deletions
src/utils/cache/persistent.ts
... | ... | @@ -16,7 +16,7 @@ import { |
16 | 16 | } from '/@/enums/cacheEnum'; |
17 | 17 | import { DEFAULT_CACHE_TIME } from '/@/settings/encryptionSetting'; |
18 | 18 | import { toRaw } from 'vue'; |
19 | -import { pick } from 'lodash-es'; | |
19 | +import { pick, omit } from 'lodash-es'; | |
20 | 20 | |
21 | 21 | interface BasicStore { |
22 | 22 | [TOKEN_KEY]: string | number | null | undefined; |
... | ... | @@ -98,13 +98,14 @@ export class Persistent { |
98 | 98 | |
99 | 99 | window.addEventListener('beforeunload', function () { |
100 | 100 | // TOKEN_KEY 在登录或注销时已经写入到storage了,此处为了解决同时打开多个窗口时token不同步的问题 |
101 | + // LOCK_INFO_KEY 在锁屏和解锁时写入,此处也不应修改 | |
101 | 102 | ls.set(APP_LOCAL_CACHE_KEY, { |
102 | - ...localMemory.getCache, | |
103 | - ...pick(ls.get(APP_LOCAL_CACHE_KEY), [TOKEN_KEY, USER_INFO_KEY]), | |
103 | + ...omit(localMemory.getCache, LOCK_INFO_KEY), | |
104 | + ...pick(ls.get(APP_LOCAL_CACHE_KEY), [TOKEN_KEY, USER_INFO_KEY, LOCK_INFO_KEY]), | |
104 | 105 | }); |
105 | 106 | ss.set(APP_SESSION_CACHE_KEY, { |
106 | - ...sessionMemory.getCache, | |
107 | - ...pick(sessionMemory.getCache, [TOKEN_KEY, USER_INFO_KEY]), | |
107 | + ...omit(sessionMemory.getCache, LOCK_INFO_KEY), | |
108 | + ...pick(ss.get(APP_SESSION_CACHE_KEY), [TOKEN_KEY, USER_INFO_KEY, LOCK_INFO_KEY]), | |
108 | 109 | }); |
109 | 110 | }); |
110 | 111 | ... | ... |