ElementUI el-table 多选以及点击某一行的任意位置就勾选上

1. 需求

在el-table中,需要实现多选功能,并且点击某一行的任意位置就勾选上,而不是点击复选框才勾选上。

2. 实现思路

  1. 在el-table中添加ref属性,用于获取表格实例。
  2. 在el-table-column中添加type="selection"属性,用于显示复选框。
  3. 在el-table中添加@row-click="handleRowClick"属性,用于点击某一行的任意位置就获取到。
  4. 在handleRowClick方法中,通过toggleRowSelection方法来勾选或取消勾选当前行。

3. 代码实现

javascript 复制代码
<template>
  <el-table
    ref="tableRef"
    :data="tableData"
    @selection-change="handleSelectionChange"
    @row-click="handleRowClick"
  >
    <el-table-column type="selection" width="55"></el-table-column>
    <el-table-column prop="date" label="日期" width="180"></el-table-column>
    <el-table-column prop="name" label="姓名" width="180"></el-table-column>
    <el-table-column prop="address" label="地址"></el-table-column>
  </el-table>
</template>

<script>
import { ref, reactive } from 'vue'
const tableRef = ref(); // 获取表格实例
const state = reactive({
    tableSelections: [] as any[],
})
/**
 * 表格,多选
 */
const handleSelectionChange = (val: any) => {
    state.tableSelections = val
    // console.log(val, '---val')
}
<!--  -->
function handleRowClick(row: any) {
  // 判断当前行是否被选中
    const isSelected = state.tableSelections.includes(row);
  // 如果当前行被选中,则取消选中;如果当前行未被选中,则选中
    tableRef.value?.toggleRowSelection(row, !isSelected);
}
</script>
相关推荐
前端小端长19 分钟前
qiankun 微前端应用入门教程:从搭建到部署
前端
yinuo2 小时前
前端跨页面通讯终极指南⑥:SharedWorker 用法全解析
前端
PineappleCoder7 小时前
还在重复下载资源?HTTP 缓存让二次访问 “零请求”,用户体验翻倍
前端·性能优化
拉不动的猪7 小时前
webpack编译中为什么不建议load替换ast中节点删除consolg.log
前端·javascript·webpack
李姆斯7 小时前
Agent时代下,ToB前端的UI和交互会往哪走?
前端·agent·交互设计
源码获取_wx:Fegn08958 小时前
基于springboot + vue健身房管理系统
java·开发语言·前端·vue.js·spring boot·后端·spring
闲谈共视8 小时前
基于去中心化社交与AI智能服务的Web钱包商业开发的可行性
前端·人工智能·去中心化·区块链
CreasyChan8 小时前
C# 反射详解
开发语言·前端·windows·unity·c#·游戏开发
JIngJaneIL8 小时前
基于Java+ vue智慧医药系统(源码+数据库+文档)
java·开发语言·前端·数据库·vue.js·spring boot
+VX:Fegn08959 小时前
计算机毕业设计|基于springboot + vue图书管理系统(源码+数据库+文档)
数据库·vue.js·spring boot·后端·课程设计