From 16213c0f85aa3ac8317797bf4a05fd12940e16d3 Mon Sep 17 00:00:00 2001 From: zhangwei <1504152376@qq.com> Date: 星期三, 05 三月 2025 17:29:42 +0800 Subject: [PATCH] - --- src/common/utils/util.js | 145 +++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 135 insertions(+), 10 deletions(-) diff --git a/src/common/utils/util.js b/src/common/utils/util.js index db1eae5..da3cfb9 100644 --- a/src/common/utils/util.js +++ b/src/common/utils/util.js @@ -133,20 +133,29 @@ 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) + 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'); const hours = date.getHours().toString().padStart(2, '0'); const minutes = date.getMinutes().toString().padStart(2, '0'); if (type) { - return `${year}/${month}/${day} ${hours}:${minutes}`; + return type=='riqi' ? `${month}-${day}`: `${year}-${month}-${day} ${hours}:${minutes}`; } - return `${year}/${month}/${day}`; + return `${year}-${month}-${day}`; }, /** * 鍊掕鏃� @@ -711,7 +720,7 @@ } typeof callback == 'function' && callback(theRequest); }, - + /** * 璺緞杞琤ase64 * @param {Object} string @@ -736,7 +745,7 @@ reject(error); }; // #endif - + // #ifdef MP if (uni.canIUse('getFileSystemManager')) { uni.getFileSystemManager().readFile({ @@ -751,7 +760,7 @@ }) } // #endif - + // #ifdef APP-PLUS plus.io.resolveLocalFileSystemURL(getLocalFilePath(path), (entry) => { entry.file((file) => { @@ -767,7 +776,123 @@ }, 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) + } + } + } + }, + checkFileExtensions(str) { + const extensions = ['pdf', 'doc', 'docx', 'xls', 'xlsx']; + return extensions.some(extension => str.includes(extension)); + }, + previewWechat(urlPdf) { + uni.showLoading({ + title: '姝e湪鍔犺浇涓�..' + }) + uni.downloadFile({ + url: urlPdf, + success: function(res) { + var filePath = res.tempFilePath; + const index = urlPdf.lastIndexOf("."); + const suffix = urlPdf.substring(index + 1); + uni.openDocument({ + fileType: suffix, + filePath: filePath, + showMenu: true, + success: function(res) { + console.log('鎵撳紑鏂囨。鎴愬姛'); + uni.hideLoading() + }, + }); + }, + complete: function(r) { + uni.hideLoading() + } + }); + }, + //鐢熸垚鏃堕棿鎴�+闅忔満鏁� + // 鐢熸垚鏃堕棿鎴�+闅忔満鏁扮殑鍑芥暟 + generateTimestampWithRandom(filename) { + // 鑾峰彇褰撳墠鏃ユ湡鍜屾椂闂� + const now = new Date(); + // 鑾峰彇骞翠唤锛岀‘淇濅负鍥涗綅鏁� + const year = now.getFullYear(); + // 鑾峰彇鏈堜唤锛岀‘淇濅负涓や綅鏁� + const month = String(now.getMonth() + 1).padStart(2, '0'); + // 鑾峰彇鏃ユ湡锛岀‘淇濅负涓や綅鏁� + const day = String(now.getDate()).padStart(2, '0'); + // 鑾峰彇灏忔椂锛岀‘淇濅负涓や綅鏁� + const hours = String(now.getHours()).padStart(2, '0'); + // 鑾峰彇鍒嗛挓锛岀‘淇濅负涓や綅鏁� + const minutes = String(now.getMinutes()).padStart(2, '0'); + // 鑾峰彇绉掓暟锛岀‘淇濅负涓や綅鏁� + const seconds = String(now.getSeconds()).padStart(2, '0'); + // 鎷兼帴鏃堕棿鎴� + const timestamp = `${year}${month}${day}${hours}${minutes}${seconds}`; + // 鐢熸垚涓�涓� 0 鍒� 9999 涔嬮棿鐨勯殢鏈烘暟锛屽苟鏍煎紡鍖栦负鍥涗綅鏁� + const randomNumber = String(Math.floor(Math.random() * 10000)).padStart(4, '0'); + // 鎷兼帴鏃堕棿鎴冲拰闅忔満鏁� + return `cylsg/${timestamp}_${randomNumber}` + filename.match(/\.[^.]+$/); + }, + getFileExtensionWithDotRegex(filename) { + const match = filename.match(/\.[^.]+$/); + return match ? match[0] : ''; } - - -} +} \ No newline at end of file -- Gitblit v1.9.1