"use client"; import { useTranslation } from "react-i18next"; import type { SettlementPaymentRow } from "@/api/admin-agent-settlement"; import { AdminNoResourceState } from "@/components/admin/admin-no-resource-state"; import { AdminLoadingState } from "@/components/admin/admin-loading-state"; import { useAdminDateTimeFormatter } from "@/hooks/use-admin-datetime-formatter"; import { formatSettlementPeriodSpan } from "@/lib/agent-settlement-period-range"; import { formatDashboardMoneyMinor } from "@/modules/dashboard/use-dashboard-analytics"; import { settlementBillTypeLabel } from "@/modules/settlement/settlement-status-label"; import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow, } from "@/components/ui/table"; type SettlementPaymentsTableProps = { rows: SettlementPaymentRow[]; loading: boolean; currencyCode: string; onOpenBill: (billId: number) => void; }; export function SettlementPaymentsTable({ rows, loading, currencyCode, onOpenBill, }: SettlementPaymentsTableProps): React.ReactElement { const { t } = useTranslation(["settlementCenter", "agents", "common"]); const formatTs = useAdminDateTimeFormatter(); if (loading) { return ; } if (rows.length === 0) { return ; } return (
{t("columns.period", { defaultValue: "账期" })} {t("columns.billId", { defaultValue: "账单 ID" })} {t("columns.type", { defaultValue: "类型" })} {t("columns.payer", { defaultValue: "付款方" })} {t("columns.payee", { defaultValue: "收款方" })} {t("columns.amount", { defaultValue: "金额" })} {t("columns.method", { defaultValue: "方式" })} {t("columns.status", { defaultValue: "状态" })} {t("columns.time", { defaultValue: "时间" })} {rows.map((row) => ( {formatSettlementPeriodSpan(row.period_start, row.period_end)} #{row.settlement_bill_id} {settlementBillTypeLabel(row.bill_type, t)} {row.payer_type}#{row.payer_id} {row.payee_type === "platform" ? t("agents:settlementBills.platform", { defaultValue: "平台" }) : `${row.payee_type}#${row.payee_id}`} {formatDashboardMoneyMinor(row.amount, currencyCode)} {row.method ?? "—"} {t(`paymentStatus.${row.status}`, { defaultValue: row.status === "confirmed" ? "已确认" : row.status, })} {formatTs(row.confirmed_at ?? row.created_at)} ))}
); }