我的编程空间,编程开发者的网络收藏夹
学习永远不晚

vue表格(table)计算总计方式

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

vue表格(table)计算总计方式

vue 表格计算总计

<el-table
        v-loading="loading"
        :summary-method="getSummaries"
        show-summary
        :data="abcList"
        border
        tooltip-effect="darkTable"
      >

首先需要在table标签中添加

:summary-method="getSummaries"  // 调用方法
show-summary  //标签属性
methods: {
  getSummaries(param) {
    const { columns, data } = param
    console.log(columns, data, 'columns,data')
    const sums = []
    columns.forEach((column, index) => {
      // 设置第一列的值为总计
      if (index === 0) {
        sums[index] = '总计'
        return
      }
        sums[3] = this.form.result
        sums[3] += '元'
    })
    return sums
   }
}

因为Element上计算总计的方法是计算当前页上金额的总和,稍加修改~

sums[index] = '总计'  
// 把下标为0的列赋值为总计
sums[3] = this.form.result  
// this.form.result为init初始化时从接口中拿到的总计,赋值到下标为3的列上
sums[3] += '元'
// 得到的总计后加上单位元

vue table表格合计 ( Element )

<template>
	<el-card class="box-card">
		<!-- 只合计不做其他处理 -->
		<h2>只合计不做其他处理</h2>
		<el-table :data="tableData6" border show-summary style="width: 100%">
			<el-table-column prop="id" label="ID" width="180" align="center">
			</el-table-column>
			<el-table-column prop="name" label="产品" align="center">
			</el-table-column>
			<el-table-column prop="number" label="数量" align="center">
			</el-table-column>
			<el-table-column prop="price" label="价格" align="center">
			</el-table-column>
			<el-table-column prop="profit" label="利润率" align="center">
			</el-table-column>
		</el-table>
 
		<!-- 简单求和实例处理 -->
		<h2 style="margin-top:100px">简单求和实例处理</h2>
		<el-table :data="tableData6" border :summary-method="getSummaries01" show-summary style="width: 100%;">
			<el-table-column prop="id" label="ID" width="180" align="center">
			</el-table-column>
			<el-table-column prop="name" label="产品" align="center">
			</el-table-column>
			<el-table-column prop="number" label="数量" align="center">
			</el-table-column>
			<el-table-column prop="price" label="价格" align="center">
			</el-table-column>
			<el-table-column prop="profit" label="利润率" align="center">
			</el-table-column>
		</el-table>
 
		<!-- 指定列求和实例处理 -->
		<h2 style="margin-top:100px">指定列求和实例处理</h2>
		<el-table :data="tableData6" border :summary-method="getSummaries02" show-summary style="width: 100%;">
			<el-table-column prop="id" label="ID" width="180" align="center">
			</el-table-column>
			<el-table-column prop="name" label="产品" align="center">
			</el-table-column>
			<el-table-column prop="number" label="数量" align="center">
			</el-table-column>
			<el-table-column prop="price" label="价格" align="center">
				<template slot-scope="scope">
					{{$utils.formSum(scope.row.price, 2, '.', ',')}}
				</template>
			</el-table-column>
			<el-table-column prop="profit" label="利润率" align="center">
				<template slot-scope="scope">
					{{Number(scope.row.profit).toFixed(2)}} %
				</template>
			</el-table-column>
		</el-table>
	</el-card>
</template>

 
<script>
	export default {
		data() {
			return {
				tableData6: [{
					id: '12987122',
					name: '袜子',
					number: '234',
					price: '3',
					profit: '10.9'
				}, {
					id: '12987123',
					name: '鞋子',
					number: '165',
					price: '343.8',
					profit: '12.00'
				}, {
					id: '12987124',
					name: '裤子',
					number: '324',
					price: '249.0',
					profit: '9'
				}, {
					id: '12987125',
					name: '腰带',
					number: '621',
					price: '342.0',
					profit: '17.00'
				}, {
					id: '12987126',
					name: '手镯',
					number: '539',
					price: '43421',
					profit: '153333'
				}]
			};
		},
		methods: {
			//格式化数字,格式化金额
			// formSum: function(number, decimals, dec_point, thousands_sep) {
			//   
			//   number = (number + '').replace(/[^0-9+-Ee.]/g, '');
			//   var n = !isFinite(+number) ? 0 : +number,
			//     prec = !isFinite(+decimals) ? 0 : Math.abs(decimals),
			//     sep = (typeof thousands_sep === 'undefined') ? ',' : thousands_sep,
			//     dec = (typeof dec_point === 'undefined') ? '.' : dec_point,
			//     s = '',
			//     toFixedFix = function(n, prec) {
			//       var k = Math.pow(10, prec);
			//       return '' + Math.ceil(n * k) / k;
			//     };
			//   s = (prec ? toFixedFix(n, prec) : '' + Math.round(n)).split('.');
			//   var re = /(-?\d+)(\d{3})/;
			//   while (re.test(s[0])) {
			//     s[0] = s[0].replace(re, "$1" + sep + "$2");
			//   }
			//   if ((s[1] || '').length < prec) {
			//     s[1] = s[1] || '';
			//     s[1] += new Array(prec - s[1].length + 1).join('0');
			//   }
			//   return s.join(dec);
			// }
			
 
			//简单求和实例处理
			getSummaries01(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);
						sums[index] += ' 元';
					} else {
						sums[index] = 'N/A';
					}
				});
				return sums;
			},
 
 
 
			//指定列求和实例处理
			getSummaries02(param) {
				const {
					columns,
					data
				} = param;
				const sums = [];
				columns.forEach((column, index) => {
					if (index === 0) {
						sums[index] = '总价';
					} else if (index === 3) { //对价格做处理:保留两位小数
						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] = this.$utils.formSum(sums[index], 2, '.', ',');
						} else {
							sums[index] = '/';
						}
					} else if (index === 4) { //对利润率做处理:保留两位小数
						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] = sums[index].toFixed(2);
							sums[index] += ' %';
						} else {
							sums[index] = '/';
						}
					} else {
						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);
						} else {
							sums[index] = '/';
						}
					}
				});
				return sums;
			}
		}
	};
</script>

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

vue表格(table)计算总计方式

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

vue表格(table)计算总计方式

这篇文章主要介绍了vue表格(table)计算总计方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
2022-11-13

vue计算属性computed方法内传参方式

这篇文章主要介绍了vue计算属性computed方法内传参方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
2022-11-13

阿里云数据库租用价格计算方式

阿里云数据库是阿里巴巴集团提供的云数据库服务,它提供了包括关系型数据库、NoSQL数据库等多种数据库类型。对于许多企业和个人来说,选择阿里云数据库租用可以有效降低硬件成本、提高数据安全性。本文将详细介绍阿里云数据库租用价格的计算方式。一、阿里云数据库租用价格计算方式阿里云数据库的租用价格是根据多种因素计算的,主要
阿里云数据库租用价格计算方式
2023-12-10

计算机中磁盘分区格式变成RAW格式的解决方法

这篇文章将为大家详细讲解有关计算机中磁盘分区格式变成RAW格式的解决方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
2023-06-14

怎么利用Python实现读取Word表格计算汇总并写入Excel

这篇文章将为大家详细讲解有关怎么利用Python实现读取Word表格计算汇总并写入Excel,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。前言快过年了,又到了公司年底评级的时候了。今年的评级
2023-06-28

【实战案例】基于 VUE 计算属性打造交互式图表

使用 Vue 计算属性构建交互式图表
【实战案例】基于 VUE 计算属性打造交互式图表
2024-02-20

阿里云服务器个人购买价格计算方式与详解

在数字化时代,云计算已经成为企业运营和发展的重要基础设施。作为国内领先的云计算服务商,阿里云服务器凭借其稳定、高效、安全的优势,深受广大用户的青睐。但是,对于很多个人用户来说,如何计算阿里云服务器的购买价格,可能会感到困惑。本文将详细介绍阿里云服务器个人购买价格的计算方式和相关规则。一、阿里云服务器购买价格计算方
阿里云服务器个人购买价格计算方式与详解
2023-11-16

合肥阿里云总代理:为您提供一站式云计算解决方案

1.什么是阿里云?阿里云(AlibabaCloud)是由阿里巴巴集团推出的云计算服务平台,为企业和个人提供强大的云计算基础设施和解决方案。作为全球领先的云计算服务提供商之一,阿里云拥有丰富的产品和服务,包括云服务器、云数据库、云存储、人工智能、大数据分析等。2.为什么选择合肥阿里云总代理?2.1专业的技术支持合肥阿里云
2023-10-27

阿里云深圳总代理:为您提供一站式云计算解决方案

1.什么是阿里云深圳总代理?阿里云深圳总代理是指在深圳地区代理销售阿里云产品和服务的合作伙伴。作为阿里云的合作伙伴,深圳总代理具备丰富的云计算经验和技术实力,能够为客户提供全方位的云计算解决方案。2.为什么选择阿里云深圳总代理?2.1专业的技术支持阿里云深圳总代理拥有一支经验丰富的技术团队,能够为客户提供专业的技术支持和咨询服务。无论是在云计算架构设计、系统迁移、性能优化还是安全防护等方面,深圳总代理都能...
2023-10-27

计算机中要想观察一个长文档的总体结构应当使用哪种方式

这篇文章主要为大家展示了“计算机中要想观察一个长文档的总体结构应当使用哪种方式”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“计算机中要想观察一个长文档的总体结构应当使用哪种方式”这篇文章吧。要想
2023-06-20

全国计算机技术与软件专业技术资格(水平)考试各机构对外服务联系方式

  计算机技术与软件专业技术资格(水平)考试简介  计算机技术与软件专业技术资格(水平)考试(以下简称计算机软件资格考试)是原中国计算机软件专业技术资格和水平考试(简称软件考试)的完善与发展。计算机软件资格考试是由国家人力资源和社会保障部、工业和信息化部领导下的国家级考试,其目的是科学、公正地对全国计算机与软件专业技术
全国计算机技术与软件专业技术资格(水平)考试各机构对外服务联系方式
2024-04-17

2022年上半年安徽铜陵计算机软件水平考试合格人员名单和证书领取方式通知

2022年上半年安徽铜陵计算机软件水平考试合格人员名单和证书领取方式通知已公布,为了方便广大考生的查阅,下面®编程网为您详细介绍一下本次考试合格人员名单和证书领取的具体事宜,希望广大考生及时关注,如有相关疑问,请关注®编程网为您实时做出的更新。  根据省人社厅人事考试院通知,现将我市2022年上半年计算机技术与软件专业
2022年上半年安徽铜陵计算机软件水平考试合格人员名单和证书领取方式通知
2024-04-02

编程热搜

目录