当前位置: 首页 > news >正文

elementPuls 表格反选实现

真的在网上搜了很多资料发现根本实现不了反选 最下面有示例
然后去看了下官网
发现官网有教你怎么选中某个值的方法 官网中的”多选
官网地址

<template><el-tableref="multipleTableRef":data="tableData"style="width: 100%"@selection-change="handleSelectionChange"><el-table-column type="selection" width="55" /><el-table-column label="Date" width="120"><template #default="scope">{{ scope.row.date }}</template></el-table-column><el-table-column property="name" label="Name" width="120" /><el-table-column property="address" label="Address" /></el-table><div style="margin-top: 20px"><el-button @click="toggleSelection([tableData[1], tableData[2]])">Toggle selection status of second and third rows</el-button><el-button @click="toggleSelection()">Clear selection</el-button></div>
</template><script lang="ts" setup>
import { ref } from 'vue'
import { ElTable } from 'element-plus'interface User {date: stringname: stringaddress: string
}const multipleTableRef = ref<InstanceType<typeof ElTable>>()
const multipleSelection = ref<User[]>([])
const toggleSelection = (rows?: User[]) => {if (rows) {rows.forEach((row) => {// TODO: improvement typing when refactor table// eslint-disable-next-line @typescript-eslint/ban-ts-comment// @ts-expect-errormultipleTableRef.value!.toggleRowSelection(row, undefined)})} else {multipleTableRef.value!.clearSelection()}
}
const handleSelectionChange = (val: User[]) => {multipleSelection.value = val
}const tableData: User[] = [{date: '2016-05-03',name: 'Tom',address: 'No. 189, Grove St, Los Angeles',},{date: '2016-05-02',name: 'Tom',address: 'No. 189, Grove St, Los Angeles',},{date: '2016-05-04',name: 'Tom',address: 'No. 189, Grove St, Los Angeles',},{date: '2016-05-01',name: 'Tom',address: 'No. 189, Grove St, Los Angeles',},{date: '2016-05-08',name: 'Tom',address: 'No. 189, Grove St, Los Angeles',},{date: '2016-05-06',name: 'Tom',address: 'No. 189, Grove St, Los Angeles',},{date: '2016-05-07',name: 'Tom',address: 'No. 189, Grove St, Los Angeles',},
]
</script>

既然官网有办法选中某个值
那反选是不是简单了 很多
以下是个人代码
第一步 获取已选中的值 和未选中的值

<el-tableref="multipleTableRef":data="tableData"style="width: 100%"绑定切换选中时候的数据@selection-change="handleSelectionChange"></el-table><div @click="invertSelection(state.noCheckList)"style="width: 114rem;height: 35rem;border: 1rem solid #9D9D9D;border-radius: 10rem;font-size: 15rem;color: #5C6170;display: flex;align-items: center;margin: 0 20rem;cursor: pointer;"><img style="height: 15rem;margin: 0 10rem 0 15rem;" src="../../../assets/选择-反向选择@2x.png"alt="" srcset=""><span>反向选择</span></div>
<script setup>
let state = reactive({peopleList:[],//总数据checkList: [],//选中数据数组noCheckList:[],//未选中数据数组
})
// 重要 获取选中未选中数据
const handleSelectionChange = (val) => {console.log(val);state.checkList = valconst notIncludedArray = state.peopleList.filter(item => !val.includes(item));state.noCheckList = notIncludedArray// console.log(notIncludedArray);
}
const multipleTableRef= ref() // 多选table
const invertSelection = (rows) => {// rows  需要选中的数据  直接传进 state.noCheckList 即可multipleTableRef.value.clearSelection()  //需要先全部取消选中  再去选中刚刚未选中的数据即可if (rows) {rows.forEach((row) => {multipleTableRef.value.toggleRowSelection(row, undefined)})} else {multipleTableRef.value.clearSelection()}
}</script>

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【LLM】-07-提示工程-聊天机器人
  • HarmonyOS应用开发者高级认证,Next版本发布后最新题库 - 答案纯享版
  • Git添加和提交文件
  • [亲测可用]俄罗斯方块H5-网页小游戏源码-HTML源码
  • 优选算法之二分查找(上)
  • 【Matlab 传感器布局优化】基于群智能算法的wsn覆盖优化研究
  • 飞书群聊机器人自定义机器人接入,并实现艾特@群成员功能
  • 机器学习 | 回归算法原理——多项式回归
  • 网络学习|如何理解服务的端口号
  • Jenkins+Gitlab持续集成综合实战
  • 基于HAL库的stm32的OLED显示屏显示(IIC)
  • 深入Mysql-03-MySQL 表的约束与数据库设计
  • c++笔记2
  • 黑马JavaWeb企业级开发(知识清单)01——前端介绍,HTML实现标题:排版
  • 【Jupyter Notebook】一文详细向您介绍 【重启内核】
  • Android Volley源码解析
  • C++类的相互关联
  • golang中接口赋值与方法集
  • iOS帅气加载动画、通知视图、红包助手、引导页、导航栏、朋友圈、小游戏等效果源码...
  • JavaScript-Array类型
  • Linux编程学习笔记 | Linux多线程学习[2] - 线程的同步
  • mysql innodb 索引使用指南
  • OpenStack安装流程(juno版)- 添加网络服务(neutron)- controller节点
  • ReactNativeweexDeviceOne对比
  • Webpack4 学习笔记 - 01:webpack的安装和简单配置
  • 大数据与云计算学习:数据分析(二)
  • 分布式任务队列Celery
  • 前端技术周刊 2019-02-11 Serverless
  • 小程序上传图片到七牛云(支持多张上传,预览,删除)
  • “十年磨一剑”--有赞的HBase平台实践和应用之路 ...
  • 关于Kubernetes Dashboard漏洞CVE-2018-18264的修复公告
  • 数据可视化之下发图实践
  • #HarmonyOS:基础语法
  • (02)vite环境变量配置
  • (12)Linux 常见的三种进程状态
  • (Python第六天)文件处理
  • (八)Docker网络跨主机通讯vxlan和vlan
  • (超详细)2-YOLOV5改进-添加SimAM注意力机制
  • (三)centos7案例实战—vmware虚拟机硬盘挂载与卸载
  • (四)鸿鹄云架构一服务注册中心
  • @KafkaListener注解详解(一)| 常用参数详解
  • [2018-01-08] Python强化周的第一天
  • [bzoj4010][HNOI2015]菜肴制作_贪心_拓扑排序
  • [C#] 如何调用Python脚本程序
  • [C#]使用深度学习算法opencvsharp部署RecRecNet广角图像畸变矫正校正摄像广角镜头畸变图像
  • [C++] vector list 等容器的迭代器失效问题
  • [C++]priority_queue的介绍及模拟实现
  • [Day 43] 區塊鏈與人工智能的聯動應用:理論、技術與實踐
  • [Eclipse] 详细设置护眼背景色和字体颜色并导出
  • [HackMyVM]靶场Boxing
  • [IE6 only]关于Flash/Flex,返回数据产生流错误Error #2032的解决方式
  • [Latex学习笔记]数学公式基本命令
  • [LOJ#6259]「CodePlus 2017 12 月赛」白金元首与独舞
  • [Lua实战]整理Lua中忽略的问题
  • [mit6.s081] 笔记 Lab2:system calls