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 相关文章推荐
JavaScript中yield实用简洁实现方式
Jun 12 Javascript
js点击列表文字对应该行显示背景颜色的实现代码
Aug 05 Javascript
JavaScript实现身份证验证代码
Feb 17 Javascript
Javascript生成全局唯一标识符(GUID,UUID)的方法
Feb 27 Javascript
JS实现的随机排序功能算法示例
Jun 09 Javascript
JS中验证整数和小数的正则表达式
Oct 08 Javascript
vue.js实现数据库的JSON数据输出渲染到html页面功能示例
Aug 03 Javascript
vue把输入框的内容添加到页面的实例讲解
Nov 11 Javascript
Vue使用JSEncrypt实现rsa加密及挂载方法
Feb 07 Javascript
js实现动态时钟
Mar 12 Javascript
JS+CSS+HTML实现“代码雨”类似黑客帝国文字下落效果
Mar 17 Javascript
JQuery表单元素取值赋值方法总结
May 12 jQuery
微信小程序使用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
PHP5.0对象模型探索之抽象方法和抽象类
2006/09/05 PHP
Window下PHP三种运行方式图文详解
2013/06/11 PHP
有关PHP性能优化的介绍
2013/06/20 PHP
解析关于java,php以及html的所有文件编码与乱码的处理方法汇总
2013/06/24 PHP
PHP递归复制、移动目录的自定义函数分享
2014/11/18 PHP
fckeditor上传文件按日期存放及重命名方法
2015/05/22 PHP
CI框架AR操作(数组形式)实现插入多条sql数据的方法
2016/05/18 PHP
PHP7中I/O模型内核剖析详解
2019/04/14 PHP
基于laravel belongsTo使用详解
2019/10/18 PHP
JavaScript中URL编码函数代码
2011/01/11 Javascript
JavaScript中变量提升 Hoisting
2012/07/03 Javascript
用json方式实现在 js 中建立一个map
2014/05/02 Javascript
js实现div闪烁原理及实现代码
2014/06/24 Javascript
理解javascript回调函数
2014/12/28 Javascript
bootstrap select2插件用ajax来获取和显示数据的实例
2018/08/09 Javascript
Vue开发环境中修改端口号的实现方法
2019/08/15 Javascript
小程序两种滚动公告栏的实现方法
2019/09/17 Javascript
Vue.js桌面端自定义滚动条组件之美化滚动条VScroll
2020/12/01 Vue.js
Python实现简单的多任务mysql转xml的方法
2017/02/08 Python
Django Rest framework认证组件详细用法
2019/07/25 Python
Python with语句用法原理详解
2020/07/03 Python
python多线程semaphore实现线程数控制的示例
2020/08/10 Python
Django自带用户认证系统使用方法解析
2020/11/12 Python
HTML5的hidden属性兼容老浏览器的方法
2014/04/23 HTML / CSS
HTML5中的Web Notification桌面通知功能的实现方法
2019/07/29 HTML / CSS
世界上最大的曲棍球商店:Pro Hockey Life
2017/10/30 全球购物
入党积极分子自我鉴定
2014/02/18 职场文书
2015年教师学期工作总结
2015/04/30 职场文书
师范生教育见习总结
2015/06/23 职场文书
员工安全责任协议书
2016/03/22 职场文书
大学生创业计划书常用模板
2019/08/07 职场文书
《中国机长》观后感:敬畏生命,敬畏职责
2019/11/12 职场文书
python 实现两个变量值进行交换的n种操作
2021/06/02 Python
JavaWeb实现显示mysql数据库数据
2022/03/19 Java/Android
MySQL串行化隔离级别(间隙锁实现)
2022/06/16 MySQL
Windows10安装Apache2.4的方法步骤
2022/06/25 Servers