wujingjing
2024-10-30 03080e12de7de3fec89b2f77fcf9f73c02bc6cf0
src/utils/storage.ts
@@ -1,4 +1,4 @@
import { accessSessionKey, getSessionKey, getUserNameKey, userNameKey } from './request';
/**
 * window.localStorage 浏览器永久缓存
@@ -14,17 +14,17 @@
      return `${__NEXT_NAME__}:${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));
   get(key: string, win = window) {
      let json = <string>win.localStorage.getItem(Local.setKey(key));
      return JSON.parse(json);
   },
   // 移除永久缓存
   remove(key: string) {
      window.localStorage.removeItem(Local.setKey(key));
   remove(key: string, win = window) {
      win.localStorage.removeItem(Local.setKey(key));
   },
   // 移除全部永久缓存
   clear() {
@@ -42,7 +42,6 @@
export const Session = {
   // 设置临时缓存
   set<T>(key: string, val: T) {
      window.sessionStorage.setItem(Local.setKey(key), JSON.stringify(val));
   },
   // 获取临时缓存
@@ -59,3 +58,32 @@
      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);
   },
};
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);
   },
};