storage.js 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. /**
  2. * 缓存处理
  3. * 存储到localStorage中,避免刷新页面数据丢失
  4. * <pre>
  5. * 作者:hugh zhuang
  6. * 邮箱:3378340995@qq.com
  7. * 日期:2015-11-02-下午3:29:34
  8. * 版权:广州流辰信息技术有限公司
  9. * </pre>
  10. */
  11. import Utils from '@/utils/util'
  12. import setting from '@/setting.js'
  13. const globalKey = setting.globalKey + '-'
  14. const storage = {
  15. /**
  16. * 存储localStorage
  17. */
  18. set: (key, value, options = {}, isPrefix = true) => {
  19. const obj = {
  20. dataType: typeof value,
  21. value: value,
  22. type: options.type,
  23. datetime: options.datetime || new Date().getTime()
  24. }
  25. key = isPrefix ? globalKey + key : key
  26. if (options.type) {
  27. window.sessionStorage.setItem(key, JSON.stringify(obj))
  28. } else {
  29. window.localStorage.setItem(key, JSON.stringify(obj))
  30. }
  31. },
  32. /**
  33. * 获取localStorage
  34. */
  35. get: (key, defaultValue, isPrefix = true) => {
  36. let obj = {}
  37. let value
  38. key = isPrefix ? globalKey + key : key
  39. obj = window.localStorage.getItem(key)
  40. if (Utils.isEmpty(obj)) obj = window.sessionStorage.getItem(key)
  41. if (Utils.isEmpty(obj)) return defaultValue
  42. obj = JSON.parse(obj)
  43. if (obj.dataType === 'string') {
  44. value = obj.value
  45. } else if (obj.dataType === 'number') {
  46. value = Number(obj.value)
  47. } else if (obj.dataType === 'boolean') {
  48. value = Boolean(obj.value)
  49. } else if (obj.dataType === 'object') {
  50. value = obj.value
  51. }
  52. return value
  53. },
  54. /**
  55. * 删除localStorage
  56. */
  57. remove: (key) => {
  58. key = globalKey + key
  59. window.sessionStorage.removeItem(key)
  60. window.localStorage.removeItem(key)
  61. },
  62. /**
  63. * 清空localStorage
  64. */
  65. clear: () => {
  66. window.sessionStorage.clear()
  67. window.localStorage.clear()
  68. }
  69. }
  70. export default storage