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

相关推荐
福狼3 分钟前
从“网墙”到柔性曲面:一次 WebGPU 波浪的逆向分析与重建
前端·逆向
宝哥聊编程11 分钟前
主流 Agent 平台对比:Coze、Dify、飞书、扣子、OpenClaw 落地实操手册
前端·人工智能·飞书
时间的情敌33 分钟前
Vue3 + Cesium 实战:本地上传 GLB 模型、模型上叠加 GLB、点击控制透明度
前端·vue.js·cesium
拖孩37 分钟前
流量主门槛从 500 降到 100,我的小程序上线 18 小时够到了线
前端·后端·微信小程序
深蓝AI1 小时前
编码 Agent 的界面味靠提示词压不住:Impeccable 用无模型规则拦同一套模板
前端·程序员
CCIE-Yasuo1 小时前
网络安全-Javascript基础
javascript·安全·web安全
January12072 小时前
【AI方法笔记】2026-11-02:模型流式吐 JSON 时,前端会遇到四种崩法
前端·人工智能·笔记·json
asdzx672 小时前
C# 操作 PDF 元数据:从属性写入到字段提取的完整流程
前端·pdf·c#
幻境如梦丶皆为虚2 小时前
从零写一个 DSH 插件:在左侧菜单栏加一个「测试」
开发语言·javascript·ecmascript
吹什么轩2 小时前
constexpr 完全指南:从 const 的两种含义,到编译期计算的四次演进
java·前端·javascript