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

element plus中表格的合计属性和例子

在 element plus 表格中,您可以使用 summary-method 属性来指定一个函数,计算表格中列的合计或平均值等。该函数应该返回一个对象,其中包含每个列的合计值。例如,如果您的表格数据是这样的:

[
  { name: 'John', age: 20, score: 80 },
  { name: 'Mary', age: 22, score: 90 },
  { name: 'Peter', age: 21, score: 85 }
]

您可以这样设置表格的 summary-method

<el-table :data="tableData" :summary-method="getSummary">

然后实现 getSummary 函数:

methods: {
  getSummary({ columns, data }) {
    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
  }
}

在这个例子中,我们处理每个列的数据,并返回一个数组,包含每列的合计值。我们还通过在第一列插入一个“总计”的文本来使它在表格底部居中显示。您可以根据需要修改这个函数来计算特定列的平均值或其他合计方式。

完整的例子:

<template>
  <el-table :data="tableData" :summary-method="getSummary">
    <el-table-column label="Name" prop="name"></el-table-column>
    <el-table-column label="Age" prop="age"></el-table-column>
    <el-table-column label="Score" prop="score"></el-table-column>
  </el-table>
</template>

<script>
export default {
  data() {
    return {
      tableData: [
        { name: 'John', age: 20, score: 80 },
        { name: 'Mary', age: 22, score: 90 },
        { name: 'Peter', age: 21, score: 85 }
      ]
    }
  },
  methods: {
    getSummary({ columns, data }) {
      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>


http://www.kler.cn/a/147446.html

相关文章:

  • C++初阶——优先队列
  • Spring整合Redis
  • 【机器学习】机器学习中用到的高等数学知识-1.线性代数 (Linear Algebra)
  • Python调用API翻译Excel中的英语句子并回填数据
  • 【安全科普】NUMA防火墙诞生记
  • 路由器基本原理与配置
  • 0001Java程序设计-springboot基于微信小程序批发零售业商品管理系统
  • Git的原理与使用(一):Git的基本操作(包含:版本回退)
  • 深度学习18
  • 【数据结构】树与二叉树(廿二):树和森林的遍历——后根遍历(递归算法PostOrder、非递归算法NPO)
  • [ CSS ] 内容超出容器后 以...省略
  • SpringCloud-高级篇(五)
  • 【开发实践】网页预览excel表格原版样式
  • win10安装pytorch(py39)
  • 前端工程、静态代码、Html页面 打包成nginx 的 docker镜像
  • Android 相机库CameraView源码解析 (一) : 预览
  • 正点原子linux应用编程——入门篇2
  • mysql使用--存储程序
  • 【C语言】深入理解数据类型转换与运算
  • Leetcode.974 和可被 K 整除的子数组
  • 虹科Pico汽车示波器 | 汽车免拆检修 | 2016款东风悦达起亚K5车发动机怠速抖动严重、加速无力
  • 94.STM32外部中断
  • 【微服务】java 规则引擎使用详解
  • Docker-compose容器编排
  • 【深入剖析K8s】容器技术基础(一):从进程开始说起
  • numpy np.where 使用方法