修复两个问题:

1.如果某行禁用_disabled=true,则这行的_checked,无论如何都是false,因为禁用的目的就是不能选择
2.修复某行设置_disabled=true时,全选状态判断有误的bug
This commit is contained in:
leonine 2017-02-23 14:29:49 +08:00
parent 87379c8205
commit c731509853
3 changed files with 26 additions and 13 deletions

View file

@ -84,16 +84,23 @@
}, },
isSelectAll () { isSelectAll () {
let isSelectAll = true; let isSelectAll = true;
let isAllDisabled = true;
if (!this.data.length) isSelectAll = false; if (!this.data.length) isSelectAll = false;
for (let i = 0; i < this.data.length; i++) { for (let i = 0; i < this.data.length; i++) {
if (!this.objData[this.data[i]._index]._isChecked) { if(this.objData[this.data[i]._index]._isDisabled){
isAllDisabled = isAllDisabled && true;
continue;
}else{
isAllDisabled = isAllDisabled && false;
}
if (!this.objData[this.data[i]._index]._isChecked ) {
isSelectAll = false; isSelectAll = false;
break; break;
} }
} }
return isSelectAll; return isAllDisabled ? false : isSelectAll;
} }
}, },
methods: { methods: {

View file

@ -553,8 +553,17 @@
this.data.forEach((row, index) => { this.data.forEach((row, index) => {
const newRow = deepCopy(row);// todo const newRow = deepCopy(row);// todo
newRow._isHover = false; newRow._isHover = false;
if(newRow._disabled){
newRow._isDisabled = newRow._disabled;
}else{
newRow._isDisabled = false;
}
if (newRow._checked) { if (newRow._checked) {
newRow._isChecked = newRow._checked; if(newRow._isDisabled){
newRow._isChecked = false;
}else{
newRow._isChecked = newRow._checked;
}
} else { } else {
newRow._isChecked = false; newRow._isChecked = false;
} }
@ -563,12 +572,6 @@
} else { } else {
newRow._isHighlight = false; newRow._isHighlight = false;
} }
if(newRow._disabled){
newRow._isDisabled = newRow._disabled;
}else{
newRow._isDisabled = false;
}
data[index] = newRow; data[index] = newRow;
}); });
return data; return data;

View file

@ -54,26 +54,29 @@
age: 18, age: 18,
address: '北京市朝阳区芍药居', address: '北京市朝阳区芍药居',
_highlight: true, _highlight: true,
_checked: true _checked: true,
_disabled: false
}, },
{ {
name: '张小刚', name: '张小刚',
age: 25, age: 25,
address: '北京市海淀区西二旗', address: '北京市海淀区西二旗',
_checked: true _checked: false,
_disabled: true
}, },
{ {
name: '李小红', name: '李小红',
age: 30, age: 30,
address: '上海市浦东新区世纪大道', address: '上海市浦东新区世纪大道',
_checked: false, _checked: true,
_disabled: true _disabled: true
}, },
{ {
name: '周小伟', name: '周小伟',
age: 26, age: 26,
address: '深圳市南山区深南大道', address: '深圳市南山区深南大道',
_checked: true _checked: true,
_disabled: false
} }
] ]
} }