一、需求
el-table计算表尾合计行时,某些行(例如无效数据)不计入求和计算
二、代码
<el-table :data="tableData" show-summary :summary-method="getSummary">
<el-table-column label="统计日期" prop="statisticsDate">
</el-table-column>
<!-- 其他表格数据 -->
</el-table>
// 自定义表格合计
const getSummary = (param) => {
const { columns, data } = param
const sums = []
columns.forEach((column, index) => {
// ticketState == 2 无效数据不加入求和 ⭐⭐⭐
let validData = data.filter(item => item.ticketState != 2)
const values = validData.map((item) => Number(item[column.property]))
// 想自定义求和的列
if (index === 17 || index === 18 || index === 19 || index === 20 || index === 21) {
// Number.isNaN(value)) 判断value是否是数值类
if (!values.every((value) => Number.isNaN(value))) {
sums[index] = `${values.reduce((prev, curr) => {
const value = Number(curr)
if (!Number.isNaN(value)) {
return prev + curr
} else {
return prev
}
}, 0)}`
} else {
sums[index] = '-'
}
}
})
return sums
}