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}