利用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

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

  1. element ui table组件筛选数据

    需求:element ui table组件筛选全部数据 element ui 文档 注意: 1. @filter-change 要写在table根元素,也就是<el-table @filter- ...

  2. Element UI table组件源码分析

    本文章从如下图所示的最基本的table入手,分析table组件源代码.本人已经对table组件原来的源码进行削减,源码点击这里下载.本文只对重要的代码片段进行讲解,推荐下载代码把项目运行起来,跟着文章 ...

  3. element ui table组件扩展关于列表编辑按钮的位置放置

    最近在用vue做项目,主要是用的element ui的组件,在用的过程中发现有部分组件需要扩展,改源码太折腾,成本高,就想着如何节省成本来实现这些需求,由于项目时间紧张,有些实现来也没来得及记录一下, ...

  4. element ui table组件 异步加载数据盒子位移

    使用element ui 中的 table组件时 ,异步加载数据,然后渲染上去时会出现td与th对不齐,但是重新重新进一次就有又好了,但是对于用户体验肯定是不行的. 这个时候只需要使用element ...

  5. Element ui table组件滚动条隐藏与样式修改

    Element ui 虽然用起来方便,但是调整就比较麻烦了,尤其是这个table组件,一旦设定了height属性,数据多的时候就会自动出现滚动条,如果你改了其他的样式,这个滚动条就是十分难看,可以用下 ...

  6. Element UI Table组件固定列底部有一条白线的解决方案

    bug:在某一次项目中使用暗色系的固定列时发现有一条白线无法消除(之前项目都是亮色系所以没发现问题) 通过排查发现这条白线能够随着el-table__fixed-right元素移动但是却没有任何子元素 ...

  7. element ui table show-overflow-tooltip自定义样式

    element ui table show-overflow-tooltip自定义样式 在使用element ui table 组件时,表格td内容太多可设置show-overflow-tooltip ...

  8. element ui table封装组件,render 函数动态事件设置

    接着上一篇讲的,封装element ui table, 支持自定义列的展示和按照指定顺序展示 自定义列需要在引用页面重新写一下,这样就可以定义化了,多数用于一些转换,或者操作列场景下,自行考虑即可,我 ...

  9. Vue UI组件库以及 Element UI 使用

    Vue UI组件库以及 Element UI 使用 1. Vue UI 组件库 1.1 移动端常用 UI 组件库 1.2 PC 端常用 UI 组件库 2. Element UI 2.1 安装 2.2 ...

  10. element走马灯自动_vue Element UI走马灯组件重写

    1.element ui走马灯组件 -- carousel 分析一波源代码: carousel/src/main.vue 文件为 el-carousel文件主要功能 carousel/src/item ...

最新文章

  1. 区块链中的“智能合约”有何应用?
  2. J - Invitation Cards POJ - 1511
  3. 4、MySQL修改存储过程(ALTER PROCEDURE)
  4. PaperWeekly 第52期 | 更别致的词向量模型:Simpler GloVe - Part 1
  5. 【SQL】存储过程procedure 触发器trigger
  6. JeeCG - <t:choose/> 标签用法 输入框控件 查询输入
  7. 显著性检测(saliency detection)评价指标之KL散度距离Matlab代码实现
  8. 易用性强的数据库管理工具DBeaverEE v22.0.1
  9. 阶段3 2.Spring_01.Spring框架简介_02.今日课程内容介绍
  10. 首席省钱赚钱专家微信小程序源码下载,淘宝客 外卖侠 外卖cps 首席多多客 八合一小程序源码
  11. matlab矩阵除法——记忆技巧
  12. Firefox扩展插件开发extension代码调试方法
  13. 解决方案的四种落地形态
  14. 爬虫破解js加密破解(二) 有道词典js加密参数 sign破解
  15. 智能养殖管理系统科学调控蛋鸡养殖环境
  16. 计算机采用什么交换技术,计算机 交换技术是什么?
  17. html游戏让目标人物移动,用仿ActionScript的语法来编写html5——第三篇,鼠标事件与游戏人物移动...
  18. Jenkins+GitHub报错hudson.plugins.git.GitException: Failed to fetch from GitHub 443
  19. poj 3186 Treats for the Cows (区间dp)
  20. 七月在线笔记之推荐系统

热门文章

  1. ubuntu下的 ps 命令
  2. 蓝桥杯 出栈顺序问题引发的思考以及递归的优化(缓存池)
  3. 手机模拟续航测试软件,5G手机中的续航王者?OPPO Reno3 Pro两小时续航实测
  4. 自己设计计算机网络实验室,浅谈高校计算机网络实验室的规划与设计
  5. 单元测试框架PowerMock
  6. android高德SDK,Marker的zIndex导致的遮罩层问题解决
  7. win10启动项_UEFI(win7_64X操作系统)添加PE启动项
  8. github 绑定阿里云购买的域名,步骤梗概
  9. Data Lake Analytics中OSS LOCATION的使用说明
  10. 英语听力 调整心态很重要