feat(platform): persist quality filters in route

This commit is contained in:
lingniu
2026-07-04 04:45:52 +08:00
parent b53cfbabfe
commit 753faca269
5 changed files with 120 additions and 7 deletions

View File

@@ -59,10 +59,14 @@ async function copyText(value: string, label: string) {
export function Quality({
onOpenVehicle,
onHealthLoaded
onHealthLoaded,
onFiltersChange,
initialFilters = {}
}: {
onOpenVehicle: (vin: string) => void;
onHealthLoaded?: (health: OpsHealth) => void;
onFiltersChange?: (filters: Record<string, string>) => void;
initialFilters?: Record<string, string>;
}) {
const [issues, setIssues] = useState<QualityIssueRow[]>([]);
const [summary, setSummary] = useState<QualitySummary>(emptySummary);
@@ -70,7 +74,7 @@ export function Quality({
const [loadingIssues, setLoadingIssues] = useState(true);
const [loadingSummary, setLoadingSummary] = useState(true);
const [loadingHealth, setLoadingHealth] = useState(true);
const [filters, setFilters] = useState<Record<string, string>>({});
const [filters, setFilters] = useState<Record<string, string>>(initialFilters);
const [pagination, setPagination] = useState({ currentPage: 1, pageSize: 20, total: 0 });
const primaryIssueType = summary.issueTypes[0]?.name;
@@ -108,13 +112,15 @@ export function Quality({
};
useEffect(() => {
loadSummary({});
loadIssues({}, 1, pagination.pageSize);
setFilters(initialFilters);
loadSummary(initialFilters);
loadIssues(initialFilters, 1, pagination.pageSize);
loadHealth();
}, []);
}, [JSON.stringify(initialFilters)]);
const applyFilters = (nextFilters: Record<string, string>) => {
setFilters(nextFilters);
onFiltersChange?.(nextFilters);
loadSummary(nextFilters);
loadIssues(nextFilters, 1, pagination.pageSize);
};