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 | 124 +++++++++++++++++++++++++++++++++++++++++
1 files changed, 123 insertions(+), 1 deletions(-)
diff --git a/src/utils/date.js b/src/utils/date.js
index 3f4a780..70729fb 100644
--- a/src/utils/date.js
+++ b/src/utils/date.js
@@ -1,3 +1,4 @@
+import dayjs from 'dayjs';
/**
* 鑾峰彇骞存湀鏃�
*/
@@ -51,4 +52,125 @@
return format
}
return ''
-}
\ No newline at end of file
+}
+
+/**
+ * 鑾峰彇骞存湀鏃� 26鍙�+1
+ * @param date
+ * @returns {string}
+ */
+export function getYearAndMonthAndDaysZTNS(date = new Date()) {
+ let year = date.getFullYear();
+ let month = date.getMonth();
+ let days = date.getDate();
+
+ // 鍒ゆ柇鏄惁鏄�26鍙�
+ if (days === 26) {
+ month++;
+ if (month > 11) {
+ month = 0;
+ year++;
+ }
+ }
+ month += 1;
+ month = month < 10 ? '0' + month + '-' : month + '-';
+ year = year + '-';
+ days = days < 10 ? '0' + days : days;
+ return (year + month + days);
+}
+
+/**
+ * 鑾峰彇鏃堕棿鑼冨洿锛�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