多选框实现单选,取消全选,取消选中
<el-table ref="tables"
:data="tableData.slice((currentPage-1)*pageSize,currentPage*pageSize)" border size="mini"
:header-cell-style="{'text-align':'center'}" :height="tableHeight"
:header-cell-class-name="cellnames"
@row-click="showRows">
<el-table-column fixed align="center"
type="selection" width="55"></el-table-column>
多选框采用element-ui中el-table-column的type属性中的selection:
<el-table-column fixed align="center"
type="selection" width="55"></el-table-column>
同时在el-table上加入如下代码:
<el-table :header-cell-class-name="cellnames"
@row-click="showRows">
cellnames是定义的一个方法:
data() {
return {
keysid:-1,
}
},
methods:{
cellnames(row) {
if (row.columnIndex === 0) {
return "checkstyle"
}
},
showRows(row) {
var rows = this.tableData.indexOf(row);
if(this.keysid != rows){
this.$refs.tables.clearSelection();
this.keysid = rows;
this.$refs.tables.toggleRowSelection(row);
}
else if(this.keysid == rows){
this.keysid = -1;
this.$refs.tables.clearSelection();
}
},
}
checkstyle是返回的样式(通过将全选框隐藏,然后将文字通过定位放在全选框的位置上):
<style>
.el-table /deep/.checkstyle.cell .el-checkbox__inner {
display: none;
position: relative;
}
.el-table /deep/.checkstyle.cell:before {
content: '选择';
position: absolute;
right: 11px;
}
</style>
通过网上学习了采用多选框的样式,showRow方法中则是自己写的一个判断从而实现的单选以及取消选中的情况。
希望对大家有所帮助,同时这也是我的学习心得!!!