需求
el-table组件,要么全部选择可选择的row,要么就全部取消,不可操作row
UI表现
row中的check-box置灰,但是可由js控制check-box的select
就是这个效果
实现
该功能可以自己实现,这里展示仅凭el-table组件来实现
- 置灰row的check-box,利用
selectable
方法
function isSelectable() {
return false;
}
- 监听全选按钮,利用
select-all
-
select-all
事件结束时,按照回调参数selections的内容来做全选,这里全选采用的是toggleRowSelection
方法,需要和table的数据源配合使用
function handleSelectAll(selection) {
// 防止selection响应式变化引发的bug
const count = selection.length;
this.tabelData.forEach((data) => {
if (需要选中逻辑) {
this.$refs.table.toggleRowSelection(ticket, !count);
}
});
}
ps:toggleAllSelection
该方法在selectable为false的情况下是无法选中row的
网友评论