vxe-table 3.12.15 → 3.12.17

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 (48) hide show
  1. package/es/index.css +1 -1
  2. package/es/index.min.css +1 -1
  3. package/es/style.css +1 -1
  4. package/es/style.min.css +1 -1
  5. package/es/table/module/edit/mixin.js +224 -158
  6. package/es/table/src/body.js +60 -47
  7. package/es/table/src/methods.js +166 -36
  8. package/es/table/src/table.js +101 -23
  9. package/es/table/style.css +26 -0
  10. package/es/table/style.min.css +1 -1
  11. package/es/ui/index.js +1 -1
  12. package/es/ui/src/log.js +1 -1
  13. package/es/vxe-table/style.css +26 -0
  14. package/es/vxe-table/style.min.css +1 -1
  15. package/lib/index.css +1 -1
  16. package/lib/index.min.css +1 -1
  17. package/lib/index.umd.js +730 -391
  18. package/lib/index.umd.min.js +1 -1
  19. package/lib/style.css +1 -1
  20. package/lib/style.min.css +1 -1
  21. package/lib/table/module/edit/mixin.js +278 -215
  22. package/lib/table/module/edit/mixin.min.js +1 -1
  23. package/lib/table/src/body.js +71 -59
  24. package/lib/table/src/body.min.js +1 -1
  25. package/lib/table/src/methods.js +199 -37
  26. package/lib/table/src/methods.min.js +1 -1
  27. package/lib/table/src/table.js +126 -24
  28. package/lib/table/src/table.min.js +1 -1
  29. package/lib/table/style/style.css +26 -0
  30. package/lib/table/style/style.min.css +1 -1
  31. package/lib/ui/index.js +1 -1
  32. package/lib/ui/index.min.js +1 -1
  33. package/lib/ui/src/log.js +1 -1
  34. package/lib/ui/src/log.min.js +1 -1
  35. package/lib/vxe-table/style/style.css +26 -0
  36. package/lib/vxe-table/style/style.min.css +1 -1
  37. package/package.json +1 -1
  38. package/packages/table/module/edit/mixin.ts +242 -159
  39. package/packages/table/src/body.ts +62 -48
  40. package/packages/table/src/methods.ts +170 -36
  41. package/packages/table/src/table.ts +108 -24
  42. package/styles/components/table.scss +26 -0
  43. /package/es/{iconfont.1739257460253.ttf → iconfont.1739428244406.ttf} +0 -0
  44. /package/es/{iconfont.1739257460253.woff → iconfont.1739428244406.woff} +0 -0
  45. /package/es/{iconfont.1739257460253.woff2 → iconfont.1739428244406.woff2} +0 -0
  46. /package/lib/{iconfont.1739257460253.ttf → iconfont.1739428244406.ttf} +0 -0
  47. /package/lib/{iconfont.1739257460253.woff → iconfont.1739428244406.woff} +0 -0
  48. /package/lib/{iconfont.1739257460253.woff2 → iconfont.1739428244406.woff2} +0 -0
@@ -393,7 +393,8 @@ function updateAfterListIndex($xeTable) {
393
393
  level: 0,
394
394
  height: 0,
395
395
  resizeHeight: 0,
396
- oTop: 0
396
+ oTop: 0,
397
+ expandHeight: 0
397
398
  };
398
399
  fullAllDataRowIdData[rowid] = rest;
399
400
  fullDataRowIdData[rowid] = rest;
@@ -445,7 +446,8 @@ function updateAfterDataIndex($xeTable) {
445
446
  level: 0,
446
447
  height: 0,
447
448
  resizeHeight: 0,
448
- oTop: 0
449
+ oTop: 0,
450
+ expandHeight: 0
449
451
  };
450
452
  fullAllDataRowIdData[rowid] = rest;
451
453
  fullDataRowIdData[rowid] = rest;
@@ -551,6 +553,7 @@ function updateStyle($xeTable) {
551
553
  const emptyPlaceholderElem = $xeTable.$refs.refEmptyPlaceholder;
552
554
  const cellOffsetWidth = $xeTable.computeCellOffsetWidth;
553
555
  const mouseOpts = $xeTable.computeMouseOpts;
556
+ const expandOpts = $xeTable.computeExpandOpts;
554
557
  const bodyWrapperElem = (0, _util.getRefElem)(elemStore['main-body-wrapper']);
555
558
  const bodyTableElem = (0, _util.getRefElem)(elemStore['main-body-table']);
556
559
  if (emptyPlaceholderElem) {
@@ -620,6 +623,11 @@ function updateStyle($xeTable) {
620
623
  yBottomCornerEl.style.top = `${headerHeight + bodyHeight}px`;
621
624
  yBottomCornerEl.style.display = footerHeight ? 'block' : '';
622
625
  }
626
+ const rowExpandEl = $xeTable.$refs.refRowExpandElem;
627
+ if (rowExpandEl) {
628
+ rowExpandEl.style.height = `${bodyHeight}px`;
629
+ rowExpandEl.style.top = `${headerHeight}px`;
630
+ }
623
631
  containerList.forEach((name, index) => {
624
632
  const fixedType = index > 0 ? name : '';
625
633
  const layoutList = ['header', 'body', 'footer'];
@@ -729,7 +737,7 @@ function updateStyle($xeTable) {
729
737
  let isOptimizeMode = false;
730
738
  // 如果是使用优化模式
731
739
  if (scrollXLoad || scrollYLoad || isAllOverflow) {
732
- if (expandColumn || spanMethod || footerSpanMethod) {
740
+ if (expandColumn && expandOpts.mode !== 'fixed' || spanMethod || footerSpanMethod) {
733
741
  // 如果不支持优化模式
734
742
  } else {
735
743
  isOptimizeMode = true;
@@ -855,6 +863,15 @@ function updateStyle($xeTable) {
855
863
  }
856
864
  return $xeTable.$nextTick();
857
865
  }
866
+ function calcVarRowHeightConfig($xeTable, sizeKey, sizeEl) {
867
+ const reactData = $xeTable;
868
+ const {
869
+ rowHeightStore
870
+ } = reactData;
871
+ if (sizeEl && sizeEl.clientHeight) {
872
+ rowHeightStore[sizeKey] = sizeEl.clientHeight;
873
+ }
874
+ }
858
875
  function computeRowHeight($xeTable) {
859
876
  const reactData = $xeTable;
860
877
  const {
@@ -890,7 +907,9 @@ function handleVirtualYVisible($xeTable, currScrollTop) {
890
907
  const reactData = $xeTable;
891
908
  const internalData = $xeTable;
892
909
  const {
893
- isAllOverflow
910
+ isAllOverflow,
911
+ expandColumn,
912
+ rowExpandedMaps
894
913
  } = reactData;
895
914
  const {
896
915
  elemStore,
@@ -898,6 +917,7 @@ function handleVirtualYVisible($xeTable, currScrollTop) {
898
917
  afterFullData,
899
918
  fullAllDataRowIdData
900
919
  } = internalData;
920
+ const expandOpts = $xeTable.computeExpandOpts;
901
921
  const rowOpts = $xeTable.computeRowOpts;
902
922
  const cellOpts = $xeTable.computeCellOpts;
903
923
  const defaultRowHeight = $xeTable.computeDefaultRowHeight;
@@ -910,7 +930,7 @@ function handleVirtualYVisible($xeTable, currScrollTop) {
910
930
  let offsetTop = 0;
911
931
  let visibleSize = 0;
912
932
  const isCustomCellHeight = isResizeCellHeight || cellOpts.height || rowOpts.height;
913
- if (!isCustomCellHeight && isAllOverflow) {
933
+ if (!isCustomCellHeight && !expandColumn && isAllOverflow) {
914
934
  toVisibleIndex = Math.floor(scrollTop / defaultRowHeight);
915
935
  visibleSize = Math.ceil(clientHeight / defaultRowHeight) + 1;
916
936
  } else {
@@ -928,6 +948,10 @@ function handleVirtualYVisible($xeTable, currScrollTop) {
928
948
  break;
929
949
  }
930
950
  }
951
+ // 是否展开行
952
+ if (expandColumn && rowExpandedMaps[rowid]) {
953
+ offsetTop += rowRest.expandHeight || expandOpts.height || 0;
954
+ }
931
955
  }
932
956
  }
933
957
  return {
@@ -1627,9 +1651,18 @@ function handleRecalculateLayout($xeTable, reFull) {
1627
1651
  if (!el || !el.clientWidth) {
1628
1652
  return $xeTable.$nextTick();
1629
1653
  }
1654
+ const varEl = $xeTable.$refs.refVarElem;
1655
+ if (varEl) {
1656
+ const [defEl, mediumEl, smallEl, miniEl] = varEl.children;
1657
+ calcVarRowHeightConfig($xeTable, 'default', defEl);
1658
+ calcVarRowHeightConfig($xeTable, 'medium', mediumEl);
1659
+ calcVarRowHeightConfig($xeTable, 'small', smallEl);
1660
+ calcVarRowHeightConfig($xeTable, 'mini', miniEl);
1661
+ }
1630
1662
  calcCellWidth($xeTable);
1631
1663
  autoCellWidth($xeTable);
1632
1664
  updateStyle($xeTable);
1665
+ updateRowExpandStyle($xeTable);
1633
1666
  return computeScrollLoad($xeTable).then(() => {
1634
1667
  if (reFull === true) {
1635
1668
  // 初始化时需要在列计算之后再执行优化运算,达到最优显示效果
@@ -1637,6 +1670,7 @@ function handleRecalculateLayout($xeTable, reFull) {
1637
1670
  calcCellWidth($xeTable);
1638
1671
  autoCellWidth($xeTable);
1639
1672
  updateStyle($xeTable);
1673
+ updateRowExpandStyle($xeTable);
1640
1674
  return computeScrollLoad($xeTable);
1641
1675
  }
1642
1676
  });
@@ -2119,7 +2153,7 @@ function calcCellWidth($xeTable) {
2119
2153
  el.removeAttribute('data-calc-col');
2120
2154
  }
2121
2155
  }
2122
- const handleUpdateColResize = ($xeTable, evnt, params) => {
2156
+ function handleUpdateColResize($xeTable, evnt, params) {
2123
2157
  $xeTable.analyColumnWidth();
2124
2158
  $xeTable.recalculate(true).then(() => {
2125
2159
  $xeTable.saveCustomStore('update:width');
@@ -2129,8 +2163,8 @@ const handleUpdateColResize = ($xeTable, evnt, params) => {
2129
2163
  $xeTable.dispatchEvent('resizable-change', params, evnt);
2130
2164
  setTimeout(() => $xeTable.recalculate(true), 300);
2131
2165
  });
2132
- };
2133
- const handleUpdateRowResize = ($xeTable, evnt, params) => {
2166
+ }
2167
+ function handleUpdateRowResize($xeTable, evnt, params) {
2134
2168
  const reactData = $xeTable;
2135
2169
  reactData.resizeHeightFlag++;
2136
2170
  $xeTable.recalculate(true).then(() => {
@@ -2138,7 +2172,74 @@ const handleUpdateRowResize = ($xeTable, evnt, params) => {
2138
2172
  $xeTable.dispatchEvent('row-resizable-change', params, evnt);
2139
2173
  setTimeout(() => $xeTable.recalculate(true), 300);
2140
2174
  });
2141
- };
2175
+ }
2176
+ function updateRowExpandStyle($xeTable) {
2177
+ const reactData = $xeTable;
2178
+ const internalData = $xeTable;
2179
+ const {
2180
+ expandColumn,
2181
+ scrollYLoad,
2182
+ rowExpandedMaps
2183
+ } = reactData;
2184
+ const expandOpts = $xeTable.computeExpandOpts;
2185
+ const rowOpts = $xeTable.computeRowOpts;
2186
+ const cellOpts = $xeTable.computeCellOpts;
2187
+ const defaultRowHeight = $xeTable.computeDefaultRowHeight;
2188
+ const {
2189
+ mode
2190
+ } = expandOpts;
2191
+ if (expandColumn && mode === 'fixed') {
2192
+ const {
2193
+ elemStore,
2194
+ afterFullData,
2195
+ fullAllDataRowIdData
2196
+ } = internalData;
2197
+ const rowExpandEl = $xeTable.$refs.refRowExpandElem;
2198
+ const bodyScrollElem = (0, _util.getRefElem)(elemStore['main-body-scroll']);
2199
+ if (rowExpandEl && bodyScrollElem) {
2200
+ let isUpdateHeight = false;
2201
+ if (scrollYLoad) {
2202
+ let offsetTop = 0;
2203
+ for (let rIndex = 0, rLen = afterFullData.length; rIndex < rLen; rIndex++) {
2204
+ const row = afterFullData[rIndex];
2205
+ const rowid = (0, _util.getRowid)($xeTable, row);
2206
+ const rowRest = fullAllDataRowIdData[rowid] || {};
2207
+ rowRest.oTop = offsetTop;
2208
+ offsetTop += rowRest.resizeHeight || cellOpts.height || rowOpts.height || rowRest.height || defaultRowHeight;
2209
+ // 是否展开行
2210
+ if (expandColumn && rowExpandedMaps[rowid]) {
2211
+ offsetTop += rowRest.expandHeight || expandOpts.height || 0;
2212
+ }
2213
+ }
2214
+ }
2215
+ _xeUtils.default.arrayEach(rowExpandEl.children, reEl => {
2216
+ const expandEl = reEl;
2217
+ const rowid = expandEl.getAttribute('rowid') || '';
2218
+ const rowRest = fullAllDataRowIdData[rowid];
2219
+ if (rowRest) {
2220
+ const expandHeight = expandEl.offsetHeight + 1;
2221
+ if (scrollYLoad) {
2222
+ expandEl.style.top = (0, _dom.toCssUnit)(rowRest.oTop + (rowRest.resizeHeight || cellOpts.height || rowOpts.height || rowRest.height || defaultRowHeight));
2223
+ } else {
2224
+ const trEl = bodyScrollElem.querySelector(`.vxe-body--row[rowid="${rowid}"]`);
2225
+ if (trEl) {
2226
+ expandEl.style.top = (0, _dom.toCssUnit)(trEl.offsetTop + trEl.offsetHeight);
2227
+ }
2228
+ }
2229
+ if (!isUpdateHeight) {
2230
+ if (rowRest.expandHeight !== expandHeight) {
2231
+ isUpdateHeight = true;
2232
+ }
2233
+ }
2234
+ rowRest.expandHeight = expandHeight;
2235
+ }
2236
+ });
2237
+ if (isUpdateHeight) {
2238
+ reactData.rowExpandHeightFlag++;
2239
+ }
2240
+ }
2241
+ }
2242
+ }
2142
2243
  const Methods = {
2143
2244
  callSlot(slotFunc, params, h, vNodes) {
2144
2245
  if (slotFunc) {
@@ -2567,7 +2668,8 @@ const Methods = {
2567
2668
  level,
2568
2669
  height: 0,
2569
2670
  resizeHeight: 0,
2570
- oTop: 0
2671
+ oTop: 0,
2672
+ expandHeight: 0
2571
2673
  };
2572
2674
  }
2573
2675
  cacheItem.row = row;
@@ -2673,7 +2775,8 @@ const Methods = {
2673
2775
  level: parentLevel + nodes.length,
2674
2776
  height: 0,
2675
2777
  resizeHeight: 0,
2676
- oTop: 0
2778
+ oTop: 0,
2779
+ expandHeight: 0
2677
2780
  };
2678
2781
  fullDataRowIdData[rowid] = rest;
2679
2782
  fullAllDataRowIdData[rowid] = rest;
@@ -4778,6 +4881,7 @@ const Methods = {
4778
4881
  const el = $xeTable.$refs.refElem;
4779
4882
  if (el && el.clientWidth) {
4780
4883
  autoCellWidth($xeTable);
4884
+ updateRowExpandStyle($xeTable);
4781
4885
  }
4782
4886
  if (rceTimeout) {
4783
4887
  clearTimeout(rceTimeout);
@@ -7989,6 +8093,19 @@ const Methods = {
7989
8093
  reactData.pendingRowMaps = pendingMaps;
7990
8094
  return $xeTable.$nextTick();
7991
8095
  },
8096
+ hasPendingByRow(row) {
8097
+ const $xeTable = this;
8098
+ return $xeTable.isPendingByRow(row);
8099
+ },
8100
+ isPendingByRow(row) {
8101
+ const $xeTable = this;
8102
+ const reactData = $xeTable;
8103
+ const {
8104
+ pendingRowMaps
8105
+ } = reactData;
8106
+ const rowid = (0, _util.getRowid)($xeTable, row);
8107
+ return !!pendingRowMaps[rowid];
8108
+ },
7992
8109
  getPendingRecords() {
7993
8110
  const $xeTable = this;
7994
8111
  const reactData = $xeTable;
@@ -8007,13 +8124,6 @@ const Methods = {
8007
8124
  });
8008
8125
  return insertRecords;
8009
8126
  },
8010
- hasPendingByRow(row) {
8011
- const {
8012
- pendingRowMaps
8013
- } = this;
8014
- const rowid = (0, _util.getRowid)(this, row);
8015
- return !!pendingRowMaps[rowid];
8016
- },
8017
8127
  clearPendingRow() {
8018
8128
  this.pendingRowMaps = {};
8019
8129
  return this.$nextTick();
@@ -9151,6 +9261,7 @@ const Methods = {
9151
9261
  isRight,
9152
9262
  direction
9153
9263
  }, params);
9264
+ updateRowExpandStyle($xeTable);
9154
9265
  checkLastSyncScroll($xeTable, isRollX, isRollY);
9155
9266
  if (rowOpts.isHover || highlightHoverRow) {
9156
9267
  $xeTable.clearHoverRow();
@@ -9192,7 +9303,12 @@ const Methods = {
9192
9303
  },
9193
9304
  triggerBodyScrollEvent(evnt, fixedType) {
9194
9305
  const $xeTable = this;
9306
+ const reactData = $xeTable;
9195
9307
  const internalData = $xeTable;
9308
+ const {
9309
+ scrollYLoad,
9310
+ scrollXLoad
9311
+ } = reactData;
9196
9312
  const {
9197
9313
  elemStore,
9198
9314
  intoRunScroll,
@@ -9212,6 +9328,7 @@ const Methods = {
9212
9328
  const rightScrollElem = (0, _util.getRefElem)(elemStore['right-body-scroll']);
9213
9329
  const headerScrollElem = (0, _util.getRefElem)(elemStore['main-header-scroll']);
9214
9330
  const footerScrollElem = (0, _util.getRefElem)(elemStore['main-footer-scroll']);
9331
+ const rowExpandEl = $xeTable.$refs.refRowExpandElem;
9215
9332
  if (inWheelScroll || inVirtualScroll || inHeaderScroll || inFooterScroll) {
9216
9333
  return;
9217
9334
  }
@@ -9258,13 +9375,18 @@ const Methods = {
9258
9375
  (0, _dom.setScrollTop)(rightScrollElem, scrollTop);
9259
9376
  }
9260
9377
  (0, _dom.setScrollTop)(yHandleEl, scrollTop);
9261
- $xeTable.triggerScrollYEvent(evnt);
9378
+ (0, _dom.setScrollTop)(rowExpandEl, scrollTop);
9379
+ if (scrollYLoad) {
9380
+ $xeTable.triggerScrollYEvent(evnt);
9381
+ }
9262
9382
  }
9263
9383
  if (isRollX) {
9264
9384
  (0, _dom.setScrollLeft)(xHandleEl, scrollLeft);
9265
9385
  (0, _dom.setScrollLeft)(headerScrollElem, scrollLeft);
9266
9386
  (0, _dom.setScrollLeft)(footerScrollElem, scrollLeft);
9267
- $xeTable.triggerScrollXEvent(evnt);
9387
+ if (scrollXLoad) {
9388
+ $xeTable.triggerScrollXEvent(evnt);
9389
+ }
9268
9390
  }
9269
9391
  $xeTable.handleScrollEvent(evnt, isRollY, isRollX, scrollTop, scrollLeft, {
9270
9392
  type: 'body',
@@ -9273,7 +9395,11 @@ const Methods = {
9273
9395
  },
9274
9396
  triggerHeaderScrollEvent(evnt, fixedType) {
9275
9397
  const $xeTable = this;
9398
+ const reactData = $xeTable;
9276
9399
  const internalData = $xeTable;
9400
+ const {
9401
+ scrollXLoad
9402
+ } = reactData;
9277
9403
  const {
9278
9404
  elemStore,
9279
9405
  intoRunScroll,
@@ -9310,7 +9436,9 @@ const Methods = {
9310
9436
  (0, _dom.setScrollLeft)(xHandleEl, scrollLeft);
9311
9437
  (0, _dom.setScrollLeft)(footerScrollElem, scrollLeft);
9312
9438
  (0, _dom.setScrollLeft)(bodyScrollElem, scrollLeft);
9313
- $xeTable.triggerScrollXEvent(evnt);
9439
+ if (scrollXLoad) {
9440
+ $xeTable.triggerScrollXEvent(evnt);
9441
+ }
9314
9442
  $xeTable.handleScrollEvent(evnt, isRollY, isRollX, scrollTop, scrollLeft, {
9315
9443
  type: 'header',
9316
9444
  fixed: fixedType
@@ -9318,7 +9446,11 @@ const Methods = {
9318
9446
  },
9319
9447
  triggerFooterScrollEvent(evnt, fixedType) {
9320
9448
  const $xeTable = this;
9449
+ const reactData = $xeTable;
9321
9450
  const internalData = $xeTable;
9451
+ const {
9452
+ scrollXLoad
9453
+ } = reactData;
9322
9454
  const {
9323
9455
  elemStore,
9324
9456
  intoRunScroll,
@@ -9355,7 +9487,9 @@ const Methods = {
9355
9487
  (0, _dom.setScrollLeft)(xHandleEl, scrollLeft);
9356
9488
  (0, _dom.setScrollLeft)(headerScrollElem, scrollLeft);
9357
9489
  (0, _dom.setScrollLeft)(bodyScrollElem, scrollLeft);
9358
- $xeTable.triggerScrollXEvent(evnt);
9490
+ if (scrollXLoad) {
9491
+ $xeTable.triggerScrollXEvent(evnt);
9492
+ }
9359
9493
  $xeTable.handleScrollEvent(evnt, isRollY, isRollX, scrollTop, scrollLeft, {
9360
9494
  type: 'footer',
9361
9495
  fixed: fixedType
@@ -9377,6 +9511,9 @@ const Methods = {
9377
9511
  const {
9378
9512
  highlightHoverRow
9379
9513
  } = tableProps;
9514
+ const {
9515
+ scrollYLoad
9516
+ } = reactData;
9380
9517
  const {
9381
9518
  elemStore,
9382
9519
  lastScrollTop,
@@ -9388,6 +9525,7 @@ const Methods = {
9388
9525
  const leftScrollElem = (0, _util.getRefElem)(elemStore['left-body-scroll']);
9389
9526
  const bodyScrollElem = (0, _util.getRefElem)(elemStore['main-body-scroll']);
9390
9527
  const rightScrollElem = (0, _util.getRefElem)(elemStore['right-body-scroll']);
9528
+ const rowExpandEl = $xeTable.$refs.refRowExpandElem;
9391
9529
  if (!xHandleEl) {
9392
9530
  return;
9393
9531
  }
@@ -9423,27 +9561,24 @@ const Methods = {
9423
9561
  (0, _dom.setScrollTop)(bodyScrollElem, currTopNum);
9424
9562
  (0, _dom.setScrollTop)(leftScrollElem, currTopNum);
9425
9563
  (0, _dom.setScrollTop)(rightScrollElem, currTopNum);
9426
- $xeTable.triggerScrollYEvent(evnt);
9564
+ (0, _dom.setScrollTop)(rowExpandEl, currTopNum);
9565
+ if (scrollYLoad) {
9566
+ $xeTable.triggerScrollYEvent(evnt);
9567
+ }
9427
9568
  $xeTable.handleScrollEvent(evnt, isRollY, isRollX, currTopNum, scrollLeft, {
9428
9569
  type: 'table',
9429
9570
  fixed: ''
9430
9571
  });
9431
9572
  });
9432
- // internalData.inWheelScroll = true
9433
- // setScrollTop(yHandleEl, scrollTop)
9434
- // setScrollTop(bodyScrollElem, scrollTop)
9435
- // setScrollTop(leftScrollElem, scrollTop)
9436
- // setScrollTop(rightScrollElem, scrollTop)
9437
- // loadScrollYData($xeTable, scrollTop)
9438
- // $xeTable.handleScrollEvent(evnt, isRollY, isRollX, scrollTop, scrollLeft, {
9439
- // type: 'footer',
9440
- // fixed: ''
9441
- // })
9442
9573
  }
9443
9574
  },
9444
9575
  triggerVirtualScrollXEvent(evnt) {
9445
9576
  const $xeTable = this;
9577
+ const reactData = $xeTable;
9446
9578
  const internalData = $xeTable;
9579
+ const {
9580
+ scrollXLoad
9581
+ } = reactData;
9447
9582
  const {
9448
9583
  elemStore,
9449
9584
  inWheelScroll,
@@ -9477,7 +9612,9 @@ const Methods = {
9477
9612
  (0, _dom.setScrollLeft)(bodyScrollElem, scrollLeft);
9478
9613
  (0, _dom.setScrollLeft)(headerScrollElem, scrollLeft);
9479
9614
  (0, _dom.setScrollLeft)(footerScrollElem, scrollLeft);
9480
- $xeTable.triggerScrollXEvent(evnt);
9615
+ if (scrollXLoad) {
9616
+ $xeTable.triggerScrollXEvent(evnt);
9617
+ }
9481
9618
  $xeTable.handleScrollEvent(evnt, isRollY, isRollX, scrollTop, scrollLeft, {
9482
9619
  type: 'table',
9483
9620
  fixed: ''
@@ -9485,7 +9622,11 @@ const Methods = {
9485
9622
  },
9486
9623
  triggerVirtualScrollYEvent(evnt) {
9487
9624
  const $xeTable = this;
9625
+ const reactData = $xeTable;
9488
9626
  const internalData = $xeTable;
9627
+ const {
9628
+ scrollYLoad
9629
+ } = reactData;
9489
9630
  const {
9490
9631
  elemStore,
9491
9632
  inWheelScroll,
@@ -9503,6 +9644,7 @@ const Methods = {
9503
9644
  const leftScrollElem = (0, _util.getRefElem)(elemStore['left-body-scroll']);
9504
9645
  const bodyScrollElem = (0, _util.getRefElem)(elemStore['main-body-scroll']);
9505
9646
  const rightScrollElem = (0, _util.getRefElem)(elemStore['right-body-scroll']);
9647
+ const rowExpandEl = $xeTable.$refs.refRowExpandElem;
9506
9648
  const xHandleEl = $xeTable.$refs.refScrollXHandleElem;
9507
9649
  const wrapperEl = evnt.currentTarget;
9508
9650
  const {
@@ -9519,7 +9661,10 @@ const Methods = {
9519
9661
  (0, _dom.setScrollTop)(bodyScrollElem, scrollTop);
9520
9662
  (0, _dom.setScrollTop)(leftScrollElem, scrollTop);
9521
9663
  (0, _dom.setScrollTop)(rightScrollElem, scrollTop);
9522
- $xeTable.triggerScrollYEvent(evnt);
9664
+ (0, _dom.setScrollTop)(rowExpandEl, scrollTop);
9665
+ if (scrollYLoad) {
9666
+ $xeTable.triggerScrollYEvent(evnt);
9667
+ }
9523
9668
  $xeTable.handleScrollEvent(evnt, isRollY, isRollX, scrollTop, scrollLeft, {
9524
9669
  type: 'table',
9525
9670
  fixed: ''
@@ -9532,6 +9677,7 @@ const Methods = {
9532
9677
  isAllOverflow
9533
9678
  } = reactData;
9534
9679
  handleTableColumn($xeTable);
9680
+ $xeTable.updateScrollXSpace();
9535
9681
  return $xeTable.$nextTick().then(() => {
9536
9682
  handleTableColumn($xeTable);
9537
9683
  $xeTable.updateScrollXSpace();
@@ -9599,6 +9745,7 @@ const Methods = {
9599
9745
  updateScrollYData() {
9600
9746
  const $xeTable = this;
9601
9747
  $xeTable.handleTableData();
9748
+ $xeTable.updateScrollYSpace();
9602
9749
  return $xeTable.$nextTick().then(() => {
9603
9750
  $xeTable.handleTableData();
9604
9751
  $xeTable.updateScrollYSpace();
@@ -9611,7 +9758,9 @@ const Methods = {
9611
9758
  const internalData = $xeTable;
9612
9759
  const {
9613
9760
  isAllOverflow,
9614
- scrollYLoad
9761
+ scrollYLoad,
9762
+ expandColumn,
9763
+ rowExpandedMaps
9615
9764
  } = reactData;
9616
9765
  const {
9617
9766
  scrollYStore,
@@ -9623,6 +9772,7 @@ const Methods = {
9623
9772
  const {
9624
9773
  startIndex
9625
9774
  } = scrollYStore;
9775
+ const expandOpts = $xeTable.computeExpandOpts;
9626
9776
  const rowOpts = $xeTable.computeRowOpts;
9627
9777
  const cellOpts = $xeTable.computeCellOpts;
9628
9778
  const defaultRowHeight = $xeTable.computeDefaultRowHeight;
@@ -9632,7 +9782,7 @@ const Methods = {
9632
9782
  let ySpaceHeight = 0;
9633
9783
  if (scrollYLoad) {
9634
9784
  const isCustomCellHeight = isResizeCellHeight || cellOpts.height || rowOpts.height;
9635
- if (!isCustomCellHeight && isAllOverflow) {
9785
+ if (!isCustomCellHeight && !expandColumn && isAllOverflow) {
9636
9786
  ySpaceHeight = afterFullData.length * defaultRowHeight;
9637
9787
  topSpaceHeight = Math.max(0, startIndex * defaultRowHeight);
9638
9788
  } else {
@@ -9641,12 +9791,20 @@ const Methods = {
9641
9791
  const rowid = (0, _util.getRowid)($xeTable, row);
9642
9792
  const rowRest = fullAllDataRowIdData[rowid] || {};
9643
9793
  ySpaceHeight += rowRest.resizeHeight || cellOpts.height || rowOpts.height || rowRest.height || defaultRowHeight;
9794
+ // 是否展开行
9795
+ if (expandColumn && rowExpandedMaps[rowid]) {
9796
+ ySpaceHeight += rowRest.expandHeight || expandOpts.height || 0;
9797
+ }
9644
9798
  }
9645
9799
  for (let i = 0; i < startIndex; i++) {
9646
9800
  const row = afterFullData[i];
9647
9801
  const rowid = (0, _util.getRowid)($xeTable, row);
9648
9802
  const rowRest = fullAllDataRowIdData[rowid] || {};
9649
9803
  topSpaceHeight += rowRest.resizeHeight || cellOpts.height || rowOpts.height || rowRest.height || defaultRowHeight;
9804
+ // 是否展开行
9805
+ if (expandColumn && rowExpandedMaps[rowid]) {
9806
+ topSpaceHeight += rowRest.expandHeight || expandOpts.height || 0;
9807
+ }
9650
9808
  }
9651
9809
  }
9652
9810
  } else {
@@ -9671,6 +9829,10 @@ const Methods = {
9671
9829
  if (scrollYSpaceEl) {
9672
9830
  scrollYSpaceEl.style.height = ySpaceHeight ? `${ySpaceHeight}px` : '';
9673
9831
  }
9832
+ const rowExpandYSpaceEl = $xeTable.$refs.refRowExpandYSpaceElem;
9833
+ if (rowExpandYSpaceEl) {
9834
+ rowExpandYSpaceEl.style.height = ySpaceHeight ? `${ySpaceHeight}px` : '';
9835
+ }
9674
9836
  return $xeTable.$nextTick().then(() => {
9675
9837
  updateStyle($xeTable);
9676
9838
  });