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去除空格的几种方法
Oct 03 Javascript
解析arp病毒背后利用的Javascript技术附解密方法
Aug 06 Javascript
javascript闭包传参和事件的循环绑定示例探讨
Apr 17 Javascript
javascript学习笔记--数字格式类型
May 22 Javascript
JQuery勾选指定name的复选框集合并显示的方法
May 18 Javascript
Three.js学习之正交投影照相机
Aug 01 Javascript
JavaScript中定时控制Throttle、Debounce和Immediate详解
Nov 17 Javascript
详谈jQuery中使用attr(), prop(), val()获取value的异同
Apr 25 jQuery
JavaScript在控件上添加倒计时功能的实现代码
Jul 04 Javascript
vue组件详解之使用slot分发内容
Apr 09 Javascript
详解vue3.0 diff算法的使用(超详细)
Jul 01 Javascript
修改NPM全局模式的默认安装路径的方法
Dec 15 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 程式大小
2006/12/06 PHP
PHP中几个常用的魔术常量
2012/02/23 PHP
php中 $$str 中 &quot;$$&quot; 的详解
2015/07/06 PHP
ThinkPHP实现简单登陆功能
2017/04/28 PHP
解决Laravel 使用insert插入数据,字段created_at为0000的问题
2019/10/11 PHP
PHP filter_var() 函数, 验证判断EMAIL,URL等
2021/03/09 PHP
如何用javascript去掉字符串里的所有空格
2007/02/08 Javascript
漂亮的提示信息(带箭头)
2007/03/21 Javascript
Extjs中通过Tree加载右侧TabPanel具体实现
2013/05/05 Javascript
后台获取ZTREE选中节点的方法
2015/02/12 Javascript
Javascript中神奇的this
2016/01/20 Javascript
Javascript vue.js表格分页,ajax异步加载数据
2016/10/24 Javascript
详解Windows下安装Nodejs步骤
2017/05/18 NodeJs
jQuery滑动到底部加载下一页数据的实例代码
2017/05/22 jQuery
vue-cli单页应用改成多页应用配置详解
2017/07/14 Javascript
JavaScript中重名的函数与对象示例详析
2017/09/28 Javascript
JS实现的简单拖拽购物车功能示例【附源码下载】
2018/01/03 Javascript
解决Vue+Element ui开发中碰到的IE问题
2018/09/03 Javascript
Node.js中的不安全跳转如何防御详解
2018/10/21 Javascript
vue模式history下在iis中配置流程
2019/04/17 Javascript
Vue2.0 $set()的正确使用详解
2020/07/28 Javascript
Tornado服务器中绑定域名、虚拟主机的方法
2014/08/22 Python
Python中的os.path路径模块中的操作方法总结
2016/07/07 Python
python中WSGI是什么,Python应用WSGI详解
2017/11/24 Python
使用Python和xlwt向Excel文件中写入中文的实例
2018/04/21 Python
python基础学习之如何对元组各个元素进行命名详解
2018/07/12 Python
Python Selenium安装及环境配置的实现
2020/03/17 Python
如何实现更换Jupyter Notebook内核Python版本
2020/05/18 Python
django 实现后台从富文本提取纯文本
2020/07/02 Python
python实现定时发送邮件到指定邮箱
2020/12/23 Python
Europcar比利时:租车
2019/08/26 全球购物
个人求职信范文分享
2014/01/06 职场文书
销售人员求职信
2014/07/22 职场文书
蜗居观后感
2015/06/11 职场文书
新郎婚礼致辞
2015/07/27 职场文书
win10忘记pin密码登录不了怎么办?win10忘记pin密码登不进去的解决方法
2022/07/07 数码科技