Commit cd85c675101d8f2e566fe0f389d8d876ed48bb9d
1 parent
c7315098
修改_checked=true 时,在_disabled=true的时候被取消了选中的状态的问题
Showing
2 changed files
with
14 additions
and
20 deletions
Show diff stats
src/components/table/table-head.vue
... | ... | @@ -84,23 +84,15 @@ |
84 | 84 | }, |
85 | 85 | isSelectAll () { |
86 | 86 | let isSelectAll = true; |
87 | - let isAllDisabled = true; | |
88 | 87 | if (!this.data.length) isSelectAll = false; |
89 | - | |
90 | 88 | for (let i = 0; i < this.data.length; i++) { |
91 | - if(this.objData[this.data[i]._index]._isDisabled){ | |
92 | - isAllDisabled = isAllDisabled && true; | |
93 | - continue; | |
94 | - }else{ | |
95 | - isAllDisabled = isAllDisabled && false; | |
96 | - } | |
97 | - if (!this.objData[this.data[i]._index]._isChecked ) { | |
89 | + if (!this.objData[this.data[i]._index]._isChecked && !this.objData[this.data[i]._index]._isDisabled) { | |
98 | 90 | isSelectAll = false; |
99 | 91 | break; |
100 | 92 | } |
101 | 93 | } |
102 | 94 | |
103 | - return isAllDisabled ? false : isSelectAll; | |
95 | + return isSelectAll; | |
104 | 96 | } |
105 | 97 | }, |
106 | 98 | methods: { | ... | ... |
src/components/table/table.vue
... | ... | @@ -391,15 +391,21 @@ |
391 | 391 | this.$emit('on-selection-change', selection); |
392 | 392 | }, |
393 | 393 | selectAll (status) { |
394 | - this.rebuildData.forEach((data) => { | |
394 | + // this.rebuildData.forEach((data) => { | |
395 | + // if(this.objData[data._index]._isDisabled){ | |
396 | + // this.objData[data._index]._isChecked = false; | |
397 | + // }else{ | |
398 | + // this.objData[data._index]._isChecked = status; | |
399 | + // } | |
400 | + | |
401 | + // }); | |
402 | + for(const data of this.rebuildData){ | |
395 | 403 | if(this.objData[data._index]._isDisabled){ |
396 | - this.objData[data._index]._isChecked = false; | |
404 | + continue; | |
397 | 405 | }else{ |
398 | 406 | this.objData[data._index]._isChecked = status; |
399 | 407 | } |
400 | - | |
401 | - }); | |
402 | - | |
408 | + } | |
403 | 409 | const selection = this.getSelection(); |
404 | 410 | if (status) { |
405 | 411 | this.$emit('on-select-all', selection); |
... | ... | @@ -559,11 +565,7 @@ |
559 | 565 | newRow._isDisabled = false; |
560 | 566 | } |
561 | 567 | if (newRow._checked) { |
562 | - if(newRow._isDisabled){ | |
563 | - newRow._isChecked = false; | |
564 | - }else{ | |
565 | - newRow._isChecked = newRow._checked; | |
566 | - } | |
568 | + newRow._isChecked = newRow._checked; | |
567 | 569 | } else { |
568 | 570 | newRow._isChecked = false; |
569 | 571 | } | ... | ... |