23 lines
649 B
TypeScript
23 lines
649 B
TypeScript
export interface FeedbackStatusCount {
|
|
notStarted: number;
|
|
inProgress: number;
|
|
completed: number;
|
|
total: number;
|
|
}
|
|
|
|
export function countFeedbackStatus(
|
|
list: Recordable[] | undefined | null,
|
|
statusField: string,
|
|
): FeedbackStatusCount {
|
|
const result: FeedbackStatusCount = { notStarted: 0, inProgress: 0, completed: 0, total: 0 };
|
|
if (!Array.isArray(list)) return result;
|
|
result.total = list.length;
|
|
for (const item of list) {
|
|
const v = String(item?.[statusField] ?? '');
|
|
if (v === '1') result.notStarted++;
|
|
else if (v === '2') result.inProgress++;
|
|
else if (v === '3') result.completed++;
|
|
}
|
|
return result;
|
|
}
|