|
16 | 16 | <td v-for="col in row" |
17 | 17 | :class="[col.titleCellClassName]" |
18 | 18 | :colspan="col.colspan" :rowspan="dealTitleRowspan(row,col.rowspan)" |
| 19 | + |
19 | 20 | @mousemove.stop="handleTitleMouseMove($event,col.fields)" |
20 | 21 | @mousedown.stop="handleTitleMouseDown($event)" |
21 | | - @mouseout.stop="handleTitleMouseOut()"> |
| 22 | + @mouseout.stop="handleTitleMouseOut()" |
| 23 | + @click.stop="titleCellClick(col.fields,col.title);" |
| 24 | + @dblclick.stop="titleCellDblClick(col.fields,col.title)"> |
22 | 25 | <div :class="['v-table-title-cell',showVerticalBorder?'vertical-border':'',showHorizontalBorder?'horizontal-border':'']" |
23 | 26 | :style="{'width':titleColumnWidth(col.fields)+'px','height':titleColumnHeight(col.rowspan)+'px','text-align':col.titleAlign}"> |
24 | 27 | <span class="table-title"> |
|
40 | 43 | :class="[col.titleCellClassName]" |
41 | 44 | @mousemove.stop="handleTitleMouseMove($event,col.field)" |
42 | 45 | @mousedown.stop="handleTitleMouseDown($event)" |
43 | | - @mouseout.stop="handleTitleMouseOut()"> |
| 46 | + @mouseout.stop="handleTitleMouseOut()" |
| 47 | + @click.stop="titleCellClick(col.field,col.title);" |
| 48 | + @dblclick.stop="titleCellDblClick(col.field,col.title)"> |
44 | 49 | <div :class="['v-table-title-cell',showVerticalBorder?'vertical-border':'',showHorizontalBorder?'horizontal-border':'']" |
45 | 50 | :style="{'width':col.width+'px','height':titleRowHeight+'px','text-align':col.titleAlign}"> |
46 | 51 | <span class="table-title"> |
|
90 | 95 | :class="['v-table-body-cell',showVerticalBorder ? 'vertical-border':'',showHorizontalBorder?'horizontal-border':'']" |
91 | 96 | :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}" |
92 | 97 | :title="col.overflowTitle ? overflowTitle(item,col) :''" |
93 | | - @click.stop="onCellClick(rowIndex,item,col);cellEditClick($event,col.isEdit,item,col.field,rowIndex)" |
| 98 | + @click.stop="rowCellClick(rowIndex,item,col);cellEditClick($event,col.isEdit,item,col.field,rowIndex)" |
| 99 | + @dblclick.stop="rowCellDbClick(rowIndex,item,col)" |
94 | 100 | > |
95 | 101 | <span v-if="cellMergeContentType(rowIndex,col.field,item).isComponent"> |
96 | 102 | <component :rowData="item" :field="col.field ? col.field : ''" |
|
105 | 111 | :class="['v-table-body-cell',showVerticalBorder ? 'vertical-border':'',showHorizontalBorder?'horizontal-border':'']" |
106 | 112 | :style="{'width':col.width+'px','height': rowHeight+'px','line-height':rowHeight+'px','text-align':col.columnAlign}" |
107 | 113 | :title="col.overflowTitle ? overflowTitle(item,col) :''" |
108 | | - @click.stop="onCellClick(rowIndex,item,col);cellEditClick($event,col.isEdit,item,col.field,rowIndex)" |
| 114 | + @click.stop="rowCellClick(rowIndex,item,col);cellEditClick($event,col.isEdit,item,col.field,rowIndex)" |
| 115 | + @dblclick.stop="rowCellDbClick(rowIndex,item,col)" |
109 | 116 | > |
110 | 117 | <span v-if="typeof col.componentName ==='string' && col.componentName.length > 0"> |
111 | 118 | <component :rowData="item" :field="col.field ? col.field : ''" |
|
164 | 171 | :colspan="col.colspan" :rowspan="dealTitleRowspan(row,col.rowspan)" |
165 | 172 | @mousemove.stop="handleTitleMouseMove($event,col.fields)" |
166 | 173 | @mousedown.stop="handleTitleMouseDown($event)" |
167 | | - @mouseout.stop="handleTitleMouseOut()"> |
| 174 | + @mouseout.stop="handleTitleMouseOut()" |
| 175 | + @click.stop="titleCellClick(col.fields,col.title);" |
| 176 | + @dblclick.stop="titleCellDblClick(col.fields,col.title)"> |
168 | 177 | <div :class="['v-table-title-cell',showVerticalBorder?'vertical-border':'',showHorizontalBorder?'horizontal-border':'']" |
169 | 178 | :style="{'width':titleColumnWidth(col.fields)+'px','height':titleColumnHeight(col.rowspan)+'px','text-align':col.titleAlign}"> |
170 | 179 | <span class="table-title"> |
|
187 | 196 | :class="[col.titleCellClassName]" |
188 | 197 | @mousemove.stop="handleTitleMouseMove($event,col.field)" |
189 | 198 | @mousedown.stop="handleTitleMouseDown($event)" |
190 | | - @mouseout.stop="handleTitleMouseOut()"> |
| 199 | + @mouseout.stop="handleTitleMouseOut()" |
| 200 | + @click.stop="titleCellClick(col.field,col.title);" |
| 201 | + @dblclick.stop="titleCellDblClick(col.field,col.title)"> |
191 | 202 | <div :class="['v-table-title-cell',showVerticalBorder?'vertical-border':'',showHorizontalBorder?'horizontal-border':'']" |
192 | 203 | :style="{'width':col.width+'px','height':titleRowHeight+'px','text-align':col.titleAlign}"> |
193 | 204 | <span class="table-title"> |
|
238 | 249 | :class="['v-table-body-cell',showVerticalBorder ? 'vertical-border':'',showHorizontalBorder?'horizontal-border':'']" |
239 | 250 | :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}" |
240 | 251 | :title="col.overflowTitle ? overflowTitle(item,col) :''" |
241 | | - @click.stop="onCellClick(rowIndex,item,col);cellEditClick($event,col.isEdit,item,col.field,rowIndex)" |
| 252 | + @click.stop="rowCellClick(rowIndex,item,col);cellEditClick($event,col.isEdit,item,col.field,rowIndex)" |
| 253 | + @dblclick.stop="rowCellDbClick(rowIndex,item,col)" |
242 | 254 | > |
243 | 255 | <span v-if="cellMergeContentType(rowIndex,col.field,item).isComponent"> |
244 | 256 | <component :rowData="item" :field="col.field ? col.field : ''" :index="rowIndex" |
|
253 | 265 | :class="['v-table-body-cell',showVerticalBorder ? 'vertical-border':'',showHorizontalBorder?'horizontal-border':'']" |
254 | 266 | :style="{'width':col.width+'px','height': rowHeight+'px','line-height':rowHeight+'px','text-align':col.columnAlign}" |
255 | 267 | :title="col.overflowTitle ? overflowTitle(item,col) :''" |
256 | | - @click.stop="onCellClick(rowIndex,item,col);cellEditClick($event,col.isEdit,item,col.field,rowIndex)" |
| 268 | + @click.stop="rowCellClick(rowIndex,item,col);cellEditClick($event,col.isEdit,item,col.field,rowIndex)" |
| 269 | + @dblclick.stop="rowCellDbClick(rowIndex,item,col)" |
257 | 270 | > |
258 | 271 | <span v-if="typeof col.componentName ==='string' && col.componentName.length > 0"> |
259 | 272 | <component :rowData="item" :field="col.field ? col.field : ''" :index="rowIndex" |
|
362 | 375 | // 最大宽度(当width:'max'时) |
363 | 376 | maxWidth: 5000, |
364 | 377 | hasFrozenColumn: false,// 是否拥有固定列(false时最后一列的右边border无边框) |
365 | | - resizeTimer:null |
| 378 | + resizeTimer: null |
366 | 379 | } |
367 | 380 | }, |
368 | 381 | props: { |
|
506 | 519 | type: Boolean, |
507 | 520 | default: false |
508 | 521 | }, |
509 | | - loadingOpacity:{ |
| 522 | + loadingOpacity: { |
510 | 523 | type: Number, |
511 | 524 | default: 0.6 |
512 | 525 | }, |
513 | 526 | // 表体单元格样式回调 |
514 | 527 | columnCellClassName: Function, |
515 | 528 | // footer单元格样式回调 |
516 | 529 | footerCellClassName: Function, |
517 | | - // 行点击回调 |
518 | | - onRowClick: Function, |
| 530 | + // 行单击回调 |
| 531 | + rowClick: Function, |
| 532 | + // 行双击回调 |
| 533 | + rowDblclick: Function, |
| 534 | + // 表头单元格单击回调 |
| 535 | + titleClick: Function, |
| 536 | + // 表头单元格双击回调 |
| 537 | + titleDblclick: Function, |
519 | 538 | // 鼠标进入行的回调 |
520 | 539 | rowMouseEnter: Function, |
521 | 540 | // 鼠标离开行的回调 |
|
552 | 571 |
|
553 | 572 | let result = this.internalWidth - this.leftViewWidth; |
554 | 573 |
|
555 | | - return this.hasFrozenColumn ? result -2 : result; |
| 574 | + return this.hasFrozenColumn ? result - 2 : result; |
556 | 575 | }, |
557 | 576 |
|
558 | 577 | // 左侧、右侧区域高度 |
|
761 | 780 | // 当没有设置高度时计算总高度 || 设置的高度大于所有列高度之和时 |
762 | 781 | if (!(this.height && this.height > 0) || this.height > totalColumnsHeight) { |
763 | 782 |
|
764 | | - if (!this.isVerticalResize){ |
| 783 | + if (!this.isVerticalResize) { |
765 | 784 |
|
766 | 785 | this.internalHeight = totalColumnsHeight; |
767 | 786 | } |
|
856 | 875 | } |
857 | 876 |
|
858 | 877 | this.resize(); |
| 878 | +
|
| 879 | + this.bodyScrollTop(); |
859 | 880 | }, |
860 | 881 | deep: true |
861 | 882 | } |
|
0 commit comments