<el-table :data="tabData" :summary-method="getSummaries" :show-summary="showSum"></el-table>
getSummaries (param) {
const { columns, data } = param
const sums = []
columns.forEach((column, index) => {
if (index === 1) {
sums[index] = '合计'
} else if (index === 6 ||index === 7) {
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 Math.round((prev + curr) * 100) / 100;
} else {
return prev
}
}, 0)
sums[index] = sums[index].toFixed(2); //保留2位小数
} else {
sums[index] = 'N/A'
}
} else {
sums[index] = '--'
}
})
return sums
},
2、当数据变化需要更新总和时
方法一:
this.showSum=false;
this.$nextTick().then( ()=> {
this.showSum=true;
})
方法二:
this.tabData.push({});
this.tabData.pop();