From df6264edf6dc16aa391e349b660304389f25b02f Mon Sep 17 00:00:00 2001 From: Tevin <tingquanren@163.com> Date: Thu, 06 Apr 2023 11:57:46 +0800 Subject: [PATCH] 调整工具集内容,创建小功能集Helper新文件 --- common/Helper.js | 107 ++++++++++++++++++++++++++ common/Tools.js | 99 ------------------------ common/FileTransform.js | 16 +++ 3 files changed, 122 insertions(+), 100 deletions(-) diff --git a/common/FileTransform.js b/common/FileTransform.js index cc35f73..22f608c 100644 --- a/common/FileTransform.js +++ b/common/FileTransform.js @@ -22,7 +22,7 @@ } /** - * 转换 ObjectURL 为 base64 数据体 + * 转换 ObjectURL 为 base64 数据体(用于java通讯) * @param objUrl * @param callback */ @@ -42,7 +42,7 @@ } /** - * 转换 base64 数据体为 ObjectURL + * 转换 base64 数据体为 ObjectURL(用于java通讯) * @param baseData * @param callback */ @@ -143,6 +143,18 @@ return array; } + /** + * 读取文件 base64 + * @param {File} file + * @param {Function} callback + */ + getFileBase64(file, callback) { + const reader = new FileReader(); + reader.onload = () => callback(reader.result); + reader.onerror = error => callback(null, error); + reader.readAsDataURL(file); + } + } export const $fileTrans = new FileTransform(); \ No newline at end of file diff --git a/common/Helper.js b/common/Helper.js new file mode 100644 index 0000000..94ea683 --- /dev/null +++ b/common/Helper.js @@ -0,0 +1,107 @@ +/** + * Helper - 小功能集 + * @author Tevin + */ + +export class Helper { + + constructor() { + } + + /** + * 播放App操作的提醒语音 + * @param {String} name + */ + playOprSound(name) { + const audio = new Audio('../assets/sound/' + name + '.mp3'); + audio.play(); + } + + /** + * 显示调试面板(仅支持H5) + * @param {{cssSelector,autoOpen}} options + * @param {Function} [callback] + */ + showDevConsole(options = {}, callback) { + // 只支持 h5 编译 + if (process.env.TARO_ENV !== 'h5') { + return; + } + const fileref = document.createElement('script'); + fileref.setAttribute('type', 'text/javascript'); + if (window.location.protocol === 'https:') { + fileref.setAttribute('src', 'https://cdn.jsdelivr.net/npm/eruda'); + } else { + fileref.setAttribute('src', 'http://cdn.jsdelivr.net/npm/eruda'); + } + document.getElementsByTagName('head')[0].appendChild(fileref); + const simulateTouch = (dom, type) => { + const button = dom; + const touch = new Touch({ + identifier: Date.now(), + target: button, + clientX: 0, + clientY: 0, + screenX: 0, + screenY: 0, + pageY: 0, + pageX: 0, + radiusX: 2.5, + radiusY: 2.5, + rotationAngle: 10, + force: 0.5, + }); + const touchstart = new TouchEvent(type, { + cancelable: true, + bubbles: true, + composed: true, + touches: [touch], + targetTouches: [touch], + changedTouches: [touch], + }); + button.dispatchEvent(touchstart); + }; + const erudaTimer = setInterval(() => { + if (window.eruda) { + clearInterval(erudaTimer); + setTimeout(() => { + const container = document.createElement('div'); + if (options.cssSelector) { + document.querySelector(options.cssSelector).appendChild(container); + } else { + document.getElementsByTagName('body')[0].appendChild(container); + } + window.eruda.init({ + container: container, + useShadowDom: false, + }); + if (options.autoOpen) { + let button = null; + setTimeout(() => { + button = document.querySelector('.eruda-entry-btn'); + }, 50); + setTimeout(() => { + simulateTouch(button, 'touchstart'); + }, 60); + setTimeout(() => { + simulateTouch(button, 'touchend'); + }, 350); + } + setTimeout(() => { + console.warn('=====【艾信App调试模式】====='); + }, 800); + setTimeout(() => { + console.warn('点击右下角悬浮工具箱图标可以折叠面板'); + }, 900); + setTimeout(() => { + callback && callback(); + }, 1000); + }, 100); + + } + }, 100); + } + +} + +export const $Helper = new Helper(); \ No newline at end of file diff --git a/common/Tools.js b/common/Tools.js index 8a237b8..d7f7179 100644 --- a/common/Tools.js +++ b/common/Tools.js @@ -1,5 +1,5 @@ /** - * Tools + * Tools - 工具集 * @author Tevin */ @@ -41,20 +41,6 @@ } else { return null; } - } - - /** - * 读取文件 base64 - * @param {File} file - * @return {Promise<string>} - */ - static getFileBase64(file) { - return new Promise((resolve, reject) => { - const reader = new FileReader(); - reader.onload = () => resolve(reader.result); - reader.onerror = error => reject(error); - reader.readAsDataURL(file); - }); } /** @@ -531,89 +517,6 @@ const weekDayLong = weekDay * dayLong; const dayTimestamp = yearStart.valueOf() + firstWeekLong + weeksLong + weekDayLong; return moment(dayTimestamp).format('YYYY-MM-DD'); - } - - /** - * 显示调试面板(仅支持H5) - * @param cssSelector - * @param callback - */ - static $_showDevConsole(cssSelector, callback) { - // 只支持 h5 编译 - if (process.env.TARO_ENV !== 'h5') { - return; - } - const fileref = document.createElement('script'); - fileref.setAttribute('type', 'text/javascript'); - if (window.location.protocol === 'https:') { - fileref.setAttribute('src', 'https://cdn.jsdelivr.net/npm/eruda'); - } else { - fileref.setAttribute('src', 'http://cdn.jsdelivr.net/npm/eruda'); - } - document.getElementsByTagName('head')[0].appendChild(fileref); - const simulateTouch = (dom, type) => { - const button = dom; - const touch = new Touch({ - identifier: Date.now(), - target: button, - clientX: 0, - clientY: 0, - screenX: 0, - screenY: 0, - pageY: 0, - pageX: 0, - radiusX: 2.5, - radiusY: 2.5, - rotationAngle: 10, - force: 0.5, - }); - const touchstart = new TouchEvent(type, { - cancelable: true, - bubbles: true, - composed: true, - touches: [touch], - targetTouches: [touch], - changedTouches: [touch], - }); - button.dispatchEvent(touchstart); - }; - const erudaTimer = setInterval(() => { - if (window.eruda) { - clearInterval(erudaTimer); - setTimeout(() => { - const container = document.createElement('div'); - if (cssSelector) { - document.querySelector(cssSelector).appendChild(container); - } else { - document.getElementsByTagName('body')[0].appendChild(container); - } - window.eruda.init({ - container: container, - useShadowDom: false, - }); - let button = null; - setTimeout(() => { - button = document.querySelector('.eruda-entry-btn'); - }, 50); - setTimeout(() => { - simulateTouch(button, 'touchstart'); - }, 60); - setTimeout(() => { - simulateTouch(button, 'touchend'); - }, 350); - setTimeout(() => { - console.warn('=====【艾信App调试模式】====='); - }, 800); - setTimeout(() => { - console.warn('点击右下角悬浮工具箱图标可以折叠面板'); - }, 900); - setTimeout(() => { - callback && callback(); - }, 1000); - }, 100); - - } - }, 100); } } -- Gitblit v1.9.1