From 5ba636419b3394da3be720da648fe149baac1a5b Mon Sep 17 00:00:00 2001 From: lingniu Date: Mon, 20 Jul 2026 03:49:28 +0800 Subject: [PATCH] feat(web): unify semantic empty states --- .../apps/web/src/v2/pages/AlertsPage.tsx | 10 +- .../apps/web/src/v2/pages/MonitorPage.tsx | 8 +- .../apps/web/src/v2/pages/OperationsPage.tsx | 20 +- .../web/src/v2/pages/ReconciliationCenter.tsx | 20 +- .../apps/web/src/v2/pages/TrackPage.tsx | 10 +- .../apps/web/src/v2/pages/VehiclePage.tsx | 6 +- .../src/v2/pages/VehicleSearchWorkspace.tsx | 14 +- .../apps/web/src/v2/productionEntry.test.ts | 19 +- .../web/src/v2/shared/AsyncState.test.tsx | 11 +- .../apps/web/src/v2/shared/AsyncState.tsx | 36 +++- .../v2/shared/VehicleSourceEvidencePanel.tsx | 6 +- .../apps/web/src/v2/styles/workspace.css | 181 ++++++++++++++++++ vehicle-data-platform/design-qa.md | 50 +++++ 13 files changed, 345 insertions(+), 46 deletions(-) diff --git a/vehicle-data-platform/apps/web/src/v2/pages/AlertsPage.tsx b/vehicle-data-platform/apps/web/src/v2/pages/AlertsPage.tsx index ff325313..316efda7 100644 --- a/vehicle-data-platform/apps/web/src/v2/pages/AlertsPage.tsx +++ b/vehicle-data-platform/apps/web/src/v2/pages/AlertsPage.tsx @@ -1,5 +1,5 @@ import { IconAlarm, IconBell, IconChevronRight, IconClose, IconFilter, IconPlus, IconRefresh, IconSearch, IconSetting } from '@douyinfe/semi-icons'; -import { Button, Card, CardGroup, Collapse, Descriptions, Empty, Input, Select, Spin, Table, Tag, TextArea, Timeline, Typography } from '@douyinfe/semi-ui'; +import { Button, Card, CardGroup, Collapse, Descriptions, Input, Select, Spin, Table, Tag, TextArea, Timeline, Typography } from '@douyinfe/semi-ui'; import { useMutation, useQuery, useQueryClient } from '@tanstack/react-query'; import { FormEvent, memo, useCallback, useEffect, useMemo, useState, type ReactNode } from 'react'; import { Link, useSearchParams } from 'react-router-dom'; @@ -129,7 +129,7 @@ const AlertEventTable = memo(function AlertEventTable({ rows, selectedID, compac }); function EventInspector({ event, note, acting, actionError, editable, onNote, onAction, onClose, sheet = false }: { event?: AlertEvent; note: string; acting: boolean; actionError?: string; editable: boolean; onNote: (value: string) => void; onAction: (action: 'acknowledge' | 'close' | 'ignore') => void; onClose: () => void; sheet?: boolean }) { - if (!event) return } title="选择告警事件" description="查看触发证据、状态时间线和处置动作。" />; + if (!event) return } title="选择告警事件" description="查看触发证据、状态时间线和处置动作。" />; const actionCount = event.actions?.length ?? 0; return {!sheet ?