vue element-ui中table合计指定列求和实例


Posted in Javascript onNovember 02, 2020

注意点:

1. <el-table> 中 加:summary-method="getSummaries"

2. <el-table-column> 中要加 prop

// 房间号的合计去掉
 getSummaries (param) {
  const { columns, data } = param
  const sums = []
  columns.forEach((column, index) => {
  if (index === 0) {
   sums[index] = '总计'
  } else if (index === 5 || index === 6) {
   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)
   } else {
   sums[index] = 'N/A'
   }
  } else {
   sums[index] = '--'
  }
  })
  return sums
 }

效果图

vue element-ui中table合计指定列求和实例

补充知识:vue+elementUI的表格最后一行合计自定义显示

1.在看了elementUI的文档后重要的俩个属性是 show-summary :summary-method="getSummaries" getSummaries这个是自定义方法函数的方法。

HTML的代码:

show-summary :summary-method="getSummaries的属性要加上,还有一个很重要的一点就是要 必须要在el-table-column中必须是prop来传值"

<el-table :key='tableKey' :data="listData" show-summary :summary-method="getSummaries" v-loading="listLoading" border fit highlight-current-row
    style="width:100%;margin-top:8px" :header-cell-style="{background:'oldlace'}">>
    
     <el-table-column prop="equipmentType" align="center" label="设备类型" min-width="50">
     </el-table-column>
     <el-table-column prop="equipmentName" align="center" label="设备名称" min-width="50">
     </el-table-column>
     <el-table-column prop="equipmentCode" align="center" label="设备编号" min-width="50">
     </el-table-column>
     <el-table-column prop="openRate" align="center" label="开机率" min-width="50">
     </el-table-column>
     <el-table-column prop="planWorkTime" align="center" label="计划工作时间" min-width="50">
     </el-table-column>
     <el-table-column prop="closeTime" align="center" label="关机时间(h)" min-width="50">
     </el-table-column>
     <el-table-column prop="machiningTime" align="center" label="加工时间(h)" min-width="50">
     </el-table-column>
     <el-table-column prop="stopTime" align="center" label="停工时间(h)" min-width="50">
     </el-table-column>
     <el-table-column prop="debugTime" align="center" label="调试时间(h)" min-width="50">
     </el-table-column>
 
    <el-table-column align="center" label="查看" min-width="210">
     <template slot-scope="scope">
     <el-button title="时序图" type="primary" size="mini" @click="profile(scope.row)" v-show="SXTbatshow">时序图</el-button>
     <el-button title="状态时长统计图" type="danger" size="mini" @click="cartogram(scope.row)">状态时长统计图</el-button>
     <el-button title="状态占比图" type="success" size="mini" @click="diagram(scope.row)">状态占比图</el-button>
     </template>
    </el-table-column>
    </el-table>

在script要写的代码:

// 表格总计的时间
 getSummaries(param) {
  const { columns, data } = param;
  /* console.log(1234)
  console.log(param) */ 
  const sums = [];
  columns.forEach((column, index) => {
   if (index === 0) {
   sums[index] = '总计';
   return;
   }
   //this.closeList等等是后台返回的总的数据,然后取值到这里
   switch(column.property) {
   case "closeTime":
   sums[index] = this.closeList + ' h' 
   break;
   case "machiningTime":
   sums[index] = this.machiningTimeList + ' h'
   break;
   case "stopTime":
   sums[index] = this.stopTimeList + ' h' 
   break;
   case "debugTime":
   sums[index] = this.debugTimeList + ' h' 
   break;
   default:
   break;
   }
  });

  return sums;
  },

效果图:

vue element-ui中table合计指定列求和实例

vue element-ui中table合计指定列求和实例

以上这篇vue element-ui中table合计指定列求和实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
Jquery Ajax学习实例 向页面发出请求,返回XML格式数据
Mar 14 Javascript
Jquery之美中不足小结
Feb 16 Javascript
从jQuery.camelCase()学习string.replace() 函数学习
Sep 13 Javascript
myEvent.js javascript跨浏览器事件框架
Oct 24 Javascript
巧用js提交表单轻松解决一个页面有多个提交按钮
Nov 17 Javascript
js 页面元素的几个用法总结
Nov 18 Javascript
Jquery 实现grid绑定模板
Jan 28 Javascript
需要牢记的JavaScript基础知识
Sep 25 Javascript
webpack构建react多页面应用详解
Sep 15 Javascript
浅谈Webpack下多环境配置的思路
Jun 27 Javascript
vue路由传参的基本实现方式小结【三种方式】
Feb 05 Javascript
react使用antd表单赋值,用于修改弹框的操作
Oct 29 Javascript
vue 动态添加class,三个以上的条件做判断方式
Nov 02 #Javascript
vue 公共列表选择组件,引用Vant-UI的样式方式
Nov 02 #Javascript
在vant 中使用cell组件 定义图标该图片和位置操作
Nov 02 #Javascript
Vant picker 多级联动操作
Nov 02 #Javascript
vue实现列表拖拽排序的功能
Nov 02 #Javascript
用vue写一个日历
Nov 02 #Javascript
在vue中使用vant TreeSelect分类选择组件操作
Nov 02 #Javascript
You might like
PHP+APACHE实现用户论证的方法
2006/10/09 PHP
最令PHP初学者们头痛的十四个问题
2007/01/15 PHP
PHP转换IP地址到真实地址的方法详解
2013/06/09 PHP
使用Smarty 获取当前日期时间和格式化日期时间的方法详解
2013/06/18 PHP
PHP连接MSSQL2008/2005数据库(SQLSRV)配置实例
2014/10/22 PHP
PHP如何将XML转成数组
2016/04/04 PHP
基于ThinkPHP实现的日历功能实例详解
2017/04/15 PHP
php高清晰度无损图片压缩功能的实现代码
2018/12/09 PHP
PHP array_shift()用法实例分析
2019/01/07 PHP
Javascript Jquery 遍历Json的实现代码
2010/03/31 Javascript
jquery获取被勾选的checked(选中)的那一行的3列和4列的值
2013/07/04 Javascript
jQuery插件开发汇总
2016/05/15 Javascript
JavaScript的ExtJS框架中数面板TreePanel的使用实例解析
2016/05/21 Javascript
老生常谈javascript的类型转换
2016/10/12 Javascript
js实现table添加行tr、删除行tr、清空行tr的简单实例
2016/10/15 Javascript
jquery实现拖动效果(代码分享)
2017/01/25 Javascript
浅谈对Angular中的生命周期钩子的理解
2017/07/31 Javascript
angularJs利用$scope处理升降序的方法
2018/10/08 Javascript
JS中使用cavas截图网页并解决跨域及模糊问题
2018/11/13 Javascript
layui-table获得当前行的上/下一行数据的例子
2019/09/24 Javascript
浅谈微信小程序列表埋点曝光指南
2019/10/15 Javascript
使用Promise封装小程序wx.request的实现方法
2019/11/13 Javascript
用python实现批量重命名文件的代码
2012/05/25 Python
10 行 Python 代码教你自动发送短信(不想回复工作邮件妙招)
2018/10/11 Python
django orm模块中的 is_delete用法
2020/05/20 Python
基于Python组装jmx并调用JMeter实现压力测试
2020/11/03 Python
python链表类中获取元素实例方法
2021/02/23 Python
HTML5的结构和语义(1):前言
2008/10/17 HTML / CSS
使用phonegap获取位置信息的实现方法
2017/03/31 HTML / CSS
纽约JewelryAffairs珠宝店:精细金银时尚首饰
2017/02/05 全球购物
LivingSocial爱尔兰:爱尔兰本地优惠
2018/08/10 全球购物
为什么UNION ALL比UNION快
2016/03/17 面试题
青年安全生产示范岗事迹材料
2014/05/04 职场文书
政协调研汇报材料
2014/08/15 职场文书
Java Socket实现多人聊天系统
2021/07/15 Java/Android
python分分钟绘制精美地图海报
2022/02/15 Python