user.js 3.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. import { userService } from '@/services/index.js'
  2. import authorize from '@/common/authorize.js'
  3. import { msg as showMsg } from '@/common/util.js'
  4. import { switchTabTo } from '@/common/utilsTools.js'
  5. const state = {
  6. userId: '',
  7. userIdentity: '',
  8. userInfo: null,
  9. hasLogin: false,
  10. isWxAuthorize: false,
  11. inviteUserId: '',
  12. }
  13. const mutations = {
  14. // 用户登录
  15. LOGIN(state, data) {
  16. const userInfo = JSON.parse(data)
  17. state.userInfo = userInfo
  18. state.hasLogin = true
  19. state.isWxAuthorize = true
  20. state.userId = userInfo.userId
  21. state.userIdentity = userInfo.userIdentity
  22. uni.setStorageSync('openId', userInfo.openId)
  23. },
  24. // 退出登录
  25. LOGIN_OUT(state, data) {
  26. const userInfo = JSON.parse(data) || null
  27. state.userInfo = userInfo
  28. state.hasLogin = false
  29. state.isWxAuthorize = false
  30. state.userId = ''
  31. state.userIdentity = ''
  32. userInfo && uni.setStorageSync('openId', userInfo.openId)
  33. },
  34. // 设置邀请用户id
  35. setInviteUserId(state, id){
  36. state.inviteUserId = parseInt(id)
  37. }
  38. }
  39. const actions = {
  40. // 微信授权登录
  41. async wechatlogin({ commit, dispatch, state }) {
  42. // 获取code
  43. const code = await authorize.getCode('weixin')
  44. userService.UserWechatAuthorLogin({ code })
  45. .then(response => {
  46. console.log('登录成功')
  47. commit('LOGIN', response.data)
  48. dispatch('cart/getCartNumber', state.userId, { root: true }) // 获取购物车数量信息
  49. dispatch('coupon/getCouponActivity', null, { root: true }) // 获取优惠券弹窗信息
  50. dispatch('coupon/initReceiveCouponCount', null, { root: true }) // 获取已领取优惠券数量
  51. })
  52. .catch(error => {
  53. console.log('游客')
  54. dispatch('coupon/getCouponActivity', null, { root: true }) // 游客也要获取优惠券弹窗信息
  55. commit('LOGIN_OUT', error.data)
  56. })
  57. },
  58. // 手机号注册登录
  59. customLogin({ commit, state, dispatch }, params) {
  60. params.shareUserId = state.inviteUserId
  61. userService.UserMobileLogin(params)
  62. .then(response => {
  63. // 保存用户信息
  64. commit('LOGIN', response.data)
  65. dispatch('cart/getCartNumber', state.userId, { root: true }) // 获取购物车数量信息
  66. dispatch('coupon/getCouponActivity', null, { root: true }) // 获取优惠券弹窗信息
  67. dispatch('coupon/initReceiveCouponCount', null, { root: true }) // 获取已领取优惠券数量
  68. // 登录成功提示
  69. showMsg('登录成功', 1500, false, 'success')
  70. setTimeout(() => {
  71. switchTabTo('/pages/tabBar/index/index')
  72. }, 1500)
  73. })
  74. .catch(error => {
  75. showMsg(error.msg, 2000)
  76. })
  77. }
  78. }
  79. export default {
  80. namespaced: true,
  81. state,
  82. mutations,
  83. actions
  84. }