13 changed files with 156 additions and 23 deletions
@ -0,0 +1,48 @@ |
|||
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 */ |
|||
}, |
|||
}, |
|||
}; |
Loading…
Reference in new issue