wechat_yxcl/pages/register/register.vue
2023-09-07 18:43:58 +08:00

310 lines
8.6 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<view class="content">
<view>
<image src="https://eshangtech.com/ShopICO/yxcl-register-pht.png" mode="aspectFit"></image>
<view v-if="showBtn">
<view class="desc" v-if="!user.WeChat_UserId">
<!-- <view class="desc">申请获取你的公开信息(昵称头像)</view> -->
<button type="primary" class="btn" open-type="getUserInfo" @getuserinfo="bindGetUserInfo">微信授权</button>
</view>
<view class="desc" v-else>
<button type="primary" class="btn" open-type="getPhoneNumber" @getphonenumber="getPhoneNumber">快速登录账号</button>
</view>
</view>
</view>
<view class="login-tip-text">
该小程序仅供企业内部人员登录使用<br/>您的手机号是核实身份的唯一凭证
</view>
<view class="privacyMeng" v-if="showPrivacy"></view>
<view class="privacy" v-if="showPrivacy">
<view class="privacyContent">
<p class="contentTitle">用户隐私保护提示</p>
<view class="contentWord">
感谢您使用本产品您使用本产品前应当仔细阅读并同意<text class="tips" @click="handleOpenPrivacyContract">小程序隐私保护指引</text>
当您点击同意并开始使用产品服务时即表示您已理解并同意该条款内容该条款将对您产生法律约束如您拒绝将无法更好的体验产品
</view>
</view>
<view class="btnList">
<button class="btns noAgree" @click="handleRefuse">拒绝</button>
<button class="btns agree" id="agree-btn3" open-type="agreePrivacyAuthorization" @agreeprivacyauthorization="handleAgreePrivacyAuthorization">同意</button>
</view>
</view>
</view>
</template>
<script>
import { mapActions, mapGetters,mapMutations } from 'vuex'
export default {
data() {
return {
shouldNavback: false,
showPrivacy:false,// 隐私弹框的东西
showBtn:false,// 隐私权限有了之后 就会出来这俩按钮
}
},
computed:{
...mapGetters({
'user':'getUser',
})
},
onLoad(option) {
let _this = this
wx.getPrivacySetting({
success: res=>{
console.log('res123123',res)
if (res.needAuthorization){
_this.showPrivacy = true
}else{
_this.showBtn = true
// if (this.user.WeChat_MiniProToken) {
// this.memberLogin()
// } else {
// this.getLoginCode()
// }
}
}
})
if(option.source=='detail'){
this.shouldNavback = true
}
},
methods: {
...mapActions(['updateUser']),
...mapMutations(['setUser']),
// 打开隐私协议页面
handleOpenPrivacyContract(){
wx.openPrivacyContract({
success: (success) => {
console.log('success',success)
}, // 打开成功
fail: () => {}, // 打开失败
complete: () => {}
})
},
// 点击了同意
handleAgreePrivacyAuthorization(e){
console.log('e1',e)
this.showPrivacy = false
this.showBtn = true
},
// 点击了拒绝
handleRefuse(){
this.showPrivacy = false
},
// // 拿到用户信息
// handleGetUserInfo(e){
// console.log('e2',e)
// let _this = this
// let user = _this.user
// if (e.mp.detail) {
// uni.showLoading({
// title:'正在加载...',
// mask:true
// })
// const res = e.mp.detail
// console.log('res',res)
// let arr = {
// encryptedData: encodeURIComponent(res.encryptedData),
// iv: encodeURIComponent(res.iv),
// }
// // _this.$request.$webPost('WebAPI_Push/WeChat/BusinessLicensed',arr).then(function (rs) {
// _this.$request.$get('WeChat_BusinessLicensed',arr).then(function (rs) {
// console.log('rs',rs)
// uni.hideLoading()
// if(rs.Result_Code==100){
// let newUser = rs.Result_Data
// newUser.WeChat_MiniProToken = _this.user.WeChat_MiniProToken
// _this.setUser(newUser)
// if(newUser.Membership_Phone) {
// _this.updateUser(newUser)
// _this.$util.toNextRoute('switchTab', '/pages/index/index')
// // uni.reLaunch({url: '/pages/index/index'})
// }else{
//
// }
// _this.$forceUpdate()
// }else{
// uni.showToast({
// title: rs.ResultDesc,
// icon: 'none',
// duration:2000
// })
// }
// })
// }
// },
getPhoneNumber (e) {
console.log(e)
uni.showLoading({
title:'正在加载...',
mask:true
})
let _this = this
let _data = e.mp.detail
let user = _this.user
let arr = {
encryptedData: encodeURIComponent(_data.encryptedData),
iv: encodeURIComponent(_data.iv)
}
// _this.$request.$webPost('WebAPI_Push/WeChat/BusinessPhone',arr).then(function (rs) {
_this.$request.$get('WeChat_BusinessPhone',arr).then(function (rs) {
console.log('rs',rs)
uni.hideLoading()
if (rs.Result_Code === 100) {
_this.setUser(rs.Result_Data)
_this.updateUserFn(rs.Result_Data)
_this.$util.toNextRoute('switchTab', '/pages/index/index')
// uni.switchTab({url: '/pages/index/index'})
} else {
uni.showToast({title: rs.Result_Desc || '服务器错误,请联系管理员。', icon: 'none'})
}
})
},
async updateUserFn(data) {
this.updateUser(data)
},
bindGetUserInfo (e) { // 申请权限
console.log('e',e)
let _this = this
let user = _this.user
if (e.mp.detail) {
uni.showLoading({
title:'正在加载...',
mask:true
})
const res = e.mp.detail
let arr = {
encryptedData: encodeURIComponent(res.encryptedData),
iv: encodeURIComponent(res.iv),
}
// _this.$request.$webPost('WebAPI_Push/WeChat/BusinessLicensed',arr).then(function (rs) {
_this.$request.$get('WeChat_BusinessLicensed',arr).then(function (rs) {
uni.hideLoading()
if(rs.Result_Code==100){
let newUser = rs.Result_Data
newUser.WeChat_MiniProToken = _this.user.WeChat_MiniProToken
_this.setUser(newUser)
if(newUser.Membership_Phone) {
_this.updateUser(newUser)
_this.$util.toNextRoute('switchTab', '/pages/index/index')
// uni.reLaunch({url: '/pages/index/index'})
}else{
}
_this.$forceUpdate()
}else{
uni.showToast({
title: rs.ResultDesc,
icon: 'none',
duration:2000
})
}
})
}
}
},
onUnload() {
this.$util.addUserBehavior()
},
}
</script>
<style scoped lang="scss">
.content {
display: flex;
flex-direction: column;
align-items: center;
justify-content: space-between;
height: 100vh;
box-sizing: border-box;
background-color: #fff;
padding-top: 60rpx;
}
image {
width: 624rpx;
height: 579rpx;
}
.btn {
margin-top: 84rpx;
width: 580rpx;
font-size: 28rpx;
}
.login-tip-text {
position: sticky;
bottom: 120rpx;
left: 0;
width: 580rpx;
z-index: 99;
text-align: center;
font-size: 26rpx;
color: #888;
}
.privacyMeng{
position: fixed;
top: 0;
left: 0;
width: 100vw;
height: 100vh;
background: rgba(0,0,0,0.3);
z-index: 999998;
}
.privacy{
position: fixed;
bottom: 0;
width: 100vw;
box-sizing: border-box;
padding: 40rpx 30rpx;
z-index: 999999;
border-top-right-radius: 24px;
border-top-left-radius: 24px;
background: #fff;
.privacyContent{
.contentTitle{
font-size: 48rpx;
font-family: Source Han Sans CN-Bold, Source Han Sans CN;
font-weight: bold;
color: #000000;
line-height: 56rpx;
}
.contentWord{
margin-top: 32rpx;
text-indent: 2em;
.tips {
font-size: 28rpx;
font-family: Source Han Sans CN-Normal, Source Han Sans CN;
font-weight: 400;
color: #8BC21F;
line-height: 33rpx;
}
}
}
.btnList{
display: flex;
justify-content: space-evenly;
align-items: center;
margin-top: 48rpx;
.btns{
display: inline-block;
padding: 0 90rpx;
border-radius: 15rpx;
}
.noAgree{
background: rgb(242,242,242);
color: rgb(26,187,107);
font-weight: 600;
}
.agree{
background: rgb(26,187,107);
color: #fff;
font-weight: 600;
}
}
}
</style>