var _oldSselectedTr = null; var _oldSselectedTdCssBGC = null; var _tableListSelTdCssBGC = "#e0e0e0";// 选中行的背景色 function trClickColor(obj) { if (null != _oldSselectedTr) { _oldSselectedTr.css("background-color", _oldSselectedTdCssBGC); } _oldSselectedTr = $(obj); _oldSselectedTdCssBGC = $(obj).css("background-color"); $(obj).css("background-color", _tableListSelTdCssBGC); } function _toClickColor(jObj) { jObj.click(function() { trClickColor(this); }); } function _tongLineColor(jObj) { jObj.each(function(i) { if (i % 2 == 0) { } else { $(this).addClass("tr-hover"); } }); } /** *********************************支持多个表格******************************** */ var _oldSselectedTrMap = {}; var _oldSselectedTdCssBGCMap = {}; function trClickColorMap(obj, tableId) { if (null != _oldSselectedTrMap[tableId]) { _oldSselectedTrMap[tableId].css("background-color", _oldSselectedTdCssBGCMap[tableId]); } _oldSselectedTrMap[tableId] = $(obj); _oldSselectedTdCssBGCMap[tableId] = $(obj).css("background-color"); $(obj).css("background-color", _tableListSelTdCssBGC); } function _toClickColorMap(jObj, tableId) { jObj.click(function() { trClickColorMap(this, tableId); }); } // 监控滚动条 function tableScroll(){ var flag = $("#datagrid-view-kz").length > 0 ?"-kz":""; var isLeft =$("#tableContainer"+flag).length > 0 ?"left-":""; var datagridBodyscrollTop=document.getElementById("datagrid-body"+flag).scrollTop; var datagridBodyscrollLeft=document.getElementById("datagrid-body"+flag).scrollLeft; document.getElementById("datagrid-header-inner").scrollTop=datagridBodyscrollTop; document.getElementById("datagrid-header-inner").scrollLeft=datagridBodyscrollLeft; } //美化滚动条 var _isFirstSetScroll = 0; function setScroll(formId){ //更新左侧固定列表格滚动高度至顶部,右侧表格滚动条重置需一定时间,故用定时器延后执行 setTimeout(function(){ if($("#leftTableDiv"+formId).length>0){//异步列表 var top = 0; if($('#datagrid-btable-ajax'+formId).parent().hasClass('mCSB_container')){ top = $('#datagrid-btable-ajax'+formId).parent().position().top?$('#datagrid-btable-ajax'+formId).parent().position().top:0; } $("#leftTableDiv"+formId).find('table').css('margin-top',top); //更新左侧与右侧表格行高度为一致 initTdHeight('#left-datagrid-btable-ajax'+formId,'#datagrid-btable-ajax'+formId); } if($('#'+formId).parents('.tableContainer').find("#left-datagrid-htable").length>0){//异步列表 var top = 0; if($('.contentTable #'+formId+' #datagrid-btable').parent().hasClass('mCSB_container')){ top = $('.contentTable #'+formId+' #datagrid-btable').parent().position().top?$('.contentTable #'+formId+' #datagrid-btable').parent().position().top:0; } $("#leftTableDiv"+formId).find('table').css('margin-top',top); //更新左侧与右侧表格行高度为一致 initTdHeight('.tableContainer #'+formId+' #left-datagrid-btable',$('.tableContainer #contentTable').find('#'+formId+' #datagrid-btable')); } },10) var listType=getListType(formId); if(listType == 'ajax'){ if($("#left-datagrid-htable"+formId).length>0){ initTdHeight('#left-datagrid-btable-ajax'+formId,'#datagrid-btable-ajax'+formId); } }else if(listType == 'syn'){ if($('#'+formId).parents('.tableContainer').find("#left-datagrid-htable").length>0){ initTdHeight('.tableContainer #'+formId+' #left-datagrid-btable',$('.tableContainer #contentTable').find('#'+formId+' #datagrid-btable')); } }else{ if($("#left-datagrid-htable-kz").length>0){ initTdHeight('#left-datagrid-btable-kz','#datagrid-btable-kz'); } } if(_isFirstSetScroll != 0){ return; } _isFirstSetScroll++; var axis = "yx"; if(listType=='ajax'){ if(formId && $("#tbody_"+formId+" tr").length<=1){ axis = "x"; }; /*var brow = $.browser; if(brow.is!="msie"){*/ $(".datagrid-body-ajax").not('.mCustomScrollbar').mCustomScrollbar({ axis:axis, theme:"minimal-dark", keyboard:{scrollAmount:40}, mouseWheel:{deltaFactor:40,preventDefault:true}, scrollInertia:80, autoExpandScrollbar:true,//鼠标移到滚动条的位置,滚动条的宽度变为原来的2倍 callbacks:{ whileScrolling:function(){ var formId = $(this).attr("id").replace("tableDiv",""); if($('.customized-rmenu-container').length>0){//判断是否有弹出自定义菜单 var rMenuFormId = $(selectedTr).parents('.panel-ajax').attr('id'); if(formId==$('#formId1').val()){//判断是否为主表 _closeRMenu('rMenu'); }else if(formId==rMenuFormId){//判断是否为弹出菜单的子表 _closeRMenu('childTableRMenu'); } } if($("#leftTableDiv"+formId).length>0){ $("#leftTableDiv"+formId).find('table').css('margin-top',this.mcs.top); //$("#leftTableDiv"+formId).find('table').scrollLeft(this.mcs.left); } if(this.mcs.left||this.mcs.left==0){ $("#datagrid-header-inner"+formId).scrollLeft((-this.mcs.left)); } }, onInit:function(){ $(this).css("overflow-y","hidden"); } } }); }else if(listType=='syn'){ if(formId && $("#datagrid-btable tr").length<=1){ axis = "x"; }; /*var brow = $.browser; if(brow.is!="msie"){*/ $(".datagrid-body").not('.left-datagrid-body,mCustomScrollbar').mCustomScrollbar({ axis:axis, theme:"minimal-dark", keyboard:{scrollAmount:40}, mouseWheel:{deltaFactor:40,preventDefault:true}, scrollInertia:80, autoExpandScrollbar:true,//鼠标移到滚动条的位置,滚动条的宽度变为原来的2倍 callbacks:{ whileScrolling:function(){ if($(this).parents('.tableContainer').find("#left-datagrid-btable").length>0){ $(this).parents('.tableContainer').find("#left-datagrid-body").find('table').css('margin-top',this.mcs.top); //$("#leftTableDiv"+formId).find('table').scrollLeft(this.mcs.left); } if(this.mcs.left||this.mcs.left==0){ $(this).parents('.panel').find('.datagrid-header').not('.left-datagrid-header').find("#datagrid-header-inner").scrollLeft((-this.mcs.left)); //$('.datagrid-header').not('.left-datagrid-header').find("#datagrid-header-inner").scrollLeft((-this.mcs.left)); } }, onInit:function(){ $(this).css("overflow-y","hidden"); } } }); }else if(listType=='kz'){ if(formId && $("#datagrid-btable-kz tr").length<=1){ axis = "x"; }; /*var brow = $.browser; if(brow.is!="msie"){*/ $(".datagrid-body").not('.left-datagrid-body-kz,mCustomScrollbar').mCustomScrollbar({ axis:axis, theme:"minimal-dark", keyboard:{scrollAmount:40}, mouseWheel:{deltaFactor:40,preventDefault:true}, scrollInertia:80, autoExpandScrollbar:true,//鼠标移到滚动条的位置,滚动条的宽度变为原来的2倍 callbacks:{ whileScrolling:function(){ if($("#left-datagrid-btable-kz").length>0){ $("#left-datagrid-body-kz").find('table').css('margin-top',this.mcs.top); //$("#leftTableDiv"+formId).find('table').scrollLeft(this.mcs.left); } if(this.mcs.left||this.mcs.left==0){ $('.datagrid-view-kz .datagrid-header').not('.left-datagrid-header-kz').find("#datagrid-header-inner").scrollLeft((-this.mcs.left)); } }, onInit:function(){ $(this).css("overflow-y","hidden"); } } }); } } //有左侧固定列时,同步左侧与右侧行高度一致 function initTdHeight(leftDom,rightDom){ $(leftDom+' tr').each(function(i,v){ var leftHeight = maxTdHeight($(this));//$(this).height(); leftHeight = leftHeight>$(this).height()?leftHeight:$(this).height(); var rightHeight = maxTdHeight($(rightDom).find('tr')[i]);//$($(rightDom).find('tr')[i]).height(); rightHeight = rightHeight>$($(rightDom).find('tr')[i]).height()?rightHeight:$($(rightDom).find('tr')[i]).height(); if(!leftHeight || leftHeight<25){ leftHeight = 25; } if(!rightHeight || rightHeight<25){ rightHeight = 25; } if(leftHeightheight){ height = $(this).height(); } }) return height; } function setPopScroll(elem,head,left){ $(elem).mCustomScrollbar({ axis:"yx", theme:"minimal-dark", keyboard:{scrollAmount:40}, mouseWheel:{deltaFactor:40,preventDefault:true}, scrollInertia:80, autoHideScrollbar:true, autoExpandScrollbar:true,//鼠标移到滚动条的位置,滚动条的宽度变为原来的2倍 callbacks:{ whileScrolling:function(){ _closeChosen();//关闭被展开的下拉框 if(head){ if(this.mcs.left){ $(head)[0].scrollLeft=(-this.mcs.left); } }else{ return; } if(left){ if(this.mcs.top){ $(left)[0].scrollTop=(-this.mcs.top); } } else{ return; } } } }); } // 异步表格滚动条监控 function ajaxTableScroll(thisObj,formId){ var datagridBodyscrollTop=$(thisObj)[0].scrollTop; var datagridBodyscrollLeft=$(thisObj)[0].scrollLeft; if($("#leftTableDiv"+formId).length>0){ $("#leftTableDiv"+formId)[0].scrollTop=datagridBodyscrollTop; $("#leftTableDiv"+formId)[0].scrollLeft=datagridBodyscrollLeft; } var inner=document.getElementById("datagrid-header-inner" +formId); inner.scrollLeft=datagridBodyscrollLeft; if(!window.ActiveXObject){ ajustP($(inner),$(thisObj)); } } function ajustP($inner,$datagridBody){ var $innerP=$inner.parent(); var bodyWidth=$datagridBody.outerWidth(); var tableWidth=$datagridBody.children('table').outerWidth(); var datagridBodyscrollLeft=$datagridBody.scrollLeft(); return; if(hasScrollBar($datagridBody)){ var lastTd=$datagridBody.find('tr:first-child').children('td:last'); var adjust=lastTd.outerWidth()==0; adjust=adjust&&Math.abs((datagridBodyscrollLeft+bodyWidth-barWidth)-tableWidth)<=barWidth; if(adjust){ $innerP.css('marginLeft',(tableWidth-bodyWidth-datagridBodyscrollLeft)); }else{ $innerP.css('marginLeft',0); } }else{ $innerP.css('marginLeft',0); } } var search; var flag; var isLeft; function initTableHight(){ var top = 56;//查询条件到顶部的高度 var serchHeight = $('.search-box').height(); //var serchHeight = parseInt((search - 1)/3 + 1) * 39;//查询条件的高度 var pagingHeight = 30; //分页的高度 var bottom = 10;//分页到底部的距离 var panelHeight = $(window).height() - top - serchHeight - bottom;//内容区域的高度 var tableCount = $("#tableCount").val();//表单数量 //判断是否弹窗 if($("#isOpener") && $("#isOpener").val()=="1"){ //是弹窗 $('.panel').height($(window).height() - top - 39 - bottom - pagingHeight); // $("#tableContainer"+flag).height($(window).height()- 70 - parseInt((search - 1)/3 + 1) * 39); }else{ $('.panel').height((panelHeight - 10 * (tableCount - 1))/tableCount - pagingHeight); $(".tableContainer"+flag).height($(parent.window).height() - 65 - 100 - parseInt((search - 1)/3 + 1) * 39); } //写在CSS中 //$('.panel').height($(parent.window).height() - 65 - 100 - parseInt((search - 1)/3 + 1) * 39); //$(".dlist .datagrid-view"+flag).css('height','100%').css('box-sizing','border-box'); //$(".dlist .datagrid-body"+flag).css('height',$(".datagrid-view"+flag).height() - 32 + 'px'); // $("#left-datagrid-view"+flag).css('height','100%').css('box-sizing','border-box'); // $("#left-datagrid-body"+flag).css('height', $("#left-datagrid-view"+flag).height() - 32 + 'px'); $(".datagrid-view"+flag).css('width','100%'); var listFormWidth = getListFormWidth(); var leftHeaderWidth = $(".leftTable-ajax").length>0?($(".leftTable-ajax").width()+1):($(".leftTable-kz").length>0?($(".leftTable-kz").width()+1):($(".leftTable").length>0?($(".leftTable").width()+1):0)); if($(".leftTable-ajax").length>0 || $(".leftTable-kz").length>0 ||$(".leftTable").length>0){ leftHeaderWidth = leftHeaderWidth>20?leftHeaderWidth:listFormWidth*0.2; } $(".dlist .datagrid-header").not(".left-datagrid-header-ajax,.left-datagrid-header,.left-datagrid-header-kz").width(listFormWidth - 2); $(".dlist .datagrid-body").not(".left-datagrid-body-ajax,.left-datagrid-body,.left-datagrid-body-kz").width(listFormWidth - 2); $(".dlist .contentTable .datagrid-header").not(".left-datagrid-header-ajax,.left-datagrid-header,.left-datagrid-header-kz").width(listFormWidth - 6 -leftHeaderWidth); $(".dlist .contentTable .datagrid-body").not(".left-datagrid-body-ajax,.left-datagrid-body,.left-datagrid-body-kz").width(listFormWidth - 6 -leftHeaderWidth); $(".dlist .contentTable-kz .datagrid-header").not(".left-datagrid-header-ajax,.left-datagrid-header,.left-datagrid-header-kz").width(listFormWidth - 6 -leftHeaderWidth); $(".dlist .contentTable-kz .datagrid-body").not(".left-datagrid-body-ajax,.left-datagrid-body,.left-datagrid-body-kz").width(listFormWidth - 6 -leftHeaderWidth); //$(".query-list").width(listFormWidth - 2 -leftHeaderWidth); } // 异步表格高度设置 function initAjaxTableHight(){ var top = 56;//查询条件到顶部的高度 var serchHeight = $('.search-box').height(); //var serchHeight = parseInt((search - 1)/3 + 1) * 39;//查询条件的高度 var pagingHeight = 30; //分页的高度 var bottom = 10;//分页到底部的距离 var panelHeight = $(window).height() - top - serchHeight - bottom;//内容区域的高度 var tableCount = $("#tableCount").val();//表单数量 if($("#isOpener") && $("#isOpener").val()=="1"){//弹窗 $('.panel-ajax').height($(window).height() - top - 39 - bottom - pagingHeight); // $(".tableContainer-ajax").height(($(window).height()- 70 - parseInt((search - 1)/3 + 1) * 39)/tableCount-30); }else{ //如果有tab 页,减去tab高度 if($(".hd .tab-list").height()!=undefined&&$(".hd .tab-list").height()!=null){ panelHeight=panelHeight-$(".hd .tab-list").height(); } $('.panel-ajax').height((panelHeight - 10 * (tableCount - 1))/tableCount - pagingHeight); $(".tableContainer-ajax").height(($(parent.window).height() - 65 - 100 - parseInt((search - 1)/3 + 1) * 39)/tableCount-30); //解决左边表格固定列分页消失问题 +41px bug3570 if($(".tableContainer-ajax").length>0 && $(".tableContainer-ajax").find(".leftTable-ajax").length > 0 && $(".tableContainer-ajax").find(".contentTable").length > 0 ){ $(".tableContainer-ajax").height(($(parent.window).height() - 65 - 100 - parseInt((search - 1)/3 + 1) * 39 + 41)/tableCount-30); } } //写在css中 //$(".datagrid-view-ajax").css('height','100%').css('box-sizing','border-box'); //$(".datagrid-body-ajax").css('height', $(".datagrid-view-ajax").height() - 40 + 'px'); //$(".left-datagrid-view-ajax").css('height','100%').css('box-sizing','border-box'); //$(".left-datagrid-body-ajax").css('height', $(".left-datagrid-view-ajax").height() - 40 + 'px'); } //同步表格高度设置 function initListTableHight(){ var top = 56;//查询条件到顶部的高度 var serchHeight = $('.search-box').height(); //var serchHeight = parseInt((search - 1)/3 + 1) * 39;//查询条件的高度 if(serchHeight == undefined || serchHeight == null) { serchHeight = 0; } var pagingHeight = 30; //分页的高度 var bottom = 10;//分页到底部的距离 var panelHeight = $(window).height() - top - serchHeight - bottom;//内容区域的高度 var tableCount = $("#tableCount").val();//表单数量 //debugger; if(undefined == tableCount || null == tableCount || ""==tableCount){ tableCount = 1; } if($("#isOpener") && $("#isOpener").val()=="1"){//弹窗 $('.panel').height($(window).height() - top - 39 - bottom - pagingHeight); // //$(".tableContainer-ajax").height(($(window).height()- 70 - parseInt((search - 1)/3 + 1) * 39)/tableCount-30); }else{ $('.panel').height((panelHeight - 10 * (tableCount - 1))/tableCount - pagingHeight); //$(".tableContainer-ajax").height(($(parent.window).height() - 65 - 100 - parseInt((search - 1)/3 + 1) * 39)/tableCount-30); } //解决左边表格固定列分页消失问题 +41px if($(".tableContainer").length>0 && $(".tableContainer").find(".leftTable").length > 0 && $(".tableContainer").find(".contentTable").length > 0 ){ $(".tableContainer").height(($(parent.window).height() - 65 - 100 - parseInt((search - 1)/3 + 1) * 39)/tableCount-30 + 17); } //写在css中 //$(".datagrid-view-ajax").css('height','100%').css('box-sizing','border-box'); //$(".datagrid-body-ajax").css('height', $(".datagrid-view-ajax").height() - 40 + 'px'); //$(".left-datagrid-view-ajax").css('height','100%').css('box-sizing','border-box'); //$(".left-datagrid-body-ajax").css('height', $(".left-datagrid-view-ajax").height() - 40 + 'px'); } //更新左侧固定列表滚动位置 function updateLeftPos(){ if($(".leftTable-ajax").length>0){ $(".leftTable-ajax").find('table').css('margin-top',0); }else if($(".leftTable-kz").length>0){ $(".leftTable-kz").find('table').css('margin-top',0); }else if($(".leftTable").length>0){ $(".leftTable").find('table').css('margin-top',0); } } $(function(){ search = $('#searchParaNull').attr('value'); flag = $("#datagrid-view-kz").length > 0 ?"-kz":""; var offsetWidth=0,offsetWidthKz=0,resizeCount=0,screenHeight = $(window).height; var isLeft =$("#tableContainer"+flag).length > 0 ?"left-":""; if($("#datagrid-header-inner").length > 0){ offsetWidth = $("#datagrid-view"+flag).css("width"); // $("#datagrid-htable"+flag).width(offsetWidth); // $("#datagrid-btable"+flag).width(offsetWidth); try { $(window.parent.document).find("#"+window.frameElement.id).height(screenHeight); } catch(err) { } } function isBorder(){ var is_border = $(".datagrid-btable tbody tr").children().eq(1).find("._selectdata").attr("is_border"); if(is_border=="2"){ $(".datagrid-header td,.datagrid-body td").css("border","none"); } } $(".datagrid-btable tbody tr").mouseenter(function(){ var trObj = getObj($(this)); $(trObj).css("background-color","#c3e2fb"); }); $(".datagrid-btable tbody tr").mouseleave(function(){ var trObj = getObj($(this)); $(trObj).css("background-color",""); }); function getObj(thisObj){ var abbr = thisObj.attr("abbr"); return $("tr[abbr='"+abbr+"']"); } initAjaxTableHight(); initTableHight(); initListTableHight();//同步表格高度设置 $(".datagrid-btable").on('mouseover','td',function(){ var title = $(this).find("span").attr("title"); if(title){ $(this).attr('title',delTrim(title)); } }); var wHeight = 0; // 浏览器窗口改变 $(window).resize(function(){ if(wHeight!=$(window).height()){ wHeight = $(window).height(); updateLeftPos();//更新左侧固定列表滚动位置至顶部 } initAjaxTableHight(); initTableHight(); initListTableHight();//同步表格高度设置 //异步2.0,异步卡片表格高度调整 if(typeof resetHeight=='function'){ resetHeight(); } //同步卡片表格高度调整 if(typeof setContHeight=='function'){ setContHeight(); } _closeRMenu(); }); // 主表单双击查看详情 $(".dblClick .isParents").on("dblclick","tr",function(){ var _thisObj = $(this); var id = _thisObj.attr("id"); if(id=="undefined"){ return; } if(typeof(dblClickShowDetail)=="function" && !dbClickChangeTab){ dblClickShowDetail(_thisObj); } }); $('body').on('mouseover','.optn button',function(){ if($(this).width() >= 85){ $(this).attr('title',$(this).text()) } }) }); /** * 表格编号自适应宽度 * @param formId */ var prewNumColWidth = 0; function setNumColWidth(formId){ var $tbody = $("#tbody_"+formId); if($("#left-tbody_"+formId).length > 0){ $tbody = $("#left-tbody_"+formId); } var numLength = $tbody.children("tr:last-child").find("td").eq(0).find("._noedit").text().length; var fixednum = 1; if($('#selectAll_'+formId).length>0){ fixednum = 2; } var numColWidth = (numLength-fixednum)*6+30; if($("#leftTableDiv"+formId).length<=0){ $("#datagrid-htable"+formId).find("td").eq(0).css('width',numColWidth); } var listType=getListType(formId); _bodyToHeader($tbody.parents('.datagrid-body'),numColWidth,formId,$tbody,(numColWidth-prewNumColWidth),listType); prewNumColWidth = numColWidth; if(this.hideAuthDataCol){ hideAuthDataCol(); } } //把body匹配成成头部的列宽 function _bodyToHeader(tableBody,numColWidth,formId,$tbody,dx,listType){ var tableHeader=tableBody.prev(); var matchReg =/.*width\s*:\s*(\d*\.?\d*)px/; var widthDisplay =/.*display\s*:\s*(\S+)e/; var leftHeaderWidth = $("#left-datagrid-htable"+(listType=='ajax'?formId:(listType=='kz'?'-kz':''))).length>0?$("#left-datagrid-htable"+(listType=='ajax'?formId:(listType=='kz'?'-kz':''))).width():0; var listFormWidth = getListFormWidth(); var screenWidth = listFormWidth - 6 -leftHeaderWidth; var firstTr = $('#datagrid-btable'+(listType=='ajax'?'-ajax'+formId:(listType=='kz'?'-kz':''))+'>tbody>tr:first-child'); if(listType == 'syn'){ if($('#'+formId).parents('.tableContainer').find("#left-datagrid-htable").length>0){ leftHeaderWidth = listFormWidth*0.2; }else{ leftHeaderWidth = 0; } firstTr = $('#'+formId).find('#datagrid-btable>tbody>tr:first-child'); $('#'+formId).find('#datagrid-htable .datagrid-header-row>td').each(function (i,v) { var styleTd = $(this).attr("style"); if(styleTd && styleTd.indexOf("display")>-1&&styleTd.match(widthDisplay)!=null&&(styleTd.match(widthDisplay)[1])=="non"){ return true; } if(styleTd && styleTd.indexOf("width")>-1){ var bodyTd = firstTr.children('td:eq('+i+')'); bodyTd.width(parseFloat(styleTd.match(matchReg)[1])); } }); if($('#'+formId).parents('.tableContainer').find("#left-datagrid-htable").length>0){ firstTr = $('#'+formId).parents('.tableContainer').find('#datagrid-btable>tbody>tr:first-child'); $('#'+formId).parents('.tableContainer').find('#datagrid-htable .datagrid-header-row>td').each(function (i,v) { var styleTd = $(this).attr("style"); if(styleTd && styleTd.indexOf("display")>-1&&styleTd.match(widthDisplay)!=null&&(styleTd.match(widthDisplay)[1])=="non"){ return true; } if(styleTd && styleTd.indexOf("width")>-1){ var bodyTd = firstTr.children('td:eq('+i+')'); bodyTd.width(parseFloat(styleTd.match(matchReg)[1])); } }); var leftTableWidth = $('#'+formId).parents('.tableContainer').find('#leftTable').width()+1; leftTableWidth = leftTableWidth<22?listFormWidth*0.2:leftTableWidth; $('#'+formId).parents('.tableContainer').find("#leftTable").width(leftTableWidth); //右侧表格宽度更新 $('#'+formId).parents('.tableContainer').find('#contentTable').css('width','calc(100% - '+(parseInt(leftTableWidth)+4)+'px)'); var leftHeaderWidth = $('#'+formId).parents('.tableContainer').find("#left-datagrid-htable").length>0?$('#'+formId).parents('.tableContainer').find("#left-datagrid-htable").width():0; leftHeaderWidth = leftHeaderWidth<22?listFormWidth*0.2:leftHeaderWidth; $('.dlist').find(".contentTable #"+formId+" .datagrid-header").not(".left-datagrid-header-ajax,.left-datagrid-header,.left-datagrid-header-kz").width(listFormWidth - 6 -leftHeaderWidth); $('.dlist').find(".contentTable #"+formId+" .datagrid-body").not(".left-datagrid-body-ajax,.left-datagrid-body,.left-datagrid-body-kz").width(listFormWidth - 6 -leftHeaderWidth); var header=$('#'+formId).parents('.tableContainer').find('#left-datagrid-htable .datagrid-header-row>td'); var leftFirstTr = $('#'+formId).parents('.tableContainer').find('#left-datagrid-btable>tbody>tr:first-child'); header.each(function (i,v) { var styleTd = $(this).attr("style"); if(styleTd && styleTd.indexOf("display")>-1&&styleTd.match(widthDisplay)!=null&&(styleTd.match(widthDisplay)[1])=="non"){ return true; } if(styleTd && styleTd.indexOf("width")>-1){ var bodyTd = leftFirstTr.children('td:eq('+i+')'); bodyTd.width(parseFloat(styleTd.match(matchReg)[1])); } }); } updateMCustomScrollbar(formId,dx); }else{ $('#datagrid-htable'+(listType=='ajax'?formId:(listType=='kz'?'-kz':''))+' .datagrid-header-row>td').each(function (i,v) { var styleTd = $(this).attr("style"); if(styleTd && styleTd.indexOf("display")>-1&&styleTd.match(widthDisplay)!=null&&(styleTd.match(widthDisplay)[1])=="non"){ return true; } if(styleTd && styleTd.indexOf("width")>-1){ var bodyTd = firstTr.children('td:eq('+i+')'); bodyTd.width(parseFloat(styleTd.match(matchReg)[1])); } }); if($("#left-datagrid-htable"+(listType=='ajax'?formId:(listType=='kz'?'-kz':''))).length>0){ var leftTableWidth = $('#leftTable'+(listType=='ajax'?'-ajax'+formId:(listType=='kz'?'-kz':''))).width()+1; leftTableWidth = leftTableWidth<22?listFormWidth*0.2:leftTableWidth; $("#leftTable"+(listType=='ajax'?'-ajax'+formId:(listType=='kz'?'-kz':''))).width(leftTableWidth); //右侧表格宽度更新 $('#contentTable'+(listType=='ajax'?formId:(listType=='kz'?'-kz':''))).css('width','calc(100% - '+(parseInt(leftTableWidth)+4)+'px)'); var leftHeaderWidth = $("#left-datagrid-htable"+(listType=='ajax'?formId:'')).length>0?$("#left-datagrid-htable"+(listType=='ajax'?formId:'')).width():0; leftHeaderWidth = leftHeaderWidth<22?listFormWidth*0.2:leftHeaderWidth; $(".dlist #contentTable"+(listType=='ajax'?formId:'')+" .datagrid-header").not(".left-datagrid-header-ajax,.left-datagrid-header,.left-datagrid-header-kz").width(listFormWidth - 6 -leftHeaderWidth); $(".dlist #contentTable"+(listType=='ajax'?formId:'')+" .datagrid-body").not(".left-datagrid-body-ajax,.left-datagrid-body,.left-datagrid-body-kz").width(listFormWidth - 6 -leftHeaderWidth); var header=$('#left-datagrid-htable'+(listType=='ajax'?formId:(listType=='kz'?'-kz':''))+' .datagrid-header-row>td'); var leftFirstTr = $('#left-datagrid-btable'+(listType=='ajax'?'-ajax'+formId:(listType=='kz'?'-kz':''))+'>tbody>tr:first-child'); header.each(function (i,v) { var styleTd = $(this).attr("style"); if(styleTd && styleTd.indexOf("display")>-1&&styleTd.match(widthDisplay)!=null&&(styleTd.match(widthDisplay)[1])=="non"){ return true; } if(styleTd && styleTd.indexOf("width")>-1){ var bodyTd = leftFirstTr.children('td:eq('+i+')'); bodyTd.width(parseFloat(styleTd.match(matchReg)[1])); } }); } updateMCustomScrollbar(formId,dx); } /* var headTds=tableHeader.find('tr:first-child').children('td:visible'); var bodyTds=tableBody.find('tr:first-child').children('td:visible');*/ /* headTds.each(function(i,v){ var width=this.style.width; if($(this).is(':hidden')){ return true; } if(width.indexOf('px')==-1){ $(bodyTds[i]).css('width','auto'); return true; } $(bodyTds[i]).width($(this).outerWidth()); }); */ } function delTrim(str){ return str.replace(/(^\s*)|(\s*$)/g, ""); } function updateMCustomScrollbar(formId,dx){ var mc=$("#tableDiv"+formId).find('.mCSB_container'); if(dx<0){ mc.width(mc.children().outerWidth()+(dx)); }else{ if($("#tableDiv"+formId).parent().find('.datagrid-header') && mc.children().outerWidth() < $("#tableDiv"+formId).parent().find('.datagrid-header').outerWidth()){ mc.width($("#tableDiv"+formId).parent().find('.datagrid-header').outerWidth()); }else{ mc.width(mc.children().outerWidth()); } } mc.mCustomScrollbar('update'); } /** * 美化滚动条 * @param id 需要美化滚动条的div的id */ function _newScroll(id){ var brow = $.browser; if(brow.is!="msie"){ //非IE浏览器下美化 $("#" + id).mCustomScrollbar({ axis:"yx", theme:"minimal-dark", keyboard:{scrollAmount:40}, mouseWheel:{deltaFactor:40,preventDefault:true}, scrollInertia:80, autoExpandScrollbar:true,//鼠标移到滚动条的位置,滚动条的宽度变为原来的2倍 }); } } /**** * *关闭展开的下拉框 * by:hxh * date:2018-04-24 ***/ function _closeChosen(){ $(".chosen-container").each(function(i,item){ if($(item).attr("id") != null && $(item).attr("id") != "" && $(item).attr("id") != undefined){ var item_id = $(item).attr("id").replace("_chosen",""); $("#"+item_id).trigger('chosen:close.chosen'); } }); } /**** * *关闭弹出的自定义菜单--异步查询2.0 ***/ function _closeRMenu(id){ if($('.customized-rmenu-container').length>0){ selectedTr = null; } if(id){ if($('#'+id).length>0){ $('#'+id).css({"visibility": "hidden"}); } }else{ if($('.customized-rmenu-container').length>0){ $('.customized-rmenu-container').css({"visibility": "hidden"}); } } } //获取滚动条宽度 var barWidth; $(function(){ barWidth=(function () { var w1, w2, div = $("
"), innerDiv = div.children()[0]; $("body").append(div); w1 = innerDiv.offsetWidth; div.css("overflow", "scroll"); w2 = innerDiv.offsetWidth; if (w1 === w2) { w2 = div[0].clientWidth; } div.remove(); return w1 - w2; })(); //绑定查询列表的滚动条实践 $('.datagrid-body').css('overflow','auto').scroll(function(){ var datagridBodyscrollLeft=$(this).scrollLeft(); var inner=$(this).prev().children()[0]; inner.scrollLeft=datagridBodyscrollLeft; if(!window.ActiveXObject){ ajustP($(inner),$(this)); } }) }) //是否出现垂直滚动条 function hasScrollBar(bodyDiv){ return bodyDiv.children('table').length>0&&bodyDiv.find('table').outerHeight()>bodyDiv.outerHeight(); } function addEmptyDiv(bodyDiv){ if(hasScrollBar(bodyDiv)){ if(bodyDiv.prev().find('tr:first-child>.emptyDiv').length==0){ var h=bodyDiv.prev().find('tr:first-child').outerHeight(); bodyDiv.prev().find('tr:first-child').append('
') } }else{ bodyDiv.prev().find('tr:first-child>.emptyDiv').remove(); } } /** * 自定义表格拖拽后分页以及刷新,回设表格宽度 */ var prewNumColWidthDefTable = 0; function defTableWidthRewrite(formId){ var matchReg =/.*width\s*:\s*(\d*\.?\d*)px/; var widthDisplay =/.*display\s*:\s*(\S+)e/; var leftHeaderWidth = $("#left-datagrid-htable"+formId).length>0?$("#left-datagrid-htable"+formId).width():0; var listFormWidth = getListFormWidth(); var screenWidth = listFormWidth - 6 -leftHeaderWidth; var numColWidth = 0; var firstTr = $('#datagrid-btable-ajax'+formId+'>tbody>tr:first-child'); var numLength = $('#datagrid-btable-ajax'+formId+'>tbody').children("tr:last-child").find("td").eq(0).find("._noedit").text().length; if(numLength == 0){ numLength = $('#datagrid-btable-ajax'+formId+'>tbody').children("tr:last-child").find("td").eq(0).text().length; }; var obj = $("#datagrid-htable"+formId).find("td").eq(1); if(obj.find("input[type='checkbox']").length==0||obj.find("input[type='radio']").length==0){//没有复选框单选框和序号 numColWidth = (numLength-2)*6+35; //numColWidth = $("#datagrid-htable"+formId).find("td").eq(0).outerWidth(); }else{ //numColWidth = (numLength-2)*6+35; numColWidth = $("#datagrid-htable"+formId).find("td").eq(0).width(); } var thWidth=parseInt($("#datagrid-htable"+formId).find("td").eq(0).css('width')); $("#datagrid-htable"+formId).find("td").eq(0).css('width',numColWidth); //默认宽度为800时,横向不出现滚动条 if(listFormWidth===800){ if(thWidthtd'); var delWidth=(numColWidth-thWidth)/(headers.length-2); for(var i=2;i-1){ var curWidth=parseInt($("#datagrid-htable"+formId).find("td").eq(i).css('width'))-delWidth; $("#datagrid-htable"+formId).find("td").eq(i).css('width',curWidth); } } } } $('#datagrid-htable'+formId+' .datagrid-header-row>td').each(function (i,v) { var styleTd = $(this).attr("style"); if(styleTd && styleTd.indexOf("display")>-1&&styleTd.match(widthDisplay)!=null&&(styleTd.match(widthDisplay)[1])=="non"){ return true; } if(styleTd && styleTd.indexOf("width")>-1){ var bodyTd = firstTr.children('td:eq('+i+')'); bodyTd.width(parseFloat(styleTd.match(matchReg)[1])); } }); $('#datagrid-btable-ajax'+formId).addClass("isDefTable"); updateMCustomScrollbar(formId,(numColWidth-prewNumColWidthDefTable)) prewNumColWidthDefTable = numColWidth; } /** * 表格未定义宽度的,给一个初始宽度。 */ function setPlatformTableWidth(formId,widthDisplay,header,body){ var arrNoWidth = []; header.each(function (i,v) { var styleTd = $(this).attr("style"); if(styleTd && styleTd.indexOf("display")>-1&&styleTd.match(widthDisplay)!=null&&styleTd.match(widthDisplay)=="non"){ return true; } if(typeof(styleTd) == "undefined" || styleTd.indexOf("width")<0){ arrNoWidth.push(i); $(this).width(350); } }); body.each(function (i,v) { if(i==arrNoWidth[i]){ $(this).width(350); } }); } /** * 获取表格容器form的宽度 */ function getListFormWidth(){ var matchReg =/.*width\s*:\s*(\d*\.?\d*)px/; var matchPercentReg =/.*width\s*:\s*(\d*\.?\d*)%/; var listFormWidth = $('#listForm').width(); var styleListForm = $('#listForm').attr('style'); if(listFormWidth<=0){ if(styleListForm && styleListForm.indexOf("width")>-1){ var width = styleListForm.match(matchReg)[1]; var widthPercent = styleListForm.match(matchPercentReg)[1]; if(width && width>0){ listFormWidth = width; }else if(widthPercent && widthPercent>0){ listFormWidth = widthPercent*$(window).width(); } } } return listFormWidth<=0?$(window).width():listFormWidth; } /** * 左侧固定区域拖拉表头调整列宽 */ function _addDragFixedTableEvent(formId,listType) { var matchReg =/.*width\s*:\s*(\d*\.?\d*)px/; var widthDisplay =/.*display\s*:\s*(\S+)e/; var listFormWidth = getListFormWidth(); var leftHeaderWidth = $("#left-datagrid-htable"+(listType=='ajax'?formId:(listType=='kz'?'-kz':''))).length>0?$("#left-datagrid-htable"+(listType=='ajax'?formId:(listType=='kz'?'-kz':''))).width():0; leftHeaderWidth = leftHeaderWidth>0?leftHeaderWidth:listFormWidth*0.2; if(listType == 'syn'){ if($('#'+formId).parents('.tableContainer').find("#left-datagrid-htable").length>0){ leftHeaderWidth = leftHeaderWidth>0?leftHeaderWidth:listFormWidth*0.2; }else{ leftHeaderWidth = 0; } }else{ if($("#left-datagrid-htable"+(listType=='ajax'?formId:(listType=='kz'?'-kz':''))).length>0){ leftHeaderWidth = leftHeaderWidth>0?leftHeaderWidth:listFormWidth*0.2; }else{ leftHeaderWidth = 0; } } var screenWidth = leftHeaderWidth; var allTdWidth = 60; if(listType=='ajax'){ if($('#selectAll_'+formId).length == 0){ allTdWidth = 30; } } var colNum = 0; var tdNoWidthNum = 0; var tdNoWidth = false; var originalTd = true; var header=$('#left-datagrid-htable'+(listType=='ajax'?formId:(listType=='kz'?'-kz':''))+' .datagrid-header-row>td'); var body=$('#left-datagrid-btable'+(listType=='ajax'?'-ajax'+formId:(listType=='kz'?'-kz':''))+'>tbody>tr:first-child'); //setPlatformTableWidth(formId,widthDisplay,header,body); if(listType == 'syn'){ header=$('#'+formId).parents('.tableContainer').find('#left-datagrid-htable .datagrid-header-row>td'); body=$('#'+formId).parents('.tableContainer').find('#left-datagrid-btable>tbody>tr:first-child'); } var fixedIndex = 1; if(listType=='ajax'){ if($('#selectAll_'+formId).length == 0){ fixedIndex = 0; } } header.each(function (i,v) { var styleTd = $(this).attr("style"); if(styleTd && styleTd.indexOf("display")>-1&&styleTd.match(widthDisplay)!=null&&(styleTd.match(widthDisplay)[1])=="non"){ return true; } if(i>fixedIndex){ tdNoWidthNum++; } if(styleTd && styleTd.indexOf("width")>-1 && i>fixedIndex){ allTdWidth+=parseFloat(styleTd.match(matchReg)[1]); colNum++; } if(typeof(styleTd) == "undefined" || styleTd.indexOf("width")<0){ tdNoWidth = true; } var icon = $(''); if($(this).find('i.datagrid-header-drag-icon').length==0){ $(this).append(icon); } if(!window.ActiveXObject){ $(this).css('overflow','hidden'); } }); var fixedWidth = listType=='ajax'?($('#selectAll_'+formId).length>0?60:30):60; if(screenWidth>allTdWidth && allTdWidth>fixedWidth){ var remainder = (screenWidth - allTdWidth -1)%colNum; var cloAddWidth = (screenWidth - allTdWidth - 1 +remainder)/colNum; header.each(function (i,v) { var styleTd = $(this).attr("style"); if(styleTd &&styleTd.indexOf("width")>-1 && i>fixedIndex){ $(this).width(parseFloat(styleTd.match(matchReg)[1])+cloAddWidth); } }); body.each(function (i,v) { var firstTr = $(this).find('tr:first-child'); var styleTd = $(this).attr("style"); if(styleTd && styleTd.indexOf("width")>-1 && i>fixedIndex){ $(this).width(parseFloat(styleTd.match(matchReg)[1])+cloAddWidth); } }); } if(tdNoWidth){// 刚生成的表格没有宽度,设置宽度,不然拖拽最后一列会消失 header.each(function (i,v) { var styleTd = $(this).attr("style"); if(styleTd && styleTd.indexOf("display")>-1&&styleTd.match(widthDisplay)!=null&&(styleTd.match(widthDisplay)[1])=="non"){ return true; } if(i>fixedIndex){ $(this).width((screenWidth-fixedWidth -1)/tdNoWidthNum); } }); body.each(function (i,v) { var styleTd = $(this).attr("style"); if(styleTd && styleTd.indexOf("display")>-1&&styleTd.match(widthDisplay)!=null&&(styleTd.match(widthDisplay)[1])=="non"){ return true; } if(i>fixedIndex){ $(this).width((screenWidth-fixedWidth -1)/tdNoWidthNum); } }); } var icon = '#left-datagrid-htable'+(listType=='ajax'?formId:(listType=='kz'?'-kz':''))+' .datagrid-header-row>td>i.datagrid-header-drag-icon'; if(listType == 'syn'){ icon = '#'+formId+' #left-datagrid-htable .datagrid-header-row>td>i.datagrid-header-drag-icon'; } //先解绑,防止重复监听 $(document).off('mousedown', icon); $(document).on('mousedown', icon, function (e) { var type = "",text=""; if(listType=='ajax'){ if($('#datagrid-btable-ajax'+formId).hasClass("isDefTable")){ text = $(this).parent().text(); type = $(this).prev().prop("type"); }else{ text = $(this).prev("span").text(); type = $(this).prev("span").children().prop("type"); } }else if(listType=='syn'){ if($('#'+formId).parents('.tableContainer').find('#datagrid-btable').hasClass("isDefTable")){ text = $(this).parent().text(); type = $(this).prev().prop("type"); }else{ text = $(this).parent().text(); type = $(this).prev().prop("type"); } }else if(listType=='kz'){ if($('#datagrid-btable-kz').hasClass("isDefTable")){ text = $(this).parent().text(); type = $(this).prev().prop("type"); }else{ text = $(this).parent().text(); type = $(this).prev().prop("type"); } } if(type=="checkbox"||text==""){ return; } var that = $(this).addClass('datagrid-header-drag-iconShow'); var cursorX = parseInt(that.css('right'), 10); var td = that.parent().css('overflow', 'visible'); var startW = td.outerWidth(); var starX = e.pageX; var tableBody=that.parents('.datagrid-header').next(); var lastTd = that.parent().parent().children(':last').is(':visible')?that.parent().parent().children(':last').prev():that.parent().parent().children(':last').prev().prev(); var firstTr = tableBody.find('tr:first-child'); var bodyTd = firstTr.children('td:eq(' + td.index() + ')'); var bodyLastTd = firstTr.children('td:eq('+lastTd.index()+')'); that.children().height(that.parents('.datagrid-header').parent().outerHeight()); td.css({ cursor: 'col-resize', overflow: 'visible' }); $('body').css('cursor', 'col-resize'); if($('#selectAll_'+formId).length == 0){ var index = -1; header.each(function (i,v) { if($(this).parent().length==0){//判断选择框列是否已被删除 index = i; return false; } }) if(index>-1){ header.splice(index,1); } } //初次加载tbody-td没有宽度,防止初次拖拉表头宽度失控 header.each(function (i,v) { var matchReg =/.*width\s*:\s*(\d*\.?\d*)px/; var widthDisplay =/.*display\s*:\s*(\S+)e/; var styleTd = $(this).attr("style"); if(styleTd && styleTd.indexOf("display")>-1&&styleTd.match(widthDisplay)!=null&&(styleTd.match(widthDisplay)[1])=="non"){ return true; } if($(this).parent().length==0){//判断选择框列是否已被删除 return true; } if(styleTd && styleTd.indexOf("width")>-1){ var bodyTdFirst = firstTr.children('td:eq('+i+')'); bodyTdFirst.width(parseFloat(styleTd.match(matchReg)[1])); } }); function mousemove(e) { window.getSelection ? window.getSelection().removeAllRanges() : document.selection.empty(); var disX = e.pageX - starX; that.css('right', cursorX - disX); } function mouseup(e) { var disX = e.pageX - starX; var width = startW + disX; td.css({ cursor: 'default' }); if(!window.ActiveXObject){ td.css('overflow','hidden'); } that.css('right', 0).removeClass('datagrid-header-drag-iconShow'); $('body').css('cursor', 'auto'); $(document).off('mousemove', mousemove).off('mouseup', mouseup); if(disX==0)return; width = Math.max(width, 20); disX = width-startW; td.width(width); bodyTd.width(width); var lastWidth=Math.max(lastTd.width() - (width - startW),20); var listFormWidth = getListFormWidth(); if(listType == 'syn'){ //左侧表格宽度更新 var leftTableWidth = $('#'+formId).parents('.tableContainer').find('#leftTable').width()+disX+1; $('#'+formId).parents('.tableContainer').find('#leftTable').width(leftTableWidth); //右侧表格宽度更新 $('#'+formId).parents('.tableContainer').find('#contentTable').css('width','calc(100% - '+(leftTableWidth+2)+'px)'); var leftHeaderWidth = $('#'+formId).parents('.tableContainer').find("#left-datagrid-htable").length>0?$('#'+formId).parents('.tableContainer').find("#left-datagrid-htable").width():0; //$(".dlist .contentTable #"+formId+" .datagrid-header").not(".left-datagrid-header-ajax,.left-datagrid-header,.left-datagrid-header-kz").width(listFormWidth - 6 -leftHeaderWidth); //$(".dlist .contentTable #"+formId+" .datagrid-body").not(".left-datagrid-body-ajax,.,.left-datagrid-body-kz").width(listFormWidth - 6 -leftHeaderWidth); $('#'+formId).parents('.tableContainer').find('#contentTable .datagrid-header').not(".left-datagrid-header-ajax,.left-datagrid-header,.left-datagrid-header-kz").width(listFormWidth - 6 -leftHeaderWidth); $('#'+formId).parents('.tableContainer').find('#contentTable .datagrid-body').not(".left-datagrid-body-ajax,.left-datagrid-body,.left-datagrid-body-kz").width(listFormWidth - 6 -leftHeaderWidth); //滚动条更新 $('#'+formId).parents('.tableContainer').find('#contentTable').find('mCustomScrollbar').mCustomScrollbar('update'); }else{ //左侧表格宽度更新 var leftTableWidth = $('#leftTable'+(listType=='ajax'?'-ajax'+formId:(listType=='kz'?'-kz':''))).width()+disX+1; $('#leftTable'+(listType=='ajax'?'-ajax'+formId:(listType=='kz'?'-kz':''))).width(leftTableWidth); //右侧表格宽度更新 $('#contentTable'+(listType=='ajax'?formId:(listType=='kz'?'-kz':''))).css('width','calc(100% - '+(leftTableWidth+2)+'px)'); var leftHeaderWidth = $("#left-datagrid-htable"+(listType=='ajax'?formId:(listType=='kz'?'-kz':''))).length>0?$("#left-datagrid-htable"+(listType=='ajax'?formId:(listType=='kz'?'-kz':''))).width():0; $(".dlist #contentTable"+(listType=='ajax'?formId:(listType=='kz'?'-kz':''))+" .datagrid-header").not(".left-datagrid-header-ajax,.left-datagrid-header,.left-datagrid-header-kz").width(listFormWidth - 6 -leftHeaderWidth); $(".dlist #contentTable"+(listType=='ajax'?formId:(listType=='kz'?'-kz':''))+" .datagrid-body").not(".left-datagrid-body-ajax,.left-datagrid-body,.left-datagrid-body-kz").width(listFormWidth - 6 -leftHeaderWidth); //滚动条更新 $('#contentTable'+(listType=='ajax'?formId:(listType=='kz'?'-kz':''))).find('mCustomScrollbar').mCustomScrollbar('update'); } } $(document).on('mousemove', mousemove).on('mouseup', mouseup); }); } /** * 拖拉表头调整列宽 */ function _addDragTableEvent(formId,listType) { var matchReg =/.*width\s*:\s*(\d*\.?\d*)px/; var widthDisplay =/.*display\s*:\s*(\S+)e/; var leftHeaderWidth = $("#left-datagrid-htable"+(listType=='ajax'?formId:(listType=='kz'?'-kz':''))).length>0?$("#left-datagrid-htable"+(listType=='ajax'?formId:(listType=='kz'?'-kz':''))).width():0; var listFormWidth = getListFormWidth(); if(listType == 'syn'){ if($('#'+formId).find("#left-datagrid-htable").length>0){ leftHeaderWidth = listFormWidth*0.2; }else{ leftHeaderWidth = 0; } }else{ if($("#left-datagrid-htable"+(listType=='ajax'?formId:(listType=='kz'?'-kz':''))).length>0){ leftHeaderWidth = listFormWidth*0.2; }else{ leftHeaderWidth = 0; } } var screenWidth = listFormWidth - 6 -leftHeaderWidth; var allTdWidth = 60; if(listType=='ajax'){ if($('#selectAll_'+formId).length == 0){ allTdWidth = 30; } } var colNum = 0; var tdNoWidthNum = 0; var tdNoWidth = false; var originalTd = true; var header=$('#datagrid-htable'+(listType=='ajax'?formId:(listType=='kz'?'-kz':''))+' .datagrid-header-row>td'); var body=$('#datagrid-btable'+(listType=='ajax'?'-ajax'+formId:(listType=='kz'?'-kz':''))+'>tbody>tr:first-child'); if(listType == 'syn'){ if($('#'+formId).parent().hasClass('leftTable')){ header=$('#'+formId).parents('.tableContainer').find('#datagrid-htable .datagrid-header-row>td'); body=$('#'+formId).parents('.tableContainer').find('#datagrid-btable>tbody>tr:first-child>td'); }else{ header=$('#'+formId).find('#datagrid-htable .datagrid-header-row>td'); body=$('#'+formId).find('#datagrid-btable>tbody>tr:first-child>td'); } }else{ header=$('#datagrid-htable'+(listType=='ajax'?formId:(listType=='kz'?'-kz':''))+' .datagrid-header-row>td'); body=$('#datagrid-btable'+(listType=='ajax'?'-ajax'+formId:(listType=='kz'?'-kz':''))+'>tbody>tr:first-child'); } setPlatformTableWidth(formId,widthDisplay,header,body); var fixedIndex = 1; if(listType=='ajax'){ if($('#selectAll_'+formId).length == 0){ fixedIndex = 0; } } if(listType=='syn'){ body.each(function (i,v) { var firstTr = $(this).find('tr:first-child'); var styleTd = $(this).attr("style"); if(styleTd && styleTd.indexOf("width")>-1 && i>1){ $(this).width(parseFloat(styleTd.match(matchReg)[1])); } }); } header.each(function (i,v) { var styleTd = $(this).attr("style"); if(styleTd && styleTd.indexOf("display")>-1&&styleTd.match(widthDisplay)!=null&&(styleTd.match(widthDisplay)[1])=="non"){ return true; } if(listType == 'syn'){ if($('#'+formId).find("#left-datagrid-htable").length>0){ tdNoWidthNum++; }else{ if(i>fixedIndex){ tdNoWidthNum++; } } if($('#'+formId).find(".left-datagrid-htable").length>0 && styleTd && styleTd.indexOf("width")>-1){ allTdWidth+=parseFloat(styleTd.match(matchReg)[1]); colNum++; }else if(styleTd && styleTd.indexOf("width")>-1 && i>fixedIndex){ allTdWidth+=parseFloat(styleTd.match(matchReg)[1]); colNum++; } }else{ if($("#left-datagrid-htable"+(listType=='ajax'?formId:(listType=='kz'?'-kz':''))).length>0){ tdNoWidthNum++; }else{ if(i>fixedIndex){ tdNoWidthNum++; } } if($("#left-datagrid-htable"+(listType=='ajax'?formId:(listType=='kz'?'-kz':''))).length>0 && styleTd && styleTd.indexOf("width")>-1){ allTdWidth+=parseFloat(styleTd.match(matchReg)[1]); colNum++; }else if(styleTd && styleTd.indexOf("width")>-1 && i>fixedIndex){ allTdWidth+=parseFloat(styleTd.match(matchReg)[1]); colNum++; } } if(typeof(styleTd) == "undefined" || styleTd.indexOf("width")<0){ tdNoWidth = true; } var icon = $(''); if($(this).find('i.datagrid-header-drag-icon').length==0){ $(this).append(icon); } if(!window.ActiveXObject){ $(this).css('overflow','hidden'); } }); var fixedWidth = listType=='ajax'?($('#selectAll_'+formId).length>0?60:30):60; if(screenWidth>allTdWidth && allTdWidth>fixedWidth){ var remainder = (screenWidth - allTdWidth)%colNum; var cloAddWidth = (screenWidth - allTdWidth+remainder)/colNum; header.each(function (i,v) { var styleTd = $(this).attr("style"); if(styleTd &&styleTd.indexOf("width")>-1 && (!(styleTd.match(widthDisplay)!=null&&(styleTd.match(widthDisplay)[1])=="non")) && i>fixedIndex){ $(this).width(parseFloat(styleTd.match(matchReg)[1])+cloAddWidth); } }); body.each(function (i,v) { var firstTr = $(this).find('tr:first-child'); var styleTd = $(this).attr("style"); if(styleTd && styleTd.indexOf("width")>-1&&(!(styleTd.match(widthDisplay)!=null&&(styleTd.match(widthDisplay)[1])=="non")) && i>fixedIndex){ $(this).width(parseFloat(styleTd.match(matchReg)[1])+cloAddWidth); } }); } if(tdNoWidth){// 刚生成的表格没有宽度,设置宽度,不然拖拽最后一列会消失 header.each(function (i,v) { var styleTd = $(this).attr("style"); if(styleTd && styleTd.indexOf("display")>-1&&styleTd.match(widthDisplay)!=null&&(styleTd.match(widthDisplay)[1])=="non"){ return true; } if(i>fixedIndex){ $(this).width(screenWidth/tdNoWidthNum); } }); body.each(function (i,v) { var styleTd = $(this).attr("style"); if(styleTd && styleTd.indexOf("display")>-1&&styleTd.match(widthDisplay)!=null&&(styleTd.match(widthDisplay)[1])=="non"){ return true; } if(i>fixedIndex){ $(this).width(screenWidth/tdNoWidthNum); } }); } var icon = '#datagrid-htable'+(listType=='ajax'?formId:(listType=='kz'?'-kz':''))+' .datagrid-header-row>td>i.datagrid-header-drag-icon'; if(listType == 'syn'){ icon = '#'+formId+' #datagrid-htable .datagrid-header-row>td>i.datagrid-header-drag-icon'; } //先解绑,防止重复监听 $(document).off('mousedown', icon); $(document).on('mousedown', icon, function (e) { var type = "",text=""; if(listType=='ajax'){ if($('#datagrid-btable-ajax'+formId).hasClass("isDefTable")){ text = $(this).parent().text(); type = $(this).prev().prop("type"); }else{ text = $(this).prev("span").text(); type = $(this).prev("span").children().prop("type"); } }else if(listType=='syn'){ if($('#'+formId).parents('.tableContainer').find('#datagrid-btable').hasClass("isDefTable")){ text = $(this).parent().text(); type = $(this).prev().prop("type"); }else{ text = $(this).parent().text(); type = $(this).prev().prop("type"); } }else if(listType=='kz'){ if($('#datagrid-btable-kz').hasClass("isDefTable")){ text = $(this).parent().text(); type = $(this).prev().prop("type"); }else{ text = $(this).parent().text(); type = $(this).prev().prop("type"); } } if(type=="checkbox"||text==""){ return; } var that = $(this).addClass('datagrid-header-drag-iconShow'); var cursorX = parseInt(that.css('right'), 10); var td = that.parent().css('overflow', 'visible'); var startW = td.outerWidth(); var starX = e.pageX; var tableBody=that.parents('.datagrid-header').next(); var lastTd = that.parent().parent().children(':last').is(':visible')?that.parent().parent().children(':last').prev():that.parent().parent().children(':last').prev().prev(); var firstTr = tableBody.find('tr:first-child'); var bodyTd = firstTr.children('td:eq(' + td.index() + ')'); var bodyLastTd = firstTr.children('td:eq('+lastTd.index()+')'); that.children().height(that.parents('.datagrid-header').parent().outerHeight()); td.css({ cursor: 'col-resize', overflow: 'visible' }); $('body').css('cursor', 'col-resize'); function mousemove(e) { window.getSelection ? window.getSelection().removeAllRanges() : document.selection.empty(); var disX = e.pageX - starX; that.css('right', cursorX - disX); } function mouseup(e) { var disX = e.pageX - starX; var width = startW + disX; td.css({ cursor: 'default' }); if(!window.ActiveXObject){ td.css('overflow','hidden'); } that.css('right', 0).removeClass('datagrid-header-drag-iconShow'); $('body').css('cursor', 'auto'); $(document).off('mousemove', mousemove).off('mouseup', mouseup); if(disX==0)return; width = Math.max(width, 20); td.width(width); bodyTd.width(width); if(!window.ActiveXObject){ //ajustP(that.parents('.datagrid-header-inner'),tableBody); } /*if (lastTd.index() == td.index()) { return; }*/ var lastWidth=Math.max(lastTd.width() - (width - startW),20); if (lastTd.index() != td.index()) { //lastTd.width(lastWidth); } // _bodyToHeader(tableBody); // addEmptyDiv(tableBody); if(lastTd.outerWidth==0){ //lastTd.css('width','auto'); //bodyLastTd.css('width','auto'); } // $(window).resize(); var mc=tableBody.find('.mCSB_container'); if(disX<0){ mc.width(mc.children().outerWidth()+(disX)); }else{ mc.width(mc.children().outerWidth()); } tableBody.mCustomScrollbar('update'); } $(document).on('mousemove', mousemove).on('mouseup', mouseup); }); //对左侧固定表格进行 表头可拖动改变列宽 监听 if(listType == 'ajax'){ if($("#left-datagrid-htable"+formId).length>0){ _addDragFixedTableEvent(formId,listType); } }else if(listType == 'syn'){ if($('#'+formId).parents('.tableContainer').find("#left-datagrid-htable").length>0){ _addDragFixedTableEvent(formId,listType); } }else{ if($("#left-datagrid-htable-kz").length>0){ _addDragFixedTableEvent(formId,listType); } } } function getListType(formId){ var listType='ajax'; if(formId){ if($('#datagrid-htable'+formId).length>0){ listType='ajax'; }else if($('#datagrid-htable-kz').length>0){ listType='kz'; }else if($('#'+formId).find('.datagrid-htable').length>0){ listType='syn'; } }else{ if($('.datagrid-view-ajax').length>0){ listType='ajax'; }else if($('.datagrid-view-kz').length>0){ listType='kz'; }else if($('.datagrid-view').length>0){ listType='syn'; } } return listType; } function resetLeftTableTopPos(){ $('input[name="formId"]').each(function(){ var formId = $(this).val(); var listType=getListType(formId); if(listType == 'syn'){ if($('#'+formId).parents('.tableContainer').find("#left-datagrid-htable").length>0){//异步列表 var top = 0; if($('.contentTable #'+formId+' #datagrid-btable').parent().hasClass('mCSB_container')){ top = $('.contentTable').find('#'+formId+' #datagrid-btable').parent().position().top?$('.contentTable').find('#'+formId+' #datagrid-btable').parent().position().top:0; } $(".tableContainer").find("#"+formId +' #left-datagrid-btable').css('margin-top',top); } }else{ if($("#leftTableDiv"+formId).length>0){//异步列表 var top = 0; if($('#datagrid-btable-ajax'+formId).parent().hasClass('mCSB_container')){ top = $('#datagrid-btable-ajax'+formId).parent().position().top?$('#datagrid-btable-ajax'+formId).parent().position().top:0; } $("#leftTableDiv"+formId).find('table').css('margin-top',top); } } }) } function initFixedTableSizeOnActive(){ $('input[name="formId"]').each(function(){ var formId = $(this).val(); var listType=getListType(formId); var matchReg =/.*width\s*:\s*(\d*\.?\d*)px/; var widthDisplay =/.*display\s*:\s*(\S+)e/; var leftHeaderWidth = $("#left-datagrid-htable"+(listType=='ajax'?formId:(listType=='kz'?'-kz':''))).length>0?$("#left-datagrid-htable"+(listType=='ajax'?formId:(listType=='kz'?'-kz':''))).width():0; var styleHeader = $("#leftTable"+(listType=='ajax'?'-ajax'+formId:(listType=='kz'?'-kz':''))).attr("style"); if(listType=='syn'){ leftHeaderWidth = $('#'+formId).parents('.tableContainer').find("#left-datagrid-htable").length>0?$('#'+formId).parents('.tableContainer').find("#left-datagrid-htable").width():0; styleHeader = $('#'+formId).parents('.tableContainer').find("#leftTable").attr("style"); } //判断左侧固定头部是否已有宽度(是否初次加载) var listFormWidth = getListFormWidth(); if(leftHeaderWidth<20){ if(styleHeader && styleHeader.indexOf("display")>-1&&styleHeader.indexOf("width")>-1){ leftHeaderWidth = styleHeader.match(matchReg)[1]; }else{ leftHeaderWidth = listFormWidth*0.2; } }else{ if(styleHeader && styleHeader.indexOf("display")>-1&&styleHeader.indexOf("width")>-1){ var parentWidth = styleHeader.match(matchReg)[1]; if(parentWidth>0){ leftHeaderWidth = parentWidth; }else{ leftHeaderWidth = listFormWidth*0.2; } } } //左侧固定列表格与右侧表格高度调整 leftHeaderWidth = leftHeaderWidth>20?leftHeaderWidth:listFormWidth*0.2; //$("#leftTable"+(listType=='ajax'?'-ajax'+formId:(listType=='kz'?'-kz':''))).width(leftHeaderWidth); //$('#contentTable'+(listType=='ajax'?formId:(listType=='kz'?'-kz':''))).css('width','calc(100% - '+(parseInt(leftHeaderWidth)+4)+'px)'); if(listType == 'syn'){ $('#'+formId).parents('.tableContainer').find("#leftTable").width(leftHeaderWidth); $('#'+formId).parents('.tableContainer').find('#contentTable').css('width','calc(100% - '+(parseInt(leftHeaderWidth)+4)+'px)'); }else{ $("#leftTable"+(listType=='ajax'?'-ajax'+formId:(listType=='kz'?'-kz':''))).width(leftHeaderWidth); $('#contentTable'+(listType=='ajax'?formId:(listType=='kz'?'-kz':''))).css('width','calc(100% - '+(parseInt(leftHeaderWidth)+4)+'px)'); } //左侧固定列表格与右侧表格行高度调整 if(listType == 'ajax'){ if($("#left-datagrid-htable"+formId).length>0){ initTdHeight('#left-datagrid-btable-ajax'+formId,'#datagrid-btable-ajax'+formId); } }else if(listType == 'syn'){ if($('#'+formId).parents('.tableContainer').find("#left-datagrid-htable").length>0){ initTdHeight('.tableContainer #'+formId+' #left-datagrid-btable',$('.tableContainer #contentTable').find('#'+formId+' #datagrid-btable')); } }else{ if($("#left-datagrid-htable-kz").length>0){ initTdHeight('#left-datagrid-btable-kz','#datagrid-btable-kz'); } } _addDragTableEvent(formId,listType); setNumColWidth(formId); }) } var isFirstActive = true; function tabActived(){//标签页被激活时调用,用于快速打开标签页时,调整页面异常样式--任务4765 cqe resetLeftTableTopPos(); if(!isFirstActive){//只执行一次 return; } if(isFirstActive){ isFirstActive = false; } //刷新echarts图表大小 $('div').each(function(i,v){ if(typeof($(this).attr("_echarts_instance_"))!="undefined"){ echarts. getInstanceByDom(this).resize(); } }) //异步2.0,同步卡片,异步卡片判断搜索区域更多按钮是否显示 if(typeof ifMoreShow=='function'){ ifMoreShow(); } //调整有左侧固定列表格宽度,以及左侧固定列表格与右侧表格行高度调整 initFixedTableSizeOnActive(); initTableHight();//表格高度设置 initAjaxTableHight();//异步表格高度设置 initListTableHight();//同步表格高度设置 //异步2.0,异步卡片表格高度调整 if(typeof resetHeight=='function'){ resetHeight(); } //同步卡片表格高度调整 if(typeof setContHeight=='function'){ setContHeight(); } } $(function(){ wHeight = $(window).height(); var formIds = []; $("input[name='formId']").each(function (i,v) { var formId = $(this).val(); if($('#datagrid-htable'+formId).length>0){ _addDragTableEvent(formId,'ajax'); } if($('#datagrid-htable-kz').length>0){ var $tbody = $("#datagrid-body-kz").find('tbody'); if($("#left-datagrid-btable-kz").length > 0){ $tbody = $("#left-datagrid-btable-kz").find('tbody'); } var numLength = $tbody.children("tr:last-child").find("td").eq(0).find("._noedit").text().length; var numColWidth = (numLength-2)*6+30; prewNumColWidth = numColWidth; //设置左侧固定列选择框样式居中 if($('#left-datagrid-title-kz').length>0){ $('#left-datagrid-title-kz').find('td').eq(0).width(prewNumColWidth); $('#left-datagrid-title-kz').find('td').eq(1).width(30); }else{ $('#datagrid-title-kz').find('td').eq(0).width(prewNumColWidth); $('#datagrid-title-kz').find('td').eq(1).width(30); } if($('.left-datagrid-btable-kz').length>0){ $('.left-datagrid-btable-kz tr').each(function(i,v){ $(this).find('td').eq(0).width(prewNumColWidth); $(this).find('td').eq(1).width(30); $(this).find('td').css('text-align','center'); }) }else{ $('.datagrid-btable-kz tr').each(function(i,v){ $(this).find('td').eq(0).width(prewNumColWidth); $(this).find('td').eq(1).width(30); $(this).find('td').css('text-align','center'); }) } _addDragTableEvent(formId,'kz'); _bodyToHeader($tbody.parents('.datagrid-body'),numColWidth,formId,$tbody,(numColWidth-prewNumColWidth),'kz'); formIds.push(formId); _isFirstSetScroll = 0; setScroll(formId); } if($('#datagrid-htable').length>0){ //if($.inArray(formId,formIds)<0){ _addDragTableEvent(formId,'syn'); formIds.push(formId); _isFirstSetScroll = 0; setScroll(formId); var $tbody = $('#'+formId).find(".datagrid-body tbody"); //var $tbody = $("#datagrid-body").find('tbody'); var numLength = $tbody.children("tr:last-child").find("td").eq(0).find("._noedit").text().length; var numColWidth = (numLength-2)*6+30; _bodyToHeader($tbody.parents('.datagrid-body'),numColWidth,formId,$tbody,(numColWidth-prewNumColWidth),'syn'); prewNumColWidth = numColWidth; //} } }); })