验证码: 看不清楚,换一张 查询 注册会员,免验证
  • {{ basic.site_slogan }}
  • 打开微信扫一扫,
    您还可以在这里找到我们哟

    关注我们

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

阅读:453 来源:乙速云 作者:代码code

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

      前言

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

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

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

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

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

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

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

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

      官方的原生代码如下:

      
      
      

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

      show-summary合计项初始化

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

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

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

      sum-tex修改文案

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

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

      sum-text="总共消费

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

      效果马上就来

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

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

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

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

      summary-method自定义函数

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

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

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

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

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

      这时候的效果是这样的。

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

      自定义总计列

      单个列

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

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

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

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

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

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

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

      多个列

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

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

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

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

      相关代码如下:

      
      
      // 对列进行合算
          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;
          },
    分享到:
    *特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: hlamps#outlook.com (#换成@)。
    相关文章
    {{ v.title }}
    {{ v.description||(cleanHtml(v.content)).substr(0,100)+'···' }}
    你可能感兴趣
    推荐阅读 更多>