user.js 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  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. }
  50. },
  51. async LoginOut({ commit }) {
  52. const res = await jsonInBlacklist()
  53. if (res.code == 0) {
  54. commit("LoginOut")
  55. }
  56. }
  57. },
  58. getters: {
  59. userInfo(state) {
  60. return state.userInfo
  61. },
  62. token(state) {
  63. return state.token
  64. },
  65. }
  66. }