user.js 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  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. organName: ''
  11. }
  12. // organName
  13. const mutations = {
  14. SET_TOKEN: (state, token) => {
  15. state.token = token
  16. },
  17. SET_NAME: (state, name) => {
  18. state.name = name
  19. },
  20. SET_AVATAR: (state, avatar) => {
  21. state.avatar = avatar
  22. },
  23. SET_ORGAN: (state, organ) => {
  24. state.organ = organ
  25. },
  26. SET_ORGANNAME: (state, organName) => {
  27. state.organName = organName
  28. },
  29. SET_REFRESH_TOKEN: (state, refreshToken) => {
  30. state.refreshToken = refreshToken
  31. },
  32. SET_EXPIRES_IN: (state, expiresIn) => {
  33. state.expiresIn = expiresIn
  34. }
  35. }
  36. const actions = {
  37. // user login
  38. login ({ commit }, userInfo) {
  39. const { username, password } = userInfo
  40. return new Promise((resolve, reject) => {
  41. //qs.stringify({ username: username.trim(), password: password, clientId: 'app', clientSecret: 'app' })
  42. // { username: username.trim(), password: password }
  43. login({ username: username.trim(), password: password, clientId: 'system', clientSecret: 'system' }).then(response => {
  44. const { data } = response
  45. if (response.code == 200) {
  46. let token = data.authentication.token_type + ' ' + data.authentication.access_token;
  47. commit('SET_REFRESH_TOKEN', data.authentication.refresh_token)
  48. commit('SET_EXPIRES_IN', data.authentication.expires_in)
  49. commit('SET_TOKEN', token)
  50. setToken(token)
  51. resolve()
  52. }
  53. }).catch(error => {
  54. reject(error)
  55. })
  56. })
  57. },
  58. // get 获取用户信息
  59. getInfo ({ commit, state }) {
  60. return new Promise((resolve, reject) => {
  61. getInfo(state.token).then(response => {
  62. if (response.code == 200) {
  63. const data = response
  64. if (!data.data) {
  65. reject('获取用户信息错误,请重新登录')
  66. }
  67. const username = data.data.realName || data.data.username;
  68. const avatar = data.data.avatar;
  69. const organ = data.data.organId;
  70. const organName = data.data.organName;
  71. // const { name, avatar } = data
  72. commit('SET_NAME', username)
  73. commit('SET_AVATAR', avatar)
  74. commit('SET_ORGAN', organ)
  75. commit('SET_ORGANNAME', organName)
  76. resolve(data)
  77. }
  78. }).catch(error => {
  79. reject(error)
  80. })
  81. })
  82. },
  83. // 登出
  84. logout ({ commit }) {
  85. return new Promise((resolve, reject) => {
  86. logout().then(() => {
  87. commit('SET_TOKEN', '')
  88. removeToken()
  89. resetRouter()
  90. commit('SET_NAME', '')
  91. resolve()
  92. }).catch(error => {
  93. reject(error)
  94. })
  95. })
  96. },
  97. // remove token
  98. resetToken ({ commit }) {
  99. return new Promise(resolve => {
  100. commit('SET_TOKEN', '')
  101. removeToken()
  102. resolve()
  103. })
  104. }
  105. }
  106. export default {
  107. namespaced: true,
  108. state,
  109. mutations,
  110. actions
  111. }