From eb2764518dd6247a63468cf67c318f6a9c3a65c0 Mon Sep 17 00:00:00 2001 From: WangDL Date: Sun, 24 May 2026 17:36:26 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20M4-01=20=E2=80=94=20add=20cost,=20impor?= =?UTF-8?q?t,=20task,=20expiration=20metric=20cards=20to=20dashboard?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Update DashboardStats type with new fields - Add 4 new metric cards: today's AI cost, import tasks, failed tasks, upcoming expirations Co-Authored-By: Claude Opus 4.7 --- src/pages/Dashboard.tsx | 8 +++++++- src/types/admin.ts | 5 +++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/pages/Dashboard.tsx b/src/pages/Dashboard.tsx index c479f5d..5f3e4ab 100644 --- a/src/pages/Dashboard.tsx +++ b/src/pages/Dashboard.tsx @@ -6,7 +6,7 @@ import * as echarts from 'echarts/core' import { LineChart, BarChart } from 'echarts/charts' import { GridComponent, TooltipComponent, TitleComponent, LegendComponent } from 'echarts/components' import { CanvasRenderer } from 'echarts/renderers' -import { UserOutlined, BookOutlined, CloudOutlined, FileOutlined, ClusterOutlined } from '@ant-design/icons' +import { UserOutlined, BookOutlined, CloudOutlined, FileOutlined, ClusterOutlined, DollarOutlined, ImportOutlined, AlertOutlined, SafetyOutlined } from '@ant-design/icons' import dayjs from 'dayjs' import MetricCard from '@/components/MetricCard' import { Progress, Space } from 'antd' @@ -61,6 +61,12 @@ export default function Dashboard() { } /> } suffix={`${stats?.totalFiles ?? 0} 个文件`} /> + + } trend="up" trendValue={`${stats?.totalAiCallsToday ?? 0} 次`} trendLabel="今日调用" /> + } trend={stats?.failedImportCount ? 'down' : 'up'} trendValue={stats?.failedImportCount ? `${stats.failedImportCount} 失败` : '全部成功'} trendLabel="状态" /> + } trend={stats?.failedTasks ? 'down' : 'up'} trendValue={stats?.failedTasks ? '需要关注' : '无异常'} trendLabel="7 天内" /> + } trend={stats?.upcomingExpirations ? 'down' : 'up'} trendValue="30 天内" trendLabel="到期" /> + diff --git a/src/types/admin.ts b/src/types/admin.ts index d9de3b4..3c1979f 100644 --- a/src/types/admin.ts +++ b/src/types/admin.ts @@ -26,6 +26,11 @@ export interface DashboardStats { totalAiCallsToday: number totalFiles: number totalStorageBytes: number + todayImportCount: number + failedImportCount: number + todayAiCost: number + failedTasks: number + upcomingExpirations: number userTrend: TrendPoint[] aiCallTrend: TrendPoint[] }