import querystring from "querystring"
var Md5 = require("js-md5");
var CryptoJS = require('crypto-js');
const utils = {
    /**
     * 用来遍历传入的浏览器标识，查询其中包含的build/下标
     * @param {*} msg 浏览器标识，手机型号
     * @param {*} str 从msg中寻找的参数
     */
    getModels(msg, str) {
        for (let i in msg) {
            if (msg[i].indexOf(str) > 0) {
                return i;
            }
        }
        return -1;
    },

    /**
     * 手机号格式校验
     * @param {number} tel 手机号
     */
    checkVerification(tel) {
        // 判断手机号格式是否正确
        if (!/^((1[3,5,8,7,9][0-9])|(14[5,7])|(17[0,6,7,8])|(19[7]))\d{8}$/.test(
                tel
            )) {
            return false;
        }
        return true;
    },

    /**
     * cryptoJs base64 加密
     * @param {string} encStr 需要加密的值
     */
    encrypt(encStr) {
        const wordArray = CryptoJS.enc.Utf8.parse(encStr);
        const base64EncStr = CryptoJS.enc.Base64.stringify(wordArray);
        return base64EncStr;
    },

    /**
     * cryptoJs base64 解密
     * @param {string} decStr  需要解密的值
     */
    decrypt(decStr) {
        const parsedWordArray = CryptoJS.enc.Base64.parse(decStr);
        const parsedStr = parsedWordArray.toString(CryptoJS.enc.Utf8);
        return parsedStr;
    },

    /**
     * 判断是否微信内
     */
    isWeChat() {
        const ua = window.navigator.userAgent.toLowerCase();
        if (ua.match(/MicroMessenger/i) == "micromessenger") {
            return true;
        } else {
            return false;
        }
    },

    /**
     * 判断是否pc
     * @returns 是否pc端
     */
    IsPC() {
        if (!navigator.userAgent.match(/AppleWebKit.*Mobile.*/)) {
            // pc
            return true
        }
        return false
    },

    /**
     * 判断是否ios
     * @returns 是否ios端(已排除pc)
     */
    isiOS() {
        var u = navigator.userAgent;
        const isiOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终端
        return isiOS
    },

    /**
     *  获取支付类型
     * @param {string} pay_platform  支付平台
     */
    payType(pay_platform) {
        const payType = {}
        switch (pay_platform) {
            case "ALIPAY":
                payType.h5 = "ALIPAY-H5"
                break;
            case "WECHATPAY":
                const isWeChat = this.isWeChat()
                payType.h5 = isWeChat ? "WECHAT-JSAPI" : "WECHAT-H5"
                break;
            case "HB":
                payType.h5 = "HB"
                break;
        }
        return payType
    },

    /**
     * md5 加密
     * @param {string} str  需要加密的字符串
     */
    md5(str) {
        return Md5(str)
    },

    /**
     * 查找query  不传即为查找window.location中的参数
     * @param {*} name 需要查找的字符串的key
     * @param {*} search 查找search中的name
     */
    getQueryString(name, search) {
        const str =
            search ||
            window.location.search.substr(1) ||
            window.location.hash.split("?")[1];
        let result = querystring.parse(str)[name];
        // 当有重复参数时querystring.parse返回的是数组
        if (result instanceof Array) {
            result = result[0];
        }
        return result || null;
    },




};
export default utils;