boostraptable实现行的动态合并

 
 

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;
    }
}


猜你喜欢

转载自blog.csdn.net/qq_30641447/article/details/80772574
今日推荐