user.js 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. import { fetch } from '@/api/index';
  2. import { logout, getInfo } from '@/api/user'
  3. import { getToken, setToken, removeToken } from '@/utils/auth'
  4. import { resetRouter } from '@/router'
  5. const getDefaultState = () => {
  6. return {
  7. token: getToken(),
  8. userData: {},
  9. name: '',
  10. avatar: ''
  11. }
  12. }
  13. const state = getDefaultState()
  14. const mutations = {
  15. RESET_STATE: (state) => {
  16. Object.assign(state, getDefaultState())
  17. },
  18. SET_TOKEN: (state, token) => {
  19. state.token = token
  20. },
  21. SET_NAME: (state, name) => {
  22. state.name = name
  23. },
  24. SET_AVATAR: (state, avatar) => {
  25. state.avatar = avatar
  26. },
  27. SET_USERDATA: (state, data) => {
  28. state.userData = data
  29. }
  30. }
  31. const actions = {
  32. // get user info
  33. getInfo({ commit, state }) {
  34. return new Promise(async (resolve, reject) => {
  35. // const data = await fetch('/getUserInfo')
  36. // const data = {code: 200, data: {username: 'admin'}}
  37. const data = await fetch('/home/authList', {}, 'get')
  38. if (data.code == 200) {
  39. commit('SET_NAME', data.data.user_name)
  40. commit('SET_AVATAR', 'avatar')
  41. // commit('SET_USERDATA', data.data)
  42. resolve(data.data)
  43. } else {
  44. reject('error')
  45. }
  46. })
  47. },
  48. // user logout
  49. logout({ commit, state }) {
  50. return new Promise((resolve, reject) => {
  51. removeToken() // must remove token first
  52. resetRouter()
  53. commit('RESET_STATE')
  54. resolve()
  55. // logout(state.token).then(() => {
  56. // removeToken() // must remove token first
  57. // resetRouter()
  58. // commit('RESET_STATE')
  59. // resolve()
  60. // }).catch(error => {
  61. // reject(error)
  62. // })
  63. })
  64. },
  65. // remove token
  66. resetToken({ commit }) {
  67. return new Promise(resolve => {
  68. removeToken() // must remove token first
  69. commit('RESET_STATE')
  70. resolve()
  71. })
  72. }
  73. }
  74. export default {
  75. namespaced: true,
  76. state,
  77. mutations,
  78. actions
  79. }