vxe-table 3.12.8 → 3.12.10-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (85) hide show
  1. package/es/grid/src/grid.js +6 -1
  2. package/es/index.css +1 -1
  3. package/es/index.min.css +1 -1
  4. package/es/style.css +1 -1
  5. package/es/style.min.css +1 -1
  6. package/es/table/module/export/mixin.js +3 -3
  7. package/es/table/module/filter/mixin.js +3 -3
  8. package/es/table/module/keyboard/mixin.js +4 -4
  9. package/es/table/module/menu/mixin.js +2 -2
  10. package/es/table/module/validator/mixin.js +2 -2
  11. package/es/table/src/body.js +262 -363
  12. package/es/table/src/footer.js +135 -154
  13. package/es/table/src/header.js +120 -100
  14. package/es/table/src/methods.js +1175 -816
  15. package/es/table/src/props.js +9 -3
  16. package/es/table/src/table.js +187 -103
  17. package/es/table/src/util.js +35 -21
  18. package/es/table/style.css +146 -63
  19. package/es/table/style.min.css +1 -1
  20. package/es/ui/index.js +14 -4
  21. package/es/ui/src/log.js +1 -1
  22. package/es/vxe-table/style.css +146 -63
  23. package/es/vxe-table/style.min.css +1 -1
  24. package/lib/grid/src/grid.js +4 -1
  25. package/lib/grid/src/grid.min.js +1 -1
  26. package/lib/index.css +1 -1
  27. package/lib/index.min.css +1 -1
  28. package/lib/index.umd.js +1920 -1599
  29. package/lib/index.umd.min.js +1 -1
  30. package/lib/style.css +1 -1
  31. package/lib/style.min.css +1 -1
  32. package/lib/table/module/export/mixin.js +3 -3
  33. package/lib/table/module/export/mixin.min.js +1 -1
  34. package/lib/table/module/filter/mixin.js +4 -4
  35. package/lib/table/module/filter/mixin.min.js +1 -1
  36. package/lib/table/module/keyboard/mixin.js +5 -5
  37. package/lib/table/module/keyboard/mixin.min.js +1 -1
  38. package/lib/table/module/menu/mixin.js +2 -2
  39. package/lib/table/module/menu/mixin.min.js +1 -1
  40. package/lib/table/module/validator/mixin.js +2 -2
  41. package/lib/table/module/validator/mixin.min.js +1 -1
  42. package/lib/table/src/body.js +205 -381
  43. package/lib/table/src/body.min.js +1 -1
  44. package/lib/table/src/footer.js +124 -151
  45. package/lib/table/src/footer.min.js +1 -1
  46. package/lib/table/src/header.js +97 -74
  47. package/lib/table/src/header.min.js +1 -1
  48. package/lib/table/src/methods.js +1261 -875
  49. package/lib/table/src/methods.min.js +1 -1
  50. package/lib/table/src/props.js +9 -3
  51. package/lib/table/src/props.min.js +1 -1
  52. package/lib/table/src/table.js +171 -90
  53. package/lib/table/src/table.min.js +1 -1
  54. package/lib/table/src/util.js +38 -22
  55. package/lib/table/src/util.min.js +1 -1
  56. package/lib/table/style/style.css +146 -63
  57. package/lib/table/style/style.min.css +1 -1
  58. package/lib/ui/index.js +14 -4
  59. package/lib/ui/index.min.js +1 -1
  60. package/lib/ui/src/log.js +1 -1
  61. package/lib/ui/src/log.min.js +1 -1
  62. package/lib/vxe-table/style/style.css +146 -63
  63. package/lib/vxe-table/style/style.min.css +1 -1
  64. package/package.json +2 -2
  65. package/packages/grid/src/grid.ts +6 -1
  66. package/packages/table/module/export/mixin.ts +3 -3
  67. package/packages/table/module/filter/mixin.ts +3 -3
  68. package/packages/table/module/keyboard/mixin.ts +4 -4
  69. package/packages/table/module/menu/mixin.ts +2 -2
  70. package/packages/table/module/validator/mixin.ts +2 -2
  71. package/packages/table/src/body.ts +296 -436
  72. package/packages/table/src/footer.ts +148 -164
  73. package/packages/table/src/header.ts +135 -111
  74. package/packages/table/src/methods.ts +1249 -873
  75. package/packages/table/src/props.ts +9 -3
  76. package/packages/table/src/table.ts +195 -146
  77. package/packages/table/src/util.ts +40 -23
  78. package/packages/ui/index.ts +13 -3
  79. package/styles/components/table.scss +164 -74
  80. /package/es/{iconfont.1736406699090.ttf → iconfont.1736688976404.ttf} +0 -0
  81. /package/es/{iconfont.1736406699090.woff → iconfont.1736688976404.woff} +0 -0
  82. /package/es/{iconfont.1736406699090.woff2 → iconfont.1736688976404.woff2} +0 -0
  83. /package/lib/{iconfont.1736406699090.ttf → iconfont.1736688976404.ttf} +0 -0
  84. /package/lib/{iconfont.1736406699090.woff → iconfont.1736688976404.woff} +0 -0
  85. /package/lib/{iconfont.1736406699090.woff2 → iconfont.1736688976404.woff2} +0 -0
@@ -1,7 +1,7 @@
1
1
  import XEUtils from 'xe-utils';
2
2
  import { VxeUI } from '../../ui';
3
3
  import { getClass } from '../../ui/src/utils';
4
- import { updateCellTitle, setScrollLeft } from '../../ui/src/dom';
4
+ import { updateCellTitle } from '../../ui/src/dom';
5
5
  const renderType = 'footer';
6
6
  const { renderer, renderEmptyElement } = VxeUI;
7
7
  function mergeFooterMethod(mergeFooterList, _rowIndex, _columnIndex) {
@@ -18,16 +18,25 @@ function mergeFooterMethod(mergeFooterList, _rowIndex, _columnIndex) {
18
18
  }
19
19
  }
20
20
  function renderRows(h, _vm, tableColumn, footerTableData, row, $rowIndex, _rowIndex) {
21
- const { $parent: $xetable, fixedType } = _vm;
22
- const { $listeners: tableListeners, footerCellClassName, footerCellStyle, footerAlign: allFooterAlign, mergeFooterList, footerSpanMethod, align: allAlign, scrollXLoad, columnKey, columnOpts, showFooterOverflow: allColumnFooterOverflow, currentColumn, overflowX, scrollYLoad, scrollbarWidth, tooltipOpts } = $xetable;
21
+ const props = _vm;
22
+ const $xeTable = _vm.$parent;
23
+ const tableProps = $xeTable;
24
+ const tableReactData = $xeTable;
25
+ const tableInternalData = $xeTable;
26
+ const { fixedType } = props;
27
+ const { footerCellClassName, footerCellStyle, footerAlign: allFooterAlign, footerSpanMethod, align: allAlign, columnKey, showFooterOverflow: allColumnFooterOverflow } = tableProps;
28
+ const { scrollXLoad, scrollYLoad, overflowX, currentColumn, mergeFooterList } = tableReactData;
29
+ const { scrollXStore } = tableInternalData;
30
+ const tooltipOpts = $xeTable.computeTooltipOpts;
31
+ const columnOpts = $xeTable.computeColumnOpts;
23
32
  return tableColumn.map((column, $columnIndex) => {
24
33
  const { type, showFooterOverflow, footerAlign, align, footerClassName, editRender, cellRender } = column;
25
34
  const renderOpts = editRender || cellRender;
26
35
  const compConf = renderOpts ? renderer.get(renderOpts.name) : null;
27
- const showAllTip = tooltipOpts.showAll || tooltipOpts.enabled;
36
+ const showAllTip = tooltipOpts.showAll;
28
37
  const isColGroup = column.children && column.children.length;
29
38
  const fixedHiddenColumn = fixedType ? column.fixed !== fixedType && !isColGroup : column.fixed && overflowX;
30
- const footOverflow = XEUtils.isUndefined(showFooterOverflow) || XEUtils.isNull(showFooterOverflow) ? allColumnFooterOverflow : showFooterOverflow;
39
+ const footOverflow = XEUtils.eqNull(showFooterOverflow) ? allColumnFooterOverflow : showFooterOverflow;
31
40
  const footAlign = footerAlign || (compConf ? compConf.tableFooterCellAlign : '') || allFooterAlign || align || (compConf ? compConf.tableCellAlign : '') || allAlign;
32
41
  let showEllipsis = footOverflow === 'ellipsis';
33
42
  const showTitle = footOverflow === 'title';
@@ -35,13 +44,14 @@ function renderRows(h, _vm, tableColumn, footerTableData, row, $rowIndex, _rowIn
35
44
  let hasEllipsis = showTitle || showTooltip || showEllipsis;
36
45
  const attrs = { colid: column.id };
37
46
  const tfOns = {};
38
- const columnIndex = $xetable.getColumnIndex(column);
39
- const _columnIndex = $xetable.getVTColumnIndex(column);
47
+ const columnIndex = $xeTable.getColumnIndex(column);
48
+ const _columnIndex = $xeTable.getVTColumnIndex(column);
40
49
  const itemIndex = _columnIndex;
41
50
  const cellParams = {
42
- $table: $xetable,
43
- $grid: $xetable.xegrid,
51
+ $table: $xeTable,
52
+ $grid: $xeTable.xegrid,
44
53
  row,
54
+ rowIndex: _rowIndex,
45
55
  _rowIndex,
46
56
  $rowIndex,
47
57
  column,
@@ -54,7 +64,7 @@ function renderRows(h, _vm, tableColumn, footerTableData, row, $rowIndex, _rowIn
54
64
  type: renderType,
55
65
  data: footerTableData
56
66
  };
57
- // 虚拟滚动不支持动态高度
67
+ // 纵向虚拟滚动不支持动态行高
58
68
  if (scrollXLoad && !hasEllipsis) {
59
69
  showEllipsis = hasEllipsis = true;
60
70
  }
@@ -64,27 +74,23 @@ function renderRows(h, _vm, tableColumn, footerTableData, row, $rowIndex, _rowIn
64
74
  updateCellTitle(evnt.currentTarget, column);
65
75
  }
66
76
  else if (showTooltip || showAllTip) {
67
- $xetable.triggerFooterTooltipEvent(evnt, cellParams);
77
+ $xeTable.triggerFooterTooltipEvent(evnt, cellParams);
68
78
  }
69
79
  };
70
80
  }
71
81
  if (showTooltip || showAllTip) {
72
82
  tfOns.mouseleave = (evnt) => {
73
83
  if (showTooltip || showAllTip) {
74
- $xetable.handleTargetLeaveEvent(evnt);
84
+ $xeTable.handleTargetLeaveEvent(evnt);
75
85
  }
76
86
  };
77
87
  }
78
- if (tableListeners['footer-cell-click']) {
79
- tfOns.click = (evnt) => {
80
- $xetable.emitEvent('footer-cell-click', Object.assign({ cell: evnt.currentTarget }, cellParams), evnt);
81
- };
82
- }
83
- if (tableListeners['footer-cell-dblclick']) {
84
- tfOns.dblclick = (evnt) => {
85
- $xetable.emitEvent('footer-cell-dblclick', Object.assign({ cell: evnt.currentTarget }, cellParams), evnt);
86
- };
87
- }
88
+ tfOns.click = (evnt) => {
89
+ $xeTable.dispatchEvent('footer-cell-click', Object.assign({ cell: evnt.currentTarget }, cellParams), evnt);
90
+ };
91
+ tfOns.dblclick = (evnt) => {
92
+ $xeTable.dispatchEvent('footer-cell-dblclick', Object.assign({ cell: evnt.currentTarget }, cellParams), evnt);
93
+ };
88
94
  // 合并行或列
89
95
  if (mergeFooterList.length) {
90
96
  const spanRest = mergeFooterMethod(mergeFooterList, _rowIndex, _columnIndex);
@@ -115,6 +121,10 @@ function renderRows(h, _vm, tableColumn, footerTableData, row, $rowIndex, _rowIn
115
121
  }
116
122
  }
117
123
  const isAutoCellWidth = !column.resizeWidth && (column.minWidth === 'auto' || column.width === 'auto');
124
+ let isPreLoadStatus = false;
125
+ if (scrollXLoad && !column.fixed && (_columnIndex < scrollXStore.visibleStartIndex || _columnIndex > scrollXStore.visibleEndIndex)) {
126
+ isPreLoadStatus = true;
127
+ }
118
128
  return h('td', {
119
129
  class: ['vxe-footer--column', column.id, {
120
130
  [`col--${footAlign}`]: footAlign,
@@ -126,7 +136,7 @@ function renderRows(h, _vm, tableColumn, footerTableData, row, $rowIndex, _rowIn
126
136
  'col--current': currentColumn === column
127
137
  }, getClass(footerClassName, cellParams), getClass(footerCellClassName, cellParams)],
128
138
  attrs,
129
- style: footerCellStyle ? (XEUtils.isFunction(footerCellStyle) ? footerCellStyle(cellParams) : footerCellStyle) : null,
139
+ style: footerCellStyle ? (XEUtils.isFunction(footerCellStyle) ? footerCellStyle(cellParams) : footerCellStyle) : undefined,
130
140
  on: tfOns,
131
141
  key: columnKey || scrollXLoad || scrollYLoad || columnOpts.useKey || columnOpts.drag ? column.id : $columnIndex
132
142
  }, [
@@ -136,24 +146,20 @@ function renderRows(h, _vm, tableColumn, footerTableData, row, $rowIndex, _rowIn
136
146
  'c--tooltip': showTooltip,
137
147
  'c--ellipsis': showEllipsis
138
148
  }]
139
- }, column.renderFooter(h, cellParams))
149
+ }, isPreLoadStatus ? [] : column.renderFooter(h, cellParams))
140
150
  ]);
141
- }).concat(scrollbarWidth
142
- ? [
143
- h('td', {
144
- key: `gr${$rowIndex}`,
145
- class: 'vxe-footer--gutter col--gutter'
146
- })
147
- ]
148
- : []);
151
+ });
149
152
  }
150
153
  function renderHeads(h, _vm, renderColumnList) {
151
- const $xeTable = _vm.$parent;
152
154
  const props = _vm;
155
+ const $xeTable = _vm.$parent;
156
+ const tableProps = $xeTable;
157
+ const tableReactData = $xeTable;
158
+ const { fixedType, footerTableData } = props;
159
+ const { footerRowClassName, footerRowStyle } = tableProps;
160
+ const { isDragColMove } = tableReactData;
153
161
  const columnOpts = $xeTable.computeColumnOpts;
154
162
  const columnDragOpts = $xeTable.computeColumnDragOpts;
155
- const { fixedType, footerTableData } = props;
156
- const { footerRowClassName, footerRowStyle, isDragColMove } = $xeTable;
157
163
  return footerTableData.map((row, $rowIndex) => {
158
164
  const _rowIndex = $rowIndex;
159
165
  const rowParams = { $table: $xeTable, row, _rowIndex, $rowIndex, fixed: fixedType, type: renderType };
@@ -167,7 +173,7 @@ function renderHeads(h, _vm, renderColumnList) {
167
173
  'vxe-footer--row',
168
174
  footerRowClassName ? XEUtils.isFunction(footerRowClassName) ? footerRowClassName(rowParams) : footerRowClassName : ''
169
175
  ],
170
- style: footerRowStyle ? (XEUtils.isFunction(footerRowStyle) ? footerRowStyle(rowParams) : footerRowStyle) : null
176
+ style: footerRowStyle ? (XEUtils.isFunction(footerRowStyle) ? footerRowStyle(rowParams) : footerRowStyle) : undefined
171
177
  }
172
178
  }, renderRows(h, _vm, renderColumnList, footerTableData, row, $rowIndex, _rowIndex));
173
179
  }
@@ -177,34 +183,54 @@ function renderHeads(h, _vm, renderColumnList) {
177
183
  'vxe-footer--row',
178
184
  footerRowClassName ? XEUtils.isFunction(footerRowClassName) ? footerRowClassName(rowParams) : footerRowClassName : ''
179
185
  ],
180
- style: footerRowStyle ? (XEUtils.isFunction(footerRowStyle) ? footerRowStyle(rowParams) : footerRowStyle) : null
186
+ style: footerRowStyle ? (XEUtils.isFunction(footerRowStyle) ? footerRowStyle(rowParams) : footerRowStyle) : undefined
181
187
  }, renderRows(h, _vm, renderColumnList, footerTableData, row, $rowIndex, _rowIndex));
182
188
  });
183
189
  }
184
190
  export default {
185
191
  name: 'VxeTableFooter',
186
192
  props: {
187
- footerTableData: Array,
188
- tableColumn: Array,
189
- fixedColumn: Array,
190
- fixedType: String,
191
- size: String
193
+ footerTableData: {
194
+ type: Array,
195
+ default: () => []
196
+ },
197
+ tableColumn: {
198
+ type: Array,
199
+ default: () => []
200
+ },
201
+ fixedColumn: {
202
+ type: Array,
203
+ default: () => []
204
+ },
205
+ fixedType: {
206
+ type: String,
207
+ default: null
208
+ }
192
209
  },
193
210
  mounted() {
194
- const { $parent: $xetable, $el, $refs, fixedType } = this;
195
- const { elemStore } = $xetable;
211
+ const _vm = this;
212
+ const props = _vm;
213
+ const $xeTable = _vm.$parent;
214
+ const tableInternalData = $xeTable;
215
+ const { fixedType } = props;
216
+ const { elemStore } = tableInternalData;
196
217
  const prefix = `${fixedType || 'main'}-footer-`;
197
- elemStore[`${prefix}wrapper`] = $el;
198
- elemStore[`${prefix}table`] = $refs.table;
199
- elemStore[`${prefix}colgroup`] = $refs.colgroup;
200
- elemStore[`${prefix}list`] = $refs.tfoot;
201
- elemStore[`${prefix}xSpace`] = $refs.xSpace;
218
+ elemStore[`${prefix}wrapper`] = _vm.$refs.refElem;
219
+ elemStore[`${prefix}scroll`] = _vm.$refs.refFooterScroll;
220
+ elemStore[`${prefix}table`] = _vm.$refs.refFooterTable;
221
+ elemStore[`${prefix}colgroup`] = _vm.$refs.refFooterColgroup;
222
+ elemStore[`${prefix}list`] = _vm.$refs.refFooterTFoot;
223
+ elemStore[`${prefix}xSpace`] = _vm.$refs.refFooterXSpace;
202
224
  },
203
225
  destroyed() {
204
- const { $parent: $xetable, fixedType } = this;
205
- const { elemStore } = $xetable;
226
+ const props = this;
227
+ const $xeTable = this.$parent;
228
+ const tableInternalData = $xeTable;
229
+ const { fixedType } = props;
230
+ const { elemStore } = tableInternalData;
206
231
  const prefix = `${fixedType || 'main'}-footer-`;
207
232
  elemStore[`${prefix}wrapper`] = null;
233
+ elemStore[`${prefix}scroll`] = null;
208
234
  elemStore[`${prefix}table`] = null;
209
235
  elemStore[`${prefix}colgroup`] = null;
210
236
  elemStore[`${prefix}list`] = null;
@@ -216,26 +242,26 @@ export default {
216
242
  const tableProps = $xeTable;
217
243
  const tableReactData = $xeTable;
218
244
  const tableInternalData = $xeTable;
219
- const { tId } = $xeTable;
245
+ const { xID } = $xeTable;
220
246
  const { fixedType, fixedColumn, tableColumn } = props;
221
247
  const { spanMethod, footerSpanMethod, showFooterOverflow: allColumnFooterOverflow } = tableProps;
222
248
  const { visibleColumn, fullColumnIdData } = tableInternalData;
223
- const { isGroup, scrollXLoad, scrollYLoad, scrollbarWidth, dragCol } = tableReactData;
249
+ const { isGroup, scrollXLoad, scrollYLoad, dragCol } = tableReactData;
224
250
  let renderColumnList = tableColumn;
251
+ let isOptimizeMode = false;
225
252
  // 如果是使用优化模式
226
- if (fixedType) {
227
- // 如果是使用优化模式
228
- if (scrollXLoad || scrollYLoad || allColumnFooterOverflow) {
253
+ if (scrollXLoad || scrollYLoad || allColumnFooterOverflow) {
254
+ if (spanMethod || footerSpanMethod) {
229
255
  // 如果不支持优化模式
230
- if (spanMethod || footerSpanMethod) {
231
- renderColumnList = visibleColumn;
232
- }
233
- else {
234
- renderColumnList = fixedColumn || [];
235
- }
236
256
  }
237
257
  else {
238
- renderColumnList = visibleColumn;
258
+ isOptimizeMode = true;
259
+ }
260
+ }
261
+ if (fixedType) {
262
+ renderColumnList = visibleColumn;
263
+ if (isOptimizeMode) {
264
+ renderColumnList = fixedColumn || [];
239
265
  }
240
266
  }
241
267
  if (!fixedType && !isGroup) {
@@ -263,104 +289,59 @@ export default {
263
289
  }
264
290
  }
265
291
  }
266
- const ons = {};
267
- if (!fixedType) {
268
- ons.scroll = this.scrollEvent;
269
- }
270
292
  return h('div', {
293
+ ref: 'refElem',
271
294
  class: ['vxe-table--footer-wrapper', fixedType ? `fixed-${fixedType}--wrapper` : 'body--wrapper'],
272
295
  attrs: {
273
- xid: tId
274
- },
275
- on: ons
296
+ xid: xID
297
+ }
276
298
  }, [
277
- fixedType
278
- ? renderEmptyElement($xeTable)
279
- : h('div', {
280
- class: 'vxe-body--x-space',
281
- ref: 'xSpace'
282
- }),
283
- h('table', {
284
- class: 'vxe-table--footer',
285
- attrs: {
286
- xid: tId,
287
- cellspacing: 0,
288
- cellpadding: 0,
289
- border: 0
290
- },
291
- ref: 'table'
299
+ h('div', {
300
+ ref: 'refFooterScroll',
301
+ class: 'vxe-table--footer-inner-wrapper',
302
+ on: {
303
+ scroll(evnt) {
304
+ $xeTable.triggerFooterScrollEvent(evnt, fixedType);
305
+ }
306
+ }
292
307
  }, [
293
- /**
294
- * 列宽
295
- */
296
- h('colgroup', {
297
- ref: 'colgroup'
298
- }, renderColumnList.map((column, $columnIndex) => {
299
- return h('col', {
300
- attrs: {
301
- name: column.id
302
- },
303
- key: $columnIndex
304
- });
305
- }).concat(scrollbarWidth
306
- ? [
307
- h('col', {
308
+ fixedType
309
+ ? renderEmptyElement($xeTable)
310
+ : h('div', {
311
+ ref: 'refFooterXSpace',
312
+ class: 'vxe-body--x-space'
313
+ }),
314
+ h('table', {
315
+ ref: 'refFooterTable',
316
+ class: 'vxe-table--footer',
317
+ attrs: {
318
+ xid: xID,
319
+ cellspacing: 0,
320
+ cellpadding: 0,
321
+ border: 0
322
+ }
323
+ }, [
324
+ /**
325
+ * 列宽
326
+ */
327
+ h('colgroup', {
328
+ ref: 'refFooterColgroup'
329
+ }, renderColumnList.map((column, $columnIndex) => {
330
+ return h('col', {
308
331
  attrs: {
309
- name: 'col_gutter'
310
- }
311
- })
312
- ]
313
- : [])),
314
- /**
315
- * 底部
316
- */
317
- h('tfoot', {
318
- ref: 'tfoot'
319
- }, renderHeads(h, this, renderColumnList))
332
+ name: column.id
333
+ },
334
+ key: $columnIndex
335
+ });
336
+ })),
337
+ /**
338
+ * 底部
339
+ */
340
+ h('tfoot', {
341
+ ref: 'refFooterTFoot'
342
+ }, renderHeads(h, this, renderColumnList))
343
+ ])
320
344
  ])
321
345
  ]);
322
- },
323
- methods: {
324
- /**
325
- * 滚动处理
326
- * 如果存在列固定左侧,同步更新滚动状态
327
- * 如果存在列固定右侧,同步更新滚动状态
328
- */
329
- scrollEvent(evnt) {
330
- const $xeTable = this.$parent;
331
- const tableInternalData = $xeTable;
332
- const { inVirtualScroll, inBodyScroll } = tableInternalData;
333
- if (inVirtualScroll) {
334
- return;
335
- }
336
- if (inBodyScroll) {
337
- return;
338
- }
339
- const { fixedType } = this;
340
- const { tableHeader, tableBody, tableFooter } = $xeTable.$refs;
341
- const headerElem = tableHeader ? tableHeader.$el : null;
342
- const footerElem = tableFooter ? tableFooter.$el : null;
343
- if (!footerElem) {
344
- return;
345
- }
346
- const bodyElem = tableBody ? tableBody.$el : null;
347
- if (!bodyElem) {
348
- return;
349
- }
350
- const xHandleEl = $xeTable.$refs.refScrollXHandleElem;
351
- const scrollLeft = footerElem.scrollLeft;
352
- const isRollX = true;
353
- const isRollY = false;
354
- const scrollTop = bodyElem.scrollTop;
355
- tableInternalData.inFooterScroll = true;
356
- setScrollLeft(xHandleEl, scrollLeft);
357
- setScrollLeft(headerElem, scrollLeft);
358
- setScrollLeft(bodyElem, scrollLeft);
359
- $xeTable.triggerScrollXEvent(evnt);
360
- $xeTable.handleScrollEvent(evnt, isRollY, isRollX, scrollTop, scrollLeft, {
361
- type: renderType,
362
- fixed: fixedType
363
- });
364
- }
365
346
  }
366
347
  };