el-table 合计部分展示问题

在这里插入图片描述
只需要在summary-method方法体里面添加上

 this.$nextTick(() => {
        this.$refs.table.doLayout()
      })

让table重新计算布局

### 实现 Element UI `el-table` 组件中的合计 为了在 `el-table` 中添加合计,可以利用属性 `show-summary` 和自定义函数 `summary-method` 来计算并展示每一列的汇总数据[^2]。 下面是一个具体的例子来说明如何配置带有合计的表格: ```html <template> <div class="app-container"> <!-- 使用ref以便可以通过JavaScript访问该组件 --> <el-table :data="tableData" border show-summary :summary-method="getSummaries" style="width: 100%" ref="table1"> <el-table-column prop="name" label="商品名称"></el-table-column> <el-table-column prop="price" label="单价(元)" align="right"></el-table-column> <el-table-column prop="quantity" label="数量" align="center"></el-table-column> <el-table-column prop="totalPrice" label="总价(元)" align="right"></el-table-column> </el-table> </div> </template> <script> export default { data() { return { tableData: [ { name: '苹果', price: 5, quantity: 10 }, { name: '香蕉', price: 3, quantity: 15 } ] }; }, 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])); 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)} `; // 特殊处理价格字段保留两位小数 if(column.label.includes('价')){ sums[index]=parseFloat(sums[index]).toFixed(2); } } else { sums[index] = '-'; } }); return sums; } } }; </script> ``` 此代码片段展示了怎样通过设置 `show-summary=true` 启用默认的合计功能,并且指定了一个名为 `getSummaries()` 的方法作为 `summary-method` 属性值。这个方法接收参数对象 `param` ,其中包含了当前表头信息 (`columns`) 及其对应的数据记录 (`data`) 。遍历这些列以构建最终返回给视图层用于渲染合计的信息数组 `sums[]` 。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值