封装的一些JS方法的工具类

star2017 1年前 ⋅ 793 阅读

一份不错的可通用的js,封装了一些自定义的 js方法。

Date.prototype.Format = function (fmt) { // author: meizz
    var o = {
        "M+": this.getMonth() + 1, // 月份
        "d+": this.getDate(), // 日
        "h+": this.getHours(), // 小时
        "m+": this.getMinutes(), // 分
        "s+": this.getSeconds(), // 秒
        "q+": Math.floor((this.getMonth() + 3) / 3), // 季度
        "S": this.getMilliseconds() // 毫秒
    };
    if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
    for (var k in o)
    if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
    return fmt;
}

var Common = {
    init:{
        choose:function(object){
            $.ajax({
                url:object.url,
                data:(object.data),
                type:'get',
                success:function(res){
                    if(object.success&&  typeof(object.success) == 'function' ){
                       object.success(res);
                    }else{
                        var _options = '<option value="">-- 请选择 --</option>';
                        for ( var index in res) {
                            _options += '<option value="' + res[index][object.key] + '" >'
                                    + res[index][object.value] + '</option>';
                        }
                        $(object.target).html(_options);
                    }
                },
                error:function(e){
                    if(object.error&&  typeof(object.error) == 'function' ){
                           object.error(e);
                    }
                }
            })
        }
    },
    ajaxConnection:{
        uploader:function(object) {
            $.ajax({
                url:object.url,
                type:"post",
                data:new FormData($(object.form)[0]),
                async:false,
                cache:false,
                processData:false,
                contentType:false,
                success:function(res){
                   if(object.success&&  typeof(object.success) == 'function' ){
                       object.success(res);
                   }
                },
                error:function(e){
                    if(object.err && typeof(object.error) == 'function'){
                        object.error(e)
                    }
                }
            });    
        },
        post:function(object){
            $.ajax({
                url:object.url,
                type:'post',
                data:object.data,
                async:true,
                success:function(data){
                    if(object.success && typeof(object.success) == 'function' ){
                        object.success(data);
                    }
                }
            })
        },
        syncPost:function(object){
            $.ajax({
                url:object.url,
                type:'post',
                data:object.data,
                async:false,
                success:function(data){
                    if(object.success && typeof(object.success) == 'function' ){
                        object.success(data);
                    }
                }
            })
        },
        get:function(object){
            $.ajax({
                url:object.url,
                type:'get',
                data:object.data,
                async:true,
                success:function(data){
                    if(object.success && typeof(object.success) == 'function' ){
                        object.success(data);
                    }
                },
                error:function(e){
                    if(object.err && typeof(object.error) == 'function'){
                        object.error(e)
                    }
                }
            })
        }
    },
    ztree:{
        simple:function(object){
            var setting = {
                    view: {
                        addHoverDom: false,
                        removeHoverDom: false,
                        selectedMulti: false
                    },
                    check: {
                        enable: object.isCheck
                    },
                    data: {
                        simpleData: {
                            enable: true,
                            idKey:object.idKey,
                            pIdKey:object.pIdKey,
                            rootPId:0
                        },
                        key:{
                            name:object.name
                        }
                    },
                    edit: {
                        enable: object.isEdit
                    }
                };

            $.fn.zTree.init($(object.target), setting, object.zNodes);
            if(object.isExpand){
                 $.fn.zTree.getZTreeObj(object.target.slice(1)).expandAll(object.isExpand);
            }
        },
        changeTreeChk:function(object){
            $.ajax({
                url:object.url,
                type:'post',
                data:object.data,
                success:function(res){
                    var treeObj = $.fn.zTree.getZTreeObj(object.target);
                    treeObj.checkAllNodes(false);
                    for(var index in res){
                        var $node =treeObj.getNodesByFilter(function(node){if(node.menuId == res[index] && !node.isParent ) return true}, true)
                        if($node){
                            treeObj.checkNode($node, true, true);
                        }
                    }
                }
            })
        },
        getCheckedNodes:function(object){
            var treeObj = $.fn.zTree.getZTreeObj(object.target);
            var nodes = treeObj.getCheckedNodes(object.isChecked);
            var menuIds = new Array();
            for(var index in nodes){
                if(nodes[index].menuId != 0){
                    menuIds.push(nodes[index].menuId);
                }
            }
            return menuIds;
        }
    },
    formDate:{
        toJson:function(object){
            if(!object.data){
                object.data = {}
            }
            var formData = $(object.target).serializeArray()
            for(var item in formData){
                if(formData[item].value){
                    object.data[formData[item].name] = formData[item].value
                }
            }
            return object.data;
        },
        jsonToForm:function(object){
            var data = object.data;
            for(var item in data){
                if(data[item]){
                    $($(object.target).find('input[name='+item+']')).val(data[item]);
                }
            }
        }
    },
    validate:function(object){
        var settings={
                event:'blur',
                reg:{
                    email:/^(\w-*\.*)+@(\w-?)+(\.\w{2,})+$/,
                    phone:/^1\d{10}$/,
                },
                check:{
                    remote:function(){
                        return true;
                    }
                },
                messages:{
                    email:'邮箱格式不正确',
                    phone:'手机号码格式不正确',
                    required:'必填'
                },
                error:{
                    clas:'has-error'
                }
        }

        $.extend(settings, object);
        //email
        $('.com-val-email').on(settings.event,function(){
            opration(this,settings,settings.reg.email,settings.messages.email)
        })
        //phone
        $('.com-val-phone').on(settings.event,function(){
            opration(this,settings,settings.reg.phone,settings.messages.phone)
        })
        //required
        $('.com-val-required').on(settings.event,function(){
            var _this=this;
            var _div = $(_this).parent();
            if($(_this).val()){
                $(_div).removeClass(settings.error.clas)
                $(_div).find('span').remove() 
            }else{
                $(_div).removeClass(settings.error.clas)
                $(_div).find('span').remove() 
                $(_div).append('<span class="help-block m-b-none"><i class="fa fa-times-circle"></>'+settings.messages.required+'</span>')
                $(_div).addClass(settings.error.clas)
            }
        })

        function opration(_this,settings,reg,message){
            var _div = $(_this).parent();
            if(!$(_this).val()||reg.test($(_this).val())){
                $(_div).removeClass(settings.error.clas)
                $(_div).find('span').remove() 
            }else{
                if($(_div).find('span').length < 1){
                    $(_div).append('<span class="help-block m-b-none"><i class="fa fa-times-circle"></>'+message+'</span>')
                    $(_div).addClass(settings.error.clas)
                }
            }
        }
    }
}

var newCount = 1;
function addHoverDom(treeId, treeNode) {
    var sObj = $("#" + treeNode.tId + "_span");
    if (treeNode.editNameFlag || $("#addBtn_"+treeNode.tId).length>0) return;
    var addStr = "<span class='button add' id='addBtn_" + treeNode.tId
        + "' title='add node' onfocus='this.blur();'></span>";
    sObj.after(addStr);
    var btn = $("#addBtn_"+treeNode.tId);
    if (btn) btn.bind("click", function(){
        var zTree = $.fn.zTree.getZTreeObj("treeDemo");
        zTree.addNodes(treeNode, {menuid:(100 + newCount), prentId:treeNode.id, name:"new node" + (newCount++)});
        return false;
    });
};
function removeHoverDom(treeId, treeNode) {
    $("#addBtn_"+treeNode.tId).unbind().remove();
};
更多内容请访问:IT源点

相关文章推荐

全部评论: 0

    我有话说: