feat: WIP矩阵单表化/固定表头/首列复合/下钻日志弹窗/时间联动

This commit is contained in:
2026-09-02 10:38:58 +08:00
parent 2d8c937189
commit 3c6c8c0c53
3 changed files with 300 additions and 111 deletions

View File

@ -73,11 +73,27 @@ export interface OperationDetail {
export interface WipMatrixRow {
spec_model: string;
product_name: string;
dimension_key: string;
count: number;
assignees: string[];
}
export interface WipMatrixDetailRow {
product_id: string;
serial_number: string;
external_serial: string | null;
material_name: string;
spec_model: string;
task_status: string;
assignee_id: string;
assignee: string;
duration_hours: number;
total_hours: number; // 整个项目总时长(自然小时)
work_hours: number; // 仅工作日有效时长(小时)
received_at: string | null;
}
export interface PersonDevice {
product_id: string;
serial_number: string;
@ -194,6 +210,16 @@ export async function fetchWipMatrix(
return data;
}
export async function fetchWipMatrixDetail(
spec: string, process: string, since?: string, until?: string,
): Promise<WipMatrixDetailRow[]> {
const params: Record<string, string> = { spec, process };
if (since) params.since = since;
if (until) params.until = until;
const { data } = await api.get<WipMatrixDetailRow[]>("/dashboard/wip-matrix/detail", { params });
return data;
}
export async function fetchPeopleWorkload(): Promise<PersonWorkload[]> {
const { data } = await api.get<PersonWorkload[]>("/dashboard/people-workload");
return data;