From df3902e7eae5dd38a2d47aa63e5f27131f701db9 Mon Sep 17 00:00:00 2001
From: zouyu <2723363702@qq.com>
Date: 星期一, 20 四月 2026 13:49:14 +0800
Subject: [PATCH] 绩效管理模块调整
---
src/utils/date.js | 44 ++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 44 insertions(+), 0 deletions(-)
diff --git a/src/utils/date.js b/src/utils/date.js
index 1b14b70..70729fb 100644
--- a/src/utils/date.js
+++ b/src/utils/date.js
@@ -130,3 +130,47 @@
}
return workMonth
}
+
+/**
+ * 鍒ゆ柇鏃堕棿鍖洪棿鏄惁瓒呰繃 1 涓嚜鐒舵湀
+ * @param {string} startTime - 寮�濮嬫椂闂� yyyy-MM-dd HH:mm:ss
+ * @param {string} endTime - 缁撴潫鏃堕棿 yyyy-MM-dd HH:mm:ss
+ * @returns {boolean} true=瓒呰繃涓�涓湀锛宖alse=鏈秴杩�
+ */
+export function isOverOneMonth(startTime, endTime) {
+ // 1. 瑙f瀽涓烘棩鏈熷璞�
+ const start = new Date(startTime);
+ const end = new Date(endTime);
+
+ // 2. 鏍¢獙鏃ユ湡鍚堟硶鎬�
+ if (isNaN(start.getTime()) || isNaN(end.getTime())) {
+ throw new Error("鏃堕棿鏍煎紡閿欒锛岃浣跨敤 yyyy-MM-dd HH:mm:ss 鏍煎紡");
+ }
+
+ // 3. 濡傛灉缁撴潫鏃堕棿鏃╀簬寮�濮嬫椂闂达紝鐩存帴杩斿洖false
+ if (end < start) return false;
+
+ // 4. 璁$畻骞翠唤宸�佹湀浠藉樊
+ const startYear = start.getFullYear();
+ const startMonth = start.getMonth();
+ const startDay = start.getDate();
+ const startRest = start.getTime() - new Date(startYear, startMonth, startDay).getTime(); // 鏃跺垎绉掓绉�
+
+ const endYear = end.getFullYear();
+ const endMonth = end.getMonth();
+ const endDay = end.getDate();
+ const endRest = end.getTime() - new Date(endYear, endMonth, endDay).getTime();
+
+ // 鎬绘湀浠藉樊鍊�
+ const monthDiff = (endYear - startYear) * 12 + (endMonth - startMonth);
+
+ // 5. 鍒ゆ柇閫昏緫
+ if (monthDiff > 1) {
+ return true; // 鏈堜唤宸�>1 鈫� 瓒呰繃
+ } else if (monthDiff === 1) {
+ // 鏈堜唤宸�=1 鈫� 姣旇緝 鏃�+鏃跺垎绉掞紝瓒呰繃鍒欏垽瀹氳秴鏃�
+ return endDay > startDay || (endDay === startDay && endRest > startRest);
+ } else {
+ return false; // 鏈堜唤宸�<1 鈫� 鏈秴杩�
+ }
+}
--
Gitblit v1.9.3