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>
相关推荐
敲代码的玉米C3 分钟前
我修的那个 bug,制造了另一个 bug
前端·人工智能·架构
gis开发之家13 分钟前
《Vue3 从入门到大神50篇》Vue3 源码详解(二十):生命周期钩子源码解析 —— onMounted / onUpdated 如何实现?
前端·javascript·前端框架·vue3·vue3源码
Narrastory16 分钟前
我用 Claude Code 写代码不到 2 小时,却花了 3 天做完这个软件—Vibe Coding 的正确姿势,是设计不是生成
前端·人工智能·github
Enaium17 分钟前
我实现了KMP的SDL绑定并编写了高性能软光追
前端·kotlin
古夕22 分钟前
本地正常线上白屏:一次路由切换后刷新恢复问题的排查与修复
前端·ai编程
栀鸢ouo28 分钟前
解决Element Plus表格展开行横向溢出、滚动截断问题(项目实战方案)
前端·vue.js
用户390513321928832 分钟前
写了5年JS,才发现这10个方法能少写一半代码
前端
平凡的阿泽33 分钟前
我用TRAE Work手搓了一个「谁是卧底」小游戏
前端·javascript
一心只读圣贤书41 分钟前
AI 辅助前端视觉回归治理:从截图基线到变更解释
前端·人工智能
嘟嘟071744 分钟前
用单例模式管理弹窗:从一段原生 JS 理解 Singlet
前端·javascript·代码规范