el-table 合计
时间: 2023-06-28 17:13:53 浏览: 103
在 Element UI 的 el-table 组件中,可以使用 `summary-method` 属性来自定义合计行。在这个属性中,我们可以定义一个函数来计算合计值,并且返回一个对象来显示在表格的底部。
下面是一个示例代码:
```html
<el-table :data="tableData" style="width: 100%">
<el-table-column prop="name" label="Name"></el-table-column>
<el-table-column prop="age" label="Age"></el-table-column>
<el-table-column prop="address" label="Address"></el-table-column>
<el-table-column label="Total">
<template slot-scope="scope">
{{ scope.row.age + 10 }}
</template>
</el-table-column>
</el-table>
```
在上面的示例中,我们使用了 `<template>` 标签来定义一个单独的列来显示合计值。在这个模板中,我们可以使用 `scope.row` 来访问到当前行的数据,然后计算出合计值。
接下来,我们需要在表格的 `summary-method` 属性中定义一个函数来计算所有行的合计值:
```javascript
methods: {
getSummaries(param) {
const { columns, data } = param;
const sums = [];
columns.forEach((column, index) => {
if (index === 0) {
sums[index] = "Total";
return;
}
const values = data.map(item => Number(item[column.property]));
if (!values.every(value => isNaN(value))) {
sums[index] = values.reduce((prev, curr) => {
const value = Number(curr);
if (!isNaN(value)) {
return prev + curr;
} else {
return prev;
}
}, 0);
sums[index] += " (Total)";
}
});
return sums;
}
}
```
在上面的代码中,我们首先从 `param` 参数中获取到列和数据。然后,我们遍历每一列,计算出当前列的合计值,并且把合计值显示在最后一行的底部。
最后,我们需要把 `summary-method` 属性绑定到我们定义的方法上:
```html
<el-table :data="tableData" :summary-method="getSummaries" style="width: 100%">
<!-- ... -->
</el-table>
```
这样,我们就可以在 el-table 中显示合计值了。
阅读全文