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

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

han32682个月前 (07-12)VUE617

在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变量来跟踪当前展开的行数据,‌确保只有一行被展开。‌注意,‌这里的代码是一个简化的示例,‌实际使用时可能需要根据具体需求进行调整和优化

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

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

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

分享给朋友:

相关文章

element-ui Tree 树形控件实现单选 最简方法VUE

做项目时需要用到Tree树形控件单选但是Tree组件没有单选设置,网上找了几个方法不太适应,看了官网文档发现很简单 代码如下      &n...

vue引入本地json数据文件

    data() {         return {...

vue 项目运行node-sass报错

vue 项目运行node-sass报错

报错信息Browserslist: caniuse-lite is outdated. Please run:   npx&nb...

基于Vue的移动端图片裁剪组件(vue-imgcut)

基于Vue的移动端图片裁剪组件(vue-imgcut)

安装:npm install vue-imgcut –save使用代码:<template>     <div...

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

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

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。