From b0d4df5f39525ae7fe252e8ee65d85fd71dca721 Mon Sep 17 00:00:00 2001
From: zouyu <2723363702@qq.com>
Date: 星期四, 07 五月 2026 14:53:32 +0800
Subject: [PATCH] 手动下单:检验中订单撤销报错问题修复

---
 src/utils/date.js |  103 +++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 99 insertions(+), 4 deletions(-)

diff --git a/src/utils/date.js b/src/utils/date.js
index 6d2c1a5..70729fb 100644
--- a/src/utils/date.js
+++ b/src/utils/date.js
@@ -1,3 +1,4 @@
+import dayjs from 'dayjs';
 /**
  * 鑾峰彇骞存湀鏃�
  */
@@ -58,7 +59,7 @@
  * @param date
  * @returns {string}
  */
-export function getYearAndMonthAndDaysZTZB(date = new Date()) {
+export function getYearAndMonthAndDaysZTNS(date = new Date()) {
   let year = date.getFullYear();
   let month = date.getMonth();
   let days = date.getDate();
@@ -71,11 +72,105 @@
       year++;
     }
   }
-
   month += 1;
   month = month < 10 ? '0' + month + '-' : month + '-';
   year = year + '-';
   days = days < 10 ? '0' + days : days;
-
   return (year + month + days);
-}
\ No newline at end of file
+}
+
+/**
+ * 鑾峰彇鏃堕棿鑼冨洿锛�26鍙�-25鍙�
+ * 鍒濆鍖栭粯璁ゆ棩鏈熻寖鍥达細杩戜竴涓湀锛堝綋鍓嶆棩鏈� - 30澶� 鑷� 褰撳墠鏃ユ湡锛�
+ * @param format
+ * @returns {*[]}
+ */
+export function getTimeRange(format = 'YYYY-MM-DD HH:mm:ss') {
+  // 鑾峰彇褰撳墠鏃堕棿
+  const now = dayjs();
+  // 鑾峰彇褰撳墠鏃ユ湡鐨勩�屾棩銆嶏紙1-31锛�
+  const currentDate = now.date();
+
+  let startTime, endTime;
+
+  // 鏍稿績閫昏緫锛氬垽鏂綋鍓嶆棩鏈熸槸鍚﹀ぇ浜�25鍙�
+  if (currentDate > 25) {
+    // 鉁� 鎯呭喌1锛氬綋鍓嶆棩>25 鈫� 褰撴湀26鍙� ~ 娆℃湀25鍙�
+    startTime = now.startOf('month').add(25, 'day'); // 褰撴湀1鍙� +25澶� = 26鍙�
+    endTime = startTime.add(1, 'month').date(25).hour(23)
+      .minute(59)
+      .second(59);     // 娆℃湀25鍙凤紙dayjs鑷姩澶勭悊璺ㄥ勾锛�
+  } else {
+    // 鉁� 鎯呭喌2锛氬綋鍓嶆棩鈮�25 鈫� 涓婃湀26鍙� ~ 褰撴湀25鍙�
+    startTime = now.subtract(1, 'month').startOf('month').add(25, 'day'); // 涓婃湀26鍙�
+    endTime = now.date(25).hour(23)
+      .minute(59)
+      .second(59); // 褰撴湀25鍙�
+  }
+
+  // 杩斿洖鏍煎紡鍖栧悗鐨勬椂闂存暟缁�
+  return [startTime.format(format), endTime.format(format)];
+}
+
+/**
+ * 鑾峰彇鐝鏈堜唤
+ * @returns {*}
+ */
+export function getWorkMonth(){
+  // 鑾峰彇褰撳墠鏃堕棿
+  const now = dayjs();
+  // 鑾峰彇褰撳墠鏃ユ湡鐨勩�屾棩銆嶏紙1-31锛�
+  const currentDate = now.date();
+  let workMonth;
+  // 鏍稿績閫昏緫锛氬垽鏂綋鍓嶆棩鏈熸槸鍚﹀ぇ浜�25鍙�
+  if (currentDate > 25) {
+    workMonth = now.add(1, 'month')
+  }else{
+    workMonth = now
+  }
+  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