antd vue2版本 table可展开多级
时间: 2023-08-13 15:03:08 浏览: 104
Ant Design Vue 2版本的Table组件默认只支持展开一级,如果需要展开多级,可以使用Table的`scopedSlots`和`renderContent`属性自定义渲染行的内容,实现多级展开。
以下是一个示例代码,展示如何实现多级展开的Table:
```vue
<template>
<a-table :columns="columns" :data-source="dataSource">
<template #expandedRowRender="{record}">
<a-table :columns="subColumns" :data-source="record.subData">
<template #expandedRowRender="{record}">
<a-table :columns="subSubColumns" :data-source="record.subSubData">
</a-table>
</template>
</a-table>
</template>
</a-table>
</template>
<script>
export default {
data() {
return {
columns: [
{ title: 'Name', dataIndex: 'name' },
{ title: 'Age', dataIndex: 'age' },
{ title: 'Address', dataIndex: 'address' },
],
subColumns: [
{ title: 'Sub Name', dataIndex: 'subName' },
{ title: 'Sub Age', dataIndex: 'subAge' },
{ title: 'Sub Address', dataIndex: 'subAddress' },
],
subSubColumns: [
{ title: 'Sub Sub Name', dataIndex: 'subSubName' },
{ title: 'Sub Sub Age', dataIndex: 'subSubAge' },
{ title: 'Sub Sub Address', dataIndex: 'subSubAddress' },
],
dataSource: [
{
key: '1',
name: 'John Brown',
age: 32,
address: 'New York No. 1 Lake Park',
subData: [
{
key: '1-1',
subName: 'John Brown Jr.',
subAge: 1,
subAddress: 'New York No. 2 Lake Park',
subSubData: [
{
key: '1-1-1',
subSubName: 'John Brown Jr. Jr.',
subSubAge: 1,
subSubAddress: 'New York No. 3 Lake Park',
},
],
},
],
},
],
};
},
};
</script>
```
在这个示例中,我们使用了三个不同的columns和dataSource,用于渲染Table的每一级。我们在第一级Table的`expandedRowRender`中定义了第二级Table,而在第二级Table的`expandedRowRender`中定义了第三级Table。这样就可以实现多级展开了。
阅读全文