diff --git a/vehicle-data-platform/apps/web/src/components/PageHeader.tsx b/vehicle-data-platform/apps/web/src/components/PageHeader.tsx
index 8b58550e..e76bdf69 100644
--- a/vehicle-data-platform/apps/web/src/components/PageHeader.tsx
+++ b/vehicle-data-platform/apps/web/src/components/PageHeader.tsx
@@ -1,12 +1,16 @@
import { Typography } from '@douyinfe/semi-ui';
+import type { ReactNode } from 'react';
-export function PageHeader({ title, description }: { title: string; description: string }) {
+export function PageHeader({ title, description, actions }: { title: string; description: string; actions?: ReactNode }) {
return (
-
-
- {title}
-
-
{description}
+
+
+
+ {title}
+
+ {description}
+
+ {actions ?
{actions}
: null}
);
}
diff --git a/vehicle-data-platform/apps/web/src/pages/History.tsx b/vehicle-data-platform/apps/web/src/pages/History.tsx
index 8cbf6013..051634d3 100644
--- a/vehicle-data-platform/apps/web/src/pages/History.tsx
+++ b/vehicle-data-platform/apps/web/src/pages/History.tsx
@@ -118,10 +118,20 @@ export function History({ initialVin, initialProtocol, onOpenVehicle }: { initia
}, [initialVin, initialProtocol]);
const rawFieldCount = useMemo(() => Object.keys(selectedRaw?.parsedFields ?? {}).length, [selectedRaw]);
+ const currentVehicleKeyword = filters.keyword?.trim() ?? '';
+ const currentProtocol = filters.protocol?.trim() ?? '';
return (
-
+
onOpenVehicle(currentVehicleKeyword, currentProtocol)}>
+ 当前车辆服务
+
+ )}
+ />
diff --git a/vehicle-data-platform/apps/web/src/pages/Mileage.tsx b/vehicle-data-platform/apps/web/src/pages/Mileage.tsx
index 39d3bf4b..34e8a0ba 100644
--- a/vehicle-data-platform/apps/web/src/pages/Mileage.tsx
+++ b/vehicle-data-platform/apps/web/src/pages/Mileage.tsx
@@ -39,6 +39,8 @@ export function Mileage({ initialVin, initialProtocol, onOpenVehicle }: { initia
const [summaryLoading, setSummaryLoading] = useState(true);
const [filters, setFilters] = useState>({ keyword: initialVin, protocol: initialProtocol ?? '' });
const [pagination, setPagination] = useState({ currentPage: 1, pageSize: 20, total: 0 });
+ const currentVehicleKeyword = filters.keyword?.trim() ?? '';
+ const currentProtocol = filters.protocol?.trim() ?? '';
const loadSummary = (values: Record = filters) => {
setSummaryLoading(true);
@@ -68,7 +70,15 @@ export function Mileage({ initialVin, initialProtocol, onOpenVehicle }: { initia
return (
-
+
onOpenVehicle(currentVehicleKeyword, currentProtocol)}>
+ 当前车辆服务
+
+ )}
+ />