You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

120 lines
2.3 KiB

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