javascript 常用方法日常总结02

// 汉字转拼音
$pub.ConvertPinyin = function (l1) {
       var l2 = l1.length;
       var I1 = "" ;
       var reg = new RegExp('[a-zA-Z0-9\- ]' );
       for ( var i = 0; i < l2; i++) {
               var val = l1.substr(i, 1);
               var name = "" ;
               if (i==0) {
                  name = $pub.arraySearch(val, PinYin);
               } else {
                  name = $pub.ucfirst($pub.arraySearch(val, PinYin));
               }
               if (reg.test(val)) {
                       I1 += val;
               } else if (name !== false) {
                       I1 += name;
               }

       }
       I1 = I1.replace(/ /g, '');
       return I1;
}
// 在对象中搜索
$pub.arraySearch =   function (l1, l2) {
          var i = 1 ;
       for ( var name in PinYin) {
               if (PinYin[name].indexOf(l1) != -1) {
                   return name; break ;
               }
       }
       return false ;
}
// 首字母大写
$pub.ucfirst =   function (l1) {
       if (l1.length > 0) {
               var first = l1.substr(0, 1).toUpperCase();
               var spare = l1.substr(1, l1.length);
             return first + spare;
       }
}
//根据汉子获取首字母
$pub.ConvertSimplePinyin = function (l1) {
       var l2 = l1.length;
       var I1 = "" ;
       var reg = new RegExp('[a-zA-Z0-9\- ]' );
       for ( var i = 0; i < l2; i++) {
               var val = l1.substr(i, 1);
               var name = "" ;
               name = $pub.getFirst($pub.arraySearch(val, PinYin));
               if (reg.test(val)) {
                       I1 += val;
               } else if (name !== false) {
                       I1 += name;
               }

       }
       I1 = I1.replace(/ /g, '');
       return I1;
}

//获取首字母
$pub.getFirst =   function (l1) {
       if (l1.length > 0) {
               var first = l1.substr(0, 1).toLowerCase();
             return first;
       }
}

//字符串转大写
$pub.toUpperCase =   function (l1) {
       return l1.toUpperCase() ;
}

//字符串转小写
$pub.toLowerCase =   function (l1) {
       return l1.toLowerCase() ;
}

/**
  * 根据以下条件 生成easyui格式的表单元素
  * type 类型 id 是元素Id name 元素name value 元素值 opts 可选项
  */
$pub.getHtmlByProperty = function getHtmlByProperty(type,id,name,value,opts) {
          var str = "" ;
          if(type == '1') {
                     //字符串文本
                    str = '<input class="easyui-textbox" type="text" name="' + name + '" id="' + id + '" value = "' + value + '"></input>' ;
                    
          }else if (type == '2' ) {
                     //整型文本
                    str = '<input class="easyui-numberbox" type="text" name="' + name + '" id="' + id + '" value = "'+ value +'"data-options = "precision:0" ></input>' ;
          }else if (type == '3' ) {
                     //浮点型文本
                    str = '<input class="easyui-textbox" type="text" data-options = "precision:3" name="' + name + '" id="' + id + '" value = "' + value +'" ></input>' ;
          }else if (type == '4' ) {
                     //文本区
                    str = '<input class="easyui-textbox" style = "height:100px;" data-options="multiline:true" name="' + name + '" id="' + id + '" value = "' + value +'" ></input>' ;
          }else if (type == '5' ) {
                     //日期
                    str = '<input class="easyui-datetimebox" name="' + name + '" data-options = "editable:false" id="' + id + '" value = "' + value +'" ></input>' ;
          }else if (type == '6' ) {
                     //下拉列表
                     var data = "" ;
                     for (var i = 0 ; i < opts.length; i++) {
                            data = data + "{'value':'" + opts[i] + "','text':'" + opts[i] + "'}," ;
                    }
                    data = data.substring(0, data.length-1);
                    str = '<input class="easyui-combobox" data-options="valueField:\'value\',textField:\'text\',editable:false,data:['+data+ ']" id = "' + id + '" name = "' + name +'" value = "' + value +'"></input>' ;
          }else if (type == '7' ) {
                     //复选框
                     var data = "" ;
                     for (var i = 0 ; i < opts.length; i++) {
                             if (opts[i] == value) {
                                      str = str + '<input type="checkbox" name="'+ name +'" id = "' + id + '" value="'+opts[i]+'"checked = "checked" />' + opts[i] + ' ';
                            } else {
                                      str = str + '<input type="checkbox" name="'+ name +'" id = "' + id + '" value="'+opts[i]+'"/>' + opts[i] + ' ';
                            }
                    }
          }else if (type == '8' ) {
                     //单选框
                     var data = "" ;
                     for (var i = 0 ; i < opts.length; i++) {
                             if (opts[i] == value) {
                                      str = str + '<input type="radio" name="' + name + '" id = "' + id + '" value="' +opts[i]+'" checked = "checked" />' + opts[i] + ' ';
                            } else {
                                      str = str + '<input type="radio" name="' + name + '" id = "' + id + '" value="'+opts[i]+'"/>' + opts[i] + ' ';
                            }
                    }
          }
          return str ;
}

/**
  * 将普通的元素表现为easyUI格式
  * type 类型 id 是元素Id
  */
$pub.setHtmlByProperty = function setHtmlByProperty(id,type) {
          if(type == '1') {
                     //字符串文本
                    $( '#'+id).textbox({});
          }else if (type == '2' ) {
                     //整型文本
                    $( '#'+id).numberbox({});
          }else if (type == '3' ) {
                     //浮点型文本
                    $( '#'+id).numberbox({});
          }else if (type == '4' ) {
                     //文本区
                    $( '#'+id).textbox({});
          }else if (type == '5' ) {
                     //日期
                    $( '#'+id).datetimebox({});
          }else if (type == '6' ) {
                     //下拉列表
                    $( '#'+id).combobox({});
          }
}

$pub.getBootStrap3FormDom = function (id,type,label,name,length,defValue,optValue,value,divSize,labelSize,inputSize,isRequired) {
          if(isRequired == true || isRequired == 1) {
                    isRequired = true ;
          } else {
                    isRequired = false ;
          }
//      var requiredHtm = '*' ;
          var s = "" ;
          if($pub.isBlank(value)) {
                     if ($pub.isBlank(defValue)) {
                            value = '' ;
                    } else {
                            value = defValue ;
                    }
          }
          if(type == '1') {
                     //字符串文本
                    s = '<div class = "row col-sm-' + divSize + ' col-xs-' + divSize + '">'
                            + '<div class = "col-sm-12 col-xs-12">'
                                      + '<div class = "form-group" >' ;
                                                           if (isRequired) {
                                                                    s = s + '<label required class= "col-sm-' + labelSize + ' col-xs-' + labelSize + ' control-label">' + label + ':</label>'
                                                                    + '<div class = "col-sm-' + inputSize + ' col-xs-' + inputSize + '" >'
                                                                            + '<input required maxlength = "'+length+'" type = "text" style="border-radius:6px;width: 90%;float:left" class = "form-control" placeholder="' + label + '" id="' + id + '" name = "' + name + '" value = "' + value + '">' ;
                                                          } else {
                                                                    s = s + '<label class= "col-sm-' + labelSize + ' col-xs-' + labelSize + ' control-label">' + label + ':</label>'
                                                                    + '<div class = "col-sm-' + inputSize + ' col-xs-' + inputSize + '" >' ;
                                                                    s = s + '<input maxlength = "'+length+'" type = "text" style="border-radius:6px;width: 90%;float:left" class = "form-control" placeholder="' + label + '" id="' + id + '" name = "' + name + '" value = "' + value + '">' ;
                                                          }
                                                s = s + '</div>'
                                      + '</div>'
                            + '</div>'
                    + '</div>' ;
          } else if (type == '2' ) {
                     //整形
                    s = '<div class = "row col-sm-' + divSize + ' col-xs-' + divSize + '">'
                            + '<div class ="col-sm-12 col-xs-12">'
                                      + '<div class = "form-group" >' ;
                                                           if (isRequired) {
                                                                    s = s + '<label required class= "col-sm-' + labelSize + ' col-xs-' + labelSize + ' control-label">' + label + ':</label>'
                                                                    + '<div class = "col-sm-' + inputSize + ' col-xs-' + inputSize + '" >' ;
                                                                    s = s + '<input required maxlength = "' + length + '" type = "digits" style="border-radius:6px;width: 90%;float:left" οnkeyup="value=value.replace(/[^\d]/g,\'\')" onbeforepaste="clipboardData.setData(\'text\',clipboardData.getData(\'text\').replace(/[^\d]/g,\'\'))" class = "form-control" placeholder="' + label + '" id="' + id + '" name = "' + name + '" value = "' + value + '">' ;
                                                          } else {
                                                                    s = s + '<label class= "col-sm-' + labelSize + ' col-xs-' + labelSize + ' control-label">' + label + ':</label>'
                                                                    + '<div class = "col-sm-' + inputSize + ' col-xs-' + inputSize + '" >' ;
                                                                    s = s + '<input maxlength = "' + length + '" type = "digits" style="border-radius:6px;width: 90%;float:left" οnkeyup="value=value.replace(/[^\d]/g,\'\')" onbeforepaste="clipboardData.setData(\'text\',clipboardData.getData(\'text\').replace(/[^\d]/g,\'\'))" class = "form-control" placeholder="' + label + '" id="' + id + '" name = "' + name + '" value = "' + value + '">' ;
                                                          }
                                                s = s + '</div>'
                                      + '</div>'
                            + '</div>'
                    + '</div>' ;
          } else if (type == '3' ) {
                     //浮点型
                    s = '<div class = "row col-sm-' + divSize + ' col-xs-' + divSize + '">'
                            + '<div class ="col-sm-12 col-xs-12">'
                                      + '<div class = "form-group" >' ;
                                                           if (isRequired) {
                                                                    s = s + '<label required class= "col-sm-' + labelSize + ' col-xs-' + labelSize + ' control-label">' + label + ':</label>'
                                                                    + '<div class = "col-sm-' + inputSize + ' col-xs-' + inputSize + '" >' ;
                                                                    s = s + '<input required maxlength = "'+length+'" type = "number" style="border-radius:6px;width: 90%;float:left" οnkeyup="value=value.replace(/[^\d.]/g,\'\')" onbeforepaste="clipboardData.setData(\'text\',clipboardData.getData(\'text\').replace(/[^\d.]/g,\'\'))" class = "form-control" placeholder="' + label + '" id="' + id + '" name = "' + name + '" value = "' + value + '">' ;
                                                          } else {
                                                                    s = s + '<label class= "col-sm-' + labelSize + ' col-xs-' + labelSize + ' control-label">' + label + ':</label>'
                                                                    + '<div class = "col-sm-' + inputSize + ' col-xs-' + inputSize + '" >' ;
                                                                    s = s + '<input maxlength = "'+length+'" type = "number" style="border-radius:6px;width: 90%;float:left" οnkeyup="value=value.replace(/[^\d.]/g,\'\')" onbeforepaste="clipboardData.setData(\'text\',clipboardData.getData(\'text\').replace(/[^\d.]/g,\'\'))" class = "form-control" placeholder="' + label + '" id="' + id + '" name = "' + name + '" value = "' + value + '">' ;
                                                          }
                                                s = s + '</div>'
                                      + '</div>'
                            + '</div>'
                    + '</div>' ;
          } else if (type == '4' ) {
                     //文本区
                    s = '<div class = "row col-sm-' + divSize + ' col-xs-' + divSize + '">'
                            + '<div class ="col-sm-12 col-xs-12">'
                                      + '<div class = "form-group" >' ;
                                                           if (isRequired) {
                                                                    s = s + '<label required class= "col-sm-' + labelSize + ' col-xs-' + labelSize + ' control-label">' + label + ':</label>'
                                                                    + '<div class = "col-sm-' + inputSize + ' col-xs-' + inputSize + '" >' ;
                                                                    s = s + '<textarea required maxlength = "'+length+'" class="form-control" rows="3" style="border-radius:6px;width:90%;float:left" name = "' + name + '" id = "' + id + '" value = "' + value + '" placeholder="' + label + '" >' + value + '</textarea>' ;
                                                          } else {
                                                                    s = s + '<label class= "col-sm-' + labelSize + ' col-xs-' + labelSize + ' control-label">' + label + ':</label>'
                                                                    + '<div class = "col-sm-' + inputSize + ' col-xs-' + inputSize + '" >' ;
                                                                    s = s + '<textarea maxlength = "'+length+'" class="form-control" rows="3" style="border-radius:6px;width:90%;float:left" name = "' + name + '" id = "' + id + '" value = "' + value + '" placeholder="' + label + '" >' + value + '</textarea>' ;
                                                          }
                                                + '</div>'
                                      + '</div>'
                            + '</div>'
                    + '</div>' ;
          } else if (type == '5' ) {
                     //日期
                    s = '<div class = "row col-sm-' + divSize + ' col-xs-' + divSize + '">'
                            + '<div class ="col-sm-12 col-xs-12">'
                                      + '<div class = "form-group" >' ;
                                                           if (isRequired) {
                                                                    s = s + '<label required class= "col-sm-' + labelSize + ' col-xs-' + labelSize + ' control-label">' + label + ':</label>'
                                                                    + '<div class = "col-sm-' + inputSize + ' col-xs-' + inputSize + '" >' ;
                                                                    s = s + ' + inputSize + + id + + name + '" style="border-radius:6px;width:90%; float:left" value = "' +value+ '" readonly >' ;
                                                          }
                                                s = s + '</div>'
                                      + '</div>'
                            + '</div>'
                    + '</div>' ;
          } else if (type == '6' ) {
                     //下拉框
                     var optStr = "" ;
                    opts = optValue.split( ',') ;
                     for (var i = 0 ; i < opts.length; i++) {
                             if (!$pub.isBlank(opts[i])) {
                                      optStr = optStr + '<option value = "' + opts[i] + '">' + opts[i] + '</option>' ;
                            }
                    }
                    s = '<div class = "row col-sm-' + divSize + ' col-xs-' + divSize + '">'
                            + '<div class ="col-sm-12 col-xs-12">'
                                      + '<div class = "form-group" >'
                                                + '<label class= "col-sm-' + labelSize + ' col-xs-' + labelSize + ' control-label">' + label + ':</label>'
                                                + '<div class = "col-sm-' + inputSize + ' col-xs-' + inputSize + '" >'
                                                          + '<select class="form-control" style = "border-radius:6px; width:270px;" name="' + name + '" id = "' + id + '">'
                                                          + optStr
                                                          + '</select>'
                                                + '</div>'
                                      + '</div>'
                            + '</div>'
                    + '</div>' ;
          } else if (type == '7' ) {
                     //复选框
                     var optStr = "" ;
                    opts = optValue.split( ',') ;
                     for (var i = 0 ; i < opts.length; i++) {
                             if (!$pub.isBlank(opts[i])) {
                                       if (opts[i] == value) {
                                                optStr = optStr + '<input type="checkbox" name="' + name + '" id = "' + id + '" value="' + opts[i] + '"checked = "checked" />' + opts[i] + ' ' ;
                                      } else {
                                                optStr = optStr + '<input type="checkbox" name="' + name + '" id = "' + id + '" value="' + opts[i] + '"/>' + opts[i] + ' ';
                                      }
                            }
                    }
                    s = '<div class = "row col-sm-' + divSize + ' col-xs-' + divSize + '">'
                            + '<div class ="col-sm-12 col-xs-12">'
                                      + '<div class = "form-group" >'
                                                + '<label class= "col-sm-' + labelSize + ' col-xs-' + labelSize + ' control-label">' + label + ':</label>'
                                                + '<div class = "col-sm-' + inputSize + ' col-xs-' + inputSize + '" >'
                                                + optStr
                                                + '</div>'
                                      + '</div>'
                            + '</div>'
                    + '</div>' ;
          } else if (type == '8' ) {
                     //单选框
                     var optStr = "" ;
                    opts = optValue.split( ',') ;
                     for (var i = 0 ; i < opts.length; i++) {
                             if (!$pub.isBlank(opts[i])) {
                                       if ($pub.isBlank(value)) {
                                                 if (i == 0) {
                                                          optStr = optStr + '<input type="radio" name="' + name + '" id = "' + id + '" value="' + opts[i] + '"checked = "checked" />' + opts[i] + ' ' ;
                                                } else {
                                                          optStr = optStr + '<input type="radio" name="' + name + '" id = "' + id + '" value="' + opts[i] + '"/>' + opts[i] + ' ';
                                                }
                                      } else {
                                                 if (opts[i] == value) {
                                                          optStr = optStr + '<input type="radio" name="' + name + '" id = "' + id + '" value="' + opts[i] + '"checked = "checked" />' + opts[i] + ' ' ;
                                                } else {
                                                          optStr = optStr + '<input type="radio" name="' + name + '" id = "' + id + '" value="' + opts[i] + '"/>' + opts[i] + ' ';
                                                }
                                      }
                            }
                    }
                    s = '<div class = "row col-sm-' + divSize + ' col-xs-' + divSize + '">'
                            + '<div class ="col-sm-12 col-xs-12">'
                                      + '<div class = "form-group" >'
                                                + '<label class= "col-sm-' + labelSize + ' col-xs-' + labelSize + ' control-label">' + label + ':</label>'
                                                + '<div class = "col-sm-' + inputSize + ' col-xs-' + inputSize + '" >'
                                                + optStr
                                                + '</div>'
                                      + '</div>'
                            + '</div>'
                    + '</div>' ;
          }
          return s ;
}

/**
  * 动态生成BootStrap3 Form表单
  * 参数值: formDom对象
  * 属性列表JsonArray
  * 其中属性必须包括:{id,dataType,label,name,textSize,defValue,optValue,value,isRequired} 即:{id,数据类型,属性展示名,name,长度,默认值,可选项,值,是否必填}
  * 其中dataType包括{"1":"字符串文本","2":"整型文本","3":"浮点型文本","4":"文本区","5":"日期","6":"下拉列表","7":"复选框","8":"单选框"}
  * 其中optValue必须以英文,隔开
  * 其中isRequired为1时为必填,其他值均为不必填
  *
  * 示例:
  * var pList = [{"id":"4028818851d6d7fe0151d6d8f02e0003","field":"ASDF","defValue":"0","dataType":"1","textSize":"10","isRequired":"0","optValue":{},"label":"asdf"},{"id":"402881aa51cc63210151cdb6aead00b8","field":"BAOZHIQI","defValue":"","dataType":"1","textSize":"50","isRequired":"1","optValue":"50,70,60","label":"保质期"},{"id":"402881aa51cc63210151cdb7359700ba","field":"CHANGJIA","defValue":"","dataType":"1","textSize":"50","isRequired":"1","optValue ":"50","label":"厂家"},{"id":"402881aa51cc63210151ce27085e017a","field":"SHENGCHANRIQI","defValue":"","dataType":"1","textSize":"50","isRequired":"1","optValue":"","label":"生产日期"}] ;
  * $pub.initBootStrap3Form($('#productaddForm'),pList) ;
  *
  */
$pub.initBootStrap3Form = function (formDom,pList,divSize,lableSize,inputSize) {
          $(formDom).html( '') ;
          var rules = '{' ;
          var messages = '{' ;
          var name = "" ;
          var label = "" ;
          for(var i = 0; i < pList.length; i++) {
                     var d = pList[i] ;
                     var s = $pub.getBootStrap3FormDom(d.id,d.dataType,d.label,d.id,d.textSize,d.defValue,d.optValue,d.value,divSize,lableSize,inputSize,d.isRequired) ;
                    $(formDom).append(s) ;
//                name = d.id ;
//                label = '{requried : "' + d.label + '是必填项。"}' ;
//                if(d.isRequired == '1') {
//                        rules = rules + "\"" + name + "\"" + ':{"required" : true} ,' ;
//                        messages = messages + "\"" + name + "\"" + ':{"required" : "' + d.label + '是必填项。"},' ;
//                }
          }
          //初始化日期
          $(".form_datetime").datetimepicker({
               format: "yyyy-mm-dd" ,
               autoclose: true ,
               language: 'zh-CN',
               pickDate: true ,
               pickTime: false ,
               startView :2,
               minView :2 ,
               maxView:4,
               pickerPosition: "bottom-left"  
       });
//      if(rules != '{') {
//                rules = rules.substring(0,rules.length-1) ;
//      }
//      if(messages != '{') {
//                messages = messages.substring(0,messages.length-1) ;
//      }
//      rules = rules + '}' ;
//      messages = messages + '}' ;
//          $pub.getValidator().init(JSON.parse(rules),JSON.parse(messages)) ;   //初始化表单验证
          
}


//判断元素是否为空
$pub.isBlank = function (obj){
          if(obj == 'null') {
                     return true ;
          }
          if(obj == null ) {
                     return true ;
          }
          if(obj.length<1) {
                     return true ;
          }
          return false ;
}


/**
  *
  * 调用默认的表单验证
  */

$pub.initDefaultFormValidator = function (dom) {
          $(dom).validate({
                    errorElement : 'span',
                 errorClass : 'help-block' ,
                 focusInvalid : false ,
                 highlight : function (element) {
                         $(element).closest('.form-group' ).addClass('has-error') ;
                 } ,
                 success : function (label) {
                         label.closest('.form-group' ).removeClass('has-error') ;
                         label.remove();
                 } ,
                 errorPlacement : function (error, element) {
                  error.css( 'float', 'left')
                         element.parent( 'div').append(error) ;
                 } ,
                 submitHandler : function (form) {
                         form.submit() ;
                 }          

          });
}


/**
  * 表单验证器生成
  * 使用方法:
  * 1: 调用init方法
  *         $pub.getValidator.init(rules,messages) ;
  *         参数说明: json型relus message
  *         参数示例:roles:   '{"name":{"required":true},"sex":{"required":true}}'         message:'{"name":{"required":"姓名"},"sex":{"required":"性别"}}'
  * 2:   调用inita方法
  *         $pub.getValidator.init(dom) ;
  *         init参数说明: json型dom
  *         参数示例:{"name":"姓名","sex":"性别"}
  */
$pub.getValidator = function () {
          var _validator = function (rules,messages) {
                 var handleSubmit = function(r,m) {
                   var s = {
                                                   errorElement : 'span',
                                                   errorClass : 'help-block' ,
                                                   focusInvalid : false ,
                                                   highlight : function (element) {
                                                           $(element).closest('.form-group' ).addClass('has-error');
                                                   },
                    
                                                   success : function (label) {
                                                           label.closest('.form-group' ).removeClass('has-error');
                                                           label.remove();
                                                   },
                    
                                                   errorPlacement : function (error, element) {
                                                           element.parent('div' ).append(error);
                                                   },
                    
                                                   submitHandler : function (form) {
                                                           form.submit();
                                                   }
                                 }
                  s.rules =   r ;
                  s.messages = m ;
                         $( '.form-horizontal' ).validate(s);
                         $( '.form-horizontal input').keypress(function(e) {
                                 if (e.which == 13) {
                                         if ($('.form-horizontal' ).validate().form()) {
                                                 $( '.form-horizontal' ).submit();
                                         }
                                         return false ;
                                 }
                         });
                 }
                 return {
                         init : function (rules,messages) {
                            handleSubmit(rules,messages);
                         },
                         inita : function (dom) {
                             var rules = "{" ;
                             var messages = "{" ;
                             for (var d in dom) {
                                     var key = d;
                                     var value = dom[d] ;
                                    rules = rules + "\"" + key + "\"" + ':{"required" : true} ,' ;
                                    messages = messages + "\"" + key + "\"" + ':{"required" : "' + value + '是必填项。"},' ;
                            }
                             if (rules != '{' ) {
                                    rules = rules.substring(0,rules.length-1) ;
                            }
                             if (messages != '{' ) {
                                    messages = messages.substring(0,messages.length-1) ;
                            }
                            rules = rules + '}' ;
                            messages = messages + '}' ;
                                  handleSubmit(JSON.parse(rules),JSON.parse(messages)) ;
                         }
                 };

          }();
          return _validator ;
}

/**
  * 将json格式的数据 动态赋值到相应的输入框、下拉列表或其他form表单中
  * 参数: json格式的对象 obj
  */
$pub.loadData = function loadData (obj) {
          var key,value,tagName,type,arr;
          for(x in obj){
                 key = x ;
                 value = obj[x] ;
                 $( "[name='" + key + "'],[name='" + key + "[]']" ).each(function (){
                         tagName = $( this )[0].tagName;
                         type = $( this ).attr('type' );
                         if (tagName == 'INPUT' ){
                                 if (type == 'radio' ){
                                         $( this ).attr('checked' , $(this ).val() == value) ;
                                 } else if (type=='checkbox' ){
                                         arr = value.split( ',') ;
                                         for (var i =0; i<arr.length; i++){
                                                 if ($(this ).val() == arr[i]){
                                                         $( this ).attr('checked' , true ) ;
                                                         break ;
                                                 }
                                         }
                                 } else {
                                         $( this ).val(value) ;
                                 }
                         } else if (tagName == 'SELECT' || tagName == 'TEXTAREA' ){
                             if (value == true) {
                                    $( this ).val("true" ) ;
                            } else if (value == false) {
                                    $( this ).val("false" ) ;
                            } else {
                                    $( this ).val(value) ;
                            }
                         }
                 });
          }
}

/**
  * 参数为数据表格ID,菜单ID
  * 传到后台查询当前用户所拥有的button权限
  * 返回button列表
  */
$pub.initButtons = function (toolbarId) {
          var menuId = $( '#currentMenuId' ).val() ;
          if(menuId == '' || toolbarId == '') {
                     return ;
          }
          $('#'+toolbarId).html( '');
          $.ajax({
                    type           : "post" ,
                    data  : { 'menuId' : menuId} ,
                    async          : false ,
               url    : "services/system/ButtonAction_getVerifiedButtons.action" ,
               success : function (data) {
                       if (data.logicSuccess){
                           var items = data.buttons ;
                           for (var i = 0;i<items.length;i++){
                                         var item = items[i];
                                         if (item.place == toolbarId) {
                                               var btn = $('<button type="button" onclick = "' + item.handler + '()"><span class="' + item.iconCls + '" aria-hidden="true" style="padding-right:5px"></span>' + item.text + '</button>' ) ;
                                                   btn.css( 'border-radius' ,'6px' ) ;
                                                   btn.css( 'margin-left' ,'6px' ) ;
                                                   btn.css( 'margin-bottom' ,'6px' ) ;
                                                   btn.attr( 'class', 'btn btn-default') ;
                                                   btn.attr( 'aria-label' ,'Left Align') ;
                                                   btn.appendTo($( '#'+toolbarId));
                                                  
                                         }
                                 }
                       } else {
                          createTip( '获取数据失败' ,1000) ;
                       }
               } ,
               failure : function () {
                  createTip( '获取数据失败,网络错误!' ,1000) ;
                    }
          });
}

/**
  * 参数为数据表格ID,菜单ID
  * 传到后台查询当前用户所拥有的grid权限
  * 返回grid列表
  */
$pub.initGrid = function () {
          var grids = {};
          var menuId = $( '#currentMenuId' ).val() ;
          if(menuId == '') {
                     return ;
          }
          $.ajax({  
                    type            : 'post',  
                    data            : { 'menuId' : menuId} ,
                    async                  : false ,
                    url                      : timestamp('services/system/GridColumnAction_getGridAndColumn.action' ) ,
                    cache                  : false ,  
                    dataType    : 'json',  
                    success              : function (data){  
                             if (data.gridColumns.length>0){
                                       for (var i = 0; i < data.gridColumns.length; i++) {
                                                 var a = data.gridColumns[i] ;
                                                 var cols = a.columns ;
                                                 var _grid = a.gird ;
                                                 for (var key in _grid) {
                                                           var value = eval("_grid['" +   key +"']" );  
                                                           if (value == null || value == '' ) {
                                                                     delete (_grid[key]) ;
                                                          }
                                                }
                                                 delete (_grid['id' ]) ;
                                                 for (var j = 0; j<cols.length; j++) {
                                                           if (cols[j].resolution != null && cols[j].resolution != '' ) {
                                                                    cols[j].resolution = eval(cols[j].resolution) ;
                                                          }
                                                           if (cols[j].codeTable == '' ) {
                                                                    cols[j].codeTable = null ;
                                                          } else {
                                                                     var ct = eval('codeTable.' +cols[j].codeTable);
                                                                     if (!$pub.isBlank(ct)) {
                                                                            cols[j].codeTable = ct ;
                                                                    } else {
                                                                            cols[j].codeTable = null ;
                                                                    }
                                                          }
                                                }
                                                _grid.columns = cols ;
                                                 if (cols!=null && cols != '') {
                                                          _grid = $.fn.DtGrid.init(_grid) ;
                                                          _grid.load() ;
                                                }
                                                grids[a.gird.name] = _grid ;
                                      }
                            } else {
                                       return ;
                            }
                    },  
                    error                  : function (){
                            createTip( '获取数据失败,网络错误!' ,1000) ;
                    }  
          }) ;
          return grids ;
}

/**
  * 参数为数据表格ID,菜单ID
  * 传到后台查询当前用户所拥有的grid权限
  * 返回grid列表,未初始化
  */
$pub.getGrid = function () {
          var grids = {};
          var menuId = $( '#currentMenuId' ).val() ;
          if(menuId == '') {
                     return ;
          }
          $.ajax({  
                    type            : 'post',  
                    data            : { 'menuId' : menuId} ,
                    async                  : false ,
                    url                      : timestamp('services/system/GridColumnAction_getGridAndColumn.action' ) ,
                    cache                  : false ,  
                    dataType    : 'json',  
                    success              : function (data){  
                             if (data.gridColumns.length>0){
                                       for (var i = 0; i < data.gridColumns.length; i++) {
                                                 var a = data.gridColumns[i] ;
                                                 var cols = a.columns ;
                                                 var _grid = a.gird ;
                                                 for (var key in _grid) {
                                                           var value = eval("_grid['" +   key +"']" );  
                                                           if (value == null || value == '' ) {
                                                                     delete (_grid[key]) ;
                                                          }
                                                }
                                                 delete (_grid['id' ]) ;
                                                 for (var j = 0; j<cols.length; j++) {
                                                           if (cols[j].resolution != null && cols[j].resolution != '' ) {
                                                                    cols[j].resolution = eval(cols[j].resolution) ;
                                                          }
                                                           if (cols[j].codeTable == '' ) {
                                                                    cols[j].codeTable = null ;
                                                          } else {
                                                                     var ct = eval('codeTable.' +cols[j].codeTable);
                                                                     if (!$pub.isBlank(ct)) {
                                                                            cols[j].codeTable = ct ;
                                                                    } else {
                                                                            cols[j].codeTable = null ;
                                                                    }
                                                          }
                                                }
                                                _grid.columns = cols ;
                                                grids[a.gird.name] = _grid ;
                                      }
                            } else {
                                       return ;
                            }
                    },  
                    error                  : function (){
                            createTip( '获取数据失败,网络错误!' ,1000) ;
                    }  
          }) ;
          return grids ;
}

// ======================== 定义一个map类开始=====================

// 为原生的array添加remove方法
Array.prototype.remove = function(s) {
       for ( var i = 0; i < this.length; i++) {
               if (s == this [i])
                       this .splice(i, 1);
       }
}

/**
  * Simple Map
  *
  *
  * var m = new Map();
  * m.put('key','value');
  * ...
  * var s = "";
  * m.each(function(key,value,index){
  *                 s += index+":"+ key+"="+value+"\n";
  * });
  * alert(s);
  *
  * @author dewitt
  * @date 2008-05 -24
  */
function Map() {
       /** 存放键的数组(遍历用到) */
       this.keys = new Array();
       /** 存放数据 */
       this.data = new Object();
      
       /**
         * 放入一个键值对
         * @param {String} key
         * @param {Object} value
         */
       this.put = function (key, value) {
               if (this .data[key] == null){
                       this .keys.push(key);
               }
               this .data[key] = value;
       };
      
       /**
         * 获取某键对应的值
         * @param {String} key
         * @return {Object} value
         */
       this.get = function (key) {
               return this .data[key];
       };
      
       /**
         * 删除一个键值对
         * @param {String} key
         */
       this.remove = function (key) {
               this .keys.remove(key);
               this .data[key] = null;
       };
      
       /**
         * 遍历Map,执行处理函数
         *
         * @param {Function} 回调函数 function(key,value,index){..}
         */
       this.each = function (fn){
               if (typeof fn != 'function' ){
                       return ;
               }
               var len = this .keys.length;
               for (var i=0;i<len;i++){
                       var k = this .keys[i];
                       fn(k, this .data[k],i);
               }
       };
      
       /**
         * 获取键值数组(类似Java的entrySet())
         * @return 键值对象{key,value}的数组
         */
       this.entrys = function () {
               var len = this .keys.length;
               var entrys = new Array(len);
               for (var i = 0; i < len; i++) {
                       entrys[i] = {
                               key : this .keys[i],
                               value : this .data[i]
                       };
               }
               return entrys;
       };
      
       /**
         * 判断Map是否为空
         */
       this.isEmpty = function () {
               return this .keys.length == 0;
       };
      
       /**
         * 获取键值对数量
         */
       this.size = function (){
               return this .keys.length;
       };
      
       /**
         * 重写toString
         */
       this.toString = function (){
               var s = "{" ;
               for (var i=0;i<this.keys.length;i++,s+= ','){
                       var k = this .keys[i];
                       s += k+ "=" +this .data[k];
               }
               s+= "}" ;
               return s;
       };
}

//======================== 定义map类结束=====================

//======================== 文件上传开始=====================
$pub.uploadfy = function (dom,uploader,queueID,buttonText,queueSizeLimit,fileTypeExts,auto,fileSizeLimit,uploadLimit,onUploadSuccessFun) {
          jQuery(function() {
                    $(dom).uploadify({
                           'swf'                              : 'resource/uploadify/uploadify.swf' ,
                           'uploader'                    : uploader ,
                           'cancelImg'                            : 'res/plugin/uploadify/cancel.png' ,
                           "fileObjName"              : $(dom).attr( 'name') ,                             //必须是这个,因为这个名称与后台接受file的名称是一致的
                           'queueID'                      : queueID ,                                                       //这个是显示进度条的div的id
                           'buttonText'                : buttonText ,                                       //按钮的文字
                           'hideButton'                : false ,
                           'queueSizeLimit'      : queueSizeLimit ,                               //一次性允许上传的文件个数
                           'fileTypeExts'            : fileTypeExts ,                                   //允许上传的文件类型
                           'auto'                                      : auto ,                                                   //是否自动上传
                           'buttonClass'              : 'btn btn-default' ,                             //上传按钮div的class
                           'spanClass'                            : 'glyphicon glyphicon-upload' ,//自己写的上传按钮里div里的span的class
                           'radius'                        : 6 ,                                                                   //这个是我自己设置的可控制按钮的圆边
                           'fileSizeLimit'          : fileSizeLimit ,                                 //上传文件的大小,如果为数字的话,它的单位为kb;如果是字符串的话,则这么写:'3MB'、'3GB'
                           'height'                        : 30 ,                                                                 //上传按钮的高度
                           'uploadLimit'              : uploadLimit ,                                               //最大允许上传的数量          
                           'removeCompleted'      : true ,                                                   //是否上传完成之后移除上传时的进度条
                           'width'                        : 90 ,                                                                 //按钮的宽度
                           onSelect                        : function (){                                         //选择文件时调用的方法
                           },
                           onUploadSuccess          : onUploadSuccessFun,
                           onSelectError              : function (file, errorCode, errorMsg){
                                         switch (errorCode){
                                           case -100 :
                                                   if (parseInt($(dom).uploadify('settings' ,'queueSizeLimit' )) > parseInt(errorMsg)) {
                                                                 this .queueData.errorMsg="同时上传的最大文件数已经超出了系统限制的:" +$(dom).uploadify('settings','uploadLimit')+ "个文件" ;
                                                          } else {
                                                                     this .queueData.errorMsg="同时上传的文件数量超出系统限制的" +$(dom).uploadify('settings','queueSizeLimit')+ "个文件" ;                                                               }
                                                         break ;
                                           case -110 :
                                                       this .queueData.errorMsg="文件[" +file.name+"]大小超出系统限制的" +$(dom).uploadify('settings' ,'fileSizeLimit' )+"的大小" ;
                                                     break ;
                                           case -120 :
                                                       this .queueData.errorMsg="文件[" +file.name+"]大小异常";
                                                       break ;
                                           case -130 :
                                             this .queueData.errorMsg="文件[" +file.name+"]类型不正确应为:" +$(dom).uploadify('settings' ,'fileTypeExts' );
                                             break ;
                                         }
                           }
                    });
          });
}

//======================== 文件上传结束=====================
//======================== 区域信息4级联动   开始 =====================
/**      
  *       调用方法:
  *       $pub.getAreaInfo4LevelLink().init(regionDom, privinceDom, cityDom, areaDom) ;
  *       例:
  *                 $pub.getAreaInfo4LevelLink().init(document.getElementById('region'),document.getElementById('province'),document.getElementById('city'),document.getElementById('area')) ;
  */
$pub.getAreaInfo4LevelLink = function () {
          var areaInfo4LevelLink = function () {
                     var handler = function (_carea,_cmbProvince, _cmbCity, _cmbArea) {
                             var area = _carea ;
                             var cmbProvince = _cmbProvince ;
                             var cmbCity = _cmbCity ;
                             var cmbArea = _cmbArea ;
                            area.childDom = cmbProvince ;
                            area.onchange = function () {
                                      changeInfo( this ) ;
                            } ;
                            cmbProvince.childDom = cmbCity ;
                            cmbProvince.onchange = function () {
                                      changeInfo( this ) ;
                            } ;
                            cmbCity.childDom = cmbArea ;
                            cmbCity.onchange = function () {
                                      changeInfo( this ) ;
                            } ;
                            cmbArea.childDom = null ;
                             // 给下拉列表定义序列号
                             function cmbSelect(cmb, str) {
                                       for (var i=0; i<cmb.options.length; i++)
                                      {
                                                 if (cmb.options[i].value == str)
                                                {
                                                          cmb.selectedIndex = i;
                                                           return ;
                                                }
                                      }
                            }
                             //填充下拉框
                             function cmbAddOption(cmb, str,value, obj ,isSelected ) {
                                       var option = document.createElement("OPTION" );
                                      option.innerHTML = str;
                                      option.value = value;
                                      option.obj = obj;
                                      option.selected = isSelected ;
                                      cmb.options.add(option);
                            }
                             function changeInfo (currentDom) {
                                       var childDom = currentDom.childDom ;
                                       if (childDom != null) {
                                                childDom.options.length = 0 ; // 删除options
                                                 if (currentDom.selectedIndex == -1) return ;
                                                 var item = currentDom.options[currentDom.selectedIndex].obj ;
                                                 for (var i=0;i<item.length;i++)
                                                {
                                                          cmbAddOption(childDom,item[i].name,item[i].code,item[i].areas, false );
                                                }
                                                cmbAddOption(childDom, '---请选择---' ,'' ,{},true) ;
                                                changeInfo(childDom) ;
                                      } else {
                                                 return ;
                                      }
                            }        
                             for (var i=0; i<areaInfo.length; i++) {
                                      cmbAddOption(area, areaInfo[i].name,areaInfo[i].code, areaInfo[i].areas,false );
                            }
                            cmbAddOption(area, '---请选择---' ,'' ,{},true) ;
                            changeInfo(area) ;
                    }
                     return {
                            init : function (_carea,_cmbProvince, _cmbCity, _cmbArea) {
                                      handler(_carea,_cmbProvince, _cmbCity, _cmbArea) ;
                            }
                    }
          }();
          return areaInfo4LevelLink ;
}

//======================== 区域信息4级联动   结束=====================
//function isEmail(){//失焦事件判断邮箱格式
//      var mail=$("#email").val();
//      var filter   = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
//      $("#removeCheck").contents().remove();
//      if(mail!=null && mail.length>0){
//                if (filter.test(mail)){
//                        $("#removeCheck").contents().remove();
//                        return true;
//                        }
//                else {
//                        $("#email").next().append("邮 箱 格 式 不 正 确 !");
//                        return false;
//                        }
//      }else{
//                return false;
//      }
//}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值