|
35 | 35 | ></v-checkbox> |
36 | 36 | </span> |
37 | 37 | <span v-else v-html="col.title"></span> |
38 | | - <span @click.stop="sortControl(col.fields[0],col.orderBy)" |
| 38 | + <span @click.stop="sortControl(col.fields[0])" |
39 | 39 | class="v-table-sort-icon" v-if="enableSort(col.orderBy)"> |
40 | | - <i :class='["v-icon-up-dir",col.orderBy ==="asc" ? "checked":""]'></i> |
41 | | - <i :class='["v-icon-down-dir",col.orderBy ==="desc" ? "checked":""]'></i> |
| 40 | + <i :class='["v-icon-up-dir",getCurrentSort(col.field) ==="asc" ? "checked":""]'></i> |
| 41 | + <i :class='["v-icon-down-dir",getCurrentSort(col.field) ==="desc" ? "checked":""]'></i> |
42 | 42 | </span> |
43 | 43 | </span> |
44 | 44 | </div> |
|
68 | 68 | ></v-checkbox> |
69 | 69 | </span> |
70 | 70 | <span v-else v-html="col.title"></span> |
71 | | - <span @click.stop="sortControl(col.field,col.orderBy)" |
| 71 | + <span @click.stop="sortControl(col.field)" |
72 | 72 | class="v-table-sort-icon" v-if="enableSort(col.orderBy)"> |
73 | | - <i :class='["v-icon-up-dir",col.orderBy ==="asc" ? "checked":""]'></i> |
74 | | - <i :class='["v-icon-down-dir",col.orderBy ==="desc" ? "checked":""]'></i> |
| 73 | + <i :class='["v-icon-up-dir",getCurrentSort(col.field) ==="asc" ? "checked":""]'></i> |
| 74 | + <i :class='["v-icon-down-dir",getCurrentSort(col.field) ==="desc" ? "checked":""]'></i> |
75 | 75 | </span> |
76 | 76 | </span> |
77 | 77 | </div> |
|
103 | 103 | <div v-if="isCellMergeRender(rowIndex,col.field,item)" |
104 | 104 | :class="['v-table-body-cell',showVerticalBorder ? 'vertical-border':'',showHorizontalBorder?'horizontal-border':'']" |
105 | 105 | :style="{'width':getRowWidthByColSpan(rowIndex,col.field,item)+'px','height': getRowHeightByRowSpan(rowIndex,col.field,item)+'px','line-height':getRowHeightByRowSpan(rowIndex,col.field,item)+'px','text-align':col.columnAlign}" |
106 | | - :title="col.overflowTitle ? overflowTitle(item,col) :''" |
| 106 | + :title="col.overflowTitle ? overflowTitle(item,rowIndex,col) :''" |
107 | 107 | @click.stop="rowCellClick(rowIndex,item,col);cellEditClick($event,col.isEdit,item,col.field,rowIndex)" |
108 | 108 | @dblclick.stop="rowCellDbClick(rowIndex,item,col)" |
109 | 109 | > |
|
119 | 119 | <div v-else |
120 | 120 | :class="['v-table-body-cell',showVerticalBorder ? 'vertical-border':'',showHorizontalBorder?'horizontal-border':'']" |
121 | 121 | :style="{'width':col.width+'px','height': rowHeight+'px','line-height':rowHeight+'px','text-align':col.columnAlign}" |
122 | | - :title="col.overflowTitle ? overflowTitle(item,col) :''" |
| 122 | + :title="col.overflowTitle ? overflowTitle(item,rowIndex,col) :''" |
123 | 123 | @click.stop="rowCellClick(rowIndex,item,col);cellEditClick($event,col.isEdit,item,col.field,rowIndex)" |
124 | 124 | @dblclick.stop="rowCellDbClick(rowIndex,item,col)" |
125 | 125 | > |
|
188 | 188 | <span class="table-title"> |
189 | 189 | <span v-if="col.type === 'selection'"></span> |
190 | 190 | <span v-else v-html="col.title"></span> |
191 | | - <span @click.stop="sortControl(col.fields[0],col.orderBy)" |
| 191 | + <span @click.stop="sortControl(col.fields[0])" |
192 | 192 | class="v-table-sort-icon" v-if="enableSort(col.orderBy)"> |
193 | | - <i :class='["v-icon-up-dir",col.orderBy ==="asc" ? "checked":""]'></i> |
194 | | - <i :class='["v-icon-down-dir",col.orderBy ==="desc" ? "checked":""]'></i> |
| 193 | + <i :class='["v-icon-up-dir",getCurrentSort(col.field) ==="asc" ? "checked":""]'></i> |
| 194 | + <i :class='["v-icon-down-dir",getCurrentSort(col.field) ==="desc" ? "checked":""]'></i> |
195 | 195 | </span> |
196 | 196 | </span> |
197 | 197 | </div> |
|
221 | 221 | ></v-checkbox> |
222 | 222 | </span> |
223 | 223 | <span v-else v-html="col.title"></span> |
224 | | - <span @click.stop="sortControl(col.field,col.orderBy)" |
| 224 | + <span @click.stop="sortControl(col.field)" |
225 | 225 | class="v-table-sort-icon" |
226 | 226 | v-if="enableSort(col.orderBy)"> |
227 | | - <i :class='["v-icon-up-dir",col.orderBy ==="asc" ? "checked":""]'></i> |
228 | | - <i :class='["v-icon-down-dir",col.orderBy ==="desc" ? "checked":""]'></i> |
| 227 | + <i :class='["v-icon-up-dir",getCurrentSort(col.field) ==="asc" ? "checked":""]'></i> |
| 228 | + <i :class='["v-icon-down-dir",getCurrentSort(col.field) ==="desc" ? "checked":""]'></i> |
229 | 229 | </span> |
230 | 230 | </span> |
231 | 231 | </div> |
|
257 | 257 | <div v-if="isCellMergeRender(rowIndex,col.field,item)" |
258 | 258 | :class="['v-table-body-cell',showVerticalBorder ? 'vertical-border':'',showHorizontalBorder?'horizontal-border':'']" |
259 | 259 | :style="{'width':getRowWidthByColSpan(rowIndex,col.field,item)+'px','height': getRowHeightByRowSpan(rowIndex,col.field,item)+'px','line-height':getRowHeightByRowSpan(rowIndex,col.field,item)+'px','text-align':col.columnAlign}" |
260 | | - :title="col.overflowTitle ? overflowTitle(item,col) :''" |
| 260 | + :title="col.overflowTitle ? overflowTitle(item,rowIndex,col) :''" |
261 | 261 | @click.stop="rowCellClick(rowIndex,item,col);cellEditClick($event,col.isEdit,item,col.field,rowIndex)" |
262 | 262 | @dblclick.stop="rowCellDbClick(rowIndex,item,col)" |
263 | 263 | > |
|
273 | 273 | <div v-else |
274 | 274 | :class="['v-table-body-cell',showVerticalBorder ? 'vertical-border':'',showHorizontalBorder?'horizontal-border':'']" |
275 | 275 | :style="{'width':col.width+'px','height': rowHeight+'px','line-height':rowHeight+'px','text-align':col.columnAlign}" |
276 | | - :title="col.overflowTitle ? overflowTitle(item,col) :''" |
| 276 | + :title="col.overflowTitle ? overflowTitle(item,rowIndex,col) :''" |
277 | 277 | @click.stop="rowCellClick(rowIndex,item,col);cellEditClick($event,col.isEdit,item,col.field,rowIndex)" |
278 | 278 | @dblclick.stop="rowCellDbClick(rowIndex,item,col)" |
279 | 279 | > |
|
592 | 592 | result = this.internalHeight - this.titleRowHeight; |
593 | 593 | } |
594 | 594 |
|
595 | | - result -= this.footerTotalHeight; |
| 595 | + // 1px: 当有滚动条时,使滚动条显示全 |
| 596 | + result -= (this.footerTotalHeight+1); |
596 | 597 |
|
597 | 598 | return result; |
598 | 599 | }, |
599 | 600 |
|
600 | | - // 将复杂表头配置数据简单化 |
601 | | - titleRowsToSortInfo(){ |
602 | | - var result = [], self = this; |
603 | | -
|
604 | | - if (self.internalTitleRows.length > 0) { |
605 | | - self.internalTitleRows.filter(function (row) { |
606 | | - row.filter(function (column, index) { |
607 | | - if (typeof column.orderBy === 'string' && column.fields.length === 1) { |
608 | | - column.field = column.fields[0]; |
609 | | - result.push(column); |
610 | | - } |
611 | | - }) |
612 | | - }) |
613 | | - } |
614 | | - return result; |
615 | | - }, |
616 | | -
|
617 | | -
|
618 | 601 | // 所有列的总宽度 |
619 | 602 | totalColumnsWidth(){ |
620 | 603 | return this.internalColumns.reduce(function (total, curr) { |
|
696 | 679 | }, |
697 | 680 |
|
698 | 681 | // 超出的title提示 |
699 | | - overflowTitle(row, col){ |
| 682 | + overflowTitle(row, rowIndex,col){ |
| 683 | +
|
700 | 684 | var result = ''; |
701 | 685 | if (typeof col.formatter === 'function') { |
702 | | - var val = col.formatter(row, -1); |
| 686 | + var val = col.formatter(row, rowIndex,this.pagingIndex,col.field); |
703 | 687 | // 如果是html 不处理 |
704 | 688 | if (utils.isHtml(val)) { |
705 | 689 | result = ''; |
|
747 | 731 |
|
748 | 732 | this.initTableWidth(); |
749 | 733 |
|
| 734 | + this.setSortColumns(); |
| 735 | +
|
750 | 736 |
|
751 | 737 | var self = this, widthCountCheck = 0; |
752 | 738 |
|
|
840 | 826 | this.scrollControl(); |
841 | 827 | } |
842 | 828 |
|
843 | | - this.singelSortInit(); |
| 829 | + //this.singleSortInit(); |
844 | 830 |
|
845 | 831 | this.controlScrollBar(); |
846 | 832 | }, |
|
0 commit comments