user.js 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. import { login } from '@/api/user'
  2. import { jsonInBlacklist } from '@/api/jwt'
  3. import router from '@/router/index'
  4. import variables from '@/style/element_visiable.scss'
  5. export const user = {
  6. namespaced: true,
  7. state: {
  8. userInfo: {
  9. uuid: '',
  10. nickName: '',
  11. headerImg: '',
  12. authority: '',
  13. sideMode : 'dark',
  14. theme: variables.colorPrimary,
  15. },
  16. token: ''
  17. },
  18. mutations: {
  19. setUserInfo(state, userInfo) {
  20. // 这里的 `state` 对象是模块的局部状态
  21. state.userInfo = userInfo
  22. },
  23. setToken(state, token) {
  24. // 这里的 `state` 对象是模块的局部状态
  25. state.token = token
  26. },
  27. NeedInit(state) {
  28. state.userInfo = {}
  29. state.token = ''
  30. sessionStorage.clear()
  31. router.push({ name: 'Init', replace: true })
  32. },
  33. LoginOut(state) {
  34. state.userInfo = {}
  35. state.token = ''
  36. sessionStorage.clear()
  37. router.push({ name: 'Login', replace: true })
  38. window.location.reload()
  39. },
  40. ResetUserInfo(state, userInfo = {}) {
  41. state.userInfo = { ...state.userInfo,
  42. ...userInfo
  43. }
  44. },
  45. CHANGETHEME: (state, value) => {
  46. state.theme = value
  47. },
  48. CHANGESIDEMODE: (state ,val) => {
  49. state.sideMode = val
  50. }
  51. },
  52. actions: {
  53. async LoginIn({ commit, dispatch, rootGetters, getters }, loginInfo) {
  54. const res = await login(loginInfo)
  55. if (res.code === 0) {
  56. commit('setUserInfo', res.data.user)
  57. commit('setToken', res.data.token)
  58. await dispatch('router/SetAsyncRouter', {}, { root: true })
  59. const asyncRouters = rootGetters['router/asyncRouters']
  60. router.addRoutes(asyncRouters)
  61. // const redirect = router.history.current.query.redirect
  62. // console.log(redirect)
  63. // if (redirect) {
  64. // router.push({ path: redirect })
  65. // } else {
  66. router.push({ name: getters['userInfo'].authority.defaultRouter })
  67. // }
  68. return true
  69. }
  70. },
  71. async LoginOut({ commit }) {
  72. const res = await jsonInBlacklist()
  73. if (res.code === 0) {
  74. commit('LoginOut')
  75. }
  76. },
  77. changeTheme({ commit }, data) {
  78. commit('CHANGETHEME', data)
  79. },
  80. changeSideMode({ commit },data) {
  81. commit('CHANGESIDEMODE',data)
  82. }
  83. },
  84. getters: {
  85. userInfo(state) {
  86. return state.userInfo
  87. },
  88. token(state) {
  89. return state.token
  90. },
  91. getSideMode(state) {
  92. return state.sideMode
  93. }
  94. }
  95. }