From 3aca3d56ef5219f9edcf3ab653efaeb4b0afcf2b Mon Sep 17 00:00:00 2001 From: 梁灏 Date: Mon, 18 Sep 2017 10:33:58 +0800 Subject: [PATCH] fixed #1372 --- examples/routers/table.vue | 30 ++++++++++++++++++------------ src/components/table/table.vue | 18 +++++++++++++----- 2 files changed, 31 insertions(+), 17 deletions(-) diff --git a/examples/routers/table.vue b/examples/routers/table.vue index 19f9a73..6ca563b 100644 --- a/examples/routers/table.vue +++ b/examples/routers/table.vue @@ -1,13 +1,16 @@ diff --git a/src/components/table/table.vue b/src/components/table/table.vue index 6f12824..d694269 100644 --- a/src/components/table/table.vue +++ b/src/components/table/table.vue @@ -374,9 +374,8 @@ if (this.disabledHover) return; this.objData[_index]._isHover = false; }, - highlightCurrentRow (_index) { - if (!this.highlightRow || this.objData[_index]._isHighlight) return; - + // 通用处理 highlightCurrentRow 和 clearCurrentRow + handleCurrentRow (type, _index) { let oldIndex = -1; for (let i in this.objData) { if (this.objData[i]._isHighlight) { @@ -384,9 +383,18 @@ this.objData[i]._isHighlight = false; } } - this.objData[_index]._isHighlight = true; + if (type === 'highlight') this.objData[_index]._isHighlight = true; const oldData = oldIndex < 0 ? null : JSON.parse(JSON.stringify(this.cloneData[oldIndex])); - this.$emit('on-current-change', JSON.parse(JSON.stringify(this.cloneData[_index])), oldData); + const newData = type === 'highlight' ? JSON.parse(JSON.stringify(this.cloneData[_index])) : null; + this.$emit('on-current-change', newData, oldData); + }, + highlightCurrentRow (_index) { + if (!this.highlightRow || this.objData[_index]._isHighlight) return; + this.handleCurrentRow('highlight', _index); + }, + clearCurrentRow () { + if (!this.highlightRow) return; + this.handleCurrentRow('clear'); }, clickCurrentRow (_index) { this.highlightCurrentRow (_index); -- libgit2 0.21.4