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 相关文章推荐
javascript学习基础笔记之DOM对象操作
Nov 03 Javascript
js bind 函数 使用闭包保存执行上下文
Dec 26 Javascript
javascript实现div的拖动并调整大小类似qq空间个性编辑模块
Dec 12 Javascript
判断js中各种数据的类型方法之typeof与0bject.prototype.toString讲解
Nov 07 Javascript
让alert不出现弹窗的两种方法
May 18 Javascript
jQuery实现瀑布流布局
Dec 12 Javascript
AngularJS压缩JS技巧分析
Nov 08 Javascript
详解最新vue-cli 2.9.1的webpack存在问题
Dec 16 Javascript
详解Vue之计算属性
Jun 20 Javascript
js实现飞机大战小游戏
Aug 26 Javascript
vue-cli+webpack项目打包到服务器后,ttf字体找不到的解决操作
Aug 28 Javascript
uniapp引入支付宝原生扫码插件步骤详解
Jul 23 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
粗略计算在线时间,bug:ip相同
2006/12/09 PHP
[原创]PHP实现逐行删除文件右侧空格的方法
2015/12/25 PHP
利用laravel搭建一个迷你博客实战教程
2017/08/13 PHP
多个Laravel项目如何共用migrations详解
2018/09/25 PHP
Javascript attachEvent传递参数的办法
2009/12/14 Javascript
jquery validator 插件增加日期比较方法
2010/02/21 Javascript
实例详解angularjs和ajax的结合使用
2015/10/22 Javascript
简单实现JS对dom操作封装
2015/12/02 Javascript
AngularJS中的指令全面解析(必看)
2016/05/20 Javascript
AngularJS  $modal弹出框实例代码
2016/08/24 Javascript
微信小程序 出现错误:{&quot;baseresponse&quot;:{&quot;errcode&quot;:-80002,&quot;errmsg&quot;:&quot;&quot;}}解决办法
2017/02/23 Javascript
浅谈Node.js轻量级Web框架Express4.x使用指南
2017/05/03 Javascript
Nodejs进阶之服务端字符编解码和乱码处理
2017/09/04 NodeJs
微信小程序 swiper组件构建轮播图的实例
2017/09/20 Javascript
浅谈Webpack 是如何加载模块的
2018/05/24 Javascript
微信小程序引入模块中wxml、wxss、js的方法示例
2019/08/09 Javascript
webpack4 optimization使用总结
2019/11/10 Javascript
Python多线程爬虫简单示例
2016/03/04 Python
python记录程序运行时间的三种方法
2017/07/14 Python
python实现按长宽比缩放图片
2018/06/07 Python
django认证系统实现自定义权限管理的方法
2018/07/16 Python
Python全局变量与局部变量区别及用法分析
2018/09/03 Python
django 自定义过滤器(filter)处理较为复杂的变量方法
2019/08/12 Python
Django自带的加密算法及加密模块详解
2019/12/03 Python
时装界的“朋克之母”:Vivienne Westwood
2017/07/06 全球购物
黄色火烈鸟:De Gele Flamingo
2019/03/18 全球购物
药品质量检测应届生求职信
2013/11/14 职场文书
五年级数学教学反思
2014/02/11 职场文书
潘婷洗发水广告词
2014/03/14 职场文书
不忘国耻振兴中华演讲稿
2014/05/14 职场文书
优秀毕业生就业推荐信
2014/05/22 职场文书
送温暖献爱心活动总结
2014/07/08 职场文书
优秀教师申报材料
2014/12/16 职场文书
小学副班长竞选稿
2015/11/21 职场文书
《窃读记》教学反思
2016/02/18 职场文书
Python中的tkinter库简单案例详解
2022/01/22 Python