From b7ae3f69ae6706a692284d2f12835d213debfb1a Mon Sep 17 00:00:00 2001
From: zhangwei <1504152376@qq.com>
Date: 星期二, 07 四月 2026 17:21:41 +0800
Subject: [PATCH] -
---
src/common/utils/util.js | 72 ++++++++++++++++++++++++++++++++++++
1 files changed, 72 insertions(+), 0 deletions(-)
diff --git a/src/common/utils/util.js b/src/common/utils/util.js
index da3cfb9..70a4f8a 100644
--- a/src/common/utils/util.js
+++ b/src/common/utils/util.js
@@ -117,6 +117,52 @@
}
},
/**
+ * 鏍稿績宸ュ叿鍑芥暟锛氭牴鎹敓鏃ュ瓧绗︿覆璁$畻骞撮緞
+ * @param {string} birthdayStr - 鐢熸棩瀛楃涓诧紙鏀寔 YYYY-MM-DD / YYYY/MM/DD锛�
+ * @returns {number} 鍛ㄥ瞾锛�-1 琛ㄧず鏃ユ湡鏃犳晥锛�
+ */
+ calculateAgeFromBirthday(birthdayStr) {
+ console.log(birthdayStr,'銆併�併�併�併�併�併�併�併�併�佲��');
+ if (!birthdayStr) return -1
+
+ // 1. 缁熶竴鏍煎紡骞剁簿鍑嗚В鏋愮敓鏃ワ紙瑙e喅 1/26 杩欑被鏃犺ˉ闆舵棩鏈熺殑瑙f瀽闂锛�
+ const normalized = birthdayStr.replace(/[./]/g, '-')
+ console.log(normalized,'normalized鈥�');
+ const [birthYear, birthMonth, birthDay] = normalized.split('-').map(Number)
+ // 鐩存帴鐢ㄦ暟瀛楀垱寤� Date 瀵硅薄锛岄伩鍏嶅瓧绗︿覆瑙f瀽鐨勬涔夛紙鏈堜唤浠� 0 寮�濮嬶級
+ const birthDate = new Date(birthYear, birthMonth - 1, birthDay)
+
+ // 2. 鏍¢獙鏃ユ湡鍚堟硶鎬�
+ if (isNaN(birthDate.getTime())) return -1
+ // 鍙嶅悜楠岃瘉锛氱‘淇濊緭鍏ョ殑骞存湀鏃ュ拰 Date 瀵硅薄涓�鑷达紙閬垮厤 2010/2/30 杩欑被鏃犳晥鏃ユ湡锛�
+ if (
+ birthDate.getFullYear() !== birthYear ||
+ birthDate.getMonth() + 1 !== birthMonth ||
+ birthDate.getDate() !== birthDay
+ ) {
+ return -1
+ }
+
+ // 3. 鑾峰彇褰撳墠鏃ユ湡锛堢簿鍑嗗埌鏃ワ紝鎺掗櫎鏃跺垎绉掑共鎵帮級
+ const now = new Date()
+ const currentYear = now.getFullYear()
+ const currentMonth = now.getMonth() + 1 // 杞垚 1-12 鏈�
+ const currentDay = now.getDate()
+
+ // 4. 鏍稿績锛氱簿鍑嗚绠楀懆宀�
+ let age = currentYear - birthYear
+ // 鍒ゆ柇锛氬綋鍓嶆棩鏈� < 鐢熸棩鏃ユ湡 鈫� 骞撮緞鍑� 1锛堝彧鏈夊綋鍓嶆棩鏈� >= 鐢熸棩鏃ユ湡锛屾墠婊″搴斿懆宀侊級
+ if (
+ currentMonth < birthMonth || // 鏈堜唤娌″埌
+ (currentMonth === birthMonth && currentDay < birthDay) // 鏈堜唤鍒颁簡锛屼絾鏃ユ湡娌″埌
+ ) {
+ age--
+ }
+
+ // 5. 杈圭晫澶勭悊锛氬勾榫勪笉鑳戒负璐燂紙鎺掗櫎鏈潵鐢熸棩锛�
+ return age
+ },
+ /**
* 鏃ユ湡鏍煎紡杞椂闂存埑
* @param {Object} timeStamp
*/
@@ -894,5 +940,31 @@
getFileExtensionWithDotRegex(filename) {
const match = filename.match(/\.[^.]+$/);
return match ? match[0] : '';
+ },
+ isEmpty(value) {
+ return (
+ value === null ||
+ value === undefined ||
+ value === '' ||
+ (Array.isArray(value) && value.length === 0) ||
+ (typeof value === 'object' &&!Array.isArray(value) && Object.keys(value).length === 0)
+ );
+ },
+
+ removeEmptyValuesRecursive(obj) {
+ const newObj = {};
+ for (const key in obj) {
+ if (obj.hasOwnProperty(key)) {
+ const value = obj[key];
+ if (!this.isEmpty(value)) {
+ if (typeof value === 'object' &&!Array.isArray(value)) {
+ newObj[key] = removeEmptyValuesRecursive(value);
+ } else {
+ newObj[key] = value;
+ }
+ }
+ }
+ }
+ return newObj;
}
}
\ No newline at end of file
--
Gitblit v1.9.1