Files
gym-manage/gym-manage-uniapp/store/index.js
T

67 lines
1.4 KiB
JavaScript

/**
* 全局状态管理 — 以 uni.Storage 为唯一数据源,确保跨页面/跨模块共享
*/
const TOKEN_KEY = 'gym_token'
const MEMBER_KEY = 'gym_member'
const store = {
/** 是否已登录 */
get isLoggedIn() {
try {
return !!uni.getStorageSync(TOKEN_KEY)
} catch (e) {
return false
}
},
/** 获取 token */
getToken() {
try {
return uni.getStorageSync(TOKEN_KEY) || null
} catch (e) {
return null
}
},
/** 获取会员信息 */
getMemberInfo() {
try {
return uni.getStorageSync(MEMBER_KEY) || null
} catch (e) {
return null
}
},
/** 设置登录态 */
setLogin(token, memberInfo) {
try {
uni.setStorageSync(TOKEN_KEY, token)
if (memberInfo) uni.setStorageSync(MEMBER_KEY, memberInfo)
} catch (e) {
console.error('存储登录态失败:', e)
}
},
/** 更新会员信息(合并而非覆盖,保留 memberId 等关键字段) */
updateMemberInfo(memberInfo) {
try {
const existing = uni.getStorageSync(MEMBER_KEY) || {}
uni.setStorageSync(MEMBER_KEY, { ...existing, ...memberInfo })
} catch (e) {
console.error('更新会员信息失败:', e)
}
},
/** 清除登录态 */
clearLogin() {
try {
uni.removeStorageSync(TOKEN_KEY)
uni.removeStorageSync(MEMBER_KEY)
} catch (e) {
console.error('清除登录态失败:', e)
}
}
}
module.exports = store