From 1df71bdd7fc5b35be1447c9cc574bf610666f436 Mon Sep 17 00:00:00 2001 From: wujingjing <gersonwu@qq.com> Date: 星期一, 14 四月 2025 19:13:11 +0800 Subject: [PATCH] SERVE_URL --- src/utils/storage.ts | 46 +++++++++++++++++++++++++++++++++++++++------- 1 files changed, 39 insertions(+), 7 deletions(-) diff --git a/src/utils/storage.ts b/src/utils/storage.ts index 1827719..186dcd9 100644 --- a/src/utils/storage.ts +++ b/src/utils/storage.ts @@ -1,4 +1,5 @@ -import { accessSessionKey, getSessionKey, getUserNameKey, userNameKey } from './request'; +import { STORED_ACCOUNT_KEY } from '../layout/component/login/login'; +import { accessSessionKey, getSessionKey, getUserNameKey, userNameKey, domainPrefix } from './request'; /** * window.localStorage 娴忚鍣ㄦ案涔呯紦瀛� @@ -11,7 +12,7 @@ // 鏌ョ湅 v2.4.3鐗堟湰鏇存柊鏃ュ織 setKey(key: string) { // @ts-ignore - return `${__NEXT_NAME__}:${key}`; + return `${__NEXT_NAME__}:${domainPrefix}${key}`; }, // 璁剧疆姘镐箙缂撳瓨 set<T>(key: string, val: T, win = window) { @@ -20,7 +21,7 @@ // 鑾峰彇姘镐箙缂撳瓨 get(key: string, win = window) { let json = <string>win.localStorage.getItem(Local.setKey(key)); - return JSON.parse(json); + return json === 'undefined' ? null : JSON.parse(json); }, // 绉婚櫎姘镐箙缂撳瓨 remove(key: string, win = window) { @@ -31,6 +32,36 @@ window.localStorage.clear(); }, }; + +//#region ====================== 缂撳瓨甯︽椂闂� ====================== +type CacheValue<T> = { + // 杩囨湡鏃堕棿锛屾椂闂存埑 + expiredTime: number; + value: T; +}; +export const LocalPlus = { + // 璁剧疆 + set<T>(key: string, val: T, expireDay: number) { + const expireMs = expireDay * 24 * 60 * 60 * 1000; + const cacheValue: CacheValue<T> = { + expiredTime: new Date().getTime() + expireMs, + value: val, + }; + Local.set(key, cacheValue); + }, + // 鑾峰彇锛岃繃鏈熷垯娓呴櫎 + get(key: string) { + const cacheValue: CacheValue<any> = Local.get(key); + if (!cacheValue?.expiredTime) return null; + if (new Date().getTime() > cacheValue.expiredTime) { + Local.remove(key); + return null; + } + return cacheValue.value; + }, +}; + +//#endregion /** * window.sessionStorage 娴忚鍣ㄤ复鏃剁紦瀛� @@ -71,16 +102,17 @@ const userNameKey = getUserNameKey(win); Local.remove(sessionKey, win); Local.remove(userNameKey, win); + Local.remove(STORED_ACCOUNT_KEY, win); }, }; export const LoginInfo = { set(session: string, name: string) { WinLoginInfo.set(session, name, window); - for (let i = 0; i < window.frames.length; i++) { - const win = window.frames[i] as any; - WinLoginInfo.set(session, name, win); - } + // for (let i = 0; i < window.frames.length; i++) { + // const win = window.frames[i] as any; + // WinLoginInfo.set(session, name, win); + // } }, remove() { -- Gitblit v1.9.3