zoukankan      html  css  js  c++  java
  • easyui DataGrid 工具类之 util js

                    var jq;
                    var tab;
                    var tabsIndex;
                    
                    /**
                     * 常用说明
                     * @param row
                     * @returns {String}
                     */
                    function formatItem(row) {
                            var s = '<span class="text-span">' + row.text + '</span>';
                            if (row.type == "private") {
                                s += '<span class="remove-span"><a href="javascript:;" onclick="deleteOpinion(' + row.id + ');" class="remove">X</a></span>';
                            }
                            return s;
                        }
                    /**
                     * 删除常用说明
                     * @param id
                     */
                    function deleteOpinion(id) {
                         if (id != "") {
                             $.post('opinion/delete.action', {
                                 id: id
                            },
                            function(result) {
                                if (result.success) {
                                    $('#comments').combobox('clear').combobox('reload');
                                    $.messager.show({
                                        title: '成功',
                                        msg: "操作成功!"
                                    });
                                } else {
                                    $.messager.show({
                                        title: '错误',
                                        msg: result.title
                                    });
                                }
                            },
                            'json');
                         }
                     }
                    /**
                     * 增加常用说明
                     */
                     function saveOpinion() {
                         var text = $("#suggestion").val();
                         if (text != "") {
                             $.post('opinion/save.action', {
                                text: text,
                                 type: "private"
                            },
                            function(result) {
                                if (result.success) {
                                    $('#comments').combobox('reload');
                                    $.messager.show({
                                        title: '成功',
                                        msg: "操作成功!"
                                    });
                                } else {
                                    $.messager.show({
                                        title: '错误',
                                        msg: result.title
                                    });
                                }
                            },
                            'json');
                         }
                     }
                    
                     function exportExcels(id) {
                         var params = $('#' + id).datagrid('options').queryParams;
                         var url = $('#' + id).datagrid('options').url;
                         var sortName = $('#' + id).datagrid('options').sortName;
                         var sortOrder = $('#' + id).datagrid('options').sortOrder;
                         params["order"] = sortOrder;
                         params["sort"] = sortName;
                         params["operate"] = "export";
                         var columnJsonf = $('#' + id).datagrid("options").frozenColumns;
                         var columnJson = $('#' + id).datagrid("options").columns;
                         var form = $('<form></form>');
                         // 设置属性  
                         form.attr('action', url);
                         form.attr('method', 'post');
                         form.attr('target', '_self');
                         // 创建Input  
                         var input = $('<input type="hidden" name="columnJson" />');
                         var inputRow = $('<input type="hidden" name="rows" value="10" />');
                         var inputPage = $('<input type="hidden" name="page" value="1" />');
                         form.append(inputRow);
                         form.append(inputPage);
                         var jsonArray = new Array();
                         var arrayOn = new Array();
                         for (var i = 0; i < columnJsonf.length; i++) {
                             for (var j = 0; j < columnJsonf[i].length; j++) {
                                 var col = columnJsonf[i][j];
                                 col.rowspan = columnJson.length;
                                 arrayOn.push(col);
                             }
                         }
                         for (var i = 0; i < columnJson.length; i++) {
                             if (i == 0) {
                                 for (var j = 0; j < columnJson[i].length; j++) {
                                     var colj = columnJson[i][j];
                                     arrayOn.push(colj);
                                 }
                                 jsonArray.push(arrayOn);
                             } else {
                                 jsonArray.push(columnJson[i]);
                             }
                         }

                         // alert(JSON.stringify(jsonArray));
                         input.attr('value', JSON.stringify(jsonArray));
                         // 附加到Form
                         form.append(input);
                         form.appendTo("body");
                         form.css('display', 'none');
                         // 提交表单  
                         form.form('submit', {
                             url: url,
                             onSubmit: function(param) {
                                 $.each(params,
                                 function(name, value) {
                                     param[name] = value;
                                 });
                             }
                         });
                         form.remove();
                     }
                    
                    /**
                     * @author 
                     * 过滤table导出
                     * @param id table Id
                     */
                    function exportExcelToFilter(id){
                        var filterRules = $('#'+id).datagrid('options').filterRules;
                        var params = $('#'+id).datagrid('options').queryParams;
                        var url = $('#'+id).datagrid('options').url;
                        for (var i = 0; i < filterRules.length; i++) {
                            var obj = filterRules[i];
                            if (obj.field == 'applicationDate') {
                                if (obj.op == 'greater') {
                                    params.rdGt = obj.value;
                                } else if (obj.op == 'less') {
                                    params.rdLt = obj.value;
                                } else if (obj.op == 'equal') {
                                    params.rdGt = obj.value;
                                    params.rdLt = obj.value;
                                }
                            }else{
                                params[obj.field] = obj.value;
                            }
                        }
                        var sortName = $('#'+id).datagrid('options').sortName;
                        var sortOrder = $('#'+id).datagrid('options').sortOrder;
                        params["order"]=sortOrder;
                        params["sort"]=sortName;
                        params["operate"]="export";
                        var columnJsonf = $('#'+id).datagrid("options").frozenColumns;
                        var columnJson = $('#'+id).datagrid("options").columns;
                        var form = $('<form></form>');  
                        // 设置属性  
                        form.attr('action', url);  
                        form.attr('method', 'post');  
                        // form的target属性决定form在哪个页面提交  
                        // _self -> 当前页面 _blank -> 新页面  
                        form.attr('target', '_self');  
                        // 创建Input  
                        var input = $('<input type="hidden" name="columnJson" />');
                        var inputRow = $('<input type="hidden" name="rows" value="10" />');
                        var inputPage = $('<input type="hidden" name="page" value="1" />');
                        form.append(inputRow);
                        form.append(inputPage);
                        var jsonArray=new Array();
                        var arrayOn=new Array();
                        for (var i=0;i<columnJsonf.length;i++)
                        {
                             for (var j=0;j<columnJsonf[i].length;j++)
                                {
                                     var col=columnJsonf[i][j];
                                    col.rowspan=columnJson.length;
                                    arrayOn.push(col);
                                }
                        }
                        for (var i=0;i<columnJson.length;i++)
                        {
                            if(i==0){
                                for (var j=0;j<columnJson[i].length;j++)
                                {
                                     var colj=columnJson[i][j];
                                     arrayOn.push(colj);
                                }
                                jsonArray.push(arrayOn);
                            }else{
                                jsonArray.push(columnJson[i]);
                            }
                        }
                        
                       // alert(JSON.stringify(jsonArray));
                        input.attr('value', JSON.stringify(jsonArray));  
                        // 附加到Form
                        form.append(input);
                        form.appendTo("body");
                        form.css('display', 'none');
                        // 提交表单  
                        form.form('submit', {    
                            url:url,    
                            onSubmit: function(param){
                                $.each(params, function(name, value) {
                                    param[name]=value;
                                    });
                            }    
                        });
                        form.remove();
                    }
                    
                    function exportExcelToCollect(id,url,taId){
                        var taToJson=tableToJson(taId);
                        var columnJsonf = $("#"+id).datagrid("options").frozenColumns;
                        var columnJson = $("#"+id).datagrid("options").columns;
                        var form = $('<form></form>');  
                        // 设置属性  
                        form.attr('action', url);  
                        form.attr('method', 'post');  
                        // form的target属性决定form在哪个页面提交  
                        // _self -> 当前页面 _blank -> 新页面  
                        form.attr('target', '_self');  
                        // 创建Input  
                        var input = $('<input type="hidden" name="columnJson" />');
                        var jsonArray=new Array();
                        var arrayOn=new Array();
                        for (var i=0;i<columnJsonf.length;i++)
                        {
                             for (var j=0;j<columnJsonf[i].length;j++)
                                {
                                     var col=columnJsonf[i][j];
                                    col.rowspan=columnJson.length;
                                    arrayOn.push(col);
                                }
                        }
                        for (var i=0;i<columnJson.length;i++)
                        {
                            if(i==0){
                                for (var j=0;j<columnJson[i].length;j++)
                                {
                                     var colj=columnJson[i][j];
                                     arrayOn.push(colj);
                                }
                                jsonArray.push(arrayOn);
                            }else{
                                jsonArray.push(columnJson[i]);
                            }
                        }
                        
                       // alert(JSON.stringify(jsonArray));
                        input.attr('value',"["+ taToJson+","+JSON.stringify(jsonArray)+"]");  
                        // 附加到Form
                        form.append(input);
                        form.appendTo("body");
                        form.css('display', 'none');
                        // 提交表单  
                        form.submit();
                        form.remove();
                        
                    }
                    
                    //导出数据  
                    /*
                     * id datagrid id
                     * url Action 路径
                     */
                    function exportExcelTreeGrids(id) {
                        var params = $('#' + id).treegrid('options').queryParams;
                        var url = $('#' + id).treegrid('options').url;
                        var sortName = $('#' + id).treegrid('options').sortName;
                        var sortOrder = $('#' + id).treegrid('options').sortOrder;
                        params["order"] = sortOrder;
                        params["sort"] = sortName;
                        params["operate"] = "export";
                        var columnJsonf = $('#' + id).treegrid("options").frozenColumns;
                        var columnJson = $('#' + id).treegrid("options").columns;
                        var form = $('<form></form>');
                        // 设置属性  
                        form.attr('action', url);
                        form.attr('method', 'post');
                        form.attr('target', '_self');
                        // 创建Input  
                        var input = $('<input type="hidden" name="columnJson" />');
                        var inputRow = $('<input type="hidden" name="rows" value="10" />');
                        var inputPage = $('<input type="hidden" name="page" value="1" />');
                        form.append(inputRow);
                        form.append(inputPage);
                        var jsonArray = new Array();
                        var arrayOn = new Array();
                        for (var i = 0; i < columnJsonf.length; i++) {
                            for (var j = 0; j < columnJsonf[i].length; j++) {
                                var col = columnJsonf[i][j];
                                col.rowspan = columnJson.length;
                                arrayOn.push(col);
                            }
                        }
                        for (var i = 0; i < columnJson.length; i++) {
                            if (i == 0) {
                                for (var j = 0; j < columnJson[i].length; j++) {
                                    var colj = columnJson[i][j];
                                    arrayOn.push(colj);
                                }
                                jsonArray.push(arrayOn);
                            } else {
                                jsonArray.push(columnJson[i]);
                            }
                        }

                        // alert(JSON.stringify(jsonArray));
                        input.attr('value', JSON.stringify(jsonArray));
                        // 附加到Form
                        form.append(input);
                        form.appendTo("body");
                        form.css('display', 'none');
                        // 提交表单  
                        form.form('submit', {
                            url: url,
                            onSubmit: function(param) {
                                $.each(params,
                                function(name, value) {
                                    param[name] = value;
                                });
                            }
                        });
                        form.remove();
                    }

                    /**
                     * @author
                     * 过滤table导出
                     * @param id table Id
                     */
                    function exportExcelTreeGridFilter(id) {
                        var filterRules = $('#' + id).treegrid('options').filterRules;
                        var params = $('#' + id).treegrid('options').queryParams;
                        var url = $('#' + id).treegrid('options').url;
                        for (var i = 0; i < filterRules.length; i++) {
                            var obj = filterRules[i];
                            if (obj.field == 'applicationDate') {
                                if (obj.op == 'greater') {
                                    params.rdGt = obj.value;
                                } else if (obj.op == 'less') {
                                    params.rdLt = obj.value;
                                } else if (obj.op == 'equal') {
                                    params.rdGt = obj.value;
                                    params.rdLt = obj.value;
                                }
                            } else {
                                params[obj.field] = obj.value;
                            }
                        }
                        var sortName = $('#' + id).treegrid('options').sortName;
                        var sortOrder = $('#' + id).treegrid('options').sortOrder;
                        params["order"] = sortOrder;
                        params["sort"] = sortName;
                        params["operate"] = "export";
                        var columnJsonf = $('#' + id).treegrid("options").frozenColumns;
                        var columnJson = $('#' + id).treegrid("options").columns;
                        var form = $('<form></form>');
                        // 设置属性  
                        form.attr('action', url);
                        form.attr('method', 'post');
                        // form的target属性决定form在哪个页面提交  
                        // _self -> 当前页面 _blank -> 新页面  
                        form.attr('target', '_self');
                        // 创建Input  
                        var input = $('<input type="hidden" name="columnJson" />');
                        var inputRow = $('<input type="hidden" name="rows" value="10" />');
                        var inputPage = $('<input type="hidden" name="page" value="1" />');
                        form.append(inputRow);
                        form.append(inputPage);
                        var jsonArray = new Array();
                        var arrayOn = new Array();
                        for (var i = 0; i < columnJsonf.length; i++) {
                            for (var j = 0; j < columnJsonf[i].length; j++) {
                                var col = columnJsonf[i][j];
                                col.rowspan = columnJson.length;
                                arrayOn.push(col);
                            }
                        }
                        for (var i = 0; i < columnJson.length; i++) {
                            if (i == 0) {
                                for (var j = 0; j < columnJson[i].length; j++) {
                                    var colj = columnJson[i][j];
                                    arrayOn.push(colj);
                                }
                                jsonArray.push(arrayOn);
                            } else {
                                jsonArray.push(columnJson[i]);
                            }
                        }

                        // alert(JSON.stringify(jsonArray));
                        input.attr('value', JSON.stringify(jsonArray));
                        // 附加到Form
                        form.append(input);
                        form.appendTo("body");
                        form.css('display', 'none');
                        // 提交表单  
                        form.form('submit', {
                            url: url,
                            onSubmit: function(param) {
                                $.each(params,
                                function(name, value) {
                                    param[name] = value;
                                });
                            }
                        });
                        form.remove();
                    }

                    //数字千分位高速转换
                    function edienum(value, row, index){
                        var num = value;
                        num = (num || 0).toString(), result = '';
                        while (num.length > 3) {
                            result = ',' + num.slice(-3) + result;
                            num = num.slice(0, num.length - 3);
                        }
                        if (num) { result = num + result; }
                        return result;
                    }
                    
                    /**
                     * 获得相差天数
                     * @author 
                     * @param strDateStart
                     * @param strDateEnd
                     * @returns
                     */
                     function getDays(strDateStart,strDateEnd){
                           var strSeparator = "-"; //日期分隔符
                           var oDate1;
                           var oDate2;
                           var iDays;
                           oDate1= strDateStart.split(strSeparator);
                           oDate2= strDateEnd.split(strSeparator);
                           var strDateS = new Date(oDate1[0], oDate1[1]-1, oDate1[2]);
                           var strDateE = new Date(oDate2[0], oDate2[1]-1, oDate2[2]);
                           iDays = parseInt((strDateS - strDateE ) / 1000 / 60 / 60 /24);//把相差的毫秒数转换为天数
                           return iDays ;
                        }
                    
                    /*
                     * 跳转tabls 
                     */
                    $(function(){
                        jq = top.jQuery;
                        tab = jq("#mainTabs").tabs('getSelected');
                        tabsIndex = jq("#mainTabs").tabs('getTabIndex',tab);
                    });
                    
                    function tabsSelectAndClose(s,c){
                        jq("#mainTabs").tabs('select',parseInt(s));
                        jq("#mainTabs").tabs('close',parseInt(c));
                    }
                    
                    function back(){
                        tabsSelectAndClose($("#tabsIndex").val(),tabsIndex);
                    }
                    
                    function backUpdate(){
                        tabsSelectAndCloseToUpdate($("#tabsIndex").val(),tabsIndex);
                    }
                    
                    function tabsSelectAndCloseToUpdate(s,c){
                        jq("#mainTabs").tabs('select',parseInt(s));
                        var tabb = jq("#mainTabs").tabs('getTab',parseInt(s));
                        jq("#mainTabs").tabs('update', {
                            tab: tabb,
                            options: {
                                content:$("iframe",tabb)   // 新内容的URL
                            }
                        });
                        jq("#mainTabs").tabs('close',parseInt(c));
                    }
                    
                    /*
                     * 跳转tabls 
                     */
                    function JumpPage(type,title,src){
                        var jq = top.jQuery;
                        var content = "<iframe id='mainFrame' frameborder='no' width='100%' height='100%' src='"+src+"'></iframe>";
                        if(type==0){
                            if (jq("#mainTabs").tabs('exists', title)){    
                            jq("#mainTabs").tabs('select', title);    
                            } else {   
                               jq("#mainTabs").tabs('add',{    
                                                  title:title,    
                                                  content:content,
                                                  bodyCls: 'cos-overflow-hidden',
                                                  closable:true    
                                                });    
                             }  
                        }else{
                           jq("#mainTabs").tabs('close',title);
                           jq("#mainTabs").tabs('add',{    
                                              title:title,    
                                              content:content,
                                              bodyCls: 'cos-overflow-hidden',
                                              closable:true    
                                            });    
                        }
                    }
                    
                    function linkStyle(value,row,index) {
                        if(value!="合计"){
                            return "<span class='a'>" + value + "</span>";
                        }else{
                            return value;
                        }
                     }
                    
                     function nonzeroWarning(value,row,index){
                            if (value > 0){
                                return "<span class='warning'>" + value + "</span>";
                            } else {
                                return value;
                            }
                        }
                     
                     function nonzeroWarningFixed(value,row,index){
                            if (value > 0){
                                return "<span class='warning'>" + value.toFixed(2) + "</span>";
                            } else {
                                value=0;
                                return value.toFixed(2);
                            }
                        }
                     /**
                      * table封装json
                      * @param id
                      * @returns {String}
                      */
                        function tableToJson(id){
                               var styleArray=["height","rowspan","width","align","colspan"];
                               var tab=document.getElementById(id);
                                var rows=tab.rows;
                                var txt = "[";
                                for(var i=0;i<rows.length;i++)
                                {
                                var r = "[";   
                                for(var j=0;j<rows[i].cells.length;j++)
                                    {
                                       var c="{";
                                       for (var k = 0; k < styleArray.length; k++) {
                                           c+="""+styleArray[k]+"":""+$(rows[i].cells[j]).attr(styleArray[k])+"",";
                                       }
                                       c+=""title":"+""" + rows[i].cells[j].innerHTML+""";
                                       c+="},";
                                       r += c;
                                    }
                                r = r.substring(0, r.length - 1);
                                r += "],";
                                txt += r;
                                }
                                txt = txt.substring(0, txt.length - 1);
                                txt += "]";
                                return txt;
                        }
                        
                        function getFormatterDate(value){
                            var time = new Date();
                            if(value){
                                if((value+"").indexOf("-")>0){
                                    value=/d{4}-d{1,2}-d{1,2}/g.exec(value);
                                    return value;
                                }
                                time = new Date(value);
                            }
                            var year=time.getFullYear();
                            var month = time.getMonth() + 1;  
                            var day = time.getDate();
                            if(month<10){
                                month="0"+month;
                            }
                            
                            if(day<10){
                                day="0"+day;
                            }
                            
                            return year+"-"+month+"-"+day;
                        }
                        
                        /**
                         * 格式化日期
                         * @param value
                         * @param row
                         * @param index
                         * @returns
                         */
                        function valueFormatterDate(value,row,index){
                            var time = new Date();
                            if(value){
                                if((value+"").indexOf("-")>0){
                                    value=/d{4}-d{1,2}-d{1,2}/g.exec(value);
                                    return value;
                                }
                                time = new Date(value);
                            }
                            var year=time.getFullYear();
                            var month = time.getMonth() + 1;  
                            var day = time.getDate();
                            if(month<10){
                                month="0"+month;
                            }
                            
                            if(day<10){
                                day="0"+day;
                            }
                            
                            return year+"-"+month+"-"+day;
                        }
                        
                        //将日期输入框变为年月的函数方法
                        function setYearMonth(id){
                            var month=0;
                              $('#'+id).datebox({
                              onShowPanel: function () {//显示日趋选择对象后再触发弹出月份层的事件,初始化时没有生成月份层
                                  span.trigger('click'); //触发click事件弹出月份层
                                  if (!tds) setTimeout(function () {//延时触发获取月份对象,因为上面的事件触发和对象生成有时间间隔
                                      tds = p.find('div.calendar-menu-month-inner td');
                                      tds.click(function (e) {
                                          e.stopPropagation(); //禁止冒泡执行easyui给月份绑定的事件
                                          var year = /d{4}/.exec(span.html())[0]//得到年份
                                          , month = parseInt($(this).attr('abbr'), 10); //月份
                                          $('#'+id).datebox('hidePanel')//隐藏日期对象
                                          .datebox('setValue', year + '-' + (month < 10 ? '0' : '') + month); //设置日期的值
                                      });
                                  }, 0);
                              },
                              parser: function (s) {//配置parser,返回选择的日期
                                  if (!s) return new Date();
                                  var arr = s.split('-');
                                  month=parseInt(arr[1], 10);
                                  //monthStr=month==13?month-1:month;
                                  var newDate=new Date(parseInt(arr[0], 10)+"/"+(month < 10 ? '0' : '')+month+"/01");
                                  return newDate;
                              },
                              formatter: function (d) {
                                  var f=d.getFullYear() + '-' + (d.getMonth() < 10 ? '0' : '') + (d.getMonth() + 1);
                                  return f;
                                  
                              }//配置formatter,只返回年月
                          });
                          var p = $('#'+id).datebox('panel'), //日期选择对象
                              tds = false, //日期选择对象中月份
                              span = p.find('span.calendar-text'); //显示月份层的触发控件
                        }
                        
                        var MaskUtil = (function(){  
                              
                            var $mask,$maskMsg;  
                              
                            var defMsg = '正在处理,请稍待。。。';  
                              
                            function init(){  
                                if(!$mask){  
                                    $mask = $("<div class="datagrid-mask mymask"></div>").appendTo("body");  
                                }  
                                if(!$maskMsg){  
                                    $maskMsg = $("<div class="datagrid-mask-msg mymask">"+defMsg+"</div>")  
                                        .appendTo("body").css({'font-size':'12px'});  
                                }  
                                  
                                $mask.css({"100%",height:$(document).height()});  
                                  
                                var scrollTop = $(document.body).scrollTop();  
                                  
                                $maskMsg.css({  
                                    left:( $(document.body).outerWidth(true) - 190 ) / 2  
                                    ,top:( ($(window).height() - 45) / 2 ) + scrollTop  
                                });   
                                          
                            }  
                              
                            return {  
                                mask:function(msg){  
                                    init();  
                                    $mask.show();  
                                    $maskMsg.html(msg||defMsg).show();  
                                }  
                                ,unmask:function(){  
                                    $mask.hide();  
                                    $maskMsg.hide();  
                                }  
                            }  
                              
                        }());
                        
                        
                        function valueToFixed(value,row,index){
                            if(value==null||value==""){
                                value=0;
                            }
                            return toDecimal2(value);
                        }
                        
                        /**
                         * 精确小数俩位
                         * @param value
                         * @param row
                         * @param index
                         * @returns
                         */
                        function toDecimal2(x) {  
                            var f = parseFloat(x);  
                            if (isNaN(f)) {  
                                return false;  
                            }  
                            var f = Math.round(x*100)/100;  
                            var s = f.toString();  
                            var rs = s.indexOf('.');  
                            if (rs < 0) {  
                                rs = s.length;  
                                s += '.';  
                            }  
                            while (s.length <= rs + 2) {  
                                s += '0';  
                            }  
                            return s;  
                        }
                        
                        
                        
                        /**
                         * 折叠标题
                         */
                        (function($){
                             var buttonDir = {north:'down',south:'up',east:'left',west:'right'};
                                $.extend($.fn.layout.paneldefaults,{
                                    onBeforeCollapse:function(){
                                        var popts = $(this).panel('options');
                                        var dir = popts.region;
                                        var btnDir = buttonDir[dir];
                                        if(!btnDir) return false;
                            
                                        setTimeout(function(){
                                            var pDiv = $('.layout-button-'+btnDir).closest('.layout-expand').css({
                                                textAlign:'center',lineHeight:'18px',fontWeight:'bold'
                                            });
                            
                                            if(popts.title){
                                                 var vtitle = popts.title;
                                                if(dir == "east" || dir == "west"){
                                                    var vTitle = popts.title.split('').join('<br/>');
                                                    pDiv.find('.panel-body').html(vTitle);
                                                }else{
                                                    $('.layout-button-'+btnDir).closest('.layout-expand').find('.panel-title')
                                                    .css({textAlign:'left'})
                                                    .html(vTitle)
                                                }
                                                 
                                            }   
                                        },100);
                                         
                                    }
                                });
                            })(jQuery);

  • 相关阅读:
    css--盒子模型
    目标爬取社会信用码
    KFC-位置分页爬虫
    百度翻译-爬虫
    网页采集器-UA伪装
    python模块2
    python模块
    go入门
    python垃圾回收机制
    Python高级用法
  • 原文地址:https://www.cnblogs.com/ckaifeng/p/5131024.html
Copyright © 2011-2022 走看看