From 49f99bdd4b08fbbe692efdfe52ae3ca29f4e8c6c Mon Sep 17 00:00:00 2001 From: Tevin <tingquanren@163.com> Date: Tue, 12 Jul 2022 14:57:05 +0800 Subject: [PATCH] 增加跳转页面选择组件 --- common/Tools.js | 70 +++++++++++++++++++++++++++++++++-- 1 files changed, 66 insertions(+), 4 deletions(-) diff --git a/common/Tools.js b/common/Tools.js index e4e7403..2f36e53 100644 --- a/common/Tools.js +++ b/common/Tools.js @@ -12,12 +12,13 @@ * 显示消息 * @param msg * @param [duration=2000] + * @param [mask=false] */ - static toast(msg, duration = 2000) { + static toast(msg, duration = 2000, mask = false) { Taro.showToast({ title: msg, icon: 'none', - mask: true, + mask, duration, }); } @@ -66,6 +67,50 @@ v = c === 'x' ? r : ((r & 0x3) | 0x8); return v.toString(16); }); + } + + /** + * 获取随机字符串 + * @param {number} long + * @return {string} + */ + static getRandomString(long) { + long = long || 32; + const template = 'ABCDEFGHJKMNPQRSTWXYZabcdefhijkmnprstwxyz2345678'; + const count = template.length; + let result = ''; + for (let i = 0; i < long; i++) { + result += template.charAt(Math.floor(Math.random() * count)); + } + return result; + } + + /** + * 检查网络状态 + */ + static checkOnlineState(callback) { + // 网页模式 + if (process.env.TARO_ENV === 'h5') { + // 网络已开启 + if (navigator.onLine) { + // 用图片资源测试网络状态 + const img = new Image(); + img.onload = () => { + img.onload = null; + callback && callback(true); + }; + img.onerror = () => { + img.onerror = null; + callback && callback(false); + }; + img.src = 'http://tt.zhiheiot.com/static/online.png?t=' + Date.now(); + } + // 网络未开启 + else { + callback && callback(false); + } + } + // 补充:小程序模式用 getNetworkType } /** @@ -317,7 +362,16 @@ if (Tools.isString(timestamp)) { // 全数值 if (/^\d+$/.test(timestamp)) { - timestamp = parseInt(timestamp); + // 8位视为无连接符日期 + if (timestamp.length === 8) { + const day = timestamp.substr(0, 4) + '-' + + timestamp.substr(4, 2) + '-' + timestamp.substr(6, 2); + timestamp = (new Date(timestamp)).getTime(); + } + // 超过8位,视为时间戳 + else if (timestamp.length > 8) { + timestamp = parseInt(timestamp); + } } // 日期 else { @@ -327,7 +381,15 @@ } } } - if (timestamp < 9 * 10e8) { + // 转为数值的无连接符日期 + if (timestamp < 9 * 10e6) { + const timeStr = timestamp + ''; + const day = timeStr.substr(0, 4) + '-' + + timeStr.substr(4, 2) + '-' + timeStr.substr(6, 2); + timestamp = (new Date(day)).getTime(); + } + // 按秒时间戳 + else if (timestamp < 9 * 10e8) { timestamp *= 1000; } const curMoment = moment(timestamp); -- Gitblit v1.9.1