getData() { // 先給所有的數據都加一個v.rowspan = 1 this_.yulanList.forEach((item) => { item.rowspan = 1; }); // 雙層循環 for (let i = 0; i < this_.yulanList.length; i++) { // 內層循環,上面已經給所有的行都加了item.rowspan = 1 // 這里進行判斷 // 如果當前行的CCOITEM_ID和下一行的CCOITEM_ID相等 // 就把當前item.rowspan + 1 // 下一行的item.rowspan - 1 for (let j = i + 1; j < this_.yulanList.length; j++) { //此處可根據相同字段進行合並,此處是根據的id if (this_.yulanList[i].CCOITEM_ID === this_.yulanList[j].CCOITEM_ID) { this_.yulanList[i].rowspan++; this_.yulanList[j].rowspan--; } } // 這里跳過已經重復的數據 i = i + this_.yulanList[i].rowspan - 1; } }, objectSpanMethod({ row, column, rowIndex, columnIndex }) { //第一列 if (columnIndex === 0) { return { rowspan: row.rowspan, colspan: 1, }; } },
<el-table :data="tableData" :span-method="objectSpanMethod" border style="width: 100%; margin-top: 20px"> </el-table>
官方文檔:https://element.eleme.cn/#/zh-CN/component/table
span-method