src/components/Form/FieldPaginationSelect.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/components/Form/ProFormPaginationSelect.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/services/api/enterpriseWallet.ts | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/services/api/typings.d.ts | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/utils/common/file.ts | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/views/EnterpriseManage/components/WeChatPayWalletBanksSelect.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/views/EnterpriseManage/components/WechatConfigureView.vue | ●●●●● 补丁 | 查看 | 原始文档 | 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 ?? '';