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

154 lines
6.0 KiB
Vue
Raw Permalink 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>
<!-- 该页码为填写信息的组件 -->
<!-- 只读文件 -->
<readOnlyInfo v-if="isDisable" ref="applyInfoRef" applyName="alipay" />
<view v-if="!isDisable">
<uni-collapse ref="collapse">
<uni-collapse-item title="经营信息" class="coll-title" :open="true">
<view class="content">
<JeePayForm text="产品类型" >
<label class="radio"><radio value="1" checked="true" style="transform: scale(0.6,0.6);" />当面付</label>
</JeePayForm>
<JeePayForm text="经营类目" >
<dataPicker :code="mccCode" :localdata="mccAli" @change="publicSelect($event, 'mccCode')" paramType="splicing" />
</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="营业执照有效期截止">
<termOfValidity :defaultDate="applyDetailInfo.licenseEffectEnd" @publicSelect="publicSelect($event, 'licenseEffectEnd')" />
</JeePayForm>
<JeePayForm text="特殊资质照" >
<JeepayUpLoad :imgUrl="applyDetailInfo.specialLicenseImg" @uploadSuccess="uploadSuccess($event, 'specialLicenseImg')" @clear="clear('specialLicenseImg')" />
</JeePayForm>
</view>
</uni-collapse-item>
<uni-collapse-item title="门店信息" class="coll-title">
<view class="content">
<JeePayForm text="商户名称全称" v-model:value="applyDetailInfo.mchFullName" />
<JeePayForm text="商户地理位置" >
<dataPicker :code="areaCode" :localdata="address" @change="publicSelect($event, 'areaCode')" paramType="arr" />
</JeePayForm>
<JeePayForm text="商户详细地址" v-model:value="applyDetailInfo.address" />
<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 title="联系人信息" class="coll-title">
<view class="content">
<JeePayForm text="支付宝账号" v-model:value="applyDetailInfo.accountNo" />
<JeePayForm text="商户联系人姓名" v-model:value="applyDetailInfo.contactName" />
<JeePayForm text="商户联系人电话" v-model:value="applyDetailInfo.contactPhone" />
<JeePayForm text="商户联系人邮箱" v-model:value="applyDetailInfo.contactEmail" />
</view>
</uni-collapse-item>
<!-- 费率组件 -->
<defaultRate ref="defaultRateRef" isCheck="all" />
</uni-collapse>
</view>
</template>
<script setup>
import {ref , reactive, inject } from 'vue'
import address from '@/components/applyJson/address.json' // 地址
import mccAli from '@/components/applyJson/mccAli.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 termOfValidity from '@/components/applyComponents/termOfValidity.vue' // 选择证件有效期
import dataPicker from '@/components/applyComponents/dataPicker.vue' // 通用级联选择
const channelInfo = inject('channelInfo')
const emit = defineEmits(['applyHandle'])
const defaultRateRef = ref(null) // 默认费率组件
// 商户进件详细信息JSON类型字符串
const applyDetailInfo = reactive({
productType: 1,//产品类型
})
// 状态: 0-未发起、 1-审核中、 2-进件成功、 3-驳回待修改、 4-待验证、 5-待签约
// 状态为 1,2,4,5 开启disable (也就是状态不为 0 3)
let isDisable = ref(false)
if (!['0', '3', '8'].includes(channelInfo.state)) isDisable.value = true
// 上传图片成功 以及OCR识别信息回显
const uploadSuccess = (res, name) => {
applyDetailInfo[name] = res.data
Object.assign(applyDetailInfo, res.ocrInfo) // ocr信息回显
}
// 清除图片 仅前端
const clear = key => applyDetailInfo[key] = ''
// 通用选择事件 回调函数
const publicSelect = (e, key) => applyDetailInfo[key] = e.detail.value
// 发起进件
const launchApply = isTempData => {
// 拿费率组件的值
applyDetailInfo.paywayFeeList = defaultRateRef.value.getList(isTempData)
// 判断类型,对象类型是费率正常提交 Sting 是错误信息
if (typeof applyDetailInfo.paywayFeeList === 'string') return uni.showToast({ title: applyDetailInfo.paywayFeeList, icon: 'none' })
emit('applyHandle', {name: 'alipay',isTempData, applyDetailInfo})
}
let mccCode = ref() // 行业mcc回显
let areaCode = ref('') // 商户省市区回显
let applyInfoRef = ref(null) // 只读组件信息
// 合并信息方法, 智能读取,和信息回显,通过此方法合并
const assignObj = (obj) => {
// 开启只读模式
if (isDisable.value) {
obj.mccText = tool.mccBack(obj.mccCode, mccAli, 'splicing') // 行业码转文字
obj.areaText = tool.addressBack(obj.areaCode, address) // 地理码转文字
applyInfoRef.value.getApplyInof(obj) // 传给只读组件
}
// 信息回显
Object.assign(applyDetailInfo, obj)
// 以下两个码是为了给级联选择器做回显用,需要最后一个码
obj.mccCode ? mccCode.value = obj.mccCode.split('_')[1] : null // mcc码拼接类型要截取
obj.areaCode ? areaCode.value = obj.areaCode[2] : null // 数组类型,直接拿最后一个
}
defineExpose({ launchApply, assignObj })
</script>
<style scoped lang="scss">
@import '../static/information.scss';
</style>