vue2 el-table跨分页多选以及多选回显

news/2025/3/29 1:32:38/

个人博客 | snows_l.s BLIOGhttp://snows-l.site

一、多选

        1、特别注意的属性以及方法:

                :row-key="(_) => _.mac"  

                :reserve-selection="true"

                 @select="handleSelectionChange"

                @select-all="handleSelectionChangeAll"

        详情以及使用方法位置请查看代码

        2、代码:

        1)、template
<el-tableref="multipleTable"v-loading="loading":data="terminalList"@select="handleSelectionChange"@select-all="handleSelectionChangeAll":row-key="(_) => _.mac"
><el-table-columntype="selection"align="center":reserve-selection="true"width="55"/>// 其他列...
</el-table>
        2)、js
data() {return {ids:[], // 用于维护选中的id集合}
},methods: {    
// 多选框选中数据
handleSelectionChange(selection, row) {let selectRow = selection.filter((item) => {return item.mac == row.mac;});// 选中 if (selectRow.length) {if (!this.ids.includes(row.mac)) {this.ids.push(row.mac);}} else {// 取消选中if (this.ids.includes(row.mac)) {this.ids.splice(this.ids.indexOf(row.mac), 1);}}this.single = selection.length !== 1;this.multiple = !selection.length;
},// 全选按钮选中数据
handleSelectionChangeAll(selection) {if (selection.length) {// 全选selection.forEach((item) => {if (!this.ids.includes(item.mac)) {this.ids.push(item.mac);}});} else {// 取消全选this.terminalList.forEach((item) => {if (this.ids.includes(item.mac)) {this.ids.splice(this.ids.indexOf(item.mac), 1);}});}this.single = selection.length !== 1;this.multiple = !selection.length;
},
}

二、多选回显

        1、关键方法

// 用于清空选中的
this.$refs["multipleTable"].clearSelection();// 用于回显选中
this.$refs["multipleTable"].toggleRowSelection(item, true);

        2、实现        

        1)、首先的把绑定的值带回来
        2)、然后再每次调接口, 也就是当前页中进行处理就好了(翻页/查询/重置,只要每次调接口)

        3)代码如下
// 回显table数据的方法
handleSelectTable() {// 首先清空当前页的勾选this.$refs["multipleTable"].clearSelection(); // 再当前页中找到回显勾选的行  terminalList 是绑定的table数据let arr = this.terminalList.filter((item) => {return this.ids.includes(item.mac);});// 循环勾选arr.forEach((item) => {this.$refs["multipleTable"].toggleRowSelection(item, true);});
},/** 查询终端列表 */
getList() {this.loading = true;listTerminal(this.queryParams).then((response) => {this.terminalList = response.rows;this.total = response.total;this.handleSelectTable();  // 每次都调用接口(分页/重置查询),都去重置当前页的选中状态}).finally(() => {this.loading = false;});
},


http://www.ppmy.cn/news/1580931.html

相关文章

Apache Tomcat漏洞公开发布仅30小时后即遭利用

近日&#xff0c;Apache Tomcat曝出一项安全漏洞&#xff0c;在公开发布概念验证&#xff08;PoC&#xff09;仅30小时后&#xff0c;该漏洞即遭到攻击者利用。这一漏洞编号为CVE-2025-24813&#xff0c;主要影响以下版本&#xff1a; 1. Apache Tomcat 11.0.0-M1 至 11.0.2 …

宝石PDF,全新 PC 版本,全部免费

宝石PDF已经运行 3 年时间&#xff0c;有客户端&#xff0c;小程序&#xff0c;一直未上 PC 版本&#xff0c;随着客户端功能升级的不及时&#xff0c;很多用户建议上 PC 版本。但是飞哥一直忙&#xff0c;这不终于给上了。 同时系统的名称也从 “PDF云转换”改为“宝石PDF”&…

WebForms HTML:深入理解与高效应用

WebForms HTML:深入理解与高效应用 引言 WebForms HTML,作为Web开发中的一种重要技术,是许多开发者日常工作中不可或缺的工具。本文旨在深入探讨WebForms HTML的概念、特点、应用场景以及高效使用技巧,帮助开发者更好地理解和应用这一技术。 一、什么是WebForms HTML? …

将 YOLO 格式的标注文件(.txt)转换为 VOC 格式的 XML 标注文件

1. 函数定义和注释 def makexml(picPath, txtPath, xmlPath): """此函数用于将yolo格式txt标注文件转换为voc格式xml标注文件 在自己的标注图片文件夹下建三个子文件夹&#xff0c;分别命名为picture、txt、xml """ 函数接收三个参数…

微软Data Formulator:用AI重塑数据可视化的未来

在数据驱动的时代,如何快速将复杂数据转化为直观的图表是每个分析师面临的挑战。微软研究院推出的开源工具 Data Formulator,通过结合AI与交互式界面,重新定义了数据可视化的工作流。本文将深入解析这一工具的核心功能、安装方法及使用技巧,助你轻松驾驭数据之美。 一、Dat…

DeepSeek Chat 自动化交互技术分析

本文将对 DeepSeek Chat 自动化交互脚本进行技术分析&#xff0c;包括代码结构、实现原理以及关键技术点。该脚本使用 Selenium 实现了对 DeepSeek Chat 平台的自动化登录和问答功能。 1. 代码结构概览 该脚本主要由以下几个部分组成&#xff1a; 环境准备与依赖导入&#x…

Linux 系统性能优化高级全流程指南

Linux 系统性能优化高级全流程指南 一、系统基础状态捕获 1. 系统信息建档 除了原有的硬件、内核和存储拓扑信息收集&#xff0c;还增加 CPU 缓存、网络设备详细信息等。 # 硬件信息 lscpu > /opt/tuning/lscpu.origin dmidecode -t memory > /opt/tuning/meminfo.or…

adb常用的命令

1. 查看adb版本 adb version 2. 将apk安装包安装到手机/模拟器上 adb install apk路径 3. 获取apk包名和界面名 包名&#xff08;package&#xff09;&#xff1a;决定程序的唯一性 界面名&#xff08;activity&#xff09;&#xff1a;一个界面界面名&#xff0c;对应一个界面…