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 方法,当你点击某个按钮时,它将在表格的第一行添加一个新行。你可以根据你的需要修改这些方法。

相关推荐
会一丢丢蝶泳的咻狗5 小时前
Sass实现,蛇形流动布局
前端·css
攀登的牵牛花5 小时前
前端向架构突围系列 - 状态数据设计 [8 - 4]:有限状态机 (FSM) 在复杂前端逻辑中的应用
前端
Lsx_5 小时前
前端视角下认识 AI Agent 和 LangChain
前端·人工智能·agent
陈振wx:zchen20085 小时前
JavaScript
javascript·js
我是伪码农5 小时前
Vue 智慧商城项目
前端·javascript·vue.js
不认输的西瓜6 小时前
fetch-event-source源码解读
前端·javascript
用户39051332192886 小时前
前端性能杀手竟然不是JS?图片优化才是绝大多数人忽略的"降本增效"方案
前端
朱昆鹏6 小时前
开源 Claude Code + Codex + 面板 的未来vibecoding平台
前端·后端·github
lyrieek6 小时前
pgadmin的导出图实现,还在搞先美容后拍照再恢复?
前端
小书包酱6 小时前
在 VS Code中,vue2-vuex 使用终于有体验感增强的插件了。
vue.js·vuex