WebApp【公共组件库】@前端(For Git Submodule)
Tevin
2021-05-13 5b3486cd4c3199763fd421828c3b76a337c2ebd4
common/Tools.js
@@ -9,6 +9,20 @@
export class Tools {
    /**
     * 显示消息
     * @param msg
     * @param [duration=2000]
     */
    static toast(msg, duration = 2000) {
        Taro.showToast({
            title: msg,
            icon: 'none',
            mask: true,
            duration,
        });
    }
    /**
     * URL参数解析
     * @param {String} name
     * @param {String} [search]
@@ -22,32 +36,6 @@
        } else {
            return null;
        }
    }
    /**
     * 深度获取 url 参数
     * @param {String} name
     * @return {String}
     */
    static getTopUrlParam(name) {
        if (window.top !== window) {
            return Tools.getUrlParam(name, window.top.location.search);
        } else {
            return Tools.getUrlParam(name);
        }
    }
    /**
     * 显示消息
     * @param msg
     */
    static toast(msg) {
        Taro.showToast({
            title: msg,
            icon: 'none',
            mask: true,
            duration: 2000,
        });
    }
    /**
@@ -177,33 +165,6 @@
        return true;
    }
    // static getObjDataByPath(obj, path) {
    //     const arr = path.split('.');
    //     const reg2 = /\[(.*)]/g;
    //     const reg4 = /\w+(?=\[)|(?<=\[)(.*?)(?=])/g;
    //     let stack = [];
    //     let temp;
    //     arr.forEach(item => {
    //         if (reg2.test(item)) {
    //             while ((temp = reg4.exec(item))) {
    //                 stack.push(temp[0]);
    //             }
    //         } else {
    //             stack.push(item);
    //         }
    //     });
    //     stack = stack.map(item => {
    //         return item.replace(/^['"`]|['"`]$/g, '');
    //     });
    //     try {
    //         return stack.reduce((pre, next) => {
    //             return pre[next];
    //         }, obj);
    //     } catch (err) {
    //         return undefined;
    //     }
    // }
    /**
     * 统计字符串占位宽度
     * @param {String} string
@@ -327,18 +288,6 @@
            }
        }
        return target;
    }
    /**
     * 数组元素交换位置
     * @param {array} arr 数组
     * @param {number} index1 要交换项目的位置
     * @param {number} index2 被交换项目的位置
     * @tutorial 例如:1,5就是数组中下标为1和5的两个元素交换位置
     */
    static swapArray(arr, index1, index2) {
        arr[index1] = arr.splice(index2, 1, arr[index1])[0];
        return arr;
    }
    /**
@@ -495,5 +444,19 @@
        return /^1[3456789]\d{9}$/.test('' + phone);
    }
}
// h5 中,实现 rem 转换 px
if (process.env.NODE_ENV === 'development' && process.env.TARO_ENV === 'h5') {
    const p1 = {
        x: parseFloat(Taro.pxTransform(10, 750)), y: 10,
    };
    const p2 = {
        x: parseFloat(Taro.pxTransform(1000, 750)), y: 1000,
    };
    window.rem = val => {
        const value = typeof val === 'number' ? val : parseFloat(val);
        const px = (value - p1.x) * (p2.y - p1.y) / (p2.x - p1.x) + p1.y;
        console.info(Math.round(px) + 'px');
    };
}