zhengyiming
5 天以前 5913b702de5cbb9d0b2bb84a420f786026c4be6c
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"
@@ -570,12 +570,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="线下场所地址:"
@@ -889,7 +894,24 @@
        prop="account_bank"
        :checkRules="[{ message: '请输入开户银行' }]"
      >
        <ProFormText v-model.trim="form.account_bank" placeholder="请输入开户银行" />
        <!-- <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: '请输入开户银行省市编码' }]"
      >
        <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="开户银行银行号:"
@@ -899,11 +921,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="银行账号:"
@@ -955,12 +977,12 @@
import {
  convertApi2FormUrl,
  convertApi2FormUrlOnlyOne,
  convertWalletApiToFiles,
  convertWalletFilesToApi,
  downloadFileByUrl,
  format,
  convertApi2FormUrls,
} from '@/utils';
import { Message } from '@bole-core/core';
import WeChatPayWalletBanksSelect from './WeChatPayWalletBanksSelect.vue';
defineOptions({
  name: 'WechatConfigureView',
@@ -1025,7 +1047,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[],
@@ -1048,6 +1070,7 @@
  bank_account_type: '' as any as EnumWeChatPayApplymentBankAccountType,
  account_name: '',
  account_bank: '',
  bank_address_code: '',
  bank_branch_id: '',
  bank_name: '',
  account_number: '',
@@ -1134,6 +1157,90 @@
      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 ?? '';
  },
});
@@ -1153,6 +1260,10 @@
}
function deleteUboInfo(index: number) {
  if (form.ubo_info_list.length <= 1) {
    Message.errorMessage('至少保留一个受益人');
    return;
  }
  form.ubo_info_list.splice(index, 1);
}
@@ -1189,13 +1300,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) {}
}
@@ -1220,9 +1447,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>