311 lines
8.7 KiB
Vue
311 lines
8.7 KiB
Vue
<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>-->
|
||
<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.addUserBehaviorNew()
|
||
},
|
||
}
|
||
</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>
|