新增搜索课程和加载组件页面,签到页面添加遮罩防重复扫码,添加 request 便捷方法(get/post/put/delete)
This commit is contained in:
@@ -0,0 +1,89 @@
|
||||
// 缓存相关常量
|
||||
const CACHE_PREFIX = 'API_CACHE_'
|
||||
const CACHE_EXPIRE_TIME = 5 * 60 * 1000 // 默认缓存时间5分钟
|
||||
|
||||
/**
|
||||
* 获取缓存数据
|
||||
* @param {string} key - 缓存键名
|
||||
* @returns {any} 缓存数据(过期返回null)
|
||||
*/
|
||||
export const getCache = (key) => {
|
||||
try {
|
||||
const cacheData = uni.getStorageSync(CACHE_PREFIX + key)
|
||||
if (cacheData && cacheData.expireTime && Date.now() < cacheData.expireTime) {
|
||||
return cacheData.data
|
||||
}
|
||||
// 缓存过期,清除
|
||||
uni.removeStorageSync(CACHE_PREFIX + key)
|
||||
return null
|
||||
} catch (e) {
|
||||
console.error('获取缓存失败:', e)
|
||||
return null
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置缓存数据
|
||||
* @param {string} key - 缓存键名
|
||||
* @param {any} data - 要缓存的数据
|
||||
* @param {number} expireTime - 过期时间(毫秒),默认5分钟
|
||||
*/
|
||||
export const setCache = (key, data, expireTime = CACHE_EXPIRE_TIME) => {
|
||||
try {
|
||||
const cacheData = {
|
||||
data: data,
|
||||
expireTime: Date.now() + expireTime
|
||||
}
|
||||
uni.setStorageSync(CACHE_PREFIX + key, cacheData)
|
||||
} catch (e) {
|
||||
console.error('设置缓存失败:', e)
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 清除指定缓存
|
||||
* @param {string} key - 缓存键名
|
||||
*/
|
||||
export const clearCache = (key) => {
|
||||
try {
|
||||
uni.removeStorageSync(CACHE_PREFIX + key)
|
||||
} catch (e) {
|
||||
console.error('清除缓存失败:', e)
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 清除所有API缓存
|
||||
*/
|
||||
export const clearAllCache = () => {
|
||||
try {
|
||||
const keys = uni.getStorageInfoSync().keys || []
|
||||
for (const key of keys) {
|
||||
if (key.startsWith(CACHE_PREFIX)) {
|
||||
uni.removeStorageSync(key)
|
||||
}
|
||||
}
|
||||
} catch (e) {
|
||||
console.error('清除所有缓存失败:', e)
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 生成请求缓存键名
|
||||
* @param {string} url - 请求URL
|
||||
* @param {object} data - 请求参数
|
||||
* @param {string} method - 请求方法
|
||||
* @returns {string} 缓存键名
|
||||
*/
|
||||
export const generateCacheKey = (url, data, method) => {
|
||||
const params = JSON.stringify(data || {})
|
||||
return `${method}_${url}_${params}`
|
||||
}
|
||||
|
||||
export default {
|
||||
getCache,
|
||||
setCache,
|
||||
clearCache,
|
||||
clearAllCache,
|
||||
generateCacheKey
|
||||
}
|
||||
Reference in New Issue
Block a user