storage.js 2.6 KB

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