shangfutong-ui/jeepay-ui-uapp-agent/pageApply/channel/utmpay/utmpay.vue

238 lines
11 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 v-if="!isDisable">
<uni-collapse ref="collapse">
<uni-collapse-item :show-animation="false" title="基础信息" class="coll-title" :open="true">
<view class="content">
<JeePayForm text="商户类型" >
<radio-group class="radio-group" @change="publicSelect($event, 'merchantType')" >
<label class="radio"><radio value="2" :checked="applyDetailInfo.merchantType == '2'" />个体工商户</label>
<label class="radio"><radio value="3" :checked="applyDetailInfo.merchantType == '3'" />企业</label>
</radio-group>
</JeePayForm>
<JeePayForm text="执照类型" >
<radio-group class="radio-group" @change="publicSelect($event, 'businessLicenseType')" >
<label class="radio"><radio value="00" :checked="applyDetailInfo.businessLicenseType == '00'" />统一社会信用代码证号(三证合一)</label>
<label class="radio"><radio value="01" :checked="applyDetailInfo.businessLicenseType == '01'" />营业执照(非三证合一)</label>
<label class="radio"><radio value="02" :checked="applyDetailInfo.businessLicenseType == '02'" />其他</label>
</radio-group>
</JeePayForm>
<JeePayForm text="营业执照图片">
<JeepayUpLoad ocrFlag="license" :imgUrl="applyDetailInfo.licenseImg" @uploadSuccess="uploadSuccess($event, 'licenseImg')" @clear="clear('licenseImg')" />
</JeePayForm>
<JeePayForm text="营业执照编号" v-model:value="applyDetailInfo.licenseNo" />
<JeePayForm text="法人姓名" v-model:value="applyDetailInfo.legalPerson" />
<JeePayForm text="用户名称" v-model:value="applyDetailInfo.mchFullName" />
<JeePayForm text="商户简称" v-model:value="applyDetailInfo.mchShortName" />
<JeePayForm text="法人身份证人像面照">
<JeepayUpLoad ocrFlag="idCard" :imgUrl="applyDetailInfo.idcard1Img" @uploadSuccess="uploadSuccess($event, 'idcard1Img')" @clear="clear('idcard1Img')" />
</JeePayForm>
<JeePayForm text="法人身份证国徽面照片">
<JeepayUpLoad ocrFlag="idCard" :imgUrl="applyDetailInfo.idcard2Img" @uploadSuccess="uploadSuccess($event, 'idcard2Img')" @clear="clear('idcard2Img')" />
</JeePayForm>
<JeePayForm text="联系人身份证姓名" v-model:value="applyDetailInfo.idcardName" />
<JeePayForm text="联系人身份证号" v-model:value="applyDetailInfo.idcardNo" />
<JeePayForm text="商户联系人手机号" v-model:value="applyDetailInfo.contactPhone" />
<JeePayForm text="商户联系人邮箱" v-model:value="applyDetailInfo.contactEmail" />
</view>
</uni-collapse-item>
<uni-collapse-item :show-animation="false" title="经营信息" class="coll-title">
<view class="content">
<JeePayForm text="经营类目" >
<jeeDataPicker :code="codeBack.mccCode" :localdata="mcc" @change="publicSelect($event, 'mccCode')" paramType="last" />
</JeePayForm>
<JeePayForm text="商户地理位置选择省市县" >
<jeeDataPicker :code="codeBack.areaCode" :localdata="address" @change="publicSelect($event, 'areaCode')" paramType="arr" />
</JeePayForm>
<JeePayForm text="商户经营地址" v-model:value="applyDetailInfo.address" />
<JeePayForm text="客服电话" v-model:value="applyDetailInfo.customerPhone" />
<JeePayForm text="门头照">
<JeepayUpLoad :imgUrl="applyDetailInfo.storeOuterImg" @uploadSuccess="uploadSuccess($event, 'storeOuterImg')" @clear="clear('storeOuterImg')" />
</JeePayForm>
<JeePayForm text="店内环境照">
<JeepayUpLoad :imgUrl="applyDetailInfo.storeInnerImg" @uploadSuccess="uploadSuccess($event, 'storeInnerImg')" @clear="clear('storeInnerImg')" />
</JeePayForm>
</view>
</uni-collapse-item>
<uni-collapse-item :show-animation="false" title="账户信息" class="coll-title">
<view class="content">
<JeePayForm text="账户类型" >
<radio-group class="radio-group" @change="publicSelect($event, 'settAccountType')" >
<label class="radio"><radio value="C" :checked="applyDetailInfo.settAccountType == 'C'" />个人</label>
<label class="radio"><radio value="B" :checked="applyDetailInfo.settAccountType == 'B'" />企业</label>
</radio-group>
</JeePayForm>
<JeePayForm text="是否为负责人信息" >
<radio-group class="radio-group" @change="publicSelect($event, 'isContactInfo')" >
<label class="radio"><radio value="1" :checked="applyDetailInfo.isContactInfo == '1'" />是</label>
<label class="radio"><radio value="0" :checked="applyDetailInfo.isContactInfo == '0'" />否</label>
</radio-group>
</JeePayForm>
<JeePayForm text="银行开户名" v-model:value="applyDetailInfo.settAccountName" />
<JeePayForm text="持卡人身份证号" v-model:value="applyDetailInfo.settAccountIdcardNo" v-if="applyDetailInfo.settAccountType == 'C'" :start="false" />
<JeePayForm text="银行预留手机号" v-model:value="applyDetailInfo.bankCardPhone" />
<JeePayForm text="银行卡照片" :start="false">
<JeepayUpLoad ocrFlag="bankCard" :imgUrl="applyDetailInfo.settAccountLicenseImg" @uploadSuccess="uploadSuccess($event, 'settAccountLicenseImg')" @clear="clear('settAccountLicenseImg')" />
</JeePayForm>
<JeePayForm text="银行账号" v-model:value="applyDetailInfo.settAccountNo" />
<JeePayForm text="开户行省市县" >
<jeeDataPicker :code="codeBack.settAccountBankBranchAreaCode" :localdata="address" @change="publicSelect($event, 'settAccountBankBranchAreaCode')" paramType="arr" />
</JeePayForm>
<JeePayForm text="开户行支行名称" v-model:value="applyDetailInfo.settAccountBankBranchName" :start="false" />
<JeePayForm text="开户银行ID" v-model:value="applyDetailInfo.bankId" />
<JeePayForm text="联行行号" v-model:value="applyDetailInfo.contactLine" />
</view>
</uni-collapse-item>
<uni-collapse-item :show-animation="false" title="其他信息" class="coll-title">
<view class="content">
<JeePayForm text="商户协议照片1" :start="false">
<JeepayUpLoad :imgUrl="applyDetailInfo.protocolPhoto1" @uploadSuccess="uploadSuccess($event, 'protocolPhoto1')" @clear="clear('protocolPhoto1')" />
</JeePayForm>
<JeePayForm text="商户协议照片2" :start="false">
<JeepayUpLoad :imgUrl="applyDetailInfo.protocolPhoto2" @uploadSuccess="uploadSuccess($event, 'protocolPhoto2')" @clear="clear('protocolPhoto2')" />
</JeePayForm>
<JeePayForm text="商户协议照片3" :start="false">
<JeepayUpLoad :imgUrl="applyDetailInfo.protocolPhoto3" @uploadSuccess="uploadSuccess($event, 'protocolPhoto3')" @clear="clear('protocolPhoto3')" />
</JeePayForm>
<JeePayForm text="商户协议照片4" :start="false">
<JeepayUpLoad :imgUrl="applyDetailInfo.protocolPhoto4" @uploadSuccess="uploadSuccess($event, 'protocolPhoto4')" @clear="clear('protocolPhoto4')" />
</JeePayForm>
<JeePayForm text="组织机构代码证照片" :start="false">
<JeepayUpLoad :imgUrl="applyDetailInfo.orgPhoto" @uploadSuccess="uploadSuccess($event, 'orgPhoto')" @clear="clear('orgPhoto')" />
</JeePayForm>
<JeePayForm text="其他资料照片" :start="false">
<JeepayUpLoad :imgUrl="applyDetailInfo.otherDoc" @uploadSuccess="uploadSuccess($event, 'otherDoc')" @clear="clear('otherDoc')" />
</JeePayForm>
</view>
</uni-collapse-item>
<!-- 费率组件 银联前置平台在驳回待修改时不显示费率板块 -->
<defaultRate ref="defaultRateRef" isCheck="all" v-if="channelInfo.state == 0" />
</uni-collapse>
</view>
<!-- 只读文件 与 进件完成后的额外操作 -->
<readOnlyInfo v-if="isDisable" ref="applyInfoRef" applyName="utmpay" />
<utmRead v-if="channelInfo.state != 0" />
</template>
<script setup>
import {ref , reactive, computed, toRaw, inject } from 'vue'
import address from '@/components/applyJson/ysfAddress.json' // 地址
import mcc from '@/components/applyJson/jeePayMcc.json' // 行业
import JeepayUpLoad from '@/components/JeepayUpLoad/JeepayUpLoad.vue' // 图片上传
import defaultRate from '../../components/defaultRate.vue' // 默认费率
import readOnlyInfo from '../../components/readOnlyInfo.vue' // 只读文件
import tool from '@/util/tool.js' // 工具类函数
import JeePayForm from '@/components/applyComponents/JeePayForm.vue' // 通用左右结构布局
import jeeDataPicker from '@/components/applyComponents/dataPicker.vue' // 通用级联选择
import utmRead from './utmRead.vue' // 服务于进件完成之后的操作
const channelInfo = inject('channelInfo')
const defaultRateRef = ref(null)
const emit = defineEmits(['applyHandle'])
// 状态分类: 0-未发起、 1-审核中、 2-进件成功、 3-驳回待修改、 4-待验证、 5-待签约
// 当状态为 1 2 4 5 时要开启只读模式1 3 不开启
let isDisable = ref(false)
if (!['0', '3', '8'].includes(channelInfo.state)) isDisable.value = true
// 商户进件详细信息JSON类型字符串
let applyDetailInfo = reactive({})
// 通用选择函数
const publicSelect = (e, key) => {
applyDetailInfo[key] = e.detail.value
// 是负责人直接赋值,不是清空
if (key == 'isContactInfo') {
if (e.detail.value == '1') {
applyDetailInfo.settAccountName = applyDetailInfo.idcardName
applyDetailInfo.settAccountIdcardNo = applyDetailInfo.idcardNo
applyDetailInfo.bankCardPhone = applyDetailInfo.contactPhone
} else {
applyDetailInfo.settAccountName = applyDetailInfo.settAccountIdcardNo = applyDetailInfo.bankCardPhone = ''
}
}
}
// 上传图片成功
const uploadSuccess = (res, name) => {
applyDetailInfo[name] = res.data
if (res.ocrInfo && Object.keys(res.ocrInfo).length < 1) return false
// OCR图片识别 idCard-身份证 idcard1Imgidcard2Img license-营业执照 licenseImg
Object.assign(applyDetailInfo, res.ocrInfo) // ocr信息回显字段一致直接合并
}
// 清除图片 仅前端
const clear = (name, url) => applyDetailInfo[name] = ''
// 发起进件 注意后面的formCheck参数表单校验要用
const launchApply = isTempData => {
if (channelInfo.state == 0) {
applyDetailInfo.paywayFeeList = defaultRateRef.value.getList(isTempData)
}
emit('applyHandle', {name: 'utmpay', isTempData, applyDetailInfo})
}
// 只读组件信息
let applyInfoRef = ref(null)
// 行业类型,地理位置回显
let codeBack = reactive({
areaCode: '', // 商户地理位置回显
mccCode: '', // 行业回显
})
// 合并信息方法, 职能读取,和信息回显,通过此方法合并
const assignObj = (obj) => {
Object.assign(applyDetailInfo, obj)
if(!isDisable.value) {
// 行业类型,地理位置回显
codeBack.areaCode = obj.areaCode ? obj.areaCode[2] : obj.areaCode
codeBack.mccCode = obj.mccCode
} else {
// 以下用于只读信息页
obj.mccText = tool.mccBack(obj.mccCode, mcc, 'last') // 行业码转文字
obj.areaText = tool.addressBack(obj.areaCode, address) // 地址码转文字
obj.settAccountBankBranchAreaText = tool.addressBack(obj.settAccountBankBranchAreaCode, address)
// 传值给只读组件
if(applyInfoRef.value) applyInfoRef.value.getApplyInof(obj)
}
}
defineExpose({ launchApply, assignObj})
</script>
<style scoped lang="scss">
@import '../../static/information.scss';
</style>