From c7315098532c3d79c98dfb1d5eded3f71ea3a54a Mon Sep 17 00:00:00 2001 From: leonine <326026108@qq.com> Date: Thu, 23 Feb 2017 14:29:49 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E4=B8=A4=E4=B8=AA=E9=97=AE?= =?UTF-8?q?=E9=A2=98=EF=BC=9A=201.=E5=A6=82=E6=9E=9C=E6=9F=90=E8=A1=8C?= =?UTF-8?q?=E7=A6=81=E7=94=A8=5Fdisabled=3Dtrue,=E5=88=99=E8=BF=99?= =?UTF-8?q?=E8=A1=8C=E7=9A=84=5Fchecked,=E6=97=A0=E8=AE=BA=E5=A6=82?= =?UTF-8?q?=E4=BD=95=E9=83=BD=E6=98=AFfalse,=E5=9B=A0=E4=B8=BA=E7=A6=81?= =?UTF-8?q?=E7=94=A8=E7=9A=84=E7=9B=AE=E7=9A=84=E5=B0=B1=E6=98=AF=E4=B8=8D?= =?UTF-8?q?=E8=83=BD=E9=80=89=E6=8B=A9=202.=E4=BF=AE=E5=A4=8D=E6=9F=90?= =?UTF-8?q?=E8=A1=8C=E8=AE=BE=E7=BD=AE=5Fdisabled=3Dtrue=E6=97=B6=EF=BC=8C?= =?UTF-8?q?=E5=85=A8=E9=80=89=E7=8A=B6=E6=80=81=E5=88=A4=E6=96=AD=E6=9C=89?= =?UTF-8?q?=E8=AF=AF=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/table/table-head.vue | 11 +++++++++-- src/components/table/table.vue | 17 ++++++++++------- test/routers/table.vue | 11 +++++++---- 3 files changed, 26 insertions(+), 13 deletions(-) diff --git a/src/components/table/table-head.vue b/src/components/table/table-head.vue index b5f96d55..e0dd1d68 100644 --- a/src/components/table/table-head.vue +++ b/src/components/table/table-head.vue @@ -84,16 +84,23 @@ }, isSelectAll () { let isSelectAll = true; + let isAllDisabled = true; if (!this.data.length) isSelectAll = false; 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; break; } } - return isSelectAll; + return isAllDisabled ? false : isSelectAll; } }, methods: { diff --git a/src/components/table/table.vue b/src/components/table/table.vue index 5607c6fc..43787fa2 100644 --- a/src/components/table/table.vue +++ b/src/components/table/table.vue @@ -553,8 +553,17 @@ this.data.forEach((row, index) => { const newRow = deepCopy(row);// todo 直接替换 newRow._isHover = false; + if(newRow._disabled){ + newRow._isDisabled = newRow._disabled; + }else{ + newRow._isDisabled = false; + } if (newRow._checked) { - newRow._isChecked = newRow._checked; + if(newRow._isDisabled){ + newRow._isChecked = false; + }else{ + newRow._isChecked = newRow._checked; + } } else { newRow._isChecked = false; } @@ -563,12 +572,6 @@ } else { newRow._isHighlight = false; } - - if(newRow._disabled){ - newRow._isDisabled = newRow._disabled; - }else{ - newRow._isDisabled = false; - } data[index] = newRow; }); return data; diff --git a/test/routers/table.vue b/test/routers/table.vue index b55a79be..a4ec76cb 100644 --- a/test/routers/table.vue +++ b/test/routers/table.vue @@ -54,26 +54,29 @@ age: 18, address: '北京市朝阳区芍药居', _highlight: true, - _checked: true + _checked: true, + _disabled: false }, { name: '张小刚', age: 25, address: '北京市海淀区西二旗', - _checked: true + _checked: false, + _disabled: true }, { name: '李小红', age: 30, address: '上海市浦东新区世纪大道', - _checked: false, + _checked: true, _disabled: true }, { name: '周小伟', age: 26, address: '深圳市南山区深南大道', - _checked: true + _checked: true, + _disabled: false } ] }