zhengyiming
4 天以前 8801557b82facd8c7a8d5fb2ec8a3ace8bc557ca
fix: s
3个文件已添加
4个文件已修改
516 ■■■■■ 已修改文件
src/components/Form/FieldPaginationSelect.vue 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/Form/ProFormPaginationSelect.vue 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/services/api/enterpriseWallet.ts 92 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/services/api/typings.d.ts 227 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/utils/common/file.ts 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/EnterpriseManage/components/WeChatPayWalletBanksSelect.vue 65 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/EnterpriseManage/components/WechatConfigureView.vue 65 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/Form/FieldPaginationSelect.vue
New file
@@ -0,0 +1,32 @@
<template>
  <div>
    <el-select v-model="modelValue" v-bind="{ ...$attrs }">
      <el-option
        v-for="item in proTableProps.tableData"
        :key="item.bank_alias"
        :label="item.bank_alias"
        :value="item.bank_alias"
      >
      </el-option>
      <template #footer>
        <ProPagination v-bind="proTableProps" layout="total, prev, pager, next"></ProPagination>
      </template>
    </el-select>
  </div>
</template>
<script setup lang="ts">
import { ProPagination } from '@bole-core/components';
defineOptions({
  name: 'FieldPaginationSelect',
});
type Props = {
  proTableProps: any;
};
const props = withDefaults(defineProps<Props>(), {});
const modelValue = defineModel<string>();
</script>
src/components/Form/ProFormPaginationSelect.vue
New file
@@ -0,0 +1,31 @@
<template>
  <ProFieldCustom>
    <FieldPaginationSelect
      v-model="modelValue"
      :proTableProps="proTableProps"
      v-bind="{ ...$attrs }"
    />
  </ProFieldCustom>
</template>
<script setup lang="ts">
import { ProFieldCustom } from '@bole-core/components';
import FieldPaginationSelect from './FieldPaginationSelect.vue';
defineOptions({
  name: 'ProFormPaginationSelect',
});
type Props = {
  proTableProps: any;
};
const props = withDefaults(defineProps<Props>(), {});
console.log('props: ', props);
const modelValue = defineModel<string>();
</script>
<style lang="scss" scoped>
@use '@/style/common.scss' as *;
</style>
src/services/api/enterpriseWallet.ts
@@ -313,6 +313,98 @@
  );
}
/** 查询企业微信钱包地区 GET /api/user/enterpriseWallet/getEnterpriseWeChatPayWalletAreas */
export async function getEnterpriseWeChatPayWalletAreas(
  // 叠加生成的Param类型 (非body参数swagger默认没有生成对象)
  params: API.APIgetEnterpriseWeChatPayWalletAreasParams,
  options?: API.RequestConfig
) {
  return request<API.WeChatPayArea[]>(
    '/api/user/enterpriseWallet/getEnterpriseWeChatPayWalletAreas',
    {
      method: 'GET',
      params: {
        ...params,
      },
      ...(options || {}),
    }
  );
}
/** 查询企业微信支付钱包支行分页列表 POST /api/user/enterpriseWallet/getEnterpriseWeChatPayWalletBankBranches */
export async function getEnterpriseWeChatPayWalletBankBranches(
  body: API.GetEnterpriseWeChatPayWalletBankBranchesQuery,
  options?: API.RequestConfig
) {
  return request<API.GetEnterpriseWeChatPayWalletBankBranchesQueryResult>(
    '/api/user/enterpriseWallet/getEnterpriseWeChatPayWalletBankBranches',
    {
      method: 'POST',
      headers: {
        'Content-Type': 'application/json-patch+json',
      },
      data: body,
      ...(options || {}),
    }
  );
}
/** 查询企业微信支付钱包银行城市列表 GET /api/user/enterpriseWallet/getEnterpriseWeChatPayWalletBankCities */
export async function getEnterpriseWeChatPayWalletBankCities(
  // 叠加生成的Param类型 (非body参数swagger默认没有生成对象)
  params: API.APIgetEnterpriseWeChatPayWalletBankCitiesParams,
  options?: API.RequestConfig
) {
  return request<API.GetEnterpriseWeChatPayWalletBankCitiesQueryItem[]>(
    '/api/user/enterpriseWallet/getEnterpriseWeChatPayWalletBankCities',
    {
      method: 'GET',
      params: {
        ...params,
      },
      ...(options || {}),
    }
  );
}
/** 查询企业微信支付钱包银行省份列表 GET /api/user/enterpriseWallet/getEnterpriseWeChatPayWalletBankProvinces */
export async function getEnterpriseWeChatPayWalletBankProvinces(
  // 叠加生成的Param类型 (非body参数swagger默认没有生成对象)
  params: API.APIgetEnterpriseWeChatPayWalletBankProvincesParams,
  options?: API.RequestConfig
) {
  return request<API.GetEnterpriseWeChatPayWalletBankProvincesQueryItem[]>(
    '/api/user/enterpriseWallet/getEnterpriseWeChatPayWalletBankProvinces',
    {
      method: 'GET',
      params: {
        ...params,
        request: undefined,
        ...params['request'],
      },
      ...(options || {}),
    }
  );
}
/** 查询企业微信支付钱包银行分页列表 POST /api/user/enterpriseWallet/getEnterpriseWeChatPayWalletBanks */
export async function getEnterpriseWeChatPayWalletBanks(
  body: API.GetEnterpriseWeChatPayWalletBanksQuery,
  options?: API.RequestConfig
) {
  return request<API.GetEnterpriseWeChatPayWalletBanksQueryResult>(
    '/api/user/enterpriseWallet/getEnterpriseWeChatPayWalletBanks',
    {
      method: 'POST',
      headers: {
        'Content-Type': 'application/json-patch+json',
      },
      data: body,
      ...(options || {}),
    }
  );
}
/** 开通企业钱包 POST /api/user/enterpriseWallet/openEnterpriseWallet */
export async function openEnterpriseWallet(
  body: API.OpenEnterpriseWalletCommand,
src/services/api/typings.d.ts
@@ -134,6 +134,21 @@
    id?: string;
  }
  interface APIgetEnterpriseWeChatPayWalletAreasParams {
    /** 最大深度 */
    maxDeep?: number;
  }
  interface APIgetEnterpriseWeChatPayWalletBankCitiesParams {
    /** 省份编码,唯一标识一个省份,用于查询该省份下的城市列表 */
    provinceCode: number;
  }
  interface APIgetEnterpriseWeChatPayWalletBankProvincesParams {
    /** 查询企业微信支付钱包银行省份列表 */
    request?: GetEnterpriseWeChatPayWalletBankProvincesQuery;
  }
  interface APIgetEnterpriseWeChatPayWalletParams {
    /** 企业Id */
    enterpriseId?: string;
@@ -1675,6 +1690,42 @@
    timestamp?: number;
  }
  interface FriendlyResultGetEnterpriseWeChatPayWalletBankBranchesQueryResult {
    /** 跟踪Id */
    traceId?: string;
    /** 状态码 */
    code?: number;
    /** 错误码 */
    errorCode?: string;
    data?: GetEnterpriseWeChatPayWalletBankBranchesQueryResult;
    /** 执行成功 */
    success?: boolean;
    /** 错误信息 */
    msg?: any;
    /** 附加数据 */
    extras?: any;
    /** 时间戳 */
    timestamp?: number;
  }
  interface FriendlyResultGetEnterpriseWeChatPayWalletBanksQueryResult {
    /** 跟踪Id */
    traceId?: string;
    /** 状态码 */
    code?: number;
    /** 错误码 */
    errorCode?: string;
    data?: GetEnterpriseWeChatPayWalletBanksQueryResult;
    /** 执行成功 */
    success?: boolean;
    /** 错误信息 */
    msg?: any;
    /** 附加数据 */
    extras?: any;
    /** 时间戳 */
    timestamp?: number;
  }
  interface FriendlyResultGetEnterpriseWeChatPayWalletQueryResult {
    /** 跟踪Id */
    traceId?: string;
@@ -2526,6 +2577,44 @@
    timestamp?: number;
  }
  interface FriendlyResultListGetEnterpriseWeChatPayWalletBankCitiesQueryItem {
    /** 跟踪Id */
    traceId?: string;
    /** 状态码 */
    code?: number;
    /** 错误码 */
    errorCode?: string;
    /** 数据 */
    data?: GetEnterpriseWeChatPayWalletBankCitiesQueryItem[];
    /** 执行成功 */
    success?: boolean;
    /** 错误信息 */
    msg?: any;
    /** 附加数据 */
    extras?: any;
    /** 时间戳 */
    timestamp?: number;
  }
  interface FriendlyResultListGetEnterpriseWeChatPayWalletBankProvincesQueryItem {
    /** 跟踪Id */
    traceId?: string;
    /** 状态码 */
    code?: number;
    /** 错误码 */
    errorCode?: string;
    /** 数据 */
    data?: GetEnterpriseWeChatPayWalletBankProvincesQueryItem[];
    /** 执行成功 */
    success?: boolean;
    /** 错误信息 */
    msg?: any;
    /** 附加数据 */
    extras?: any;
    /** 时间戳 */
    timestamp?: number;
  }
  interface FriendlyResultListGetMenusQueryResultItem {
    /** 跟踪Id */
    traceId?: string;
@@ -2725,6 +2814,25 @@
    errorCode?: string;
    /** 数据 */
    data?: SelectOptionStringGetDictionaryDataSelectQueryResultOption[];
    /** 执行成功 */
    success?: boolean;
    /** 错误信息 */
    msg?: any;
    /** 附加数据 */
    extras?: any;
    /** 时间戳 */
    timestamp?: number;
  }
  interface FriendlyResultListWeChatPayArea {
    /** 跟踪Id */
    traceId?: string;
    /** 状态码 */
    code?: number;
    /** 错误码 */
    errorCode?: string;
    /** 数据 */
    data?: WeChatPayArea[];
    /** 执行成功 */
    success?: boolean;
    /** 错误信息 */
@@ -3968,9 +4076,73 @@
    transactionStatus?: EnumWalletTransactionStatus;
  }
  interface GetEnterpriseWeChatPayWalletBankBranchesQuery {
    /** 银行别名编码
银行别名的编码,查询支行接口仅支持需要填写支行的银行别名编码 */
    bank_alias_code: string;
    /** 城市编码,唯一标识一座城市,用于结合银行别名编码查询支行列表 */
    city_code: number;
    pageModel?: PagedListQueryPageModel;
  }
  interface GetEnterpriseWeChatPayWalletBankBranchesQueryResult {
    pageModel?: PagedListQueryResultPageModel;
    /** 数据 */
    data?: GetEnterpriseWeChatPayWalletBankBranchesQueryResultItem[];
  }
  interface GetEnterpriseWeChatPayWalletBankBranchesQueryResultItem {
    /** 开户银行支行名称,用于开户银行为其他银行的情况下,在入驻、修改结算银行卡、企业付款等场景下填写结算银行卡信息 */
    bank_branch_name: string;
    /** 开户银行支行的联行号,用于开户银行为其他银行的情况下,在入驻、修改结算银行卡、企业付款等场景下填写结算银行卡信息 */
    bank_branch_id: string;
  }
  interface GetEnterpriseWeChatPayWalletBankCitiesQueryItem {
    /** 城市名称,必填 */
    city_name: string;
    /** 城市编码,唯一标识一座城市,用于结合银行别名编码查询支行列表,必填 */
    city_code: number;
  }
  type GetEnterpriseWeChatPayWalletBankProvincesQuery = Record<string, any>;
  interface GetEnterpriseWeChatPayWalletBankProvincesQueryItem {
    /** 省份名称,必填 */
    province_name: string;
    /** 省份编码,唯一标识一个省份,用于查询该省份下的城市列表,必填 */
    province_code: number;
  }
  interface GetEnterpriseWeChatPayWalletBanksQuery {
    bank_account_type: EnumWeChatPayApplymentBankAccountType;
    pageModel?: PagedListQueryPageModel;
  }
  interface GetEnterpriseWeChatPayWalletBanksQueryResult {
    pageModel?: PagedListQueryResultPageModel;
    /** 数据 */
    data?: GetEnterpriseWeChatPayWalletBanksQueryResultItem[];
  }
  interface GetEnterpriseWeChatPayWalletBanksQueryResultItem {
    /** 银行别名,用于在前端展示全量银行名称供用户选择,如工商银行、深圳前海微众银行等共计4000多家银行的别名名称 */
    bankAlias?: string;
    /** 银行别名编码,用于在查询支行列表接口检索获取支行列表(仅开户银行为其他银行时需要查询支行) */
    bankAliasCode?: string;
    /** 开户银行名称,用于在入驻、修改结算银行卡、企业付款等场景中填写所用银行卡对应的开户银行,其中非直连银行统一为其他银行 */
    accountBank?: string;
    /** 开户银行编码,用于在入驻、修改结算银行卡、企业付款等场景中填写所用银行卡对应的开户银行,其中非直连银行统一为 1099 */
    accountBankCode?: number;
    /** 是否需要填写支行,该开户银行是否需要传入对应的支行,需要请使用银行别名编码和城市编码查询选择具体的支行并传入(默认值为true)
如需查询城市编码,需要通过查询城市列表接口获取相应的城市编码信息 */
    needBankBranch?: boolean;
  }
  interface GetEnterpriseWeChatPayWalletQueryResult {
    /** 钱包Id */
    id?: string;
    bank_account_info: GetEnterpriseWeChatPayWalletQueryResultBankAccountInfo;
    /** 超级管理员签约链接
1、超级管理员用微信扫码,关注“微信支付商家助手”公众号后,公众号将自动发送签约消息;超管需点击消息,根据指引完成核对联系信息、账户验证、签约等操作;
2、超管完成核对联系信息,后续申请单进度可通过公众号自动通知超级管理员 */
@@ -3991,8 +4163,42 @@
    subject_info: WeChatPayApplymentBodyParametersSubjectInfo;
    business_info: WeChatPayApplymentBodyParametersBusinessInfo;
    settlement_info: WeChatPayApplymentBodyParametersSettlementInfo;
    bank_account_info: WeChatPayApplymentBodyParametersBankAccountInfo;
    addition_info?: WeChatPayApplymentBodyParametersAdditionInfo;
  }
  interface GetEnterpriseWeChatPayWalletQueryResultBankAccountInfo {
    /** 银行别名编码
银行别名的编码,查询支行接口仅支持需要填写支行的银行别名编码 */
    bank_alias_code?: string;
    /** 城市编码,唯一标识一座城市,用于结合银行别名编码查询支行列表 */
    city_code?: number;
    bank_account_type: EnumWeChatPayApplymentBankAccountType;
    /** 开户名称
1、选择“经营者个人银行卡”时,开户名称必须与“经营者证件姓名”一致;
2、选择“对公银行账户”时,开户名称必须与营业执照上的“商户名称”一致;
3、该字段需要使用微信支付公钥加密(推荐),请参考获取微信支付公钥ID说明以及微信支付公钥加密敏感信息指引,也可以使用微信支付平台证书公钥加密,参考获取平台证书序列号、平台证书加密敏感信息指引。 */
    account_name: string;
    /** 开户银行
对私银行调用:查询支持个人业务的银行列表API
对公银行调用:查询支持对公业务的银行列表API */
    account_bank: string;
    /** 开户银行省市编码
该字段即将下线处理,无需传入
至少精确到市,详细参见省市区编号对照表
注:仅当省市区编号对照表中无对应的省市区编号时,可向上取该银行对应市级编号或省级编号。 */
    bank_address_code?: string;
    /** 开户银行银行号
1、根据开户银行查询接口中的“是否需要填写支行”判断是否需要填写。如为其他银行,开户银行全称(含支行)和开户银行联行号二选一;
2、详细需调用查询支行列表API查看查询结果。 */
    bank_branch_id?: string;
    /** 开户银行全称(含支行)
1、根据开户银行查询接口中的“是否需要填写支行”判断是否需要填写。如为其他银行,开户银行全称(含支行)和开户银行联行号二选一;
2、详细需调用查询支行列表API查看查询结果。 */
    bank_name?: string;
    /** 银行账号
1、数字,长度遵循系统支持的卡号长度要求表;
2、该字段需要使用微信支付公钥加密(推荐),请参考获取微信支付公钥ID说明以及微信支付公钥加密敏感信息指引,也可以使用微信支付平台证书公钥加密,参考获取平台证书序列号、平台证书加密敏感信息指引。 */
    account_number: string;
  }
  interface GetExceptionLogsQuery {
@@ -5882,11 +6088,11 @@
2、服务商自定义的唯一编号;
3、每个编号对应一个申请单,每个申请单审核通过后会生成一个微信支付商户号。 */
    business_code: string;
    bank_account_info: WeChatPayApplymentBodyParametersBankAccountInfo;
    contact_info: WeChatPayApplymentBodyParametersContactInfo;
    subject_info: WeChatPayApplymentBodyParametersSubjectInfo;
    business_info: WeChatPayApplymentBodyParametersBusinessInfo;
    settlement_info: WeChatPayApplymentBodyParametersSettlementInfo;
    bank_account_info: WeChatPayApplymentBodyParametersBankAccountInfo;
    addition_info?: WeChatPayApplymentBodyParametersAdditionInfo;
  }
@@ -7505,6 +7711,23 @@
    ubo_period_end: string;
  }
  interface WeChatPayArea {
    /** Id */
    id?: string;
    /** 省市编码 */
    areaCode?: string;
    /** 名称 */
    areaName?: string;
    /** 地区名称 */
    fullName?: string;
    /** 层级 */
    leyer?: number;
    /** 父级省市编码 */
    parentCode?: string;
    /** 子集 */
    children?: WeChatPayArea[];
  }
  interface WeChatPayGetApplymentResponseAuditDetail {
    /** 提交申请单的资料项字段名 */
    field: string;
src/utils/common/file.ts
@@ -25,6 +25,10 @@
  return path ? [convertApi2FormUrl(path)] : [];
}
export function convertApi2FormUrls(paths: string[]): UploadUserFile[] {
  return paths?.length > 0 ? paths.map((x) => convertApi2FormUrl(x)) : [];
}
/**
 * 把upload的路径转换为上传到api的路径
 */
src/views/EnterpriseManage/components/WeChatPayWalletBanksSelect.vue
New file
@@ -0,0 +1,65 @@
<template>
  <ProFormPaginationSelect
    v-model="modelValue"
    :proTableProps="proTableProps"
    @change="handleAccountBankChange"
  >
  </ProFormPaginationSelect>
</template>
<script setup lang="ts">
import { useTable } from '@bole-core/components';
import * as enterpriseWalletServices from '@/services/api/enterpriseWallet';
defineOptions({
  name: 'WeChatPayWalletBanksSelect',
});
// type Props = {
// };
// const props = withDefaults(defineProps<Props>(), {});
const modelValue = defineModel<string>();
onMounted(() => {
  getList();
});
const {
  getDataSource: getList,
  proTableProps,
  paginationState,
  extraParamState,
  reset,
} = useTable(
  async ({ pageIndex, pageSize }, extraParamState) => {
    try {
      let params: API.GetEnterpriseWeChatPayWalletBanksQuery = {
        pageModel: {
          rows: pageSize,
          page: pageIndex,
        },
        bank_account_type: 0,
      };
      let res = await enterpriseWalletServices.getEnterpriseWeChatPayWalletBanks(params, {
        showLoading: true,
      });
      return res;
    } catch (error) {
      console.log('error: ', error);
    }
  },
  {
    defaultExtraParams: {
      keywords: '',
    },
    queryKey: ['enterpriseWalletServices/getEnterpriseWeChatPayWalletBanks'],
  }
);
function handleAccountBankChange(val: string) {
  console.log('val: ', val);
}
</script>
src/views/EnterpriseManage/components/WechatConfigureView.vue
@@ -889,7 +889,12 @@
        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="开户银行省市编码:"
@@ -960,8 +965,15 @@
  EnumWeChatPayApplymentSalesScenesTypeText,
  EnumWeChatPayApplymentBankAccountTypeText,
} from '@/constants';
import { convertApi2FormUrl, convertApi2FormUrlOnlyOne, downloadFileByUrl, format } from '@/utils';
import {
  convertApi2FormUrl,
  convertApi2FormUrlOnlyOne,
  downloadFileByUrl,
  format,
  convertApi2FormUrls,
} from '@/utils';
import { Message } from '@bole-core/core';
import WeChatPayWalletBanksSelect from './WeChatPayWalletBanksSelect.vue';
defineOptions({
  name: 'WechatConfigureView',
@@ -1183,55 +1195,36 @@
    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.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 =
      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.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 =
      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.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 =
      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.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 =
      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.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 =
      data.settlement_info?.qualifications?.length > 0
        ? data.settlement_info?.qualifications.map((x) => convertApi2FormUrl(x))
        : [];
    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 ?? '';