vue2 对象中遍历对象 并动态展示数据

要求实现的效果

后端返回的数据

思路:

detectCategoryCount 中的字段数据是动态的,无法确认它里面到底会出现多少条,可以使用for循环来解决:

// 先判断list是否有数据
if (data.length > 0){
// 遍历
  data.map((item) => {
     let keyList = []
     for(let key in item.detectCategoryCount){
// 将对象中的key值遍历出来进行保存
           keyList.push(key)
          }
        keyList.forEach((item33) => {
 // 保存后再把数据放到外面来
           item[item33] = item.detectCategoryCount[item33]
// 储存会出现的表头
           this.titleList.push(item33)
          })
     })
}
// 每条数据可能会出出现相同的数据,所以要去重
 this.titleList = [...new Set(this.titleList)]
<el-table :data="tableData">
         ...
                <el-table-column v-for="(item) in titleList" :label="item" align="center">
                    <template v-slot="scope">
                        <el-button type="text" size="mini" 
                            @click="checkData(scope.row,item)">
                        {{scope.row[item]}}    
                    </el-button>
                    </template>
                </el-table-column>

            </el-table>

根据titleList中的表头数据进行for循环遍历出来 label就是该表头 prop 使用模板字符串 获取当前行的数据来获取 scope.row[item] 就是当前行的对象 例如截图中的 地下水、废气

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值