userCache.js 2.9 KB

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