`

封装数据_方法

阅读更多
var simple_confNetwork={
    init:function(){
        this.loadform.initsel();
        this.loadTemp.initTemp();
        this.bindEvents.initEvent();
        this.initValidate();
    },
    ajaxData:function(datas){
        var url=datas["url"]||"";
        var data=datas["data"]||null;
        var callback=datas["callback"]||function(){};
        $.ajax({
            'url': $.baseUrl+url,
            "type":"post",
            "contentType":typeof (data)=="string"?"application/x-www-form-urlencoded":"application/json",
            "data":typeof (data)=="string"?data:JSON.stringify(data),
            "success":callback
        });
    },
    initValidate:function(){
        $("#srForm").validate({
            rules:{
                srIp:{
                    ip:true
                },
                srMask:{
                    required:true,
                    netMaskBits:true
                },
                optionTemplateId:"required"
            }
        });
    },
    //加载select子项
    loadselect:function(container,datas,cols){
        datas["callback"]=function(data){
            console.log(data);
            if($.isEmptyObject(data)){
                var $option=$('<option value="">暂无更多选项</option>');
                $option.appendTo($("#"+container));
            }else{
                $.each(data,function(i,obj){
                    var $option=$('<option value="'+obj[cols.id]+'"></option>');
                    $option.html(obj[cols.name]);
                    $option.appendTo($("#"+container));
                })
            }
        }
        simple_confNetwork.ajaxData(datas);
    },
    //加载select
    loadform:{
        allSr:{},
        //初始化select
        initsel: function () {
            this.getDhcp();
            this.getBusiness();
            this.getSR();
            this.getTemplate();
        },
        //加载dhcp
        getDhcp:function(){
            simple_confNetwork.loadselect("DHCP",{
                url:"/simpleConf/getServers",
                data:null
            },{
                id:"serverId",
                name:"serverName"
            });
        },
        //加载SR
        getSR:function(){
            var datas = {};
            datas["url"] = "/brasConfManager/findAllbrasConf";
            datas["callback"] = function (data) {
                simple_confNetwork.loadform.allSr=data;
                $("#sr").typeahead({
                    source: data,
                    displayText: function (item) {
                        return typeof item !== 'undefined' && typeof item['srname'] != 'undefined' && item['srname'] || item;
                    },
                    afterSelect: function (item) {
                        $("#sr").val(item.srinterfaceip)
                    }
                });
            }
            simple_confNetwork.ajaxData(datas);
            $.base.myTypeahead2({
                url:"/brasConfManager/findAllbrasConf",
                selector:"#sr",
                showName:"srname",
                resultName:"srinterfaceip"
            });
        },
        //加载业务
        getBusiness:function(){
            simple_confNetwork.loadselect("business",{
                url:"/simpleConf/getServices",
                data:null
            },{
                id:"serviceId",
                name:"serviceName"
            });
        },
        //加载模板名称
        getTemplate:function(){
            simple_confNetwork.loadselect("temp",{
                url:"/option_templateManager/searchTemplateName",
                data:null
            },{
                id:"templateId",
                name:"optionTemplateName"
            });
        },
    },
    //加载模板options
    loadTemp:{
        allOptions:{},
        tempOptions:["optionName","defaultValue"],
        initTemp:function(){
            this.getAllOptions();
            this.getOptionsByTempId();
        },
        getAllOptions:function(){
            var self=this;
            var datas={
                url:"/optionDictionaryManager/searchOptionName",
                data:null,
                callback:function(data){
                    self.allOptions=data;
                }
            }
            simple_confNetwork.ajaxData(datas);
        },
        getOptionsByTempId:function(){
            var datas={
                url:"/simpleConf/getOptions",
                data:"templateId="+$("#temp").val(),
                callback:function(data){
                    if($.isEmptyObject(data)){
                        $("#optionTable").attr("data-isEmpty","false");//模板是否为空
                        var $tr=$("<tr><td class='text-center'>——此模板暂无选项——</td></tr>");
                        $tr.appendTo($("#optionTable"));
                    }else{
                        $("#optionTable").attr("data-isEmpty","true");
                        $("#optionTable").empty();
                        simple_confNetwork.loadTemp.createTr($("#optionTable"),data);
                    }
                }
            }
            simple_confNetwork.ajaxData(datas);
        },
        createTr:function(container,options){
            var self=this;
            $.each(options,function(i,obj){
                var $tr=$("<tr class='info' id='"+obj.optionId+"'></tr>")
                $.each(self.tempOptions,function(k,v){
                    var temp=obj[v]==null?"":obj[v];
                    var $td=$('<td data-col="'+v+'" >'+temp+'</td>');
                    if(!($td.attr("data-col")=="optionName")){
                        $td.empty();
                            if(obj.optionId=="3"){
                            temp=$("#sr").val();
                        }
                        if(obj.optionId=="1"){
                            temp=$("#srMask").val();
                        }
                        var $input=$("<input type='text' class='form-control' value='"+temp+"' netMaskBits />");
                        $input.appendTo($td);
                    }else{
                        $td.empty();
                        var $select=$("<select class='form-control' style='border:none' disabled>" +
                            "<option>"+temp+"</option>" +
                            "</select>");
                        $select.appendTo($td);
                    }
                    $td.appendTo($tr);
                })
                $tr.appendTo(container);
            })
        },
    },
    //绑定事件
    bindEvents:{
        tempOptions:{},
        //加载事件
        initEvent:function(){
            this.temp_change();
            this.temp_addOptions();
            this.sub();
            this.preview();
            this.sr_change();
            this.preview_sub();

        },
        //模板绑定事件
        temp_change:function(){
            $("#temp").change(function(){
                simple_confNetwork.bindEvents.tempOptions={};//清空
                $("#addTempOption").removeAttr("disabled");
                $("#optionTable").empty();
                simple_confNetwork.loadTemp.getOptionsByTempId();
            });
        },
        //sr=>业务
        sr_change:function(){
          $("#sr").change(function(){

              var srs=simple_confNetwork.loadform.allSr;
              var self=this;
              $("#business").removeAttr("disabled");
              $.each(srs,function(i,obj){
                  if(obj.srname==$(self).val()){
                    $("#business").val(obj.serviceid).prop("disabled",true);
                  }
              })
          });
        },
        //模板添加事件
        temp_addOptions:function(){
            $("#addTempOption").click(function(){
                var cols=simple_confNetwork.loadTemp.tempOptions;
                var data=simple_confNetwork.loadTemp.allOptions;
                if($("#optionTable").attr("data-isEmpty")=="false"){
                    $("#optionTable").empty();
                    $("#optionTable").attr("data-isEmpty","true");
                }
                //每次增加select:option不能与之前重复
                //筛选不重复
                var options={};
                $.each(data,function(k,v){
                    var temp=true;
                    $("#optionTable tr").each(function(i,obj){
                        if(k==$(obj).find("select option:selected").text()){
                            temp=false;
                            return false;
                        }
                    })
                    if(temp){
                        options[k]=v;
                    }
                })
                console.log(options);
                if($.isEmptyObject(options)){
                    $("#addTempOption").prop("disabled",true);
                    alert("无更多Option选项,请配置!");
                }else{
                    $tr=$("<tr></tr>");
                    $.each(cols,function(k,v){
                        $td=$('<td data-col="'+v+'"></td>');
                        if(k==0){
                            var $select=$("<select class='form-control'></select>");
                            $.each(options,function(i,obj){
                                var $option=$('<option value="'+obj.optionId+'"></option>');
                                $option.html(obj.optionName);
                                $option.appendTo($select);
                            })
                            $select.change(function(){
                                var $tr=$(this).parent().parent();
                                var index=$("#optionTable tr").index($(this).parent().parent());

                                var optionId=simple_confNetwork.bindEvents.tempOptions[index];
                                var $option=$("<option value='"+optionId+"'>"+$(this).find("option[value='"+optionId+"']").text()+"</option>");
                                $tr.prop("id",$(this).val());
                                $(this).parents("tr").siblings("tr").find("select option").remove("[value='"+$(this).val()+"']");
                                $(this).parents("tr").siblings("tr").find("select").append($option);
                                simple_confNetwork.bindEvents.tempOptions[index]=$(this).val();
                            })
                            $select.appendTo($td);
                        }else{
                            var $input=$("<input type='text' class='form-control' netMaskBits />");
                            $input.appendTo($td);
                        }
                        $td.appendTo($tr);
                    })

                    $tr.appendTo($("#optionTable"));
                    $tr.find("input").focus();
                    $tr.prop("id",$tr.find("select").val());
                    $tr.siblings("tr").find("select option").remove("[value='"+$tr.find("select").val()+"']");
                    simple_confNetwork.bindEvents.tempOptions[$("#optionTable tr").index($tr)]=$tr.prop("id");
                }

            });
        },
        //按钮
        //提交
        sub:function(){
            $("#simple_btnOk").click(function(){
               if($("#srForm").valid()){
                   $("#simple_btnOk").attr("disabled","true");
                   $("#simple_btnOk span[aria-hidden]").removeClass().addClass('icon-spinner icon-spin').attr("disabled","true");
                   var url="/simpleConf/saveSubnet";
                   simple_confNetwork.bindEvents.envelopedData(url,function(data){
                       alert(data);
                       $("#simple_btnOk").removeAttr("disabled");
                       $("#simple_btnOk span[aria-hidden]").removeClass().addClass('fa fa-search');
                   });
               }
            });
        },
        //预览
        preview:function(){
            $("#preview").click(function(){
                var url="/simpleConf/showSubnet";
                simple_confNetwork.bindEvents.envelopedData(url,function(data){
                    $("#previewList").modal("show");
                    $.base.pageConf.modal_size("previewList");
                    $("#previewContent").html(data);
                });
            });
        },
        //预览=》提交
        preview_sub:function(){
            $("#preview_btnOk").click(function(){
                $("#previewList").modal("hide");
                $("#simple_btnOk").trigger('click');
            });
        },
        //封装方法
        envelopedData:function(url,subnet){
            var models=[];
            $("#optionTable").attr("data-isEmpty")=="true"&&$($("#optionTable tr")).each(function(i,obj){
                var row={};
                $($(obj).children()).each(function(k,v){
                    var key=$(v).attr("data-col");
                    key=key=="defaultValue"?"optionValue":key;
                    var content=$(v).html();
                    if($(v).children().size()>0){
                        content=$(v).children().val();
                    }
                    row[key]= content;
                });
                row["optionId"]=$(obj).prop("id");
                models.push(row);
            });
            //封装
            var data={};
            data["serverId"]=$("#DHCP").val();
            data["srIp"]=$("#sr").val();
            data["optionTemplateId"]=$("#temp").val();
            data["srMask"]=$("#srMask").val();
            data["serviceId"]=$("#business").val();
            data["models"]=models;
            var datas={
                url:url,
                data:data,
                callback:subnet
            }
            simple_confNetwork.ajaxData(datas);
        }
    },
};
simple_confNetwork.init();
分享到:
评论

相关推荐

    ADO.zip_ado 封装类_ado封装类_数据库封装类

    3. **事务处理**:如果需要进行一组相关的数据库操作,封装类可以提供开始、提交、回滚事务的方法,确保数据的一致性。 4. **参数化查询**:为了防止SQL注入攻击,封装类会支持参数化查询,如`...

    USB封装和FPC连接器封装_USBPCB封装库_fpc封装_FPC连接器pcb库_FPC封装_usb封装_源码.zip

    USB(Universal Serial Bus)是一种广泛应用于电子设备中的接口标准,用于连接硬件设备并进行数据传输。USB封装在PCB设计中扮演着至关重要的角色,它确保了设备与主板之间的电气性能和机械稳定性。FPC(Flexible ...

    PCB.rar_PCB封装_pcb_pcb 封装_封装 PCB_电子工程师

    这类文件通常包含了用户创建或导入的各种封装信息,以及设计项目的相关数据。例如,Altium Designer和PADS等PCB设计软件就使用类似的数据库文件来存储设计元素。打开这个.DDB文件需要对应的PCB设计软件,工程师可以...

    Altium Designer PCB封装库【很全】.zip_AOn的pcb封装_PCB封装_ad17封装库_altium pc

    设计师可以根据元件数据手册选择正确的封装,以确保最终PCB布局的正确性。 "ad17封装库"指的是Altium Designer 17版本的封装库。随着软件版本的升级,封装库也会得到更新和扩展,以支持更多新元件和改进的封装设计...

    pcb.zip_PCB封装_SOT 封装_SOT 封装库_USB mini_mini usb PCB

    这个压缩包中的mini usb PCB部分,可能包含了mini USB插座的PCB封装,确保与数据线的正确连接,并且兼容USB标准。 在进行PCB设计时,拥有准确的封装库至关重要,它能够减少设计错误,提高设计效率,确保最终产品...

    PublicMethod_NPOI封装_npoi_c#arcengine_基于NPOI封装C#_

    描述中的"个人常用封装好的函数"意味着作者已经编写了一系列方便使用的C#方法,这些方法对NPOI的功能进行了抽象和简化,以便在日常开发中快速、高效地处理Excel数据。这可能包括读取、写入、修改、格式化单元格、...

    接口与插座.zip_PCB封装库_altium_altium 封装插座_altium中的插座_t型插头封装

    这些插座通常用于连接外部设备,如电源、数据线或其他电路板。插座的封装设计需要考虑接触点的数量、排列方式、尺寸以及机械强度等因素。在Altium Designer中,用户可以使用预定义的插座封装,也可以自定义设计以...

    ado_class.rar_ ADO_class_ACCESS 封装类_ADO数据库_ado封装类_数据库封装类

    在本例中,“ADO_class_ACCESS”就是一个封装类,它将ADO库的各种操作进行了抽象和简化,使得开发者无需直接与ADO的复杂API打交道,只需调用封装类的方法就能完成数据库的读写操作。这样既能提高代码的可读性和可...

    OCI封装.rar_OCI oracle_OCI封装类_oci_oci 封装_oracle

    在面向对象编程中,封装是核心原则之一,它将数据和操作这些数据的方法捆绑在一起,形成一个独立的对象。在Oracle OCI封装类中,开发者通常会定义一系列的类,这些类内部实现了对OCI函数的调用,对外提供更友好的...

    数据库封装类CPingDatabase.rar_C++封装数据库_数据库封装类_类库

    3. **结果集处理**:对于查询操作,封装类通常会提供获取结果集的方法,可以返回一个迭代器或者自定义的数据结构,方便用户遍历和处理查询结果。 4. **事务处理**:支持事务的开始、提交、回滚,以保证数据的一致性...

    使用VUE自定义组件封装数据字典实战

    本文主要探讨的是如何使用Vue自定义组件来封装数据字典,以下拉列表为例。 首先,使用Element UI的`el-select`组件可以直接创建下拉列表,但这种方式在处理多个字典数据时会变得复杂。因为每个字典都需要单独请求...

    ARP.zip_ARP封装发送_arp封装_发送ARP

    3. **封装到以太网帧**:ARP报文是数据链路层的数据,因此需要被封装在一个以太网帧中。以太网帧有自己的头部,包含源和目标MAC地址,以及类型/长度字段,这里设置为ARP协议的值(0x0806)。 4. **发送数据**:完成...

    C#系统封装并调用_函数_系统封装_

    通过封装,我们可以将数据和操作这些数据的方法绑定在一起,形成一个独立的单元,即类。类的内部细节对用户是隐藏的,外部只能通过公共接口(公有方法)与之交互。这样做可以保护数据的安全,防止不正确的访问和修改...

    电子管_AD封装库_

    此外,对于特定项目中使用的电子管,如果库中没有现成的封装,设计师可能需要根据电子管的数据手册自行创建。 总的来说,这个“电子管_AD封装库_”压缩包为AD用户提供了一个便捷的工具,帮助他们在设计涉及电子管的...

    SMT.rar_CMD封装_CMD封装尺寸_SMT封装尺寸_site:www.pudn.com_smt

    "常用器件封装尺寸.pdf"这个文件很可能是压缩包中的核心内容,包含了各种常见CMD封装元件的具体尺寸数据。这份PDF文档可能包含表格、图表和文字说明,详细列出了不同种类和型号的CMD封装元件的详细尺寸,比如电阻的...

    Micro USB.zip_AD mirco USB 封装库_MICRO USB 封装_MICRO USB封装_micro us

    Micro USB是一种广泛应用于移动设备和小型电子产品的接口标准,它以其小巧的尺寸和较高的数据传输速度而备受青睐。本资源包含AD(Allegro Design)软件的Micro USB封装库,适用于电路设计者在进行硬件设计时参考和...

    OTL封装类_2009_1_7

    在具体使用时,需要包含相关的头文件,实例化封装类对象,然后调用提供的方法进行数据库操作。不过,由于没有提供具体的使用示例或文档,开发者可能需要通过阅读源代码来理解和学习如何使用这个封装类。

    Mylibrary_usb常用封装_原理图_usb封装图_

    USB(Universal Serial Bus)是一种通用串行总线标准,用于在计算机系统和其他电子设备之间进行数据传输。在电子设计领域,USB接口的原理图和封装是至关重要的部分,因为它们确保了设备之间的通信效率和兼容性。下面...

Global site tag (gtag.js) - Google Analytics