Table 展开行功能,打开展开项和关闭展开项

博客介绍了在Vue中使用Element UI的el-table组件实现展开列功能。包括在el-table-column的expand插槽下书写内容,以及在el-table设置相关属性和方法,如expand-change、expand-row-keys、row-key等,实现点击展开列获取指定数据,且每次仅能打开一个展开项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.在el-table下的

<el-table-column type="expand">

 <template #default="props">插槽下书写内容

 </template>
 </el-table-column>

2.在el-table设置三个

@expand-change="expandChange" :expand-row-keys="expands" :row-key="getRowKeys"

(1)设置一个空数组

(2) 设置一个方法,return返回一个唯一值,方法里有一个参数,是表格里的所有数据

(3)点击展开列调用展开列事件方法,可以获取到俩个参数,一个是表格的每条数据row,另一个是当用户对某一行展开或者关闭的时候会触发该事件参数expandedRows;

第一步,设置row-key获取到唯一值,

第二步,设置expand-row-keys设置一个空数组,

第三步,当点击展开列按钮,调用方法,将名字通过expand.value=[row.name],判断expandedRows的长度,如果为空,把expands.value=[] ,如果不为空,把expands.value=[],如果row为true,将row.name存到数组中。

当你点击哪项,会获取到指定数据,再次点击展开项关闭,每次展开项只能打开一个。

 

 

 

 

 

 

### 实现 Element UI `el-table` 组件中的手风琴效果 为了实现在 `el-table` 中展开的单选(即每次只允许一处于展开状态),可以利用 Vue 的响应式特性以及 `el-table` 提供的相关属性。具体来说,可以通过监听表格点击事件并控制每一是否被展开的状态。 #### 关键点分析 - **数据绑定**:确保每条记录都有唯一的标识符用于追踪其展开/折叠状态。 - **方法定义**:编写切换当前展开状态的方法,并关闭其他已打开[^1]。 下面是一个完整的解决方案: ```html <template> <div id="app"> <!-- 定义table组件 --> <el-table :data="tableData" style="width: 100%" @row-click="handleRowClick" :expand-row-keys="expandedRows" row-key="id"> <el-table-column type="expand"> <template slot-scope="props"> <p>{{ props.row.description }}</p> <!-- 展开显示的内容 --> </template> </el-table-column> <el-table-column label="日期" prop="date"></el-table-column> <el-table-column label="姓名" prop="name"></el-table-column> </el-table> </div> </template> <script> export default { data() { return { expandedRows: [], // 存储当前展开ID数组 tableData: [ { date: '2016-03', name: 'Tom', description: '描述一' }, { date: '2016-05-02', name: 'Jack', description: '描述二' } ] }; }, methods: { handleRowClick(row) { const index = this.expandedRows.indexOf(row.id); if (index === -1 && !this.expandedRows.includes(row.id)) { this.expandedRows = [row.id]; // 只保留最新点击的那一作为唯一展开 } else { this.expandedRows = []; // 如果再次点击已经展开目,则收起它 } } } }; </script> ``` 上述代码片段展示了如何设置 `el-table` 来支持手风琴样式的展开功能。这里的关键在于使用了 `@row-click` 监听器捕获用户的交互为,并通过修改 `expandedRows` 数组来动态调整哪些应该保持展开状态。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值