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