element-ui el-table 如何实现合并单元格

这篇具有很好参考价值的文章主要介绍了element-ui el-table 如何实现合并单元格。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

el-table的组件的可以合并单元格,先定义参数span-method 方法objectSpanMethod。在方法内控制当前单元格渲染成几个单元格或者删除掉当前单元格。

比如:代码中定义:span-method="objectSpanMethod"

 <el-table
          :data="media_showid_info.showids"
          style="width: 100%"
          max-height="250"
          border
          :span-method="objectSpanMethod"
        >
          <el-table-column prop="id" label="id" width="120">
          </el-table-column>
          <el-table-column
            prop="type_name"
            label="类型"
            width="120"
          >
          </el-table-column>
          <el-table-column prop="time" label="时间" width="210">
          </el-table-column>
          <el-table-column prop="no." label="编号" width="120">
          </el-table-column>
          <el-table-column prop="match" label="位置" width="120">
            <template slot-scope="scope">
              <span v-if="'match' in scope.row"
                >{{ scope.row.match }}</span
              >
              <span v-else style="color: #c0c4cc; font-size: small">无</span>
            </template>
          </el-table-column>
          <el-table-column label="操作">
            <template slot-scope="scope" v-if="scope.row.match">
              <el-button
                @click.native.prevent="
                  check_result(scope.row.id, scope.row.match)
                "
                type="text"
                size="small"
              >
                查看
              </el-button>
            </template>
          </el-table-column>
        </el-table>

objectSpanMethod实现是在方法区,具体内容是根据变量rowSpanList 去决定当前单元格是展示还是删除,展示的话是展示几行一列。

 objectSpanMethod({ row, column, rowIndex, columnIndex }) {
      if (row && columnIndex == 0 && column.label === "广告位showid") {
        if (this.rowSpanList && this.rowSpanList[rowIndex]) {
          let rowSpan = this.rowSpanList[rowIndex];
          return [rowSpan, 1];
          // 相同id有几个就绘制成几行一列
        } else {
          return [0, 0];
          // 重复的id值,已经绘制过,不需要在展示id了,删除掉改单元格的绘制
        }
      }
    },

 { row, column, rowIndex, columnIndex }四个参数表示row行数据,column列数据,rowIndex行标,columnIndex列标

rowSpanList是记录id分布的, 是在展示数据获取及处理时计算生成的,大致逻辑是

若当前id与列表中上一个数据的id相同:

 if ( this.info.sids[i].id ===this.info.sids[i - 1].id) 

该相同id的起始位置标记是position

相同的话计数rowSpanList加1:this.rowSpanList[position] += 1

              this.rowSpanList = [];
              var position = 0;
              for (var i in this.info.sids) {
                if (i === "0") {
                  position = 0;
                  this.rowSpanList.push(1);
                } else {
                  if (
                    this.info.sids[i].id ===
                    this.info.sids[i - 1].id
                  ) {
                    this.rowSpanList[position] += 1; //项目名称相同,合并到同一个数组中
                    this.rowSpanList.push(0);
                  } else {
                    this.rowSpanList.push(1);
                    position = i;
                  }
                }

最后this.rowSpanList可能值是[2,0,3,0,0,1]

数字2表示有两个一样的,在table渲染中表示该单元格需要占位2行1列。

0表示跟上一个id一样,不需要标记,在table渲染中表示该单元格需要删除。文章来源地址https://www.toymoban.com/news/detail-436506.html

到了这里,关于element-ui el-table 如何实现合并单元格的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • element-ui的table实现滚动加载,涵el-table组件封装一份

    重点就是 a d d R o l l L i s t e n e r addRollListener a d d R o l l L i s t e n e r 函数,想快点弄上去看效果的直接弄这个函数吧 如果不在mounted中则一定要this.$nextTick(() = this.addRollListener()) 示例代码 如果你把上面的看过了;只需要在 a d d R o l l L i s t e n e r addRollListener a d d R o l l L i s t e

    2023年04月08日
    浏览(39)
  • Element-ui中表格el-table图片预览效果实现(非常实用)

    🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点赞 👍 收藏 ⭐评论 📝 🍅  文末获取源码联系 🏆先展示效果:   🏆使用的是下面这个插

    2024年02月11日
    浏览(43)
  • element-ui中的el-table实现分页多选功能

    selection-change事件:当选择项发生变化时会触发该事件(当分页切换时,选中的数据都会自动清空) 链接: https://blog.csdn.net/qq_36157085/article/details/122922678

    2024年02月17日
    浏览(34)
  • vue中数据滚动显示 实现Element-UI中el-table内数据的懒加载

    工作中我们经常会用到element-ui组件库中的le-table组件来展示数据,但当table的数据源数量过大的时候统一展示可能会出现页面卡顿,且会影响用户体验,为此我们可以尝试对el-table中的数据做懒加载的效果展示: 1. 挂在阶段监听el-table的scroll滚动事件 2. 当table表格滚动条的位置

    2023年04月08日
    浏览(45)
  • 随手记:使用sortable.js 实现element-ui el-table 表格上下拖拽排序

    需求场景: 表格可以实现上下拖拽row实现新排序 首先,安装sortable.js  引入表格排  全局挂在组件 使用页面引入 使用sortable.js表格一定要有唯一的row-key,一般绑定的是id,不然拖拽会不生效 data声明 sortableContainer: null,为的是后面如果有需要可以做销毁操作   因为我这里是表

    2024年02月22日
    浏览(36)
  • Element ui el-table 合并单元格

      el-table v-loading=\\\"loading\\\" :data=\\\"tableData\\\" style=\\\"width: 100%\\\" highlight-current-row :span-method=\\\"arraySpanMethod\\\"         el-table-column type=\\\"index\\\" label=\\\"序号\\\" /         el-table-column v-for=\\\"item in formThead\\\" :key=\\\"item.label\\\" :label=\\\"item.label\\\" :prop=\\\"item.prop\\\" :formatter=\\\"item.formatter\\\" :width=\\\"item.width || \\\'auto\\\'\\\" /        

    2024年02月02日
    浏览(30)
  • [element-ui] el-table点击高亮当前行

    1、highlight-current-row 2、:row-class-name=“tableRowClassName”,需要借助@row-click=\\\"handleRowClick\\\"获取当前点击行的下标 参考: elementUI中table点击高亮当前行的两种方式

    2024年03月21日
    浏览(38)
  • Vue+Element-UI 实现前端分页功能,利用el-table和el-pagination组件实现表格前端分页

    Vue+Element-UI 实现前端分页功能,利用el-table和el-pagination组件实现表格前端分页:         当table的数据量比较大的时候,一个屏幕展示不出全部的数据,这个时候就需要分页显示。而多数情况下都是做的后端分页,就是将分页参数和查询条件一并传到后端,后端将当前页要

    2024年01月20日
    浏览(43)
  • vue使用element-ui,el-table不显示

    例如:新增了一个表格,按官网代码贴过来的,结果一直不显示 代码如下一模一样,其他数据正常显示,就表格不显示 其实版本库不一致导致的,贼坑,又不提示 先卸载element-ui安装一个低版本的element-ui就可以解决``

    2024年02月11日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包