index.js 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144
  1. /*
  2. * @Author: liuzhenlin 461480418@qq.ocm
  3. * @Date: 2023-01-19 16:03:20
  4. * @LastEditors: liuzhenlin
  5. * @LastEditTime: 2023-01-20 10:23:22
  6. * @Description: file content
  7. * @FilePath: \crm\store\index.js
  8. */
  9. import Vue from 'vue'
  10. import Vuex from 'vuex'
  11. import userApi from '../api/system/user'
  12. import to from 'await-to-js'
  13. Vue.use(Vuex)
  14. const store = new Vuex.Store({
  15. state: {
  16. token: '', //用户token
  17. userId: '',
  18. username: '',
  19. nickName: '',
  20. postName:'',
  21. avatar: '',
  22. followPageDetail: {}, //跟进页面的客户/项目信息
  23. },
  24. getters: {
  25. followPageDetail: (state) => state.followPageDetail,
  26. userId: (state) => state.userId,
  27. token: (state) => state.token,
  28. username: (state) => state.username,
  29. nickName: (state) => state.nickName,
  30. postName:(state) => state.postName,
  31. avatar: (state) => state.avatar,
  32. },
  33. //mutations定义同步操作的方法
  34. mutations: {
  35. /**
  36. * @description 设置token
  37. * @param {*} state
  38. * @param {*} token
  39. */
  40. setDetails(state, info) {
  41. state.followPageDetail = info
  42. },
  43. /**
  44. * @description 设置token
  45. * @param {*} state
  46. * @param {*} token
  47. */
  48. setToken(state, token) {
  49. state.token = token
  50. uni.setStorageSync('opms_token', token)
  51. },
  52. /**
  53. * @description 设置用户id
  54. * @param {*} state
  55. * @param {*} userId
  56. */
  57. setUserId(state, userId) {
  58. state.userId = userId
  59. },
  60. /**
  61. * @description 设置用户名字
  62. * @param {*} state
  63. * @param {*} username
  64. */
  65. setUsername(state, username) {
  66. state.username = username
  67. },
  68. /**
  69. * @description
  70. * @param {*} state
  71. * @param {*} nickName
  72. */
  73. setNickName(state, nickName) {
  74. state.nickName = nickName
  75. },
  76. setPostName(state, postName) {
  77. state.postName = postName
  78. },
  79. /**
  80. * @description 设置用头像
  81. * @param {*} state
  82. * @param {*} avatar
  83. */
  84. setAvatar(state, avatar) {
  85. state.avatar = avatar
  86. },
  87. },
  88. actions: {
  89. /**
  90. * @description 登录
  91. * @param {*} { commit }
  92. * @param {*} userInfo
  93. */
  94. async login({ commit, dispatch }, userInfo) {
  95. const [err, res] = await to(userApi.login(userInfo))
  96. if (err) return
  97. uni.showToast({
  98. title: '登录成功',
  99. icon: 'none',
  100. complete: async() => {
  101. commit('setToken', res.data.token)
  102. uni.reLaunch({
  103. url: '/pages/home/index',
  104. })
  105. await dispatch('getUserInfo')
  106. },
  107. })
  108. },
  109. /**
  110. * @description 获取用户信息接口
  111. * @param {*} { commit, dispatch, state }
  112. * @returns
  113. */
  114. async getUserInfo({ commit }) {
  115. const [err, res] = await to(userApi.getUserInfo())
  116. if (err) return
  117. const { id, userName, nickName, avatar, postName } = res.data.entity
  118. if (id) commit('setUserId', id)
  119. if (userName) commit('setUsername', userName)
  120. if (nickName) commit('setNickName', nickName)
  121. if (postName) commit('setPostName', nickName)
  122. if (avatar) commit('setAvatar', avatar)
  123. },
  124. /**
  125. * @description 退出登录
  126. * @param {*} { dispatch }
  127. */
  128. async logout({ dispatch }) {
  129. await userApi.logout()
  130. await dispatch('resetAll')
  131. },
  132. /**
  133. * @description 重置token、roles、permission、router、tabsBar等
  134. * @param {*} { commit, dispatch }
  135. */
  136. async resetAll({ commit }) {
  137. commit('setUsername', '游客')
  138. commit('setAvatar', 'https://i.gtimg.cn/club/item/face/img/2/15922_100.gif')
  139. commit('setToken', '')
  140. uni.removeStorageSync('opms_token')
  141. },
  142. },
  143. })
  144. export default store