session.js 1023 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. /*
  2. * @Description: sessionStorage 封装
  3. * @Author: sql
  4. * @Date: 2018-11-23 21:02:16
  5. * @LastEditTime: 2018-11-27 17:25:50
  6. */
  7. import crypt from "@/lib/crypt"
  8. class SessionStorage {
  9. constructor() {
  10. this.Data = sessionStorage
  11. }
  12. // 获取 key中的数据
  13. Get(key, flag = false) {
  14. let res = null
  15. if (flag) {
  16. res = crypt.Decrypt(this.Data[key])
  17. } else {
  18. res = this.Data[key]
  19. }
  20. return this.IsExist(key) ? res : null
  21. }
  22. // 更新或创建新数据
  23. Set(key, val, flag = false) {
  24. let res = null
  25. if (flag) {
  26. res = crypt.Encrypt(String(val))
  27. } else {
  28. res = String(val)
  29. }
  30. this.Data[key] = sessionStorage[key] = res
  31. }
  32. // 输出 key 数据
  33. Del(key) {
  34. this.Data[key] = null
  35. sessionStorage.removeItem(key)
  36. }
  37. // key数据是否存在
  38. IsExist(key) {
  39. return this.Data.getItem(key) ? true : false
  40. }
  41. // 清除所有session
  42. Clear() {
  43. this.Data = null
  44. sessionStorage.clear()
  45. }
  46. }
  47. export default new SessionStorage