el-table和并相同数据的行单元格
rowspan为当前单元格所需要的合并的行数(包括本行),若当前行的rowspan为n(n不为0),后面的n-1行的rowspan则需要为0。如当前行的rowspan为3,则后面2行的rowspan需要为0
colspan同理
methods:{
filterData(arr, key) {
let result = [];
let concatOne = 0;
arr.forEach((item, index) => {
if (index === 0) {
result.push(1);
} else {
// key为'extraCost'是数组
if (key === "extraCost") {
const nowExtra = item[key].toString();
const preExtra = arr[index - 1][key].toString();
if (nowExtra === preExtra) {
result[concatOne] += 1;
result.push(0);
} else {
result.push(1);
concatOne = index;
}
} else {
if (item[key] === arr[index - 1][key]) {
result[concatOne] += 1;
result.push(0);
} else {
result.push(1);
concatOne = index;
}
}
}
});
return result;
},
objectSpanMethod({ rowIndex, columnIndex }) {
let _row, _col;
if (columnIndex === 3) {
_row = this.filterData(this.basicCostData, "leastTime")[rowIndex];
_col = _row > 0 ? 1 : 0;
return {
rowspan: _row,
colspan: _col,
};
}
if (columnIndex === 4) {
_row = this.filterData(this.basicCostData, "basicCost")[rowIndex];
_col = _row > 0 ? 1 : 0;
return {
rowspan: _row,
colspan: _col,
};
}
if (columnIndex === 5) {
_row = this.filterData(this.basicCostData, "extraCost")[rowIndex];
_col = _row > 0 ? 1 : 0;
return {
rowspan: _row,
colspan: _col,
};
}
},
}