import { useEffect, useState } from 'react'; import { useNavigate } from 'react-router-dom'; import { INVOICE_KIND_LABELS, INVOICE_STATUS_LABELS, INVOICE_TITLE_TYPE_LABELS, type InvoiceDto, } from '@dukang/shared-types'; import SubPageHeader from '../components/SubPageHeader'; import { request } from '../lib/api'; export default function InvoiceListPage() { const navigate = useNavigate(); const [items, setItems] = useState([]); const [loading, setLoading] = useState(true); useEffect(() => { request<{ items: InvoiceDto[] }>('USER_H5', '/trade/invoices?pageSize=50') .then((res) => setItems(res.items ?? [])) .catch(() => setItems([])) .finally(() => setLoading(false)); }, []); return (
navigate(-1)} />
{loading ? (

加载中…

) : items.length === 0 ? (

暂无发票申请

) : (
{items.map((inv) => (
{INVOICE_TITLE_TYPE_LABELS[inv.titleType]} · {INVOICE_KIND_LABELS[inv.invoiceKind]} {INVOICE_STATUS_LABELS[inv.status]}

{inv.titleName}

{inv.invoiceNo} · 订单 {inv.orderNo ?? inv.orderId}

{inv.status === 'ISSUED' && inv.fileUrl ? ( 查看/下载发票 ) : null}
))}
)}
); }