From 9f0f5d7767506658ab5ca47ba8ff4ede423e47e3 Mon Sep 17 00:00:00 2001 From: zhangwei <1504152376@qq.com> Date: 星期三, 22 一月 2025 10:10:45 +0800 Subject: [PATCH] - --- src/common/utils/util.js | 171 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 169 insertions(+), 2 deletions(-) diff --git a/src/common/utils/util.js b/src/common/utils/util.js index 0d4f51e..2d14f09 100644 --- a/src/common/utils/util.js +++ b/src/common/utils/util.js @@ -133,6 +133,30 @@ parseInt(t[2], 10) || null )).getTime() / 1000; }, + 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 `${year}-${month}-${day}`; + }, /** * 鍊掕鏃� * @param {Object} seconds 绉� @@ -695,6 +719,149 @@ } } typeof callback == 'function' && callback(theRequest); - } + }, -} + /** + * 璺緞杞琤ase64 + * @param {Object} string + */ + pathToBase64(path) { + if (/^data:/.test(path)) return path + return new Promise((resolve, reject) => { + // #ifdef H5 + let image = new Image(); + image.setAttribute("crossOrigin", 'Anonymous'); + image.onload = function() { + let canvas = document.createElement('canvas'); + canvas.width = this.naturalWidth; + canvas.height = this.naturalHeight; + canvas.getContext('2d').drawImage(image, 0, 0); + let result = canvas.toDataURL('image/png') + resolve(result); + canvas.height = canvas.width = 0 + } + image.src = path + '?v=' + Math.random() + image.onerror = (error) => { + reject(error); + }; + // #endif + + // #ifdef MP + if (uni.canIUse('getFileSystemManager')) { + uni.getFileSystemManager().readFile({ + filePath: path, + encoding: 'base64', + success: (res) => { + resolve('data:image/png;base64,' + res.data) + }, + fail: (error) => { + reject(error) + } + }) + } + // #endif + + // #ifdef APP-PLUS + plus.io.resolveLocalFileSystemURL(getLocalFilePath(path), (entry) => { + entry.file((file) => { + const fileReader = new plus.io.FileReader() + fileReader.onload = (data) => { + resolve(data.target.result) + } + fileReader.onerror = (error) => { + reject(error) + } + fileReader.readAsDataURL(file) + }, reject) + }, 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; + uni.openDocument({ + filePath: filePath, + showMenu: true, + success: function(res) { + console.log('鎵撳紑鏂囨。鎴愬姛'); + uni.hideLoading() + }, + }); + }, + complete: function(r) { + uni.hideLoading() + } + }); + }, +} \ No newline at end of file -- Gitblit v1.9.1