1、获取数据后先进行排序
// 表格数据处理
function compare(property) { //数组排序
return function(a, b) {
var value1 = a[property];
var value2 = b[property];
return value1 - value2;
}
}
var mould = res.result.mould.sort(compare('mouldNumber')); //对某一列进行排序
2、进行数据渲染
// 表格数据处理
function tableFn(dataList) {
// console.log(dataList);
$(selectors.table).bootstrapTable('destroy');
$(selectors.table).bootstrapTable({
data: dataList,
contentType: "application/x-www-form-urlencoded",
pagination: true,
sidePagination: "client", //分页方式:client客户端分页,server服务端分页(*)
pageNumber: 1, //初始化加载第一页,默认第一页
pageSize: 10,
//pageList: [5, 10, 20, 30, 50, 100],
toolbar: "#toolbar",
search: false,
searchOnEnterKey: false,
selectItemName: "btSelectItem",
showRefresh: false,
formatLoadingMessage: function() { // 表格生成过程中执行的方法
return '请稍等,正在加载中...'; // 返回一串等待文字
},
onLoadSuccess: function() {
mergeCellFun(dataList, 'mouldNum');
},
onPostBody: function() {
mergeCellFun(dataList, 'mouldNum');
// mergeColspan(dataList, ['mouldNum','mouldName']);
},
columns: [{
field: "mouldNum",
title: "模具号",
align: "center",
width: 100,
},
{
field: "mouldName",
title: "模具名",
align: "center",
width: 100,
},
{
field: "injectionName",
title: "注塑机编号",
align: "center",
width: 100,
},
{
field: "yieldCount",
title: "产量",
align: "center",
width: 100,
},
{
field: "unqualifiedCount",
title: "次品",
align: "center",
width: 100,
},
{
field: "passRate",
title: "合格率",
align: "center",
width: 100,
},
]
});
mergeCellFun(dataList, 'mouldNum');
/**
* 合并单元格函数,data-表格数据
*/
function mergeCellFun(formData, field) {
var obj = {};
var objName = {};
var crr = [];
for (var item in formData) {
var items = formData[item][field];
obj[items] = (obj[items] + 1) || 1;
var itemsName = formData[item]['mouldName'];
objName[itemsName] = (objName[itemsName] + 1) || 1;
crr.push(itemsName);
}
var arr = [];
var brr = [];
var arrIndex = [];
var tableIndex = 0;
for (var key in obj) {
arr.push(obj[key]);
}
for (var key in objName) {
brr.push(objName[key]);
}
var str = [],
sum = 1;
for (var i = 1; i <= crr.length; i++) {
if (crr[i] == crr[i - 1]) {
sum++;
} else {
str.push(sum);
sum = 1;
}
}
var len;
if (arr.length > str.length) {
len = arr.length;
} else {
len = str.length;
}
var lucky = [];
for (var i = 0; i < len; i++) {
if (str[i] < arr[i]) {
lucky[i] = str[i];
arr.splice((i + 1), 0, (arr[i] - str[i]));
} else if (str[i] == arr[i]) {
lucky[i] = str[i];
} else if (str[i] > arr[i]) {
lucky[i] = arr[i];
str.splice((i + 1), 0, (str[i] - arr[i]));
}
}
var crrIndex = 0;
for (var key in lucky) {
// crrIndex.push(crr[key]);
var option = [{
index: crrIndex,
field: 'mouldNum',
colspan: 1,
rowspan: lucky[key]
},
{
index: crrIndex,
field: 'mouldName',
colspan: 1,
rowspan: lucky[key]
},
];
for (var i = 0; i < option.length; i++) {
$(selectors.table).bootstrapTable('mergeCells', option[i]);
}
crrIndex += lucky[key];
}
}
}
3、结果显示: