kechengCache.js 2.9 KB

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