index.js 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157
  1. import Vue from 'vue'
  2. import Vuex from 'vuex'
  3. import api from "@/api/api"
  4. import MinCache from'@/common/util/MinCache.js'
  5. import { ACCESS_TOKEN,USER_NAME,USER_INFO,X_TENANT_ID } from "@/common/util/constants"
  6. import eventBus from '@/common/util/event-bus.js';
  7. Vue.use(Vuex)
  8. export default new Vuex.Store({
  9. state: {
  10. token: '',
  11. userid:'',
  12. username: '',
  13. realname: '',
  14. welcome: '',
  15. avatar: '',
  16. shopSelectedIds: []
  17. },
  18. mutations: {
  19. SET_TOKEN: (state, token) => {
  20. state.token = token
  21. },
  22. SET_NAME: (state, { username, realname, welcome }) => {
  23. state.username = username
  24. state.realname = realname
  25. state.welcome = welcome
  26. },
  27. SET_AVATAR: (state, avatar) => {
  28. state.avatar = avatar
  29. },
  30. },
  31. actions: {
  32. // 登录
  33. mLogin({ commit }, param) {
  34. return new Promise((resolve, reject) => {
  35. api.loginNew(param.phone,param.code).then(async response => {
  36. if(response.data.code ==200){
  37. const result = response.data.result
  38. const userInfo = result.userInfo
  39. const { userState, merchantId, passWord, name, ordinaryUserId, phone } = userInfo;
  40. if (userInfo.merchantId) {
  41. uni.setStorageSync(ACCESS_TOKEN, result.token);
  42. commit('SET_TOKEN', result.token)
  43. api.shopInfo(userInfo.merchantId).then(res => {
  44. let data = res.data.result
  45. if (data.localMerchantInfoExamine.status == 1) {
  46. uni.setStorageSync(USER_INFO, userInfo);
  47. commit('SET_AVATAR', userInfo.avatar)
  48. commit('SET_NAME', { username: userInfo.username, realname: userInfo.realname })
  49. resolve(response)
  50. } else {
  51. uni.navigateTo({
  52. url: `/pages/login/settled?loginType=${userState || ''}&merchantId=${merchantId || ''}&passWord=${param.code}&name=${name || ''}&ordinaryUserId=${ordinaryUserId || ''}&phone=${param.phone}`
  53. });
  54. }
  55. })
  56. } else {
  57. uni.navigateTo({
  58. url: `/pages/login/settled?loginType=${userState || ''}&merchantId=${merchantId || ''}&passWord=${param.code}&name=${name || ''}&ordinaryUserId=${ordinaryUserId || ''}&phone=${param.phone}`
  59. });
  60. }
  61. }else if(response.data.code == 501) {
  62. const msgParams ={
  63. msg: '当前手机号用户不存在,请先下载掌柜生活APP注册。',
  64. type: "1"
  65. }
  66. eventBus.emit('openPage',msgParams);
  67. }else if (response.data.code == 502){
  68. const msgParams ={
  69. msg: '账号异常,请联系客服解除异常。',
  70. type: "2",
  71. }
  72. eventBus.emit('openPage',msgParams);
  73. }
  74. }).catch(error => {
  75. console.log("catch===>response",response)
  76. reject(error)
  77. })
  78. })
  79. },
  80. //手机号登录
  81. PhoneLogin({ commit }, userInfo) {
  82. return new Promise((resolve, reject) => {
  83. api.phoneNoLogin(userInfo).then(response => {
  84. if(response.data.code ==200){
  85. const result = response.data.result
  86. const userInfo = result.userInfo
  87. uni.setStorageSync(ACCESS_TOKEN,result.token);
  88. uni.setStorageSync(USER_INFO,userInfo);
  89. commit('SET_TOKEN', result.token)
  90. commit('SET_NAME', { username: userInfo.username,realname: userInfo.realname})
  91. commit('SET_AVATAR', userInfo.avatar)
  92. resolve(response)
  93. }else{
  94. reject(response)
  95. }
  96. }).catch(error => {
  97. reject(error)
  98. })
  99. })
  100. },
  101. // 第三方登录
  102. ThirdLogin({ commit }, param) {
  103. return new Promise((resolve, reject) => {
  104. api.thirdLogin(param.token,param.thirdType,param.tenantId).then(response => {
  105. if(response.data.code =='200'){
  106. const result = response.data.result
  107. const userInfo = result.userInfo
  108. uni.setStorageSync(ACCESS_TOKEN,result.token);
  109. uni.setStorageSync(USER_INFO,userInfo);
  110. uni.setStorageSync(X_TENANT_ID,userInfo.loginTenantId);
  111. commit('SET_TOKEN', result.token)
  112. commit('SET_AVATAR', userInfo.avatar)
  113. commit('SET_NAME', { username: userInfo.username,realname: userInfo.realname })
  114. commit('SET_ID', userInfo.id)
  115. commit('SET_INFO', userInfo)
  116. commit('SET_TENANTID', userInfo.loginTenantId)
  117. resolve(response)
  118. }else{
  119. reject(response)
  120. }
  121. }).catch(error => {
  122. reject(error)
  123. })
  124. })
  125. },
  126. // 登出
  127. Logout({ commit, state }) {
  128. return new Promise((resolve) => {
  129. let logoutToken = state.token;
  130. commit('SET_TOKEN', '')
  131. uni.removeStorageSync(ACCESS_TOKEN)
  132. api.logout(logoutToken).then(() => {
  133. resolve()
  134. }).catch(() => {
  135. resolve()
  136. })
  137. })
  138. },
  139. },
  140. getters:{
  141. token: state => state.token,
  142. username: state => {state.userid=uni.getStorageSync(USER_INFO).username; return state.username},
  143. nickname: state => {state.userid=uni.getStorageSync(USER_INFO).realname; return state.user.realname},
  144. avatar: state => {state.userid=uni.getStorageSync(USER_INFO).avatar; return state.user.avatar},
  145. userid:state => {state.userid=uni.getStorageSync(USER_INFO).id; return state.userid},
  146. }
  147. })