/** * 存储工具模块 * 封装 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, '') }