import { wechatAuthLogin, mobileLogin, getAccessToken } from '@/services/api/auth.js' import { wxLogin } from '@/common/auth.js' import { setStorage } from '@/common/storage.js' import { objAssign } from '@/common/utils.js' const state = { // 用户信息 headImgUrl: '', mobile: '', nickName: '', openId: '', userId: 0, userIdentity: -1, // 用户类型 inviteUserId: '', // 分享者用户ID accessToken: '', // token } const mutations = { SET_USER_INFO: (state, userInfo) => { objAssign(state, userInfo) }, SET_INVITE_USER_ID: (state, id) => { state.inviteUserId = id }, SET_ACCESS_TOKEN: (state, token) => { state.accessToken = token } } const actions = { // 微信自动登录 async wxAutoLogin({ commit, state, dispatch }) { try { const code = await wxLogin() // 获取微信code const res = await wechatAuthLogin({ code }) // 微信自动登录 const data = JSON.parse(res.data) commit('SET_USER_INFO', data) setStorage('USER_INFO', data) dispatch('getAccessToken') // 获取token return res } catch (e) { commit('SET_LOGIN_FLAG', false) return Promise.reject(e) } }, // 手机号注册登录 async register({ commit }, resigterData) { try { const res = await mobileLogin(resigterData) const data = JSON.parse(res.data) commit('SET_USER_INFO', data) setStorage('USER_INFO', data) return res } catch (e) { return Promise.reject(e) } }, // 获取accessToken async getAccessToken({ commit }) { try { const res = await getAccessToken() commit('SET_ACCESS_TOKEN', res.data) return res } catch (e) { return Promise.reject(e) } } } export default { namespaced: true, state, mutations, actions }