import { BizEditor, ButtonAccess, CompanyPaymentAccountSelect, InsertPosition, MaterialList, OrderSupplierInvoiceList, ProFormUploadMaterial, SupplierFarmerList, SupplierInvoiceList, SupplierSelect, } from '@/components'; import { business } from '@/services'; import { formatCurrency } from '@/utils/format'; import { formatParam } from '@/utils/formatParam'; import { formLayout } from '@/utils/formLayout'; import { useIntl } from '@@/exports'; import { ActionType, DrawerForm, ProCard, ProFormDependency, ProFormItem, ProFormMoney, RouteContext, RouteContextType, } from '@ant-design/pro-components'; import { Col, Row, Space, Table } from 'antd'; import { useRef } from 'react'; 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 actionRef = useRef(); const handleSubmit = async (formData: any) => { console.log('付款数据:', formData); // TODO: 调用付款接口 // const { success } = await business.paymentTask.pay({ // ...formData, // }); // if (success) { // message.success('付款成功'); onFinish(); // } // return success; return true; }; return ( {(value: RouteContextType) => { const { isMobile } = value; return ( { const { data } = await business.paymentTask.showPaymentTask({ paymentTaskShowQry: params, }); return data; }} 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.paymentCode', })}
{paymentTaskVO.paymentCode}
{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:本次付款 */} {/* 收款人 */} {/* 选择付款账户 */} {/* 上传付款凭证 */} { return { backgroundImageUrlList: value, backgroundImageUrl: value[0], }; }} fieldProps={{ maxCount: 1, actionRef: actionRef, toolBarRender: () => [ actionRef.current?.reload()} />, ], request: async (params, sorter, filter) => { const { data, success, totalCount } = await business.material.pageMaterial({ materialPageQry: formatParam( params, sorter, filter, ), }); return { data: data || [], total: totalCount, success, }; }, }} /> {/* 付款备注 */} {({ 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', })} /> ); }}
); }}
); }