From e3f6581c48b1dfb65c55e8a1a6ce1761a7dc26b4 Mon Sep 17 00:00:00 2001
From: zhangwei <1504152376@qq.com>
Date: 星期四, 16 一月 2025 15:29:43 +0800
Subject: [PATCH] 费用报销

---
 src/common/utils/util.js |   86 ++++++++++++++++++++++++++++++++++++++----
 1 files changed, 77 insertions(+), 9 deletions(-)

diff --git a/src/common/utils/util.js b/src/common/utils/util.js
index e323207..2f75f03 100644
--- a/src/common/utils/util.js
+++ b/src/common/utils/util.js
@@ -133,12 +133,20 @@
 			parseInt(t[2], 10) || null
 		)).getTime() / 1000;
 	},
-	formatDate(dat, type) {
-		if(!dat){
+	minutesBetweenDates(date1, date2) {
+		let dateOne = new Date(date1)
+		const oneMinute = 60 * 1000; // 1鍒嗛挓鐨勬绉掓暟
+		const difference = Math.abs(date2.getTime() - dateOne.getTime()); // 璁$畻涓や釜鏃ユ湡鐨勬绉掑樊
+		return Math.floor(difference / oneMinute); // 灏嗗樊寮傝浆鎹负鍒嗛挓骞跺悜涓嬪彇鏁�
+	},
+	formatDate(dat, type, addNum) {
+		if (!dat) {
 			return '-'
 		}
 		let date = new Date(dat)
-		console.log(date, dat, type);
+		if (addNum) {
+			date = new Date(date.setDate(date.getDate() + addNum));
+		}
 		const year = date.getFullYear();
 		const month = (date.getMonth() + 1).toString().padStart(2, '0');
 		const day = date.getDate().toString().padStart(2, '0');
@@ -712,7 +720,7 @@
 		}
 		typeof callback == 'function' && callback(theRequest);
 	},
-	
+
 	/**
 	 * 璺緞杞琤ase64
 	 * @param {Object} string
@@ -737,7 +745,7 @@
 				reject(error);
 			};
 			// #endif
-	
+
 			// #ifdef MP
 			if (uni.canIUse('getFileSystemManager')) {
 				uni.getFileSystemManager().readFile({
@@ -752,7 +760,7 @@
 				})
 			}
 			// #endif
-	
+
 			// #ifdef APP-PLUS
 			plus.io.resolveLocalFileSystemURL(getLocalFilePath(path), (entry) => {
 				entry.file((file) => {
@@ -768,7 +776,67 @@
 			}, reject)
 			// #endif
 		})
-	}
-	
+	},
+	roundToTwo(num) {
+		if (isNaN(num)) {
+			return 0
+		}
+		return Math.round((num + Number.EPSILON) * 100) / 100;
+	},
+	/**
+	 * @method 鍑芥暟闃叉姈
+	 * @desc 鐭椂闂村唴澶氭瑙﹀彂鍚屼竴浜嬩欢锛屽彧鎵ц鏈�鍚庝竴娆★紝鎴栬�呭彧鎵ц鏈�寮�濮嬬殑涓�娆★紝涓棿鐨勪笉鎵ц銆�
+	 * @param func 鐩爣鍑芥暟
+	 * @param wait 寤惰繜鎵ц姣鏁�
+	 * @param immediate true - 绔嬪嵆鎵ц锛� false - 寤惰繜鎵ц
+	 */
+	debounce(func, wait = 1000, immediate = true) {
+		let timer;
+		return function() {
+			let context = this,
+				args = arguments;
+			if (timer) clearTimeout(timer);
+			if (immediate) {
+				let callNow = !timer;
+				timer = setTimeout(() => {
+					timer = null;
+				}, wait);
+				if (callNow) func.apply(context, args);
+			} else {
+				timer = setTimeout(() => {
+					func.apply(context, args);
+				}, wait)
+			}
+		}
+	},
+	/**
+	 * @method 鍑芥暟鑺傛祦
+	 * @desc 鎸囪繛缁Е鍙戜簨浠讹紝浣嗘槸鍦� n 绉掑唴鍙墽琛屼竴娆″嚱鏁般�傚嵆 2n 绉掑唴鎵ц 2 娆�... 銆備細绋�閲婂嚱鏁扮殑鎵ц棰戠巼銆�
+	 * @param func 鍑芥暟
+	 * @param wait 寤惰繜鎵ц姣鏁�
+	 * @param type 1 鍦ㄦ椂闂存寮�濮嬬殑鏃跺�欒Е鍙� 2 鍦ㄦ椂闂存缁撴潫鐨勬椂鍊欒Е鍙�
+	 */
+	throttle(func, wait = 1000, type = 1) {
+		let previous = 0;
+		let timeout;
+		return function() {
+			let context = this;
+			let args = arguments;
+			if (type === 1) {
+				let now = Date.now();
+				if (now - previous > wait) {
+					func.apply(context, args);
+					previous = now;
+				}
+			} else if (type === 2) {
+				if (!timeout) {
+					timeout = setTimeout(() => {
+						timeout = null;
+						func.apply(context, args)
+					}, wait)
+				}
+			}
+		}
+	},
 
-}
+}
\ No newline at end of file

--
Gitblit v1.9.1