WebApp【公共组件库】@前端(For Git Submodule)
Tevin
2023-04-06 df6264edf6dc16aa391e349b660304389f25b02f
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);
    }
}