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 相关文章推荐
JS 参数传递的实际应用代码分析
Sep 13 Javascript
jQuery ajax dataType值为text json探索分享
Sep 23 Javascript
js,jquery滚动/跳转页面到指定位置的实现思路
Jun 03 Javascript
Jquery幻灯片特效代码分享--鼠标点击按钮时切换(1)
Aug 15 Javascript
jQuery操作基本控件方法实例分析
Dec 31 Javascript
jQuery针对input的class属性写了多个值情况下的选择方法
Jun 03 Javascript
Javascript将数字转化成为货币格式字符串
Jun 22 Javascript
在JS中a标签加入单击事件屏蔽href跳转页面
Dec 16 Javascript
Vue.js实战之组件之间的数据传递
Apr 01 Javascript
除Console.log()外更多的Javascript调试命令
Jan 24 Javascript
快速处理vue渲染前的显示问题
Mar 05 Javascript
JavaScript常见鼠标事件与用法分析
Jan 03 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
【动漫杂谈】关于《请在T台上微笑》
2020/03/03 日漫
destoon实现调用当前栏目分类及子分类和三级分类的方法
2014/08/21 PHP
yii框架数据库关联查询操作示例
2019/10/14 PHP
基于PHP+mysql实现新闻发布系统的开发
2020/08/06 PHP
JavaScript加密解密7种方法总结分析
2007/10/07 Javascript
js 限制数字 js限制输入实现代码
2012/12/04 Javascript
JQuery Highcharts 动态生成图表的方法
2013/11/15 Javascript
jquery.hotkeys监听键盘按下事件keydown插件
2014/05/11 Javascript
DOM基础教程之事件类型
2015/01/20 Javascript
js实现精美的图片跟随鼠标效果实例
2015/05/16 Javascript
浅谈DOM的操作以及性能优化问题-重绘重排
2017/01/08 Javascript
JS库中的Particles.js在vue上的运用案例分析
2017/09/13 Javascript
JS实现中文汉字按拼音排序的方法
2017/10/09 Javascript
基于Vue实现拖拽功能
2020/07/29 Javascript
Node.js的进程管理的深入理解
2019/01/09 Javascript
JS尾递归的实现方法及代码优化技巧
2019/01/19 Javascript
JS apply用法总结和使用场景实例分析
2020/03/14 Javascript
如何在vue 中引入使用jquery
2020/11/10 jQuery
[02:17]TI4西雅图DOTA2前线报道 啸天mik夫妻档解说
2014/07/08 DOTA
[36:43]NB vs Optic 2018国际邀请赛小组赛BO1 B组加赛 8.19
2018/08/21 DOTA
[55:45]LGD vs OG 2019国际邀请赛淘汰赛 胜者组 BO3 第三场 8.24
2019/09/10 DOTA
python中精确输出JSON浮点数的方法
2014/04/18 Python
Python中functools模块函数解析
2017/03/12 Python
Python3一行代码实现图片文字识别的示例
2018/01/15 Python
Python实现的个人所得税计算器示例
2018/06/01 Python
执行Django数据迁移时报 1091错误及解决方法
2019/10/14 Python
opencv3/C++图像像素操作详解
2019/12/10 Python
Pytorch 多块GPU的使用详解
2019/12/31 Python
python能在浏览器能运行吗
2020/06/17 Python
利用Python将图片中扭曲矩形的复原
2020/09/07 Python
联想澳大利亚官网:Lenovo Australia
2018/01/18 全球购物
生产厂厂长岗位职责
2013/12/25 职场文书
卫生院健康教育实施方案
2014/06/07 职场文书
2016年教师新年寄语
2015/08/18 职场文书
医学会议开幕词
2016/03/03 职场文书
Java 中的 Unsafe 魔法类的作用大全
2021/06/26 Java/Android