【vue2+elementUI】el

您所在的位置:网站首页 表格合计怎么放在第一行里面显示 【vue2+elementUI】el

【vue2+elementUI】el

2024-06-29 04:41:27| 来源: 网络整理| 查看: 265

el-table同时添加小计和合计

效果:

1、在页面绘制表格。el-table使用show-summary可以自动生成一个合计行。代码如下:

表格添加合计和小计 女 男 import { nextTick } from "vue"; export default { data() { return { list: [ { name: "张三", age: 22, gender: "F", phoneNumber: "123456789", birthday: "2001年6月8日", address: "北京市XX区XX路", english_achievements: "95", math_achievements: "98" }, { name: "李四", age: 22, gender: "M", phoneNumber: "123456789", birthday: "2001年6月8日", address: "北京市XX区XX路", english_achievements: "96", math_achievements: "98" }, { name: "张三", age: 22, gender: "F", phoneNumber: "123456789", birthday: "2001年6月8日", address: "北京市XX区XX路", english_achievements: "89", math_achievements: "98" }, { name: "李四", age: 22, gender: "M", phoneNumber: "123456789", birthday: "2001年6月8日", address: "北京市XX区XX路", english_achievements: "95", math_achievements: "98" }, { name: "张三", age: 22, gender: "F", phoneNumber: "123456789", birthday: "2001年6月8日", address: "北京市XX区XX路", english_achievements: "98", math_achievements: "98" }, { name: "李四", age: 22, gender: "M", phoneNumber: "123456789", birthday: "2001年6月8日", address: "北京市XX区XX路", english_achievements: "95", math_achievements: "98" }, { name: "张三", age: 22, gender: "F", phoneNumber: "123456789", birthday: "2001年6月8日", address: "北京市XX区XX路", english_achievements: "95", math_achievements: "98" }, { name: "李四", age: 22, gender: "M", phoneNumber: "123456789", birthday: "2001年6月8日", address: "北京市XX区XX路", english_achievements: "95", math_achievements: "98" }, { name: "张三", age: 22, gender: "F", phoneNumber: "123456789", birthday: "2001年6月8日", address: "北京市XX区XX路", english_achievements: "95", math_achievements: "98" }, { name: "李四", age: 22, gender: "M", phoneNumber: "123456789", birthday: "2001年6月8日", address: "北京市XX区XX路", english_achievements: "95", math_achievements: "98" } ], sumObject: { english_achievements: 1000, math_achievements: 888 } // 合计数据 }; } };

2、因为需求是添加两行,一个合计一个小计,并保留两位小数。

小计为当前页面的累加和,合计为接口返回的数据(目前使用的假数据sumObject)。所以使用:summary-method="getSummaries"自定义合计行。

代码如下:

methods: { // 合计和小计赋值 getSummaries(param) { const { columns, data } = param; const sums = []; // 保留换行符 选中合计行的每一个元素,然后给每一个元素都添加css样式whiteSpace。 this.$nextTick(() => { const elements = document.querySelectorAll( ".el-table__footer-wrapper div.cell" ); elements.forEach(element => { // whiteSpace用于控制元素内部空白符(包括空格、换行符等)的处理方式。pre-wrap:表示浏览器会保留连续的空白符和换行符,且会自动换行。 element.style.whiteSpace = "pre-wrap"; }); }); // 以下是对小计和总计分别进行赋值 columns.forEach((column, index) => { if (index === 0) { sums[index] = "小计" + "\n" + "总计"; return; } //将当前列的所有值存储到values中 注:非数字会返回NaN。 const values = data.map(item => Number(item[column.property])); // 将要进行小计合计的字段组成一个数组 let label = ["math_achievements", "english_achievements"]; //如果label包含当前column.property,则进行数据处理 if (label.includes(column.property)) { // 小计 let Subtotal = values .reduce((prev, curr) => { const value = Number(curr); // 如果是数字则进行累加 if (!isNaN(value)) { return prev + curr; } else { return prev; } }, 0) .toFixed(2); // 总计 let allTotal = ""; // 总计非0时添加两位小数 if (this.sumObject.hasOwnProperty(column.property)) { // 判断是否是0. 如果this.sumObject[column.property]不是0,则!this.sumObject[column.property]为false。如果是0,则为true。 if (!this.sumObject[column.property]) { allTotal = this.sumObject[column.property]; } else { allTotal = this.sumObject[column.property].toFixed(2); } } sums[index] = Subtotal + "\n" + allTotal; } else { sums[index] = ""; } }); return sums; } }

3、css样式如下。

.info_title { text-align: center; margin: 20px 0px; } /deep/ .el-table { overflow: auto; height: 300px; } //将滚动条显示在合计和小计的下方 /deep/ .el-table__body-wrapper, .el-table__footer-wrapper, .el-table__header-wrapper { overflow: visible !important; } // 不显示多余的线条 /deep/ .el-table--border::after, .el-table--group::after, .el-table::before { width: 0px; } //固定表头 /deep/ .el-table__header-wrapper { position: sticky; top: 0; z-index: 999; }

如果没有自定义合计和小计,可以直接给el-table加一个:height="数字",就可以固定表头。



【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭