From 5e796ca33b4bd83f8398f72ce9cf32f0e904b28e Mon Sep 17 00:00:00 2001 From: Cyril Su Date: Mon, 6 Mar 2017 18:45:27 +0800 Subject: [PATCH] Table: Add handleEvent. (#3305) --- packages/table/src/table-body.js | 26 +++++++++----------------- test/unit/specs/table.spec.js | 2 +- 2 files changed, 10 insertions(+), 18 deletions(-) diff --git a/packages/table/src/table-body.js b/packages/table/src/table-body.js index 49c2f04a5..d66beb72d 100644 --- a/packages/table/src/table-body.js +++ b/packages/table/src/table-body.js @@ -219,37 +219,29 @@ export default { }, handleContextMenu(event, row) { - const table = this.table; - const cell = getCell(event); - let column; - if (cell) { - column = getColumnByCell(table, cell); - if (column) { - table.$emit('cell-dblclick', row, column, cell, event); - } - } - table.$emit('row-contextmenu', row, event); + this.handleEvent(event, row, 'contextmenu'); }, handleDoubleClick(event, row) { - const table = this.table; - table.$emit('row-dblclick', row, event); + this.handleEvent(event, row, 'dblclick'); }, handleClick(event, row) { + this.store.commit('setCurrentRow', row); + this.handleEvent(event, row, 'click'); + }, + + handleEvent(event, row, name) { const table = this.table; const cell = getCell(event); let column; if (cell) { column = getColumnByCell(table, cell); if (column) { - table.$emit('cell-click', row, column, cell, event); + table.$emit(`cell-${name}`, row, column, cell, event); } } - - this.store.commit('setCurrentRow', row); - - table.$emit('row-click', row, event, column); + table.$emit(`row-${name}`, row, event, column); }, handleExpandClick(row) { diff --git a/test/unit/specs/table.spec.js b/test/unit/specs/table.spec.js index 343e8e26c..f9c8117a2 100644 --- a/test/unit/specs/table.spec.js +++ b/test/unit/specs/table.spec.js @@ -459,7 +459,7 @@ describe('Table', () => { const cell = vm.$el.querySelectorAll('.el-table__body .cell')[2]; // first row triggerEvent(cell.parentNode.parentNode, 'dblclick'); - expect(vm.result).to.length(2); // row, event + expect(vm.result).to.length(3); // row, event, column expect(vm.result[0]).to.have.property('name').to.equal(getTestData()[0].name); destroyVM(vm); done();