使用element-ui table expand展开行实现手风琴效果
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了使用element-ui table expand展开行实现手风琴效果,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3440字,纯文字阅读大概需要5分钟。
内容图文
问题讲解:
在使用vue版本的ElementUI中的table功能的时候还是遇到了一些问题,可以说饿了么团队在这个UI框架的文档撰写已经非常不错了,不过还是有一些方法乍一看让人摸不着头脑,有些table的常用功能示例代码提供的不是非常详细,所以这次针对这个可展开表格实现手风琴效果写一篇博客探讨一下。
先展示一下ElementUI官方提供的示例代码效果图
可以看到官方代码中在这边没有让这个可展开table自动折叠的功能,我点击了别的标签页后上次点击的行仍旧处在一个展开的状态,而且操控的方式也只能点击到左上角的小箭头才可以控制行的展开状态,体验不是特别好,可以说有点糟糕了,但是我后来在后面的文档中发现The methods 里面有写到一个方法叫toggleRowExpansion,这个方法应该是官方本意上想让我们来自由控制展开状态的,从传递的两个参数来看,一个是row(当前点击的行id),另一个是expended(行展开状态,boolean值),看上去有理有据,但是就是不知道怎么用,因为我始终无法获取到expended这个参数的值,有点气,所以这次我们用另一种方式来实现这个功能。
代码实现:
核心是 row-key、expand-row-keys属性
特别要注意的是row-key传入的是一个Function(row),而expand-row-keys传入的是一个数组,元素的值是要展开的row的key。
row-key这个属性是获取当前行号的,expand-row-keys这个属性是获取到展开的行号的,所以前者为一个单值,而后者是一个数组形式,所以这个属性也同样适用于表格多选列这种情况。
<el-table :data="compony" style="width: 100%;margin-top:80px" :row-key="getRowKeys" :expand-row-keys="expands" @current-change="toggleRowExpansion"> <el-table-column type="expand"> <template slot-scope="props"> <el-form label-position="left" inline class="demo-table-expand"> <el-form-item label="公司名称"> <span>{{ props.row.com_name }}</span> </el-form-item> <el-form-item label="下属电厂ID"> <span>{{ props.row.fct_id }}</span> </el-form-item> <el-form-item label="电厂名称"> <span>{{ props.row.fct_name }}</span> </el-form-item> <el-form-item label="用户名"> <span>{{ props.row.user_name }}</span> </el-form-item> <el-form-item label="密码"> <span>{{ props.row.password }}</span> </el-form-item> <el-form-item label="加入时间"> <span>{{ props.row.join_time | formatDate}}</span> </el-form-item> <el-form-item label="离开时间"> <span>{{ props.row.leave_time }}</span> </el-form-item> </el-form> </template> </el-table-column> <el-table-column label="公司 ID" prop="com_id"> </el-table-column> <el-table-column label="公司名称" prop="com_name"> </el-table-column> <el-table-column label="操作"> <template slot-scope="scope"> <el-button size="mini" @click="handleEdit(scope.$index, scope.row)">编辑</el-button> <el-button size="mini" type="danger" @click="handleDelete(scope.$index, scope.row)">删除</el-button> </template> </el-table-column> </el-table>
这边因为要涉及到我项目最终实现的效果,所以我这里就直接把我的整个table都复制上来了,这边的重点主要是table的各个属性,也就是这个代码段的开头,我们在这里涉及到了一个新的监听事件@current-change="toggleRowExpansion"
,这个事件表示切换行的时候会有一个触发的事件发生,我们在获取了行id,展开行id之后,还要去data里面定义我们所要用到的数据框架。
data() { return { compony:[], // 获取row的key值 getRowKeys(row) { return row.id; }, form: {}, // 要展开的行,数值的元素是row的key值 expands: [], } },
这边我就展示所需要用到的数据布置了,通过getRowKeys方法获取到row的行id值,定义一个expands展开行的数组,最后是业务逻辑代码
data() { return { compony:[], // 获取row的key值 getRowKeys(row) { return row.id; }, form: {}, // 要展开的行,数值的元素是row的key值 expands: [], } },
因为我们现在只要求展开一行,所以每次把需要展开行的id储存进数组时要先清空一次数组,然后在push进去,最终实现效果图
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
内容总结
以上是互联网集市为您收集整理的使用element-ui table expand展开行实现手风琴效果全部内容,希望文章能够帮你解决使用element-ui table expand展开行实现手风琴效果所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。