el-table 中数据嵌套绑定

现有需求:前三列显示省份,城市,以及一个固定值,后边循环出十二个月份,每个月显示5个字段,

显示效果如下图

数据格式如下

{
    "Data":[
        {
            "provincename":"河北省",
            "cityname":"石家庄市",
            "baseamount":"0",
            "infolist":[
                {
                    "year":"2021",
                    "month":"01",
                    "amount1":"0",
                    "industryamount":"0",
                    "value1":"0",
                    "amount2":"0",
                    "amount3":"0.03"
                },
                {
                    "year":"2021",
                    "month":"02",
                    "amount1":"0",
                    "industryamount":"0",
                    "value1":"0",
                    "amount2":"0",
                    "amount3":"0.03"
                },
                {
                    "year":"2021",
                    "month":"03",
                    "amount1":"0",
                    "industryamount":"0",
                    "value1":"0",
                    "amount2":"0",
                    "amount3":"0.03"
                }
            ]
        }
    ]
    
}

获取data 数据赋值给tableData,然后data 中的infolist赋值给tableDataline

el-table  使用 :data 绑定 tableData 数据源

el-table-column绑定完三个字段后 使用v-for 在el-table-column循环绑定tableDataline

直接上代码

<el-table :data="tableData" border stripe v-loading="loading">
        
        <el-table-column align="center" label="省份">
          <template scope="scope">{{ scope.row.provincename }}</template>
        </el-table-column>
        <el-table-column align="center" label="城市">
          <template scope="scope">{{ scope.row.cityname }}</template>
        </el-table-column>
        <el-table-column align="center" label="2020年度基础">
          <template scope="scope">{{ scope.row.baseamount }}</template>
        </el-table-column>
        <el-table-column
          v-for="(item, index) in tableDataline"
          :label="item.new_year + item.new_month"
          v-bind:key="index"
        >
          <el-table-column
            align="center"
            label="数据1"
          >
            <template>{{ item.amount1 }}</template>
          </el-table-column>
          <el-table-column
            align="center"
            label="数据2"
          >
            <template>{{ item.industryamount }}</template>
          </el-table-column>
          <el-table-column
            align="center"
            label="数据3"
          >
            <template>{{ item.new_value1 }}</template>
          </el-table-column>
          <el-table-column
            align="center"
            label="数据4"
          >
            <template>{{ item.amount2 }}</template>
          </el-table-column>
          <el-table-column
            align="center"
            label="数据5"
          >
            <template>{{ item.amount3 }}</template>
          </el-table-column>
        </el-table-column>
      </el-table>

 

  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
el-tableElement UI 提供的一个表格组件,可以用于展示和编辑数据嵌套 el-table 勾选是指在一个 el-table 嵌套另一个 el-table,并且可以通过勾选来控制子表格的显示与隐藏。 实现嵌套 el-table 勾选的步骤如下: 1. 在父表格的列定义,使用自定义模板来渲染子表格的展开与收起按钮。可以使用 el-table-column 的 scoped-slot 属性来定义自定义模板。 2. 在自定义模板,使用 el-checkbox 组件来实现勾选功能,并绑定一个变量来控制子表格的显示与隐藏。 3. 在父表格的行数据,添加一个属性来保存子表格的数据。 4. 在父表格的行展开事件,根据当前行的数据,将子表格的数据赋值给子表格的数据属性。 5. 在子表格,使用 v-if 或 v-show 来根据勾选状态来控制子表格的显示与隐藏。 下面是一个示例代码: ```html <template> <el-table :data="tableData" style="width: 100%"> <el-table-column type="expand"> <template slot-scope="props"> <el-checkbox v-model="props.row.expanded" @change="toggleChildTable(props.row)"></el-checkbox> </template> </el-table-column> <el-table-column prop="name" label="Name"></el-table-column> <el-table-column prop="age" label="Age"></el-table-column> <el-table-column prop="gender" label="Gender"></el-table-column> </el-table> </template> <script> export default { data() { return { tableData: [ { name: 'John', age: 20, gender: 'Male', expanded: false, // 控制子表格的显示与隐藏 children: [ { name: 'Tom', age: 18, gender: 'Male' }, { name: 'Alice', age: 22, gender: 'Female' } ] }, { name: 'Mary', age: 25, gender: 'Female', expanded: false, children: [ { name: 'Bob', age: 30, gender: 'Male' }, { name: 'Linda', age: 28, gender: 'Female' } ] } ] }; }, methods: { toggleChildTable(row) { row.expanded = !row.expanded; } } }; </script> ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值