WebApp【公共组件库】@前端(For Git Submodule)
Tevin
2021-04-02 73d4022530530be074c48a978ff6d489134bc8e4
common/Tools.js
@@ -5,25 +5,8 @@
import moment from 'moment';
import Taro from '@tarojs/taro';
import { $ } from '@tarojs/extend';
export class Tools {
    /**
     * URL参数解析
     * @param {String} name
     * @param {String} [search]
     * @return {String|Null}
     */
    static getUrlParam(name, search = window.location.search) {
        const reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)', 'i');
        const r = search.substr(1).match(reg);
        if (r !== null) {
            return decodeURIComponent(r[2]);
        } else {
            return null;
        }
    }
    /**
     * 显示消息
@@ -39,17 +22,18 @@
    }
    /**
     * 锁定页面
     * @param type - lock / unlock
     * URL参数解析
     * @param {String} name
     * @param {String} [search]
     * @return {String|Null}
     */
    static lockScreen(type) {
        if (typeof Tools.$lock) {
            Tools.$lock = $('#lock');
        }
        if (type === 'lock') {
            Tools.$lock.show();
        } else if (type === 'unlock') {
            Tools.$lock.hide();
    static getUrlParam(name, search = window.location.search) {
        const reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)', 'i');
        const r = search.substr(1).match(reg);
        if (r !== null) {
            return decodeURIComponent(r[2]);
        } else {
            return null;
        }
    }
@@ -180,33 +164,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
@@ -330,18 +287,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;
    }
    /**
@@ -498,5 +443,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');
    };
}