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