Commit 1b737fdc83027a0ae722e517446ac444fe7798b3
1 parent
096f2bfe
fixed #122
Showing
2 changed files
with
19 additions
and
5 deletions
Show diff stats
examples/routers/table.vue
... | ... | @@ -21,15 +21,16 @@ |
21 | 21 | title: '姓名', |
22 | 22 | key: 'name', |
23 | 23 | width: 100, |
24 | - fixed: 'left', | |
25 | 24 | sortable: true, |
26 | - renderHeader: (h, params) => { | |
27 | - return h('Tag', params.index) | |
28 | - } | |
25 | +// fixed: 'left', | |
26 | +// renderHeader: (h, params) => { | |
27 | +// return h('Tag', params.index) | |
28 | +// } | |
29 | 29 | }, |
30 | 30 | { |
31 | 31 | title: '年龄', |
32 | 32 | key: 'age', |
33 | + sortable: true, | |
33 | 34 | width: 100 |
34 | 35 | }, |
35 | 36 | { | ... | ... |
src/components/table/table-head.vue
... | ... | @@ -10,7 +10,7 @@ |
10 | 10 | <template v-if="column.type === 'expand'"></template> |
11 | 11 | <template v-else-if="column.type === 'selection'"><Checkbox :value="isSelectAll" @on-change="selectAll"></Checkbox></template> |
12 | 12 | <template v-else> |
13 | - <span v-if="!column.renderHeader">{{ column.title || '#' }}</span> | |
13 | + <span v-if="!column.renderHeader" @click="handleSortByHead(index)">{{ column.title || '#' }}</span> | |
14 | 14 | <render-header v-else :render="column.renderHeader" :column="column" :index="index"></render-header> |
15 | 15 | <span :class="[prefixCls + '-sort']" v-if="column.sortable"> |
16 | 16 | <i class="ivu-icon ivu-icon-arrow-up-b" :class="{on: column._sortType === 'asc'}" @click="handleSort(index, 'asc')"></i> |
... | ... | @@ -134,6 +134,19 @@ |
134 | 134 | } |
135 | 135 | this.$parent.handleSort(index, type); |
136 | 136 | }, |
137 | + handleSortByHead (index) { | |
138 | + const column = this.columns[index]; | |
139 | + if (column.sortable) { | |
140 | + const type = column._sortType; | |
141 | + if (type === 'normal') { | |
142 | + this.handleSort(index, 'asc'); | |
143 | + } else if (type === 'asc') { | |
144 | + this.handleSort(index, 'desc'); | |
145 | + } else { | |
146 | + this.handleSort(index, 'normal'); | |
147 | + } | |
148 | + } | |
149 | + }, | |
137 | 150 | handleFilter (index) { |
138 | 151 | this.$parent.handleFilter(index); |
139 | 152 | }, | ... | ... |