Element-UI中el-table如何合并相同單元格
問題背景
項目需求table表格中,相同的類型合并成一個單元格展示。
問題描述
el-table并沒有相關(guān)的語法直接合并,需要我們自己傳入一個方法返回一個數(shù)組格式,來確定要合并行列。

解決問題
首先需要在 el-table 標簽上綁定:span-method="objectSpanMethod"
<el-table :data="tableData" :span-method="objectSpanMethod" >
<el-table-column prop="projectName" label="訂單類型" />
</el-table>再去methods中定義 objectSpanMethod 方法,data中定義一個rowSpanArr參數(shù)
// 獲取相同名稱的個數(shù) tableData: 表格的數(shù)據(jù), projectName: 確定相同的參數(shù)
handleTableData(tableData){
let rowSpanArr = [], position = 0;
for (let [index, item] of tableData.entries()) {
if (index == 0) {
rowSpanArr.push(1);
position = 0;
} else {
if (item.projectName == tableData[index - 1].projectName) {
rowSpanArr[position] += 1; //項目名稱相同,合并到同一個數(shù)組中
rowSpanArr.push(0);
} else {
rowSpanArr.push(1);
position = index;
}
}
}
this.rowSpanArr = rowSpanArr
}
// 單元格的處理方法 當前行row、當前列column、當前行號rowIndex、當前列號columnIndex
objectSpanMethod({ row, column, rowIndex, columnIndex }){
if (columnIndex === 0) {
const rowSpan = this.rowSpanArr[rowIndex];
return {
rowspan: rowSpan, //行
colspan: 1 //列
};
}
}擴展
objectSpanMethod({ row, column, rowIndex, columnIndex }) {
if (columnIndex === 0) { // 判斷是不是第一列,只有第一列才執(zhí)行合并
if (rowIndex % 2 === 0) { // 判斷能不能被2整除
return {
rowspan: 2, // 從當前單元格開始,執(zhí)行合并2行
colspan: 1, // 從當前單元格開始,執(zhí)行合并1列
};
} else {
return { // 第一列的其他元素不執(zhí)行合并
rowspan: 0, // 為0,不執(zhí)行合并
colspan: 0 // 為0,不執(zhí)行合并
};
}
}
}總結(jié)
到此這篇關(guān)于Element-UI中el-table如何合并相同單元格的文章就介紹到這了,更多相關(guān)el-table合并相同單元格內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
vuex獲取state對象中值的所有方法小結(jié)(module中的state)
這篇文章主要介紹了vuex獲取state對象中值的所有方法小結(jié)(module中的state),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-04-04
解決Vue中使用Echarts出現(xiàn)There?is?a?chart?instance?already?ini
使用echarts的時候,多次加載會出現(xiàn)There?is?a?chart?instance?already?initialized?on?the?dom.這個黃色警告,此警告信息不影響echarts正常加載,但是有bug得解決,本文就帶大家解決這個問題,感興趣的同學可以參考閱讀2023-06-06

