84 lines
1.7 KiB
JavaScript
84 lines
1.7 KiB
JavaScript
// 本地存储工具类
|
||
export const storage = {
|
||
// 保存数据
|
||
set(key, value) {
|
||
try {
|
||
const data = typeof value === 'object' ? JSON.stringify(value) : value;
|
||
uni.setStorageSync(key, data);
|
||
return true;
|
||
} catch (error) {
|
||
console.error('存储数据失败:', error);
|
||
return false;
|
||
}
|
||
},
|
||
|
||
// 获取数据
|
||
get(key) {
|
||
try {
|
||
const data = uni.getStorageSync(key);
|
||
if (data === null || data === undefined) {
|
||
return null;
|
||
}
|
||
// 尝试解析JSON
|
||
try {
|
||
return JSON.parse(data);
|
||
} catch (e) {
|
||
// 如果不是JSON格式,直接返回原始数据
|
||
return data;
|
||
}
|
||
} catch (error) {
|
||
console.error('获取数据失败:', error);
|
||
return null;
|
||
}
|
||
},
|
||
|
||
// 删除数据
|
||
remove(key) {
|
||
try {
|
||
uni.removeStorageSync(key);
|
||
return true;
|
||
} catch (error) {
|
||
console.error('删除数据失败:', error);
|
||
return false;
|
||
}
|
||
},
|
||
|
||
// 清空所有数据
|
||
clear() {
|
||
try {
|
||
uni.clearStorageSync();
|
||
return true;
|
||
} catch (error) {
|
||
console.error('清空数据失败:', error);
|
||
return false;
|
||
}
|
||
},
|
||
|
||
// 批量保存
|
||
setMultiple(dataObj) {
|
||
try {
|
||
Object.keys(dataObj).forEach(key => {
|
||
this.set(key, dataObj[key]);
|
||
});
|
||
return true;
|
||
} catch (error) {
|
||
console.error('批量存储失败:', error);
|
||
return false;
|
||
}
|
||
},
|
||
|
||
// 批量获取
|
||
getMultiple(keys) {
|
||
try {
|
||
const result = {};
|
||
keys.forEach(key => {
|
||
result[key] = this.get(key);
|
||
});
|
||
return result;
|
||
} catch (error) {
|
||
console.error('批量获取失败:', error);
|
||
return {};
|
||
}
|
||
}
|
||
};
|