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

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

han32681年前 (2024-07-12)VUE2971

在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中实现element-ui的el-dialog弹框拖拽

1.在assets/js/文件夹下新建directives.js 文件:import Vue from 'vue' // v-dialog...

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

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

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

vue 用webpack 打包的时候添加版本号, VUE 项目更新部署时,浏览器页面缓存问题

因浏览器缓存原因导致vue 打包的文件 导致偶尔会出现不能即使更新最新代码。因此在打包的文件名中添加一个版本号以便浏览器能区分。module.exports = {  ...

VUE拖放排序,好用的vue拖拽插件vuedraggable拖放排序

VUE拖放排序,好用的vue拖拽插件vuedraggable拖放排序

1  安装依赖:npm i -S vuedraggable2. 使用组件:html:    <draggable&...

vue 弹框使用this.$emit调用父组件方法及传参 无效 (已解决) this.$parent

// 在子组件中调用父组件的method1方法 this.$parent.method1() // 获取父组件属性值 this.$parent.prop...