@@ -106,15 +106,15 @@ export default {
106106 }
107107 },
108108 parentCheckedHandle (parentNode , checked , halfcheck = false ) {
109- if (! parentNode || parentNode .chkDisabled || !! parentNode . checked === checked ) return false ;
110- let [ someBortherNodeChecked, allBortherNodeChecked] = [ checked, checked] ;
109+ if (! parentNode || parentNode .chkDisabled ) return false ;
110+ let someBortherNodeChecked = checked , allBortherNodeChecked = checked;
111111 const childNodes = parentNode .children
112112 if (checked) {
113- allBortherNodeChecked = childNodes .every (
114- child => child .checked && ! child .halfcheck
115- );
113+ allBortherNodeChecked = childNodes .every (child => child .checked );
116114 } else {
117- someBortherNodeChecked = childNodes .some (child => child .checked );
115+ someBortherNodeChecked = childNodes .some (({ checked, halfcheck: itemHalfCheck }) => {
116+ return checked || ( halfcheck && itemHalfCheck)
117+ });
118118 }
119119 if (halfcheck) {
120120 // all / some / none
@@ -127,8 +127,7 @@ export default {
127127 } else if (nodeHalfcheck) {
128128 return false ;
129129 }
130- const parentChecked = checked || nodeHalfcheck;
131- this .$set (parentNode, " checked" , parentChecked);
130+ this .$set (parentNode, " checked" , allBortherNodeChecked);
132131 } else {
133132 this .$set (parentNode, " checked" , allBortherNodeChecked);
134133 }
0 commit comments