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

【记录43】el-table @selection-change 数据回显、条件约束、历史回显清除

场景

在其他地方设置好人员,到对应的页面直接在表格中复选设置好的人员。解决方案用到selection-change方法

<el-button @click="EchoClick()">回显设置好的人</el-button>
<el-table ref="choeck" :data="TableData" @selection-change="SelectionChange" id="noAllTable"><el-table-column type="selection" :reserve-selection="true"></el-table-column>
</el-table>
// 注意:choeck、SelectionChange、noAllTable三个参数
实现
EchoClick() {let SetChooseList = [{phone:'176****1486', name:''}, {phone:'138****2366', name:''}, {phone:'131****2589', name:''}, {phone:'177****8118', name:''}];this.$nextTick(() => {this.TableData.forEach((row) => {for (let index = 0; index < SetChooseList.length; index++) {let T = SetChooseList[index].phone == row.phone;// 默认设置好的人员在TableData中是否存在if (T == true) {//  存在,复选框自动回显this.$nextTick(() =>{this.$refs.choeck.toggleRowSelection(row, true);})// 走完这步,完成一个数据回显}}});});
}

到这里基本完成了回显功能。

追加需求

限制选中人员上限,大家可能会想到直接判断选中的list,实际操作中存在一个问题:你选择了,给了提示,表格显示上还是会选中。解决该问题,用到toggleRowSelection函数

SelectionChange(val){if(val.length < 10){// 来判断是否满足上限条件this.selist = val;}else{this.$message.error('最多选择9人');this.$refs.choeck.toggleRowSelection(val.pop());//  满足条件后,消除最后一次选择的数据}
}

发现问题优化

表格中选中的人员,点击取消后,再次进来人员还在,部分可能觉得正常,实际是不对(切换了数据绑定对象,还存在是不对的)。这里笔者做了一个点击取消就默认为当前选择的取消(不要了)。解决方案用到clearSelection函数

// 在赋值或回显之前,通过clearSelection函数来清除前面赋值数据。直接重新赋值是可以的,赋值数据不同时,是出现问题
this.$nextTick(() => {this.$refs.choeck.clearSelection();
});

以上是笔者在工作中,遇到的问题,希望能给大家带来帮助!!

相关文章:

  • 【AVL Design Explorer DOE】
  • QT系列教程(5) 模态对话框消息传递
  • C语言入门编程:开启编程之旅的探索与实践
  • dockers安装mysql
  • docker 快速搭建django项目环境(DockerFile)文件基础搭建
  • 408数据结构-图的存储与基本操作 自学知识点整理
  • 自学成才Flutter 弹性布局、线性布局
  • NFT Insider #132:Solana链上NFT销售总额达到55.49亿美元, The Sandbox成立DAO
  • 【并查集】专题练习
  • 复习leetcode第二题:两数相加
  • Pytorch入门需要达到的效果
  • 【教学类-60-01】彩色消划掉01(四个数字,X*Y宫格)
  • Linux - 文件管理高级1
  • 2.4 Docker部署JDK
  • 【三维模型采集设备】轮廓扫描仪介绍
  • [NodeJS] 关于Buffer
  • ES6 学习笔记(一)let,const和解构赋值
  • ES学习笔记(10)--ES6中的函数和数组补漏
  • node-sass 安装卡在 node scripts/install.js 解决办法
  • SQLServer之创建数据库快照
  • vue.js框架原理浅析
  • vue-router的history模式发布配置
  • Windows Containers 大冒险: 容器网络
  • WinRAR存在严重的安全漏洞影响5亿用户
  • 百度地图API标注+时间轴组件
  • 记一次删除Git记录中的大文件的过程
  • 聊聊sentinel的DegradeSlot
  • 那些年我们用过的显示性能指标
  • 实习面试笔记
  • 一天一个设计模式之JS实现——适配器模式
  • ​ 全球云科技基础设施:亚马逊云科技的海外服务器网络如何演进
  • # C++之functional库用法整理
  • #QT(智能家居界面-界面切换)
  • #如何使用 Qt 5.6 在 Android 上启用 NFC
  • (14)目标检测_SSD训练代码基于pytorch搭建代码
  • (Mac上)使用Python进行matplotlib 画图时,中文显示不出来
  • (pt可视化)利用torch的make_grid进行张量可视化
  • (python)数据结构---字典
  • (Redis使用系列) Springboot 使用redis的List数据结构实现简单的排队功能场景 九
  • (Redis使用系列) SpringBoot中Redis的RedisConfig 二
  • (zhuan) 一些RL的文献(及笔记)
  • (编程语言界的丐帮 C#).NET MD5 HASH 哈希 加密 与JAVA 互通
  • (层次遍历)104. 二叉树的最大深度
  • (附源码)ssm基于微信小程序的疫苗管理系统 毕业设计 092354
  • (十三)Maven插件解析运行机制
  • (转)用.Net的File控件上传文件的解决方案
  • (转)总结使用Unity 3D优化游戏运行性能的经验
  • (转载)(官方)UE4--图像编程----着色器开发
  • ***测试-HTTP方法
  • .bat批处理(十一):替换字符串中包含百分号%的子串
  • .net core docker部署教程和细节问题
  • .net core 外观者设计模式 实现,多种支付选择
  • .NET core 自定义过滤器 Filter 实现webapi RestFul 统一接口数据返回格式
  • .Net Framework 4.x 程序到底运行在哪个 CLR 版本之上
  • .NET Framework、.NET Core 、 .NET 5、.NET 6和.NET 7 和.NET8 简介及区别