user.js 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168
  1. import { login, logout, getInfo, refreshToken,phoneLogin } from '@/api/login'
  2. import { getToken, setToken, setExpiresIn, removeToken } from '@/utils/auth'
  3. import store from '@/store'
  4. import router from '@/router'
  5. const user = {
  6. state: {
  7. token: getToken(),
  8. name: '',
  9. avatar: '',
  10. roles: [],
  11. permissions: []
  12. },
  13. mutations: {
  14. SET_TOKEN: (state, token) => {
  15. state.token = token
  16. },
  17. SET_EXPIRES_IN: (state, time) => {
  18. state.expires_in = time
  19. },
  20. SET_NAME: (state, name) => {
  21. state.name = name
  22. },
  23. SET_AVATAR: (state, avatar) => {
  24. state.avatar = avatar
  25. },
  26. SET_ROLES: (state, roles) => {
  27. state.roles = roles
  28. },
  29. SET_PERMISSIONS: (state, permissions) => {
  30. state.permissions = permissions
  31. }
  32. },
  33. actions: {
  34. // 登录
  35. Login({ commit }, userInfo) {
  36. const username = userInfo.username.trim()
  37. const password = userInfo.password
  38. const code = userInfo.code
  39. const uuid = userInfo.uuid
  40. const userType = userInfo.userType
  41. return new Promise((resolve, reject) => {
  42. login(username, password, code, uuid, userType).then(res => {
  43. if(res.code == 530 || res.code == 503 || res.code == 303){
  44. resolve(res)
  45. return
  46. }
  47. // if(userType == '99' && res.data.type == '99'){
  48. // // let token = res.data.access_token;
  49. // // let loginUrl = window.location.href;
  50. // // window.location.href = res.data.linkUrl + '?loginUrl=' + loginUrl + '&token=' + token;
  51. // // window.location.href = 'http://localhost:8080/#/index?loginUrl=' + loginUrl + '&token=' + token; //本机测试用
  52. // // return
  53. // resolve(res)
  54. // }
  55. let data = res.data
  56. localStorage.setItem('userId',data.user_id);
  57. setToken(data.access_token)
  58. commit('SET_TOKEN', data.access_token)
  59. setExpiresIn(data.expires_in)
  60. commit('SET_EXPIRES_IN', data.expires_in)
  61. resolve(res)
  62. }).catch(error => {
  63. reject(error)
  64. })
  65. })
  66. },
  67. LoginPhone({ commit }, userInfo) {
  68. return new Promise((resolve, reject) => {
  69. phoneLogin(userInfo).then(res => {
  70. if(res.code == 530 || res.code == 503 || res.code == 303){
  71. resolve(res)
  72. return
  73. }
  74. // if(userType == '99' && res.data.type == '99'){
  75. // // let token = res.data.access_token;
  76. // // let loginUrl = window.location.href;
  77. // // window.location.href = res.data.linkUrl + '?loginUrl=' + loginUrl + '&token=' + token;
  78. // // window.location.href = 'http://localhost:8080/#/index?loginUrl=' + loginUrl + '&token=' + token; //本机测试用
  79. // // return
  80. // resolve(res)
  81. // }
  82. let data = res.data
  83. localStorage.setItem('userId',data.user_id);
  84. setToken(data.access_token)
  85. commit('SET_TOKEN', data.access_token)
  86. setExpiresIn(data.expires_in)
  87. commit('SET_EXPIRES_IN', data.expires_in)
  88. resolve(res)
  89. }).catch(error => {
  90. reject(error)
  91. })
  92. })
  93. },
  94. // 获取用户信息
  95. GetInfo({ commit, state }) {
  96. return new Promise((resolve, reject) => {
  97. getInfo().then(res => {
  98. if(res){
  99. let user = res.user
  100. let avatar = user.avatar == "" ? require("@/assets/ZDimages/tx_cion.png") : user.avatar;
  101. commit('SET_ROLES', ['placeholder'])
  102. commit('SET_PERMISSIONS', res.permissions)
  103. commit('SET_NAME', user.userName)
  104. commit('SET_AVATAR', avatar)
  105. localStorage.setItem('user',JSON.stringify(user));
  106. resolve(res)
  107. }else{
  108. store.dispatch('LogOut').then(() => {
  109. localStorage.removeItem('serviceType');
  110. })
  111. return
  112. }
  113. }).catch(error => {
  114. reject(error)
  115. })
  116. })
  117. },
  118. // 刷新token
  119. RefreshToken({commit, state}) {
  120. return new Promise((resolve, reject) => {
  121. refreshToken(state.token).then(res => {
  122. setExpiresIn(res.data)
  123. commit('SET_EXPIRES_IN', res.data)
  124. resolve()
  125. }).catch(error => {
  126. reject(error)
  127. })
  128. })
  129. },
  130. // 退出系统
  131. LogOut({ commit, state }) {
  132. return new Promise((resolve, reject) => {
  133. commit('SET_TOKEN', '')
  134. commit('SET_ROLES', [])
  135. commit('SET_PERMISSIONS', [])
  136. removeToken()
  137. window.location.href = process.env.VUE_APP_OUT_URL;
  138. // logout(state.token).then(() => {
  139. // // commit('SET_TOKEN', '')
  140. // // commit('SET_ROLES', [])
  141. // // commit('SET_PERMISSIONS', [])
  142. // // removeToken()
  143. // resolve()
  144. // }).catch(error => {
  145. // reject(error)
  146. // })
  147. })
  148. },
  149. // 前端 登出
  150. FedLogOut({ commit }) {
  151. return new Promise(resolve => {
  152. commit('SET_TOKEN', '')
  153. removeToken()
  154. resolve()
  155. })
  156. }
  157. }
  158. }
  159. export default user