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));
    }
},
相关推荐
SendTomo16 分钟前
P2P文件传输工具对比:SendTomo vs send.wang
javascript·网络协议·webrtc·html5·p2p
SendTomo2 小时前
WebRTC文件互传工具实测对比
javascript·网络·webrtc·html5·p2p
雪碧聊技术2 小时前
Vue + Element Plus 实现文本溢出显示省略号及悬浮提示
前端·javascript·css·vue.js·文本溢出省略
张元清5 小时前
React useLatest Hook:在异步回调里读到最新状态 (2026)
javascript·react.js
Asize6 小时前
为什么写代码前要先规划组件树?Next.js + Redis 笔记系统实战
前端·javascript·next.js
meilindehuzi_a6 小时前
Next.js 全栈基础实战:从 SPA、SSR 到 App Router 与 Todo API
开发语言·javascript·ecmascript
渣波6 小时前
重构旅行体验:基于 React 的 AI 旅游助手对话系统实战解析
前端·javascript
李顿波6 小时前
Chrome 插件弹窗一直停留在初始的小尺寸 —— 你看到的小方块
前端·javascript·chrome
渣波6 小时前
React 移动端首页架构实战:从并发请求到防御性编程的深度解析
前端·javascript
Highcharts.js6 小时前
Highcharts 主流前端框架无缝集成指南
前端·vue.js·前端框架·highcharts·可视化图表