340 lines
9.3 KiB
Vue
340 lines
9.3 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),
|
||
requestType: "application/x-www-form-urlencoded",
|
||
};
|
||
// _this.$request.$webPost('WebAPI_Push/WeChat/BusinessLicensed',arr).then(function (rs) {
|
||
_this.$request.$get("WeChat_BusinessLicensed", arr).then(function (rs) {
|
||
uni.hideLoading();
|
||
console.log("rs", rs);
|
||
|
||
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>
|