diff --git a/src/views/bg/bgpartymatter/BgPartymatterList.vue b/src/views/bg/bgpartymatter/BgPartymatterList.vue index 14ac732..2f59142 100644 --- a/src/views/bg/bgpartymatter/BgPartymatterList.vue +++ b/src/views/bg/bgpartymatter/BgPartymatterList.vue @@ -97,7 +97,7 @@ @@ -327,7 +327,7 @@ } function getFeedbackStatusCount(record: Recordable) { - return countFeedbackStatus(getFeedbackTableData(record), 'bpmStatus'); + return countFeedbackStatus(getFeedbackTableData(record), 'bpmStatus', 'planTime'); } function clearFeedbackTableData() { diff --git a/src/views/bg/bqtakepulse/BgTakepulseList.vue b/src/views/bg/bqtakepulse/BgTakepulseList.vue index c706d02..34a2917 100644 --- a/src/views/bg/bqtakepulse/BgTakepulseList.vue +++ b/src/views/bg/bqtakepulse/BgTakepulseList.vue @@ -97,7 +97,7 @@ @@ -275,7 +275,7 @@ } function getFeedbackStatusCount(record: Recordable) { - return countFeedbackStatus(getFeedbackTableData(record), 'bpmStatus'); + return countFeedbackStatus(getFeedbackTableData(record), 'bpmStatus', 'planTime'); } function clearFeedbackTableData() { diff --git a/src/views/bg/utils/feedbackStatusCount.ts b/src/views/bg/utils/feedbackStatusCount.ts index 6597e51..8c652e8 100644 --- a/src/views/bg/utils/feedbackStatusCount.ts +++ b/src/views/bg/utils/feedbackStatusCount.ts @@ -3,20 +3,31 @@ export interface FeedbackStatusCount { inProgress: number; completed: number; total: number; + overdue: number; } export function countFeedbackStatus( list: Recordable[] | undefined | null, statusField: string, + dateField?: string, ): FeedbackStatusCount { - const result: FeedbackStatusCount = { notStarted: 0, inProgress: 0, completed: 0, total: 0 }; + const result: FeedbackStatusCount = { notStarted: 0, inProgress: 0, completed: 0, total: 0, overdue: 0 }; if (!Array.isArray(list)) return result; result.total = list.length; + const today = new Date(); + today.setHours(0, 0, 0, 0); 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++; + else if (v === '2') { + result.inProgress++; + if (dateField) { + const planTime = item?.[dateField]; + if (planTime && new Date(planTime) < today) { + result.overdue++; + } + } + } else if (v === '3') result.completed++; } return result; }