import { getInvoiceRecords } from '@/web/support/wallet/bill/invoice/api'; import MyBox from '@fastgpt/web/components/common/MyBox'; import { useTranslation } from 'next-i18next'; import { useEffect, useState } from 'react'; import { Box, Button, Flex, FormLabel, ModalBody, Table, TableContainer, Tbody, Td, Th, Thead, Tr } from '@chakra-ui/react'; import { usePagination } from '@fastgpt/web/hooks/usePagination'; import { InvoiceSchemaType } from '@fastgpt/global/support/wallet/bill/type'; import MyIcon from '@fastgpt/web/components/common/Icon'; import dayjs from 'dayjs'; import { formatStorePrice2Read } from '@fastgpt/global/support/wallet/usage/tools'; import MyModal from '@fastgpt/web/components/common/MyModal'; const InvoiceTable = () => { const { t } = useTranslation(); const [invoiceDetailData, setInvoiceDetailData] = useState(''); const { data: invoices, isLoading, Pagination, total } = usePagination({ api: getInvoiceRecords, pageSize: 20 }); return ( {invoices.map((item, i) => ( ))}
# {t('common:user.Time')} {t('common:support.wallet.Amount')} {t('common:support.wallet.bill.Status')}
{i + 1} {item.createTime ? dayjs(item.createTime).format('YYYY/MM/DD HH:mm:ss') : '-'} {t('common:pay.yuan', { amount: formatStorePrice2Read(item.amount) })} {item.status === 1 ? t('common:common.submitted') : t('common:common.have_done')}
{total >= 20 && ( )} {!isLoading && invoices.length === 0 && ( {t('common:support.wallet.no_invoice')} )}
{!!invoiceDetailData && ( setInvoiceDetailData('')} /> )}
); }; export default InvoiceTable; function InvoiceDetailModal({ invoice, onClose }: { invoice: InvoiceSchemaType; onClose: () => void; }) { const { t } = useTranslation(); return ( {t('common:support.wallet.invoice_detail')} } > ); } function LabelItem({ label, value }: { label: string; value?: string }) { return ( {label} {value || '-'} ); }