wechat_yxcl/pages/register/register.vue
2023-03-27 17:18:01 +08:00

154 lines
3.8 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 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 class="login-tip-text">
该小程序仅供企业内部人员登录使用<br/>您的手机号是核实身份的唯一凭证
</view>
</view>
</template>
<script>
import { mapActions, mapGetters,mapMutations } from 'vuex'
export default {
data() {
return {
shouldNavback: false,
}
},
computed:{
...mapGetters({
'user':'getUser',
})
},
onLoad(option) {
if(option.source=='detail'){
this.shouldNavback = true
}
},
methods: {
...mapActions(['updateUser']),
...mapMutations(['setUser']),
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) {
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) { // 申请权限
let _this = this
let user = _this.user
if (e.mp.detail) {
uni.showLoading({
title:'正在加载...',
mask:true
})
uni.getUserInfo({
success (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) {
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>
.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;
}
</style>