vue ant design3 使用可展开表格,展开内容为子表格,子表格数据为主表格的children
时间: 2023-12-10 07:41:12 浏览: 129
ant design vue中表格指定格式渲染方式
5星 · 资源好评率100%
可以使用 Vue Ant Design3 的可展开表格来实现这个需求。具体实现方法如下:
首先,定义主表格的数据格式,包含一个 children 属性,用于存储子表格的数据:
```
{
key: '1',
name: 'John Brown',
age: 32,
address: 'New York No. 1 Lake Park',
children: [
{
key: '11',
name: 'Jim Green',
age: 42,
address: 'London No. 1 Lake Park',
},
{
key: '12',
name: 'Joe Black',
age: 32,
address: 'Sidney No. 1 Lake Park',
},
],
},
```
然后,在主表格的 columns 中,定义一个可展开的列,使用 scoped slot 渲染子表格的数据:
```
<template>
<a-table :columns="columns" :data-source="data">
<template #expand="record">
<a-table :columns="childColumns" :data-source="record.children"></a-table>
</template>
</a-table>
</template>
<script>
export default {
data() {
return {
columns: [
{
title: 'Name',
dataIndex: 'name',
},
{
title: 'Age',
dataIndex: 'age',
},
{
title: 'Address',
dataIndex: 'address',
},
{
title: 'Action',
key: 'action',
slots: { customRender: 'action' },
},
{
title: '',
key: 'expand',
slots: { customRender: 'expand' },
},
],
childColumns: [
{
title: 'Name',
dataIndex: 'name',
},
{
title: 'Age',
dataIndex: 'age',
},
{
title: 'Address',
dataIndex: 'address',
},
],
data: [
{
key: '1',
name: 'John Brown',
age: 32,
address: 'New York No. 1 Lake Park',
children: [
{
key: '11',
name: 'Jim Green',
age: 42,
address: 'London No. 1 Lake Park',
},
{
key: '12',
name: 'Joe Black',
age: 32,
address: 'Sidney No. 1 Lake Park',
},
],
},
],
};
},
};
</script>
```
这样,当用户点击主表格中的展开按钮时,会显示对应的子表格数据。子表格的数据来源于主表格的 children 属性。
阅读全文