common.js 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. import { message } from "antd"
  2. import { history } from "umi"
  3. import consts from '../consts'
  4. const USER_INFO = 'USER_INFO' // 用户个人信息
  5. const USER_ACCOUNT = 'USER_ACCOUNT' // 用户账号
  6. const TOKEN_ID = 'TOKEN_ID' // TOKEN令牌ID
  7. // 本地存储封装
  8. const storage = {
  9. get(key) {
  10. const val = localStorage.getItem(key)
  11. if (val) {
  12. return JSON.parse(val)
  13. }
  14. return null
  15. },
  16. set(key, value) {
  17. localStorage.setItem(key, JSON.stringify(value))
  18. },
  19. del(key) {
  20. localStorage.removeItem(key)
  21. },
  22. clear() {
  23. localStorage.clear()
  24. }
  25. }
  26. /**
  27. * 保存用户信息到本地存储中
  28. * @param {*} user 用户信息
  29. */
  30. export const saveUserInfo = user => {
  31. storage.set(USER_INFO, user)
  32. }
  33. /**
  34. * 获取用户信息
  35. */
  36. export const getUserInfo = () => {
  37. const user = storage.get(USER_INFO)
  38. return user
  39. }
  40. /**
  41. * 移除用户信息
  42. */
  43. export const removeUserInfo = () => {
  44. return storage.del(USER_INFO)
  45. }
  46. /**
  47. * 保存用户账号信息
  48. * @param {*} account 账号
  49. */
  50. export const saveUserAccount = account => {
  51. storage.set(USER_ACCOUNT, account)
  52. }
  53. /**
  54. * 获取用户账号信息
  55. */
  56. export const getUserAccount = () => {
  57. return storage.get(USER_ACCOUNT)
  58. }
  59. /**
  60. * 移除用户账号信息
  61. */
  62. export const removeUserAccount = () => {
  63. return storage.del(USER_ACCOUNT)
  64. }
  65. /**
  66. * 保存令牌ID到本地存储中
  67. * @param {*} id token令牌id
  68. */
  69. export const saveTokenId = id => {
  70. return storage.set(TOKEN_ID, id)
  71. }
  72. /**
  73. * 移除令牌ID
  74. */
  75. export const removeTokenId = () => {
  76. return storage.del(TOKEN_ID)
  77. }
  78. /**
  79. * 从本地存储中获取令牌ID
  80. */
  81. export const getTokenid = () => {
  82. return storage.get(TOKEN_ID) || ''
  83. }
  84. /**
  85. * 重定向到登录页
  86. */
  87. export const redirectToLogin = url => {
  88. // 重定向登录页面
  89. history.replace(url || consts.LOGIN_PATH)
  90. }
  91. /**
  92. * 用户注销
  93. * @param {String} url 注销后重定向登录的地址
  94. */
  95. export const logout = url => {
  96. message.success('退出登录')
  97. removeTokenId()
  98. removeUserInfo()
  99. removeUserAccount()
  100. redirectToLogin(url || consts.LOGIN_PATH)
  101. }