Element table组件动态设置expand展开项以及同时只展开一项

news2025/2/23 7:07:10

场景一:table表格展开项过多,界面数据太繁杂影响查看。

场景二:Element Table加载的数据发生变化时,会重新渲染界面,之前的展开项会自动关闭,用户需要手动去打开展开项,频繁的手动操作会极大的影响客户体验。

一、Element expand相关参数

Element Table 是一个基于 Element UI 的表格组件。要设置 Element Table 的默认展开项,可以使用 default-expand-all 属性将所有行都展开,或者使用 expand-row-keys 属性设置默认展开的行的 key。

例如,要将所有行都默认展开,可以将 default-expand-all 设置为 true

<el-table :data="tableData" default-expand-all>
  <!-- 表格列定义 -->
</el-table>

要设置默认展开的行,可以将 expand-row-keys 设置为一个包含行的 key 的数组:

<el-table ref="tableList" :data="tableData" :row-key="row => row.id" :expand-row-keys="[1, 3]">
  <!-- 表格列定义 -->
</el-table>

在上面的例子中,设置了 row-key 属性来指定行的 key 为 id,并将 expand-row-keys 设置为包含 13 的数组,这样在加载表格时这两行会自动展开。

如果需要了解更多Element Table参数,请参考官方文档:Element 官方文档

二、场景一问题解决

<el-table ref="tableList" :data="tableData" :row-key="row => row.id" 
:expand-row-keys="expandRows" @expand-change="handleExpandChange">
  <!-- 表格列定义 -->
</el-table>

export default {
    data() {
        return {
            // 展开数组
            expandRows: [],
        };
    },
    methods: {
        // 展开改变触发函数,只展开一行
        handleExpandChange(row, expandedRows) {
            if (expandedRows.length > 1) {
                this.$refs.tableList.toggleRowExpansion(expandedRows[0])
            }
        },
    }
}
</script>

在上面的例子中,我们通过 expand-change 展开触发事件来实现只展开一项。expand-change回调函数的一个参数为当前的展开行,第二个参数为已经展开项的行数组。如果展开项的数量大于1,就通过toggleRowExpansion 方法动态关闭前一项。

注意,为了使用 $refs.tableList.toggleRowExpansion 方法,我们需要给表格添加一个 ref 属性,如上面例子中的 ref="tableList"

三、场景二问题解决

<el-table ref="tableList" :data="tableData" :row-key="row => row.id" 
:expand-row-keys="expandRows" @expand-change="handleExpandChange">
  <!-- 表格列定义 -->
</el-table>

export default {
    data() {
        return {
            // 展开项数组
            expandRows: [],
            // 展开行key
            expandKey: null,
        };
    },
    methods: {
        /** 查询table列表数据 */
        getList() {
            this.loading = true;
            listDeliveryOrder(this.queryParams).then(response => {
                this.deliveryOrderList = response.rows;
                this.total = response.total;
                this.loading = false;
                this.resumeTable();
            });
        },
        /*恢复table展开项*/
        resumeTable() {
            if (this.expandKey) {
                this.expandRows = []
                this.expandRows.push(this.expandKey);
            }
        },
    }
}
</script>

在上面的例子中我们可以通过提前记录用户之前的展开项key,当重新渲染数据时,将记录的expandkey,push到 expand-row-keys 参数的数组中,实现默认展开table项

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/444227.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Vue系列:在离线环境下部署,CDN无法访问导致vuex.min.js、axios.min.js和vue-router.min.js的cdn地址无法访问

目录 遇到的问题&#xff1a; 问题分析&#xff1a; 解决方案有以下两种&#xff1a; 遇到的问题&#xff1a; 在客户现场部署程序&#xff0c;是在外网环境的服务器上&#xff0c;部署起来后&#xff0c;发现前端vuex.min.js、axios.min.js和vue-router.min.js无法访问 问题…

【Python_Scrapy学习笔记(十)】基于Scrapy框架的下载器中间件创建代理IP池

基于Scrapy框架的下载器中间件创建代理IP池 前言 本文中介绍 如何基于 Scrapy 框架的下载器中间件创建代理IP池。 正文 1、添加中间件的流程 在 middlewares.py 中新建 代理IP 中间件类在 settings.py 中添加此下载器中间件&#xff0c;设置优先级并开启 2、基于Scrapy框…

Node【初识Express框架】

文章目录 &#x1f31f;前言&#x1f31f;Express框架&#x1f31f;1.什么是框架&#x1f31f;2.express安装&#x1f31f;3.创建web服务基本遵循之前的四个步骤&#xff1a; &#x1f31f;4.路由&#x1f31f; 由 &#xff1a;请求方式请求路径&#xff08;1&#xff09;get发…

从传统管理到智慧水务:数字化转型的挑战与机遇

概念 智慧水务是指利用互联网、物联网、大数据、人工智能等技术手段&#xff0c;将智能化、信息化、互联网等技术与水务领域相结合&#xff0c;通过感知、传输、处理水质、水量、水价等数据信息&#xff0c;对水资源进行全面监测、综合管理、智能调度和优化配置的智能化水务系…

电商平台商品数据爬虫分析(test阶段可对接测试)

1.简单说明 京东&#xff0c;淘宝&#xff0c;天猫&#xff0c;&#xff0c;淘特&#xff0c;拼多多&#xff0c;阿里巴巴&#xff0c;1688&#xff0c;抖音&#xff0c;苏宁&#xff0c;亚马逊中国 &#xff0c;lazada&#xff0c;速卖通等全球50多个知名平台抓取数据&#x…

蓝牙耳机哪个品牌音质好?300到400的蓝牙耳机推荐

不知道从什么时候开始&#xff0c;越来越喜欢安静和独处&#xff0c;去外面闲逛也总是佩戴上蓝牙耳机&#xff0c;享受音乐带来的美妙&#xff01;蓝牙耳机便利性也让很多小伙伴开始选择&#xff0c;出门在外&#xff0c;背包里面永远装着蓝牙耳机&#xff0c;以备不时之需&…

CANoe使用记录(二):Trace界面介绍

目录 1、概述 2、Trace界面介绍 2.1、右键配置 2.2、显示Title信息 2.3、改变窗口颜色 2.4、详细视图 2.5、静态视图 2.6、差异窗口 2.7、预过滤器 2.8、过滤分析 3.9、保存报文 3.10、其他类型简述 1、概述 Trace界面用于监控报文的界面&#xff0c;此界面包含很…

缓存优化---环境搭建

缓存优化 为什么要使用redis缓存&#xff1f; 问题说明 用户数量多&#xff0c;系统访问大&#xff0c;频繁访问数据库&#xff0c;系统性能下降&#xff0c;用户体验差 环境搭建 maven坐标 在项目中的pom.xml文件中导入spring data redis的maven坐标&#xff1a; <depen…

数学建模第四天:数学建模算法篇之整数规划、指派问题及其求解方法

目录 一、前言 二、整数规划模型 1、整数规划特征 2、分枝定界法 ①分枝定界法的步骤 ②实际解题 三、0-1整数规划 1、隐枚举法 ①隐枚举法的步骤&#xff1a; ②案例 2、匈牙利法 ①指派问题 ②匈牙利法步骤 ③案例 一、前言 我们先来看一个例子&#x…

【Linux】Linux中的常用指令和将java程序运行环境部署到Linux

目录 一.Linux的常用指令 使用客户端进行登录与退出 我们使用xshell这个客户端进行用户的创建和登录 退出&#xff1a; 快捷键 IS PWD cd touch echo cat mkdir tree rm mv cp find man less vim date ps grep netstat 二.Linux的权限问题 用户操作 …

C 语言与嵌入汇编

文章目录 一、cmake构建汇编语言二、实例三、补充知识1、enable_language2、 汇编 四、AT&T汇编1、GNUC C 语言嵌入汇编2、GNUC 汇编 一、cmake构建汇编语言 Linux下在CMakeLists中加入 ENABLE_LANGUAGE(ASM) # GAS(AT&T) 或 ENABLE_LANGUAGE(ASM_NASM) # NASM(Intel) …

Windows逆向安全(一)之基础知识(十四)

指针 什么是指针 一般关于指针的解释都离不开地址。这里先暂且忘记这个概念 指针其实也是一种数据类型&#xff0c;和先前学习的int float等数据类型没有实质上的区别&#xff0c;只不过这个数据类型是在先前学习的所有数据类型后面加上若干个*号&#xff0c;如char *&#…

数字化时代,如何推动实体经济和数字经济的融合

实体经济是一国经济的立身之本和命脉所在&#xff0c;数字经济是当今世界科技革命和产业变革的阵地前沿&#xff0c;推动数字经济和实体经济融合发展&#xff0c;已经成为新形势下主动把握新机遇、打造新引擎、实现经济高质量发展的必然选择。 领域融合 真正能够成为现代社会…

Pyhon实现多线程 —— threading(含源码)

作者主页&#xff1a;爱笑的男孩。的博客_CSDN博客-深度学习,YOLO,活动领域博主爱笑的男孩。擅长深度学习,YOLO,活动,等方面的知识,爱笑的男孩。关注算法,python,计算机视觉,图像处理,深度学习,pytorch,神经网络,opencv领域.https://blog.csdn.net/Code_and516?typecollect个人…

LRU扩展LRU-K、2Q算法实现分析

LRU算法的缓存污染如何解决&#xff1f; 一、LRU-K算法 1、算法思想 LRU-K中的K代表最近使用的次数&#xff0c;因此LRU可以认为是LRU-1。LRU-K的主要目的是为了解决LRU算法“缓存污染”的问题&#xff0c;其核心思想是将“最近使用过1次”的判断标准扩展为“最近使用过K次”…

【CocosCreator入门】CocosCreator组件 | PageView(页面视图)组件

Cocos Creator 是一款流行的游戏开发引擎&#xff0c;具有丰富的组件和工具&#xff0c;其中的PageView组件是一种用于实现分页视图效果的重要组件。它可以让我们在游戏中实现各种分页视图效果&#xff0c;例如引导页、轮播图等。 目录 一、组件介绍 二、组件属性 三、组件使…

OpenCV算法加速的一些学习总结

一、概述 算法加速在实际软件层面应用来说 大数据和复杂计算的过程中 算法优化&#xff0c;指降低算法计算复杂度&#xff0c;设计新算法快速求解&#xff0c;比如Hungarian匹配算法。或牺牲一些内存&#xff0c;预计算一些重复计算的过程&#xff0c;减少程序层面的复杂度。 …

c语言实例练习笔记

本博文参考题目的地址看右边----》C 语言实例 | 菜鸟教程 以下为个人边练习边敲记录&#xff08;解法不一定和官方一样&#xff0c;会自己扩展一些&#xff0c;练习嘛&#xff0c;肯定是学到的都用上&#xff0c;算检验之前的学进去的是不是对的。&#xff09; C 语言实例 - …

【项目管理】ubuntu2204 图片合成视频

ubuntu 22.04 多张图片合成视频&#xff0c;多个视频合成一个大视频 环境&#xff1a; ubuntu 22.04 LTS 工具&#xff1a; ffmpeg ffmpeg 多张图片合成视频 在 ubuntu 下全选目录下的所有文件&#xff0c;右键 rename, 选择 1,2,3,4 即可&#xff1b;当然也可以使用其他命名方…

uni-app 中模拟器真机运行app

之前打包过app&#xff0c;调试方式是用usb连接电脑和手机&#xff0c;过程中也遇到了很多问题&#xff0c;忘记了怎么解决的&#xff0c;今天又遇到了打包app的项目&#xff0c;因为在开发app这方面经验不足&#xff0c;所以踩了很多坑&#xff0c;花了好几个小时才研究好app在…