67 lines
1.4 KiB
JavaScript
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
|