From f5feec84e3dc6fced8d327683fa5ff48b2099da1 Mon Sep 17 00:00:00 2001 From: shenyifei Date: Wed, 14 Jan 2026 11:45:56 +0800 Subject: [PATCH] =?UTF-8?q?feat(biz):=20=E6=B7=BB=E5=8A=A0=E4=BE=9B?= =?UTF-8?q?=E5=BA=94=E5=95=86=E5=8F=91=E7=A5=A8=E5=8A=9F=E8=83=BD=E5=B9=B6?= =?UTF-8?q?=E4=BC=98=E5=8C=96=E8=A1=A8=E6=A0=BC=E7=BB=84=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在BizProvider中新增supplierInvoice类型支持 - 添加SupplierInvoiceList组件用于显示供应商发票信息 - 为经销商显示添加市场/超市标识区分 - 更新公司支付账户模态框类型定义以支持业务值类型 - 优化订单成本列表中的公司字段显示方式 - 在订单供应商列表中新增发票上传状态显示 - 为订单供应商模态框添加开票状态逻辑处理 - 更新多个模态框的列配置以支持业务值类型 - 调整选择模态框布局大小和分页配置 - 移除支付记录列表的编辑删除功能 - 优化订单供应商选择列表的发票相关字段显示 --- .../src/components/Biz/BizProvider.tsx | 46 ++++- .../src/components/Biz/typing.ts | 1 + .../Company/CompanyPaymentAccountModal.tsx | 180 +++++++++--------- .../src/components/Dealer/DealerModal.tsx | 11 +- .../src/components/Material/MaterialModal.tsx | 9 +- .../components/Modal/SelectModal/index.tsx | 100 +++++----- .../src/components/Order/OrderCostList.tsx | 30 +-- .../src/components/Order/OrderModal.tsx | 29 ++- .../src/components/Order/OrderShipList.tsx | 2 +- .../src/components/Order/OrderShipModal.tsx | 7 +- .../src/components/Order/OrderStallList.tsx | 32 +--- .../components/Order/OrderSupplierList.tsx | 75 +++++--- .../components/Order/OrderSupplierModal.tsx | 180 +++++++++++------- .../Order/OrderSupplierSelectList.tsx | 107 ++++++++--- .../PaymentRecord/PaymentRecordList.tsx | 7 +- .../PaymentTask/PaymentTaskCreate.tsx | 94 +-------- .../PaymentTask/PaymentTaskModal.tsx | 11 +- .../ReconciliationInvoiceModal.tsx | 17 +- .../Reconciliation/ReconciliationModal.tsx | 11 +- .../Supplier/SupplierInvoiceList.tsx | 43 +++-- .../src/components/Supplier/SupplierModal.tsx | 6 +- .../src/components/User/UserModal.tsx | 11 +- packages/app-operation/src/locales/zh-CN.ts | 17 +- 23 files changed, 523 insertions(+), 503 deletions(-) diff --git a/packages/app-operation/src/components/Biz/BizProvider.tsx b/packages/app-operation/src/components/Biz/BizProvider.tsx index 1782857..869f14c 100644 --- a/packages/app-operation/src/components/Biz/BizProvider.tsx +++ b/packages/app-operation/src/components/Biz/BizProvider.tsx @@ -11,6 +11,7 @@ import { RemarkFormItem, SupplierFarmerList, SupplierFormItem, + SupplierInvoiceList, UserFormItem, UserList, } from '@/components'; @@ -43,7 +44,7 @@ export default function BizProvider(props: any) { dealerId={dealerVO.dealerId} trigger={() => ( - {dealerVO.shortName} + {`${dealerVO?.dealerType === 'MARKET' ? '市场' : '超市'} | ${dealerVO?.shortName}`} )} /> @@ -95,6 +96,49 @@ export default function BizProvider(props: any) { ); }, }, + supplierInvoice: { + renderFormItem: (_, props) => { + return ( + { + const { data } = + await business.supplierInvoice.listSupplierInvoice({ + supplierInvoiceListQry: { + ...params, + }, + }); + + return ( + data?.map((item) => { + return { + label: `${item.supplierName} | ${item.invoiceSn}`, + value: item.supplierInvoiceId, + }; + }) || [] + ); + }} + /> + ); + }, + render: (supplierInvoiceVO: BusinessAPI.SupplierInvoiceVO) => { + return ( + ( + + + {`${supplierInvoiceVO.supplierName} | ${supplierInvoiceVO.invoiceSn}`} + + + )} + /> + ); + }, + }, orderCost: { renderFormItem: (_, props) => { return ( diff --git a/packages/app-operation/src/components/Biz/typing.ts b/packages/app-operation/src/components/Biz/typing.ts index b3b312f..bd81557 100644 --- a/packages/app-operation/src/components/Biz/typing.ts +++ b/packages/app-operation/src/components/Biz/typing.ts @@ -25,6 +25,7 @@ export type BizValueType = | 'paymentTask' | 'company' | 'orderCost' + | 'supplierInvoice' | 'supplier'; export type FormType = 'modal' | 'drawer' | 'step'; export type ModeType = diff --git a/packages/app-operation/src/components/Company/CompanyPaymentAccountModal.tsx b/packages/app-operation/src/components/Company/CompanyPaymentAccountModal.tsx index f641c46..abf2222 100644 --- a/packages/app-operation/src/components/Company/CompanyPaymentAccountModal.tsx +++ b/packages/app-operation/src/components/Company/CompanyPaymentAccountModal.tsx @@ -1,7 +1,6 @@ -import { SelectModal } from '@/components'; +import { BizValueType, SelectModal } from '@/components'; import { business } from '@/services'; import { formatParam } from '@/utils/formatParam'; -import { pagination } from '@/utils/pagination'; import { useIntl } from '@@/exports'; import { ActionType, @@ -20,7 +19,10 @@ export interface ICompanyPaymentAccountModalProps extends ModalProps { num?: number; tips?: string; extraFilter?: React.ReactNode[]; - extraColumns?: ProColumns[]; + extraColumns?: ProColumns< + BusinessAPI.CompanyPaymentAccountVO, + BizValueType + >[]; } export default function CompanyPaymentAccountModal( @@ -61,97 +63,101 @@ export default function CompanyPaymentAccountModal( const intlPrefix = 'companyPaymentAccount'; // 公司账户列配置 - const companyAccountColumns: ProColumns[] = - [ - { - title: intl.formatMessage({ - id: intlPrefix + '.column.accountName', - }), - dataIndex: 'accountName', - key: 'accountName', - search: false, - }, - { - title: intl.formatMessage({ - id: intlPrefix + '.column.bankName', - }), - dataIndex: 'bankName', - key: 'bankName', - search: false, - }, - { - title: intl.formatMessage({ - id: intlPrefix + '.column.branchName', - }), - dataIndex: 'branchName', - key: 'branchName', - search: false, - }, - { - title: intl.formatMessage({ - id: intlPrefix + '.column.accountNumber', - }), - dataIndex: 'accountNumber', - key: 'accountNumber', - search: false, - ellipsis: true, - }, - ...(initExtraColumns || []), - ]; + const companyAccountColumns: ProColumns< + BusinessAPI.CompanyPaymentAccountVO, + BizValueType + >[] = [ + { + title: intl.formatMessage({ + id: intlPrefix + '.column.accountName', + }), + dataIndex: 'accountName', + key: 'accountName', + search: false, + }, + { + title: intl.formatMessage({ + id: intlPrefix + '.column.bankName', + }), + dataIndex: 'bankName', + key: 'bankName', + search: false, + }, + { + title: intl.formatMessage({ + id: intlPrefix + '.column.branchName', + }), + dataIndex: 'branchName', + key: 'branchName', + search: false, + }, + { + title: intl.formatMessage({ + id: intlPrefix + '.column.accountNumber', + }), + dataIndex: 'accountNumber', + key: 'accountNumber', + search: false, + ellipsis: true, + }, + ...(initExtraColumns || []), + ]; // 私人账户列配置 - const privateAccountColumns: ProColumns[] = - [ - { - title: intl.formatMessage({ - id: intlPrefix + '.column.accountName', + const privateAccountColumns: ProColumns< + BusinessAPI.CompanyPaymentAccountVO, + BizValueType + >[] = [ + { + title: intl.formatMessage({ + id: intlPrefix + '.column.accountName', + }), + dataIndex: 'accountName', + key: 'accountName', + search: false, + }, + { + title: intl.formatMessage({ + id: intlPrefix + '.column.accountType', + }), + dataIndex: 'accountType', + key: 'accountType', + valueType: 'select', + valueEnum: { + BANK_CARD: intl.formatMessage({ + id: intlPrefix + '.column.accountType.enum.bankCard', }), - dataIndex: 'accountName', - key: 'accountName', - search: false, - }, - { - title: intl.formatMessage({ - id: intlPrefix + '.column.accountType', + ALIPAY: intl.formatMessage({ + id: intlPrefix + '.column.accountType.enum.alipay', }), - dataIndex: 'accountType', - key: 'accountType', - valueType: 'select', - valueEnum: { - BANK_CARD: intl.formatMessage({ - id: intlPrefix + '.column.accountType.enum.bankCard', - }), - ALIPAY: intl.formatMessage({ - id: intlPrefix + '.column.accountType.enum.alipay', - }), - WECHAT: intl.formatMessage({ - id: intlPrefix + '.column.accountType.enum.wechat', - }), - }, - }, - { - title: intl.formatMessage({ - id: intlPrefix + '.column.bankName', + WECHAT: intl.formatMessage({ + id: intlPrefix + '.column.accountType.enum.wechat', }), - dataIndex: 'bankName', - key: 'bankName', - search: false, }, - { - title: intl.formatMessage({ - id: intlPrefix + '.column.accountNumber', - }), - dataIndex: 'accountNumber', - key: 'accountNumber', - search: false, - ellipsis: true, - }, - ...(initExtraColumns || []), - ]; + }, + { + title: intl.formatMessage({ + id: intlPrefix + '.column.bankName', + }), + dataIndex: 'bankName', + key: 'bankName', + search: false, + }, + { + title: intl.formatMessage({ + id: intlPrefix + '.column.accountNumber', + }), + dataIndex: 'accountNumber', + key: 'accountNumber', + search: false, + ellipsis: true, + }, + ...(initExtraColumns || []), + ]; // 根据 Tab 获取当前列配置 const getCurrentColumns = (): - | ProColumns[] + | ProColumns[] | undefined => { if (activeKey === 'COMPANY_ACCOUNT') { return companyAccountColumns; @@ -226,10 +232,6 @@ export default function CompanyPaymentAccountModal( success, }; }, - pagination: { - ...pagination(), - position: ['bottomRight'], - }, tableAlertRender: ({ selectedRowKeys, selectedRows }) => { const selectedRowsMap = new Map< string, diff --git a/packages/app-operation/src/components/Dealer/DealerModal.tsx b/packages/app-operation/src/components/Dealer/DealerModal.tsx index 6a20fe0..076c7c2 100644 --- a/packages/app-operation/src/components/Dealer/DealerModal.tsx +++ b/packages/app-operation/src/components/Dealer/DealerModal.tsx @@ -1,7 +1,6 @@ -import { DealerList, SelectModal } from '@/components'; +import { BizValueType, DealerList, SelectModal } from '@/components'; import { business } from '@/services'; import { formatParam } from '@/utils/formatParam'; -import { pagination } from '@/utils/pagination'; import { useIntl } from '@@/exports'; import { ActionType, @@ -20,7 +19,7 @@ export interface IDealerModalProps extends ModalProps { num?: number; tips?: string; extraFilter?: React.ReactNode[]; - extraColumns?: ProColumns[]; + extraColumns?: ProColumns[]; } export default function DealerModal(props: IDealerModalProps) { @@ -54,7 +53,7 @@ export default function DealerModal(props: IDealerModalProps) { const intl = useIntl(); const intlPrefix = 'dealer'; - const columns: ProColumns[] = [ + const columns: ProColumns[] = [ { title: intl.formatMessage({ id: intlPrefix + '.column.shortName' }), dataIndex: 'shortName', @@ -134,10 +133,6 @@ export default function DealerModal(props: IDealerModalProps) { success, }; }, - pagination: { - ...pagination(), - position: ['bottomRight'], - }, tableAlertRender: ({ selectedRowKeys, selectedRows }) => { // selectedRows 和 selectedList 组合在一起,去重, const selectedRowsMap = new Map(); diff --git a/packages/app-operation/src/components/Material/MaterialModal.tsx b/packages/app-operation/src/components/Material/MaterialModal.tsx index 95883db..c805ab9 100644 --- a/packages/app-operation/src/components/Material/MaterialModal.tsx +++ b/packages/app-operation/src/components/Material/MaterialModal.tsx @@ -1,7 +1,6 @@ -import { Remark, SelectModal } from '@/components'; +import { BizValueType, Remark, SelectModal } from '@/components'; import { business } from '@/services'; import { formatParam } from '@/utils/formatParam'; -import { pagination } from '@/utils/pagination'; import { ActionType, LightFilter, @@ -34,7 +33,7 @@ export default function MaterialModal(props: IMaterialModalProps) { setFileList(initialFileList || []); }, [initialFileList]); - const columns: ProColumns[] = [ + const columns: ProColumns[] = [ { title: '素材名称', dataIndex: 'name', @@ -167,10 +166,6 @@ export default function MaterialModal(props: IMaterialModalProps) { ), }, - pagination: { - ...pagination(), - position: ['bottomRight'], - }, }} onFinish={onFinish} num={(maxCount || 1) - fileList.length} diff --git a/packages/app-operation/src/components/Modal/SelectModal/index.tsx b/packages/app-operation/src/components/Modal/SelectModal/index.tsx index 456738d..61390a2 100644 --- a/packages/app-operation/src/components/Modal/SelectModal/index.tsx +++ b/packages/app-operation/src/components/Modal/SelectModal/index.tsx @@ -1,3 +1,6 @@ +import { BizValueType } from '@/components'; +import BizProvider from '@/components/Biz/BizProvider'; +import { pagination } from '@/utils/pagination'; import { ProTable, ProTableProps } from '@ant-design/pro-components'; import type { ParamsType } from '@ant-design/pro-provider'; import { Modal, ModalProps, type TableProps } from 'antd'; @@ -18,7 +21,7 @@ export interface ISelectModalProps< num?: number; selectedList?: DataType[]; modalProps: ModalProps; - tableProps: ProTableProps; + tableProps: ProTableProps; ghost?: boolean; disabled?: (record: DataType) => boolean; } @@ -113,56 +116,65 @@ const SelectModal = forwardRef< const renderTable = () => { return ( - - ghost={true} - search={false} - scroll={{ x: 'max-content' }} - onRow={(data) => ({ - onClick: () => { - if (disabled?.(data)) { - return; - } - if (selectType === 'radio') { - setSelectedRowKeys([data[rowKey]]); - setSelectedList([data]); - } - - if (selectType === 'checkbox') { - if (selectedList.length >= (num || 1)) { + + + ghost={true} + search={false} + scroll={{ x: 'max-content' }} + onRow={(data) => ({ + onClick: () => { + if (disabled?.(data)) { return; } - if (selectedRowKeys.length === 0) { + if (selectType === 'radio') { setSelectedRowKeys([data[rowKey]]); setSelectedList([data]); - } else { - if (selectedRowKeys.includes(data[rowKey])) { - setSelectedRowKeys( - selectedRowKeys - .filter((v) => v !== data[rowKey]) - .slice(0, num || 1), - ); - setSelectedList( - selectedList - .filter((v) => v?.[rowKey] !== data[rowKey]) - .slice(0, num || 1), - ); + } + + if (selectType === 'checkbox') { + if (selectedList.length >= (num || 1)) { + return; + } + if (selectedRowKeys.length === 0) { + setSelectedRowKeys([data[rowKey]]); + setSelectedList([data]); } else { - setSelectedRowKeys( - [...selectedRowKeys, data[rowKey]].slice(0, num || 1), - ); - setSelectedList([...selectedList, data].slice(0, num || 1)); + if (selectedRowKeys.includes(data[rowKey])) { + setSelectedRowKeys( + selectedRowKeys + .filter((v) => v !== data[rowKey]) + .slice(0, num || 1), + ); + setSelectedList( + selectedList + .filter((v) => v?.[rowKey] !== data[rowKey]) + .slice(0, num || 1), + ); + } else { + setSelectedRowKeys( + [...selectedRowKeys, data[rowKey]].slice(0, num || 1), + ); + setSelectedList( + [...selectedList, data].slice(0, num || 1), + ); + } } } - } - if (ghost) { - onFinish([data]); - } - }, - })} - rowSelection={rowSelection} - {...tableProps} - /> + if (ghost) { + onFinish([data]); + } + }, + })} + rowSelection={rowSelection} + {...tableProps} + pagination={{ + ...pagination(), + position: ['bottomRight'], + defaultPageSize: 10, + }} + /> + ); }; @@ -172,7 +184,7 @@ const SelectModal = forwardRef< return ( { diff --git a/packages/app-operation/src/components/Order/OrderCostList.tsx b/packages/app-operation/src/components/Order/OrderCostList.tsx index dc9908f..813069b 100644 --- a/packages/app-operation/src/components/Order/OrderCostList.tsx +++ b/packages/app-operation/src/components/Order/OrderCostList.tsx @@ -1,7 +1,6 @@ import { BizContainer, BizValueType, - CompanyList, CostList, ModeType, OrderCostPay, @@ -128,33 +127,8 @@ export default function OrderCostList(props: IOrderCostListProps) { { title: intl.formatMessage({ id: intlPrefix + '.column.orderCompany' }), dataIndex: 'orderCompany', - valueType: 'select', - request: async (params) => { - const { data } = await business.company.listCompany({ - companyListQry: { - ...params, - }, - }); - - return ( - data?.map((item) => { - return { - label: item.fullName, - value: item.companyId, - }; - }) || [] - ); - }, - render: (_, record) => { - return ( - {record.orderCompany.fullName}} - /> - ); - }, + key: 'companyId', + valueType: 'company', }, { title: intl.formatMessage({ id: intlPrefix + '.column.isPaid' }), diff --git a/packages/app-operation/src/components/Order/OrderModal.tsx b/packages/app-operation/src/components/Order/OrderModal.tsx index f48836c..ce21488 100644 --- a/packages/app-operation/src/components/Order/OrderModal.tsx +++ b/packages/app-operation/src/components/Order/OrderModal.tsx @@ -1,7 +1,6 @@ -import { SelectModal } from '@/components'; +import { BizValueType, DealerFormItem, SelectModal } from '@/components'; import { business } from '@/services'; import { formatParam } from '@/utils/formatParam'; -import { pagination } from '@/utils/pagination'; import { useIntl } from '@@/exports'; import { ActionType, @@ -21,7 +20,7 @@ export interface IOrderModalProps extends ModalProps { num?: number; tips?: string; extraFilter?: React.ReactNode[]; - extraColumns?: ProColumns[]; + extraColumns?: ProColumns[]; } export default function OrderModal(props: IOrderModalProps) { @@ -41,7 +40,7 @@ export default function OrderModal(props: IOrderModalProps) { const sessionKey = `orderList`; const intl = useIntl(); const intlPrefix = 'order'; - const [params, setParams] = useState( + const [params, setParams] = useState( initParams || {}, ); @@ -54,7 +53,7 @@ export default function OrderModal(props: IOrderModalProps) { } }, [initParams]); - const columns: ProColumns[] = [ + const columns: ProColumns[] = [ { title: intl.formatMessage({ id: intlPrefix + '.column.order' }), key: 'orderId', @@ -176,10 +175,6 @@ export default function OrderModal(props: IOrderModalProps) { success, }; }, - pagination: { - ...pagination(), - position: ['bottomRight'], - }, tableAlertRender: ({ selectedRowKeys, selectedRows }) => { // selectedRows 和 selectedList 组合在一起,去重, const selectedRowsMap = new Map(); @@ -269,6 +264,22 @@ export default function OrderModal(props: IOrderModalProps) { }} > {extraFilter} + { + setParams({ + ...params, + dealerId: dealerId, + }); + }} + /> { const selectedRowsMap = new Map(); selectedRows.forEach((item: BusinessAPI.OrderShipVO) => { diff --git a/packages/app-operation/src/components/Order/OrderStallList.tsx b/packages/app-operation/src/components/Order/OrderStallList.tsx index f4d0ec1..d000828 100644 --- a/packages/app-operation/src/components/Order/OrderStallList.tsx +++ b/packages/app-operation/src/components/Order/OrderStallList.tsx @@ -2,7 +2,6 @@ import { BizContainer, BizValueType, ButtonAccess, - CompanyList, ModeType, } from '@/components'; import { business } from '@/services'; @@ -173,33 +172,8 @@ export default function OrderSupplierList(props: IOrderSupplierListProps) { { title: intl.formatMessage({ id: intlPrefix + '.column.orderCompany' }), dataIndex: 'orderCompany', - valueType: 'select', - request: async (params) => { - const { data } = await business.company.listCompany({ - companyListQry: { - ...params, - }, - }); - - return ( - data?.map((item) => { - return { - label: item.fullName, - value: item.companyId, - }; - }) || [] - ); - }, - render: (_, record) => { - return ( - {record.orderCompany.fullName}} - /> - ); - }, + key: 'companyId', + valueType: 'company', }, { title: intl.formatMessage({ id: intlPrefix + '.column.isPaid' }), @@ -264,7 +238,7 @@ export default function OrderSupplierList(props: IOrderSupplierListProps) { isPaid: activeKey! as any, }), poStates: ['COMPLETED'], - type: 'OTHER_STALL' + type: 'OTHER_STALL', }, rowSelection: { onChange: (_, selectedRows) => setSelectedRows(selectedRows), diff --git a/packages/app-operation/src/components/Order/OrderSupplierList.tsx b/packages/app-operation/src/components/Order/OrderSupplierList.tsx index 8aade6c..99c4d86 100644 --- a/packages/app-operation/src/components/Order/OrderSupplierList.tsx +++ b/packages/app-operation/src/components/Order/OrderSupplierList.tsx @@ -2,7 +2,6 @@ import { BizContainer, BizValueType, ButtonAccess, - CompanyList, ModeType, } from '@/components'; import { business } from '@/services'; @@ -11,7 +10,7 @@ import { useIntl } from '@@/exports'; import { EyeInvisibleOutlined, EyeTwoTone } from '@ant-design/icons'; import { ProColumns } from '@ant-design/pro-components'; import { ProDescriptionsItemProps } from '@ant-design/pro-descriptions'; -import { Button, Image, Modal, Space } from 'antd'; +import { Button, Image, Modal, Space, Tag } from 'antd'; import React, { useState } from 'react'; interface IOrderSupplierListProps { @@ -89,6 +88,49 @@ export default function OrderSupplierList(props: IOrderSupplierListProps) { return record.invoiceAmount - record.depositAmount || 0; }, }, + { + title: intl.formatMessage({ id: intlPrefix + '.column.supplierInvoice' }), + dataIndex: 'supplierInvoiceVO', + key: 'supplierInvoiceId', + search: false, + valueType: 'supplierInvoice', + }, + { + title: intl.formatMessage({ id: intlPrefix + '.column.invoiceUpload' }), + dataIndex: 'invoiceUpload', + key: 'invoiceUpload', + search: false, + valueType: 'switch', + render: (_, record) => ( + + {record.invoiceUpload + ? intl.formatMessage({ + id: intlPrefix + '.column.invoiceUpload.uploaded', + }) + : intl.formatMessage({ + id: intlPrefix + '.column.invoiceUpload.notUploaded', + })} + + ), + }, + { + title: intl.formatMessage({ id: intlPrefix + '.column.contractUpload' }), + dataIndex: 'contractUpload', + key: 'contractUpload', + search: false, + valueType: 'switch', + render: (_, record) => ( + + {record.contractUpload + ? intl.formatMessage({ + id: intlPrefix + '.column.contractUpload.uploaded', + }) + : intl.formatMessage({ + id: intlPrefix + '.column.contractUpload.notUploaded', + })} + + ), + }, { title: intl.formatMessage({ id: intlPrefix + '.column.idCard', @@ -181,33 +223,8 @@ export default function OrderSupplierList(props: IOrderSupplierListProps) { { title: intl.formatMessage({ id: intlPrefix + '.column.orderCompany' }), dataIndex: 'orderCompany', - valueType: 'select', - request: async (params) => { - const { data } = await business.company.listCompany({ - companyListQry: { - ...params, - }, - }); - - return ( - data?.map((item) => { - return { - label: item.fullName, - value: item.companyId, - }; - }) || [] - ); - }, - render: (_, record) => { - return ( - {record.orderCompany.fullName}} - /> - ); - }, + key: 'companyId', + valueType: 'company', }, { title: intl.formatMessage({ id: intlPrefix + '.column.isPaid' }), diff --git a/packages/app-operation/src/components/Order/OrderSupplierModal.tsx b/packages/app-operation/src/components/Order/OrderSupplierModal.tsx index dd8e33a..8a52397 100644 --- a/packages/app-operation/src/components/Order/OrderSupplierModal.tsx +++ b/packages/app-operation/src/components/Order/OrderSupplierModal.tsx @@ -1,14 +1,14 @@ -import { SelectModal } from '@/components'; +import { BizValueType, SelectModal } from '@/components'; import { business } from '@/services'; import { formatBankCard, formatIdCard, formatPhone } from '@/utils/format'; import { formatParam } from '@/utils/formatParam'; -import { pagination } from '@/utils/pagination'; import { useIntl } from '@@/exports'; import { EyeInvisibleOutlined, EyeTwoTone } from '@ant-design/icons'; import { ActionType, LightFilter, ProColumns, + ProFormDateRangePicker, ProFormSelect, } from '@ant-design/pro-components'; import { Alert, ModalProps, Row, Space, Tag } from 'antd'; @@ -23,7 +23,7 @@ export interface IOrderSupplierModalProps extends ModalProps { num?: number; tips?: string; extraFilter?: React.ReactNode[]; - extraColumns?: ProColumns[]; + extraColumns?: ProColumns[]; } export default function OrderSupplierModal(props: IOrderSupplierModalProps) { @@ -60,19 +60,13 @@ export default function OrderSupplierModal(props: IOrderSupplierModalProps) { } }, [initParams]); - const columns: ProColumns[] = [ + const columns: ProColumns[] = [ { title: intl.formatMessage({ id: intlPrefix + '.column.order' }), dataIndex: 'orderVO', key: 'orderId', search: false, - render: (_, orderSupplierVO: BusinessAPI.OrderSupplierVO) => { - const orderVO = orderSupplierVO.orderVO; - return ( - orderVO && - `${orderVO.orderVehicle?.dealerName} | 第 ${orderVO.orderVehicle?.vehicleNo || '暂无'} 车 | ${orderVO.orderSn || '暂无'}` - ); - }, + valueType: 'order', }, { title: intl.formatMessage({ id: intlPrefix + '.column.name' }), @@ -106,6 +100,82 @@ export default function OrderSupplierModal(props: IOrderSupplierModalProps) { return record.invoiceAmount - record.depositAmount || 0; }, }, + { + title: intl.formatMessage({ id: intlPrefix + '.column.supplierInvoice' }), + dataIndex: 'supplierInvoiceVO', + key: 'supplierInvoiceId', + search: false, + valueType: 'supplierInvoice', + }, + { + title: intl.formatMessage({ id: intlPrefix + '.column.invoiceUpload' }), + dataIndex: 'invoiceUpload', + key: 'invoiceUpload', + search: false, + valueType: 'switch', + render: (_, record) => ( + + {record.invoiceUpload + ? intl.formatMessage({ + id: intlPrefix + '.column.invoiceUpload.uploaded', + }) + : intl.formatMessage({ + id: intlPrefix + '.column.invoiceUpload.notUploaded', + })} + + ), + }, + { + title: '开票状态', + key: 'invoiceStatus', + render: (_, orderSupplierVO: BusinessAPI.OrderSupplierVO) => { + let invoiceStatus = 'NOT_INVOICE'; + if (orderSupplierVO.invoiceUpload && orderSupplierVO.invoiceId) { + if ( + orderSupplierVO.supplierId === + orderSupplierVO.supplierInvoiceVO?.supplierId + ) { + invoiceStatus = 'SELF'; + } + if ( + orderSupplierVO.supplierId !== + orderSupplierVO.supplierInvoiceVO?.supplierId + ) { + invoiceStatus = 'AGENT'; + } + } else { + invoiceStatus = 'NOT_INVOICE'; + } + + switch (invoiceStatus) { + case 'SELF': + return '自开票'; + case 'AGENT': + return '代开票'; + case 'NOT_INVOICE': + return '未开票'; + default: + } + }, + }, + { + title: intl.formatMessage({ id: intlPrefix + '.column.contractUpload' }), + dataIndex: 'contractUpload', + key: 'contractUpload', + search: false, + valueType: 'switch', + render: (_, record) => ( + + {record.contractUpload + ? intl.formatMessage({ + id: intlPrefix + '.column.contractUpload.uploaded', + }) + : intl.formatMessage({ + id: intlPrefix + '.column.contractUpload.notUploaded', + })} + + ), + }, { title: intl.formatMessage({ id: intlPrefix + '.column.idCard', @@ -198,27 +268,6 @@ export default function OrderSupplierModal(props: IOrderSupplierModalProps) { ), }, - { - title: intl.formatMessage({ id: intlPrefix + '.column.orderCompany' }), - dataIndex: ['orderCompany', 'companyId'], - valueType: 'select', - request: async (params) => { - const { data } = await business.company.listCompany({ - companyListQry: { - ...params, - }, - }); - - return ( - data?.map((item) => { - return { - label: item.fullName, - value: item.companyId, - }; - }) || [] - ); - }, - }, { title: intl.formatMessage({ id: intlPrefix + '.column.isPaid' }), dataIndex: 'isPaid', @@ -309,10 +358,6 @@ export default function OrderSupplierModal(props: IOrderSupplierModalProps) { success, }; }, - pagination: { - ...pagination(), - position: ['bottomRight'], - }, tableAlertRender: ({ selectedRowKeys, selectedRows }) => { const selectedRowsMap = new Map< string, @@ -400,49 +445,48 @@ export default function OrderSupplierModal(props: IOrderSupplierModalProps) { }} > {extraFilter} - {/**/} - + {initParams?.isPaid === undefined && ( + + )} ), search: { - placeholder: '请输入供应商姓名', + placeholder: '请输入瓜农姓名', onSearch: async (value: string) => { setParams({ ...params, diff --git a/packages/app-operation/src/components/Order/OrderSupplierSelectList.tsx b/packages/app-operation/src/components/Order/OrderSupplierSelectList.tsx index b04ce54..35e5e27 100644 --- a/packages/app-operation/src/components/Order/OrderSupplierSelectList.tsx +++ b/packages/app-operation/src/components/Order/OrderSupplierSelectList.tsx @@ -1,12 +1,12 @@ -import { BizValueType, CompanyList } from '@/components'; +import { BizValueType } from '@/components'; import BizProvider from '@/components/Biz/BizProvider'; -import { business } from '@/services'; import { useIntl } from '@@/exports'; import { ProColumns, ProTable, ProTableProps, } from '@ant-design/pro-components'; +import { Tag } from 'antd'; type IOrderSupplierSelectListProps = ProTableProps< BusinessAPI.OrderSupplierVO, @@ -62,36 +62,85 @@ export default function OrderSupplierSelectList( }, }, { - title: intl.formatMessage({ id: intlPrefix + '.column.orderCompany' }), - dataIndex: 'orderCompany', - valueType: 'select', - request: async (params) => { - const { data } = await business.company.listCompany({ - companyListQry: { - ...params, - }, - }); + title: intl.formatMessage({ + id: intlPrefix + '.column.supplierInvoice', + }), + dataIndex: 'supplierInvoiceVO', + key: 'supplierInvoiceId', + search: false, + valueType: 'supplierInvoice', + }, + { + title: intl.formatMessage({ id: intlPrefix + '.column.invoiceUpload' }), + dataIndex: 'invoiceUpload', + key: 'invoiceUpload', + search: false, + valueType: 'switch', + render: (_, record) => ( + + {record.invoiceUpload + ? intl.formatMessage({ + id: intlPrefix + '.column.invoiceUpload.uploaded', + }) + : intl.formatMessage({ + id: intlPrefix + '.column.invoiceUpload.notUploaded', + })} + + ), + }, + { + title: '开票状态', + key: 'invoiceStatus', + render: (_, orderSupplierVO: BusinessAPI.OrderSupplierVO) => { + let invoiceStatus = 'NOT_INVOICE'; + if (orderSupplierVO.invoiceUpload && orderSupplierVO.invoiceId) { + if ( + orderSupplierVO.supplierId === + orderSupplierVO.supplierInvoiceVO?.supplierId + ) { + invoiceStatus = 'SELF'; + } + if ( + orderSupplierVO.supplierId !== + orderSupplierVO.supplierInvoiceVO?.supplierId + ) { + invoiceStatus = 'AGENT'; + } + } else { + invoiceStatus = 'NOT_INVOICE'; + } - return ( - data?.map((item) => { - return { - label: item.fullName, - value: item.companyId, - }; - }) || [] - ); - }, - render: (_, record) => { - return ( - {record.orderCompany.fullName}} - /> - ); + switch (invoiceStatus) { + case 'SELF': + return '自开票'; + case 'AGENT': + return '代开票'; + case 'NOT_INVOICE': + return '未开票'; + default: + } }, }, + { + title: intl.formatMessage({ + id: intlPrefix + '.column.contractUpload', + }), + dataIndex: 'contractUpload', + key: 'contractUpload', + search: false, + valueType: 'switch', + render: (_, record) => ( + + {record.contractUpload + ? intl.formatMessage({ + id: intlPrefix + '.column.contractUpload.uploaded', + }) + : intl.formatMessage({ + id: intlPrefix + '.column.contractUpload.notUploaded', + })} + + ), + }, { title: intl.formatMessage({ id: intlPrefix + '.column.isPaid' }), dataIndex: 'isPaid', diff --git a/packages/app-operation/src/components/PaymentRecord/PaymentRecordList.tsx b/packages/app-operation/src/components/PaymentRecord/PaymentRecordList.tsx index cb372bf..1c90e5a 100644 --- a/packages/app-operation/src/components/PaymentRecord/PaymentRecordList.tsx +++ b/packages/app-operation/src/components/PaymentRecord/PaymentRecordList.tsx @@ -381,11 +381,8 @@ export default function PaymentRecordList(props: IPaymentRecordListProps) { }, }} create={false} - update={{ - formType: 'drawer', - formContext: [], - }} - destroy={{}} + update={false} + destroy={false} detail={{ rowId: paymentRecordId, formType: 'drawer', diff --git a/packages/app-operation/src/components/PaymentTask/PaymentTaskCreate.tsx b/packages/app-operation/src/components/PaymentTask/PaymentTaskCreate.tsx index 9aab927..68ebdef 100644 --- a/packages/app-operation/src/components/PaymentTask/PaymentTaskCreate.tsx +++ b/packages/app-operation/src/components/PaymentTask/PaymentTaskCreate.tsx @@ -3,8 +3,6 @@ import { ButtonAccess, InsertPosition, OrderSupplierSelectList, - SupplierFarmerList, - SupplierInvoiceList, SupplierSelect, } from '@/components'; import OrderSupplierModal from '@/components/Order/OrderSupplierModal'; @@ -22,7 +20,7 @@ import { RouteContext, RouteContextType, } from '@ant-design/pro-components'; -import { Button, Col, Image, message, Row, Space, Table, Tag } from 'antd'; +import { Button, Col, Image, message, Row, Table, Tag } from 'antd'; import { useState } from 'react'; export interface IPaymentTaskCreateProps { @@ -245,96 +243,6 @@ export default function PaymentTaskCreate(props: IPaymentTaskCreateProps) { rowKey="orderSupplierId" dataSource={selectedOrderSupplierList} columns={[ - { - title: '开票瓜农', - dataIndex: 'supplierInvoiceVO', - render: ( - _, - orderSupplierVO: BusinessAPI.OrderSupplierVO, - ) => { - const supplierInvoiceVO = - orderSupplierVO.supplierInvoiceVO; - return ( - supplierInvoiceVO && ( - ( - {supplierInvoiceVO.supplierName} - )} - /> - ) - ); - }, - }, - { - title: '发票编码', - dataIndex: 'supplierInvoiceVO', - render: ( - _, - orderSupplierVO: BusinessAPI.OrderSupplierVO, - ) => { - const supplierInvoiceVO = - orderSupplierVO.supplierInvoiceVO; - return ( - supplierInvoiceVO && ( - ( - - {supplierInvoiceVO.invoiceSn} - - )} - /> - ) - ); - }, - }, - // 开票状态(自开票,代开票,未开票) - { - title: '开票状态', - key: 'invoiceStatus', - render: ( - _, - orderSupplierVO: BusinessAPI.OrderSupplierVO, - ) => { - let invoiceStatus = 'NOT_INVOICE'; - if ( - orderSupplierVO.invoiceUpload && - orderSupplierVO.invoiceId - ) { - if ( - orderSupplierVO.supplierId === - orderSupplierVO.supplierInvoiceVO?.supplierId - ) { - invoiceStatus = 'SELF'; - } - if ( - orderSupplierVO.supplierId !== - orderSupplierVO.supplierInvoiceVO?.supplierId - ) { - invoiceStatus = 'AGENT'; - } - } else { - invoiceStatus = 'NOT_INVOICE'; - } - - switch (invoiceStatus) { - case 'SELF': - return '自开票'; - case 'AGENT': - return '代开票'; - case 'NOT_INVOICE': - return '未开票'; - default: - } - }, - }, { title: '操作', key: 'action', diff --git a/packages/app-operation/src/components/PaymentTask/PaymentTaskModal.tsx b/packages/app-operation/src/components/PaymentTask/PaymentTaskModal.tsx index 5801806..7de12bb 100644 --- a/packages/app-operation/src/components/PaymentTask/PaymentTaskModal.tsx +++ b/packages/app-operation/src/components/PaymentTask/PaymentTaskModal.tsx @@ -1,7 +1,6 @@ -import { SelectModal } from '@/components'; +import { BizValueType, SelectModal } from '@/components'; import { business } from '@/services'; import { formatParam } from '@/utils/formatParam'; -import { pagination } from '@/utils/pagination'; import { useIntl } from '@@/exports'; import { ActionType, @@ -20,7 +19,7 @@ export interface IPaymentTaskModalProps extends ModalProps { num?: number; tips?: string; extraFilter?: React.ReactNode[]; - extraColumns?: ProColumns[]; + extraColumns?: ProColumns[]; } export default function PaymentTaskModal(props: IPaymentTaskModalProps) { @@ -54,7 +53,7 @@ export default function PaymentTaskModal(props: IPaymentTaskModalProps) { const intl = useIntl(); const intlPrefix = 'paymentTask'; - const columns: ProColumns[] = [ + const columns: ProColumns[] = [ { title: intl.formatMessage({ id: intlPrefix + '.column.taskName' }), dataIndex: 'taskName', @@ -164,10 +163,6 @@ export default function PaymentTaskModal(props: IPaymentTaskModalProps) { success, }; }, - pagination: { - ...pagination(), - position: ['bottomRight'], - }, tableAlertRender: ({ selectedRowKeys, selectedRows }) => { // selectedRows 和 selectedList 组合在一起,去重, const selectedRowsMap = new Map(); diff --git a/packages/app-operation/src/components/Reconciliation/ReconciliationInvoiceModal.tsx b/packages/app-operation/src/components/Reconciliation/ReconciliationInvoiceModal.tsx index a412a74..75feab3 100644 --- a/packages/app-operation/src/components/Reconciliation/ReconciliationInvoiceModal.tsx +++ b/packages/app-operation/src/components/Reconciliation/ReconciliationInvoiceModal.tsx @@ -1,8 +1,7 @@ -import { SelectModal } from '@/components'; +import { BizValueType, SelectModal } from '@/components'; import { business } from '@/services'; import { formatCurrency } from '@/utils/format'; import { formatParam } from '@/utils/formatParam'; -import { pagination } from '@/utils/pagination'; import { useIntl } from '@@/exports'; import { ActionType, @@ -23,7 +22,10 @@ export interface IReconciliationInvoiceModalProps extends ModalProps { num?: number; tips?: string; extraFilter?: React.ReactNode[]; - extraColumns?: ProColumns[]; + extraColumns?: ProColumns< + BusinessAPI.ReconciliationInvoiceVO, + BizValueType + >[]; } export default function ReconciliationInvoiceModal( @@ -58,7 +60,10 @@ export default function ReconciliationInvoiceModal( const intl = useIntl(); const intlPrefix = 'reconciliationInvoice'; - const columns: ProColumns[] = [ + const columns: ProColumns< + BusinessAPI.ReconciliationInvoiceVO, + BizValueType + >[] = [ { title: intl.formatMessage({ id: intlPrefix + '.column.invoiceSn', @@ -185,10 +190,6 @@ export default function ReconciliationInvoiceModal( success, }; }, - pagination: { - ...pagination(), - position: ['bottomRight'], - }, tableAlertRender: ({ selectedRowKeys, selectedRows }) => { // selectedRows 和 selectedList 组合在一起,去重 const selectedRowsMap = new Map< diff --git a/packages/app-operation/src/components/Reconciliation/ReconciliationModal.tsx b/packages/app-operation/src/components/Reconciliation/ReconciliationModal.tsx index b3acf10..82c82eb 100644 --- a/packages/app-operation/src/components/Reconciliation/ReconciliationModal.tsx +++ b/packages/app-operation/src/components/Reconciliation/ReconciliationModal.tsx @@ -1,8 +1,7 @@ -import { SelectModal } from '@/components'; +import { BizValueType, SelectModal } from '@/components'; import { business } from '@/services'; import { formatCurrency } from '@/utils/format'; import { formatParam } from '@/utils/formatParam'; -import { pagination } from '@/utils/pagination'; import { useIntl } from '@@/exports'; import { ActionType, @@ -22,7 +21,7 @@ export interface IReconciliationModalProps extends ModalProps { num?: number; tips?: string; extraFilter?: React.ReactNode[]; - extraColumns?: ProColumns[]; + extraColumns?: ProColumns[]; } export default function ReconciliationModal(props: IReconciliationModalProps) { @@ -66,7 +65,7 @@ export default function ReconciliationModal(props: IReconciliationModalProps) { PAID: '已回款', }; - const columns: ProColumns[] = [ + const columns: ProColumns[] = [ { title: intl.formatMessage({ id: intlPrefix + '.column.reconciliationSn', @@ -186,10 +185,6 @@ export default function ReconciliationModal(props: IReconciliationModalProps) { success, }; }, - pagination: { - ...pagination(), - position: ['bottomRight'], - }, tableAlertRender: ({ selectedRowKeys, selectedRows }) => { // selectedRows 和 selectedList 组合在一起,去重 const selectedRowsMap = new Map< diff --git a/packages/app-operation/src/components/Supplier/SupplierInvoiceList.tsx b/packages/app-operation/src/components/Supplier/SupplierInvoiceList.tsx index ce4cef0..0bfe704 100644 --- a/packages/app-operation/src/components/Supplier/SupplierInvoiceList.tsx +++ b/packages/app-operation/src/components/Supplier/SupplierInvoiceList.tsx @@ -14,6 +14,7 @@ import { DownloadOutlined, EyeOutlined } from '@ant-design/icons'; import { ProColumns } from '@ant-design/pro-components'; import { ProDescriptionsItemProps } from '@ant-design/pro-descriptions'; import { Image, Modal, Space, Typography } from 'antd'; +import dayjs from 'dayjs'; import React, { useState } from 'react'; const { Text } = Typography; @@ -69,21 +70,6 @@ export default function SupplierInvoiceList(props: ISupplierInvoiceListProps) { dataIndex: 'supplierVO', key: 'supplierId', valueType: 'supplier', - render: (_, record) => { - return ( - ( - - {record.supplierName} - - )} - /> - ); - }, }, { title: intl.formatMessage({ id: intlPrefix + '.column.invoiceAmount' }), @@ -102,8 +88,8 @@ export default function SupplierInvoiceList(props: ISupplierInvoiceListProps) { { title: intl.formatMessage({ id: intlPrefix + '.column.supplier' }), dataIndex: 'supplier', - key: 'supplier', - search: false, + key: 'orderSupplierId', + valueType: 'supplier', render: (_, record) => { return record.orderSupplierInvoiceList?.map((item) => { return ( @@ -125,7 +111,8 @@ export default function SupplierInvoiceList(props: ISupplierInvoiceListProps) { { title: intl.formatMessage({ id: intlPrefix + '.column.order' }), dataIndex: 'order', - search: false, + key: 'orderId', + valueType: 'order', render: (_, record) => { return record.orderSupplierInvoiceList?.map((item) => { return ( @@ -152,8 +139,15 @@ export default function SupplierInvoiceList(props: ISupplierInvoiceListProps) { }), dataIndex: 'registrationTime', key: 'registrationTime', - valueType: 'dateTime', - search: false, + valueType: 'dateTimeRange', + render: (_, record) => { + return record.registrationTime + ? dayjs(record.registrationTime).format('YYYY-MM-DD HH:mm') + : ''; + }, + fieldProps: { + placeholder: ['开始时间', '开始时间'], + }, }, ]; @@ -294,6 +288,15 @@ export default function SupplierInvoiceList(props: ISupplierInvoiceListProps) { poStates: ['COMPLETED'], }, }, + convertValue: (value) => { + return { + ...value, + supplierVO: { + supplierId: value.supplierId, + name: value.supplierName, + }, + }; + }, columns, options: (supplierInvoiceVO) => { return [ diff --git a/packages/app-operation/src/components/Supplier/SupplierModal.tsx b/packages/app-operation/src/components/Supplier/SupplierModal.tsx index 41c7684..20e1c9c 100644 --- a/packages/app-operation/src/components/Supplier/SupplierModal.tsx +++ b/packages/app-operation/src/components/Supplier/SupplierModal.tsx @@ -1,4 +1,4 @@ -import { SelectModal } from '@/components'; +import { BizValueType, SelectModal } from '@/components'; import { business } from '@/services'; import { formatBankCard, formatIdCard, formatPhone } from '@/utils/format'; import { formatParam } from '@/utils/formatParam'; @@ -23,7 +23,7 @@ export interface ISupplierModalProps extends ModalProps { num?: number; tips?: string; extraFilter?: React.ReactNode[]; - extraColumns?: ProColumns[]; + extraColumns?: ProColumns[]; } export default function SupplierModal(props: ISupplierModalProps) { @@ -63,7 +63,7 @@ export default function SupplierModal(props: ISupplierModalProps) { const intlPrefix = props.params?.type === 'FARMER' ? 'supplierFarmer' : 'supplierStall'; - const columns: ProColumns[] = [ + const columns: ProColumns[] = [ { title: intl.formatMessage({ id: intlPrefix + '.column.name' }), dataIndex: 'name', diff --git a/packages/app-operation/src/components/User/UserModal.tsx b/packages/app-operation/src/components/User/UserModal.tsx index 234f0c3..4939991 100644 --- a/packages/app-operation/src/components/User/UserModal.tsx +++ b/packages/app-operation/src/components/User/UserModal.tsx @@ -1,7 +1,6 @@ -import { SelectModal, UserList } from '@/components'; +import { BizValueType, SelectModal, UserList } from '@/components'; import { business } from '@/services'; import { formatParam } from '@/utils/formatParam'; -import { pagination } from '@/utils/pagination'; import { ActionType, LightFilter, @@ -19,7 +18,7 @@ export interface IUserModalProps extends ModalProps { num?: number; tips?: string; extraFilter?: React.ReactNode[]; - extraColumns?: ProColumns[]; + extraColumns?: ProColumns[]; } export default function UserModal(props: IUserModalProps) { @@ -50,7 +49,7 @@ export default function UserModal(props: IUserModalProps) { } }, [initParams]); - const columns: ProColumns[] = [ + const columns: ProColumns[] = [ { title: '客户昵称', dataIndex: 'nickname', @@ -126,10 +125,6 @@ export default function UserModal(props: IUserModalProps) { success, }; }, - pagination: { - ...pagination(), - position: ['bottomRight'], - }, tableAlertRender: ({ selectedRowKeys, selectedRows }) => { // selectedRows 和 selectedList 组合在一起,去重, const selectedRowsMap = new Map(); diff --git a/packages/app-operation/src/locales/zh-CN.ts b/packages/app-operation/src/locales/zh-CN.ts index 9d15744..d3a8a5d 100644 --- a/packages/app-operation/src/locales/zh-CN.ts +++ b/packages/app-operation/src/locales/zh-CN.ts @@ -2219,6 +2219,13 @@ export default { invoiceAmount: '应付金额(元)', depositAmount: '已付定金(元)', remainingAmount: '剩余金额(元)', + supplierInvoice: '发票信息', + invoiceUpload: '发票上传', + 'invoiceUpload.uploaded': '已上传', + 'invoiceUpload.notUploaded': '未上传', + contractUpload: '合同上传', + 'contractUpload.uploaded': '已上传', + 'contractUpload.notUploaded': '未上传', order: '采购单', orderCompany: '销售公司', isPaid: '是否付款', @@ -2673,7 +2680,7 @@ export default { totalAmount: '付款总金额(元)', paidAmount: '已付金额(元)', unpaidAmount: '未付金额(元)', - orderCount: '订单数量', + orderCount: '车数', state: '付款状态', 'state.enum.pending': '待付款', 'state.enum.partial': '部分付款', @@ -2834,11 +2841,17 @@ export default { paidAmount: '付款金额', paidAt: '支付时间', paidState: '支付状态', - remark: '备注', + remark: '支付备注', paidCredentials: '支付凭证', createdAt: '创建时间', option: '操作', }, + form: { + remark: { + label: '付款备注', + placeholder: '请输入付款备注', + }, + }, tab: { all: '全部', draft: '草稿',