103 lines
1.9 KiB
TypeScript
103 lines
1.9 KiB
TypeScript
/**
|
|
* 存储工具函数 - 参考GVA的用户存储逻辑
|
|
*/
|
|
|
|
const TOKEN_KEY = 'token';
|
|
const USER_INFO_KEY = 'userInfo';
|
|
|
|
/**
|
|
* 获取Token
|
|
*/
|
|
export function getToken(): string | null {
|
|
return localStorage.getItem(TOKEN_KEY);
|
|
}
|
|
|
|
/**
|
|
* 设置Token
|
|
*/
|
|
export function setToken(token: string): void {
|
|
localStorage.setItem(TOKEN_KEY, token);
|
|
}
|
|
|
|
/**
|
|
* 移除Token
|
|
*/
|
|
export function removeToken(): void {
|
|
localStorage.removeItem(TOKEN_KEY);
|
|
}
|
|
|
|
/**
|
|
* 获取用户信息
|
|
*/
|
|
export function getUserInfo(): API.UserInfo | null {
|
|
const userInfo = localStorage.getItem(USER_INFO_KEY);
|
|
if (userInfo) {
|
|
try {
|
|
return JSON.parse(userInfo);
|
|
} catch (e) {
|
|
return null;
|
|
}
|
|
}
|
|
return null;
|
|
}
|
|
|
|
/**
|
|
* 设置用户信息
|
|
*/
|
|
export function setUserInfo(userInfo: API.UserInfo): void {
|
|
localStorage.setItem(USER_INFO_KEY, JSON.stringify(userInfo));
|
|
}
|
|
|
|
/**
|
|
* 移除用户信息
|
|
*/
|
|
export function removeUserInfo(): void {
|
|
localStorage.removeItem(USER_INFO_KEY);
|
|
}
|
|
|
|
/**
|
|
* 清除所有存储 - 参考GVA的ClearStorage
|
|
*/
|
|
export function clearStorage(): void {
|
|
removeToken();
|
|
removeUserInfo();
|
|
sessionStorage.clear();
|
|
localStorage.removeItem('originSetting');
|
|
}
|
|
|
|
/**
|
|
* 检查是否需要跳转到首页
|
|
*/
|
|
export function checkNeedToHome(): boolean {
|
|
const need = sessionStorage.getItem('needToHome') === 'true';
|
|
if (need) {
|
|
sessionStorage.removeItem('needToHome');
|
|
}
|
|
return need;
|
|
}
|
|
|
|
/**
|
|
* 设置需要跳转到首页
|
|
*/
|
|
export function setNeedToHome(): void {
|
|
sessionStorage.setItem('needToHome', 'true');
|
|
}
|
|
|
|
/**
|
|
* 检查是否需要关闭所有标签
|
|
*/
|
|
export function checkNeedCloseAll(): boolean {
|
|
const need = sessionStorage.getItem('needCloseAll') === 'true';
|
|
if (need) {
|
|
sessionStorage.removeItem('needCloseAll');
|
|
}
|
|
return need;
|
|
}
|
|
|
|
/**
|
|
* 设置需要关闭所有标签
|
|
*/
|
|
export function setNeedCloseAll(): void {
|
|
sessionStorage.setItem('needCloseAll', 'true');
|
|
}
|