user.js 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. import { login } from '@/api/user'
  2. import { jsonInBlacklist } from '@/api/jwt'
  3. import router from '@/router/index'
  4. export const user = {
  5. namespaced: true,
  6. state: {
  7. userInfo: {
  8. uuid: "",
  9. nickName: "",
  10. headerImg: "",
  11. authority: "",
  12. },
  13. token: "",
  14. },
  15. mutations: {
  16. setUserInfo(state, userInfo) {
  17. // 这里的 `state` 对象是模块的局部状态
  18. state.userInfo = userInfo
  19. },
  20. setToken(state, token) {
  21. // 这里的 `state` 对象是模块的局部状态
  22. state.token = token
  23. },
  24. LoginOut(state) {
  25. state.userInfo = {}
  26. state.token = ""
  27. router.push({ name: 'login', replace: true })
  28. sessionStorage.clear()
  29. window.location.reload()
  30. },
  31. ResetUserInfo(state, userInfo = {}) {
  32. state.userInfo = {...state.userInfo,
  33. ...userInfo
  34. }
  35. }
  36. },
  37. actions: {
  38. async LoginIn({ commit }, loginInfo) {
  39. const res = await login(loginInfo)
  40. if (res.code == 0) {
  41. commit('setUserInfo', res.data.user)
  42. commit('setToken', res.data.token)
  43. const redirect = router.history.current.query.redirect
  44. if (redirect) {
  45. router.push({ path: redirect })
  46. } else {
  47. router.push({ path: '/layout/dashboard' })
  48. }
  49. return true
  50. }
  51. },
  52. async LoginOut({ commit }) {
  53. const res = await jsonInBlacklist()
  54. if (res.code == 0) {
  55. commit("LoginOut")
  56. }
  57. }
  58. },
  59. getters: {
  60. userInfo(state) {
  61. return state.userInfo
  62. },
  63. token(state) {
  64. return state.token
  65. },
  66. }
  67. }