Commit 7ca3e3dab23585eb3e81f5db05ee8df57569cf7b
Committed by
GitHub
Merge pull request #158 from rijn/master
Added click and dblclick events to table
Showing
3 changed files
with
35 additions
and
5 deletions
Show diff stats
src/components/table/table-body.vue
| @@ -9,7 +9,8 @@ | @@ -9,7 +9,8 @@ | ||
| 9 | :class="rowClasses(row._index)" | 9 | :class="rowClasses(row._index)" |
| 10 | @mouseenter.stop="handleMouseIn(row._index)" | 10 | @mouseenter.stop="handleMouseIn(row._index)" |
| 11 | @mouseleave.stop="handleMouseOut(row._index)" | 11 | @mouseleave.stop="handleMouseOut(row._index)" |
| 12 | - @click.stop="highlightCurrentRow(row._index)"> | 12 | + @click.stop="clickCurrentRow(row._index)" |
| 13 | + @dblclick.stop="dblclickCurrentRow(row._index)"> | ||
| 13 | <td v-for="column in columns" :class="alignCls(column)"> | 14 | <td v-for="column in columns" :class="alignCls(column)"> |
| 14 | <Cell | 15 | <Cell |
| 15 | :fixed="fixed" | 16 | :fixed="fixed" |
| @@ -66,8 +67,11 @@ | @@ -66,8 +67,11 @@ | ||
| 66 | handleMouseOut (_index) { | 67 | handleMouseOut (_index) { |
| 67 | this.$parent.handleMouseOut(_index); | 68 | this.$parent.handleMouseOut(_index); |
| 68 | }, | 69 | }, |
| 69 | - highlightCurrentRow (_index) { | ||
| 70 | - this.$parent.highlightCurrentRow(_index); | 70 | + clickCurrentRow (_index) { |
| 71 | + this.$parent.clickCurrentRow(_index); | ||
| 72 | + }, | ||
| 73 | + dblclickCurrentRow (_index) { | ||
| 74 | + this.$parent.dblclickCurrentRow(_index); | ||
| 71 | } | 75 | } |
| 72 | } | 76 | } |
| 73 | }; | 77 | }; |
src/components/table/table.vue
| @@ -297,6 +297,14 @@ | @@ -297,6 +297,14 @@ | ||
| 297 | const oldData = oldIndex < 0 ? null : JSON.parse(JSON.stringify(this.data[oldIndex])); | 297 | const oldData = oldIndex < 0 ? null : JSON.parse(JSON.stringify(this.data[oldIndex])); |
| 298 | this.$emit('on-current-change', JSON.parse(JSON.stringify(this.data[_index])), oldData); | 298 | this.$emit('on-current-change', JSON.parse(JSON.stringify(this.data[_index])), oldData); |
| 299 | }, | 299 | }, |
| 300 | + clickCurrentRow (_index) { | ||
| 301 | + this.highlightCurrentRow (_index); | ||
| 302 | + this.$emit('on-click', JSON.parse(JSON.stringify(this.data[_index]))); | ||
| 303 | + }, | ||
| 304 | + dblclickCurrentRow (_index) { | ||
| 305 | + this.highlightCurrentRow (_index); | ||
| 306 | + this.$emit('on-dblclick', JSON.parse(JSON.stringify(this.data[_index]))); | ||
| 307 | + }, | ||
| 300 | getSelection () { | 308 | getSelection () { |
| 301 | let selectionIndexes = []; | 309 | let selectionIndexes = []; |
| 302 | for (let i in this.objData) { | 310 | for (let i in this.objData) { |
test/routers/table.vue
| 1 | <template> | 1 | <template> |
| 2 | <i-button @click="changeFilter">改变filter</i-button> | 2 | <i-button @click="changeFilter">改变filter</i-button> |
| 3 | + <span v-if="currentRow !== null">Current Row: {{currentRow.name}}</span> | ||
| 3 | <Switch size="small" @on-change="switchCellEllipsis"></Switch> Ellipsis | 4 | <Switch size="small" @on-change="switchCellEllipsis"></Switch> Ellipsis |
| 4 | - <i-table border :columns="columns6" :data="data5"></i-table> | 5 | + <i-table |
| 6 | + border | ||
| 7 | + :columns="columns6" | ||
| 8 | + :data="data5" | ||
| 9 | + :highlight-row="true" | ||
| 10 | + @on-current-change="onCurrentChange" | ||
| 11 | + @on-dblclick="onDblclick"> | ||
| 12 | + </i-table> | ||
| 5 | </template> | 13 | </template> |
| 6 | <script> | 14 | <script> |
| 7 | export default { | 15 | export default { |
| @@ -99,7 +107,8 @@ | @@ -99,7 +107,8 @@ | ||
| 99 | date: '2016-10-04', | 107 | date: '2016-10-04', |
| 100 | longText: 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' | 108 | longText: 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' |
| 101 | } | 109 | } |
| 102 | - ] | 110 | + ], |
| 111 | + currentRow: null | ||
| 103 | } | 112 | } |
| 104 | }, | 113 | }, |
| 105 | methods: { | 114 | methods: { |
| @@ -113,6 +122,15 @@ | @@ -113,6 +122,15 @@ | ||
| 113 | }, | 122 | }, |
| 114 | switchCellEllipsis (status) { | 123 | switchCellEllipsis (status) { |
| 115 | this.columns6[5].ellipsis = status | 124 | this.columns6[5].ellipsis = status |
| 125 | + }, | ||
| 126 | + onClick (data) { | ||
| 127 | + window.alert('Click ' + data.name) | ||
| 128 | + }, | ||
| 129 | + onCurrentChange (data) { | ||
| 130 | + this.currentRow = data | ||
| 131 | + }, | ||
| 132 | + onDblclick (data) { | ||
| 133 | + window.alert('Double Click ' + data.name) | ||
| 116 | } | 134 | } |
| 117 | } | 135 | } |
| 118 | } | 136 | } |