[内网]文化云交易前端H5
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

110 lines
3.0 KiB

import { ACCESS_TOKEN, ACCOUNT_ID } from '@/store/mutation-types'
import storage from '@/utils/storage'
import * as LoginApi from '@/api/login'
// 登陆成功后执行
const loginSuccess = (commit, { token, user }, userObj = {}) => {
// 过期时间30天
const expiryTime = 30 * 86400
// 保存tokne和userId到缓存
storage.set(ACCOUNT_ID, user.accountId, expiryTime)
uni.setStorageSync("accountId",user.accountId)
storage.set(ACCESS_TOKEN, token, expiryTime)
storage.set("cuser",user)
storage.set("isliCode",userObj.isliCode)
let userType = user.userType
if (userType == "个人") {
userType = 0
} else if (userType == "企业") {
userType = 1
} else if (userType == "服务商") {
userType = 2
}
storage.set("userType",userType)
storage.set("Merchant_id",'910000198') //商户id
// 记录到store全局变量
commit('SET_TOKEN', token)
commit('SET_ACCOUNT_ID', user.accountId)
}
const user = {
state: {
// 用户认证token
token: '',
// 用户ID
accountId: null
},
mutations: {
SET_TOKEN: (state, value) => {
state.token = value
},
SET_ACCOUNT_ID:(state,value)=>{
state.accountId = value
}
},
actions: {
// 用户登录(普通登录: 输入手机号和验证码)
Login({ commit }, data) {
return new Promise((resolve, reject) => {
LoginApi.login(data)
.then(response => {
console.log("login ret:",response)
const result = response.data
console.log("user rest:",result)
let userObj = JSON.parse(decodeURIComponent(escape(window.atob(result.token.split(".")[1].replace(/-/g, "+").replace(/_/g, "/")))));
loginSuccess(commit, result, userObj)
resolve(response)
})
.catch(reject)
})
},
// 微信小程序一键授权登录(获取用户基本信息)
LoginMpWx({ commit }, data) {
return new Promise((resolve, reject) => {
LoginApi.loginMpWx({ form: data }, { isPrompt: false })
.then(response => {
const result = response.data
loginSuccess(commit, result)
resolve(response)
})
.catch(reject)
})
},
// 微信小程序一键授权登录(授权手机号)
LoginMpWxMobile({ commit }, data) {
return new Promise((resolve, reject) => {
LoginApi.loginMpWxMobile({ form: data }, { isPrompt: false })
.then(response => {
const result = response.data
loginSuccess(commit, result)
resolve(response)
})
.catch(reject)
})
},
// 退出登录
Logout({ commit }, data) {
const store = this
return new Promise((resolve, reject) => {
if (store.getters.accountId > 0) {
// 删除缓存中的tokne和userId
storage.remove(ACCOUNT_ID)
storage.remove(ACCESS_TOKEN)
// 记录到store全局变量
commit('SET_TOKEN', '')
commit('SET_ACCOUNT_ID', null)
resolve()
}
})
}
}
}
export default user