207 lines
5.0 KiB
JavaScript
207 lines
5.0 KiB
JavaScript
/**
|
|
* 存储工具模块
|
|
* 封装 uni.setStorageSync/getStorageSync
|
|
* Requirements: 1.2
|
|
*/
|
|
|
|
const STORAGE_KEYS = {
|
|
TOKEN: 'token',
|
|
USER_INFO: 'userInfo',
|
|
CONFIG: 'config',
|
|
LAST_POPUP_DATE: 'lastPopupDate',
|
|
MEMBER_AD_CLOSED_DATE: 'memberAdClosedDate',
|
|
MEMBER_AD_CLOSED_FOREVER: 'memberAdClosedForever',
|
|
GENDER_PREFERENCE: 'genderPreference',
|
|
DEFAULT_AVATAR: 'defaultAvatar',
|
|
// 服务号关注弹窗相关
|
|
SERVICE_ACCOUNT_POPUP_COUNT: 'serviceAccountPopupCount',
|
|
SERVICE_ACCOUNT_POPUP_DATE: 'serviceAccountPopupDate',
|
|
SERVICE_ACCOUNT_POPUP_LAST_TIME: 'serviceAccountPopupLastTime',
|
|
SERVICE_ACCOUNT_FOLLOWED: 'serviceAccountFollowed',
|
|
// 小程序订阅消息提醒相关
|
|
SUBSCRIBE_REMINDER_CLOSED_DATE: 'subscribeReminderClosedDate'
|
|
}
|
|
|
|
/**
|
|
* 设置存储项
|
|
* @param {string} key 存储键
|
|
* @param {any} value 存储值
|
|
*/
|
|
export function setStorage(key, value) {
|
|
try {
|
|
uni.setStorageSync(key, value)
|
|
return true
|
|
} catch (e) {
|
|
console.error('Storage set error:', e)
|
|
return false
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 获取存储项
|
|
* @param {string} key 存储键
|
|
* @param {any} defaultValue 默认值
|
|
* @returns {any}
|
|
*/
|
|
export function getStorage(key, defaultValue = null) {
|
|
try {
|
|
const value = uni.getStorageSync(key)
|
|
return value !== '' ? value : defaultValue
|
|
} catch (e) {
|
|
console.error('Storage get error:', e)
|
|
return defaultValue
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 移除存储项
|
|
* @param {string} key 存储键
|
|
*/
|
|
export function removeStorage(key) {
|
|
try {
|
|
uni.removeStorageSync(key)
|
|
return true
|
|
} catch (e) {
|
|
console.error('Storage remove error:', e)
|
|
return false
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 清空所有存储
|
|
*/
|
|
export function clearStorage() {
|
|
try {
|
|
uni.clearStorageSync()
|
|
return true
|
|
} catch (e) {
|
|
console.error('Storage clear error:', e)
|
|
return false
|
|
}
|
|
}
|
|
|
|
// Token 相关方法
|
|
export function setToken(token) {
|
|
return setStorage(STORAGE_KEYS.TOKEN, token)
|
|
}
|
|
|
|
export function getToken() {
|
|
return getStorage(STORAGE_KEYS.TOKEN, '')
|
|
}
|
|
|
|
export function removeToken() {
|
|
return removeStorage(STORAGE_KEYS.TOKEN)
|
|
}
|
|
|
|
// 用户信息相关方法
|
|
export function setUserInfo(userInfo) {
|
|
return setStorage(STORAGE_KEYS.USER_INFO, userInfo)
|
|
}
|
|
|
|
export function getUserInfo() {
|
|
return getStorage(STORAGE_KEYS.USER_INFO, null)
|
|
}
|
|
|
|
export function removeUserInfo() {
|
|
return removeStorage(STORAGE_KEYS.USER_INFO)
|
|
}
|
|
|
|
// 配置相关方法
|
|
export function setConfig(config) {
|
|
return setStorage(STORAGE_KEYS.CONFIG, config)
|
|
}
|
|
|
|
export function getConfig() {
|
|
return getStorage(STORAGE_KEYS.CONFIG, null)
|
|
}
|
|
|
|
// 弹窗日期相关方法
|
|
export function setLastPopupDate(date) {
|
|
return setStorage(STORAGE_KEYS.LAST_POPUP_DATE, date)
|
|
}
|
|
|
|
export function getLastPopupDate() {
|
|
return getStorage(STORAGE_KEYS.LAST_POPUP_DATE, '')
|
|
}
|
|
|
|
// 会员广告关闭日期
|
|
export function setMemberAdClosedDate(date) {
|
|
return setStorage(STORAGE_KEYS.MEMBER_AD_CLOSED_DATE, date)
|
|
}
|
|
|
|
export function getMemberAdClosedDate() {
|
|
return getStorage(STORAGE_KEYS.MEMBER_AD_CLOSED_DATE, '')
|
|
}
|
|
|
|
// 会员广告永久关闭
|
|
export function setMemberAdClosedForever(closed) {
|
|
return setStorage(STORAGE_KEYS.MEMBER_AD_CLOSED_FOREVER, closed)
|
|
}
|
|
|
|
export function getMemberAdClosedForever() {
|
|
return getStorage(STORAGE_KEYS.MEMBER_AD_CLOSED_FOREVER, false)
|
|
}
|
|
|
|
// 性别偏好
|
|
export function setGenderPreference(gender) {
|
|
return setStorage(STORAGE_KEYS.GENDER_PREFERENCE, gender)
|
|
}
|
|
|
|
export function getGenderPreference() {
|
|
return getStorage(STORAGE_KEYS.GENDER_PREFERENCE, 0)
|
|
}
|
|
|
|
// 默认头像
|
|
export function setDefaultAvatar(avatar) {
|
|
return setStorage(STORAGE_KEYS.DEFAULT_AVATAR, avatar)
|
|
}
|
|
|
|
export function getDefaultAvatar() {
|
|
return getStorage(STORAGE_KEYS.DEFAULT_AVATAR, '/static/logo.png')
|
|
}
|
|
|
|
export { STORAGE_KEYS }
|
|
|
|
|
|
// 服务号关注弹窗相关方法
|
|
export function setServiceAccountPopupCount(count) {
|
|
return setStorage(STORAGE_KEYS.SERVICE_ACCOUNT_POPUP_COUNT, count)
|
|
}
|
|
|
|
export function getServiceAccountPopupCount() {
|
|
return getStorage(STORAGE_KEYS.SERVICE_ACCOUNT_POPUP_COUNT, 0)
|
|
}
|
|
|
|
export function setServiceAccountPopupDate(date) {
|
|
return setStorage(STORAGE_KEYS.SERVICE_ACCOUNT_POPUP_DATE, date)
|
|
}
|
|
|
|
export function getServiceAccountPopupDate() {
|
|
return getStorage(STORAGE_KEYS.SERVICE_ACCOUNT_POPUP_DATE, '')
|
|
}
|
|
|
|
export function setServiceAccountPopupLastTime(time) {
|
|
return setStorage(STORAGE_KEYS.SERVICE_ACCOUNT_POPUP_LAST_TIME, time)
|
|
}
|
|
|
|
export function getServiceAccountPopupLastTime() {
|
|
return getStorage(STORAGE_KEYS.SERVICE_ACCOUNT_POPUP_LAST_TIME, 0)
|
|
}
|
|
|
|
export function setServiceAccountFollowed(followed) {
|
|
return setStorage(STORAGE_KEYS.SERVICE_ACCOUNT_FOLLOWED, followed)
|
|
}
|
|
|
|
export function getServiceAccountFollowed() {
|
|
return getStorage(STORAGE_KEYS.SERVICE_ACCOUNT_FOLLOWED, false)
|
|
}
|
|
|
|
// 小程序订阅消息提醒相关方法
|
|
export function setSubscribeReminderClosedDate(date) {
|
|
return setStorage(STORAGE_KEYS.SUBSCRIBE_REMINDER_CLOSED_DATE, date)
|
|
}
|
|
|
|
export function getSubscribeReminderClosedDate() {
|
|
return getStorage(STORAGE_KEYS.SUBSCRIBE_REMINDER_CLOSED_DATE, '')
|
|
}
|