vue和 element-ui 中处理table多行合并问题

  • 根据后台返回的数据处理表格合并问题:
  • 代码如下
getIndex(all) {  // all 后台返回的数据
    const arr = []
    const table = all
    const getTable = []
    let length = 0
    table.forEach((item, i, data) => {
      const index = i === 0 ? 0 : length // 下标
      length += item.solution_part_items.length
      arr[index] = item.solution_part_items.length
      if (item.solution_part_items && item.solution_part_items.length) {
        item.solution_part_items.forEach((subItem) => {
          getTable.push({
            part_name: item.luxury_part.part_name, // 部位
            item_summary: subItem.item_summary, // 症状
            image_url: subItem.image_url, // 细节图
            severity: subItem.severity, // 严重程度
            fixable: subItem.fixable, // 是否可以修复
            service_summary: subItem.service_summary // 服务工艺、
          })
        })
      }
    })
    this.arr = arr
    this.GoodsProblem = getTable
  }

  // 合并表格方法
<el-table
    border
    style="width: 100%"
    :span-method="arraySpanMethod"
  >
</el-table>
arraySpanMethod({
  row, column, rowIndex, columnIndex
}) {
  if (columnIndex === 0) {
    const index = this.arr[rowIndex]  // 根据下标合并几列
    if (typeof (index) === 'number') {
      return {
        rowspan: index,
        colspan: 1
      }
    }
    return {
      rowspan: 0,
      colspan: 0
    }
  }
  return {
    rowspan: 1,
    colspan: 1
  }
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 人的容貌是一块更细腻的布,天然的容貌是这样,靠人工矫正过的容貌更经不起磨损。 愁苦,会生出相应的皱纹。快乐,则会有...
    筱喆阅读 1,027评论 0 0
  • 今天,我看见了一位5年级的小姐姐,跟一个小哥哥亲亲我我的我还发现他们的手都没有分开过。妈呀,真是我心目中的大...
    梦梦的小妹妹阅读 1,306评论 0 0
  • 实话生活 体悟人生 今天是2016年12月8日 天气晴 温度14-26度 今天早上六点多起床 起来了以后 先按柔腹...
    木风恒阅读 1,456评论 0 2
  • 冬日的天空似一架巨大的白色钢琴 滴答的冰雨声是它忧郁的旋律 飘渺的湿雾疯子一样的手舞足蹈 一支花伞下 一对恋人依偎...
    云诗一线阅读 1,631评论 0 2