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

Vue怎么使用ElemenUI对table的指定列进行合算

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

北京

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

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

看不清楚,换张图片

免费获取短信验证码

Vue怎么使用ElemenUI对table的指定列进行合算

这篇文章主要介绍“Vue怎么使用ElemenUI对table的指定列进行合算”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Vue怎么使用ElemenUI对table的指定列进行合算”文章能帮助大家解决问题。

前言

table中有一项内容是花销的金额。然后想在table的底部有一项内容是该金额的总计。然后我就顺着elemetui的table组件寻找相关的demo,还真发现了一个这样的demo。

Vue怎么使用ElemenUI对table的指定列进行合算

对于这个demo,官方是这么描述的:

将show-summary设置为true就会在表格尾部展示合计行。默认情况下,对于合计行,第一列不进行数据求合操作,而是显示「合计」二字(可通过sum-text配置),其余列会将本列所有数值进行求合操作,并显示出来。当然,你也可以定义自己的合计逻辑。使用summary-method并传入一个方法,返回一个数组,这个数组中的各项就会显示在合计行的各列中,具体可以参考本例中的第二个表格。

通过描述可以发现几个要点:

可以通过show-summary开启在表格尾部展示合计行,默认是false,改成true即可开启,第一列不进行数据求合操作。
2.尾部合计的文案默认是合计,可以通过sum-text自定义修改
3.可以通过summary-method编写一个函数,自定义合计的逻辑

Vue怎么使用ElemenUI对table的指定列进行合算

官方的原生代码如下:

<template>  <el-table    :data="tableData"    border    show-summary    >    <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="数值 1">    </el-table-column>    <el-table-column      prop="amount2"      sortable      label="数值 2">    </el-table-column>    <el-table-column      prop="amount3"      sortable      label="数值 3">    </el-table-column>  </el-table>  <el-table    :data="tableData"    border    height="200"    :summary-method="getSummaries"    show-summary    >    <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"      label="数值 1(元)">    </el-table-column>    <el-table-column      prop="amount2"      label="数值 2(元)">    </el-table-column>    <el-table-column      prop="amount3"      label="数值 3(元)">    </el-table-column>  </el-table></template><script>  export default {    data() {      return {        tableData: [{          id: '12987122',          name: '王小虎',          amount1: '234',          amount2: '3.2',          amount3: 10        }, {          id: '12987123',          name: '王小虎',          amount1: '165',          amount2: '4.43',          amount3: 12        }, {          id: '12987124',          name: '王小虎',          amount1: '324',          amount2: '1.9',          amount3: 9        }, {          id: '12987125',          name: '王小虎',          amount1: '621',          amount2: '2.2',          amount3: 17        }, {          id: '12987126',          name: '王小虎',          amount1: '539',          amount2: '4.1',          amount3: 15        }]      };    },    methods: {      getSummaries(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;      }    }  };</script>

接下来就改造下代码,根据自己的需求去修改对应的逻辑。

show-summary合计项初始化

首先把相关的代码加上,初始化就是这样的一个效果

Vue怎么使用ElemenUI对table的指定列进行合算

Vue怎么使用ElemenUI对table的指定列进行合算

sum-tex修改文案

但是默认的文案是合计,有时候我们可能需要根据自己的场景进行修改

这时候就可以使用sum-tex属性进行修改了,比如我这里修改:

sum-text="总共消费

Vue怎么使用ElemenUI对table的指定列进行合算

效果马上就来

Vue怎么使用ElemenUI对table的指定列进行合算

但是这时候还有一个问题,我只想要消费金额这一列进行汇总,但是现在的情况是把table全部的列都汇总了。甚至把我的字典值都汇总了。

这显然不符合我的需求,这时候就可以使用自定义函数了。

Vue怎么使用ElemenUI对table的指定列进行合算

summary-method自定义函数

和前面两个属性一样,直接加在table中即可。由于它的值是一个函数,所以写法和前两位略有不同。

Vue怎么使用ElemenUI对table的指定列进行合算

Vue怎么使用ElemenUI对table的指定列进行合算

我们也可以再这个函数里面通过 sums[index] 去定义总价的文案,如果sum-text和函数里面定义的 sums[index] 有冲突,会以函数中的 sums[index] 文案为主

Vue怎么使用ElemenUI对table的指定列进行合算

这时候的效果是这样的。

Vue怎么使用ElemenUI对table的指定列进行合算

自定义总计列 单个列

如果我们只想要对某一列进行总计,那么可以借助column的property属性:

Vue怎么使用ElemenUI对table的指定列进行合算

可以发现其实就是全部的属性名称,那么我们就可以根据它判断,实现自定义核算了

Vue怎么使用ElemenUI对table的指定列进行合算

比如这里我想要核算amount这一列的值:

Vue怎么使用ElemenUI对table的指定列进行合算

Vue怎么使用ElemenUI对table的指定列进行合算

多个列

如果哪天又加了一个需求,需要再算一个列,这时候在判断里面加上这个条件即可。使用|| 拼接该列

比如这里我又要合算remark这一列。就可以这么写:

Vue怎么使用ElemenUI对table的指定列进行合算

Vue怎么使用ElemenUI对table的指定列进行合算

相关代码如下:

<el-table       :data="moneyTableData.slice((currentPage-1)*pagesize,currentPage*pagesize)"        highlight-current-row       border       stripe      fit      show-summary      sum-text="总共消费"      :summary-method="getSummaries"    >// 对列进行合算    getSummaries(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]));          // 只对amount这一列进行总计核算。         if (column.property === 'amount') {            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] = '---'            }         }      });        return sums;    },

关于“Vue怎么使用ElemenUI对table的指定列进行合算”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注编程网行业资讯频道,小编每天都会为大家更新不同的知识点。

免责声明:

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

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

Vue怎么使用ElemenUI对table的指定列进行合算

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

下载Word文档

猜你喜欢

Vue怎么使用ElemenUI对table的指定列进行合算

这篇文章主要介绍“Vue怎么使用ElemenUI对table的指定列进行合算”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Vue怎么使用ElemenUI对table的指定列进行合算”文章能帮助大家解
2023-07-05

Vue使用ElemenUI对table的指定列进行合算的方法

这篇文章主要介绍了Vue使用ElemenUI对table的指定列进行合算的方法,本文结合实例代码给大家介绍的非常详细,需要的朋友可以参考下
2023-03-08

ElementUI怎么对table的指定列进行合算

今天小编给大家分享一下ElementUI怎么对table的指定列进行合算的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。前言最
2023-07-05

ElementUI对table的指定列进行合算

本文主要介绍了ElementUI对table的指定列进行合算,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
2023-03-19

Vue怎么使用ElementUI对表单元素进行自定义校验

今天小编给大家分享一下Vue怎么使用ElementUI对表单元素进行自定义校验的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。
2023-07-05

vue怎么使用js对图片进行点击标注圆点并记录它的坐标

这篇文章主要介绍“vue怎么使用js对图片进行点击标注圆点并记录它的坐标”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“vue怎么使用js对图片进行点击标注圆点并记录它的坐标”文章能帮助大家解决问题。
2023-06-30

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录