From 178748c899579629631376764b91b0fc69797d6d Mon Sep 17 00:00:00 2001 From: zhihao <18915542763@163.com> Date: Thu, 9 Jul 2026 11:12:00 +0800 Subject: [PATCH] =?UTF-8?q?czh-20260709-=E5=A2=9E=E5=8A=A0=E8=BF=9B?= =?UTF-8?q?=E8=A1=8C=E4=B8=AD=E9=80=BE=E6=9C=9F=E4=BB=BB=E5=8A=A1=E6=95=B0?= =?UTF-8?q?=E9=87=8F=E6=98=BE=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bg/bgpartymatter/BgPartymatterList.vue | 4 ++-- src/views/bg/bqtakepulse/BgTakepulseList.vue | 4 ++-- src/views/bg/utils/feedbackStatusCount.ts | 17 ++++++++++++++--- 3 files changed, 18 insertions(+), 7 deletions(-) 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; }