<template>
|
<LoadingLayout :loading="isLoading">
|
<ProForm :model="form" ref="dialogForm" label-width="150px">
|
<ProFormItemV2
|
label="业务申请编号:"
|
prop="business_code"
|
:checkRules="[{ message: '请输入业务申请编号', pattern: /^[a-zA-Z0-9_]+$/ }]"
|
>
|
<ProFormText v-model.trim="form.business_code" placeholder="请输入业务申请编号">
|
</ProFormText>
|
</ProFormItemV2>
|
<ProFormItemV2
|
label="超级管理员类型:"
|
prop="contact_type"
|
:checkRules="[{ message: '请选择超级管理员类型' }]"
|
>
|
<ProFormRadio
|
v-model.trim="form.contact_type"
|
:value-enum="EnumWeChatPayApplymentContactTypeText"
|
:button-style="false"
|
:convertEnumValue="false"
|
/>
|
</ProFormItemV2>
|
<ProFormItemV2
|
label="超级管理员姓名:"
|
prop="contact_name"
|
:checkRules="[{ message: '请输入超级管理员姓名' }]"
|
>
|
<ProFormText
|
:minlength="2"
|
:maxlength="100"
|
v-model.trim="form.contact_name"
|
placeholder="请输入超级管理员姓名"
|
>
|
</ProFormText>
|
</ProFormItemV2>
|
<template v-if="form.contact_type === EnumWeChatPayApplymentContactType.SUPER">
|
<ProFormItemV2
|
label="超级管理员证件类型:"
|
prop="contact_id_doc_type"
|
:checkRules="[{ message: '请选择超级管理员证件类型' }]"
|
>
|
<ProFormSelect
|
v-model="form.contact_id_doc_type"
|
:valueEnum="EnumWeChatPayApplymentIdDocTypeText"
|
placeholder="请选择超级管理员证件类型"
|
>
|
</ProFormSelect>
|
</ProFormItemV2>
|
<ProFormItemV2
|
label="超级管理员证件号码:"
|
prop="contact_id_number"
|
:checkRules="[{ message: '请输入超级管理员证件号码' }]"
|
>
|
<ProFormText v-model.trim="form.contact_id_number" placeholder="请输入超级管理员证件号码">
|
</ProFormText>
|
</ProFormItemV2>
|
<ProFormItemV2
|
label="证件正面照片:"
|
prop="contact_id_doc_copy"
|
:check-rules="[{ type: 'upload', message: '请上传证件正面照片' }]"
|
>
|
<ProFormImageUpload
|
v-model:file-url="form.contact_id_doc_copy"
|
:limit-file-count="1"
|
></ProFormImageUpload>
|
</ProFormItemV2>
|
<ProFormItemV2
|
label="证件反面照片:"
|
prop="contact_id_doc_copy_back"
|
:check-rules="[{ type: 'upload', message: '请上传证件反面照片' }]"
|
>
|
<ProFormImageUpload
|
v-model:file-url="form.contact_id_doc_copy_back"
|
:limit-file-count="1"
|
></ProFormImageUpload>
|
</ProFormItemV2>
|
<ProFormItemV2
|
label="证件有效期:"
|
prop="contact_period"
|
:check-rules="[{ type: 'array', message: '请选择证件有效期' }]"
|
>
|
<ProFormDatePicker
|
v-model="form.contact_period"
|
type="daterange"
|
range-separator="~"
|
start-placeholder="起始日期"
|
end-placeholder="到期日期"
|
clearable
|
></ProFormDatePicker>
|
</ProFormItemV2>
|
<ProFormItemV2
|
label="业务办理授权函:"
|
prop="business_authorization_letter"
|
:check-rules="[{ type: 'upload', message: '请上传业务办理授权函' }]"
|
>
|
<div style="display: flex">
|
<ProFormUpload
|
v-model:file-url="form.business_authorization_letter"
|
:limit="1"
|
:limitFileSize="10"
|
accept="png,jpg,jpeg,pdf"
|
></ProFormUpload>
|
<el-button style="margin-left: 10px" type="primary" link @click="downloadTemplate"
|
>模板下载</el-button
|
>
|
</div>
|
</ProFormItemV2>
|
</template>
|
<ProFormItemV2
|
label="联系手机:"
|
prop="mobile_phone"
|
:checkRules="[{ type: 'phone', message: '请输入联系手机' }]"
|
>
|
<ProFormText v-model.trim="form.mobile_phone" placeholder="请输入联系手机" />
|
</ProFormItemV2>
|
|
<ProFormItemV2
|
label="联系邮箱:"
|
prop="contact_email"
|
:checkRules="[{ type: 'email', message: '请输入联系邮箱' }]"
|
>
|
<ProFormText v-model.trim="form.contact_email" placeholder="请输入联系邮箱" />
|
</ProFormItemV2>
|
<ProFormItemV2
|
label="主体类型:"
|
prop="subject_type"
|
:checkRules="[{ message: '请选择主体类型' }]"
|
>
|
<ProFormSelect
|
v-model="form.subject_type"
|
:valueEnum="EnumWeChatPayApplymentSubjectTypeText"
|
placeholder="请选择主体类型"
|
>
|
</ProFormSelect>
|
</ProFormItemV2>
|
|
<template
|
v-if="
|
form.subject_type === EnumWeChatPayApplymentSubjectType.SUBJECT_TYPE_INDIVIDUAL ||
|
form.subject_type === EnumWeChatPayApplymentSubjectType.SUBJECT_TYPE_ENTERPRISE
|
"
|
>
|
<ProFormItemV2
|
label="营业执照:"
|
prop="license_copy"
|
:check-rules="[{ type: 'upload', message: '请上传营业执照' }]"
|
>
|
<ProFormUpload
|
v-model:file-url="form.license_copy"
|
:limitFileCount="1"
|
:on-success="handleLicenseUrlChange"
|
accept="jpg/jpeg,png,pdf"
|
></ProFormUpload>
|
</ProFormItemV2>
|
<ProFormItemV2
|
label="商户名称:"
|
prop="merchant_name"
|
:checkRules="[{ message: '请输入商户名称' }]"
|
>
|
<ProFormText
|
:maxlength="128"
|
:minlength="2"
|
show-word-limit
|
v-model.trim="form.merchant_name"
|
placeholder="请输入商户名称"
|
/>
|
</ProFormItemV2>
|
<ProFormItemV2
|
label="统一社会信用代码:"
|
prop="license_number"
|
:checkRules="[{ message: '请输入统一社会信用代码', type: 'societyCreditCode' }]"
|
>
|
<ProFormText v-model.trim="form.license_number" placeholder="请输入统一社会信用代码" />
|
</ProFormItemV2>
|
<ProFormItemV2
|
label="法人姓名:"
|
prop="legal_person"
|
:checkRules="[{ message: '请输入法人姓名' }]"
|
>
|
<ProFormText
|
:minlength="2"
|
:maxlength="100"
|
v-model.trim="form.legal_person"
|
placeholder="请输入法人姓名"
|
/>
|
</ProFormItemV2>
|
</template>
|
|
<template
|
v-if="
|
form.subject_type === EnumWeChatPayApplymentSubjectType.SUBJECT_TYPE_GOVERNMENT ||
|
form.subject_type === EnumWeChatPayApplymentSubjectType.SUBJECT_TYPE_INSTITUTIONS ||
|
form.subject_type === EnumWeChatPayApplymentSubjectType.SUBJECT_TYPE_OTHERS
|
"
|
>
|
<ProFormItemV2
|
label="登记证书照片:"
|
prop="cert_copy"
|
:check-rules="[{ type: 'upload', message: '请上传登记证书照片' }]"
|
>
|
<ProFormImageUpload
|
v-model:file-url="form.cert_copy"
|
:limit-file-count="1"
|
></ProFormImageUpload>
|
</ProFormItemV2>
|
<ProFormItemV2
|
label="登记证书类型:"
|
prop="cert_type"
|
:checkRules="[{ message: '请选择登记证书类型' }]"
|
>
|
<ProFormSelect
|
v-model="form.cert_type"
|
:valueEnum="EnumWeChatPayApplymentCertTypeTextList"
|
placeholder="请选择登记证书类型"
|
>
|
</ProFormSelect>
|
</ProFormItemV2>
|
<ProFormItemV2
|
label="登记证书号:"
|
prop="cert_number"
|
:checkRules="[{ message: '请输入登记证书号' }]"
|
>
|
<ProFormText v-model.trim="form.cert_number" placeholder="请输入登记证书号" />
|
</ProFormItemV2>
|
<ProFormItemV2
|
label="商户名称:"
|
prop="cert_merchant_name"
|
:checkRules="[{ message: '请输入商户名称' }]"
|
>
|
<ProFormText
|
:minlength="2"
|
:maxlength="128"
|
v-model.trim="form.cert_merchant_name"
|
placeholder="请输入商户名称"
|
/>
|
</ProFormItemV2>
|
<ProFormItemV2
|
label="注册地址:"
|
prop="cert_company_address"
|
:checkRules="[{ message: '请输入注册地址' }]"
|
>
|
<ProFormText
|
:minlength="4"
|
:maxlength="128"
|
v-model.trim="form.cert_company_address"
|
placeholder="请输入注册地址"
|
/>
|
</ProFormItemV2>
|
<ProFormItemV2
|
label="法定代表人:"
|
prop="cert_legal_person"
|
:checkRules="[{ message: '请输入法定代表人' }]"
|
>
|
<ProFormText
|
:minlength="2"
|
:maxlength="100"
|
v-model.trim="form.cert_legal_person"
|
placeholder="请输入法定代表人"
|
/>
|
</ProFormItemV2>
|
<ProFormItemV2
|
label="证件有效期:"
|
prop="cert_period"
|
:check-rules="[{ type: 'array', message: '请选择证件有效期' }]"
|
>
|
<ProFormDatePicker
|
v-model="form.cert_period"
|
type="daterange"
|
range-separator="~"
|
start-placeholder="起始日期"
|
end-placeholder="到期日期"
|
clearable
|
></ProFormDatePicker>
|
</ProFormItemV2>
|
</template>
|
|
<ProFormItemV2
|
label="证件持有人类型:"
|
prop="id_holder_type"
|
:checkRules="[{ message: '请选择证件持有人类型' }]"
|
>
|
<ProFormSelect
|
v-model="form.id_holder_type"
|
:valueEnum="EnumWeChatPayApplymentIdHolderTypeTextList"
|
placeholder="请选择证件持有人类型"
|
>
|
</ProFormSelect>
|
</ProFormItemV2>
|
|
<ProFormItemV2
|
v-if="form.id_holder_type === EnumWeChatPayApplymentIdHolderType.LEGAL"
|
label="证件持有人证件类型:"
|
prop="id_doc_type"
|
:checkRules="[{ message: '请选择证件持有人证件类型' }]"
|
>
|
<ProFormSelect
|
v-model="form.id_doc_type"
|
:valueEnum="id_doc_typeList"
|
placeholder="请选择证件持有人证件类型"
|
>
|
</ProFormSelect>
|
</ProFormItemV2>
|
|
<ProFormItemV2
|
v-if="form.id_holder_type === EnumWeChatPayApplymentIdHolderType.SUPER"
|
label="法定代表人说明函:"
|
prop="authorize_letter_copy"
|
:check-rules="[{ type: 'upload', message: '请上传法定代表人说明函' }]"
|
>
|
<div style="display: flex">
|
<ProFormUpload
|
v-model:file-url="form.authorize_letter_copy"
|
:limit="1"
|
:limitFileSize="10"
|
accept="png,jpg,jpeg,pdf"
|
></ProFormUpload>
|
<el-button style="margin-left: 10px" type="primary" link @click="downloadFRTemplate"
|
>模板下载</el-button
|
>
|
</div>
|
</ProFormItemV2>
|
|
<template
|
v-if="
|
form.id_holder_type === EnumWeChatPayApplymentIdHolderType.LEGAL &&
|
form.id_doc_type === EnumWeChatPayApplymentIdDocType.IDENTIFICATION_TYPE_IDCARD
|
"
|
>
|
<ProFormItemV2
|
label="身份证人像面:"
|
prop="id_card_copy"
|
:check-rules="[{ type: 'upload', message: '请上传身份证人像面' }]"
|
>
|
<ProFormUpload
|
v-model:file-url="form.id_card_copy"
|
:limitFileCount="1"
|
:on-success="handleFrontImgUrlChange"
|
accept="jpg/jpeg,png,pdf"
|
></ProFormUpload>
|
</ProFormItemV2>
|
<ProFormItemV2
|
label="身份证国徽面:"
|
prop="id_card_national"
|
:check-rules="[{ type: 'upload', message: '请上传身份证国徽面' }]"
|
>
|
<ProFormUpload
|
v-model:file-url="form.id_card_national"
|
:limitFileCount="1"
|
accept="jpg/jpeg,png,pdf"
|
></ProFormUpload>
|
</ProFormItemV2>
|
<ProFormItemV2
|
label="身份证姓名:"
|
prop="id_card_name"
|
:checkRules="[{ message: '请输入身份证姓名' }]"
|
>
|
<ProFormText
|
:minlength="2"
|
:maxlength="100"
|
v-model.trim="form.id_card_name"
|
placeholder="请输入身份证姓名"
|
/>
|
</ProFormItemV2>
|
<ProFormItemV2
|
label="身份证号码:"
|
prop="id_card_number"
|
:checkRules="[{ message: '请输入身份证号码', type: 'idCard' }]"
|
>
|
<ProFormText v-model.trim="form.id_card_number" placeholder="请输入身份证号码" />
|
</ProFormItemV2>
|
<ProFormItemV2
|
label="身份证有效期:"
|
prop="id_card_period"
|
:checkRules="[{ message: '请选择身份证有效期', type: 'array' }]"
|
>
|
<ProFormDatePicker
|
v-model="form.id_card_period"
|
type="daterange"
|
range-separator="~"
|
start-placeholder="起始日期"
|
end-placeholder="到期日期"
|
clearable
|
></ProFormDatePicker>
|
</ProFormItemV2>
|
</template>
|
|
<template
|
v-if="
|
form.id_holder_type === EnumWeChatPayApplymentIdHolderType.LEGAL &&
|
form.id_doc_type !== EnumWeChatPayApplymentIdDocType.IDENTIFICATION_TYPE_IDCARD
|
"
|
>
|
<ProFormItemV2
|
label="证件正面照片:"
|
prop="id_doc_copy"
|
:check-rules="[{ type: 'upload', message: '请上传证件正面照片' }]"
|
>
|
<ProFormUpload
|
v-model:file-url="form.id_doc_copy"
|
:limitFileCount="1"
|
accept="jpg/jpeg,png,pdf"
|
></ProFormUpload>
|
</ProFormItemV2>
|
|
<ProFormItemV2
|
label="证件姓名:"
|
prop="id_doc_name"
|
:checkRules="[{ message: '请输入证件姓名' }]"
|
>
|
<ProFormText
|
:minlength="2"
|
:maxlength="100"
|
v-model.trim="form.id_doc_name"
|
placeholder="请输入证件姓名"
|
/>
|
</ProFormItemV2>
|
<ProFormItemV2
|
label="证件号码:"
|
prop="id_doc_number"
|
:checkRules="[{ message: '请输入证件号码' }]"
|
>
|
<ProFormText v-model.trim="form.id_doc_number" placeholder="请输入证件号码" />
|
</ProFormItemV2>
|
<ProFormItemV2
|
label="证件有效期:"
|
prop="id_doc_period"
|
:checkRules="[{ message: '请选择证件有效期', type: 'array' }]"
|
>
|
<ProFormDatePicker
|
v-model="form.id_doc_period"
|
type="daterange"
|
range-separator="~"
|
start-placeholder="起始日期"
|
end-placeholder="到期日期"
|
clearable
|
></ProFormDatePicker>
|
</ProFormItemV2>
|
</template>
|
|
<div
|
class="ubo-info-list-wrapper"
|
v-if="form.subject_type === EnumWeChatPayApplymentSubjectType.SUBJECT_TYPE_ENTERPRISE"
|
>
|
<div class="ubo-info-list-top">
|
<div class="ubo-info-list-title">最终受益人信息列表</div>
|
<div class="ubo-info-list-btn">
|
<el-button type="primary" link @click="addUboInfo">添加</el-button>
|
</div>
|
</div>
|
<div v-for="(item, index) in form.ubo_info_list" :key="index">
|
<ProFormItemV2
|
:label="`第${index + 1}个证件类型:`"
|
:prop="`ubo_info_list.${index}.ubo_id_doc_type`"
|
:checkRules="[{ message: '请选择证件类型' }]"
|
>
|
<ProFormSelect
|
v-model="item.ubo_id_doc_type"
|
:valueEnum="EnumWeChatPayApplymentIdDocTypeText"
|
placeholder="请选择证件类型"
|
>
|
</ProFormSelect>
|
</ProFormItemV2>
|
<ProFormItemV2
|
:label="`第${index + 1}个证件正面照片:`"
|
:prop="`ubo_info_list.${index}.ubo_id_doc_copy`"
|
:check-rules="[{ type: 'upload', message: '请上传证件正面照片' }]"
|
>
|
<ProFormImageUpload
|
v-model:file-url="item.ubo_id_doc_copy"
|
:limit-file-count="1"
|
></ProFormImageUpload>
|
</ProFormItemV2>
|
<ProFormItemV2
|
:label="`第${index + 1}个证件姓名:`"
|
:prop="`ubo_info_list.${index}.ubo_id_doc_name`"
|
:checkRules="[{ message: '请输入证件姓名' }]"
|
>
|
<ProFormText
|
:minlength="2"
|
:maxlength="100"
|
v-model.trim="item.ubo_id_doc_name"
|
placeholder="请输入证件姓名"
|
/>
|
</ProFormItemV2>
|
<ProFormItemV2
|
:label="`第${index + 1}个证件号码:`"
|
:prop="`ubo_info_list.${index}.ubo_id_doc_number`"
|
:checkRules="[{ message: '请输入证件号码' }]"
|
>
|
<ProFormText v-model.trim="item.ubo_id_doc_number" placeholder="请输入证件号码" />
|
</ProFormItemV2>
|
<ProFormItemV2
|
:label="`第${index + 1}个证件居住地址:`"
|
:prop="`ubo_info_list.${index}.ubo_id_doc_address`"
|
:checkRules="[{ message: '请输入证件居住地址' }]"
|
>
|
<ProFormText v-model.trim="item.ubo_id_doc_address" placeholder="请输入证件居住地址" />
|
</ProFormItemV2>
|
<ProFormItemV2
|
:label="`第${index + 1}个证件有效期:`"
|
:prop="`ubo_info_list.${index}.ubo_period`"
|
:checkRules="[{ message: '请选择证件有效期', type: 'array' }]"
|
>
|
<ProFormDatePicker
|
v-model="item.ubo_period"
|
type="daterange"
|
range-separator="~"
|
start-placeholder="起始日期"
|
end-placeholder="到期日期"
|
clearable
|
></ProFormDatePicker>
|
</ProFormItemV2>
|
<el-button type="primary" link @click="deleteUboInfo(index)">删除</el-button>
|
</div>
|
</div>
|
|
<ProFormItemV2
|
label="商户简称:"
|
prop="merchant_shortname"
|
:checkRules="[{ message: '请输入商户简称' }]"
|
>
|
<ProFormText
|
:minlength="1"
|
:maxlength="60"
|
show-word-limit
|
v-model.trim="form.merchant_shortname"
|
placeholder="请输入商户简称"
|
/>
|
</ProFormItemV2>
|
|
<ProFormItemV2
|
label="客服电话:"
|
prop="service_phone"
|
:checkRules="[{ type: 'tel', message: '请输入客服电话' }]"
|
>
|
<ProFormText v-model.trim="form.service_phone" placeholder="请输入客服电话" />
|
</ProFormItemV2>
|
|
<ProFormItemV2
|
label="经营场景类型:"
|
prop="sales_scenes_type"
|
:checkRules="[{ message: '请选择经营场景类型' }]"
|
>
|
<ProFormSelect
|
v-model="form.sales_scenes_type"
|
:valueEnum="EnumWeChatPayApplymentSalesScenesTypeText"
|
placeholder="请选择经营场景类型"
|
multiple
|
>
|
</ProFormSelect>
|
</ProFormItemV2>
|
|
<template
|
v-if="
|
form.sales_scenes_type.includes(EnumWeChatPayApplymentSalesScenesType.SALES_SCENES_STORE)
|
"
|
>
|
<ProFormItemV2
|
label="线下场所名称:"
|
prop="biz_store_name"
|
:checkRules="[{ message: '请输入线下场所名称' }]"
|
>
|
<ProFormText
|
:maxlength="50"
|
v-model.trim="form.biz_store_name"
|
placeholder="请输入线下场所名称"
|
/>
|
</ProFormItemV2>
|
<ProFormItemV2
|
label="线下场所省市编码:"
|
prop="biz_address_code"
|
:checkRules="[{ message: '请输入线下场所省市编码', type: 'number' }]"
|
>
|
<ProFormText v-model.trim="form.biz_address_code" placeholder="请输入线下场所省市编码" />
|
<el-button type="primary" link @click="downloadAddressCodeTemplate"
|
>省市编码模板</el-button
|
>
|
</ProFormItemV2>
|
<ProFormItemV2
|
label="线下场所地址:"
|
prop="biz_store_address"
|
:checkRules="[{ message: '请输入线下场所地址' }]"
|
>
|
<ProFormText
|
:maxlength="512"
|
:minlength="4"
|
v-model.trim="form.biz_store_address"
|
placeholder="请输入线下场所地址"
|
/>
|
</ProFormItemV2>
|
<ProFormItemV2
|
label="线下场所门头照片:"
|
prop="store_entrance_pic"
|
:check-rules="[{ type: 'upload', message: '请上传线下场所门头照片' }]"
|
>
|
<ProFormUpload
|
v-model:file-url="form.store_entrance_pic"
|
accept="jpg/jpeg,png"
|
></ProFormUpload>
|
</ProFormItemV2>
|
<ProFormItemV2
|
label="线下场所内部照片:"
|
prop="indoor_pic"
|
:check-rules="[{ type: 'upload', message: '请上传线下场所内部照片' }]"
|
>
|
<ProFormUpload v-model:file-url="form.indoor_pic" accept="jpg/jpeg,png"></ProFormUpload>
|
</ProFormItemV2>
|
</template>
|
<template
|
v-if="
|
form.sales_scenes_type.includes(EnumWeChatPayApplymentSalesScenesType.SALES_SCENES_MP)
|
"
|
>
|
<ProFormItemV2
|
label="服务商服务号或公众号AppID:"
|
prop="mp_appid"
|
:checkRules="[
|
{
|
message: '服务商服务号或公众号AppID',
|
validator: (rule, value, callback) => {
|
if (form.mp_appid || form.mp_sub_appid) {
|
callback();
|
}
|
callback(new Error('请输入服务商服务号或公众号AppID'));
|
},
|
},
|
]"
|
>
|
<ProFormText
|
v-model.trim="form.mp_appid"
|
placeholder="请输入服务商服务号或公众号AppID(服务商服务号或公众号AppID、商家服务号或公众号AppID,二选一必填)"
|
/>
|
</ProFormItemV2>
|
<ProFormItemV2
|
label="商家服务号或公众号AppID:"
|
prop="mp_sub_appid"
|
:checkRules="[
|
{
|
message: '请输入商家服务号或公众号AppID',
|
validator: (rule, value, callback) => {
|
if (form.mp_appid || form.mp_sub_appid) {
|
callback();
|
}
|
callback(new Error('请输入商家服务号或公众号AppID'));
|
},
|
},
|
]"
|
>
|
<ProFormText
|
v-model.trim="form.mp_sub_appid"
|
placeholder="请输入商家服务号或公众号AppID(服务商服务号或公众号AppID、商家服务号或公众号AppID,二选一必填)"
|
/>
|
</ProFormItemV2>
|
<ProFormItemV2
|
label="小程序截图:"
|
prop="mp_pics"
|
:check-rules="[{ type: 'upload', message: '请上传小程序截图' }]"
|
>
|
<ProFormUpload
|
v-model:file-url="form.mp_pics"
|
:limitFileCount="5"
|
accept="jpg/jpeg,png"
|
></ProFormUpload>
|
</ProFormItemV2>
|
</template>
|
<template
|
v-if="
|
form.sales_scenes_type.includes(
|
EnumWeChatPayApplymentSalesScenesType.SALES_SCENES_MINI_PROGRAM
|
)
|
"
|
>
|
<ProFormItemV2
|
label="服务商小程序AppID:"
|
prop="mini_program_appid"
|
:checkRules="[
|
{
|
message: '请输入服务商小程序AppID',
|
validator: (rule, value, callback) => {
|
if (form.mini_program_appid || form.mini_program_sub_appid) {
|
callback();
|
}
|
callback(new Error('请输入服务商小程序AppID'));
|
},
|
},
|
]"
|
>
|
<ProFormText
|
v-model.trim="form.mini_program_appid"
|
placeholder="请输入服务商小程序AppID(服务商小程序AppID与商家小程序AppID,二选一必填)"
|
/>
|
</ProFormItemV2>
|
<ProFormItemV2
|
label="商家小程序AppID:"
|
prop="mini_program_sub_appid"
|
:checkRules="[
|
{
|
message: '请输入商家小程序AppID',
|
validator: (rule, value, callback) => {
|
if (form.mini_program_appid || form.mini_program_sub_appid) {
|
callback();
|
}
|
callback(new Error('请输入服务商小程序AppID'));
|
},
|
},
|
]"
|
>
|
<ProFormText
|
v-model.trim="form.mini_program_sub_appid"
|
placeholder="请输入商家小程序AppID(服务商小程序AppID与商家小程序AppID,二选一必填)"
|
/>
|
</ProFormItemV2>
|
<ProFormItemV2
|
label="小程序截图:"
|
prop="mini_program_pics"
|
:check-rules="[{ type: 'upload', message: '请上传小程序截图' }]"
|
>
|
<ProFormUpload
|
v-model:file-url="form.mini_program_pics"
|
:limitFileCount="5"
|
accept="jpg/jpeg,png"
|
></ProFormUpload>
|
</ProFormItemV2>
|
</template>
|
|
<template
|
v-if="
|
form.sales_scenes_type.includes(EnumWeChatPayApplymentSalesScenesType.SALES_SCENES_APP)
|
"
|
>
|
<ProFormItemV2
|
label="服务商应用AppID:"
|
prop="app_appid"
|
:checkRules="[
|
{
|
message: '服务商应用AppID',
|
validator: (rule, value, callback) => {
|
if (form.app_appid || form.mp_sub_appid) {
|
callback();
|
}
|
callback(new Error('请输入服务商应用AppID'));
|
},
|
},
|
]"
|
>
|
<ProFormText
|
v-model.trim="form.app_appid"
|
placeholder="请输入服务商应用AppID(服务商应用AppID与商家应用AppID,二选一必填)"
|
/>
|
</ProFormItemV2>
|
<ProFormItemV2
|
label="商家应用AppID:"
|
prop="app_sub_appid"
|
:checkRules="[
|
{
|
message: '请输入商家应用AppID',
|
validator: (rule, value, callback) => {
|
if (form.mp_appid || form.app_sub_appid) {
|
callback();
|
}
|
callback(new Error('请输入商家应用AppID'));
|
},
|
},
|
]"
|
>
|
<ProFormText
|
v-model.trim="form.app_sub_appid"
|
placeholder="请输入商家应用AppID(服务商应用AppID与商家应用AppID,二选一必填)"
|
/>
|
</ProFormItemV2>
|
<ProFormItemV2
|
label="App截图:"
|
prop="app_pics"
|
:check-rules="[{ type: 'upload', message: '请上传App截图' }]"
|
>
|
<ProFormUpload
|
v-model:file-url="form.app_pics"
|
:limitFileCount="4"
|
accept="jpg/jpeg,png"
|
></ProFormUpload>
|
</ProFormItemV2>
|
</template>
|
|
<template
|
v-if="
|
form.sales_scenes_type.includes(EnumWeChatPayApplymentSalesScenesType.SALES_SCENES_WEB)
|
"
|
>
|
<ProFormItemV2
|
label="互联网网站域名:"
|
prop="domain"
|
:checkRules="[{ message: '请输入互联网网站域名' }]"
|
>
|
<ProFormText v-model.trim="form.domain" placeholder="请输入互联网网站域名" />
|
</ProFormItemV2>
|
<ProFormItemV2 label="网站授权函:" prop="web_authorisation">
|
<div style="display: flex">
|
<ProFormUpload
|
v-model:file-url="form.web_authorisation"
|
:limit="1"
|
:limitFileSize="10"
|
accept="png,jpg,jpeg,pdf"
|
></ProFormUpload>
|
<el-button
|
style="margin-left: 10px"
|
type="primary"
|
link
|
@click="downloadWebAuthorisationTemplate"
|
>模板下载</el-button
|
>
|
</div>
|
</ProFormItemV2>
|
</template>
|
|
<template
|
v-if="
|
form.sales_scenes_type.includes(EnumWeChatPayApplymentSalesScenesType.SALES_SCENES_WEWORK)
|
"
|
>
|
<ProFormItemV2
|
label="商家企业微信CorpID:"
|
prop="sub_corp_id"
|
:checkRules="[{ message: '请输入商家企业微信CorpID' }]"
|
>
|
<ProFormText v-model.trim="form.sub_corp_id" placeholder="请输入商家企业微信CorpID" />
|
</ProFormItemV2>
|
<ProFormItemV2
|
label="企业微信页面截图:"
|
prop="wework_pics"
|
:check-rules="[{ type: 'upload', message: '请上传企业微信页面截图' }]"
|
>
|
<ProFormUpload
|
v-model:file-url="form.wework_pics"
|
:limitFileCount="5"
|
accept="jpg/jpeg,png"
|
></ProFormUpload>
|
</ProFormItemV2>
|
</template>
|
|
<ProFormItemV2
|
label="入驻结算规则ID:"
|
prop="settlement_id"
|
:checkRules="[{ message: '请输入入驻结算规则ID' }]"
|
>
|
<div style="display: flex; width: 100%">
|
<ProFormText v-model.trim="form.settlement_id" placeholder="请输入入驻结算规则ID" />
|
<el-button style="margin-left: 10px" type="primary" link @click="openOuterSettleRule"
|
>费率结算规则对照表</el-button
|
>
|
</div>
|
</ProFormItemV2>
|
|
<ProFormItemV2
|
label="所属行业:"
|
prop="qualification_type"
|
:checkRules="[{ message: '请输入所属行业' }]"
|
>
|
<ProFormText
|
:maxlength="50"
|
v-model.trim="form.qualification_type"
|
placeholder="请输入所属行业(详细参见费率结算规则对照表)"
|
/>
|
</ProFormItemV2>
|
<ProFormItemV2 label="特殊资质图片:" prop="qualifications">
|
<ProFormUpload v-model:file-url="form.qualifications" accept="jpg/jpeg,png"></ProFormUpload>
|
</ProFormItemV2>
|
<ProFormItemV2
|
label="结算银行账户类型:"
|
prop="bank_account_type"
|
:checkRules="[{ message: '请选择结算银行账户类型' }]"
|
>
|
<ProFormSelect
|
v-model="form.bank_account_type"
|
:valueEnum="EnumWeChatPayApplymentBankAccountTypeText"
|
placeholder="请选择结算银行账户类型"
|
>
|
</ProFormSelect>
|
</ProFormItemV2>
|
<ProFormItemV2
|
label="开户名称:"
|
prop="account_name"
|
:checkRules="[{ message: '请输入开户名称' }]"
|
>
|
<ProFormText v-model.trim="form.account_name" placeholder="请输入开户名称" />
|
</ProFormItemV2>
|
<ProFormItemV2
|
label="开户银行:"
|
prop="account_bank"
|
:checkRules="[{ message: '请输入开户银行' }]"
|
>
|
<!-- <ProFormText v-model.trim="form.account_bank" placeholder="请输入开户银行" /> -->
|
<WeChatPayWalletBanksSelect
|
v-model.trim="form.account_bank"
|
placeholder="请输入开户银行"
|
clearable
|
/>
|
</ProFormItemV2>
|
<ProFormItemV2
|
label="开户银行省市编码:"
|
prop="bank_address_code"
|
:checkRules="[{ message: '请输入开户银行省市编码' }]"
|
>
|
<ProFormText v-model.trim="form.bank_address_code" placeholder="请输入开户银行省市编码" />
|
<el-button type="primary" link @click="downloadAddressCodeTemplate">省市编码模板</el-button>
|
</ProFormItemV2>
|
<ProFormItemV2
|
label="开户银行银行号:"
|
prop="bank_branch_id"
|
:checkRules="[{ message: '请输入开户银行银行号' }]"
|
>
|
<ProFormText v-model.trim="form.bank_branch_id" placeholder="请输入开户银行银行号" />
|
</ProFormItemV2>
|
<ProFormItemV2
|
label="开户银行全称(含支行):"
|
prop="bank_name"
|
:checkRules="[{ message: '请输入开户银行全称(含支行)' }]"
|
>
|
<ProFormText v-model.trim="form.bank_name" placeholder="请输入开户银行全称(含支行)" />
|
</ProFormItemV2>
|
<ProFormItemV2
|
label="银行账号:"
|
prop="account_number"
|
:checkRules="[{ message: '请输入银行账号', type: 'bankCard' }]"
|
>
|
<ProFormText v-model.trim="form.account_number" placeholder="请输入银行账号" />
|
</ProFormItemV2>
|
</ProForm>
|
</LoadingLayout>
|
</template>
|
|
<script setup lang="ts">
|
import { FormInstance, ModelValueType } from 'element-plus';
|
import {
|
ProForm,
|
ProFormItemV2,
|
ProFormText,
|
LoadingLayout,
|
UploadUserFile,
|
ProFormSelect,
|
ProFormUpload,
|
useFormDialog,
|
ProFormRadio,
|
ProFormDatePicker,
|
ProFormImageUpload,
|
ProFormInputNumber,
|
} from '@bole-core/components';
|
import * as enterpriseWalletServices from '@/services/api/enterpriseWallet';
|
import { useQuery } from '@tanstack/vue-query';
|
import { vatLicense, userCredentialVerifyOcrIDCard } from '@/hooks';
|
import {
|
EnumWeChatPayApplymentContactType,
|
EnumWeChatPayApplymentContactTypeText,
|
EnumWeChatPayApplymentIdDocType,
|
EnumWeChatPayApplymentIdDocTypeText,
|
EnumWeChatPayApplymentSubjectType,
|
EnumWeChatPayApplymentSubjectTypeText,
|
EnumWeChatPayApplymentCertTypeTextForSYDW,
|
EnumWeChatPayApplymentCertTypeTextForZFJG,
|
EnumWeChatPayApplymentCertTypeTextForSHZZ,
|
EnumWeChatPayApplymentIdHolderType,
|
EnumWeChatPayApplymentIdHolderTypeText,
|
EnumWeChatPayApplymentIdHolderTypeTextOnlyLEGAL,
|
EnumWeChatPayApplymentSalesScenesType,
|
EnumWeChatPayApplymentSalesScenesTypeText,
|
EnumWeChatPayApplymentBankAccountTypeText,
|
} from '@/constants';
|
import {
|
convertApi2FormUrl,
|
convertApi2FormUrlOnlyOne,
|
downloadFileByUrl,
|
format,
|
convertApi2FormUrls,
|
} from '@/utils';
|
import { Message } from '@bole-core/core';
|
import WeChatPayWalletBanksSelect from './WeChatPayWalletBanksSelect.vue';
|
|
defineOptions({
|
name: 'WechatConfigureView',
|
});
|
|
type Props = {
|
id: string;
|
};
|
|
type UboInfo = {
|
ubo_id_doc_type: EnumWeChatPayApplymentIdDocType;
|
ubo_id_doc_copy: UploadUserFile[];
|
ubo_id_doc_name: string;
|
ubo_id_doc_number: string;
|
ubo_id_doc_address: string;
|
ubo_period: ModelValueType;
|
};
|
|
const props = withDefaults(defineProps<Props>(), {});
|
|
const dialogForm = ref<FormInstance>();
|
|
const form = reactive({
|
business_code: '',
|
contact_type: EnumWeChatPayApplymentContactType.LEGAL,
|
contact_name: '',
|
contact_id_doc_type: '' as any as EnumWeChatPayApplymentIdDocType,
|
contact_id_number: '',
|
contact_id_doc_copy: [] as UploadUserFile[],
|
contact_id_doc_copy_back: [] as UploadUserFile[],
|
contact_period: [] as ModelValueType,
|
business_authorization_letter: [] as UploadUserFile[],
|
mobile_phone: '',
|
contact_email: '',
|
subject_type: '' as any as EnumWeChatPayApplymentSubjectType,
|
license_copy: [] as UploadUserFile[],
|
merchant_name: '',
|
license_number: '',
|
legal_person: '',
|
cert_copy: [] as UploadUserFile[],
|
cert_type: '' as any as EnumWeChatPayApplymentCertType,
|
cert_number: '',
|
cert_merchant_name: '',
|
cert_company_address: '',
|
cert_legal_person: '',
|
cert_period: [] as ModelValueType,
|
id_holder_type: '' as any as EnumWeChatPayApplymentIdHolderType,
|
id_doc_type: '' as any as EnumWeChatPayApplymentIdDocType,
|
authorize_letter_copy: [] as UploadUserFile[],
|
id_card_copy: [] as UploadUserFile[],
|
id_card_national: [] as UploadUserFile[],
|
id_card_name: '',
|
id_card_number: '',
|
id_card_address: '',
|
id_card_period: [] as ModelValueType,
|
id_doc_copy: [] as UploadUserFile[],
|
id_doc_name: '',
|
id_doc_number: '',
|
id_doc_period: [] as ModelValueType,
|
ubo_info_list: [] as UboInfo[],
|
merchant_shortname: '',
|
service_phone: '',
|
sales_scenes_type: [] as any as EnumWeChatPayApplymentSalesScenesType[],
|
biz_store_name: '',
|
biz_address_code: '',
|
biz_store_address: '',
|
store_entrance_pic: [] as UploadUserFile[],
|
indoor_pic: [] as UploadUserFile[],
|
mp_appid: '',
|
mp_sub_appid: '',
|
mp_pics: [] as UploadUserFile[],
|
mini_program_appid: '',
|
mini_program_sub_appid: '',
|
mini_program_pics: [] as UploadUserFile[],
|
app_appid: '',
|
app_sub_appid: '',
|
app_pics: [] as UploadUserFile[],
|
domain: '',
|
web_authorisation: [] as UploadUserFile[],
|
sub_corp_id: '',
|
wework_pics: [] as UploadUserFile[],
|
settlement_id: '',
|
qualification_type: '',
|
qualifications: [] as UploadUserFile[],
|
bank_account_type: '' as any as EnumWeChatPayApplymentBankAccountType,
|
account_name: '',
|
account_bank: '',
|
bank_address_code: '',
|
bank_branch_id: '',
|
bank_name: '',
|
account_number: '',
|
});
|
|
const EnumWeChatPayApplymentCertTypeTextList = computed(() => {
|
if (form.subject_type === EnumWeChatPayApplymentSubjectType.SUBJECT_TYPE_INSTITUTIONS) {
|
return EnumWeChatPayApplymentCertTypeTextForSYDW;
|
}
|
if (form.subject_type === EnumWeChatPayApplymentSubjectType.SUBJECT_TYPE_GOVERNMENT) {
|
return EnumWeChatPayApplymentCertTypeTextForZFJG;
|
}
|
if (form.subject_type === EnumWeChatPayApplymentSubjectType.SUBJECT_TYPE_OTHERS) {
|
return EnumWeChatPayApplymentCertTypeTextForSHZZ;
|
}
|
return [];
|
});
|
|
const EnumWeChatPayApplymentIdHolderTypeTextList = computed(() => {
|
if (
|
form.subject_type === EnumWeChatPayApplymentSubjectType.SUBJECT_TYPE_INSTITUTIONS ||
|
form.subject_type === EnumWeChatPayApplymentSubjectType.SUBJECT_TYPE_GOVERNMENT
|
) {
|
return EnumWeChatPayApplymentIdHolderTypeText;
|
}
|
return EnumWeChatPayApplymentIdHolderTypeTextOnlyLEGAL;
|
});
|
|
const id_doc_typeList = computed(() => {
|
if (form.subject_type === EnumWeChatPayApplymentSubjectType.SUBJECT_TYPE_GOVERNMENT) {
|
return EnumWeChatPayApplymentContactTypeTextForZFJG;
|
}
|
return EnumWeChatPayApplymentIdDocTypeText;
|
});
|
|
const { isLoading, refetch } = useQuery({
|
queryKey: [
|
'enterpriseWalletServices/getEnterpriseWallet',
|
props.id,
|
EnumEnterpriseWalletAccess.Alipay,
|
],
|
queryFn: async (ctx) => {
|
return await enterpriseWalletServices.getEnterpriseWeChatPayWallet({
|
enterpriseId: props.id,
|
});
|
},
|
onSuccess(data) {
|
form.business_code = data.business_code ?? '';
|
form.contact_type = data.contact_info?.contact_type;
|
form.contact_name = data.contact_info?.contact_name ?? '';
|
form.contact_id_doc_type = data.contact_info?.contact_id_doc_type;
|
form.contact_id_number = data.contact_info?.contact_id_number ?? '';
|
form.contact_id_doc_copy = convertApi2FormUrlOnlyOne(
|
data.contact_info?.contact_id_doc_copy ?? ''
|
);
|
form.contact_id_doc_copy_back = convertApi2FormUrlOnlyOne(
|
data.contact_info?.contact_id_doc_copy_back ?? ''
|
);
|
form.contact_period = [
|
format(data.contact_info?.contact_period_begin, 'YYYY-MM-DD'),
|
format(data.contact_info?.contact_period_end, 'YYYY-MM-DD'),
|
];
|
form.business_authorization_letter = convertApi2FormUrlOnlyOne(
|
data.contact_info?.business_authorization_letter ?? ''
|
);
|
form.mobile_phone = data.contact_info?.mobile_phone ?? '';
|
form.contact_email = data.contact_info?.contact_email ?? '';
|
form.subject_type = data.subject_info?.subject_type;
|
form.license_copy = convertApi2FormUrlOnlyOne(
|
data.subject_info?.business_license_info?.license_copy ?? ''
|
);
|
form.merchant_name = data.subject_info?.business_license_info?.merchant_name ?? '';
|
form.license_number = data.subject_info?.business_license_info?.license_number ?? '';
|
form.legal_person = data.subject_info?.business_license_info?.legal_person ?? '';
|
form.cert_copy = convertApi2FormUrlOnlyOne(
|
data.subject_info?.certificate_info?.cert_copy ?? ''
|
);
|
form.cert_type = data.subject_info?.certificate_info?.cert_type;
|
form.cert_number = data.subject_info?.certificate_info?.cert_number ?? '';
|
form.cert_merchant_name = data.subject_info?.certificate_info?.merchant_name ?? '';
|
form.cert_company_address = data.subject_info?.certificate_info?.company_address ?? '';
|
form.cert_legal_person = data.subject_info?.certificate_info?.legal_person ?? '';
|
form.cert_period = [
|
format(data.subject_info?.certificate_info?.period_begin, 'YYYY-MM-DD'),
|
format(data.subject_info?.certificate_info?.period_end, 'YYYY-MM-DD'),
|
];
|
form.id_holder_type = data.subject_info?.identity_info?.id_holder_type;
|
form.id_doc_type = data.subject_info?.identity_info?.id_doc_type;
|
form.authorize_letter_copy = convertApi2FormUrlOnlyOne(
|
data.subject_info?.identity_info?.authorize_letter_copy ?? ''
|
);
|
form.id_card_copy = convertApi2FormUrlOnlyOne(
|
data.subject_info?.identity_info?.id_card_info?.id_card_copy ?? ''
|
);
|
form.id_card_national = convertApi2FormUrlOnlyOne(
|
data.subject_info?.identity_info?.id_card_info?.id_card_national ?? ''
|
);
|
form.id_card_name = data.subject_info?.identity_info?.id_card_info?.id_card_name ?? '';
|
form.id_doc_number = data.subject_info?.identity_info?.id_doc_info?.id_doc_number ?? '';
|
form.id_doc_period = [
|
format(data.subject_info?.identity_info?.id_doc_info?.doc_period_begin, 'YYYY-MM-DD'),
|
format(data.subject_info?.identity_info?.id_doc_info?.doc_period_end, 'YYYY-MM-DD'),
|
];
|
form.ubo_info_list =
|
data.subject_info?.ubo_info_list?.length > 0
|
? data.subject_info?.ubo_info_list.map((x) => ({
|
ubo_id_doc_type: x.ubo_id_doc_type,
|
ubo_id_doc_copy: convertApi2FormUrlOnlyOne(x.ubo_id_doc_copy ?? ''),
|
ubo_id_doc_name: x.ubo_id_doc_name,
|
ubo_id_doc_number: x.ubo_id_doc_number,
|
ubo_id_doc_address: x.ubo_id_doc_address,
|
ubo_period: [
|
format(x.ubo_period_begin, 'YYYY-MM-DD'),
|
format(x.ubo_period_end, 'YYYY-MM-DD'),
|
],
|
}))
|
: [
|
{
|
ubo_id_doc_type: '' as any as EnumWeChatPayApplymentIdDocType,
|
ubo_id_doc_copy: [],
|
ubo_id_doc_name: '',
|
ubo_id_doc_number: '',
|
ubo_id_doc_address: '',
|
ubo_period: [],
|
},
|
];
|
form.merchant_shortname = data.business_info?.merchant_shortname ?? '';
|
form.service_phone = data.business_info?.service_phone ?? '';
|
form.sales_scenes_type = data.business_info?.sales_info?.sales_scenes_type ?? [];
|
form.biz_store_name = data.business_info?.sales_info?.biz_store_info?.biz_store_name ?? '';
|
form.biz_address_code = data.business_info?.sales_info?.biz_store_info?.biz_address_code;
|
form.biz_store_address =
|
data.business_info?.sales_info?.biz_store_info?.biz_store_address ?? '';
|
form.store_entrance_pic = convertApi2FormUrls(
|
data.business_info?.sales_info?.biz_store_info?.store_entrance_pic
|
);
|
form.indoor_pic = convertApi2FormUrls(
|
data.business_info?.sales_info?.biz_store_info?.indoor_pic
|
);
|
form.mp_appid = data.business_info?.sales_info?.mp_info?.mp_appid ?? '';
|
form.mp_sub_appid = data.business_info?.sales_info?.mp_info?.mp_sub_appid ?? '';
|
form.mp_pics = convertApi2FormUrls(data.business_info?.sales_info?.mp_info?.mp_pics);
|
form.mini_program_appid =
|
data.business_info?.sales_info?.mini_program_info?.mini_program_appid ?? '';
|
form.mini_program_sub_appid =
|
data.business_info?.sales_info?.mini_program_info?.mini_program_sub_appid ?? '';
|
form.mini_program_pics = convertApi2FormUrls(
|
data.business_info?.sales_info?.mini_program_info?.mini_program_pics
|
);
|
form.app_appid = data.business_info?.sales_info?.app_info?.app_appid ?? '';
|
form.app_sub_appid = data.business_info?.sales_info?.app_info?.app_sub_appid ?? '';
|
form.app_pics = convertApi2FormUrls(data.business_info?.sales_info?.app_info?.app_pics);
|
form.domain = data.business_info?.sales_info?.web_info?.domain ?? '';
|
form.web_authorisation = convertApi2FormUrlOnlyOne(
|
data.business_info?.sales_info?.web_info?.web_authorisation ?? ''
|
);
|
form.sub_corp_id = data.business_info?.sales_info?.wework_info?.sub_corp_id ?? '';
|
form.wework_pics = convertApi2FormUrls(
|
data.business_info?.sales_info?.wework_info?.wework_pics
|
);
|
form.settlement_id = data.settlement_info?.settlement_id ?? '';
|
form.qualification_type = data.settlement_info?.qualification_type ?? '';
|
form.qualifications = convertApi2FormUrls(data.settlement_info?.qualifications);
|
form.bank_account_type = data.bank_account_info?.bank_account_type;
|
form.account_name = data.bank_account_info?.account_name ?? '';
|
form.account_bank = data.bank_account_info?.account_bank ?? '';
|
form.bank_address_code = data.bank_account_info?.bank_address_code ?? '';
|
form.bank_branch_id = data.bank_account_info?.bank_branch_id ?? '';
|
form.bank_name = data.bank_account_info?.bank_name ?? '';
|
form.account_number = data.bank_account_info?.account_number ?? '';
|
},
|
});
|
|
function addUboInfo() {
|
if (form.ubo_info_list.length >= 3) {
|
Message.errorMessage('最多添加3个受益人');
|
return;
|
}
|
form.ubo_info_list.push({
|
ubo_id_doc_type: '' as any as EnumWeChatPayApplymentIdDocType,
|
ubo_id_doc_copy: [],
|
ubo_id_doc_name: '',
|
ubo_id_doc_number: '',
|
ubo_id_doc_address: '',
|
ubo_period: [],
|
});
|
}
|
|
function deleteUboInfo(index: number) {
|
if (form.ubo_info_list.length <= 1) {
|
Message.errorMessage('至少保留一个受益人');
|
return;
|
}
|
form.ubo_info_list.splice(index, 1);
|
}
|
|
const handleLicenseUrlChange = (response: UploadUserFile) => {
|
vatLicense(response, {
|
onSuccess(res) {
|
let tips: string[] = [];
|
res?.enterpriseName ? (form.merchant_name = res.enterpriseName) : tips.push('商户名称');
|
res?.societyCreditCode
|
? (form.license_number = res.societyCreditCode)
|
: tips.push('统一社会信用代码');
|
res?.legalPerson ? (form.legal_person = res.legalPerson) : tips.push('法人姓名');
|
if (tips.length > 0) {
|
Message.errorMessage(
|
`未能识别到您上传的图片,请重新上传清晰的图片或手动输入${tips.join('和')}`
|
);
|
}
|
},
|
});
|
};
|
|
function handleFrontImgUrlChange(response: UploadUserFile) {
|
userCredentialVerifyOcrIDCard({
|
url: response?.url,
|
access: EnumOcrAccess.Baidu,
|
onSuccess(res) {
|
if (res.name) form.id_card_name = res.name;
|
if (res.identity) form.id_card_number = res.identity;
|
},
|
});
|
}
|
|
function openOuterSettleRule() {
|
window.open('https://kf.qq.com/faq/220228IJb2UV220228uEjU3Q.html', '_blank');
|
}
|
|
async function enterpriseWalletExpandindirectCreate() {
|
try {
|
if (!dialogForm.value) return;
|
const valid = await dialogForm.value.validate();
|
if (!valid) return;
|
let params: API.EnterpriseWalletExpandindirectCreateCommand = {};
|
let res = await enterpriseWalletServices.enterpriseWalletExpandindirectCreate(params);
|
return res;
|
} catch (error) {}
|
}
|
|
function downloadFRTemplate() {
|
downloadFileByUrl(
|
'https://parkmanagement.oss-cn-hangzhou.aliyuncs.com/FlexJob/temp/%E6%B3%95%E4%BA%BA%E4%BB%A3%E8%A1%A8%E8%AF%B4%E6%98%8E%E5%87%BD.png',
|
'法定代表人说明函'
|
);
|
}
|
|
function downloadTemplate() {
|
downloadFileByUrl(
|
'https://parkmanagement.oss-cn-hangzhou.aliyuncs.com/FlexJob/temp/%E4%B8%9A%E5%8A%A1%E5%8A%9E%E7%90%86%E6%8E%88%E6%9D%83%E5%87%BD.png',
|
'业务办理授权函'
|
);
|
}
|
|
function downloadWebAuthorisationTemplate() {
|
downloadFileByUrl(
|
'https://parkmanagement.oss-cn-hangzhou.aliyuncs.com/FlexJob/temp/%E7%BD%91%E7%AB%99%E6%8E%88%E6%9D%83%E5%87%BD.doc',
|
'网站授权函'
|
);
|
}
|
function downloadAddressCodeTemplate() {
|
downloadFileByUrl(
|
'https://parkmanagement.oss-cn-hangzhou.aliyuncs.com/FlexJob/temp/%E3%80%8A%E7%9C%81%E5%B8%82%E5%8C%BA%E7%BC%96%E5%8F%B7%E5%AF%B9%E7%85%A7%E8%A1%A8%E3%80%8B.xlsx',
|
'省市编码模版'
|
);
|
}
|
|
defineExpose({
|
onConfirm: enterpriseWalletExpandindirectCreate,
|
});
|
</script>
|
|
<style lang="scss" scoped>
|
@use '@/style/common.scss' as *;
|
|
.ubo-info-list-wrapper {
|
.ubo-info-list-top {
|
display: flex;
|
justify-content: space-between;
|
|
.ubo-info-list-title {
|
margin: 12px 0;
|
font-size: 16px;
|
font-weight: bold;
|
color: getCssVar('text-color', 'primary');
|
line-height: 24px;
|
}
|
}
|
}
|
</style>
|