import { BizEditor, ButtonAccess, CompanyPaymentAccountSelect, InsertPosition, OrderSupplierInvoiceList, ProFormUploadMaterial, SupplierFarmerList, SupplierInvoiceList, SupplierSelect, } from '@/components'; import { business } from '@/services'; import { formatCurrency } from '@/utils/format'; import { formLayout } from '@/utils/formLayout'; import { useIntl } from '@@/exports'; import { DrawerForm, ProCard, ProFormDependency, ProFormItem, ProFormMoney, RouteContext, RouteContextType, } from '@ant-design/pro-components'; import { Col, message, Row, Space, Table } from 'antd'; import dayjs from 'dayjs'; export interface IPaymentTaskPayProps { insertPosition?: InsertPosition; paymentTaskVO: BusinessAPI.PaymentTaskVO; onFinish: () => void; } export default function PaymentTaskPay(props: IPaymentTaskPayProps) { const { paymentTaskVO, onFinish } = props; const intl = useIntl(); const intlPrefix = 'paymentTask'; // 计算剩余付款金额 const unpaidAmount = (paymentTaskVO.totalAmount || 0) - (paymentTaskVO.paidAmount || 0); const handleSubmit = async (formData: any) => { console.log('付款数据:', formData); // 获取选中账户的详细信息 const { data: accountData } = await business.companyPaymentAccount.showCompanyPaymentAccount({ companyPaymentAccountShowQry: { accountId: formData.companyPaymentAccountId, }, }); if (!accountData) { message.error('获取账户信息失败'); return false; } // 构建符合接口要求的数据结构 const payData: BusinessAPI.PaymentTaskPayCmd = { paymentTaskId: paymentTaskVO.paymentTaskId, paidAmount: formData.paidAmount, ...accountData, paidAt: dayjs().format('YYYY-MM-DD HH:mm:ss'), paidCredentials: formData.paidCredentials || [], remark: formData.remark, }; console.log('转换后的付款数据:', payData); const { success } = await business.paymentTask.payPaymentTask(payData); if (success) { message.success('付款成功'); onFinish(); } return success; }; return ( {(value: RouteContextType) => { const { isMobile } = value; return ( { const { data } = await business.paymentTask.showPaymentTask({ paymentTaskShowQry: params, }); return { ...data, paidAmount: undefined, }; }} trigger={ {intl.formatMessage({ id: intlPrefix + '.modal.pay.button', })} } onFinish={handleSubmit} > {/* 模块1:付款任务信息 */}
{intl.formatMessage({ id: intlPrefix + '.modal.pay.taskInfo.supplierName', })}
{paymentTaskVO.supplierVO?.name}
{intl.formatMessage({ id: intlPrefix + '.modal.pay.taskInfo.totalAmount', })}
{formatCurrency(paymentTaskVO.totalAmount || 0)}
{intl.formatMessage({ id: intlPrefix + '.modal.pay.taskInfo.paidAmount', })}
{formatCurrency(paymentTaskVO.paidAmount || 0)}
{intl.formatMessage({ id: intlPrefix + '.modal.pay.taskInfo.unpaidAmount', })}
{formatCurrency(unpaidAmount)}
{intl.formatMessage({ id: intlPrefix + '.modal.pay.taskInfo.paymentTaskSn', })}
{paymentTaskVO.paymentTaskSn}
{intl.formatMessage({ id: intlPrefix + '.modal.pay.taskInfo.taskName', })}
{paymentTaskVO.taskName}
{/* 模块2:瓜农车次列表 */} {({ orderSupplierVOList }) => { return ( { return ( supplierInvoiceVO && ( ( {supplierInvoiceVO.supplierName} )} /> ) ); }, }, { title: '发票编码', dataIndex: 'supplierInvoiceVO', render: ( supplierInvoiceVO: BusinessAPI.SupplierInvoiceVO, ) => { return ( ( {supplierInvoiceVO.invoiceSn} )} /> ); }, }, ]} pagination={false} size="small" summary={(pageData) => { let totalAmount = 0; pageData.forEach( ({ invoiceAmount, depositAmount }) => { totalAmount += (invoiceAmount || 0) - (depositAmount || 0); }, ); return ( 合计 {formatCurrency(totalAmount)} ); }} /> ); }} {/* 模块3:本次付款 */} {/* 收款人 */} {/* 选择付款账户 */} {/* 上传付款凭证 */} {/* 付款备注 */} {({ remark }, form) => { return ( { form.setFieldValue('remark', value); }} label={intl.formatMessage({ id: intlPrefix + '.modal.pay.remark.label', })} name={'remark'} placeholder={intl.formatMessage({ id: intlPrefix + '.modal.pay.remark.placeholder', })} /> ); }}
); }}
); }