element-plus 中的 el-table按照订单号相同合并制定列的行
时间: 2023-10-21 09:20:16 浏览: 173
可以使用 element-plus 中的 el-table 的自定义合并行的方法来实现按照订单号合并指定列的行。具体实现步骤如下:
1. 定义一个方法,用于自定义合并行。该方法需要返回一个对象,包含 `rowspan` 和 `colspan` 两个属性,分别表示该单元格需要合并的行数和列数。
```javascript
function mergeRows(row, column, rowIndex, columnIndex) {
if (column.property === 'orderNo') {
// 判断订单号是否与上一行相同,如果相同则需要合并行
if (rowIndex === 0 || row.orderNo !== this.data[rowIndex - 1].orderNo) {
// 获取该订单号在当前表格中的行数
const count = this.data.filter(item => item.orderNo === row.orderNo).length;
return {
rowspan: count,
colspan: 1
};
} else {
// 不需要合并行
return {
rowspan: 0,
colspan: 0
};
}
} else {
// 不需要合并行
return {
rowspan: 1,
colspan: 1
}
}
}
```
2. 在 el-table 中设置 `:row-span-method` 属性为定义的方法名。
```html
<el-table :data="data" :row-span-method="mergeRows">
<el-table-column prop="orderNo" label="订单号"></el-table-column>
<el-table-column prop="goodsName" label="商品名称"></el-table-column>
<el-table-column prop="price" label="价格"></el-table-column>
</el-table>
```
这样,就可以按照订单号相同合并指定列的行了。
阅读全文