关于表格合并span-method方法的补充(表格数据由后台动态返回)

之前写了一些关于element-ui表格合并的方法,不过用的数据都是确定的数据(死数据),但是很多时候我们的数据都是通过后台获得的,数据不稳定,这个时候使用表格合并就需要先处理一下数据,先看一下一种很常见的数据展示场景

假设后台返回的数据是这样的:

在这种情况下,一般我们会选择对行进行合并,因为这时候表格的列是知道的,只要把需要合并的列提取出来,合并行就OK,下面看代码

HTML代码

<el-table
    :data="tableData6"
    :span-method="arraySpanMethod"
    border
    style="width: 100%">
    <el-table-column
      prop="id"
      label="ID"
      width="180">
    </el-table-column>
    <el-table-column
      prop="region"
      label="深圳">
    </el-table-column>
    <el-table-column
      prop="type"
      label="类型">
    </el-table-column>
    <el-table-column
      prop="company"
      label="企业名称">
    </el-table-column>
  </el-table>

js代码,首先需要处理一下后台数据

getIndex () {
      let arr = []
      let s = 0
      let table = this.tableData6
      let getTable = []
      table.forEach((item, i, data) => {
        if (arr.length) {
          s = arr[arr.length - 1].row + data[i - 1].company.length
        }
        arr.push({
          row: s,
          index: item.company.length
        })
        if (item.company && item.company.length) {
          item.company.forEach(subItem => {
            getTable.push({
              id: item.id,
              region: item.region,
              type: item.type,
              company: subItem.name
            })
          })
        }
      })
      this.arr = arr
      this.tableData6 = getTable
    },

数据处理之后就进行表格合并

// 合并表格方法
    arraySpanMethod ({ row, column, rowIndex, columnIndex }) {
      if (columnIndex === 0 || columnIndex === 1 || columnIndex === 2) {
        let obj = [0, 0]
        this.arr.some(v => {
          if (rowIndex === v.row) {
            obj = [v.index, 1]
          }
        })

        return obj
      }
    }

PS: 在这里说一下楼主遇到的一个坑,其实也是因为对函数的return不熟悉造成的,一开始我是这样写的,

结果页面一直不对,debugger了一下,发现函数中根本没接收到return回去的数据,这是因为我return之后又写了代码,函数真正结束时没有返回值.所以在函数中,return之后就不要在写执行代码了.

正确的写法后debugger就能接收到正确的返回值了

原文地址:https://www.cnblogs.com/steamed-twisted-roll/p/9921867.html

时间: 2024-10-01 21:21:51

关于表格合并span-method方法的补充(表格数据由后台动态返回)的相关文章

提交数据到后台的方法

一.AJAX 引用jquery: 1 <script type="text/javascript" src="js/jquery-1.9.1.min.js"></script> jquery 构造json: 1 var sendData = { 2 forgetType:flag, 3 loginID:recevData.loginID, 4 contactType:contactType, 5 countryCode:countryCode

QTableWidget表格合并若干问题及解决方法

Qt提供 QTableWidget作为表格的类以实现表格的基本功能,表格中所装载的每一个单元格由类QTableWidgetItem提供.这是基于表格实现 Qt提供的一个基础类,若想实现定制表格和单元格的功能则需要派生重写,使用Qt经典的MV结构 QTableView+QAbstractItemMode来实现. 关于QTableWidget+QTableWidgetItem使用方法简介: 通常在使用这对组合以实现表格基本功能时,通常的做法是: ///////////////////////////

用Python将多个excel表格合并为一个表格

生活中经常会碰到多个excel表格汇总成一个表格的情况,比如你发放了一份表格让班级所有同学填写,而你负责将大家的结果合并成一个.诸如此类的问题有很多.除了人工将所有表格的内容一个一个复制到汇总表格里,那么如何用Python自动实现这些工作呢~ 我不知道有没有其他更方便的合并方法,先用Python实现这个功能,自己用就很方便了. 比如,在文件夹下有如下7个表格(想象一下有100个或更多的表格需要合并) 作为样例,每个表格的内容均为 运行程序,将7个表格合并成了test.xls 打开test.xls

element-ui表格合并

先看一下合并后的样式,表格第四行,一二列合并 官网给我们提供了span-method的方法可以进行表格合并,有4个参数返回:row,column,rowIndex,columnIndex;row和column是表格的行和列,里面是当前行和列的值,也就是tableData里的值,rowIndex,columnIndex是当前行和列的序号 <el-table :data="tableData" border :span-method="arraySpanMethod&quo

给对象和函数添加method方法

蝴蝶书中有一个method方法,用来给函数定义方法.看了之后,想着能不能给对象也定义方法呢?. 下面的代码可以实现给函数定义方法: //Function method Function.prototype.method = function (name,func) { this.prototype[name] = func; return this; } 在实现给对象定义方法的过程中,我遇到了一些问题,对象是没有prototype的. 经过思考,用下面的方法实现了给对象定义方法的功能,但是比较繁

利用JavaScript如何创建一个table表格[第2种方法]

创建一个五行五列的表格(使用循环) <style> td{border:1px solid #ccc;} </style> <script> window.onload=function(){ var oTable=document.createElement("table"); var row; var cell; for(var i=0;i<5;i++){ row=document.createElement("tr")

使用Excel的VLOOKUP函数合并不同Sheet页两个表格中的相同项

通常用于将两个有相同项的表格合并,比如A表有设备.型号列,而B表有设备.编号.单价三列,现在需要把B表的设备和编号合并到A表中.(AB表数据量不同,此处以A表为主) A表 B表 合并后 其中D3使用的公式是=VLOOKUP(B3,Sheet2!B:D,2,0)  E3使用的公式是=VLOOKUP(B3,Sheet2!B:D,3,0)   其他单元格下拉即可. 详细解释一下: VLOOKUP有四个参数 第一个是要检索的数值,此处是根据设备名称检索,所以是B3: 第二个参数是检索的区域范围,因为在第

js方法内Ajax请求数据判断,验证无效(OnClientClick=&quot;return Method();&quot;),还是直接执行后台代码

function CheckAdd() { var flag = true; $.ajax({ cache: false, async: false, url: "/ajaxpage/getajax.aspx?t=adjserviceclientlist&Cellphone=" + Cellphone + "&a=" + Math.random(), dataType: 'json', success: function (data) { if (d

android4.4系统解决“ERRORcouldn&#39;t find native method”方法

android4.4系统解决"ERRORcouldn't find native method"方法 今天笔者在移植一个tv模块从android4.2到android4.4系统的设备上,同样的代码,同样的方法,就是运行不起来.大概方法就是上层写一个apk,调用一个静态的java库,java库加载调用JNI的库文件,这一套代码在4.2上都是好好的,正常能跑,移到4.4上编译也都没有问题,运行会出下面的问题: /***************************************