經常使用的幾個方法封裝

經常使用的方法封裝

$('document').ready(function () {
    $.extend({
        /*Function sendAjax
         * @param: obj Object
         * obj.url 地址必填 
         * obj.modelData 數據選填 
         */
        sendAjax: function (obj) {
            // 檢測用戶是否輸入
            if(!obj.url){
                console.error('請填寫url地址');
                return false;
            }
            // 請求參數格式化,均以json格式進行傳參
            var data = JSON.stringify(obj.modelData) || {};
            $.ajax({
                url:obj.url,
                data:data,
                contentType:'application/json',
                dataType:'json',
                async:ture,
            }).done(function(res){
                switch(res.code){
                    // 請求成功
                    case 1:
                        obj.success && obj.success(res);
                        break;
                    case 911:{
                        // 無權限
                        var redirectUrl = window.location.href;
                        window.location.href = res.url+'?redirect'+encodeURIComponent(redirectUrl);
                        break;
                    }
                    default:
                        if(obj.fail()){
                            obj.fail(res);
                        }else
                            alert('接口錯誤');
                    
                }
            })

        },
        /*
         * @Function timeChange  
         * @param: 
         * source: String 須要轉換的時間
         * inFormat: String 傳入的時間格式
         * outFormat: Strign 輸出的時間格式
         */
        timeChange:function(source,inFormat,outFormat){
            //個位補零
            var checkTime = function(){
                if(time <10){
                    return "0"+time;
                }
            };
            // 根據輸入的時間格式來進行轉換,\2指的是第二個捕獲組
            switch (inFormat){
                case 'Y-m-d H:i:s':
                    var reg = /^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2}) (\d{1,2}):(\d{1,2}):(\d{1,2})$/;
                    source = source.match(reg);
                    source = new Date(source[1],source[3]-1,source[4],source[5],source[6],source[7]);
                    break;
                case 'Y-m-d' :
                    var reg = /^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/;
                    source = source.match(reg);
                    source = new Date(source[1],source[3]-1,source[4])
                    break;
                case 'timestamp':
                    // 一般時間戳按秒記錄,JavaScript是按毫秒計算
                    source = new Date(parseInt(source)*1000);
                    break;
                    // 毫秒的時間戳
                case 'millisecond':
                    source = new Date(parseInt(source));
                    break;
            }
            // 輸出時間
            switch(outFormat){
                case 'Y-m-d H:i:s':
                    return source.getFullYear()
                    +'-'
                    +checkTime(source.getMonth()+1)
                    +'-'
                    +checkTime(source.getDate())
                    +' '
                    +checkTime(source.getHours())
                    +':'
                    +checkTime(source.getMinutes())
                    +':'
                    +checkTime(source.getSecond());
                    break;
                case 'Y-m-d':
                    return source.getFullYear()
                    +'-'
                    +checkTime(source.getMonth()+1)
                    +'-'
                    +checkTime(source.getDate());
                    break;
                case 'Y-m-d H:i':
                    return source.getFullYear()
                    +'-'
                    +checkTime(source.getMonth()+1)
                    +'-'
                    +checkTime(source.getDate())
                    +' '
                    +checkTime(source.getHours())
                    +':'
                    +checkTime(source.getMinutes());
                    break;
                case 'Y.m.d':
                    return source.getFullYear()
                    +'.'
                    +checkTime(source.getMonth()+1)
                    +'.'
                    +checkTime(source.getDate());
                    break;
            }
        },
        // 比較數組全等
        /*Function compareJson
         * @param: 
         * json1 Object 傳入的對象 
         * json2 Object 
         */
        compareJson:function(json1,json2){
            for(let atr in json1){
                // 檢測鍵是否一致
                if(json2[atr] === undefined)
                return false;
                // 檢測值是否一致
                if(json1[atr] !== json2[atr])
                return false;
            }
        },
        // 數字轉換
        /*Function numFormat
         * @param: 
         * number Number  傳入的數字
         * fixedNum Number  保留的小數點位數
         */
        numFormate:function(number,fixedNum){
            // 判斷是否爲數字
            if(typeof number !== Number){
                console.log('請檢查輸入的是否爲數字');
                return false;
            }
            if(number<10000)
            return number;
            var level = null;
            if(number/10000 >1 ) 
            level = '萬';
            if(number/10000000 > 1)
            level = '億';
            // 默認保留兩位
            if(!fixedNum)
            fixedNum = 2;
            switch(level){
                case '萬':
                    return (number/10000).toFixed(fixedNum)+'萬';
                    break;
                case '億':
                    return (num/100000000).toFixed(fixedNum)+'億';
            }
        },
        
    })
})
相關文章
相關標籤/搜索