import { accessSessionKey, getSessionKey, getUserNameKey, userNameKey } from './request';
|
|
/**
|
* window.localStorage 浏览器永久缓存
|
* @method set 设置永久缓存
|
* @method get 获取永久缓存
|
* @method remove 移除永久缓存
|
* @method clear 移除全部永久缓存
|
*/
|
export const Local = {
|
// 查看 v2.4.3版本更新日志
|
setKey(key: string) {
|
// @ts-ignore
|
return `${__NEXT_NAME__}:${key}`;
|
},
|
// 设置永久缓存
|
set<T>(key: string, val: T, win = window) {
|
win.localStorage.setItem(Local.setKey(key), JSON.stringify(val));
|
},
|
// 获取永久缓存
|
get(key: string, win = window) {
|
let json = <string>win.localStorage.getItem(Local.setKey(key));
|
return JSON.parse(json);
|
},
|
// 移除永久缓存
|
remove(key: string, win = window) {
|
win.localStorage.removeItem(Local.setKey(key));
|
},
|
// 移除全部永久缓存
|
clear() {
|
window.localStorage.clear();
|
},
|
};
|
|
/**
|
* window.sessionStorage 浏览器临时缓存
|
* @method set 设置临时缓存
|
* @method get 获取临时缓存
|
* @method remove 移除临时缓存
|
* @method clear 移除全部临时缓存
|
*/
|
export const Session = {
|
// 设置临时缓存
|
set<T>(key: string, val: T) {
|
window.sessionStorage.setItem(Local.setKey(key), JSON.stringify(val));
|
},
|
// 获取临时缓存
|
get(key: string) {
|
let json = <string>window.sessionStorage.getItem(Local.setKey(key));
|
return JSON.parse(json);
|
},
|
// 移除临时缓存
|
remove(key: string) {
|
window.sessionStorage.removeItem(Local.setKey(key));
|
},
|
// 移除全部临时缓存
|
clear() {
|
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);
|
},
|
};
|