vue elementUI table 自定义表头和行合并的实例代码


Posted in Javascript onMay 22, 2019

最近项目中做表格比较多,对element表格的使用,只需要传递进去数据,然后写死表头即可渲染。

但现实中应用中,如果写死表头,并且每个组件中写自己的表格,不仅浪费时间而且消耗性能。这个时候需要动态渲染表头。

而官方例子都是写死表头,那么为了满足项目需求,只能自己来研究一下。

1、自定义表头

代码如下,其实就是分了两部分,表格主数据是在TableData对象中,表头的数据保存在headerDatas,headerDatas.label其实就是表头的值,如果表头是“序号”,那么headerDatas.label="序号",在TableData中构建TableData[序号]= 1 这样的map对象,就可以动态渲染出想要的表格

<el-table
     :data="TableData"
     :height="tableHeight"
     :row-class-name="showEmergencyLine"
     border
     element-loading-spinner="el-icon-loading"
     element-loading-text="拼命加载中"
     @selection-change="handleSelectionChange"
     v-loading.lock="TableLoading"
     @header-dragend="changeHeaderWidth"
    >
     <el-table-column
      v-for="header in headerDatas"
      :prop="header.type"
      :key="header.label"
      :label="header.label"
      :width="header.width"
      :minWidth="header.minWidth"
      :itemname="header.mid"
      :align="header.align"
      header-align="center"
     >
     <template slot-scope="scope">
     <div
      v-else
     >{{scope.row[scope.column.property]}}</div>
     </template>
     </el-table-column>
</el-table>

2、行合并

在项目中,有些表格常常会有像下面这样的需求,一行合并后面几行,那么这个怎么处理呢

 vue elementUI table 自定义表头和行合并的实例代码

官方文档中有这个方法

 vue elementUI table 自定义表头和行合并的实例代码

通过给table传入span-method方法可以实现合并行或列,方法的参数是一个对象,里面包含当前行row、当前列column、当前行号rowIndex、当前列号columnIndex四个属性。该函数可以返回一个包含两个元素的数组,第一个元素代表rowspan,第二个元素代表colspan。 也可以返回一个键名为rowspan和colspan的对象。

 vue elementUI table 自定义表头和行合并的实例代码

<el-table
   :data="tableData"
   :span-method="objectSpanMethod"
   highlight-current-row
   element-loading-spinner="el-icon-loading"
   element-loading-text="拼命加载中"
   v-loading.lock="mainTableLoading"
   border
   style="width: 100%; margin-top: 25px"
  >
</el-table>

  arraySpanMethod({ row, column, rowIndex, columnIndex }) {
    if (rowIndex % 2 === 0) {//偶数行
     if (columnIndex === 0) {//第一列
      return [1, 2];//1合并一行,2占两行
     } else if (columnIndex === 1) {//第二列
      return [0, 0];//0合并0行,0占0行
     }
    }
   },

   objectSpanMethod({ row, column, rowIndex, columnIndex }) {
    if (columnIndex === 0) {
     if (rowIndex % 2 === 0) {
      return {
       rowspan: 2,//合并的行数
       colspan: 1//合并的列数,设为0则直接不显示
      };
     } else {
      return {
       rowspan: 0,
       colspan: 0
      };
     }
    }
   }

这里面可以通过对rowIndex,columnIndex根据自己的要求作一些条件判断,然后返回rowspan,colspan就可以合并了。

总结

以上所述是小编给大家介绍的vue elementUI table 自定义表头和行合并的实例代码,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

Javascript 相关文章推荐
showModelessDialog()使用详解
Sep 21 Javascript
JavaScipt中的Math.ceil() 、Math.floor() 、Math.round() 三个函数的理解
Apr 29 Javascript
JavaScript中使用构造器创建对象无需new的情况说明
Mar 01 Javascript
jquery的trigger和triggerHandler的区别示例介绍
Apr 20 Javascript
JS实现自动固定顶部的悬浮菜单栏效果
Sep 16 Javascript
Highcharts入门之简介
Aug 02 Javascript
js实现tab选项卡切换功能
Jan 13 Javascript
使用jQuery实现鼠标点击左右按钮滑动切换
Aug 04 jQuery
React Native仿美团下拉菜单的实例代码
Aug 08 Javascript
vuex的使用及持久化state的方式详解
Jan 23 Javascript
vue项目每30秒刷新1次接口的实现方法
Dec 04 Javascript
Element Carousel 走马灯的具体实现
Jul 26 Javascript
微信小程序使用websocket通讯的demo,含前后端代码,亲测可用
May 22 #Javascript
微信小程序登录态和检验注册过没的app.js写法
May 22 #Javascript
element-ui上传一张图片后隐藏上传按钮功能
May 22 #Javascript
微信小程序非跳转式组件授权登录的方法示例
May 22 #Javascript
小程序rich-text组件如何改变内部img图片样式的方法
May 22 #Javascript
JavaScript中的 new 命令
May 22 #Javascript
element-ui组件中input等的change事件中传递自定义参数
May 22 #Javascript
You might like
php 上一篇,下一篇文章实现代码与原理说明
2010/05/09 PHP
php 函数中使用static的说明
2012/06/01 PHP
php获取本周开始日期和结束日期的方法
2015/03/09 PHP
PHP 实现从数据库导出到.csv文件方法
2017/07/06 PHP
农历与西历对照
2006/09/06 Javascript
利用XMLHTTP传递参数在另一页面执行并刷新本页
2006/10/26 Javascript
[JS源码]超长文章自动分页(客户端版)
2007/01/09 Javascript
ext监听事件方法[初级篇]
2008/04/27 Javascript
jQuery 使用手册(三)
2009/09/23 Javascript
Js动态添加复选框Checkbox的实例方法
2013/04/08 Javascript
javascript实现文本域写入字符时限定字数
2014/02/12 Javascript
JQuery替换DOM节点的方法
2015/06/11 Javascript
手机端转盘抽奖代码分享
2015/09/10 Javascript
jQuery实现点击按钮文字变成input框点击保存变成文字
2016/05/09 Javascript
js改变style样式和css样式的简单实例
2016/06/28 Javascript
原生js仿jquery animate动画效果
2016/07/13 Javascript
Linux系统中利用node.js提取Word(doc/docx)及PDF文本的内容
2017/06/17 Javascript
js分页之前端代码实现和请求处理
2017/08/04 Javascript
关于meta viewport中target-densitydpi属性详解(推荐)
2017/08/18 Javascript
Vue-路由导航菜单栏的高亮设置方法
2018/03/17 Javascript
如何在Vue.JS中使用图标组件
2020/08/04 Javascript
[42:24]完美世界DOTA2联赛PWL S2 LBZS vs FTD.C 第三场 11.27
2020/12/01 DOTA
windows下wxPython开发环境安装与配置方法
2014/06/28 Python
使用Python脚本实现批量网站存活检测遇到问题及解决方法
2016/10/11 Python
pandas 时间格式转换的实现
2019/07/06 Python
python tkinter窗口最大化的实现
2019/07/15 Python
Python子进程subpocess原理及用法解析
2020/07/16 Python
园长自我鉴定
2013/10/06 职场文书
担保书格式及范文
2014/04/01 职场文书
机关办公室岗位职责
2014/04/16 职场文书
机械电子工程专业自荐书
2014/06/10 职场文书
司法局2014法制宣传日活动总结
2014/11/01 职场文书
运动会加油稿30字
2015/07/21 职场文书
JS异步堆栈追踪之为什么await胜过Promise
2021/04/28 Javascript
JavaScript中的宏任务和微任务详情
2021/11/27 Javascript
html中相对位置与绝对位置的具体使用
2022/05/15 HTML / CSS