95 lines
2.6 KiB
JavaScript

import storage from '@/utils/storage'
import * as LoginApi from '@/api/login'
import * as UserApi from '@/api/user'
const user = {
state: {
token: '',
buyerId: null,
flag: null,
},
mutations: {
SET_USER_INFO: (state, value) => {
state.token = value.token
state.buyerId = value.buyerId
state.flag = value.flag
}
},
actions: {
// 用户登录 (普通登录: 输入手机号和验证码)
Login({ commit }, data) {
return new Promise((resolve, reject) => {
LoginApi.login({ form: data })
.then(response => {
const result = response.data
storage.set('user_info', result.buyer)
commit('SET_USER_INFO', result.buyer)
resolve(response)
})
.catch(reject)
})
},
// 微信小程序一键授权登录 (获取用户基本信息)
LoginMpWx({ commit }, data) {
return new Promise((resolve, reject) => {
// LoginApi.loginMpWx({ form: data }, { isPrompt: true })
LoginApi.quickLogin(data)
.then(response => {
const result = response.data
storage.set('user_info', result.buyer)
commit('SET_USER_INFO', result.buyer)
resolve(response)
})
.catch(reject)
})
},
// 修改个人信息(头像昵称)
UpdateUserInfo({ commit }, data) {
if (data.token) {
storage.set('user_info', data)
commit('SET_USER_INFO', data)
} else {
UserApi.apiUpdateUserInfo(data)
.then(response => {
const { token, buyerId, flag } = this.state
commit('SET_USER_INFO', { token, buyerId, flag, ...data })
resolve(response)
})
}
},
// 微信小程序一键授权登录 (授权手机号)
LoginMpWxMobile({ commit }, data) {
return new Promise((resolve, reject) => {
LoginApi.loginMpWxMobile({ form: data }, { isPrompt: true })
.then(response => {
const result = response.data
uni.setStorageSync('user_info', result.buyer)
commit('SET_USER_INFO', result.buyer)
resolve(response)
})
.catch(reject)
})
},
// 退出登录
Logout({ commit }, data) {
const store = this
return new Promise((resolve, reject) => {
if (store.getters.buyerId > 0) {
storage.remove('user_info')
commit('SET_USER_INFO', { token: '', flag: '', buyerId: '' })
resolve()
}
})
}
}
}
export default user