关于 el-table 的合计行问题

news2024/11/24 18:12:30

目录

一.自定义合计行

二.合计行不展示,只有缩放/变大窗口或者F12弹出后台时才展示

三.合计行出现了表格滚动条下方

四.合计行整体样式的修改

五.合计行单元格样式修改

1.css

2.jsx方式

六.合计行单元格合并


一.自定义合计行

通过 show-summary 属性开启合计行功能,通过 :summary-method 属性自定义合计行方法。

        <el-table :summary-method="getSummaries" show-summary ref="table">
        </el-table>
    getSummaries(param) {
      // columns 是一个数组,每一项就是每一列表头的内容
      // data 是表格数据,每一项就是每一行 row 的数据
      const { columns, data } = param;
      // sums 是合计行的数据,是一个普通数组,数组每一项内容就是合计行按照顺序展示的内容
      const sums = [];
      columns.forEach((column, index) => {
        // 这里是设置合计行第一列内容位 总计,也可以根据 index 判断,  if (index === 0)
        if (column.property === "trade_id") {
          sums[index] = "合计";
        } else if (
          // 这里是自己需要合计的表头,也可以根据 index 判断,但是为了防止以后顺序打乱,就用 prop 去判断
          column.property === "trade_power" ||
          column.property === "trade_fee"
        ) {
          // values 是该表头下所有数据组成的数组
          const values = data.map((item) => Number(item[column.property]));
          // 这是把数组的所有值都相加再一起,Utils方法是自己定义引入的避免精度缺失的方法,博客别的内容有写
          sums[index] = values.reduce((prev, cur) => {
            return Utils.argAdd(Number(prev), Number(cur));
          }, 0);
        } else {
          // 这里不需要合计的表头 设置展示内容为 ---
          sums[index] = "---";
        }
      });
      return sums;
    },

二.合计行不展示,只有缩放/变大窗口或者F12弹出后台时才展示

不展示的原因:是因为表格刚开始是没有数据的,所以不展示合计行,等获取到数据的时候,表格不会重新渲染dom,所以该合计行还是不展示,缩放窗口或者弹出后台时会导致页面重新渲染,此时合计行才会渲染出来。

解决方法:在获取数据以后调用 el-table 的 doLayout() 方法去重新渲染表格 dom。

      queryTableDataApi(params).then((res) => {
        this.allTableData = res;
        this.$nextTick(() => {
          this.$refs["table"].doLayout();
        });
      });

 或者

  updated() {
    this.$nextTick(() => {
      this.$refs["table"].doLayout();
    });
  },

三.合计行出现了表格滚动条下方

原本合计行在表格下部,我们可以将合计行放在表格上部,也就是第一行。

::v-deep .el-table {
  display: flex;
  flex-direction: column;
}
/* order默认值为0,只需将表格主体order设为1即可移到最后,合计就上移到最上方了 */
::v-deep .el-table__body-wrapper {
  order: 1;
}
// 下面的代码是设置 fixed 后,要根据实际情况所作的修改
::v-deep.el-table__fixed-body-wrapper {
  top: 96px !important;
}
::v-deep .el-table__fixed-footer-wrapper {
  z-index: 0;
}

四.合计行整体样式的修改

::v-deep .el-table .el-table__footer-wrapper tbody td {
  background: black;
  color: white;
  font-weight: bolder;
}

五.合计行单元格样式修改

1.css

比较死板,因为要根据 nth-child(n) 去固定在某一列进行生效,如果顺序改变就会出现错误。

::v-deep .el-table .el-table__footer-wrapper tbody td:nth-child(3) {
  color: lightgreen;
  font-weight: bolder;
}

::v-deep .el-table .el-table__footer-wrapper tbody td:nth-child(4) {
  color: red;
  font-weight: bolder;
}

2.jsx方式

合计行自定义方法中返回 jsx。

    getSummaries(param) {
      const { columns, data } = param;
      const sums = [];
      columns.forEach((column, index) => {
        if (column.property === "trade_id") {
          sums[index] = "合计";
        } else if (
          column.property === "trade_power" ||
          column.property === "trade_fee"
        ) {
          const values = data.map((item) => Number(item[column.property]));
          let value = values.reduce((prev, cur) => {
            return Utils.argAdd(Number(prev), Number(cur));
          }, 0);
          // 在这里设置类名
          sums[index] = <span class={"green"}>{value}</span>;
        } else {
          sums[index] = "---";
        }
      });
      return sums;
    },
.green {
    color: lightgreen;
    font-weight: bolder;
}

六.合计行单元格合并

  watch: {
    showTableData: {
      immediate: true,
      handler() {
        setTimeout(() => {
          const tds = document.querySelectorAll(
            ".el-table__footer-wrapper tr>td"
          );
          tds[0].colSpan = 2;
          tds[0].style.textAlign = "center";
          tds[1].style.display = "none";
        }, 0);
      },
    },
  },

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2237933.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C++ | Leetcode C++题解之第554题砖墙

题目&#xff1a; 题解&#xff1a; class Solution { public:int leastBricks(vector<vector<int>>& wall) {unordered_map<int, int> cnt;for (auto& widths : wall) {int n widths.size();int sum 0;for (int i 0; i < n - 1; i) {sum wi…

如何使用 C# 编写一个修改文件时间属性的小工具?

下面是简鹿办公一个用 C# 编写的简单工具&#xff0c;它可以批量修改文件的创建时间、最后访问时间和最后修改时间。我们将使用 .NET Framework 或 .NET Core 来实现这个功能。 完整示例代码 1. 创建一个新的 C# 控制台应用程序 您可以使用 Visual Studio 或 .NET CLI 创建一个…

使用FTP与多个合作伙伴传文件,如何处理运维管理和数据安全问题

许多行业的企业使用FTP与外部客户、供应商等合作伙伴进行文件交换&#xff0c;如大型保险公司、研究所、IC设计企业、汽车制造厂商等。基于FTP可以满足企业与外部合作伙伴文件收发的基础需求&#xff0c;但在IT运维管理、数据安全保障及业务便利性上仍存在不同程度的缺陷和不足…

Simulink中Matlab function使用全局变量

目录 一. 引言二. 普通Matlab function使用全局变量三. Simulink中的Matlab function使用全局变量四. 如何利用Matlab function的全局变量施加随机噪声 一. 引言 最近发现了之前仿真中的一个问题&#xff0c;记录一下备忘。 Matlab function中有时候需要用到全局变量&#xf…

Jmeter的安装,设置中文,解决乱码问题

1.Jmeter安装 1-Jmeter如何下载 1---我这里提供一个下载快的方式 https://www.123684.com/s/lWZKVv-4jiav?提取码:4x4y 2---Jmeter官网下载地址 Apache JMeter - Download Apache JMeter 2-配置java环境 1---下载javaJDK 官方下载地址 https://www.oracle.com/java/techno…

深 度 学 习

神经网络基础 一、逻辑回归( Logic Regression ) 1 问题的模型 模型&#xff1a; 其中xx为输入量&#xff0c;y^​预测量&#xff0c;σ()激活函数。   逻辑回归主要用于二分类问题的拟合&#xff1a;0≤y^P(y1∣x)≤1&#xff0c;σ(z)如图&#xff1a; ​ 问题&#xff…

华为OD机试 - 最低位排序 - 数组(Java 2024 E卷 100分)

华为OD机试 2024E卷题库疯狂收录中&#xff0c;刷题点这里 专栏导读 本专栏收录于《华为OD机试&#xff08;JAVA&#xff09;真题&#xff08;E卷D卷A卷B卷C卷&#xff09;》。 刷的越多&#xff0c;抽中的概率越大&#xff0c;私信哪吒&#xff0c;备注华为OD&#xff0c;加…

C语言:文件操作2(又一万字?)

关于文件操作这章内容&#xff0c;因为知道内容较多所以我分两篇发了&#xff0c;但是还是没料到第二篇还是这么多&#xff0c;达到了一万多字&#xff01;&#xff01;&#xff01;作者本人真的将知识点进行了超级详解分析并且举了很多例子来帮助读者理解&#xff0c;本文章较…

RabbitMQ队列详细属性(重要)

RabbitMQ队列详细属性 1、队列的属性介绍1.1、Type&#xff1a;队列类型1.2、Name&#xff1a;队列名称1.3、Durability&#xff1a;声明队列是否持久化1.4、Auto delete&#xff1a; 是否自动删除1.5、Exclusive&#xff1a;1.6、Arguments&#xff1a;队列的其他属性&#xf…

【大模型】相比现有智能体(Agent)系统,微软新推出的 Magnetic-One 值得一看吗?

微软最近发布的Magnetic-One智能体系统在开源社区引发了广泛关注&#xff0c;因其在性能、灵活性和扩展性方面表现出色&#xff0c;被誉为目前开源社区最强的智能体解决方案。本文将从评测结果、工作原理、与现有智能体系统的比较三个方面&#xff0c;全面解析Magnetic-One的独…

C++——左值和右值的本质区别

左值和右值好干嘛&#xff1f; 深入理解左值和右值可以帮助我们对代码进行优化 一、什么是左值和右值 左值&#xff1a;有某种存储支持的变量 右值&#xff1a;临时值&#xff08;字面量、函数的结果&#xff09; Ⅰ右值是字面量 int yy 22;22本身就是一个临时的&#xf…

Rust-AOP编程实战

文章本天成,妙手偶得之。粹然无疵瑕,岂复须人为?君看古彝器,巧拙两无施。汉最近先秦,固已殊淳漓。胡部何为者,豪竹杂哀丝。后夔不复作,千载谁与期? ——《文章》宋陆游 【哲理】文章本是不加人工,天然而成的,是技艺高超的人在偶然间所得到的。其实作者所说的“天成”…

深入了解支持向量机:机器学习中的经典算法

✅作者简介&#xff1a;2022年博客新星 第八。热爱国学的Java后端开发者&#xff0c;修心和技术同步精进。 &#x1f34e;个人主页&#xff1a;Java Fans的博客 &#x1f34a;个人信条&#xff1a;不迁怒&#xff0c;不贰过。小知识&#xff0c;大智慧。 &#x1f49e;当前专栏…

第01章 Linux概述及系统环境搭建

目标: ◆ 知道 Linux 是什么&#xff1f;有什么特点&#xff1f; ◆ 知道 Linux 内核及发行版的区别 ◆ 知道 Linux 的应用领域 ◆ 能够在虚拟机软件上新建虚拟机 ◆ 能够在虚拟机中挂载CentOS6.7光盘镜像 ◆ 能够根据需求安装CentOS6.7的操作系统 ◆ 能够对系统进行登录和关闭…

【题解】—— LeetCode一周小结45

&#x1f31f;欢迎来到 我的博客 —— 探索技术的无限可能&#xff01; &#x1f31f;博客的简介&#xff08;文章目录&#xff09; 【题解】—— 每日一道题目栏 上接&#xff1a;【题解】—— LeetCode一周小结44 4.平方数之和 题目链接&#xff1a;633. 平方数之和 给定一…

Python爬虫基础-正则表达式!

前言 正则表达式是对字符串的一种逻辑公式&#xff0c;用事先定义好的一些特定字符、及这些特定字符的组合&#xff0c;组成一个“规则的字符串”&#xff0c;此字符串用来表示对字符串的一种“过滤”逻辑。正在在很多开发语言中都存在&#xff0c;而非python独有。对其知识点…

kdump 应该怎么安装 linux-crashdump kdump-tools

sudo apt install linux-crashdump sudo apt install crash sudo apt install kdump-tools 1. 两个工具的关系 linux-crashdump kdump-tools 在 Ubuntu 上安装 kdump 功能&#xff0c;这两个包都是相关的&#xff0c;但有不同的作用. linux-crashdump 是一个元包&#xff08;…

STM32F405RGT6单片机原理图、PCB免费分享

大学时机创比赛时画的板子&#xff0c;比到一半因为疫情回家&#xff0c;无后续&#xff0c;&#xff0c;&#xff0c;已打板验证过&#xff0c;使用stm32f405rgt6做主控 下载文件资源如下 原理图文件 pcb文件 外壳模型文件 stm32f405例程 功能 以下功能全部验证通过 4路…

2024-11-01 - 统一身份认证 - OpenLdap - 中间件 - 流雨声

摘要 2024-11-01 周五 杭州 暴雨 调查问卷: https://www.wjx.cn/vm/exIBFDM.aspx# 2024年转瞬即逝&#xff0c;可是生活还在继续&#xff0c;这里有一项关于人工智能和项目管理对于效能关系的调研问卷&#xff0c;AI 对工作的作用和影响。问卷不采集个人信息&#xff0c;在此…

基于微信小程序的电商平台+LW示例参考

1.项目介绍 系统角色&#xff1a;管理员、普通用户功能模块&#xff1a;管理员&#xff08;用户管理、商品分类、商品管理、订单管理、系统管理等&#xff09;&#xff0c;普通用户&#xff08;个人中心、收藏、我的订单、查看商品等&#xff09;技术选型&#xff1a;SpringBo…