vue-element,el-table动态合并重复单元格

效果如下
在这里插入图片描述

    <el-table
              class="ttt"
              :data="deflexsionTable" :span-method="arraySpanMethod"
              style="width: 100%"
              tooltip-effect="dark"
             
              height="1460"
              :header-cell-style="tableHeaderStyle"
            >
              <el-table-column
                label="序号"
                align="center"
                type="index"
                width="50"
              >
              </el-table-column>
              <el-table-column
                align="center"
                label="部件"
                prop="evrOcTime"
                show-overflow-tooltip
              ></el-table-column>
              <el-table-column
                align="center"
                label="评价内容"
                prop="dclName"
                show-overflow-tooltip
              ></el-table-column>
              <el-table-column
                align="center"
                label="状态量"
                prop="evrDesc"
                show-overflow-tooltip
              ></el-table-column>
              <el-table-column
                align="center"
                label="扣分"
                prop="evrReturnValue"
                show-overflow-tooltip
              >
              </el-table-column>

              <!-- <el-table-column align="center" label="操作">
                <template slot-scope="scope">
                  <el-button
                    class="green "
                    icon="el-icon-view"
                    type="text"
                    @click="lookGrade(scope.row)"
                    >查看得分详情</el-button
                  >
                </template>
              </el-table-column> -->
            </el-table>
data({
return{
 deflexsionTable: [{
            evrOcTime: "本体", //部件
            dclName: "绝缘性能", //评价内容
            evrDesc: "绝缘电阻", //绝缘电阻
            evrReturnValue: "0", //扣分
        }, {
            evrOcTime: "本体", //部件
            dclName: "绝缘性能", //评价内容
            evrDesc: "凝露", //绝缘电阻
            evrReturnValue: "0", //扣分
        }, {
            evrOcTime: "本体", //部件
            dclName: "绝缘性能", //评价内容
            evrDesc: "放电声音", //绝缘电阻
            evrReturnValue: "0", //扣分
        }, {
            evrOcTime: "本体", //部件
            dclName: "载流能力", //评价内容
            evrDesc: "主回路直流电阻", //绝缘电阻
            evrReturnValue: "0", //扣分
        }, {
            evrOcTime: "本体", //部件
            dclName: "载流能力", //评价内容
            evrDesc: "导电连节点升温", //绝缘电阻
            evrReturnValue: "0", //扣分
        }, {
            evrOcTime: "本体", //部件
            dclName: "六氟化硫气体", //评价内容
            evrDesc: "六氟化硫气体泄漏", //绝缘电阻
            evrReturnValue: "0", //扣分
        }, {
            evrOcTime: "本体", //部件
            dclName: "外观", //评价内容
            evrDesc: "标识齐全", //绝缘电阻
            evrReturnValue: "0", //扣分
        }, {
            evrOcTime: "本体", //部件
            dclName: "外观", //评价内容
            evrDesc: "带电显示器", //绝缘电阻
            evrReturnValue: "0", //扣分
        }, {
            evrOcTime: "本体", //部件
            dclName: "外观", //评价内容
            evrDesc: "二次仪表", //绝缘电阻
            evrReturnValue: "0", //扣分
        }, {
            evrOcTime: "本体", //部件
            dclName: "外观", //评价内容
            evrDesc: "锈蚀", //绝缘电阻
            evrReturnValue: "0", //扣分
        }, {
            evrOcTime: "本体", //部件
            dclName: "外观", //评价内容
            evrDesc: "接地", //绝缘电阻
            evrReturnValue: "0", //扣分
        }, {
            evrOcTime: "本体", //部件
            dclName: "外观", //评价内容
            evrDesc: "接地引线下外观", //绝缘电阻
            evrReturnValue: "0", //扣分
        }, {
            evrOcTime: "附件", //部件
            dclName: "绝缘性能", //评价内容
            evrDesc: "凝露", //绝缘电阻
            evrReturnValue: "0", //扣分
        }, {
            evrOcTime: "附件", //部件
            dclName: "绝缘性能", //评价内容
            evrDesc: "绝缘电阻", //绝缘电阻
            evrReturnValue: "0", //扣分
        }, {
            evrOcTime: "附件", //部件
            dclName: "绝缘性能", //评价内容
            evrDesc: "凝露", //绝缘电阻
            evrReturnValue: "0", //扣分
        }, {
            evrOcTime: "附件", //部件
            dclName: "绝缘性能", //评价内容
            evrDesc: "放电声音", //绝缘电阻
            evrReturnValue: "0", //扣分
        }, {
            evrOcTime: "附件", //部件
            dclName: "外观", //评价内容
            evrDesc: "标识齐全", //绝缘电阻
            evrReturnValue: "0", //扣分
        }, {
            evrOcTime: "附件", //部件
            dclName: "外观", //评价内容
            evrDesc: "带电显示器", //绝缘电阻
            evrReturnValue: "0", //扣分
        }, {
            evrOcTime: "附件", //部件
            dclName: "外观", //评价内容
            evrDesc: "二次仪表", //绝缘电阻
            evrReturnValue: "0", //扣分
        }, {
            evrOcTime: "附件", //部件
            dclName: "外观", //评价内容
            evrDesc: "锈蚀", //绝缘电阻
            evrReturnValue: "0", //扣分
        }, {
            evrOcTime: "附件", //部件
            dclName: "外观", //评价内容
            evrDesc: "接地", //绝缘电阻
            evrReturnValue: "0", //扣分
        }, {
            evrOcTime: "附件", //部件
            dclName: "外观", //评价内容
            evrDesc: "接地引线下外观", //绝缘电阻
            evrReturnValue: "0", //扣分
        }, {
            evrOcTime: "操作系统及控制回路", //部件
            dclName: "绝缘性能", //评价内容
            evrDesc: "凝露", //绝缘电阻
            evrReturnValue: "0", //扣分
        }, {
            evrOcTime: "操作系统及控制回路", //部件
            dclName: "绝缘性能", //评价内容
            evrDesc: "绝缘电阻", //绝缘电阻
            evrReturnValue: "0", //扣分
        }, {
            evrOcTime: "操作系统及控制回路", //部件
            dclName: "绝缘性能", //评价内容
            evrDesc: "凝露", //绝缘电阻
            evrReturnValue: "0", //扣分
        }, {
            evrOcTime: "操作系统及控制回路", //部件
            dclName: "绝缘性能", //评价内容
            evrDesc: "放电声音", //绝缘电阻
            evrReturnValue: "0", //扣分
        }, {
            evrOcTime: "操作系统及控制回路", //部件
            dclName: "机械性能", //评价内容
            evrDesc: "联跳功能", //绝缘电阻
            evrReturnValue: "0", //扣分
        }, {
            evrOcTime: "操作系统及控制回路", //部件
            dclName: "机械性能", //评价内容
            evrDesc: "分合闸操作", //绝缘电阻
            evrReturnValue: "0", //扣分
        },
        {
            evrOcTime: "操作系统及控制回路", //部件
            dclName: "机械性能", //评价内容
            evrDesc: "辅助开关投切状况", //绝缘电阻
            evrReturnValue: "0", //扣分
        },
        {
            evrOcTime: "操作系统及控制回路", //部件
            dclName: "机械性能", //评价内容
            evrDesc: "五防", //绝缘电阻
            evrReturnValue: "0", //扣分
        }, {
            evrOcTime: "辅助部件", //部件
            dclName: "外观", //评价内容
            evrDesc: "标识齐全", //绝缘电阻
            evrReturnValue: "0", //扣分
        }, {
            evrOcTime: "辅助部件", //部件
            dclName: "外观", //评价内容
            evrDesc: "带电显示器", //绝缘电阻
            evrReturnValue: "0", //扣分
        }, {
            evrOcTime: "辅助部件", //部件
            dclName: "外观", //评价内容
            evrDesc: "二次仪表", //绝缘电阻
            evrReturnValue: "0", //扣分
        }, {
            evrOcTime: "辅助部件", //部件
            dclName: "外观", //评价内容
            evrDesc: "锈蚀", //绝缘电阻
            evrReturnValue: "0", //扣分
        }, {
            evrOcTime: "辅助部件", //部件
            dclName: "外观", //评价内容
            evrDesc: "接地", //绝缘电阻
            evrReturnValue: "0", //扣分
        }, {
            evrOcTime: "辅助部件", //部件
            dclName: "外观", //评价内容
            evrDesc: "接地引线下外观", //绝缘电阻
            evrReturnValue: "0", //扣分
        }, {
            evrOcTime: "辅助部件", //部件
            dclName: "接地电阻", //评价内容
            evrDesc: "接地电阻", //绝缘电阻
            evrReturnValue: "0", //扣分
        }, {
            evrOcTime: "标识", //部件
            dclName: "外观", //评价内容
            evrDesc: "标识齐全", //绝缘电阻
            evrReturnValue: "0", //扣分
        }, {
            evrOcTime: "标识", //部件
            dclName: "外观", //评价内容
            evrDesc: "带电显示器", //绝缘电阻
            evrReturnValue: "0", //扣分
        }, {
            evrOcTime: "标识", //部件
            dclName: "外观", //评价内容
            evrDesc: "二次仪表", //绝缘电阻
            evrReturnValue: "0", //扣分
        }, {
            evrOcTime: "标识", //部件
            dclName: "外观", //评价内容
            evrDesc: "锈蚀", //绝缘电阻
            evrReturnValue: "0", //扣分
        }, {
            evrOcTime: "标识", //部件
            dclName: "外观", //评价内容
            evrDesc: "接地", //绝缘电阻
            evrReturnValue: "0", //扣分
        }, {
            evrOcTime: "标识", //部件
            dclName: "外观", //评价内容
            evrDesc: "接地引线下外观", //绝缘电阻
            evrReturnValue: "0", //扣分
        }


    ]}
},
methods:{
   // 合并表格
    rowspan() {
      for (let key of this.mergeArr) {
        let count = 0;
        this.mergeObj[key] = [];
        this.deflexsionTable.forEach((item, index) => {
          if (index === 0) {
            this.mergeObj[key].push(1);
          } else {
            if (item[key] === this.deflexsionTable[index - 1][key]) {
              this.mergeObj[key][count] += 1;
              this.mergeObj[key].push(0);
            } else {
              count = index;
              this.mergeObj[key].push(1);
            }
          }
        });
      }
    },
    arraySpanMethod({ row, column, rowIndex, columnIndex }) {
      console.log(row, column, rowIndex, columnIndex)
      if (this.mergeArr.indexOf(column.property) !== -1) {
        if (this.mergeObj[column.property][rowIndex]) {
          return {
            rowspan: this.mergeObj[column.property][rowIndex],
            colspan: 1,
          };
        } else {
          return {
            rowspan: 0,
            colspan: 0,
          };
        }
      } else {
        return {
          rowspan: 1,
          colspan: 1,
        };
      }
    },
},
created({
  this.rowspan();
})
要实现Vue3 Element-Plus的el-table汇总行单元格合并,你可以使用`span-method`属性来定义一个函数,该函数可以返回每个单元格需要合并的行数和列数。下面是一个示例代码: ```html <el-table :data="tableData" border style="width: 100%"> <el-table-column prop="date" label="日期" width="180"> </el-table-column> <el-table-column prop="name" label="姓名" width="180"> </el-table-column> <el-table-column prop="address" label="地址"> </el-table-column> <el-table-column label="合计" :span-method="objectSpanMethod"> <template #default="{ rows, row, column, $index }"> <span v-if="$index === 0">{{ row.total }}</span> </template> </el-table-column> </el-table> ``` 在上面的代码中,我们定义了一个`objectSpanMethod`方法,并将其赋值给`span-method`属性。这个方法接收四个参数:`{ rows, row, column, $index }`。其中`rows`是当前列的所有行数据,`row`是当前行数据,`column`是当前列数据,`$index`是当前行的索引。 下面是`objectSpanMethod`方法的实现: ```js methods: { objectSpanMethod({ row, column, rowIndex, columnIndex }) { if (columnIndex === 3) { if (rowIndex === 0) { return { rowspan: this.tableData.length, colspan: 1 }; } else { return { rowspan: 0, colspan: 0 }; } } } } ``` 在上面的代码中,我们检查当前列是否为第四列(即“合计”列),如果是,我们检查当前行是否为第一行。如果是,我们返回一个对象`{ rowspan: this.tableData.length, colspan: 1 }`,其中`rowspan`表示当前单元格需要合并的行数,`colspan`表示当前单元格需要合并的列数。如果当前行不是第一行,则返回一个空对象`{ rowspan: 0, colspan: 0 }`,表示当前单元格不需要合并。 这样,我们就可以实现Vue3 Element-Plus的el-table汇总行单元格合并了。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值