var execRowspan = function(fieldName,index,flag){
// 1为不冻结的情况,左侧列为冻结的情况
var fixedNode;
fixedNode = index=="1"?$(".layui-table-body")[index - 1]:(index=="3"?$(".layui-table-fixed-r"):$(".layui-table-fixed-l"));
// 左侧导航栏不冻结的情况
var child = $(fixedNode).find("td");
var childFilterArr = [];
// 获取data-field属性为fieldName的td
for(var i = 0; i
if(child[i].getAttribute("data-field") == fieldName){
childFilterArr.push(child[i]);
}
}
// 获取td的个数和种类
var childFilterTextObj = {};
for(var i = 0; i
//var childText = flag?childFilterArr[i].innerHTML:childFilterArr[i].textContent;
var childText = childFilterArr[i].innerText;
//console.log(childText);
if(childFilterTextObj[childText] == undefined){
childFilterTextObj[childText] = 1;
}else{
var num = childFilterTextObj[childText];
childFilterTextObj[childText] = num*1 + 1;
}
}
var canRowspan = true;
var maxNum;//以前列单元格为基础获取的最大合并数
var finalNextIndex;//获取其下第一个不合并单元格的index
var finalNextKey;//获取其下第一个不合并单元格的值
for(var i = 0; i
(maxNum>9000||!maxNum)&&(maxNum = $(childFilterArr[i]).prev().attr("rowspan")&&fieldName!="8"?$(childFilterArr[i]).prev().attr("rowspan"):9999);
//var key = flag?childFilterArr[i].innerHTML:childFilterArr[i].textContent;//获取下一个单元格的值
var key = childFilterArr[i].innerText;//获取下一个单元格的值
var nextIndex = i+1;
var tdNum = childFilterTextObj[key];
var curNum = maxNum
if(canRowspan){
for(var j =1;j<=curNum&&(i+j
//finalNextKey = flag?childFilterArr[i+j].innerHTML:childFilterArr[i+j].textContent;
finalNextKey = childFilterArr[i+j].innerText;
finalNextIndex = i+j;
if((key!=finalNextKey&&curNum>1)||maxNum == j){
canRowspan = true;
curNum = j;
break;
}
j++;
if((i+j)==childFilterArr.length){
finalNextKey=undefined;
finalNextIndex=i+j;
break;
}
}
childFilterArr[i].setAttribute("rowspan",curNum);
if($(childFilterArr[i]).find("div.rowspan").length>0){//设置td内的div.rowspan高度适应合并后的高度
$(childFilterArr[i]).find("div.rowspan").parent("div.layui-table-cell").addClass("rowspanParent");
$(childFilterArr[i]).find("div.layui-table-cell")[0].style.height= curNum*38-10 +"px";
}
canRowspan = false;
}else{
childFilterArr[i].style.display = "none";
}
if(--childFilterTextObj[key]==0|--maxNum==0|--curNum==0|(finalNextKey!=undefined&&nextIndex==finalNextIndex)){//||(finalNextKey!=undefined&&key!=finalNextKey)
canRowspan = true;
}
}
}
//合并数据表格行
var layuiRowspan = function(fieldNameTmp,index,flag){
var fieldName = [];
if(typeof fieldNameTmp == "string"){
fieldName.push(fieldNameTmp);
}else{
fieldName = fieldName.concat(fieldNameTmp);
}
for(var i = 0;i
execRowspan(fieldName[i],index,flag);
}
}
function createExportDomFun(id){
var header_tr = $('#'+id+'').next().find(".layui-table-header").find("tr");
var body_tr = $('#'+id+'').next().find(".layui-table-body").find("tr");
var header_html = "";
var body_html = "";
// 获取表头html,包括单元格的合并
$.each(header_tr,function (i,tr) {
var header_th = $(tr).find("th");
header_html += "
";$.each(header_th,function (j,th) {
var rowspan_num = $(th).attr("rowspan");// 行合并数
var colspan_num = $(th).attr("colspan");// 列合并数
if (rowspan_num && !colspan_num){// 只有行合并时
header_html += '
';} else if (colspan_num && !rowspan_num){// 只有列合并时
header_html += '
';} else if (rowspan_num && colspan_num){// 行列合并均有时
header_html += '
';} else {// 没有发生单元格合并
header_html += '
';}
header_html += $(th).children().children().text() + '
';// 获取表头名称并拼接th标签})
header_html += '
';})
// 获取表格body数据
$.each(body_tr,function (i,tr) {
var body_td = $(tr).find("td");
body_html += '
';$.each(body_td,function (j,td) {
body_html += '
' + $(td).children().text() + '';})
body_html += '
';})
$('#'+id+' tr').remove();// 清除之前的doom结构
$('#'+id+'').append(header_html).append(body_html);
$('#'+id+'').hide();
}