69 lines
1.3 KiB
JavaScript
69 lines
1.3 KiB
JavaScript
/**
|
|
* 教练端全局状态管理 — 以 uni.Storage 为唯一数据源
|
|
*/
|
|
const TOKEN_KEY = 'coach_token'
|
|
const COACH_KEY = 'coach_info'
|
|
|
|
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
|
|
}
|
|
},
|
|
|
|
/** 获取教练信息 */
|
|
getCoachInfo() {
|
|
try {
|
|
return uni.getStorageSync(COACH_KEY) || null
|
|
} catch (e) {
|
|
return null
|
|
}
|
|
},
|
|
|
|
/** 获取教练 ID */
|
|
getCoachId() {
|
|
const info = this.getCoachInfo()
|
|
return info ? info.coachId : null
|
|
},
|
|
|
|
/** 获取教练用户名 */
|
|
getUsername() {
|
|
const info = this.getCoachInfo()
|
|
return info ? info.username : ''
|
|
},
|
|
|
|
/** 设置登录态 */
|
|
setLogin(token, coachInfo) {
|
|
try {
|
|
uni.setStorageSync(TOKEN_KEY, token)
|
|
if (coachInfo) uni.setStorageSync(COACH_KEY, coachInfo)
|
|
} catch (e) {
|
|
console.error('存储登录态失败:', e)
|
|
}
|
|
},
|
|
|
|
/** 清除登录态 */
|
|
clearLogin() {
|
|
try {
|
|
uni.removeStorageSync(TOKEN_KEY)
|
|
uni.removeStorageSync(COACH_KEY)
|
|
} catch (e) {
|
|
console.error('清除登录态失败:', e)
|
|
}
|
|
}
|
|
}
|
|
|
|
module.exports = store
|