广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >如何使用element-ui table expand展开行实现手风琴效果
  • 494
分享到

如何使用element-ui table expand展开行实现手风琴效果

2024-04-02 19:04:59 494人浏览 独家记忆
摘要

这篇文章主要介绍如何使用element-ui table expand展开行实现手风琴效果,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!先展示一下ElementUI官方提供的示例代码

这篇文章主要介绍如何使用element-ui table expand展开行实现手风琴效果,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

先展示一下ElementUI官方提供的示例代码效果图

如何使用element-ui table expand展开行实现手风琴效果

可以看到官方代码中在这边没有让这个可展开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"
        
        :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展开行实现手风琴效果”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注编程网JavaScript频道!

--结束END--

本文标题: 如何使用element-ui table expand展开行实现手风琴效果

本文链接: https://www.lsjlt.com/news/68019.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何使用element-ui table expand展开行实现手风琴效果
    这篇文章主要介绍如何使用element-ui table expand展开行实现手风琴效果,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!先展示一下ElementUI官方提供的示例代码...
    99+
    2022-10-19
  • jquery如何实现手风琴展开效果
    这篇文章主要介绍“jquery如何实现手风琴展开效果”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“jquery如何实现手风琴展开效果”文章能帮助大家解决问题。手风琴模式实现方式:dom层代码:<...
    99+
    2023-07-02
  • element ui table如何实现点击一行展开功能
    这篇文章给大家分享的是有关element ui table如何实现点击一行展开功能的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。前言element ui是一个非常不错的vue的U...
    99+
    2022-10-19
  • 如何使用CSS制作手风琴效果的实现步骤
    手风琴效果是一个常见的网页展示效果,通过收缩和展开不同内容块,使网页更加美观和交互性。在本文中,我们将介绍如何使用CSS制作手风琴效果,并提供具体的代码示例。实现手风琴效果的基本原理是使用CSS的过渡(transition)和动画(anim...
    99+
    2023-10-21
    CSS 手风琴效果 实现步骤
  • 如何使用原生JS实现圣旨卷轴展开效果
    这篇文章将为大家详细讲解有关如何使用原生JS实现圣旨卷轴展开效果,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。实现原理:(1)利用绝对定位固定好起始位置;(2)利用遮罩将...
    99+
    2022-10-19
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作