123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136 |
- import cacheManager from "@/utils/cacheManager.js"
- const TokenKey = 'Mta-UserCache'
- export function useUserCache() {
- function saveCache() {
- let pageId, key, value;
- if (arguments.length === 3) {
- pageId = arguments[0];
- key = arguments[1];
- value = arguments[2];
- } else if (arguments.length === 2) {
- pageId = arguments[0];
- key = 'default';
- value = arguments[1];
- } else {
- console.log('saveCache 参数非法');
- return;
- }
- const auth = cacheManager.get('auth');
- // console.log('auth:', auth)
- if (!auth) {
- throw new Error('用户未登录!')
- return;
- }
- const userId = auth.userId;
- // console.log('userId:', userId)
- if (!userId) {
- throw new Error('数据异常用户Id异常!')
- return;
- }
-
- let pageData = uni.getStorageSync(TokenKey);
- if (!pageData) {
- pageData = {};
- }
- if (!pageData[userId]) {
- pageData[userId] = {};
- }
- if (!pageData[userId][pageId]) {
- pageData[userId][pageId] = {};
- }
- let oriVal = pageData[userId][pageId][key];
- if (oriVal !== null && !Array.isArray(oriVal) && typeof oriVal === 'object') {
- Object.assign(oriVal, value);
- pageData[userId][pageId][key] = oriVal;
- } else {
- pageData[userId][pageId][key] = value;
- }
- pageData[userId][pageId]['markTime'] = new Date().getTime();
- uni.setStorageSync(TokenKey, pageData)
- }
- function getCache() {
- let pageId, key;
- if (arguments.length === 2) {
- pageId = arguments[0];
- key = arguments[1];
- } else if (arguments.length === 1) {
- pageId = arguments[0];
- key = 'default';
- } else {
- console.log('getCache 参数非法');
- return;
- }
- const auth = cacheManager.get('auth');
- if (!auth) {
- throw new Error('用户未登录!')
- return;
- }
- const userId = auth.userId;
- if (!userId) {
- throw new Error('数据异常用户Id异常!')
- return;
- }
- let pageData = uni.getStorageSync(TokenKey);
- if (!pageData || !pageData[userId] || !pageData[userId][pageId]) {
- return null;
- }
- return pageData[userId][pageId][key];
- }
- function removeCache() {
- let pageId, key;
- if (arguments.length === 2) {
- pageId = arguments[0];
- key = arguments[1];
- } else if (arguments.length === 1) {
- pageId = arguments[0];
- } else {
- console.log('removeCache 参数非法');
- return;
- }
- const auth = cacheManager.get('auth');
- if (!auth) {
- throw new Error('用户未登录!')
- return;
- }
- const userId = auth.userId;
- if (!userId) {
- throw new Error('数据异常用户Id异常!')
- return;
- }
- if (pageId) {
- let pageData = uni.getStorageSync(TokenKey);
- if (!pageData) {
- return;
- }
- if (!pageData[userId]) {
- return;
- }
- if (arguments.length === 1) {
- delete pageData[userId][pageId];
- uni.setStorageSync(TokenKey, pageData)
- } else if (arguments.length === 2) {
- if (!pageData[userId][pageId]) {
- return;
- }
- delete pageData[userId][pageId][key];
- uni.setStorageSync(TokenKey, pageData)
- }
- }
- }
- return {
- saveCache,
- getCache,
- removeCache
- }
- }
|