在Vue 3和Element Plus中,可以使用el-table
组件创建嵌套表格,并使用el-table-column
的type="expand"
属性来实现展开行功能。以下是一个简单的例子:
<template>
<el-table :data="tableData" style="width: 100%">
<!-- 普通列 -->
<el-table-column prop="date" label="日期" width="180"></el-table-column>
<el-table-column prop="name" label="姓名" width="180"></el-table-column>
<!-- 展开行 -->
<el-table-column type="expand">
<template #default="{ row }">
<!-- 嵌套的表格 -->
<el-table :data="row.details" :show-header="false">
<el-table-column property="detailCol1" label="细节列1"></el-table-column>
<el-table-column property="detailCol2" label="细节列2"></el-table-column>
</el-table>
</template>
</el-table-column>
</el-table>
</template>
<script setup>
import { ref } from 'vue';
const tableData = ref([
{
date: '2016-05-02',
name: '王小虎',
details: [
{ detailCol1: '细节1', detailCol2: '细节详情1' },
{ detailCol1: '细节2', detailCol2: '细节详情2' }
]
},
// ...可以添加更多的数据
]);
</script>
在这个例子中,el-table
组件被用来展示主表格数据,其中包括展开行。展开行使用type="expand"
属性定义,并通过<template #default>
提供展开后要显示的内容,在这里是嵌套的el-table
组件,展示细节数据。
注意,这里使用了Vue 3的<script setup>
语法糖,这是Vue 3中的一个新特性,它能够让我们的组件更加简洁和直观。同时,tableData
是一个响应式数据,可以包含多个对象,每个对象都可以包含展开行的数据。