Commit da55375f0082406c1a45e57eba2cde7d3694ab0c

Authored by Rijn
1 parent 2b67801d

Added click and dblclick events to table

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 }