import { mapMutations, mapState } from 'vuex'; import { waitTokenRequest } from '@/utils/cacheAndRequest'; export default { computed: mapState('user', ['token', 'user']), methods: { ...mapMutations('user', ['setUser']), // 获取授权 openAuth() { if (this.user && this.user.wxInfo && this.user.wxInfo.nickname) return; // 用户信息里有微信信息就不用再获取了 if (this.token) { this.updateUserInfo(); } else { waitTokenRequest(this.updateUserInfo); } }, // 弹出授权框 // 用户允许后 提交微信用户信息 updateUserInfo() { /* #ifdef MP-WEIXIN */ uni.getUserProfile({ desc: 'TALL仅需要获取您的基本用户信息', success: async res => { const { avatarUrl, city, country, gender, language, nickName, province } = res.userInfo; const data = await this.$u.api.updateUserInfo({ city, country, headImgUrl: avatarUrl, language, nickname: nickName, province, sex: gender, }); console.log('data: ', data); const { user } = this; user.wxInfo = data; this.setUser(user); }, fail: error => { console.log('error: ', error); }, }); /* #endif */ }, }, };