From 7f698455eb0852e7512a03182ad1fad5ad6387e9 Mon Sep 17 00:00:00 2001 From: Your Name Date: Thu, 15 Jan 2026 18:33:35 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E6=88=AA=E6=AD=A2=E6=97=B6=E9=97=B4?= =?UTF-8?q?=E6=98=BE=E7=A4=BA=E5=88=B0=E6=97=B6=E5=88=86=EF=BC=88=E4=BB=BB?= =?UTF-8?q?=E5=8A=A1=E5=8D=A1=E7=89=87=E5=92=8C=E9=92=89=E9=92=89=E9=80=9A?= =?UTF-8?q?=E7=9F=A5=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/TaskApprovalService.java | 23 +++++++++++++++++-- frontend/src/views/TaskHall.vue | 4 ++-- 2 files changed, 23 insertions(+), 4 deletions(-) diff --git a/backend/src/main/java/com/designhub/service/TaskApprovalService.java b/backend/src/main/java/com/designhub/service/TaskApprovalService.java index 6f6a69e..8628503 100644 --- a/backend/src/main/java/com/designhub/service/TaskApprovalService.java +++ b/backend/src/main/java/com/designhub/service/TaskApprovalService.java @@ -18,6 +18,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; import java.util.List; import java.util.stream.Collectors; @@ -327,6 +328,9 @@ public class TaskApprovalService { .orderByAsc(TaskItem::getGroupNo) ); + // 时间格式化器:MM月dd日 HH:mm + DateTimeFormatter groupDeadlineFormatter = DateTimeFormatter.ofPattern("MM月dd日 HH:mm"); + if (!taskItems.isEmpty()) { content.append("**任务明细**: \n"); for (TaskItem item : taskItems) { @@ -351,10 +355,16 @@ public class TaskApprovalService { // 格式化工时显示 String hoursDisplay = formatEstimatedHours(item.getEstimatedHours()); + // 格式化截止时间 + String groupDeadlineDisplay = ""; + if (item.getDeadline() != null) { + groupDeadlineDisplay = " | 截止: " + item.getDeadline().format(groupDeadlineFormatter); + } + content.append(" \n"); content.append("▸ **").append(deptName).append("** | ") .append(item.getTotalScore()).append("分 | ") - .append(hoursDisplay).append(" \n"); + .append(hoursDisplay).append(groupDeadlineDisplay).append(" \n"); // 解析并显示任务类型明细 if (item.getTypeDetails() != null && !item.getTypeDetails().isEmpty()) { @@ -857,6 +867,9 @@ public class TaskApprovalService { .orderByAsc(TaskItem::getGroupNo) ); + // 时间格式化器:MM月dd日 HH:mm + DateTimeFormatter deadlineFormatter = DateTimeFormatter.ofPattern("MM月dd日 HH:mm"); + if (!receiverItems.isEmpty()) { content.append("**您负责的任务明细**: \n"); for (TaskItem item : receiverItems) { @@ -881,10 +894,16 @@ public class TaskApprovalService { // 格式化工时显示 String hoursDisplay = formatEstimatedHours(item.getEstimatedHours()); + // 格式化截止时间 + String deadlineDisplay = ""; + if (item.getDeadline() != null) { + deadlineDisplay = " | 截止: " + item.getDeadline().format(deadlineFormatter); + } + content.append(" \n"); content.append("▸ **").append(deptName).append("** | ") .append(item.getTotalScore()).append("分 | ") - .append(hoursDisplay).append(" \n"); + .append(hoursDisplay).append(deadlineDisplay).append(" \n"); // 解析并显示任务类型明细 if (item.getTypeDetails() != null && !item.getTypeDetails().isEmpty()) { diff --git a/frontend/src/views/TaskHall.vue b/frontend/src/views/TaskHall.vue index 9c308c1..230608c 100644 --- a/frontend/src/views/TaskHall.vue +++ b/frontend/src/views/TaskHall.vue @@ -3069,8 +3069,8 @@ const getSubTaskDeadline = (subTask: any) => { if (subTask.status !== 'in_progress' && subTask.status !== 'completed') return null // 直接使用后端返回的deadline字段 if (!subTask.deadline) return null - // 格式化为"XX月XX日HH时" - return dayjs(subTask.deadline).format('MM月DD日HH时') + // 格式化为"XX月XX日HH:mm" + return dayjs(subTask.deadline).format('MM月DD日 HH:mm') } // 获取任务完成截止时间(用于进行中的任务)