element-ui 带单选框的表格
效果:不只是带单选框,点击当前行单选框选中状态
网上查了一些发现很多都是只能点击当前radio选中当前行,配合element-ui的单选table时发现两个的选择状态是不一致的,所以调整了一下
效果
提供下思路:
1.保证不止是点击单选框,点击列表某行也能够选中,通过设置highlight-current-row和@current-change="handleCurrentChange"实现
2.radio为单选框的值,选中后为当前行数,翻页后为保证重新选中状态需要重制
3.我的项目里需求是组件化形式,单选框选中值传递给父组件,父组件可能会有默认数据传入,需要在打开时设置点选状态
部门关键代码
<template>
<el-table
:data="tableData"
ref="orderTable"
@current-change="handleCurrentChange"
tooltip-effect="light"
highlight-current-row
:cell-style="cellStyle"
>
<!--
为空,不加这个radio的label会显示index数字,注意从0开始的;radio会全选的问题是label相同导致的
disabled设置单选框是否可以被选择
-->
<el-table-column label="选择" width="50" center>
<template slot-scope="scope">
<el-radio
class="radio"
v-model="radio"
:label="scope.$index"
@change.native="getCurrentRow(scope.$index)"
:disabled="scope.row.Enable==1?false:true">
</el-radio>
</template>
</el-table-column>
</el-table>
<el-pagination
background
layout="total, prev, pager, next"
:current-page.sync="pagination.pageNum"
:page-size="pagination.pageSize"
:total="pagination.total"
@current-change="changePage"
:pager-count="5"
></el-pagination>
</template>
<script>
export default {
data() {
return {
currentRow: null,
radio: false,
tableData: [],
},
porps:{
//父组件传递过来的初始选中值,根据自己项目需求设置
chooseData:{
type:Object
}
},
watch:{
//观察是否有父组件传递的初始值或者变化,重新选中
chooseData(val){
if(val){
this.radio = false
this.getInitChoose()
}
}
},
methods:{
getList() {
this.isListLoading = true;
getTableData().then(res => {
this.tableData = res.item;
//每次数据改变重新判断单选状态
this.getInitChoose();
})
},
//设置单选框选择状态
getInitChoose() {
if (this.chooseData) {
let index = this.tableData.findIndex(
item => item.userUuid == this.chooseData.id
);
if (index > -1) {
this.radio = index;
}
},
//由于翻页后重新获取列表了,需要把选择框选中状态取消
changePage(pageNum) {
this.pagination.pageNum = pageNum;
this.radio = false
this.getList()
},
/* current-change 当表格的当前行发生变化的时候会触发该事件,如果要高亮当前行,请打开表格的 highlight-current-row 属性 currentRow, oldCurrentRow */
//保证点击当前行的任意位置不止是单选框也能够选择
handleCurrentChange(val) {
if (val && val.Enable == 1) {
this.currentRow = val;
let index = this.tableData.findIndex(
item => item.userUuid == this.currentRow.userUuid
)
if (index > -1) {
this.radio = index;
}
this.$emit('data',val.pkg)
},
getCurrentRow(index) {
this.radio = index
},
}
}
</script>
element-ui 带单选框的表格的更多相关文章
- element ui table单选框点击全选问题
<template slot-scope="scope"> <el-radio-group v-model="scope.row.HandleState ...
- vue + element ui 实现实现动态渲染表格
前言:之前需要做一个页面,能够通过表名动态渲染出不同的表格,这里记录一下.转载请注明出处:https://www.cnblogs.com/yuxiaole/p/9786326.html 网站地址:我的 ...
- element ui中循环出来的表格勾选问题
需求是这样的,一个房主屋里面有多个电表,每一个表是一个账户,一次只能给一个账户缴费,在点击go按钮进行缴费,这个时候判断是否跨表勾选,跨表格勾选则弹窗提示,反之符合需求,走缴费逻辑 上代码 <! ...
- element ui下拉框如何实现默认选择?
<template> <el-select v-model="value4" clearable placeholder="请选择"> ...
- element ui 下拉框绑定对象并且change传多个参数
废话不说直接上代码说明真相. <template> <div class="hello"> <span>可以设置的属性 value-key=&q ...
- element ui,input框输入时enter健进行搜索
<el-form-item label="企业名称"> <el-input v-model="formSearch.kw" @keyup.en ...
- element ui form表单清空规则
公司项目重构,经过商定使用element ui.在重构项目的时候发现一下element ui上很蛋疼的东西. 例如,这个form表单就是一个.趁着在高铁上没事,把想写的东西写一下. 先说一下eleme ...
- vue2.0 + element ui 实现表格穿梭框
element ui 官网里介绍了穿梭框(Transfer),但在实际使用过程中,会出现一些问题: 1.穿梭框里能放置的内容太少,不能满足复杂的业务需求. 2.当选项过多时,穿梭框很难实现分页,左右两 ...
- 封装一个优雅的element ui表格组件
现在做后台系统用vue + elementUI 的越来越多,那element ui的 el-table 组件肯定也离不开.虽然element ui的table组件很好.但是表格和分页是分离的.每次写表 ...
随机推荐
- npm是什么
npm简介 维基百科中npm定义 npm完全用JavaScript写成,最初由艾萨克·施吕特(Isaac Z. Schlueter)开发. 艾萨克表示自己意识到"模块管理很糟糕"的 ...
- Hbase Shell命令详解+API操作
HBase Shell 操作 3.1 基本操作1.进入 HBase 客户端命令行,在hbase-2.1.3目录下 bin/hbase shell 2.查看帮助命令 hbase(main):001:0& ...
- 基于tornado的文件上传demo
这里,web框架是tornado的4.0版本,文件上传组件,是用的bootstrap-fileinput. 这个小demo,是给合作伙伴提供的,模拟APP上摄像头拍照,上传给后台服务进行图像识别用,识 ...
- 阅读《7 Series FPGAs GTX/GTH Transceivers User Guide》
阅读<7 Series FPGAs GTX/GTH Transceivers User Guide> 1.GTX在XC7K325T芯片内的排列 2.参考时钟的配置 在GTXE2_COMMO ...
- HP Gen8,9 型号系列服务器更换主板
更换主板前,记下如下信息,根据具体情况用于更换后的设置用.1.S/N (其实主机箱上会写有,更换后重置)2.ProductID (其实主机箱上会写有,更换后重置)3.iLO IP地址或者MAC地址(根 ...
- Tablacus Explorer双心封装版
Tablacus Explorer双心封装版 http://cloud.189.cn/t/mYj67j7r2Afq (TablacusExplorer17.3.27双心封装版.exe) http:// ...
- P1226快速幂取余
链接:https://www.luogu.org/problemnew/show/P1226 题解:(重要结论:(a*b*c*d*...*n)%k=[(a%k)*(b%k)*...(n%k)]%k) ...
- PAT 乙级 1071 小赌怡情(15 分)
1071 小赌怡情(15 分) 常言道“小赌怡情”.这是一个很简单的小游戏:首先由计算机给出第一个整数:然后玩家下注赌第二个整数将会比第一个数大还是小:玩家下注 t 个筹码后,计算机给出第二个数.若玩 ...
- PAT 乙级 1078 字符串压缩与解压 (20)
文本压缩有很多种方法,这里我们只考虑最简单的一种:把由相同字符组成的一个连续的片段用这个字符和片段中含有这个字符的个数来表示.例如 ccccc 就用 5c 来表示.如果字符没有重复,就原样输出.例如 ...
- Python——字符串2.0(实验)(python programming)
直接打s,是程序员看到的:打print(),是用户看到的 列表 ] #列表索引,与数组唯一不同:等号左端可修改 转载自:https://www.cnblogs.com/wwwwwei/p/104816 ...