@@ -123,8 +123,10 @@ export default san.defineComponent({
123123 // 如果有父子关联,拿到整个链上的数据
124124 if ( ! checkStrictly ) {
125125 let allKeys = this . getAllCheckedKeys ( this . treeNodes , checkedKeys . concat ( ) ) ;
126- this . data . set ( 'allCheckedKeys' , allKeys . checkedKeys ) ;
127- this . data . set ( 'allHalfCheckedKeys' , allKeys . halfCheckedKeys ) ;
126+ checkedKeys = allKeys . checkedKeys ;
127+ halfCheckedKeys = allKeys . halfCheckedKeys . filter ( key => ! checkedKeys . includes ( key ) ) ;
128+ this . data . set ( 'allCheckedKeys' , checkedKeys ) ;
129+ this . data . set ( 'allHalfCheckedKeys' , halfCheckedKeys ) ;
128130 }
129131 // 没有关联的话直接返回当前数据
130132 else {
@@ -300,17 +302,11 @@ export default san.defineComponent({
300302 let halfCheckedKeys = checkStrictly ? [ ] : this . data . get ( 'allHalfCheckedKeys' ) ;
301303 let allKeys = this . getChangedCheckedKeys ( this . treeNodes , key , checked , checkedKeys , halfCheckedKeys , checkStrictly ) ;
302304
303- // 非受控状态下,所有数据都走内部的allCheckedKeys和allHalfCheckedKeys
304- if ( ! ( 'checkedKeys' in this . data . get ( ) ) ) {
305- checkedKeys = allKeys . checkedKeys ;
306- halfCheckedKeys = allKeys . halfCheckedKeys ;
307- this . data . set ( 'allCheckedKeys' , checkedKeys ) ;
308- this . data . set ( 'allHalfCheckedKeys' , halfCheckedKeys ) ;
309- }
310- // 受控状态不保存数据,由外部传入的checkedKeys经过处理后拿到
311- else {
312- checkedKeys = allKeys . checkedKeys ;
313- }
305+ checkedKeys = allKeys . checkedKeys ;
306+ halfCheckedKeys = allKeys . halfCheckedKeys ;
307+ this . data . set ( 'allCheckedKeys' , checkedKeys ) ;
308+ this . data . set ( 'allHalfCheckedKeys' , halfCheckedKeys ) ;
309+
314310 this . updateTreeNodes ( ) ;
315311 if ( payload . value . event === 'check' ) {
316312 this . fire ( 'check' , { checkedKeys : checkedKeys , info : payload . value } ) ;
0 commit comments