vue给table组件添加合计

在 Vue 3 中,你可以使用 v-on:click 事件监听器来处理点击事件,并将数据添加到表格的第一行。假设你正在使用 Element UI 的表格组件,并且你想要在点击事件中添加一个合计行,你可以按照以下方式进行:

html 复制代码
<template>  
  <div>  
    <el-table :data="tableData" show-summary>  
      <el-table-column prop="date" label="日期" width="180"></el-table-column>  
      <el-table-column prop="name" label="姓名" width="180"></el-table-column>  
      <el-table-column prop="address" label="地址"></el-table-column>  
      <el-table-column :formatter="sumFormatter" label="合计"></el-table-column>  
    </el-table>  
  </div>  
</template>  
  
<script>  
export default {  
  data() {  
    return {  
      tableData: [  
        { date: '2023-07-18', name: '张三', address: '上海市普陀区金沙江路 1518 弄' },  
        { date: '2023-07-19', name: '李四', address: '上海市普陀区金沙江路 1517 弄' },  
        { date: '2023-07-20', name: '王五', address: '上海市普陀区金沙江路 1519 弄' },  
      ],  
    };  
  },  
  methods: {  
    sumFormatter(row, column, cellValue) {  
      const sum = this.tableData.reduce((sum, row) => sum + row[column.property], 0);  
      return `${sum}`; // 根据需要修改此处的格式化方式,比如添加人民币符号等  
    },  
    addRow() {  
      const newRow = { date: '2023-07-21', name: '赵六', address: '上海市普陀区金沙江路 1520 弄' };  
      this.tableData.unshift(newRow); // 在数据数组的开头添加新行  
    },  
  },  
};  
</script>

在上述代码中,我已经定义了一个 sumFormatter 方法来计算所有行中每一列的合计值,并显示在表格的最后一列。同时,我还定义了一个 addRow 方法,当你点击某个按钮时,它将在表格的第一行添加一个新行。你可以根据你的需要修改这些方法。

相关推荐
carterwu9 分钟前
各个大厂是怎么实现组件库和相应扩展的?基础组件、区块、页面
前端
Face10 分钟前
promise 规范应用
前端
Mintopia10 分钟前
Node.js 中 fs.readFile API 的使用详解
前端·javascript·node.js
Face12 分钟前
事件循环
前端·javascript
ONE_Gua14 分钟前
chromium魔改——navigator.webdriver 检测
前端·后端·爬虫
CodePencil14 分钟前
CSS专题之盒模型
前端·css
谦谦橘子14 分钟前
服务端渲染原理解析
前端·javascript·react.js
carterwu15 分钟前
umi+模块联邦-配置指南
前端
Mintopia15 分钟前
深入理解 Three.js 中的 PerspectiveCamera
前端·javascript·three.js
ElasticPDF-新国产PDF编辑器19 分钟前
Vue use pdf.js and Elasticpdf tutorial
vue.js·pdf