From bb9dac08d11f4e90c355e08ba6ffdfd0f9303d31 Mon Sep 17 00:00:00 2001 From: wupengfei <834520024@qq.com> Date: 星期一, 13 十月 2025 14:37:17 +0800 Subject: [PATCH] feat: 微信 --- src/views/EnterpriseManage/components/WechatConfigureView.vue | 284 ++++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 262 insertions(+), 22 deletions(-) diff --git a/src/views/EnterpriseManage/components/WechatConfigureView.vue b/src/views/EnterpriseManage/components/WechatConfigureView.vue index f39f332..bd6f784 100644 --- a/src/views/EnterpriseManage/components/WechatConfigureView.vue +++ b/src/views/EnterpriseManage/components/WechatConfigureView.vue @@ -1,6 +1,6 @@ <template> <LoadingLayout :loading="isLoading"> - <ProForm :model="form" ref="dialogForm" label-width="150px"> + <ProForm :model="form" ref="dialogForm" label-width="210px"> <ProFormItemV2 label="涓氬姟鐢宠缂栧彿:" prop="business_code" @@ -569,12 +569,17 @@ <ProFormItemV2 label="绾夸笅鍦烘墍鐪佸競缂栫爜:" prop="biz_address_code" - :checkRules="[{ message: '璇疯緭鍏ョ嚎涓嬪満鎵�鐪佸競缂栫爜' }]" + :checkRules="[{ message: '璇疯緭鍏ョ嚎涓嬪満鎵�鐪佸競缂栫爜', type: 'number' }]" > - <ProFormInputNumber - v-model.trim="form.biz_address_code" - placeholder="璇疯緭鍏ョ嚎涓嬪満鎵�鐪佸競缂栫爜" - /> + <div style="display: flex; width: 100%"> + <ProFormText + v-model.trim="form.biz_address_code" + placeholder="璇疯緭鍏ョ嚎涓嬪満鎵�鐪佸競缂栫爜" + /> + <el-button type="primary" link @click="downloadAddressCodeTemplate" + >鐪佸競缂栫爜妯℃澘</el-button + > + </div> </ProFormItemV2> <ProFormItemV2 label="绾夸笅鍦烘墍鍦板潃:" @@ -891,6 +896,18 @@ <ProFormText v-model.trim="form.account_bank" placeholder="璇疯緭鍏ュ紑鎴烽摱琛�" /> </ProFormItemV2> <ProFormItemV2 + label="寮�鎴烽摱琛岀渷甯傜紪鐮�:" + prop="bank_address_code" + :checkRules="[{ message: '璇疯緭鍏ュ紑鎴烽摱琛岀渷甯傜紪鐮�' }]" + > + <div style="display: flex; width: 100%"> + <ProFormText v-model.trim="form.bank_address_code" placeholder="璇疯緭鍏ュ紑鎴烽摱琛岀渷甯傜紪鐮�" /> + <el-button type="primary" link @click="downloadAddressCodeTemplate" + >鐪佸競缂栫爜妯℃澘</el-button + > + </div> + </ProFormItemV2> + <ProFormItemV2 label="寮�鎴烽摱琛岄摱琛屽彿:" prop="bank_branch_id" :checkRules="[{ message: '璇疯緭鍏ュ紑鎴烽摱琛岄摱琛屽彿' }]" @@ -898,11 +915,11 @@ <ProFormText v-model.trim="form.bank_branch_id" placeholder="璇疯緭鍏ュ紑鎴烽摱琛岄摱琛屽彿" /> </ProFormItemV2> <ProFormItemV2 - label="寮�鎴烽摱琛屽叏绉帮紙鍚敮琛岋級:" + label="寮�鎴烽摱琛屽叏绉�(鍚敮琛�):" prop="bank_name" - :checkRules="[{ message: '璇疯緭鍏ュ紑鎴烽摱琛屽叏绉帮紙鍚敮琛岋級' }]" + :checkRules="[{ message: '璇疯緭鍏ュ紑鎴烽摱琛屽叏绉�(鍚敮琛�)' }]" > - <ProFormText v-model.trim="form.bank_name" placeholder="璇疯緭鍏ュ紑鎴烽摱琛屽叏绉帮紙鍚敮琛岋級" /> + <ProFormText v-model.trim="form.bank_name" placeholder="璇疯緭鍏ュ紑鎴烽摱琛屽叏绉�(鍚敮琛�)" /> </ProFormItemV2> <ProFormItemV2 label="閾惰璐﹀彿:" @@ -951,14 +968,7 @@ EnumWeChatPayApplymentSalesScenesTypeText, EnumWeChatPayApplymentBankAccountTypeText, } from '@/constants'; -import { - convertApi2FormUrl, - convertApi2FormUrlOnlyOne, - convertWalletApiToFiles, - convertWalletFilesToApi, - downloadFileByUrl, - format, -} from '@/utils'; +import { convertApi2FormUrl, convertApi2FormUrlOnlyOne, downloadFileByUrl, format } from '@/utils'; import { Message } from '@bole-core/core'; defineOptions({ @@ -1024,7 +1034,7 @@ service_phone: '', sales_scenes_type: [] as any as EnumWeChatPayApplymentSalesScenesType[], biz_store_name: '', - biz_address_code: null as Number, + biz_address_code: '', biz_store_address: '', store_entrance_pic: [] as UploadUserFile[], indoor_pic: [] as UploadUserFile[], @@ -1047,6 +1057,7 @@ bank_account_type: '' as any as EnumWeChatPayApplymentBankAccountType, account_name: '', account_bank: '', + bank_address_code: '', bank_branch_id: '', bank_name: '', account_number: '', @@ -1133,6 +1144,109 @@ 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 = + data.business_info?.sales_info?.biz_store_info?.store_entrance_pic.length > 0 + ? data.business_info?.sales_info?.biz_store_info?.store_entrance_pic.map((x) => + convertApi2FormUrl(x) + ) + : []; + form.indoor_pic = + data.business_info?.sales_info?.biz_store_info?.indoor_pic.length > 0 + ? data.business_info?.sales_info?.biz_store_info?.indoor_pic.map((x) => + convertApi2FormUrl(x) + ) + : []; + 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 = + data.business_info?.sales_info?.mp_info?.mp_pics.length > 0 + ? data.business_info?.sales_info?.mp_info?.mp_pics.map((x) => convertApi2FormUrl(x)) + : []; + 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 = + data.business_info?.sales_info?.mini_program_info?.mini_program_pics.length > 0 + ? data.business_info?.sales_info?.mini_program_info?.mini_program_pics.map((x) => + convertApi2FormUrl(x) + ) + : []; + 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 = + data.business_info?.sales_info?.app_info?.app_pics.length > 0 + ? data.business_info?.sales_info?.app_info?.app_pics.map((x) => convertApi2FormUrl(x)) + : []; + 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 = + data.business_info?.sales_info?.wework_info?.wework_pics.length > 0 + ? data.business_info?.sales_info?.wework_info?.wework_pics.map((x) => convertApi2FormUrl(x)) + : []; + form.settlement_id = data.settlement_info?.settlement_id ?? ''; + form.qualification_type = data.settlement_info?.qualification_type ?? ''; + form.qualifications = + data.settlement_info?.qualifications?.length > 0 + ? data.settlement_info?.qualifications.map((x) => convertApi2FormUrl(x)) + : []; + 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 ?? ''; }, }); @@ -1152,6 +1266,10 @@ } function deleteUboInfo(index: number) { + if (form.ubo_info_list.length <= 1) { + Message.errorMessage('鑷冲皯淇濈暀涓�涓彈鐩婁汉'); + return; + } form.ubo_info_list.splice(index, 1); } @@ -1188,13 +1306,129 @@ window.open('https://kf.qq.com/faq/220228IJb2UV220228uEjU3Q.html', '_blank'); } -async function enterpriseWalletExpandindirectCreate() { +async function openEnterpriseWeChatPayWallet() { try { if (!dialogForm.value) return; const valid = await dialogForm.value.validate(); if (!valid) return; - let params: API.EnterpriseWalletExpandindirectCreateCommand = {}; - let res = await enterpriseWalletServices.enterpriseWalletExpandindirectCreate(params); + let params: API.OpenEnterpriseWeChatPayWalletCommand = { + enterpriseId: props.id, + business_code: form.business_code, + contact_info: { + contact_type: form.contact_type, + contact_name: form.contact_name, + contact_id_doc_type: form.contact_id_doc_type, + contact_id_number: form.contact_id_number, + contact_id_doc_copy: form.contact_id_doc_copy?.[0]?.path, + contact_id_doc_copy_back: form.contact_id_doc_copy_back?.[0]?.path, + contact_period_begin: format(form.contact_period[0], 'YYYY-MM-DD 00:00:00'), + contact_period_end: format(form.contact_period[1], 'YYYY-MM-DD 23:59:59'), + business_authorization_letter: form.business_authorization_letter?.[0]?.path, + mobile_phone: form.mobile_phone, + contact_email: form.contact_email, + }, + subject_info: { + subject_type: form.subject_type, + business_license_info: { + license_copy: form.license_copy?.[0]?.path, + merchant_name: form.merchant_name, + license_number: form.license_number, + legal_person: form.legal_person, + }, + certificate_info: { + cert_copy: form.cert_copy?.[0]?.path, + cert_type: form.cert_type, + cert_number: form.cert_number, + merchant_name: form.cert_merchant_name, + company_address: form.cert_company_address, + legal_person: form.cert_legal_person, + period_begin: format(form.cert_period[0], 'YYYY-MM-DD 00:00:00'), + period_end: format(form.cert_period[1], 'YYYY-MM-DD 23:59:59'), + }, + identity_info: { + id_holder_type: form.id_holder_type, + id_doc_type: form.id_doc_type, + authorize_letter_copy: form.authorize_letter_copy?.[0]?.path, + id_card_info: { + id_card_copy: form.id_card_copy?.[0]?.path, + id_card_national: form.id_card_national?.[0]?.path, + id_card_name: form.id_card_name, + id_card_number: form.id_card_number, + card_period_begin: format(form.id_card_period[0], 'YYYY-MM-DD 00:00:00'), + card_period_end: format(form.id_card_period[1], 'YYYY-MM-DD 23:59:59'), + }, + }, + ubo_info_list: + form.ubo_info_list?.length > 0 + ? form.ubo_info_list.map((x) => ({ + ubo_id_doc_type: x.ubo_id_doc_type, + ubo_id_doc_copy: x.ubo_id_doc_copy?.[0]?.path, + 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_begin: format(x.ubo_period[0], 'YYYY-MM-DD 00:00:00'), + ubo_period_end: format(x.ubo_period[1], 'YYYY-MM-DD 23:59:59'), + })) + : [], + }, + business_info: { + merchant_shortname: form.merchant_shortname, + service_phone: form.service_phone, + sales_info: { + sales_scenes_type: form.sales_scenes_type, + biz_store_info: { + biz_store_name: form.biz_store_name, + biz_address_code: form.biz_address_code, + biz_store_address: form.biz_store_address, + store_entrance_pic: + form.store_entrance_pic?.length > 0 + ? form.store_entrance_pic?.map((x) => x.path) + : [], + indoor_pic: form.indoor_pic?.length > 0 ? form.indoor_pic?.map((x) => x.path) : [], + }, + mp_info: { + mp_appid: form.mp_appid, + mp_sub_appid: form.mp_sub_appid, + mp_pics: form.mp_pics?.length > 0 ? form.mp_pics?.map((x) => x.path) : [], + }, + mini_program_info: { + mini_program_appid: form.mini_program_appid, + mini_program_sub_appid: form.mini_program_sub_appid, + mini_program_pics: + form.mini_program_pics?.length > 0 ? form.mini_program_pics?.map((x) => x.path) : [], + }, + app_info: { + app_appid: form.app_appid, + app_sub_appid: form.app_sub_appid, + app_pics: form.app_pics?.length > 0 ? form.app_pics?.map((x) => x.path) : [], + }, + web_info: { + domain: form.domain, + web_authorisation: form.web_authorisation?.[0]?.path, + }, + wework_info: { + sub_corp_id: form.sub_corp_id, + wework_pics: form.wework_pics?.length > 0 ? form.wework_pics?.map((x) => x.path) : [], + }, + }, + }, + settlement_info: { + settlement_id: form.settlement_id, + qualification_type: form.qualification_type, + qualifications: + form.qualifications?.length > 0 ? form.qualifications?.map((x) => x.path) : [], + }, + bank_account_info: { + bank_account_type: form.bank_account_type, + account_name: form.account_name, + account_bank: form.account_bank, + bank_address_code: form.bank_address_code, + bank_branch_id: form.bank_branch_id, + bank_name: form.bank_name, + account_number: form.account_number, + }, + }; + let res = await enterpriseWalletServices.openEnterpriseWeChatPayWallet(params); return res; } catch (error) {} } @@ -1219,9 +1453,15 @@ '缃戠珯鎺堟潈鍑�' ); } +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, + onConfirm: openEnterpriseWeChatPayWallet, }); </script> -- Gitblit v1.9.1