Commit 1b737fdc83027a0ae722e517446ac444fe7798b3

Authored by 梁灏
1 parent 096f2bfe

fixed #122

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 },
... ...