shortPlay-mini/store/index.js

45 lines
821 B
JavaScript

import Vue from 'vue'
import Vuex from 'vuex'
import {
loginByOpenid
} from '@/api/index'
Vue.use(Vuex)
const store = new Vuex.Store({
state: {
token: uni.getStorageSync("token") || '',
userInfo: {},
},
mutations: {
setToken(state, token) {
state.token = token;
uni.setStorageSync("token", token)
},
setUserInfo(state, userInfo) {
console.log(userInfo);
state.token = userInfo.openId;
uni.setStorageSync("token", userInfo.openId);
state.userInfo = userInfo;
},
},
actions: {
async getUserInfo({
commit,
state
}) {
if(!state.token) {
return
}
const res = await loginByOpenid({openid: state.token})
if(res.success) {
commit('setUserInfo', res.data);
} else {
commit('setToken', '')
}
}
}
})
export default store