elementUI 表格根据字段合并单元格 行
效果

arraySpanMethod({ row, column, rowIndex, columnIndex }) { if (this.rowSpanField.indexOf(column.property) > -1) { return { rowspan: row["rowspan" + column.property], colspan: 1 }; } }, setrowspans() { // 先给所有的数据都加一个v.rowspan = 1 this.tableData.forEach(v => { this.rowSpanField.forEach(key => { v["rowspan" + key] = 0; }); }); this.rowSpanField.forEach(key => { let sort = 0; for (let i = 0; i < this.tableData.length; i++) { sort = this.getRepeatNumber(i, this.tableData, key, 1); this.tableData[i]["rowspan" + key] = sort; i = i + sort - 1; } }); }, /** * * @param {*} i 数组当前位置 * @param {*} data 要搜索的数组 * @param {*} key 数组对象中搜索的字段 * @param {*} number 返回连续长度 * @returns 根据数组对象中位置,某个属性字段得到当前这个字段连续重复出现的次数 */ getRepeatNumber(i, data, key, number = 0) { let j = i + 1 < data.length ? i + 1 : data.length - 1; if (data[i][key] == data[j][key]) { number++; if (j >= data.length - 1) { return number; } else { return this.getRepeatNumber(j, data, key, number); } } return number; }
computed:
rowSpanField() {
switch (Number(this.method)) {
case 0:
return ["organizationName", "dataType"];
case 1:
return ["dataType", "resolution"];
case 2:
return ["resolution", "dataType"];
}
}
html:
<el-table :span-method="arraySpanMethod"></el-table >
在获取到tabledata数据后调用一下
setrowspans方法就可以了
本文来自博客园,作者:zhupan,转载请注明原文链接:https://www.cnblogs.com/zhupanpan/p/16693170.html

浙公网安备 33010602011771号