vue 手风琴组件_Vue 使用Element-ui table组件实现手风琴效果

本文介绍了如何利用Element-UI的表格组件创建一个手风琴效果,即每次只展开一行。通过监听@expand-change事件,结合Vue的refs属性获取表格实例,使用toggleRowExpansion方法来控制行的展开和关闭。详细展示了实现思路、所需数据以及关键代码片段。
摘要由CSDN通过智能技术生成

利用Element-UI提供的表格组件做成手风琴效果, 即同时只能有一个行展开

效果展示

手风琴效果

版本说明

"vue": "^2.6.11",

"element-ui": "^2.13.0"

实现思路

准备工作

mock了两个静态数据: classList 和 studentMap , 分别表示班级列表, 班级-学生列表映射关系.

在表格中注入 @expand-change展开事件的处理函数handleExpandChange, 该事件触发会默认传入两个参数: row, expandedRows, 第一个参数是当前触发展开事件的行数据, 第二个参数是当前表格中处于展开状态的全部行数据.

点击班级的行展开的时候, 我们可以通过回调参数row中的班级id标记currentClassId, 这样就可以找到对应studentMap中该班级的学生列表, 渲染班级学生表并展开.

思路分析

首先看官方文档并没有提供表格手风琴相关的配置参数, OK, 那说明既然各种修改数据似乎都不行, 那么我想这个展开和收起一定是有触发的事件, 这么一思考, 我想到Vue的$refs属性获取到所有已声明注册过 ref 的所有的子组件, 那么我试试看是否可以拿到表格的实例, 来看看是否有相应的事件.

在handleExpandChange中定义一个table组件引用const $classTable = this.$refs.classTable, debug一下, 果然能拿到实例:

table组件实例

点开实例, 直接看方法, 关注expand字样, 果然被我找到了 - toggleRowExpans

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值