当前位置:首页 > 经验笔记 > VUE > 正文内容

vue element table expand 设置只可以展开一行、设置点击行即可打开扩展内容

han32681年前 (2024-07-12)VUE2793

在Vue中使用Element UI的el-table组件时,‌可以通过以下步骤设置只可以展开一行以及通过点击行即可打开扩展内容:‌


设置只可以展开一行:‌


通过监听expand-change事件来实现每次只展开一行的效果。‌当expandedRows(‌已展开的行)‌的长度大于1时,‌清空expands数组(‌用于存储当前展开的行)‌,‌然后只将点击的那一行添加到expands数组中,‌并通过$refs.tableRef.toggleRowExpansion(expandedRows)来确保只有一行被展开。‌


设置点击行即可打开扩展内容:‌


在el-table上添加@row-click或@cell-click事件监听器,‌当行或单元格被点击时,‌调用$refs.tableRef.toggleRowExpansion(row)方法来展开或收起该行。‌


隐藏表格扩展隐藏图标:‌


通过设置<el-table-column type="expand" width="1"></el-table-column>的宽度为1,‌可以实现隐藏扩展图标的效果。‌或者,‌可以通过CSS来隐藏扩展图标。


<template>
  <el-table
    ref="myTable"
    :data="tableData"
    @row-click="handleRowClick"
  >
    <el-table-column type="expand" width="1">
      <template slot-scope="props">
        <!-- 扩展内容的模板 -->
      </template>
    </el-table-column>
    <!-- 其他列配置 -->
  </el-table>
</template>

<script>
export default {
  data() {
    return {
      tableData: [/* 表格数据 */],
      expandedRow: null, // 用于存储当前展开的行数据
    };
  },
  methods: {
    handleRowClick(row, column, event) {
      this.toggleRowExpansion(row); // 调用方法来处理行的展开和收起
    },
    toggleRowExpansion(row) {
      if (this.expandedRow) {
        // 如果之前有行处于展开状态,‌先收起它
        this.$refs.myTable.toggleRowExpansion(this.expandedRow);
      }
      // 展开点击的行
      this.$refs.myTable.toggleRowExpansion(row);
      this.expandedRow = row; // 更新当前展开的行数据为点击的行数据
    },
  },
};
</script>


在这个示例中,‌通过监听row-click事件,‌当行被点击时,‌会调用toggleRowExpansion方法来处理行的展开和收起。‌同时,‌通过设置expandedRow变量来跟踪当前展开的行数据,‌确保只有一行被展开。‌注意,‌这里的代码是一个简化的示例,‌实际使用时可能需要根据具体需求进行调整和优化

扫描二维码推送至手机访问。

版权声明:本文由瀚文博客发布,如需转载请注明出处。

本文链接:https://hanwenblog.com/post/106.html

分享给朋友:

相关文章

vue中实现点击按钮滚动到页面对应位置 使用css3平滑属性实现

vue中实现点击按钮滚动到页面对应位置 使用css3平滑属性实现

vue项目中,需要实现点击对应按钮,滚动到对应页面位置,下面分享一个简单实用的方法<template>   <div class="box&...

vue中$set的使用踩坑日记

vue中$set的使用踩坑日记

1、为什么要用set?在vue中,并不是任何时候数据都是双向绑定的。在官方文档中,有这样一段话,如下:从文档得知,当数据没有被双向绑定的时候,我们就需要使用set了2、set用法解决数据没有被双向绑定...

基于Vue的移动端图片裁剪组件(Clipic)可自动压缩

基于Vue的移动端图片裁剪组件(Clipic)可自动压缩

安装:Bashnpm install --save clipic使用代码:Markup<template>     ...

elementUI Cascader组件在for循环中无法使用getCheckedNodes这个方法

elementUI Cascader组件在for循环中无法使用getCheckedNodes这个方法

上一篇文章说了elementUI组件获取label的值,把Cascader选择器放在for循环中问题又来了用getCheckedNodes报错没有这个方法我就试探性的看看他的上级有没有存储 ...

vue跳转时打开新窗口的方法

    1、<vue-link>标签实现新窗口打开    官方文档中说 v-link 指令被 <rou...