当前位置: 首页 > article >正文

el-table表格表尾合计行,指定合计某几列,自定义合计方法

🤵 作者coderYYY
🧑 个人简介:前端程序媛,目前主攻web前端,后端辅助,其他技术知识也会偶尔分享🍀欢迎和我一起交流!🚀(评论和私信一般会回!!)
👉 个人专栏推荐:《前端项目教程以及代码》

✨一、前言

  • el-table如果加上show-summary属性,表尾第一列会显示“合计”二字,其余列会将本列所有数值进行求合操作,并显示出来。
<template>
  <el-table
    :data="tableData"
    border
    show-summary
    style="width: 100%">
    <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>

  • 有时候只想对其中几列进行合计,就可以使用summary-method自定义我们的合计方法,指定要合计哪些列。

🚩二、具体实现

方法很简单,只要加个条件就可以


  <el-table
    :data="tableData"
    border
    height="200"
    :summary-method="getSummaries"
    show-summary
    style="width: 100%; margin-top: 20px">
    <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) {
      // console.log(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]));
        // 只合计amount1和amount3,想合并哪些列就在这里指定
        if (column.property === "amount1"||column.property === "amount2") {
          sums[index] = values.reduce((prev, curr) => {
            const value = Number(curr);
            if (!isNaN(value)) {
              return prev + curr;
            } else {
              return prev;
            }
          }, 0);
        }
      });
      return sums;
    },
  };
</script>

http://www.kler.cn/news/342923.html

相关文章:

  • 小华HC32F4A0PITB-LQFP100 4A0SITB-LQFP176工业控制
  • 免费又好用的保护网站WAF,基于语义引擎的waf雷池社区版推荐
  • Lua 数据类型
  • Windows7 X64 成功安装 .NET Framework 4.8 的两种方法
  • 代码随想录算法训练营day51
  • 【Linux复习】指令
  • 【工具】前端js数字金额转中文大写金额
  • xml文件格式样例
  • 《网络基础之 HTTP 协议:状态码含义全解析》
  • 滚雪球学Redis[2.2讲]:列表(List)
  • 户外足球运动人像自拍摄影后期Lr调色教程,手机滤镜PS+Lightroom预设下载!
  • Leetcode 完全平方数
  • TypeScript 中命名空间与模块的理解及区别
  • 美化pytest运行:pytest-sugar
  • 11.Lab Ten —— mmap
  • 《自然语言处理NLP》—— 独热编码(One-Hot Encoding)
  • 华为 HCIP-Datacom H12-821 题库 (35)
  • Docker安装Nginx
  • 在python中如何判断回文串(一)?
  • 设计模式01-类图及设计原理(Java)