userCache.js 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137
  1. import cacheManager from "@/utils/cacheManager.js"
  2. const TokenKey = 'Mta-UserCache'
  3. // 分用户记录缓存
  4. export function useUserCache() {
  5. function saveCache() {
  6. let pageId, key, value;
  7. if (arguments.length === 3) {
  8. pageId = arguments[0];
  9. key = arguments[1];
  10. value = arguments[2];
  11. } else if (arguments.length === 2) {
  12. pageId = arguments[0];
  13. key = 'default';
  14. value = arguments[1];
  15. } else {
  16. console.log('saveCache 参数非法');
  17. return;
  18. }
  19. const auth = cacheManager.get('auth');
  20. // console.log('auth:', auth)
  21. if (!auth) {
  22. throw new Error('用户未登录!')
  23. return;
  24. }
  25. const userId = auth.userId;
  26. // console.log('userId:', userId)
  27. if (!userId) {
  28. throw new Error('数据异常用户Id异常!')
  29. return;
  30. }
  31. let pageData = uni.getStorageSync(TokenKey);
  32. if (!pageData) {
  33. pageData = {};
  34. }
  35. if (!pageData[userId]) {
  36. pageData[userId] = {};
  37. }
  38. if (!pageData[userId][pageId]) {
  39. pageData[userId][pageId] = {};
  40. }
  41. let oriVal = pageData[userId][pageId][key];
  42. if (oriVal !== null && !Array.isArray(oriVal) && typeof oriVal === 'object') {
  43. Object.assign(oriVal, value);
  44. pageData[userId][pageId][key] = oriVal;
  45. } else {
  46. pageData[userId][pageId][key] = value;
  47. }
  48. pageData[userId][pageId]['markTime'] = new Date().getTime();
  49. uni.setStorageSync(TokenKey, pageData)
  50. }
  51. function getCache() {
  52. let pageId, key;
  53. if (arguments.length === 2) {
  54. pageId = arguments[0];
  55. key = arguments[1];
  56. } else if (arguments.length === 1) {
  57. pageId = arguments[0];
  58. key = 'default';
  59. } else {
  60. console.log('getCache 参数非法');
  61. return;
  62. }
  63. const auth = cacheManager.get('auth');
  64. if (!auth) {
  65. throw new Error('用户未登录!')
  66. return;
  67. }
  68. const userId = auth.userId;
  69. if (!userId) {
  70. throw new Error('数据异常用户Id异常!')
  71. return;
  72. }
  73. let pageData = uni.getStorageSync(TokenKey);
  74. if (!pageData || !pageData[userId] || !pageData[userId][pageId]) {
  75. return null;
  76. }
  77. return pageData[userId][pageId][key];
  78. }
  79. function removeCache() {
  80. let pageId, key;
  81. if (arguments.length === 2) {
  82. pageId = arguments[0];
  83. key = arguments[1];
  84. } else if (arguments.length === 1) {
  85. pageId = arguments[0];
  86. } else {
  87. console.log('removeCache 参数非法');
  88. return;
  89. }
  90. const auth = cacheManager.get('auth');
  91. if (!auth) {
  92. throw new Error('用户未登录!')
  93. return;
  94. }
  95. const userId = auth.userId;
  96. if (!userId) {
  97. throw new Error('数据异常用户Id异常!')
  98. return;
  99. }
  100. if (pageId) {
  101. let pageData = uni.getStorageSync(TokenKey);
  102. if (!pageData) {
  103. return;
  104. }
  105. if (!pageData[userId]) {
  106. return;
  107. }
  108. if (arguments.length === 1) {
  109. delete pageData[userId][pageId];
  110. uni.setStorageSync(TokenKey, pageData)
  111. } else if (arguments.length === 2) {
  112. if (!pageData[userId][pageId]) {
  113. return;
  114. }
  115. delete pageData[userId][pageId][key];
  116. uni.setStorageSync(TokenKey, pageData)
  117. }
  118. }
  119. }
  120. return {
  121. saveCache,
  122. getCache,
  123. removeCache
  124. }
  125. }