1.template中
<el-table stripe :data="tableData" class="th-center" height="580" ref="tableData" highlight-current-row v-loading="tableLoading"
border show-summary :summary-method="getSummaries">
<el-table-column type="index" label="序号" fixed width="55" align="center"></el-table-column>
<el-table-column prop="detail_no" label="进出账编号" sortable :show-overflow-tooltip="true" align="right" minWidth="100"></el-table-column>
</el-table>
2.methods中
// 合计 对某个字段进行处理
getSummaries (param) {
const { columns, data } = param;
const sums = [];
columns.forEach((column, index) => {
if (index === 0) {
sums[index] = '合计';
return;
}
const values = data.map(item => Number(item[column.property]));
sums[0] = values.length;
if (!values.every(value => isNaN(value))) {
if (column.property === 'in_out_fund') {
sums[index] = values.reduce((prev, curr) => {
const value = Number(curr);
if (!isNaN(value)) {
return this.floatComputed(Math.abs(prev), Math.abs(curr), '+');
} else {
return prev;
}
}, 0);
sums[index] = formatNum2(sums[index], 2);
} else if (column.property === 'use_fund') {
sums[index] = values.reduce((prev, curr) => {
const value = Number(curr);
if (!isNaN(value)) {
return this.floatComputed(prev, curr, '+');
} else {
return prev;
}
}, 0);
sums[index] = formatNum2(sums[index], 2);
} else {
sums[index] = '';
}
}
});
// this.tableSums = sums;
return sums;
},