ElementPlus表格中如何循环展示多个城市和地址?

elementplus表格中如何循环展示多个城市和地址?

如何处理 elementplus 表格中循环展示多个 city 和 address?

elementplus 提供了灵活的表格展示方式,可以满足不同数据展示需求。当数据中包含循环嵌套的子数据时,通过前端处理可以轻松实现循环展示。

以下是如何处理 elementplus 表格中循环展示多个 city 和 address 的方法:

1. 遍历子数据

首先,需要遍历子数据列表,即 datalist 中的 citylist。countaddrinfo 用于记录子数据列表中元素的最大数量,并根据该值生成相应数量的列。

2. 动态生成列

然后,使用 template 循环生成列,每个列显示子数据列表中的一个元素。el-table-column 组件的 prop 属性用于指定列对应的数据属性,这里使用动态值来生成不同列的属性。formatter 函数用于格式化单元格内容,确保空值显示为破折号。

3. 根据循环数量生成列

根据 countaddrinfo 的值,循环生成 el-table-column 组件,每个组件展示一个子数据元素。例如,如果 countaddrinfo 为 3,那么将生成 3 对列,分别显示城市和地址。

4. example

下述代码示例实现了 elementplus 表格中循环展示多个 city 和 address:

<template><el-table :data="tableData" style="width: 100%"><el-table-column prop="date" label="Date" width="180"></el-table-column><template v-for="index in countAddrInfo"><el-table-column :prop="`cityList[${index - 1}].cityName`" :label="'Name' + index" width="180" :formatter="(row, column, cellValue) => cellValue || '--'"></el-table-column><el-table-column :prop="`cityList[${index - 1}].address`" :label="'Address' + index" :formatter="(row, column, cellValue) => cellValue || '--'"></el-table-column></template></el-table></template><script lang="ts" setup>
const tableData = [
  {
    date: "2022-05-31",
    cityList:[
      { city: "1", cityName:"北京", address:"xxx" },
      { city: "2", cityName:"上海", address:"xxx" },
      { city: "3", cityName:"苏州", address:"xxx" },
    ]
  },
  {
    date: "2022-06-01",
    cityList:[
      { city: "1", cityName:"北京", address:"xxx" },
      { city: "2", cityName:"上海", address:"xxx" },
      { city: "3", cityName:"苏州", address:"xxx" },
    ]
  },
];
const countAddrInfo = tableData.reduce((total, current) => Math.max(total, current.cityList.length), 0);
</script>

以上就是ElementPlus表格中如何循环展示多个城市和地址?的详细内容,更多请关注其它相关文章!