/** * 统计与进度可视化:StatCard / ProgressBar / AgentWeightsBar。 * 原位于 admin/components.tsx。 */ export function StatCard({ label, value, hint, }: { label: string value: string | number hint?: string }) { return (
{label}
{value}
{hint &&
{hint}
}
) } /** 进度条:同前台置信度细线 */ export function ProgressBar({ value, className = '' }: { value: number; className?: string }) { const clamped = Math.max(0, Math.min(100, value)) return (
) } /** Agent 权重条形图 */ export function AgentWeightsBar({ weights, okCount }: { weights: Record; okCount: number }) { const entries = Object.entries(weights).filter(([, w]) => w > 0) if (entries.length === 0) return null const total = entries.reduce((s, [, w]) => s + w, 0) || 1 const colors = ['bg-ink-900', 'bg-ink-700', 'bg-ink-500', 'bg-press', 'bg-ink-300'] return (
终裁专家权重
{entries.map(([k, w], i) => (
{Math.round((w / total) * 100)}% {k}
))}
有效专家:{okCount}/{entries.length}
) }