Files
shangfutong-ui/jeepay-ui-uapp-agent/pageApply/components/signing.vue
2024-05-23 14:39:33 +08:00

164 lines
4.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="box wx-open">
<view class="first-title">
<text>电子合同签约</text>
<view class="submit-btn" @tap="getSignInfo(true)">刷新</view>
</view>
<view class="tips">如需使用支付功能请完成以下签约和授权</view>
<view class="state">
<text>签约状态</text>
<view>{{ vdata.bizSignInfo.state || '异常[' + vdata.bizSignInfo.errInfo + ']' }}</view>
</view>
<template v-if="vdata.bizSignInfo.signUrl">
<view class="second-title">电子合同签约地址和二维码</view>
<view style="margin-top: 20rpx;white-space: pre-wrap; word-wrap: break-word; color: #3981ff" @click="toContract()">
{{ vdata.bizSignInfo.signUrl }}
</view>
<view style="display: flex;justify-content: center;margin-bottom: 20rpx">
<image :src="drawQRcode(vdata.bizSignInfo.signUrl)" class="wx-img" />
</view>
</template>
<view class="state" style="margin-top: 40rpx;">
<text style="white-space: nowrap; margin-right: 10rpx">商户确认状态</text>
<view>{{ vdata.wxOpenInfo.state || '异常[' + vdata.wxOpenInfo.errInfo + ']' }}</view>
</view>
<template v-if="vdata.wxOpenInfo.signUrl">
<view class="second-title">
<text>微信开户意愿确认</text>
<view class="submit-btn" @tap="getWxInfo(true)">刷新</view>
</view>
<view style="color:#666666;font-size: 25rpx;margin-top: 20rpx">商户联系人使用已绑定银行卡的微信扫下面的二维码:</view>
<view style="display: flex;justify-content: center;">
<image v-if="vdata.wxOpenInfo.imgType == 'qrContent'" :src="drawQRcode(vdata.wxOpenInfo.signUrl)" class="wx-img" />
<image v-else :src="'data:image/jpg;base64,' + vdata.wxOpenInfo.signUrl" mode="" class="wx-img" />
</view>
<view style="color:#666666;font-size: 25rpx;margin-top: 20rpx">(温馨提示:自助认证不限制谁来操作认证,但建议是商户联系人进行认证,以免后期需要扫码找不到微信认证管理员)</view>
</template>
</view>
</template>
<script setup>
import { ref, reactive, onMounted, inject } from 'vue'
import JeePayForm from '@/components/applyComponents/JeePayForm.vue' // 通用左右结构布局
import JeepayUpLoad from '@/components/JeepayUpLoad/JeepayUpLoad.vue' // 图片上传
import qrcode from '@/util/qrcode.js'
import { $getMchApplymentChannelSignInfo, $getMchApplymentWxOpenInfo } from '@/http/apiManager.js'
const channelInfo = inject('channelInfo')
onMounted(() => {
if (['2', '5'].includes(channelInfo.state)) {
getWxInfo()
getSignInfo()
}
})
const vdata = reactive({
bizSignInfo: {}, // 电子合同状态查询
wxOpenInfo: {}, // 微信开户意愿信息
isRefresh: false, // 是否点击了刷新按钮
})
// 电子合同状态查询
const getSignInfo = (flag = false) => {
vdata.isRefresh = flag
$getMchApplymentChannelSignInfo(channelInfo.applyId).then(({bizData}) => {
vdata.bizSignInfo = bizData
if (vdata.isRefresh) {
uni.showToast({title: '已刷新', icon: 'none'})
vdata.isRefresh = false
}
}).catch(err => vdata.isRefresh = false)
}
// 微信开户意愿查询
const getWxInfo = (flag = false) => {
vdata.isRefresh = flag
$getMchApplymentWxOpenInfo(channelInfo.applyId).then(({bizData}) => {
vdata.wxOpenInfo = bizData
if (vdata.isRefresh) {
uni.showToast({title: '已刷新', icon: 'none'})
vdata.isRefresh = false
}
}).catch(err => vdata.isRefresh = false)
}
// 跳转至电子合同页 盛付通 富友 会用到
const toContract = () => {
uni.navigateTo({ url: '../../components/contract?url=' + vdata.bizSignInfo.signUrl })
}
// 制作图片
const drawQRcode = url => {
return qrcode.drawImg(url, {
typeNumber: 4, // 密度
errorCorrectLevel: 'Q', // 纠错等级
size: 175, // 白色边框
})
}
</script>
<style scoped lang="less">
.flex {
display: flex;
justify-content: space-between;
}
.box {
height: auto;
transition: .3s;
position: relative;
border-radius: 20rpx;
background: #f5f6fc;
padding: 10rpx 40rpx;
box-sizing: border-box;
}
// 微信签约
.wx-open {
margin-top: 30rpx;
padding: 40rpx;
.first-title {
font-size: 28rpx;
color: #18191d;
font-weight: bold;
display: flex;
justify-content: space-between;
}
.tips {
font-size: 25rpx;
color: #7e7e80;
margin: 20rpx 0 40rpx;
}
.state {
margin-bottom: 30rpx;
display: flex;
justify-content: space-between;
}
.second-title {
font-size: 27rpx;
color: #000;
display: flex;
justify-content: space-between;
}
.wx-img {
width: 300rpx;
height: 300rpx;
margin: 30rpx 0 20rpx ;
}
}
.submit-btn {
border-radius: 0.3125rem;
background: #3981FF;
color: #fff;
padding: 0.15625rem 0.46875rem;
}
</style>