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 | 80 +++++++++++++++++++++++++++++++++++----- 1 files changed, 70 insertions(+), 10 deletions(-) diff --git a/src/utils/storage.ts b/src/utils/storage.ts index 348f656..186dcd9 100644 --- a/src/utils/storage.ts +++ b/src/utils/storage.ts @@ -1,4 +1,5 @@ - +import { STORED_ACCOUNT_KEY } from '../layout/component/login/login'; +import { accessSessionKey, getSessionKey, getUserNameKey, userNameKey, domainPrefix } from './request'; /** * window.localStorage 娴忚鍣ㄦ案涔呯紦瀛� @@ -11,26 +12,56 @@ // 鏌ョ湅 v2.4.3鐗堟湰鏇存柊鏃ュ織 setKey(key: string) { // @ts-ignore - return `${__NEXT_NAME__}:${key}`; + return `${__NEXT_NAME__}:${domainPrefix}${key}`; }, // 璁剧疆姘镐箙缂撳瓨 - set<T>(key: string, val: T) { - window.localStorage.setItem(Local.setKey(key), JSON.stringify(val)); + set<T>(key: string, val: T, win = window) { + win.localStorage.setItem(Local.setKey(key), JSON.stringify(val)); }, // 鑾峰彇姘镐箙缂撳瓨 - get(key: string) { - let json = <string>window.localStorage.getItem(Local.setKey(key)); - return JSON.parse(json); + get(key: string, win = window) { + let json = <string>win.localStorage.getItem(Local.setKey(key)); + return json === 'undefined' ? null : JSON.parse(json); }, // 绉婚櫎姘镐箙缂撳瓨 - remove(key: string) { - window.localStorage.removeItem(Local.setKey(key)); + remove(key: string, win = window) { + win.localStorage.removeItem(Local.setKey(key)); }, // 绉婚櫎鍏ㄩ儴姘镐箙缂撳瓨 clear() { 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 娴忚鍣ㄤ复鏃剁紦瀛� @@ -42,7 +73,6 @@ export const Session = { // 璁剧疆涓存椂缂撳瓨 set<T>(key: string, val: T) { - window.sessionStorage.setItem(Local.setKey(key), JSON.stringify(val)); }, // 鑾峰彇涓存椂缂撳瓨 @@ -59,3 +89,33 @@ window.sessionStorage.clear(); }, }; + +export const WinLoginInfo = { + set(session: string, name: string, win: any = window) { + const sessionKey = getSessionKey(win); + const userNameKey = getUserNameKey(win); + Local.set(sessionKey, session, win); + Local.set(userNameKey, name, win); + }, + remove(win: any = window) { + const sessionKey = getSessionKey(win); + 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); + // } + }, + + remove() { + WinLoginInfo.remove(window); + }, +}; -- Gitblit v1.9.3