vue2,el-table表格合并

本文介绍如何在Vue2项目中利用el-table组件,根据数据的特定字段(如区域名称)进行表格行合并。通过设置html结构并结合JavaScript处理后端返回的数据,实现了前端动态表格的行合并效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这个就是效果图我是根据申报所属区域进行的合并

 这一部分的话就是html代码

<el-table ref="addResPaperTable" :data="declareTableList" :span-method="objectSpanMethod" border style="width: 100%;" fit stripe>
        <el-table-column  prop="organizationName" label="医疗机构" minWidth="150px" />
        <el-table-column prop="areaName" label="申报所属区域"  />
        <el-table-column prop="itemType" label="费用类型" />
        <el-table-column prop="standardAmount" label="报销标准" />
        <el-table-column prop="amount" label="金额" />
        <el-table-column prop="ggwsAmount" label="财政报销金额(元)" />
    </el-table>

这个自己看

data () {
    return {
      declareTableList: [],
      GoodName: [],
      spanArr: [], // 二维数组,用于存放单元格合并规则
      position: 0 // 用于存储相同项的开始index
    }
  },

 这个的话就是自己请求后端拿到的数据,this.rowspan(0, item.areaName)一定要写,这个是你从接口里拿到的那个要判断的那个字段传过去

 这个就是js里的代码

// 合并单元格
    rowspan (idx, prop) {
      this.spanArr[idx] = []
      this.position = 0
      this.GoodName.forEach((item, index) => {
        if (index === 0) {
          this.spanArr[idx].push(1)
          this.position = 0
        } else {
          // 判断里面的某个字段是否重复
          if (this.GoodName[index].areaName === this.GoodName[index - 1].areaName) {
            this.spanArr[idx][this.position] += 1// 有相同项
            this.spanArr[idx].push(0) // 名称相同后往数组里面加一项0
          } else {
            this.spanArr[idx].push(1)// 同列的前后两行单元格不相同
            this.position = index
          }
        }
      })
    },
    objectSpanMethod ({ rowIndex, columnIndex }) {
      // 要合并第几列
      if (columnIndex === 6) {
        const _row = this.spanArr[0][rowIndex]
        const _col = _row > 0 ? 1 : 0
        return {
          rowspan: _row,
          colspan: _col
        }
      }
    },

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值