vue+element-ui实现表格checkbox单选
公司平台利用vue+elementui搭建前端页面,因为本人第一次使用vue也遇到了不少坑,因为我要实现的效果如下图所示

实现这种单选框,只能选择一个,但element-ui展示的是多选框,checkbox自己也可以写,但不想写,还是想用element-ui实现表格单选,于是就用了element-ui中的方法实现了,贴代码:
methods: {
select (selection, row) {
console.log(selection.length);
console.log(
Object.prototype.toString.call(selection[0]) === '[object Object]'
);
this.$refs.multipleTable.clearSelection();
if (selection.length === 0) { // 判断selection是否有值存在
return;
};
console.log('点击', selection, row);
this.$refs.multipleTable.toggleRowSelection(row, true);
}
}
其中select对应的事件名是table的select事件,我利用selection参数判断参数是否选中,selection选中 (2) [{…}, {…}, __ob__: Observer] ,未选中是: [ __ob__: Observer] ,__ob__: Observer是observe 工厂函数 也是实现数据响应式, 本来想用Object.prototype.toString.call(selection[0]) === '[object Object]' 这个判断的,因本人粗心,将'[object Object]'写成了'[Object Object]'导致判断不对,最后改成了数组的长度判断,正常selection选中 (2) [{…}, {…}, __ob__: Observer] 里面应该有一个对象的,因为单选,没有将上个对象清除所以导致现在选中有两个对象,但是没有关系,因为我们用row, table在选择是会触发select事件,先将this.$refs.multipleTable.clearSelection();清除掉表格的选中状态,后面开始判断若没有选中checkbox则return,否则利用row,this.$refs.multipleTable.toggleRowSelection(row, true);选中当前行,我在做的时候让表格默认选中第一行;代码如下:
methods: {
getManage (data = {}) { // 获取列表
this.$nextTick(() => {
manageList(data).then(res => {
this.manageList = res.storages || [];
console.log(this.manageList);
if (this.manageList.length === 0) { return; };
setTimeout(() => {
this.$refs.multipleTable.toggleRowSelection(this.manageList[0], true); }, 0);
});
});
},
mounted () {
this.getManage();
},
manageList(data)是我封装的请求列表的函数,所以这个不用管,this.manageList = res.storages || [];这个是判断我是否请求到数据,if (this.manageList.length === 0) { return; }; 如果没有数据表格就是空的,返回,其实这两步我主要是针对搜索的,因为搜索不对会没有数据,最主要的就是下面一步
setTimeout(() => {this.$refs.multipleTable.toggleRowSelection(this.manageList[0], true);}, 0); 如果有数据的情况下,就获取表格的第一行数据,就可以默认选中第一行,如果不使用settimeout是不会选中的,因为vue是异步更新,我的理解是因为vue是异步更新,不添加setTimeout,我们里面的代码是同步的,在数据变化,dom更新之前默认选中第一行已经执行,但dom还没有更新
渲染,等到$nextTick完成页面更新渲染,我们的选中行代码已经执行完毕,加上settimeout同样是异步操作,同时也能获取到dom数据变化之后dom更新,对于更深的还有待研究
vue+element-ui实现表格checkbox单选的更多相关文章
- vue+element ui 的表格列使用组件
前言:工作中用到 vue+element ui 的前端框架,有这个场景:很多表格的列有许多一样的,所以考虑将列封装为组件.转载请注明出处:https://www.cnblogs.com/yuxiaol ...
- Vue+element UI实现表格数据导出Excel组件
介绍 这是一个可以将页面中的表格数据导出为Excel文件的功能组件,该组件一般与表格一起使用,将表格数据传给组件,然后通过点击组件按钮可将表格中的数据导出成Excel文件. 使用方法 由于封装该组件内 ...
- vue element UI el-table 表格调整行高的处理方法
这是我在工作项目中遇到的问题,我想将标记处下方的表格高度调低一点,也就是想实现下面的这个效果: 代码调整如下: 说明: 缩小:行高到一定程度之后便不能缩小. 好像最小35px.各位可以试一下. 升高: ...
- vue + element ui table表格二次封装 常用功能
因为在做后台管理项目的时候用到了大量的表格, 且功能大多相同,因此封装了一些常用的功能, 方便多次复用. 组件封装代码: <template> <el-table :data=&qu ...
- vue + element ui 实现实现动态渲染表格
前言:之前需要做一个页面,能够通过表名动态渲染出不同的表格,这里记录一下.转载请注明出处:https://www.cnblogs.com/yuxiaole/p/9786326.html 网站地址:我的 ...
- vue + element ui 表格自定义表头,提供线上demo
前言:工作中用到 vue+element ui 的前端框架,需要使用自定义表头,需要使用 re.转载请注明出处:https://www.cnblogs.com/yuxiaole/p/9710826.h ...
- 基于 vue+element ui 的cdn网站(多页面,都是各种demo)
前言:这个网站持续更新中...,有网上预览,github上也有源码,喜欢记得star哦,欢迎留言讨论. 网站地址:我的个人vue+element ui demo网站 github地址:yuleGH g ...
- Vue+element ui table 导出到excel
需求: Vue+element UI table下的根据搜索条件导出当前所有数据 参考: https://blog.csdn.net/u010427666/article/details/792081 ...
- element ui设置表格表头高度和每一行的高度
填坑记录:今天用element ui的表格组件做用户信息展示,直接拉取的官网的代码过来,发现表头和每一行都太高了,如下: 因为第一次使用element ui的表格组件,不太清楚会遇到这样的坑,以为能轻 ...
- 分享一个自搭的框架,使用Spring boot+Vue+Element UI
废弃,新的:https://www.cnblogs.com/hackyo/p/10453243.html 特点:前后端分离,可遵循restful 框架:后端使用Spring boot,整合了aop.a ...
随机推荐
- Dapper官方库 在guid和string互转的问题
之前在和老何谈论他的开源项目Util中使用MySql的过程中发现了官方dapper在转换guid到string时候的一个错误 Error parsing column 0 (ID=6c2adb93-d ...
- 普通用户登陆系统显示 -bash-4.1$
如题,今天上午用户登陆系统之后显示-bash-4.1$ 造成这样的原因: 与这个用户有关环境变量没了,有关的文件被删除.也就是用户的家目录下面 .bash_profile .bashrc 被删除. 解 ...
- 这篇文章主要介绍了Citrix XenServer 6.1 安装图解教程
本次为使用VirtualBox虚拟机过安装测试机过程,我们在使用Vm(无论是Vbox还是VMware等)我们的CPU都必须可支持Intel-V或AMD-V,并且在VM软件设置和BIOS设置开启虚拟化支 ...
- 使用BITSADMIN下载文件
BITSADMIN /RAWRETURN /TRANSFER D /PRIORITY HIGH http://127.0.0.1:80/file.exe C:\ProgramData\file.exe
- Pycharm 2018.2.1最新版破解到2099年图解教程
我破解后的效果图 安装我就不说了 工具解压在随便一个目录(文末有下载百度网盘链接)在 Pycharm安装目录的\bin目录下找到 pycharm.exe.vmoptions 和 pycharm64.e ...
- python 3编写贴吧图片下载软件(超简单)
业余时间初学者作品,大佬勿喷,代码都很简单. py文件打包成exe教程:python3.7 打包成exe程序, 本程序体验下载地址:python编译的贴吧图片下载工具 先上效果图 启动后是这样的: 按 ...
- 数字图像特征提取之HOG特征
1.灰度化:(以便可以使用sobel等算子计算梯度)2.gamma校正: (降低光照影响)3.求每个像素的梯度和方向: (利用任意一种梯度算子,例如:sobel,laplacian等,对该patch进 ...
- pymongo使用手册
MongoDB是由C++语言编写的非关系型数据库,是一个基于分布式文件存储的开源数据库系统,其内容存储形式类似JSON对象,它的字段值可以包含其他文档.数组及文档数组,非常灵活.在这一节中,我们就来看 ...
- [BZOJ2457][BeiJing2011]双端队列 (单调性)
正如lyd所说,和数据结构本身没什么太大关联 题意 中文题面 Sherry现在碰到了一个棘手的问题,有N个整数需要排序. Sherry手头能用的工具就是若干个双端队列. ...
- [jzoj]2938.【NOIP2012模拟8.9】分割田地
Link https://jzoj.net/senior/#main/show/2938 Description 地主某君有一块由2×n个栅格组成的土地,有k个儿子,现在地主快要终老了,要把这些土地分 ...