From c90cb165be8dd43c483274419929e179c0665f22 Mon Sep 17 00:00:00 2001 From: shunli Date: Tue, 14 Apr 2026 12:55:27 +0800 Subject: [PATCH] =?UTF-8?q?R62=20Fix=20A1-A6=EF=BC=9A=E8=AF=B7=E5=81=87?= =?UTF-8?q?=E9=A2=84=E8=A7=88=E5=85=A8=E9=9D=9E=E5=B7=A5=E4=BD=9C=E6=97=A5?= =?UTF-8?q?=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- client/src/api/leave.ts | 1 + client/src/pages/LeaveRequestPage.tsx | 13 +++++- ...2026-04-14_r62-preview-non-working-fix.csv | 7 ++++ server/src/routes/leave.js | 14 +++++-- server/src/services/leave.js | 16 +++++++- .../unit/routes/leave.working-days.test.js | 40 +++++++++++++++++++ server/tests/unit/services/leave.test.js | 29 ++++++++++++++ 7 files changed, 114 insertions(+), 6 deletions(-) create mode 100644 issues/2026-04-14_r62-preview-non-working-fix.csv diff --git a/client/src/api/leave.ts b/client/src/api/leave.ts index 5e5386aa..2c6db939 100644 --- a/client/src/api/leave.ts +++ b/client/src/api/leave.ts @@ -90,6 +90,7 @@ export type LeaveWorkingDaysPreview = { weekendDayCount: number; adjustedWorkdayCount: number; calendarApplied: boolean; + isNonWorkingRange: boolean; }; export type LeaveListQuery = { diff --git a/client/src/pages/LeaveRequestPage.tsx b/client/src/pages/LeaveRequestPage.tsx index b1c2d127..e8dcfaac 100644 --- a/client/src/pages/LeaveRequestPage.tsx +++ b/client/src/pages/LeaveRequestPage.tsx @@ -303,6 +303,7 @@ export function LeaveRequestPage() { const effectiveRequestedDaysPreview = workingDaysPreviewQuery.data?.requestedDays ?? localRequestedDaysPreview; + const isNonWorkingPreview = Boolean(workingDaysPreviewQuery.data?.isNonWorkingRange); const balanceSummary = useMemo(() => { return (balancesQuery.data?.items ?? []).reduce( @@ -784,7 +785,15 @@ export function LeaveRequestPage() {

) : null} - {workingDaysPreviewQuery.data && workingDaysPreviewQuery.data.holidayDayCount > 0 ? ( + {isNonWorkingPreview ? ( +

+ 所选日期范围均为非工作日,无需提交请假 +

+ ) : null} + + {workingDaysPreviewQuery.data && + !isNonWorkingPreview && + workingDaysPreviewQuery.data.holidayDayCount > 0 ? (

选择的日期范围内包含 {workingDaysPreviewQuery.data.holidayDayCount} 天法定假日,实际请假天数为{" "} {workingDaysPreviewQuery.data.requestedDays} 天 @@ -893,7 +902,7 @@ export function LeaveRequestPage() { ) : null}