kra/web/src/utils/storage.ts

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');
}