user.js 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. import { login, logout, getInfo } from '@/api/user'
  2. import { getToken, setToken, removeToken } from '@/utils/auth'
  3. import { resetRouter } from '@/router'
  4. import qs from 'qs'
  5. const state = {
  6. token: getToken(),
  7. name: '',
  8. avatar: '',
  9. organ: ''
  10. }
  11. const mutations = {
  12. SET_TOKEN: (state, token) => {
  13. state.token = token
  14. },
  15. SET_NAME: (state, name) => {
  16. state.name = name
  17. },
  18. SET_AVATAR: (state, avatar) => {
  19. state.avatar = avatar
  20. },
  21. SET_ORGAN: (state, organ) => {
  22. state.organ = organ
  23. }
  24. }
  25. const actions = {
  26. // user login
  27. login ({ commit }, userInfo) {
  28. const { username, password } = userInfo
  29. return new Promise((resolve, reject) => {
  30. //qs.stringify({ username: username.trim(), password: password, clientId: 'app', clientSecret: 'app' })
  31. // { username: username.trim(), password: password }
  32. login({ username: username.trim(), password: password, clientId: 'system', clientSecret: 'system' }).then(response => {
  33. const { data } = response
  34. if (response.code == 200) {
  35. let token = data.authentication.token_type + ' ' + data.authentication.access_token;
  36. commit('SET_TOKEN', token)
  37. setToken(token)
  38. resolve()
  39. }
  40. // console.log(response);
  41. }).catch(error => {
  42. reject(error)
  43. })
  44. })
  45. },
  46. // get 获取用户信息
  47. getInfo ({ commit, state }) {
  48. return new Promise((resolve, reject) => {
  49. getInfo(state.token).then(response => {
  50. if (response.code == 200) {
  51. const data = response
  52. if (!data.data) {
  53. reject('获取用户信息错误,请重新登录')
  54. }
  55. const username = data.data.username;
  56. const avatar = data.data.avatar;
  57. const organ = data.data.organId;
  58. // const { name, avatar } = data
  59. commit('SET_NAME', username)
  60. commit('SET_AVATAR', avatar)
  61. commit('SET_ORGAN', organ)
  62. resolve(data)
  63. }
  64. }).catch(error => {
  65. reject(error)
  66. })
  67. })
  68. },
  69. // 登出
  70. logout ({ commit }) {
  71. return new Promise((resolve, reject) => {
  72. logout().then(() => {
  73. commit('SET_TOKEN', '')
  74. removeToken()
  75. resetRouter()
  76. resolve()
  77. }).catch(error => {
  78. reject(error)
  79. })
  80. })
  81. },
  82. // remove token
  83. resetToken ({ commit }) {
  84. return new Promise(resolve => {
  85. commit('SET_TOKEN', '')
  86. removeToken()
  87. resolve()
  88. })
  89. }
  90. }
  91. export default {
  92. namespaced: true,
  93. state,
  94. mutations,
  95. actions
  96. }