4 changed files with 131 additions and 3 deletions
@ -0,0 +1,101 @@ |
|||||
|
<template> |
||||
|
<view class="mask" v-if="show"> |
||||
|
<view class="content shadow"> |
||||
|
<view class="text-black text-bold text-lg margin-bottom-lg">健康码小程序</view> |
||||
|
<view class="text-df text-gray">为了您的正常使用</view> |
||||
|
<view class="text-df text-gray margin-bottom-lg">小程序需要获得您的基本公开信息</view> |
||||
|
|
||||
|
<button |
||||
|
@tap="getuserinfo" |
||||
|
class="text-purple" |
||||
|
open-type="getUserInfo" |
||||
|
plain |
||||
|
style="border: none;" |
||||
|
>极速登录</button> |
||||
|
</view> |
||||
|
</view> |
||||
|
</template> |
||||
|
|
||||
|
<script> |
||||
|
import { mapActions, mapState } from 'vuex'; |
||||
|
|
||||
|
export default { |
||||
|
data() { |
||||
|
return { show: false }; |
||||
|
}, |
||||
|
computed: { |
||||
|
...mapState('user', ['user']), |
||||
|
}, |
||||
|
|
||||
|
watch: { |
||||
|
// 登录以后 如果没有微信信息 |
||||
|
// 就显示本组件 |
||||
|
user(value) { |
||||
|
if (value) { |
||||
|
if (!value.wxInfo || !value.wxInfo.nickname) { |
||||
|
this.show = true; |
||||
|
} |
||||
|
} |
||||
|
}, |
||||
|
}, |
||||
|
|
||||
|
methods: { |
||||
|
...mapActions('user', ['updateUserInfo']), |
||||
|
|
||||
|
// 获取用户信息 |
||||
|
getuserinfo() { |
||||
|
this.show = false; |
||||
|
uni.getUserInfo({ |
||||
|
provider: 'weixin', |
||||
|
success: infoRes => { |
||||
|
const { |
||||
|
nickName, |
||||
|
avatarUrl, |
||||
|
city, |
||||
|
country, |
||||
|
gender, |
||||
|
language, |
||||
|
province, |
||||
|
} = infoRes.userInfo; |
||||
|
const params = { |
||||
|
nickname: nickName, |
||||
|
headImgUrl: avatarUrl, |
||||
|
city, |
||||
|
country, |
||||
|
sex: gender, |
||||
|
language, |
||||
|
province, |
||||
|
}; |
||||
|
this.updateUserInfo(params); |
||||
|
}, |
||||
|
}); |
||||
|
}, |
||||
|
}, |
||||
|
}; |
||||
|
</script> |
||||
|
|
||||
|
<style scoped> |
||||
|
.mask { |
||||
|
z-index: 9998; |
||||
|
position: fixed; |
||||
|
left: 0; |
||||
|
top: 0; |
||||
|
bottom: 0; |
||||
|
right: 0; |
||||
|
background: rgba(0, 0, 0, 0.2); |
||||
|
} |
||||
|
.content { |
||||
|
z-index: 9999; |
||||
|
position: absolute; |
||||
|
left: 50upx; |
||||
|
top: 50%; |
||||
|
box-sizing: border-box; |
||||
|
width: 650upx; |
||||
|
padding: 20px; |
||||
|
font-size: 14px; |
||||
|
transform: translate3d(0, -50%, 0); |
||||
|
background: #fff; |
||||
|
border-radius: 20upx; |
||||
|
text-align: center; |
||||
|
} |
||||
|
</style> |
Loading…
Reference in new issue