Vue3:element-plus el-Table列表合计处理显示字符串类型/计算合计数值

news2024/9/25 6:53:36

需求整理

1.使用element组件库中的 el-table组件实现图上 底部当前页合计的功能。在一般的情况下,只需要计算数值部分的值,因为组件中的方法中处理的就是将值的类型转换成数值类型,像string类型的字符串的话,在进行转换的时候会出现NaN的情况。

Element官网示例

官网地址:Element组件官网

将官网组件示例复制下来

1.处理官网示例方法,目前示例方法中处理的是数值类型的数据,string类型会显示N/A.

<el-table
      :data="PropTableS.tables"
      show-summary="true"
      :summary-method="getSummaries"
      
> </el-table>


<script setup >

//尾部计算合计
function getSummaries(param: {
  columns: any[];
  data: any[];
}): (string | VNode)[] {
  const { columns, data } = param;
  const sums: (string | VNode)[] = [];
  if(proxy.$route.path.indexOf('logarithm') != -1){
    sums[0] = h("div", { style: { textDecoration: "underline" } }, ["本页合计"]);
  }else{
    sums[0] = h("div", { style: { textDecoration: "underline" } }, ["合计"]);
  }
  columns.slice(1).forEach((column) => {
    
        const values = data.map(
          //判断遍历的数据类型是 数值类型的 判断需要计算合计的列 是否能转换成 parseFloat类型,如果可以就表明值是 number类型,否则是string类型 ,在判断string类型是否是空字符串的时候 换成0 ,不为空字符串就不做处理这就是要现实的中文
          (item) => !isNaN(parseFloat(item[column.property])) ? parseFloat(item[column.property]) :  item[column.property] == '' ?  0  :  item[column.property]
        );
console.log('valuesvaluesvaluesvaluesvalues',values);
            //判断数组中书否包含有string类型的值 并且 是否能转换成number类型('' 空字符串换成number类型为0)  如果不行 那就是说明包含了字符串类型的值
        let sum:any = null
        if(values.every(item => !isNaN(Number(item)))){
         
         sum = values.reduce((acc, val) => acc   + val, 0);
        }
        else{
          //判断是否为空,如果不为空就赋值sum,这种只能是 sum数组中 都存在所有值都想同的情况下 ,否则你将不知道取哪个字符串显示在 合计行中显示
          values.map(item => {
            if(item != '' ){
                sum = item
              }
          })
        }
        sums[column.property] = sum
  });
  // 根据实际列顺序返回 sums 数组
  // 这里假设 columns 的顺序与表格列的顺序一致
  return columns.map((_, index) =>
    index === 0 ? sums[0] : sums[columns[index].property] || ""
  );
}







</script>

代码中 console.log('valuesvaluesvaluesvaluesvalues',values);的输出结果

后端返回的数据

效果展示

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

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

相关文章

什么是远程过程调用(RPC)

进程间通信(IPC) 进程间通信(Inter-Process Communication)是指两个进程或者线程之间传送数据或者信号的一些技术或者方法。进程是计算机进行资源分配的最小的单位。每个进程都有自己独立的系统资源,而且彼此之间是相对隔离的。为了使得不同的进程之间能够互相访问,相互协…

Redis: 特色,业务场景举例,底层原理,持续进阶等问题梳理

Redis 的特色 Redis 是目前使用非常广泛的中间件&#xff0c;在于它功能强大&#xff0c;持续改进&#xff0c;经久不衰主要体现在以下几点 1 ) 高性能: Redis 的底层是C语言编写的&#xff0c;它的定位是内存型数据库而且 Redis 的作者对操作系统也非常的精通它通讯方式采用了…

MobileNetV2: Inverted Residuals and Linear Bottlenecks

Link&#xff1a;https://arxiv.org/abs/1801.04381 这篇文章是一篇关于MobileNetV2的学术论文&#xff0c;主要介绍了MobileNetV2的架构设计及其在图像分类、目标检测和语义分割任务中的应用。以下是对这些核心内容的简要概述&#xff1a; MobileNetV2架构设计&#xff1a; …

深度学习技术在超材料科学中的应用与实操

人工智能算法赋能材料设计与应用专题培训 前沿背景 人工智能与材料科学的融合趋势&#xff1a;在材料科学领域&#xff0c;人工智能&#xff08;AI&#xff09;的引入正在引发一场革命。传统的材料设计和优化依赖于经验和试错方法&#xff0c;这不仅耗时且成本高昂。关于AI赋…

Note_XML学习笔记

XML学习笔记 1. XML 教程 经常见到XML学习一下。由于是学到中间才想起记笔记&#xff0c;之前的就简略回顾一下&#xff1a; 1&#xff09;XML是数据存储的一种语言载体&#xff1b; 2&#xff09;只负责存储&#xff0c;不负责显示&#xff1b; 3&#xff09;和HTML语言的风…

简单的算法题

1、求12345 #include <stdio.h> int main(){int i,s1;for(i1;i<5;i){s s*i;}printf("%d",s); }2、求1357911 #include <stdio.h> int main(){int i,s1;for(i1;i<11;ii2){s s*i;}printf("%d",s); }3、判定2000—2500年中的每一年是否…

CSP-CCF★★★201909-2小明种苹果(续)★★★

一、问题描述 二、解答 关键&#xff1a;判断是否发生苹果掉落&#xff0c;使用flag[]数组来标记&#xff0c;1为掉落&#xff0c;0为没有掉落&#xff0c;这样也是为了后续比较连续三棵树是否掉落 误区&#xff1a;用最后一次正数&#xff08;即最后一次统计苹果个数&#x…

ChatGPT 提取文档内容,高效制作PPT、论文

随着人工智能生成内容&#xff08;AIGC&#xff09;的快速发展&#xff0c;利用先进的技术工具如 ChatGPT 的 RAG&#xff08;Retrieval-Augmented Generation&#xff0c;检索增强生成&#xff09;模式&#xff0c;可以显著提升文档内容提取和内容创作的效率。以下将详细介绍如…

LabVIEW提高开发效率技巧----使用状态机架构

状态机架构&#xff08;State Machine Architecture&#xff09;是LabVIEW编程中的一种常见且高效的设计模式&#xff0c;特别适合用于处理具有多个操作状态的复杂系统。通过这种架构&#xff0c;程序能够根据不同的输入条件或事件&#xff0c;在多个状态之间切换&#xff0c;从…

canvas分享,从入门到入门。

开始之前 canvas是一个可以使用脚本在其中绘制图形的 HTML 元素.它本身并不具备绘图能力&#xff0c;需要配合JavaScript使用 用途 游戏应用特效字体相册&#xff0c;幻灯片股票行情等动态图像思维图以及图形编辑器等在线可视化工具 基本特性 canvas元素会初始化宽度为300像…

Java | Leetcode Java题解之第434题字符串中的单词数

题目&#xff1a; 题解&#xff1a; class Solution {public int countSegments(String s) {int segmentCount 0;for (int i 0; i < s.length(); i) {if ((i 0 || s.charAt(i - 1) ) && s.charAt(i) ! ) {segmentCount;}}return segmentCount;} }

黎巴嫩寻呼机爆炸案背后的技术原理

引言 近日&#xff0c;黎巴嫩发生了一起震惊世界的寻呼机爆炸事件。当地时间9月17日和19日&#xff0c;黎巴嫩多地的寻呼机和对讲机先后发生爆炸&#xff0c;造成了大量人员伤亡。这起事件引发了全球对电子设备安全性的广泛关注。本文将从技术角度分析这次寻呼机爆炸案的背后原…

OTTO奥托机器人开发总结

OTTO机器人是一个开源外壳&#xff0c;硬件和软件的桌面机器人项目&#xff0c;非常适合新手研究和拓展。 我一直希望找一个合适的项目入手研究机器人&#xff0c;这种项目最好是软硬件都开源的&#xff0c;可以随着自己的想法无限的扩展和私人订制&#xff0c;做为初学者&…

【计网】从零开始掌握序列化 --- 基础知识储备与程序重构

从零开始掌握序列化与反序列化 1 初识序列化与反序列化2 再谈Tcp协议3 程序重构3.1 Socket类3.2 回调函数设计3.3 最终的Tcp服务器类 1 初识序列化与反序列化 在刚学习计算机网络时&#xff0c;我们谈到过网络协议栈&#xff0c;其中最上层的就是应用层&#xff0c;那么这个应…

探索Llama 3.1:开源模型的本地部署与创新应用实践

文章目录 1 Llama 3.1模型的突破性进展2 Llama 3.1模型在业务场景中的实践案例3 使用教程4 Llama 3.1在客户服务中的运用 1 Llama 3.1模型的突破性进展 在数字化转型的浪潮中&#xff0c;大型语言模型&#xff08;LLM&#xff09;以其卓越的处理能力和广泛的应用潜力&#xff…

深度学习500问——Chapter14:超参数调整(3)

文章目录 14.5 如何改善GAN的性能 14.6 AutoML 14.6.1 什么是AutoML 14.6.2 自动化超参数搜索方法有哪些 14.6.3 什么是神经网络架构搜索&#xff08;NAS&#xff09; 14.6.4 NASNet的设计策略 14.6.5 网络设计中&#xff0c;为什么卷积核设计尺寸都是奇数 14.6.6 网络设计中&a…

Spring MVC 参数校验 总结

1. 简介 Sping MVC提供了参数校验的方便注解。 2.代码 在pom.xml中添加依赖&#xff1a; <dependency><groupId>org.hibernate.validator</groupId><artifactId>hibernate-validator</artifactId><version>8.0.0.Final</version&g…

Java | Leetcode Java题解之第435题无重叠区间

题目&#xff1a; 题解&#xff1a; class Solution {public int eraseOverlapIntervals(int[][] intervals) {if (intervals.length 0) {return 0;}Arrays.sort(intervals, new Comparator<int[]>() {public int compare(int[] interval1, int[] interval2) {return i…

海外仓系统如何成为数据管理效率的加速器?

在数字化信息时代&#xff0c;海外仓系统的数据管理效率对企业运营的重要性不言而喻。随着电子商务和跨境贸易的快速发展&#xff0c;高效的数据管理不仅影响着货物的流通速度、客户满意度&#xff0c;还关系到企业的盈利能力。为了在海外市场中立足&#xff0c;提升海外仓的数…

《机器学习》周志华-CH8(集成学习)

8.1个体与集成 集成学习(ensemble learning)通过构建并结合多个学习器来完成学习任务&#xff0c;有时也被称为多分类器系统&#xff0c;基于委员会的学习。 同质”集成“&#xff1a;只包含同种类型的个体学习器&#xff0c;同质集成中的个体学习器亦称“基学习器”&#xff0…