feat(assets): 完善故障提报来源与重点跟进展示
ci/woodpecker/push/woodpecker Pipeline was successful

This commit is contained in:
shishengliang
2026-10-16 18:15:44 +08:00
parent f107e96d3c
commit 1674f052d0
11 changed files with 166 additions and 45 deletions
+7 -4
View File
@@ -8,13 +8,15 @@ export type FaultDimension = keyof typeof FAULT_DIMENSIONS;
export type FaultMetric = 'reported' | 'closed' | 'open';
export interface FaultOption { value: string; label: string }
export interface FaultCounts { reported: number; closed: number; open: number }
export const FAULT_REPORT_METHODS = { operations: '运维提报', customer: 'AI提报' } as const;
export type FaultReportMethod = keyof typeof FAULT_REPORT_METHODS;
export interface FaultRecord {
id: string; code: string; plate: string; description: string;
reportedAt: string | null; archivedAt: string | null; deadlineAt: string | null; receivedAt: string | null;
city: string; status: string; inventory: string;
customer: string; customerLabel: string; department: string;
handlers: FaultOption[];
level?: string; categories?: string[]; progress?: string;
level?: string; categories?: string[]; progress?: string; reportMethod?: FaultReportMethod;
}
export interface FaultQuery {
start: string; end: string; groupBy: FaultDimension;
@@ -65,17 +67,18 @@ export interface FaultWeeklyResponse {
days: (Record<FaultWeeklyMetric, number> & { date: string })[];
}
export const FAULT_DASHBOARD_FILTERS = { region: '区域', customer: '客户', model: '品牌车型', city: '城市', department: '业务部门', handler: '运维处置人', level: '故障程度', category: '故障部位', inventory: '库存状态' } as const;
export const FAULT_DASHBOARD_FILTERS = { region: '区域', customer: '客户', model: '品牌车型', city: '城市', department: '业务部门', handler: '运维处置人', level: '故障程度', category: '故障部位', inventory: '库存状态', reportMethod: '提报来源' } as const;
export type FaultDashboardDimension = keyof typeof FAULT_DASHBOARD_FILTERS;
export type FaultDashboardFilters = Partial<Record<FaultDashboardDimension, string>>;
export type FaultDashboardScope = 'cohort' | 'open' | 'waiting' | 'processing' | 'overdue' | 'ledger' | 'reported' | 'closed';
export type FaultDashboardScope = 'focus' | 'cohort' | 'open' | 'waiting' | 'processing' | 'overdue' | 'ledger' | 'reported' | 'closed';
export interface FaultDistribution { value: string; label: string; reported: number; closed: number; unclosed: number; vehicles: number; open: number }
export interface FaultDashboardResponse {
start: string; end: string; updatedAt: string;
totals: { reported: number; vehicles: number; customers: number; previous: number; change: number | null; open: number; waiting: number; processing: number; overdue: number; longestOverdueDays: number; todayReported: number; todayClosed: number; ledger: number };
totals: { reported: number; operationsReported: number; customerReported: number; vehicles: number; customers: number; previous: number; change: number | null; open: number; waiting: number; processing: number; overdue: number; longestOverdueDays: number; todayReported: number; todayClosed: number; ledger: number };
options: Record<FaultDashboardDimension, FaultOption[]>;
distributions: Record<'region' | 'level' | 'customer' | 'model', FaultDistribution[]>;
matrix: { models: FaultOption[]; categories: FaultOption[]; cells: { model: string; category: string; count: number }[]; totals: Record<string, number> };
focus: FaultAnalysisRecord[];
focusTotals: { total: number; overdue: number };
quality: { missingLevel: number; missingCategory: number; missingVehicle: number; missingDeadline: number; missingReport: number };
}