1、表尾合计行
<el-table
:data="tableData"
show-summary
:max-height="500"
style="width: 100%"
>
2、表尾平均行
<el-table
:data="tableData"
show-summary
:summary-method="getSummaries"
:max-height="500"
style="width: 100%"
>
const getSummaries = (param: any) => {
const { columns, data } = param;
const averages = [];
columns.forEach((column, index) => {
if (index === 0) {
averages[index] = "平均值";
return;
}
const values = data
.map((item) => Number(item[column.property]))
.filter((value) => value !== null && value !== 0);
if (values.length > 0 && !values.every((value) => Number.isNaN(value))) {
const sum = values.reduce((prev, curr) => {
const value = Number(curr);
if (!isNaN(value)) {
return prev + curr;
} else {
return prev;
}
}, 0);
averages[index] = (sum / values.length).toFixed(5).replace(/\.?0+$/, "");
} else {
averages[index] = 0;
}
});
return averages;
};