Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.

188 rindas
4.2KB

  1. import { login, getInfo, getUserMsg, getUsers, addUsers, removeUsers, updateUsers, updatePassword, getNavMenus } from '@/api/user'
  2. import { getToken, setToken, removeToken } from '@/utils/auth'
  3. import { resetRouter } from '@/router'
  4. const getDefaultState = () => {
  5. return {
  6. token: getToken(),
  7. name: '',
  8. avatar: '',
  9. userInfo: '',
  10. createState: false,
  11. userData: '',
  12. userMsg: '',
  13. navMenuData: ''
  14. }
  15. }
  16. const state = getDefaultState()
  17. const mutations = {
  18. RESET_STATE: (state) => {
  19. Object.assign(state, getDefaultState())
  20. },
  21. SET_TOKEN: (state, token) => {
  22. state.token = token
  23. },
  24. SET_NAME: (state, name) => {
  25. state.name = name
  26. },
  27. SET_AVATAR: (state, avatar) => {
  28. state.avatar = avatar
  29. },
  30. SET_USER_INFO: (state, userInfo) => {
  31. state.userInfo = userInfo
  32. },
  33. SET_CREATE_STATE: (state, payload) => {
  34. state.createState = payload
  35. },
  36. SET_USER_DATA: (state, payload) => {
  37. state.userData = payload
  38. },
  39. SET_USER_MSG: (state, payload) => {
  40. state.userMsg = payload
  41. },
  42. SET_NAV_MENU_DATA: (state, payload) => {
  43. state.navMenuData = payload
  44. }
  45. }
  46. const actions = {
  47. // user login
  48. login({ commit }, userInfo) {
  49. const { username, password, captcha, uuid } = userInfo
  50. return new Promise((resolve, reject) => {
  51. login({ username: username.trim(), password, captcha, uuid }).then(response => {
  52. commit('SET_TOKEN', response.token)
  53. setToken(response.token)
  54. resolve()
  55. }).catch(error => {
  56. reject(error)
  57. })
  58. })
  59. },
  60. // get user info
  61. getInfo({ commit, state }) {
  62. return new Promise((resolve, reject) => {
  63. getInfo(state.token).then(response => {
  64. const { user } = response
  65. if (!user) {
  66. reject('验证失败,请重新登录.')
  67. }
  68. const { username, avatar } = user
  69. commit('SET_NAME', username)
  70. commit('SET_AVATAR', avatar)
  71. commit('SET_USER_INFO', user)
  72. resolve(user)
  73. }).catch(error => {
  74. reject(error)
  75. })
  76. })
  77. },
  78. // user logout
  79. logout({ commit, state }) {
  80. return new Promise((resolve, reject) => {
  81. removeToken() // must remove token first
  82. resetRouter()
  83. commit('RESET_STATE')
  84. resolve()
  85. // logout(state.token).then(() => {
  86. // }).catch(error => {
  87. // reject(error)
  88. // })
  89. })
  90. },
  91. // remove token
  92. resetToken({ commit }) {
  93. return new Promise(resolve => {
  94. removeToken() // must remove token first
  95. commit('RESET_STATE')
  96. resolve()
  97. })
  98. },
  99. fetchUserList({ commit }, option) {
  100. return new Promise((resolve, reject) => {
  101. getUsers(option).then((res) => {
  102. const { page } = res
  103. commit('SET_USER_DATA', page)
  104. resolve()
  105. }).catch((err) => {
  106. reject(err)
  107. })
  108. })
  109. },
  110. fetchUserMsg({ commit }, userId) {
  111. return new Promise((resolve, reject) => {
  112. getUserMsg(userId).then((res) => {
  113. const { user } = res
  114. commit('SET_USER_MSG', user)
  115. resolve()
  116. }).catch((err) => {
  117. reject(err)
  118. })
  119. })
  120. },
  121. saveUsers({ commit }, userMsg) {
  122. return new Promise((resolve, reject) => {
  123. addUsers(userMsg).then(res => {
  124. resolve(res)
  125. }).catch(err => {
  126. reject(err)
  127. })
  128. })
  129. },
  130. removeUsers({ commit }, userId) {
  131. return new Promise((resolve, reject) => {
  132. removeUsers(userId).then(res => {
  133. resolve(res)
  134. }).catch(err => {
  135. reject(err)
  136. })
  137. })
  138. },
  139. updateUsers({ commit }, userMsg) {
  140. return new Promise((resolve, reject) => {
  141. updateUsers(userMsg).then(res => {
  142. resolve(res)
  143. }).catch(err => {
  144. reject(err)
  145. })
  146. })
  147. },
  148. updatePassword({ commit }, pass) {
  149. return new Promise((resolve, reject) => {
  150. updatePassword(pass).then(res => {
  151. resolve(res)
  152. }).catch(err => {
  153. reject(err)
  154. })
  155. })
  156. },
  157. fetchNavMenus({ commit }) {
  158. return new Promise((resolve, reject) => {
  159. getNavMenus().then((res) => {
  160. const { menuList } = res
  161. commit('SET_NAV_MENU_DATA', menuList)
  162. resolve()
  163. }).catch((err) => {
  164. reject(err)
  165. })
  166. })
  167. }
  168. }
  169. export default {
  170. namespaced: true,
  171. state,
  172. mutations,
  173. actions
  174. }