vue2 el-table实现跨页多选功能

1、首先要在el-table上绑定勾选框和全选框的事件

html 复制代码
<el-table :data="tableData" class="table_box" ref="multipleTables" style="width: 100%" height="50vh" @select="addAnalysisChange" @select-all="selectAll">
	<el-table-column type="selection" width="55"></el-table-column>
	<el-table-column prop="name" label="名称" show-overflow-tooltip>
	</el-table-column>
	<el-table-column prop="orgcode" label="机构代码" show-overflow-tooltip>
	</el-table-column>
	...
</el-table>

2、在data里声明一个数组 用来存放勾选的项 allSelected

3、开始编写js啦

javascript 复制代码
// 单独勾选
addAnalysisChange(selection,row) {
    if (!this.allSelected.includes(row.id)) {
        this.allSelected.push(row.id);
    } else {
        // 取消勾选就删掉
        this.allSelected.forEach((id, index) => {
		    if (id === row.id) {
		        this.allSelected.splice(index, 1);
		    }
	    });
    }
},
selectAll(selecteds) {
    if (selecteds.length > 0) {
        // 如果全选 push进去
	    selecteds.forEach(item => {
	    if (!this.allSelected.includes(item.id)) {
	        this.allSelected.push(item.id);
	    }
    });
} else {
    // 如果取消全选 就将此页表格的id 过滤掉
    const currentPageIds = this.tableData.map(item => item.id);
    this.allSelected= this.allSelected.filter(id =>!currentPageIds.includes(id));
    }
},
相关推荐
麻芝汤圆1 小时前
MapReduce 入门实战:WordCount 程序
大数据·前端·javascript·ajax·spark·mapreduce
Peter 谭3 小时前
React Hooks 实现原理深度解析:从基础到源码级理解
前端·javascript·react.js·前端框架·ecmascript
周胡杰3 小时前
鸿蒙接入flutter环境变量配置windows-命令行或者手动配置-到项目的创建-运行demo项目
javascript·windows·flutter·华为·harmonyos·鸿蒙·鸿蒙系统
乌夷5 小时前
axios结合AbortController取消文件上传
开发语言·前端·javascript
wuyijysx6 小时前
JavaScript grammar
前端·javascript
大鱼前端8 小时前
Vue 3.5 :新特性全解析与开发实践指南
vue.js
学渣y8 小时前
React状态管理-对state进行保留和重置
javascript·react.js·ecmascript
_龙衣8 小时前
将 swagger 接口导入 apifox 查看及调试
前端·javascript·css·vue.js·css3
struggle20259 小时前
continue通过我们的开源 IDE 扩展和模型、规则、提示、文档和其他构建块中心,创建、共享和使用自定义 AI 代码助手
javascript·ide·python·typescript·开源
x-cmd10 小时前
[250512] Node.js 24 发布:ClangCL 构建,升级 V8 引擎、集成 npm 11
前端·javascript·windows·npm·node.js