"use client"; import { useEffect, useState } from "react"; import { getUsageSummary } from "@/lib/admin"; import { StatusCard } from "@/components/ui"; type Summary = { quota: { used: number; reserved: number; adjustment: number }; ledger_total: number; tasks: { total: number; by_status: Record; failed: number }; }; export function OverviewPanel() { const [data, setData] = useState(null); const [error, setError] = useState(""); useEffect(() => { getUsageSummary() .then(setData) .catch((e) => setError(e instanceof Error ? e.message : "无法加载概览")); }, []); if (error) return
{error}
; if (!data) return ; const statusLabels: Record = { queued: "排队", running: "进行中", succeeded: "成功", failed: "失败" }; return (

额度对账

额度账本合计
{data.ledger_total.toLocaleString()}
quota_accounts.used
{data.quota.used.toLocaleString()}
计入调整
{data.quota.adjustment.toLocaleString()}

版本构建号会随部署更新;所有数字来自数据库流水,不包含未入账的中途值。

); }