Element ui el-table 合并单元格

这篇具有很好参考价值的文章主要介绍了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'" />

          </template>

        </el-table-column>

      </el-table>

  watch: {

    tableData: {

      handler(newVal) {

        this.tableColumns = newVal

        this.rowspan()

      },

      deep: true

    }

  },

data(){

 mergeObj: {},

      mergeRecording: [], // 合并记录 存放需要合并列的每行对应的合并数 [[当前行对应的合并数, 当前行对应的合并数, ...], ...]

      mergeArr: [

        'instrumentCode',

        'instrumentName',

        'checkQuantity',

       ....... formThead的prop

      ]

}

  // 合并逻辑

    rowspan() {

      for (let i = 0; i < this.mergeArr.length; i++) {

        const key = this.mergeArr[i]

        this.mergeObj[key] = [] // 记录合并数组

        this.mergeRecording[i] = [] // 记录本列合并的开头索引值

        let count = 0 // 合并数组对应索引

        this.tableData.forEach((item, index) => {

          // 当前为第一行的时候

          if (index === 0) {

            this.mergeObj[key].push(1)

            this.mergeRecording[i].push(index)

          } else {

            let lastState = false

            // 跳过表格第一列(序号),真实列从定义需要合并的列为基准

            if (i === 0) {

              lastState = true

            } else

            // 判断左列上下单元是否合并,适用场景为连续的合并

            if (this.mergeRecording[i - 1][index] === this.mergeRecording[i - 1][index - 1]) {

              lastState = true

            }

            // 如果说当前行与上一行是相同的数据

            if (item[key] === this.tableData[index - 1][key] && lastState) {

              this.mergeObj[key][count] += 1 // 上一行的合并数+1

              this.mergeObj[key].push(0) // 当前行的合并数是0

              this.mergeRecording[i].push(count) // 本单元格的合并的开头索引值

            } else {

              // 如果说当前行与上一行不相同  那么两个都不进行合并所以返回1,索引变成当前行索引

              this.mergeObj[key].push(1)

              count = index

              this.mergeRecording[i].push(count) // 赋值合并的开头索引值

            }

          }

        })

        // console.log(this.mergeRecording[i])

      }

    },

    // 合并方法

    arraySpanMethod({ row, column, rowIndex, columnIndex }) {

      if (this.mergeArr.indexOf(column.property) !== -1) {

        if (this.mergeObj[column.property][rowIndex]) {

          return [this.mergeObj[column.property][rowIndex], 1]

        } else {

          return [0, 0]

        }

      } else {

        return [1, 1]

      }

    }文章来源地址https://www.toymoban.com/news/detail-784760.html

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

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

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

相关文章

  • element ui修改el-table表格单元格边框颜色

    element-ui官网 第一步:设置除表头单元格边框样式 :cell-style=“{borderColor:‘#01e3ed’}” 第二步:设置表头单元格边框样式 :header-cell-style=“{borderColor:#01e3ed}” 第三步:单独给表格加样式 加个类名class=“exporttable” 第四步:功能实现 -点赞 + 收藏!你是最美的!

    2024年02月14日
    浏览(25)
  • [element-ui] el-table表格合并 span-method

    element 中表格合并 span-method 函数详解

    2024年02月13日
    浏览(40)
  • element ui中el-table的合并相同列内容的解决方法,简单实用

    element ui中el-table的合并相同列内容的解决方法,简单实用 废话不说,直接上代码,vue页面中的几个部分如下: 注意几点: 1、el-table中 写上: :span-method=“objectSpanMethod” 2、两个方法不用改动 3、想合并哪列,在data中columnArr数组里填上列名。 4、如果有bug,自己去调整吧 完事

    2024年02月11日
    浏览(38)
  • Element-UI 解决el-table合并行+固定列鼠标浮动高亮问题

    今天在搬砖的时候发现了一个问题,当用el-table组件画表格,并且存在合并行时,鼠标浮动的高亮样式有些问题,如下图。 可以看到虽然已经合并成为了一行但是,高亮部分的显示样式仍然是分家状态。由于我画的表格需要有固定列,虽然百度了一些大神的方法,但是仍然没

    2024年02月11日
    浏览(42)
  • vue element ui el-table单元格里面显示多张图片点击并放大

    效果图: 一个单元格里面显示三张图片,并且点击图片可以放大。 1.将图片v-for渲染出来,具体上代码 注:el-popover的属性   2.单元格里能够展示多张图片,需要在请求的接口里面做处理 以上两步,就可以实现上面的功能。

    2024年02月07日
    浏览(37)
  • Element Plus el-table 自定义合并行和列

    原文链接:Element Plus el-table 自定义合并行和列 目标效果是将表格行数据中某个属性值相同的项合并到一起,效果如下: sortArray() 此方法根据目标属性值( StoAlias )排序了。 点击 传送门 查看更多关于【el-table 合并行或列】的信息。

    2024年02月12日
    浏览(29)
  • element ui - el-table 表头筛选

    场景 :根据表头筛选出表格中符合条件的数据; 效果 : 筛选结果 : 在列中设置 filters 和 filter-method 属性即可开启该列的筛选。 filters :筛选的下拉列表,是一个json数组,里面的json对象是 { text: ‘’, value: ‘’ } 的格式,text是下拉选项的显示内容,value则为选择的值;

    2024年02月05日
    浏览(40)
  • element ui - el-table数据排序

    后台一次性返回全部数据,需要前端对所有数据进行分页和排序。 使用element-ui的 自定义排序 规则,将 sortable 设置为 custom ,同时在 Table 上监听 sort-change 事件,在事件回调中可以获取当前排序的字段名和排序顺序,从而对所有数据进行排序再对表格数据进行分页计算。 如上

    2024年02月11日
    浏览(40)
  • Element UI <el-table>去除外边框

     使用 Element UI el-table 時,总会自带外边框,写了好多css样式始终不能去除,最终发现是th与td所带的样式。 代码如下

    2024年02月09日
    浏览(31)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包