133 lines
2.6 KiB
JavaScript
133 lines
2.6 KiB
JavaScript
/**
|
||
* 用户信息存储
|
||
*/
|
||
|
||
// 用户信息缓存
|
||
let userProfileCache = null
|
||
let teamInfoCache = null
|
||
|
||
/**
|
||
* 设置用户信息缓存
|
||
* @param {Object} memberProfile - 用户资料
|
||
* @param {Object} teamInfo - 团队信息
|
||
*/
|
||
export function setUserInfo(memberProfile, teamInfo = null) {
|
||
userProfileCache = memberProfile
|
||
teamInfoCache = teamInfo
|
||
|
||
// 可选:存储到localStorage以便持久化
|
||
if (memberProfile) {
|
||
localStorage.setItem('userProfile', JSON.stringify(memberProfile))
|
||
}
|
||
if (teamInfo) {
|
||
localStorage.setItem('teamInfo', JSON.stringify(teamInfo))
|
||
}
|
||
}
|
||
|
||
/**
|
||
* 单独设置团队信息缓存
|
||
* @param {Object} teamInfo - 团队信息
|
||
*/
|
||
export function setTeamInfo(teamInfo) {
|
||
teamInfoCache = teamInfo
|
||
|
||
// 存储到localStorage以便持久化
|
||
if (teamInfo) {
|
||
localStorage.setItem('teamInfo', JSON.stringify(teamInfo))
|
||
} else {
|
||
localStorage.removeItem('teamInfo')
|
||
}
|
||
}
|
||
|
||
/**
|
||
* 获取用户信息缓存
|
||
* @returns {Object|null} 用户资料
|
||
*/
|
||
export function getUserProfile() {
|
||
if (userProfileCache) {
|
||
return userProfileCache
|
||
}
|
||
|
||
// 从localStorage恢复
|
||
const stored = localStorage.getItem('userProfile')
|
||
if (stored) {
|
||
try {
|
||
userProfileCache = JSON.parse(stored)
|
||
return userProfileCache
|
||
} catch (error) {
|
||
console.error('解析用户缓存失败:', error)
|
||
}
|
||
}
|
||
|
||
return null
|
||
}
|
||
|
||
/**
|
||
* 获取团队信息缓存
|
||
* @returns {Object|null} 团队信息
|
||
*/
|
||
export function getTeamInfo() {
|
||
if (teamInfoCache) {
|
||
return teamInfoCache
|
||
}
|
||
|
||
// 从localStorage恢复
|
||
const stored = localStorage.getItem('teamInfo')
|
||
if (stored) {
|
||
try {
|
||
teamInfoCache = JSON.parse(stored)
|
||
return teamInfoCache
|
||
} catch (error) {
|
||
console.error('解析团队缓存失败:', error)
|
||
}
|
||
}
|
||
|
||
return null
|
||
}
|
||
|
||
/**
|
||
* 清除用户信息缓存
|
||
*/
|
||
export function clearUserProfile() {
|
||
userProfileCache = null
|
||
teamInfoCache = null
|
||
localStorage.removeItem('userProfile')
|
||
localStorage.removeItem('teamInfo')
|
||
}
|
||
|
||
/**
|
||
* 获取用户ID
|
||
* @returns {string|null}
|
||
*/
|
||
export function getUserId() {
|
||
const profile = getUserProfile()
|
||
return profile?.id || null
|
||
}
|
||
|
||
/**
|
||
* 获取TeamID
|
||
* @returns {string|null}
|
||
*/
|
||
export function getTeamId() {
|
||
const profile = getTeamInfo()
|
||
return profile?.id || null
|
||
}
|
||
|
||
/**
|
||
* 获取用户昵称
|
||
* @returns {string|null}
|
||
*/
|
||
export function getUserNickname() {
|
||
const profile = getUserProfile()
|
||
return profile?.userNickname || null
|
||
}
|
||
|
||
/**
|
||
* 获取用户账号
|
||
* @returns {string|null}
|
||
*/
|
||
export function getUserAccount() {
|
||
const profile = getUserProfile()
|
||
return profile?.account || null
|
||
}
|