user.js 6.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218
  1. import config from '@/config'
  2. import storage from '@/utils/storage'
  3. import constant from '@/utils/constant'
  4. import { login, logout, getInfo } from '@/api/login'
  5. import { getToken, setToken, removeToken } from '@/utils/auth'
  6. const baseUrl = config.baseUrl
  7. const Clientid = config.Clientid
  8. const grantType = config.grantType
  9. const user = {
  10. state: {
  11. token: getToken(),
  12. name: storage.get(constant.name),
  13. nickName: storage.get(constant.nickName),
  14. avatar: storage.get(constant.avatar),
  15. roles: storage.get(constant.roles),
  16. roleName: storage.get(constant.roleName),
  17. permissions: storage.get(constant.permissions),
  18. wgtcode:storage.get(constant.wgtcode),
  19. autologin:storage.get(constant.autologin),
  20. userId: storage.get(constant.userId),
  21. phonenumber: storage.get(constant.phonenumber),
  22. deptId: storage.get(constant.deptId),
  23. deptName: storage.get(constant.deptName),
  24. loading: false,
  25. tenantId:storage.get(constant.tenantId),
  26. },
  27. mutations: {
  28. //tf作为主动控制的参数
  29. switch_loading(state,tf){
  30. /* if(tf){
  31. state.loading = tf;
  32. }else{
  33. state.loading = !state.loading
  34. } */
  35. state.loading = tf;
  36. },
  37. SET_TENANID: (state, tenantId) => {
  38. state.tenantId = tenantId
  39. storage.set(constant.tenantId, tenantId)
  40. },
  41. SET_TOKEN: (state, token) => {
  42. state.token = token
  43. },
  44. SET_NAME: (state, name) => {
  45. state.name = name
  46. storage.set(constant.name, name)
  47. },
  48. SET_NICKNAME: (state, nickName) => {
  49. state.nickName = nickName
  50. storage.set(constant.nickName, nickName)
  51. },
  52. SET_DEPTID: (state, deptId) => {
  53. state.deptId = deptId
  54. storage.set(constant.deptId, deptId)
  55. },
  56. SET_DEPNAME: (state, deptName) => {
  57. state.deptName = deptName
  58. storage.set(constant.deptName, deptName)
  59. },
  60. SET_AVATAR: (state, avatar) => {
  61. state.avatar = avatar
  62. storage.set(constant.avatar, avatar)
  63. },
  64. SET_ROLES: (state, roles) => {
  65. state.roles = roles
  66. storage.set(constant.roles, roles)
  67. },
  68. SET_ROLESNAME: (state, roleName) => {
  69. state.roleName = roleName
  70. storage.set(constant.roleName, roleName)
  71. },
  72. SET_PERMISSIONS: (state, permissions) => {
  73. state.permissions = permissions
  74. storage.set(constant.permissions, permissions)
  75. },
  76. SET_WGTCODE: (state, wgtcode) => {
  77. state.wgtcode = wgtcode
  78. storage.set(constant.wgtcode, wgtcode)
  79. },
  80. SET_AUTOLOGIN: (state, autologin) => {
  81. state.autologin = autologin
  82. storage.set(constant.autologin, autologin)
  83. },
  84. SET_USERID: (state, userId) => {
  85. state.userId = userId
  86. storage.set(constant.userId, userId)
  87. },
  88. SET_PHONENUMBER: (state, phonenumber) => {
  89. state.phonenumber = phonenumber
  90. storage.set(constant.phonenumber, phonenumber)
  91. },
  92. },
  93. actions: {
  94. // 版本号
  95. SetwgtFn({ commit}, code ){
  96. commit('SET_WGTCODE',code)
  97. },
  98. // 登录
  99. Login({ commit }, userInfo) {
  100. const username = userInfo.username.trim()
  101. const password = userInfo.password
  102. const code = userInfo.code
  103. const uuid = userInfo.uuid
  104. const strfrom = userInfo.strfrom||""
  105. // const tenantId = '000000'
  106. const tenantId = ''
  107. const clientId = Clientid
  108. const grantType = userInfo.grantType
  109. const phonenumber=userInfo.username.trim()
  110. const smsCode=userInfo.code
  111. return new Promise((resolve, reject) => {
  112. login(username, password, code, uuid,tenantId,clientId,grantType,phonenumber,smsCode).then(res => {
  113. setToken(res.data.access_token)
  114. commit('SET_TOKEN', res.data.access_token)
  115. // setToken(res.token)
  116. // commit('SET_TOKEN', res.token)
  117. commit('SET_AUTOLOGIN',true)
  118. resolve()
  119. }).catch(error => {
  120. if(error==500&&strfrom=='request'){
  121. uni.hideLoading()
  122. // 清空数据
  123. uni.showModal({
  124. title: '提示',
  125. content: '登录状态已过期,您可以继续留在该页面,或者重新登录?',
  126. cancelText: '取消',
  127. confirmText: '确定',
  128. success: function(res) {
  129. if (res.confirm) {
  130. commit('SET_TOKEN', '')
  131. commit('SET_ROLES', [])
  132. commit('SET_ROLESNAME', [])
  133. commit('SET_PERMISSIONS', [])
  134. removeToken()
  135. storage.clean()
  136. uni.reLaunch({ url: '/pages/login' })
  137. }else{
  138. commit('SET_AUTOLOGIN',false)
  139. }
  140. }
  141. })
  142. }
  143. reject(error)
  144. })
  145. })
  146. },
  147. // 获取用户信息require("@/static/images/profile.jpg")
  148. GetInfo({ commit, state }) {
  149. return new Promise((resolve, reject) => {
  150. getInfo().then(resd => {
  151. const res = resd.data
  152. // const res = resd;
  153. const user = res.user
  154. const avatar = (user == null || user.avatar == "" || user.avatar == null) ? '' : user.avatar
  155. const username = (user == null || user.userName == "" || user.userName == null) ? "" : user.userName
  156. const nickName = (user == null || user.nickName == "" || user.nickName == null) ? "" : user.nickName
  157. const userId = (user == null || user.userId == "" || user.userId == null) ? "" : user.userId
  158. const tenantId = (user == null || user.tenantId == "" || user.tenantId == null) ? "" : user.tenantId
  159. const phonenumber = (user == null || user.phonenumber == "" || user.phonenumber == null) ? "" : user.phonenumber
  160. const deptId = (user == null || user.deptId == "" || user.deptId == null) ? "" : user.deptId
  161. const deptName = (user == null || user.dept == "" || user.dept == null||user.dept.deptName==''||user.dept.deptName==null) ? "" : user.dept.deptName
  162. // 根据角色来储存权限
  163. if (res.user.roles && res.user.roles.length > 0) {
  164. var newArr=[]
  165. newArr = res.user.roles.map(v => {
  166. return {
  167. dictValue: v.roleKey,
  168. dictLabel:v.roleName,
  169. // permissions: v.permissions
  170. }
  171. })
  172. commit('SET_ROLESNAME', newArr)
  173. }
  174. if (res.roles && res.roles.length > 0) {
  175. commit('SET_ROLES', res.roles)
  176. commit('SET_PERMISSIONS', res.permissions)
  177. } else {
  178. commit('SET_ROLES', ['ROLE_DEFAULT'])
  179. }
  180. commit('SET_NAME', username)
  181. commit('SET_NICKNAME', nickName)
  182. commit('SET_AVATAR', avatar)
  183. commit('SET_USERID', userId)
  184. commit('SET_TENANID', tenantId)
  185. commit('SET_PHONENUMBER', phonenumber)
  186. commit('SET_DEPTID', deptId)
  187. commit('SET_DEPNAME', deptName)
  188. resolve(res)
  189. }).catch(error => {
  190. reject(error)
  191. })
  192. })
  193. },
  194. // 退出系统
  195. LogOut({ commit, state }) {
  196. return new Promise((resolve, reject) => {
  197. logout(state.token).then(() => {
  198. commit('SET_TOKEN', '')
  199. commit('SET_ROLES', [])
  200. commit('SET_PERMISSIONS', [])
  201. removeToken()
  202. storage.clean()
  203. resolve()
  204. }).catch(error => {
  205. reject(error)
  206. })
  207. })
  208. }
  209. }
  210. }
  211. export default user