From 039cd582e2bb49af7b3ad126c49ef988b7d8853f Mon Sep 17 00:00:00 2001 From: Tevin <tingquanren@163.com> Date: Wed, 18 Oct 2023 16:27:11 +0800 Subject: [PATCH] 页面结构组件,支持手动滚动 --- common/Helper.js | 82 ++++++++++++++++++++++++++++++++++++++-- 1 files changed, 77 insertions(+), 5 deletions(-) diff --git a/common/Helper.js b/common/Helper.js index 94ea683..4cbb0c5 100644 --- a/common/Helper.js +++ b/common/Helper.js @@ -1,11 +1,84 @@ /** - * Helper - 小功能集 + * Helper - 帮助小功能集 * @author Tevin */ export class Helper { constructor() { + this._data = { + locations: [], + }; + } + + /** + * 检查网络状态 + * @param {Function} callback + */ + 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://gz.zhiheiot.com/disp/download/buildArchive/online.png?t=' + Date.now(); + } + // 网络未开启 + else { + callback && callback(false); + } + } + // 补充:小程序模式用 getNetworkType + } + + /** + * 操作GPS定位 + * @param {String} type + * @param {Object} [location] + * @return {Number|Object} + */ + oprGPSLocation(type, location) { + // 开始记录 + if (type === 'restart') { + this._data.locations = []; + } + // 添加记录 + else if (type === 'add') { + this._data.locations.push({ + ...location, + radius: Number(location.radius), + }); + // 按精度排序 + this._data.locations.sort((a, b) => a.radius < b.radius ? -1 : 1); + } + // 获取高精度次数计数 + else if (type === 'countHigh') { + let count = 0; + this._data.locations.forEach(location => { + if (location.radius <= 10) { + count++; + } + }); + return count; + } + // 读取最精确的记录 + else if (type === 'read') { + return this._data.locations[0]; + } + // 读取最精确的记录,并返回字符串 + else if (type === 'readStr') { + const location = this._data.locations[0]; + return location.longitude + ',' + location.latitude + ',' + location.radius; + } } /** @@ -30,9 +103,9 @@ const fileref = document.createElement('script'); fileref.setAttribute('type', 'text/javascript'); if (window.location.protocol === 'https:') { - fileref.setAttribute('src', 'https://cdn.jsdelivr.net/npm/eruda'); + fileref.setAttribute('src', 'https://rb.zhiheiot.com/static/pages/libs/eruda.min.js'); } else { - fileref.setAttribute('src', 'http://cdn.jsdelivr.net/npm/eruda'); + fileref.setAttribute('src', 'http://rb.zhiheiot.com/static/pages/libs/eruda.min.js'); } document.getElementsByTagName('head')[0].appendChild(fileref); const simulateTouch = (dom, type) => { @@ -97,11 +170,10 @@ callback && callback(); }, 1000); }, 100); - } }, 100); } } -export const $Helper = new Helper(); \ No newline at end of file +export const $helper = new Helper(); \ No newline at end of file -- Gitblit v1.9.1