el-table 表尾合计行,只计算最后一列

表尾合计行,只计算最后一列在这里插入图片描述

	<el-table :data="tableData" border show-summary :summary-method="getSummaries" style="width: 100%">
			<el-table-column prop="id" label="商品ID" width="180">
			</el-table-column>
			<el-table-column prop="name" label="商品编码">
			</el-table-column>
			<el-table-column prop="amount1" sortable label="商品信息">
			</el-table-column>
			<el-table-column prop="amount2" sortable label="售价">
			</el-table-column>
			<el-table-column prop="amount3" sortable label="数量(件)">
			</el-table-column>
			<el-table-column prop="val" sortable label="金额">
			</el-table-column>
		</el-table>
	export default {
		data() {
			return {
				tableData: [{
					amount3: 11,
					val: 1
				}, {
					amount3: 12,
					val: 2
				}, {
					amount3: 13,
					val: 3
				}, {
					amount3: 14,
					val: 4
				}, {
					amount3: 15,
					val: 5
				}]
			}
		},
		methods: {
			getSummaries(param) {
				const {
					columns,
					data
				} = param
				const sums = []
				columns.forEach((column, index) => {
					if (index === 0) {
						sums[index] = '总价'
						//只计算最后一列
					} else if (index === columns.length - 1) {
						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)
							sums[index] += ' 元';
						} else {
							sums[index] = '';
						}
					} else {
						sums[index] = ''
					}
				})
				return sums
			}
		}
	}
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用 element-ui 的 el-table 组件合计某一可以通过以下步骤实现: 1. 给格数据源添加一个合计字段,用来存储该的总和。 2. 在 el-table-column 组件中使用 scoped-slot 自定义的内容,将该的每个单元格的值累加到合计字段中。 3. 在格底部添加一个 el-table-footer 组件,显示合计字段的值。 下面是一个简单的示例代码: ```html <template> <el-table :data="tableData"> <el-table-column prop="name" label="姓名"></el-table-column> <el-table-column prop="age" label="年龄"> <template slot-scope="scope">{{ scope.row.age }}</template> </el-table-column> <el-table-column prop="score" label="分数"> <template slot-scope="scope"> {{ scope.row.score }} <!-- 将该的每个单元格的值累加到合计字段中 --> <span hidden>{{ total += scope.row.score }}</span> </template> </el-table-column> <el-table-footer> <template slot="footer"> <!-- 显示合计字段的值 --> <el-table-column :label="'合计:' + total"></el-table-column> </template> </el-table-footer> </el-table> </template> <script> export default { data() { return { tableData: [ { name: '张三', age: 20, score: 80 }, { name: '李四', age: 22, score: 90 }, { name: '王五', age: 21, score: 85 } ], total: 0 // 合计字段 }; } }; </script> ``` 在上面的示例代码中,我们使用了一个隐藏的 span 元素来实现将该的每个单元格的值累加到合计字段中。同时,我们使用了 el-table-footer 组件来显示合计字段的值。 需要注意的是,如果格中有分页的话,以上方法只能计算当前页的合计值。如果需要计算所有数据的合计值,需要在后台进统计。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值