var tableObj = { oTableInit: function () { $('#safetyLineList').bootstrapTable({ url: 'exhibitGradeLineList', toolbar: '#toolbar', uniqueId: 'id', pagination: true, showRefresh:true, showColumns:true, sortOrder: "asc", clickToSelect: false, singleSelect: false, sidePagination: "server", //服务端分页 server paginationPreText: '上一页', paginationNextText: '下一页', queryParams: function (params) { return { offset: params.offset, limit: params.limit, order: params.order, orderColumn: params.sort, constructionId:$("#constructionId").val(), exhibitionName:$("#exhibitionName").val() }; }, onLoadSuccess: function (data) { mergeCells(data.rows,"exhibitionName", "exhibitionName", 1, $('#safetyLineList')); mergeCells(data.rows,"exhibitionName", "scores", 1, $('#safetyLineList')); mergeCells(data.rows,"exhibitionName", "remarks", 1, $('#safetyLineList')); mergeCells(data.rows,"exhibitionName","boothNumber", 1, $('#safetyLineList')); mergeCells(data.rows, "exhibitionName","operate", 1, $('#safetyLineList')); }, pageList: [10, 50, 100, 200, 500], columns: [{ field:'checkbox',checkbox:true }, { field: 'exhibitionName', title: '展会', formatter:function(value,row,index){ return value; } }, { field: 'boothName', title: '展位', formatter:function(value,row,index){ return value; } },{ field: 'recordType', title: '记录类别', formatter: function (value, row, index) { return SAFETY_RECORDTYPE[value].NAME; } },{ field: 'recordContent', title: '记录内容', formatter: function (value, row, index) { return value; } },{ field: 'boothNumber', title: '评分参考', formatter: function (value, row, index) { var conten='<span>搭建<strong style="color:red">'+value+'</strong>家展位,报图次数<strong style="color:red">'+row.checkNumber+'</strong>次</span>'; return conten; } },{ field: 'scores', title: '评分', formatter: function (value, row, index) { var color="#33B312" if(parseInt(value)>=80){ color="#33B312"; }else if(60<=parseInt(value)&&parseInt(value)<80){ color="#FFC90E"; }else{ color="red"; } var conten='<strong style="color:'+color+'">'+value+'</strong>'; return conten; } },{ field: 'remarks', title: '说明', formatter: function (value, row, index) { return value; } },{ field: 'operate', title: '操作', align: 'left', formatter: operateFormatter }], }); } }
/** * 合并单元格 * @param data 原始数据(在服务端完成排序) * @param fieldName 合并属性名称 * @param colspan 合并列 * @param target 目标表格对象 */ function mergeCells(data,exhibitionName,fieldName,colspan,target){ //声明一个map计算相同属性值在data对象出现的次数和 var sortMap = {}; for(var i = 0 ; i < data.length ; i++){ for(var prop in data[i]){ if(prop == exhibitionName){ var key = data[i][prop] if(sortMap.hasOwnProperty(key)){ sortMap[key] = sortMap[key] * 1 + 1; } else { sortMap[key] = 1; } break; } } } for(var prop in sortMap){ console.log(prop,sortMap[prop]) } var index = 0; for(var prop in sortMap){ var count = sortMap[prop] * 1; $(target).bootstrapTable('mergeCells',{index:index, field:fieldName, colspan: colspan, rowspan: count}); index += count; } }