- 替换 antd 为 tdesign-react 作为主要 UI 组件库 - 引入 Recharts 替代 @ant-design/charts 实现图表功能 - 移除主题系统相关代码(ThemeContext、themes 目录) - 更新所有组件以适配 TDesign 组件 API - 更新测试用例以匹配新的组件实现 - 新增 TDesign 和 Recharts 集成规范文档
43 lines
1.2 KiB
TypeScript
43 lines
1.2 KiB
TypeScript
import { Row, Col, Card, Statistic } from 'tdesign-react';
|
|
import type { UsageStats } from '@/types';
|
|
|
|
interface StatCardsProps {
|
|
stats: UsageStats[];
|
|
}
|
|
|
|
export function StatCards({ stats }: StatCardsProps) {
|
|
const totalRequests = stats.reduce((sum, s) => sum + s.requestCount, 0);
|
|
const activeModels = new Set(stats.map((s) => s.modelName)).size;
|
|
const activeProviders = new Set(stats.map((s) => s.providerId)).size;
|
|
|
|
const today = new Date().toISOString().split('T')[0];
|
|
const todayRequests = stats
|
|
.filter((s) => s.date === today)
|
|
.reduce((sum, s) => sum + s.requestCount, 0);
|
|
|
|
return (
|
|
<Row gutter={[16, 16]} style={{ marginBottom: 16 }}>
|
|
<Col xs={12} md={6}>
|
|
<Card>
|
|
<Statistic title="总请求量" value={totalRequests} />
|
|
</Card>
|
|
</Col>
|
|
<Col xs={12} md={6}>
|
|
<Card>
|
|
<Statistic title="活跃模型数" value={activeModels} />
|
|
</Card>
|
|
</Col>
|
|
<Col xs={12} md={6}>
|
|
<Card>
|
|
<Statistic title="活跃供应商数" value={activeProviders} />
|
|
</Card>
|
|
</Col>
|
|
<Col xs={12} md={6}>
|
|
<Card>
|
|
<Statistic title="今日请求量" value={todayRequests} />
|
|
</Card>
|
|
</Col>
|
|
</Row>
|
|
);
|
|
}
|