user.js 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150
  1. import util from '@.mobile/plugin/axios/util'
  2. import constant from '@.mobile/plugin/axios/constant'
  3. import common from '@.mobile/plugin/axios/common'
  4. import apis from '@.mobile/api/apis'
  5. const state = {
  6. token: util.getToken(),
  7. name: '',
  8. avatar: '',
  9. roles: [],
  10. perms: []
  11. }
  12. const mutations = {
  13. SET_TOKEN: (state, token) => {
  14. state.token = token
  15. },
  16. SET_NAME: (state, name) => {
  17. state.name = name
  18. },
  19. SET_AVATAR: (state, avatar) => {
  20. state.avatar = avatar
  21. },
  22. SET_ROLES: (state, roles) => {
  23. state.roles = roles
  24. },
  25. SET_PERMS: (state, perms) => {
  26. state.perms = perms
  27. }
  28. }
  29. const actions = {
  30. // user login
  31. login({ commit }, userInfo) {
  32. const { username, password, validateCode, captchaId, url, checked } = userInfo
  33. return new Promise((resolve, reject) => {
  34. const postData = {
  35. username: username,
  36. password: password,
  37. code: validateCode,
  38. rememberMe: checked
  39. }
  40. if (captchaId) {
  41. postData.captchaId = captchaId
  42. }
  43. apis.login('api/ops', url, postData)
  44. .then(res => {
  45. if (res.data[constant.KEY_RESULT]) {
  46. const { data } = res
  47. const user = data[constant.KEY_USER]
  48. common.setUser(user)
  49. if (user && user.isInit === '1') {
  50. commit('SET_TOKEN', data[constant.KEY_TOKEN])
  51. util.setToken(data[constant.KEY_TOKEN])
  52. } else {
  53. reject({ isInit: '0' })
  54. }
  55. }
  56. resolve(res.data)
  57. })
  58. .catch((err, x) => {
  59. reject(err)
  60. })
  61. })
  62. },
  63. // user login
  64. login1({ commit }, userInfo) {
  65. const { username, password, validateCode, captchaId, url, checked } = userInfo
  66. return new Promise((resolve, reject) => {
  67. const postData = {
  68. userName: username,
  69. password: password,
  70. code: validateCode,
  71. rememberMe: checked
  72. }
  73. if (captchaId) {
  74. postData.captchaId = captchaId
  75. }
  76. apis.login('wx/auth', url, postData)
  77. .then(res => {
  78. console.log(res)
  79. if (res.data[constant.KEY_RESULT]) {
  80. console.log(res.data)
  81. const { data } = res
  82. const user = data[constant.KEY_USER]
  83. common.setUser(user)
  84. if (user) {
  85. commit('SET_TOKEN', data[constant.KEY_TOKEN])
  86. util.setToken(data[constant.KEY_TOKEN])
  87. } else {
  88. reject('登录失败,未获取到用户信息')
  89. }
  90. }
  91. resolve(res.data)
  92. })
  93. .catch((err, x) => {
  94. reject(err)
  95. })
  96. })
  97. },
  98. // user logout
  99. logout({ commit, state }) {
  100. return new Promise((resolve, reject) => {
  101. apis.logout('web', 'logout', '')
  102. .then(logout => {
  103. commit('SET_TOKEN', '')
  104. commit('SET_NAME', '')
  105. commit('SET_AVATAR', '')
  106. common.removeStorage(common.MenuKey())
  107. common.removeStorage(common.UserKey())
  108. common.removeStorage(common.BizKey())
  109. util.removeToken()
  110. resolve()
  111. })
  112. .catch(error => {
  113. reject(error)
  114. })
  115. })
  116. },
  117. cleanCache({ commit, state }) {
  118. return new Promise((resolve, reject) => {
  119. commit('SET_TOKEN', '')
  120. commit('SET_NAME', '')
  121. commit('SET_AVATAR', '')
  122. common.removeStorage(common.MenuKey())
  123. common.removeStorage(common.UserKey())
  124. common.removeStorage(common.BizKey())
  125. util.removeToken()
  126. resolve()
  127. })
  128. },
  129. // remove token
  130. resetToken({ commit }) {
  131. return new Promise(resolve => {
  132. commit('SET_TOKEN', '')
  133. localStorage.removeItem(constant.KEY_USER + common.currUserType())
  134. util.removeToken()
  135. resolve()
  136. })
  137. }
  138. }
  139. export default {
  140. namespaced: true,
  141. state,
  142. mutations,
  143. actions
  144. }