"use client"; import Link from "next/link"; import { ArrowLeft } from "lucide-react"; import { useTranslation } from "react-i18next"; import type { SettlementPeriodRow } from "@/api/admin-agent-settlement"; import { AdminStatusBadge } from "@/components/admin/admin-status-badge"; import { SettlementCreditLedgerPanel } from "@/modules/settlement/settlement-credit-ledger-panel"; import { SettlementMainPanel } from "@/modules/settlement/settlement-main-panel"; import { SettlementOperationsPanel } from "@/modules/settlement/settlement-operations-panel"; import { settlementCenterListHref, settlementPeriodViewHref, type SettlementPeriodView, } from "@/modules/settlement/settlement-center-nav"; import { formatSettlementPeriodSpan } from "@/lib/agent-settlement-period-range"; import { settlementPeriodStatusLabel } from "@/modules/settlement/settlement-status-label"; import { AdminSubnav, AdminSubnavLink } from "@/components/admin/admin-subnav"; import { buttonVariants } from "@/components/ui/button"; import { cn } from "@/lib/utils"; type SettlementCenterPeriodDetailProps = { period: SettlementPeriodRow; view: SettlementPeriodView; adminSiteId: number; currencyCode: string; canOperateBills: boolean; boundAgentId?: number | null; refreshKey: number; onOpenBillDetail: (billId: number) => void; }; export function SettlementCenterPeriodDetail({ period, view, adminSiteId, currencyCode, canOperateBills, boundAgentId = null, refreshKey, onOpenBillDetail, }: SettlementCenterPeriodDetailProps): React.ReactElement { const { t } = useTranslation("settlementCenter"); const subViews: { key: SettlementPeriodView; label: string }[] = [ { key: "bills", label: t("nav.bills", { defaultValue: "账单" }) }, { key: "operations", label: t("nav.operations", { defaultValue: "收付与调账" }) }, { key: "ledger", label: t("nav.ledger", { defaultValue: "账务流水" }) }, ]; const pendingConfirm = period.summary?.pending_confirm ?? 0; const awaitingPayment = period.summary?.awaiting_payment ?? 0; return (