diff --git a/src/api/dms/report/index.ts b/src/api/dms/report/index.ts new file mode 100644 index 0000000..fa9a30d --- /dev/null +++ b/src/api/dms/report/index.ts @@ -0,0 +1,21 @@ +// hwmom-ui/src/api/dms/report/faultTrace.ts +import request from '@/utils/request'; +import { FaultTraceQuery, FaultTraceVO } from './types'; + + +export function listFaultTrace(query: FaultTraceQuery) { + return request({ + url: '/dms/report/faultTrace/list', + method: 'get', + params: query, + }); +} + +export function exportFaultTrace(query: FaultTraceQuery) { + return request({ + url: '/dms/report/faultTrace/export', + method: 'post', + data: query, + responseType: 'blob', + }); +} \ No newline at end of file diff --git a/src/api/dms/report/types.ts b/src/api/dms/report/types.ts new file mode 100644 index 0000000..aeadfc4 --- /dev/null +++ b/src/api/dms/report/types.ts @@ -0,0 +1,29 @@ +export interface FaultTraceQuery { + pageNum?: number; + pageSize?: number; + startDate?: string; // 'YYYY-MM-DD' or ISO + endDate?: string; + deviceModeId?: number; + machineCode?: string; + faultType?: string; + machineId?: number; + params?: Record; + } + + export interface FaultTraceVO { + periodLabel: string; + periodStart: string; + deviceType: string; + machineCode: string; + faultTypeName: string; + faultCount: number; + totalDowntimeHours: number; + mtbfHours: number; + mttrMinutes: number; + outputLoss: number | null; + delayCount: number; + topCause: string; + topResolution: string; + topResolutionTime: string | null; + faultType?: string | number; + } diff --git a/src/views/dms/report/index.vue b/src/views/dms/report/index.vue new file mode 100644 index 0000000..5bf3d26 --- /dev/null +++ b/src/views/dms/report/index.vue @@ -0,0 +1,163 @@ + + +