store.js 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. import {
  2. validatenull
  3. } from '@/util/validate';
  4. import website from '@/config/website'
  5. const keyName = website.key + '-';
  6. /**
  7. * 存储localStorage
  8. */
  9. export const setStore = (params = {}) => {
  10. let {
  11. name,
  12. content,
  13. type,
  14. } = params;
  15. name = keyName + name
  16. let obj = {
  17. dataType: typeof (content),
  18. content: content,
  19. type: type,
  20. datetime: new Date().getTime()
  21. }
  22. if (type) window.sessionStorage.setItem(name, JSON.stringify(obj));
  23. else window.localStorage.setItem(name, JSON.stringify(obj));
  24. }
  25. /**
  26. * 获取localStorage
  27. */
  28. export const getStore = (params = {}) => {
  29. let {
  30. name,
  31. debug
  32. } = params;
  33. name = keyName + name
  34. let obj = {},
  35. content;
  36. obj = window.sessionStorage.getItem(name);
  37. if (validatenull(obj)) obj = window.localStorage.getItem(name);
  38. if (validatenull(obj)) return;
  39. try {
  40. obj = JSON.parse(obj);
  41. } catch {
  42. return obj;
  43. }
  44. if (debug) {
  45. return obj;
  46. }
  47. if (obj.dataType == 'string') {
  48. content = obj.content;
  49. } else if (obj.dataType == 'number') {
  50. content = Number(obj.content);
  51. } else if (obj.dataType == 'boolean') {
  52. content = eval(obj.content);
  53. } else if (obj.dataType == 'object') {
  54. content = obj.content;
  55. }
  56. return content;
  57. }
  58. /**
  59. * 删除localStorage
  60. */
  61. export const removeStore = (params = {}) => {
  62. let {
  63. name,
  64. type
  65. } = params;
  66. name = keyName + name
  67. if (type) {
  68. window.sessionStorage.removeItem(name);
  69. } else {
  70. window.localStorage.removeItem(name);
  71. }
  72. }
  73. /**
  74. * 获取全部localStorage
  75. */
  76. export const getAllStore = (params = {}) => {
  77. let list = [];
  78. let {
  79. type
  80. } = params;
  81. if (type) {
  82. for (let i = 0; i <= window.sessionStorage.length; i++) {
  83. list.push({
  84. name: window.sessionStorage.key(i),
  85. content: getStore({
  86. name: window.sessionStorage.key(i),
  87. type: 'session'
  88. })
  89. })
  90. }
  91. } else {
  92. for (let i = 0; i <= window.localStorage.length; i++) {
  93. list.push({
  94. name: window.localStorage.key(i),
  95. content: getStore({
  96. name: window.localStorage.key(i),
  97. })
  98. })
  99. }
  100. }
  101. return list;
  102. }
  103. /**
  104. * 清空全部localStorage
  105. */
  106. export const clearStore = (params = {}) => {
  107. let { type } = params;
  108. if (type) {
  109. window.sessionStorage.clear();
  110. } else {
  111. window.localStorage.clear()
  112. }
  113. }