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方法就可以了
标签:rowspan,return,表格,elementUI,单元格,rowSpanField,number,key,data 来源: https://www.cnblogs.com/zhupanpan/p/16693170.html