user.js 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154
  1. import { login, logout, getInfo } from '@/api/user'
  2. import { getToken, setToken, removeToken, removeCrossToken, setCrossToken } from '@/utils/auth'
  3. import { tenantInfoQueryPage, tenantInfoInfo } from '@/views/organManager/api'
  4. import { resetRouter } from '@/router'
  5. // import qs from 'qs'
  6. const state = {
  7. token: getToken(),
  8. name: '',
  9. avatar: '',
  10. organ: '',
  11. organName: '',
  12. phone: '',
  13. isSuperAdmin:false,
  14. roles:[]
  15. }
  16. // organName
  17. const mutations = {
  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_ORGAN: (state, organ) => {
  28. state.organ = organ
  29. },
  30. SET_ORGANNAME: (state, organName) => {
  31. state.organName = organName
  32. },
  33. SET_REFRESH_TOKEN: (state, refreshToken) => {
  34. state.refreshToken = refreshToken
  35. },
  36. SET_EXPIRES_IN: (state, expiresIn) => {
  37. state.expiresIn = expiresIn
  38. },
  39. SET_PHONE: (state, phone) => {
  40. state.phone = phone
  41. },
  42. SET_SUPERADMIN: (state, isSuperAdmin) => {
  43. state.isSuperAdmin = isSuperAdmin
  44. },
  45. SET_ROLES:(state,roles)=>{
  46. state.roles = roles
  47. }
  48. }
  49. async function tenantQueryPage(id) {
  50. try {
  51. let tenantId = id
  52. if(tenantId < 0) {
  53. const res = await tenantInfoQueryPage({ page: 1, rows: 1 })
  54. const tenantList = res.data?.rows || []
  55. tenantId = tenantList[0]?.id
  56. }
  57. const info = await tenantInfoInfo({id: tenantId})
  58. sessionStorage.setItem('tenantId', info.data.id)
  59. sessionStorage.setItem('tenantName', info.data.name)
  60. } catch(e) {}
  61. }
  62. const actions = {
  63. // user login
  64. login ({ commit }, userInfo) {
  65. const { username, password } = userInfo
  66. return new Promise((resolve, reject) => {
  67. //qs.stringify({ username: username.trim(), password: password, clientId: 'app', clientSecret: 'app' })
  68. // { username: username.trim(), password: password }
  69. login({ username: username.trim(), password: password, clientId: 'system', clientSecret: 'system' }).then(response => {
  70. const { data } = response
  71. if (response.code == 200) {
  72. let token = data.authentication.token_type + ' ' + data.authentication.access_token;
  73. commit('SET_REFRESH_TOKEN', data.authentication.refresh_token)
  74. commit('SET_EXPIRES_IN', data.authentication.expires_in)
  75. commit('SET_TOKEN', token)
  76. setToken(token)
  77. setCrossToken(data.authentication.access_token)
  78. resolve()
  79. }
  80. }).catch(error => {
  81. reject(error)
  82. })
  83. })
  84. },
  85. // get 获取用户信息
  86. getInfo ({ commit, state }) {
  87. return new Promise((resolve, reject) => {
  88. getInfo(state.token).then(async (response) => {
  89. if (response.code == 200) {
  90. const data = response
  91. if (!data.data) {
  92. reject('获取用户信息错误,请重新登录')
  93. }
  94. const username = data.data.realName || data.data.username;
  95. const avatar = data.data.avatar;
  96. const organ = data.data.organId;
  97. const organName = data.data.organName;
  98. const phone = data.data.phone
  99. const isSuperAdmin = data.data.isSuperAdmin
  100. const roles = data.data.roles
  101. const tenantId = data.data.tenantId
  102. await tenantQueryPage(tenantId)
  103. sessionStorage.setItem('baseTenantId', tenantId)
  104. commit('SET_NAME', username)
  105. commit('SET_AVATAR', avatar)
  106. commit('SET_ORGAN', organ)
  107. commit('SET_ORGANNAME', organName)
  108. commit('SET_PHONE', phone)
  109. commit('SET_SUPERADMIN',isSuperAdmin)
  110. commit('SET_ROLES',roles)
  111. resolve(data)
  112. }
  113. }).catch(error => {
  114. reject('获取用户信息错误,请重新登录')
  115. })
  116. })
  117. },
  118. // 登出
  119. logout ({ commit }) {
  120. return new Promise((resolve, reject) => {
  121. logout().then(() => {
  122. commit('SET_TOKEN', '')
  123. removeToken()
  124. removeCrossToken()
  125. resetRouter()
  126. commit('SET_NAME', '')
  127. resolve()
  128. }).catch(error => {
  129. reject(error)
  130. })
  131. })
  132. },
  133. // remove token
  134. resetToken ({ commit }) {
  135. return new Promise(resolve => {
  136. commit('SET_TOKEN', '')
  137. removeToken()
  138. removeCrossToken()
  139. resolve()
  140. })
  141. }
  142. }
  143. export default {
  144. namespaced: true,
  145. state,
  146. mutations,
  147. actions
  148. }