- 更新公司支付账户模态框中的账户列表过滤逻辑 - 修改经销商支付账户列表中账户ID参数为可选类型 - 优化经销商搜索组件的状态管理和副作用处理 - 在支付记录列表中使用账户类别映射替代硬编码值枚举 - 为支付任务支付组件添加支付时间日期选择器 - 扩展对账单相关组件导出并新增发票选择功能 - 更新对账单发票列表的数据结构和初始化逻辑 - 在对账单列表中调整完成状态检查和发票上传按钮显示条件 - 重构对账单支付列表的列配置和表单字段定义 - 更新对账单搜索组件的状态管理逻辑 - 本地化文件中更新对账单相关字段标签和占位符文本 - 服务类型定义中更新账户类别和类型的枚举值 - 添加类型修复脚本用于处理数字数组类型转换问题 - 新增对账单发票表单项和模态框组件实现
77 lines
2.2 KiB
TypeScript
77 lines
2.2 KiB
TypeScript
import { IReconciliationModalProps, ReconciliationModal } from '@/components';
|
|
import {
|
|
FormInstance,
|
|
ProFormSelect,
|
|
ProFormSelectProps,
|
|
} from '@ant-design/pro-components';
|
|
import { useEffect, useState } from 'react';
|
|
|
|
export interface IReconciliationSearchProps extends ProFormSelectProps {
|
|
form: FormInstance;
|
|
selectedList?: IReconciliationModalProps['selectedList'];
|
|
onFinish?: (reconciliationVOList: BusinessAPI.ReconciliationVO[]) => void;
|
|
params: BusinessAPI.ReconciliationPageQry;
|
|
}
|
|
|
|
export default function ReconciliationSearch(
|
|
props: IReconciliationSearchProps,
|
|
) {
|
|
const { form, selectedList, onFinish, params, ...rest } = props;
|
|
|
|
const [showReconciliationModal, setShowReconciliationModal] =
|
|
useState<boolean>(false);
|
|
const [reconciliationList, setReconciliationList] =
|
|
useState<BusinessAPI.ReconciliationVO[]>();
|
|
|
|
useEffect(() => {
|
|
setReconciliationList(selectedList);
|
|
}, [selectedList]);
|
|
|
|
return (
|
|
<>
|
|
<ProFormSelect
|
|
{...rest}
|
|
fieldProps={{
|
|
open: false,
|
|
onClick: () => {
|
|
setShowReconciliationModal(true);
|
|
},
|
|
placeholder: '请选择对账记录',
|
|
options: reconciliationList?.map(
|
|
(reconciliationVO?: BusinessAPI.ReconciliationVO) => {
|
|
return {
|
|
value: reconciliationVO?.reconciliationId,
|
|
label:
|
|
reconciliationVO?.reconciliationSn ||
|
|
reconciliationVO?.reconciliationId,
|
|
};
|
|
},
|
|
),
|
|
}}
|
|
/>
|
|
<ReconciliationModal
|
|
title={'选择对账记录'}
|
|
open={showReconciliationModal}
|
|
onOk={() => setShowReconciliationModal(false)}
|
|
onCancel={() => setShowReconciliationModal(false)}
|
|
selectedList={selectedList}
|
|
onFinish={async (reconciliationVOList) => {
|
|
if (reconciliationVOList.length > 0) {
|
|
const reconciliationVO = reconciliationVOList[0];
|
|
form.setFieldsValue({
|
|
reconciliationId: reconciliationVO?.reconciliationId,
|
|
reconciliationVO: reconciliationVO,
|
|
});
|
|
form.validateFields(['reconciliationId', 'reconciliationVO']);
|
|
setReconciliationList(reconciliationVOList);
|
|
setShowReconciliationModal(false);
|
|
onFinish?.(reconciliationVOList);
|
|
}
|
|
}}
|
|
type={'radio'}
|
|
params={params}
|
|
/>
|
|
</>
|
|
);
|
|
}
|