From 6761e4f06daef8e5cb71fb8f3fde9ca9a353bb2c Mon Sep 17 00:00:00 2001
From: chenhaozhe <cgz@hz-kingdee.com>
Date: 星期二, 22 七月 2025 16:46:51 +0800
Subject: [PATCH] Merge branch 'Dev' of http://101.37.171.70:10101/r/~jhz/STUWMS into Dev

---
 utils/common.js |  145 +++++++++++++++++++++++++++++++++++++----------
 1 files changed, 113 insertions(+), 32 deletions(-)

diff --git a/utils/common.js b/utils/common.js
index 6e0d02f..d3dd163 100644
--- a/utils/common.js
+++ b/utils/common.js
@@ -87,36 +87,106 @@
 	isAllDigits(str) {
 		return /^\d+$/.test(str);
 	}
-	
-	timeClock(callback, delay) {
-	    let timeoutId;
-	    let isRunning = false;
-	
-	    function interval() {
-	        timeoutId = setTimeout(() => {
-	            callback();
-				clearTimeout(timeoutId); // 绔嬪嵆娓呴櫎褰撳墠瀹氭椂鍣↖D
-	            if (isRunning) {
-	                interval();
-	            }
-	        }, delay);
-	    }
-	
-	    return {
-	        start() {
-	            if (!isRunning) {
-	                isRunning = true;
-	                interval();
-	            }
-	        },
-	        stop() {
-	            if (isRunning) {
-	                isRunning = false;
-	                clearTimeout(timeoutId);
-	            }
-	        }
-	    };
+
+	isJson(str) {
+		try {
+			JSON.parse(str)
+			return true
+		} catch {
+			return false
+		}
 	}
+
+	timeClock(callback, delay) {
+		let timeoutId;
+		let isRunning = false;
+
+		function interval() {
+			timeoutId = setTimeout(() => {
+				callback();
+				clearTimeout(timeoutId); // 绔嬪嵆娓呴櫎褰撳墠瀹氭椂鍣↖D
+				if (isRunning) {
+					interval();
+				}
+			}, delay);
+		}
+
+		return {
+			start() {
+				if (!isRunning) {
+					isRunning = true;
+					interval();
+				}
+			},
+			stop() {
+				if (isRunning) {
+					isRunning = false;
+					clearTimeout(timeoutId);
+				}
+			}
+		};
+	}
+
+	deepClone(target, map = new WeakMap()) {
+		// 澶勭悊鍘熷鍊煎拰鍑芥暟(typeof 鏁扮粍浼氳繑鍥瀘bject)
+		if (typeof target !== 'object' || target === null) {
+			return target;
+		}
+
+		// 澶勭悊寰幆寮曠敤
+		if (map.has(target)) {
+			return map.get(target);
+		}
+
+		let clone;
+
+		// 澶勭悊鏁扮粍
+		if (Array.isArray(target)) {
+			clone = [];
+			map.set(target, clone);
+			target.forEach((item, index) => {
+				clone[index] = deepClone(item, map);
+			});
+			return clone;
+		}
+
+		// 澶勭悊鏃ユ湡瀵硅薄
+		if (target instanceof Date) {
+			clone = new Date(target.getTime());
+			map.set(target, clone);
+			return clone;
+		}
+
+		// 澶勭悊姝e垯琛ㄨ揪寮�
+		if (target instanceof RegExp) {
+			clone = new RegExp(target);
+			map.set(target, clone);
+			return clone;
+		}
+
+		// 澶勭悊鍑芥暟 (鐩存帴浣跨敤鍑芥暟鐨勫紩鐢�)
+		if (typeof target === 'function') {
+			return target;
+		}
+
+		// 澶勭悊鍏朵粬瀵硅薄锛堟櫘閫氬璞°�佺被瀹炰緥绛夛級
+		clone = Object.create(Object.getPrototypeOf(target));
+		map.set(target, clone);
+
+		// 鑾峰彇鎵�鏈夊睘鎬э紙鍖呮嫭 Symbol 绫诲瀷锛�
+		const allKeys = [...Object.getOwnPropertyNames(target), ...Object.getOwnPropertySymbols(target)];
+
+		allKeys.forEach(key => {
+			const descriptor = Object.getOwnPropertyDescriptor(target, key);
+			if (descriptor && descriptor.enumerable) {
+				// 閫掑綊澶嶅埗灞炴�у��
+				clone[key] = deepClone(target[key], map);
+			}
+		});
+
+		return clone;
+	}
+
 	// uni-app 浣跨敤 灏佽璇锋眰鍑芥暟 浣跨敤浼犵粺鍑芥暟褰撲綔鍥炶皟闇�瑕佷紶that锛岀澶村嚱鏁颁笉闇�瑕�
 	doRequest(url, data, resFunction, errFunction, method, that) {
 		that = that || this;
@@ -153,8 +223,9 @@
 				} else {
 					throw new TypeError("璁块棶澶辫触鍥炶皟鍑芥暟绫诲瀷涓嶄负鍑芥暟鎴栬�呯┖!")
 				}
-				
-			},complete() {
+
+			},
+			complete() {
 				setTimeout(() => {
 					uni.hideLoading()
 					if (errorTip != null) {
@@ -163,7 +234,17 @@
 				}, 1000)
 			}
 		})
-		
+	}
+
+	// uni-app 鎾斁闊抽灏佽
+	playSound(e) {
+		const innerAudioContext = uni.createInnerAudioContext();
+		if (e == 1) {
+			innerAudioContext.src = '/static/success.wav';
+		} else {
+			innerAudioContext.src = '/static/jingbao.wav';
+		}
+		innerAudioContext.play(); // 鎾斁闊抽
 	}
 }
 

--
Gitblit v1.9.1