Vue使用ElemenUI对table的指定列进行合算
创始人
2024-05-29 13:42:39
0

前言

最近有一个想法,就是记录自己花销的时候,table中有一项内容是花销的金额。然后想在table的底部有一项内容是该金额的总计。

然后我就顺着elemetui的table组件寻找相关的demo,还真发现了一个这样的demo。

在这里插入图片描述

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

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

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

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

在这里插入图片描述

官方的原生代码如下:


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

show-summary合计项初始化

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

在这里插入图片描述

在这里插入图片描述

sum-tex修改文案

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

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

sum-text="总共消费

在这里插入图片描述

效果马上就来

在这里插入图片描述

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

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

在这里插入图片描述

summary-method自定义函数

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

在这里插入图片描述

在这里插入图片描述

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

在这里插入图片描述

这时候的效果是这样的。

在这里插入图片描述

自定义总计列

单个列

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

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

在这里插入图片描述

多个列

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

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

在这里插入图片描述

在这里插入图片描述

相关代码如下:

// 对列进行合算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;},

总结

ElemenUI对这个demo封装的特别好,我们直接拿来用修改下自己的逻辑即可。

相关内容

热门资讯

鸿合如何刷安卓系统,轻松升级系... 你有没有想过,你的安卓手机怎么就能那么顺畅地运行各种应用呢?这背后,可是有鸿合这样的技术大牛在默默付...
苹果手机敢用安卓系统吗,敢用安... 你有没有想过,如果苹果手机突然决定换换口味,敢用安卓系统吗?这可不是天方夜谭哦,随着科技的发展,跨界...
安卓系统有限制么,揭秘那些你不... 你有没有想过,你的安卓手机里那些看似无所不能的应用,其实背后可能隐藏着一些限制呢?别急,今天就来聊聊...
ios系统使用安卓软件推荐,跨... 你有没有发现,虽然你的手机是iOS系统,但有时候安卓软件也让人心动不已?别急,今天就来给你支个招,让...
小米是ios系统还是安卓系统,... 你有没有想过,小米手机到底是用的是苹果的iOS系统还是安卓系统呢?这个问题,估计不少手机控都好奇过吧...
安卓系统的音频解码软件,音质之... 你有没有发现,手机里的音乐听起来总是不那么完美?有时候,高音刺耳,低音又不够深沉,这可真是让人头疼。...
服装商城安卓系统报告,安卓系统... 你有没有发现,最近手机上那些服装商城APP真是越来越火了?不信你看看,每天打开手机,各种新款衣服、打...
kindle可以装安卓系统 你有没有想过,你的Kindle电子书阅读器竟然也能装上安卓系统?是的,你没听错,那个一直以简洁著称的...
安卓如何刷成苹果系统,揭秘如何... 你有没有想过,把你的安卓手机刷成苹果系统,是不是就像给手机换了个新灵魂呢?想象那熟悉的苹果界面,流畅...
蜻蜓刷机安卓系统,解锁安卓系统... 你有没有想过,你的安卓手机是不是也该来点新鲜感呢?没错,就是那种让你眼前一亮,仿佛重生的感觉。今天,...
安卓系统版平板电脑,系统版本与... 你有没有发现,最近平板电脑市场又热闹起来了呢?尤其是安卓系统版的平板电脑,简直成了大家的新宠。今天,...
安卓系统查找我的位置 你有没有遇到过这样的情况:手机里装了各种APP,有时候突然想找找某个地方,却发现手机里竟然没有“查找...
新版安卓系统云递安闪退,新版安... 最近你的安卓手机是不是也遇到了一个小麻烦?那就是新版安卓系统里的那个“云递安”功能,它突然间开始闪退...
安卓系统能不能回溯,探索回溯技... 你有没有想过,你的安卓手机里那些曾经的信息,是不是可以像时间机器一样,让你回到过去,看看那些珍贵的回...
安卓系统的记事本,便捷记录与创... 你有没有发现,手机里的安卓系统记事本,这个小家伙竟然藏着大大的秘密呢!它就像你的私人小秘书,随时随地...
安卓小网站推荐苹果系统,探索苹... 你知道吗?在这个科技飞速发展的时代,手机已经成为了我们生活中不可或缺的一部分。无论是安卓还是苹果,它...
安卓取消系统安全警告,操作指南... 你知道吗?最近安卓系统来了一次小小的“大动作”,那就是取消了那些烦人的系统安全警告。这可真是让人又爱...
安卓系统小孩益智游戏,专为安卓... 你有没有发现,现在的小朋友们对手机和电脑的依赖程度越来越高呢?这不,最近我就在网上看到了一些关于安卓...
苹果6如何变安卓系统,揭秘如何... 你手上的苹果6是不是已经有点儿“老态龙钟”了?别急,别急,今天就来教你怎么给它换上全新的安卓系统,让...
安卓系统怎么切换桌面,轻松切换... 你有没有发现,手机里的安卓系统就像是个万能的小助手,各种功能层出不穷。不过,有时候我们可能觉得默认的...