当前位置: 首页 > news >正文

Vue table 点击按钮展开折叠面板

vue 实现的 table 折叠展开功能,由于工作中用到,这里把相应代码整理下,方便自己日后 Copy

1.Html 部分

由基本的 table 表单与折叠栏部分组成
PS:table 上需要加上 ref,以便方法中能够获取到 table 属性

    <!-- 注意:el-table 上加一个 ref="table" -->
    <el-table ref="table" :data="list" border style="width: 100%; margin-top:20px; min-height:700px">
      <el-table-column align="center" label="编号">
        <template slot-scope="scope">
          <span>{{ id }}</span>
        </template>
      </el-table-column>
   
      <el-table-column align="center" label="姓名">
        <template slot-scope="scope">
          <span>{{ name }}</span>
        </template>
      </el-table-column>

      <el-table-column label="操作" width="300" align="center" prop="operation">
        <template slot-scope="scope">
          <el-button plain @click="toogleExpand(scope.row)">详情</el-button>
        </template>
      </el-table-column>

      <!-- 展开部分 -->
      <el-table-column type="expand" width="1">
        <template slot-scope="props">
          <el-form label-position="left" inline class="demo-table-expand">
            <!-- 参数列表 -->
            <el-form-item label="1111" label-width="100%">
              aaa
            </el-form-item>
          </el-form>

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

2. vue 的 JS 部分

  <script>
    export default {
      data() {
        return {
          list: [{
            id: '1',
            name: '王小1',
          }, {
            id: '2',
            name: '王小2',
          }, {
            id: '3',
            name: '王小3',
          }, {
            id: '4',
            name: '王小4',
          }]
        }
      },
      
      methods: {
        // 展开行效果
        toogleExpand(row) {
          const $table = this.$refs.table
          // 注意,这里的 this.list 是上面 data 中的 list
          // 通过比对数据与行里的数据,对展开行进行控制,获取对应值
          this.list.map((item) => {
            if (row.id !== item.id) {
              $table.toggleRowExpansion(item, false)
            }
          })
          $table.toggleRowExpansion(row)
        },
      }
    }
  </script>

3.css 部分

这里除了基本的属性外,主要我发现展开栏部分会有空白各自部分,还能拖开,因此加属性把多余部分给隐藏掉
下方有注释

<style>
  /* 展开行样式 */
  .demo-table-expand {
    font-size: 0;
  }
  .demo-table-expand label {
    width: 90px;
    color: #99a9bf;
  }
  .demo-table-expand .el-form-item {
    margin-right: 0;
    margin-bottom: 0;
    width: 100%;
  }
  .el-form-item__content {
    width: 100%;
  }
  /* 隐藏上方表格多余部分 */
  .undefined.el-table__expand-column {
    display: none;
  }
  /* 隐藏上方表格多余部分 */
  .el-table_1_column_8 .el-table--border td, .el-table--border th, .el-table__body-wrapper .el-table--border.is-scrolling-left~.el-table__fixed {
    border-right: 0px solid #ebeef5
  }
</style>

4.效果图

这个效果图是我后面补的,但是功能是以上面来做的

相关文章:

  • Vue table 表格中参数过长省略并且提示显示
  • SpringBoot 第三方 jar 包及 xml 扫描问题
  • Java redirect 后台带参重定向到另一个接口
  • Vue 新手学习笔记:vue-element-admin 之登陆及目录权限控制
  • SpringCloud 之 Feign 以及 Feign 异常处理
  • SpringCloud 之 Eureka 配置,Eureka 集群,Eureka 监听
  • 我的程序人生:码农
  • Vue 新手学习笔记:vue-element-admin 之按钮级权限管控
  • SpringBoot 集成 Druid 配置及数据库密码加密
  • MySQL 集群(一):Docker 搭建 MySQL,MySQL 主从同步搭建及踩坑
  • MySQL 集群(二):Atlas 结合 Docker MySQL 实现读写分离与验证
  • Jenkins + Docker 部署,使用,持续集成以及踩坑
  • Docker 删除 Exited 容器以及删除 none 镜像
  • LeetCode Java 深度优先算法(DFS)实现岛屿个数计算,附带详细分析
  • LeetCode Java 队列结合广度优先算法(BFS)实现岛屿个数计算,附带详细分析
  • 【159天】尚学堂高琪Java300集视频精华笔记(128)
  • 【附node操作实例】redis简明入门系列—字符串类型
  • Angular 响应式表单 基础例子
  • C++类中的特殊成员函数
  • CentOS 7 防火墙操作
  • js操作时间(持续更新)
  • js数组之filter
  • k8s如何管理Pod
  • pdf文件如何在线转换为jpg图片
  • React 快速上手 - 07 前端路由 react-router
  • Spring Boot MyBatis配置多种数据库
  • 普通函数和构造函数的区别
  • 如何用Ubuntu和Xen来设置Kubernetes?
  • 详解移动APP与web APP的区别
  • 译自由幺半群
  • Java性能优化之JVM GC(垃圾回收机制)
  • 组复制官方翻译九、Group Replication Technical Details
  • (2)(2.4) TerraRanger Tower/Tower EVO(360度)
  • (HAL)STM32F103C6T8——软件模拟I2C驱动0.96寸OLED屏幕
  • (Pytorch框架)神经网络输出维度调试,做出我们自己的网络来!!(详细教程~)
  • (十五)使用Nexus创建Maven私服
  • (转载)Linux网络编程入门
  • .NET CORE 2.0发布后没有 VIEWS视图页面文件
  • .Net core 6.0 升8.0
  • .NET Framework与.NET Framework SDK有什么不同?
  • .Net Redis的秒杀Dome和异步执行
  • .NET6 命令行启动及发布单个Exe文件
  • .netcore 获取appsettings
  • .NET连接MongoDB数据库实例教程
  • .Net通用分页类(存储过程分页版,可以选择页码的显示样式,且有中英选择)
  • .sdf和.msp文件读取
  • [].shift.call( arguments ) 和 [].slice.call( arguments )
  • [3D基础]理解计算机3D图形学中的坐标系变换
  • [ACM] hdu 1201 18岁生日
  • [BUUCTF 2018]Online Tool
  • [C++]四种方式求解最大子序列求和问题
  • [CF543A]/[CF544C]Writing Code
  • [Codeforces] number theory (R1600) Part.11
  • [CSS]浮动
  • [Django 0-1] Core.Email 模块