vxe-table 4.10.14 → 4.10.15-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 (44) 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/hook.js +5 -5
  6. package/es/table/src/body.js +57 -43
  7. package/es/table/src/table.js +209 -44
  8. package/es/table/style.css +26 -0
  9. package/es/table/style.min.css +1 -1
  10. package/es/ui/index.js +1 -1
  11. package/es/ui/src/log.js +1 -1
  12. package/es/vxe-table/style.css +26 -0
  13. package/es/vxe-table/style.min.css +1 -1
  14. package/lib/index.css +1 -1
  15. package/lib/index.min.css +1 -1
  16. package/lib/index.umd.js +330 -107
  17. package/lib/index.umd.min.js +1 -1
  18. package/lib/style.css +1 -1
  19. package/lib/style.min.css +1 -1
  20. package/lib/table/module/edit/hook.js +10 -5
  21. package/lib/table/module/edit/hook.min.js +1 -1
  22. package/lib/table/src/body.js +65 -58
  23. package/lib/table/src/body.min.js +1 -1
  24. package/lib/table/src/table.js +253 -42
  25. package/lib/table/src/table.min.js +1 -1
  26. package/lib/table/style/style.css +26 -0
  27. package/lib/table/style/style.min.css +1 -1
  28. package/lib/ui/index.js +1 -1
  29. package/lib/ui/index.min.js +1 -1
  30. package/lib/ui/src/log.js +1 -1
  31. package/lib/ui/src/log.min.js +1 -1
  32. package/lib/vxe-table/style/style.css +26 -0
  33. package/lib/vxe-table/style/style.min.css +1 -1
  34. package/package.json +1 -1
  35. package/packages/table/module/edit/hook.ts +5 -5
  36. package/packages/table/src/body.ts +60 -50
  37. package/packages/table/src/table.ts +220 -44
  38. package/styles/components/table.scss +26 -0
  39. /package/es/{iconfont.1739333111603.ttf → iconfont.1739426300784.ttf} +0 -0
  40. /package/es/{iconfont.1739333111603.woff → iconfont.1739426300784.woff} +0 -0
  41. /package/es/{iconfont.1739333111603.woff2 → iconfont.1739426300784.woff2} +0 -0
  42. /package/lib/{iconfont.1739333111603.ttf → iconfont.1739426300784.ttf} +0 -0
  43. /package/lib/{iconfont.1739333111603.woff → iconfont.1739426300784.woff} +0 -0
  44. /package/lib/{iconfont.1739333111603.woff2 → iconfont.1739426300784.woff2} +0 -0
@@ -276,8 +276,9 @@ var _default = exports.default = (0, _vue.defineComponent)({
276
276
  mini: 36
277
277
  },
278
278
  scrollVMLoading: false,
279
+ rowExpandHeightFlag: 1,
279
280
  calcCellHeightFlag: 1,
280
- resizeHeightFlag: 0,
281
+ resizeHeightFlag: 1,
281
282
  isCustomStatus: false,
282
283
  isDragRowMove: false,
283
284
  dragRow: null,
@@ -394,6 +395,8 @@ var _default = exports.default = (0, _vue.defineComponent)({
394
395
  const refDragTipElem = (0, _vue.ref)();
395
396
  const refDragRowLineElem = (0, _vue.ref)();
396
397
  const refDragColLineElem = (0, _vue.ref)();
398
+ const refRowExpandElem = (0, _vue.ref)();
399
+ const refRowExpandYSpaceElem = (0, _vue.ref)();
397
400
  const refScrollXVirtualElem = (0, _vue.ref)();
398
401
  const refScrollYVirtualElem = (0, _vue.ref)();
399
402
  const refScrollXHandleElem = (0, _vue.ref)();
@@ -655,6 +658,26 @@ var _default = exports.default = (0, _vue.defineComponent)({
655
658
  const computeCustomOpts = (0, _vue.computed)(() => {
656
659
  return Object.assign({}, getConfig().table.customConfig, props.customConfig);
657
660
  });
661
+ const computeTableRowExpandedList = (0, _vue.computed)(() => {
662
+ const {
663
+ rowExpandedMaps,
664
+ tableData,
665
+ expandColumn
666
+ } = reactData;
667
+ const expandList = [];
668
+ if (expandColumn) {
669
+ const rowKeys = {};
670
+ tableData.forEach(row => {
671
+ rowKeys[(0, _util.getRowid)($xeTable, row)] = true;
672
+ });
673
+ _xeUtils.default.each(rowExpandedMaps, (row, rowid) => {
674
+ if (rowKeys[rowid]) {
675
+ expandList.push(row);
676
+ }
677
+ });
678
+ }
679
+ return expandList;
680
+ });
658
681
  const computeAutoWidthColumnList = (0, _vue.computed)(() => {
659
682
  const {
660
683
  visibleColumn
@@ -941,6 +964,14 @@ var _default = exports.default = (0, _vue.defineComponent)({
941
964
  visibleSize: 6
942
965
  };
943
966
  };
967
+ const calcVarRowHeightConfig = (sizeKey, sizeEl) => {
968
+ const {
969
+ rowHeightStore
970
+ } = reactData;
971
+ if (sizeEl && sizeEl.clientHeight) {
972
+ rowHeightStore[sizeKey] = sizeEl.clientHeight;
973
+ }
974
+ };
944
975
  const computeRowHeight = () => {
945
976
  const {
946
977
  isAllOverflow
@@ -973,7 +1004,9 @@ var _default = exports.default = (0, _vue.defineComponent)({
973
1004
  };
974
1005
  const handleVirtualYVisible = currScrollTop => {
975
1006
  const {
976
- isAllOverflow
1007
+ isAllOverflow,
1008
+ expandColumn,
1009
+ rowExpandedMaps
977
1010
  } = reactData;
978
1011
  const {
979
1012
  elemStore,
@@ -981,6 +1014,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
981
1014
  afterFullData,
982
1015
  fullAllDataRowIdData
983
1016
  } = internalData;
1017
+ const expandOpts = computeExpandOpts.value;
984
1018
  const rowOpts = computeRowOpts.value;
985
1019
  const cellOpts = computeCellOpts.value;
986
1020
  const defaultRowHeight = computeDefaultRowHeight.value;
@@ -993,7 +1027,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
993
1027
  let offsetTop = 0;
994
1028
  let visibleSize = 0;
995
1029
  const isCustomCellHeight = isResizeCellHeight || cellOpts.height || rowOpts.height;
996
- if (!isCustomCellHeight && isAllOverflow) {
1030
+ if (!isCustomCellHeight && !expandColumn && isAllOverflow) {
997
1031
  toVisibleIndex = Math.floor(scrollTop / defaultRowHeight);
998
1032
  visibleSize = Math.ceil(clientHeight / defaultRowHeight) + 1;
999
1033
  } else {
@@ -1011,6 +1045,10 @@ var _default = exports.default = (0, _vue.defineComponent)({
1011
1045
  break;
1012
1046
  }
1013
1047
  }
1048
+ // 是否展开行
1049
+ if (expandColumn && rowExpandedMaps[rowid]) {
1050
+ offsetTop += rowRest.expandHeight || expandOpts.height || 0;
1051
+ }
1014
1052
  }
1015
1053
  }
1016
1054
  return {
@@ -1663,7 +1701,8 @@ var _default = exports.default = (0, _vue.defineComponent)({
1663
1701
  level: 0,
1664
1702
  height: 0,
1665
1703
  resizeHeight: 0,
1666
- oTop: 0
1704
+ oTop: 0,
1705
+ expandHeight: 0
1667
1706
  };
1668
1707
  fullAllDataRowIdData[rowid] = rest;
1669
1708
  fullDataRowIdData[rowid] = rest;
@@ -1713,7 +1752,8 @@ var _default = exports.default = (0, _vue.defineComponent)({
1713
1752
  level: 0,
1714
1753
  height: 0,
1715
1754
  resizeHeight: 0,
1716
- oTop: 0
1755
+ oTop: 0,
1756
+ expandHeight: 0
1717
1757
  };
1718
1758
  fullAllDataRowIdData[rowid] = rest;
1719
1759
  fullDataRowIdData[rowid] = rest;
@@ -2036,6 +2076,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
2036
2076
  const emptyPlaceholderElem = refEmptyPlaceholder.value;
2037
2077
  const cellOffsetWidth = computeCellOffsetWidth.value;
2038
2078
  const mouseOpts = computeMouseOpts.value;
2079
+ const expandOpts = computeExpandOpts.value;
2039
2080
  const bodyWrapperElem = (0, _util.getRefElem)(elemStore['main-body-wrapper']);
2040
2081
  const bodyTableElem = (0, _util.getRefElem)(elemStore['main-body-table']);
2041
2082
  if (emptyPlaceholderElem) {
@@ -2105,6 +2146,11 @@ var _default = exports.default = (0, _vue.defineComponent)({
2105
2146
  yBottomCornerEl.style.top = `${headerHeight + bodyHeight}px`;
2106
2147
  yBottomCornerEl.style.display = footerHeight ? 'block' : '';
2107
2148
  }
2149
+ const rowExpandEl = refRowExpandElem.value;
2150
+ if (rowExpandEl) {
2151
+ rowExpandEl.style.height = `${bodyHeight}px`;
2152
+ rowExpandEl.style.top = `${headerHeight}px`;
2153
+ }
2108
2154
  containerList.forEach((name, index) => {
2109
2155
  const fixedType = index > 0 ? name : '';
2110
2156
  const layoutList = ['header', 'body', 'footer'];
@@ -2214,7 +2260,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
2214
2260
  let isOptimizeMode = false;
2215
2261
  // 如果是使用优化模式
2216
2262
  if (scrollXLoad || scrollYLoad || isAllOverflow) {
2217
- if (expandColumn || spanMethod || footerSpanMethod) {
2263
+ if (expandColumn && expandOpts.mode !== 'fixed' || spanMethod || footerSpanMethod) {
2218
2264
  // 如果不支持优化模式
2219
2265
  } else {
2220
2266
  isOptimizeMode = true;
@@ -2974,15 +3020,25 @@ var _default = exports.default = (0, _vue.defineComponent)({
2974
3020
  if (!el || !el.clientWidth) {
2975
3021
  return (0, _vue.nextTick)();
2976
3022
  }
3023
+ const varEl = refVarElem.value;
3024
+ if (varEl) {
3025
+ const [defEl, mediumEl, smallEl, miniEl] = varEl.children;
3026
+ calcVarRowHeightConfig('default', defEl);
3027
+ calcVarRowHeightConfig('medium', mediumEl);
3028
+ calcVarRowHeightConfig('small', smallEl);
3029
+ calcVarRowHeightConfig('mini', miniEl);
3030
+ }
2977
3031
  calcCellWidth();
2978
3032
  autoCellWidth();
2979
3033
  updateStyle();
3034
+ updateRowExpandStyle();
2980
3035
  return computeScrollLoad().then(() => {
2981
3036
  if (reFull === true) {
2982
3037
  // 初始化时需要在列计算之后再执行优化运算,达到最优显示效果
2983
3038
  calcCellWidth();
2984
3039
  autoCellWidth();
2985
3040
  updateStyle();
3041
+ updateRowExpandStyle();
2986
3042
  return computeScrollLoad();
2987
3043
  }
2988
3044
  });
@@ -3789,6 +3845,71 @@ var _default = exports.default = (0, _vue.defineComponent)({
3789
3845
  setTimeout(() => $xeTable.recalculate(true), 300);
3790
3846
  });
3791
3847
  };
3848
+ const updateRowExpandStyle = () => {
3849
+ const {
3850
+ expandColumn,
3851
+ scrollYLoad,
3852
+ rowExpandedMaps
3853
+ } = reactData;
3854
+ const expandOpts = computeExpandOpts.value;
3855
+ const rowOpts = computeRowOpts.value;
3856
+ const cellOpts = computeCellOpts.value;
3857
+ const defaultRowHeight = computeDefaultRowHeight.value;
3858
+ const {
3859
+ mode
3860
+ } = expandOpts;
3861
+ if (expandColumn && mode === 'fixed') {
3862
+ const {
3863
+ elemStore,
3864
+ afterFullData,
3865
+ fullAllDataRowIdData
3866
+ } = internalData;
3867
+ const rowExpandEl = refRowExpandElem.value;
3868
+ const bodyScrollElem = (0, _util.getRefElem)(elemStore['main-body-scroll']);
3869
+ if (rowExpandEl && bodyScrollElem) {
3870
+ let isUpdateHeight = false;
3871
+ if (scrollYLoad) {
3872
+ let offsetTop = 0;
3873
+ for (let rIndex = 0, rLen = afterFullData.length; rIndex < rLen; rIndex++) {
3874
+ const row = afterFullData[rIndex];
3875
+ const rowid = (0, _util.getRowid)($xeTable, row);
3876
+ const rowRest = fullAllDataRowIdData[rowid] || {};
3877
+ rowRest.oTop = offsetTop;
3878
+ offsetTop += rowRest.resizeHeight || cellOpts.height || rowOpts.height || rowRest.height || defaultRowHeight;
3879
+ // 是否展开行
3880
+ if (expandColumn && rowExpandedMaps[rowid]) {
3881
+ offsetTop += rowRest.expandHeight || expandOpts.height || 0;
3882
+ }
3883
+ }
3884
+ }
3885
+ _xeUtils.default.arrayEach(rowExpandEl.children, reEl => {
3886
+ const expandEl = reEl;
3887
+ const rowid = expandEl.getAttribute('rowid') || '';
3888
+ const rowRest = fullAllDataRowIdData[rowid];
3889
+ if (rowRest) {
3890
+ const expandHeight = expandEl.offsetHeight + 1;
3891
+ if (scrollYLoad) {
3892
+ expandEl.style.top = (0, _dom.toCssUnit)(rowRest.oTop + (rowRest.resizeHeight || cellOpts.height || rowOpts.height || rowRest.height || defaultRowHeight));
3893
+ } else {
3894
+ const trEl = bodyScrollElem.querySelector(`.vxe-body--row[rowid="${rowid}"]`);
3895
+ if (trEl) {
3896
+ expandEl.style.top = (0, _dom.toCssUnit)(trEl.offsetTop + trEl.offsetHeight);
3897
+ }
3898
+ }
3899
+ if (!isUpdateHeight) {
3900
+ if (rowRest.expandHeight !== expandHeight) {
3901
+ isUpdateHeight = true;
3902
+ }
3903
+ }
3904
+ rowRest.expandHeight = expandHeight;
3905
+ }
3906
+ });
3907
+ if (isUpdateHeight) {
3908
+ reactData.rowExpandHeightFlag++;
3909
+ }
3910
+ }
3911
+ }
3912
+ };
3792
3913
  tableMethods = {
3793
3914
  dispatchEvent,
3794
3915
  /**
@@ -3983,7 +4104,8 @@ var _default = exports.default = (0, _vue.defineComponent)({
3983
4104
  level: parentLevel + nodes.length,
3984
4105
  height: 0,
3985
4106
  resizeHeight: 0,
3986
- oTop: 0
4107
+ oTop: 0,
4108
+ expandHeight: 0
3987
4109
  };
3988
4110
  fullDataRowIdData[rowid] = rest;
3989
4111
  fullAllDataRowIdData[rowid] = rest;
@@ -4943,6 +5065,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
4943
5065
  const el = refElem.value;
4944
5066
  if (el && el.clientWidth) {
4945
5067
  autoCellWidth();
5068
+ updateRowExpandStyle();
4946
5069
  }
4947
5070
  if (rceTimeout) {
4948
5071
  clearTimeout(rceTimeout);
@@ -7520,7 +7643,8 @@ var _default = exports.default = (0, _vue.defineComponent)({
7520
7643
  level,
7521
7644
  height: 0,
7522
7645
  resizeHeight: 0,
7523
- oTop: 0
7646
+ oTop: 0,
7647
+ expandHeight: 0
7524
7648
  };
7525
7649
  }
7526
7650
  cacheItem.row = row;
@@ -9830,6 +9954,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
9830
9954
  isRight,
9831
9955
  direction
9832
9956
  }, params);
9957
+ updateRowExpandStyle();
9833
9958
  checkLastSyncScroll(isRollX, isRollY);
9834
9959
  if (rowOpts.isHover || highlightHoverRow) {
9835
9960
  $xeTable.clearHoverRow();
@@ -9891,6 +10016,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
9891
10016
  const rightScrollElem = (0, _util.getRefElem)(elemStore['right-body-scroll']);
9892
10017
  const headerScrollElem = (0, _util.getRefElem)(elemStore['main-header-scroll']);
9893
10018
  const footerScrollElem = (0, _util.getRefElem)(elemStore['main-footer-scroll']);
10019
+ const rowExpandEl = refRowExpandElem.value;
9894
10020
  if (inWheelScroll || inVirtualScroll || inHeaderScroll || inFooterScroll) {
9895
10021
  return;
9896
10022
  }
@@ -9937,6 +10063,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
9937
10063
  (0, _dom.setScrollTop)(rightScrollElem, scrollTop);
9938
10064
  }
9939
10065
  (0, _dom.setScrollTop)(yHandleEl, scrollTop);
10066
+ (0, _dom.setScrollTop)(rowExpandEl, scrollTop);
9940
10067
  if (scrollYLoad) {
9941
10068
  $xeTable.triggerScrollYEvent(evnt);
9942
10069
  }
@@ -10076,6 +10203,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
10076
10203
  const leftScrollElem = (0, _util.getRefElem)(elemStore['left-body-scroll']);
10077
10204
  const bodyScrollElem = (0, _util.getRefElem)(elemStore['main-body-scroll']);
10078
10205
  const rightScrollElem = (0, _util.getRefElem)(elemStore['right-body-scroll']);
10206
+ const rowExpandEl = refRowExpandElem.value;
10079
10207
  if (!xHandleEl) {
10080
10208
  return;
10081
10209
  }
@@ -10111,6 +10239,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
10111
10239
  (0, _dom.setScrollTop)(bodyScrollElem, currTopNum);
10112
10240
  (0, _dom.setScrollTop)(leftScrollElem, currTopNum);
10113
10241
  (0, _dom.setScrollTop)(rightScrollElem, currTopNum);
10242
+ (0, _dom.setScrollTop)(rowExpandEl, currTopNum);
10114
10243
  if (scrollYLoad) {
10115
10244
  $xeTable.triggerScrollYEvent(evnt);
10116
10245
  }
@@ -10119,16 +10248,6 @@ var _default = exports.default = (0, _vue.defineComponent)({
10119
10248
  fixed: ''
10120
10249
  });
10121
10250
  });
10122
- // internalData.inWheelScroll = true
10123
- // setScrollTop(yHandleEl, scrollTop)
10124
- // setScrollTop(bodyScrollElem, scrollTop)
10125
- // setScrollTop(leftScrollElem, scrollTop)
10126
- // setScrollTop(rightScrollElem, scrollTop)
10127
- // loadScrollYData(scrollTop)
10128
- // $xeTable.handleScrollEvent(evnt, isRollY, isRollX, scrollTop, scrollLeft, {
10129
- // type: 'footer',
10130
- // fixed: ''
10131
- // })
10132
10251
  }
10133
10252
  },
10134
10253
  triggerVirtualScrollXEvent(evnt) {
@@ -10197,6 +10316,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
10197
10316
  const leftScrollElem = (0, _util.getRefElem)(elemStore['left-body-scroll']);
10198
10317
  const bodyScrollElem = (0, _util.getRefElem)(elemStore['main-body-scroll']);
10199
10318
  const rightScrollElem = (0, _util.getRefElem)(elemStore['right-body-scroll']);
10319
+ const rowExpandEl = refRowExpandElem.value;
10200
10320
  const xHandleEl = refScrollXHandleElem.value;
10201
10321
  const wrapperEl = evnt.currentTarget;
10202
10322
  const {
@@ -10213,6 +10333,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
10213
10333
  (0, _dom.setScrollTop)(bodyScrollElem, scrollTop);
10214
10334
  (0, _dom.setScrollTop)(leftScrollElem, scrollTop);
10215
10335
  (0, _dom.setScrollTop)(rightScrollElem, scrollTop);
10336
+ (0, _dom.setScrollTop)(rowExpandEl, scrollTop);
10216
10337
  if (scrollYLoad) {
10217
10338
  $xeTable.triggerScrollYEvent(evnt);
10218
10339
  }
@@ -10309,7 +10430,9 @@ var _default = exports.default = (0, _vue.defineComponent)({
10309
10430
  updateScrollYSpace() {
10310
10431
  const {
10311
10432
  isAllOverflow,
10312
- scrollYLoad
10433
+ scrollYLoad,
10434
+ expandColumn,
10435
+ rowExpandedMaps
10313
10436
  } = reactData;
10314
10437
  const {
10315
10438
  scrollYStore,
@@ -10321,6 +10444,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
10321
10444
  const {
10322
10445
  startIndex
10323
10446
  } = scrollYStore;
10447
+ const expandOpts = computeExpandOpts.value;
10324
10448
  const rowOpts = computeRowOpts.value;
10325
10449
  const cellOpts = computeCellOpts.value;
10326
10450
  const defaultRowHeight = computeDefaultRowHeight.value;
@@ -10330,7 +10454,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
10330
10454
  let ySpaceHeight = 0;
10331
10455
  if (scrollYLoad) {
10332
10456
  const isCustomCellHeight = isResizeCellHeight || cellOpts.height || rowOpts.height;
10333
- if (!isCustomCellHeight && isAllOverflow) {
10457
+ if (!isCustomCellHeight && !expandColumn && isAllOverflow) {
10334
10458
  ySpaceHeight = afterFullData.length * defaultRowHeight;
10335
10459
  topSpaceHeight = Math.max(0, startIndex * defaultRowHeight);
10336
10460
  } else {
@@ -10339,12 +10463,20 @@ var _default = exports.default = (0, _vue.defineComponent)({
10339
10463
  const rowid = (0, _util.getRowid)($xeTable, row);
10340
10464
  const rowRest = fullAllDataRowIdData[rowid] || {};
10341
10465
  ySpaceHeight += rowRest.resizeHeight || cellOpts.height || rowOpts.height || rowRest.height || defaultRowHeight;
10466
+ // 是否展开行
10467
+ if (expandColumn && rowExpandedMaps[rowid]) {
10468
+ ySpaceHeight += rowRest.expandHeight || expandOpts.height || 0;
10469
+ }
10342
10470
  }
10343
10471
  for (let i = 0; i < startIndex; i++) {
10344
10472
  const row = afterFullData[i];
10345
10473
  const rowid = (0, _util.getRowid)($xeTable, row);
10346
10474
  const rowRest = fullAllDataRowIdData[rowid] || {};
10347
10475
  topSpaceHeight += rowRest.resizeHeight || cellOpts.height || rowOpts.height || rowRest.height || defaultRowHeight;
10476
+ // 是否展开行
10477
+ if (expandColumn && rowExpandedMaps[rowid]) {
10478
+ topSpaceHeight += rowRest.expandHeight || expandOpts.height || 0;
10479
+ }
10348
10480
  }
10349
10481
  }
10350
10482
  } else {
@@ -10369,6 +10501,10 @@ var _default = exports.default = (0, _vue.defineComponent)({
10369
10501
  if (scrollYSpaceEl) {
10370
10502
  scrollYSpaceEl.style.height = ySpaceHeight ? `${ySpaceHeight}px` : '';
10371
10503
  }
10504
+ const rowExpandYSpaceEl = refRowExpandYSpaceElem.value;
10505
+ if (rowExpandYSpaceEl) {
10506
+ rowExpandYSpaceEl.style.height = ySpaceHeight ? `${ySpaceHeight}px` : '';
10507
+ }
10372
10508
  return (0, _vue.nextTick)().then(() => {
10373
10509
  updateStyle();
10374
10510
  });
@@ -10378,6 +10514,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
10378
10514
  isAllOverflow
10379
10515
  } = reactData;
10380
10516
  handleTableColumn();
10517
+ $xeTable.updateScrollYSpace();
10381
10518
  return (0, _vue.nextTick)().then(() => {
10382
10519
  handleTableColumn();
10383
10520
  $xeTable.updateScrollXSpace();
@@ -10388,6 +10525,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
10388
10525
  },
10389
10526
  updateScrollYData() {
10390
10527
  $xeTable.handleTableData();
10528
+ $xeTable.updateScrollYSpace();
10391
10529
  return (0, _vue.nextTick)().then(() => {
10392
10530
  $xeTable.handleTableData();
10393
10531
  $xeTable.updateScrollYSpace();
@@ -10616,6 +10754,91 @@ var _default = exports.default = (0, _vue.defineComponent)({
10616
10754
  }
10617
10755
  return renderEmptyElement($xeTable);
10618
10756
  };
10757
+ const renderRowExpandedVNs = () => {
10758
+ const {
10759
+ treeConfig
10760
+ } = props;
10761
+ const {
10762
+ expandColumn
10763
+ } = reactData;
10764
+ const tableRowExpandedList = computeTableRowExpandedList.value;
10765
+ const expandOpts = computeExpandOpts.value;
10766
+ const {
10767
+ mode
10768
+ } = expandOpts;
10769
+ if (mode !== 'fixed') {
10770
+ return renderEmptyElement($xeTable);
10771
+ }
10772
+ const expandVNs = [(0, _vue.h)('div', {
10773
+ key: 'repY',
10774
+ ref: refRowExpandYSpaceElem
10775
+ })];
10776
+ if (expandColumn) {
10777
+ tableRowExpandedList.forEach(row => {
10778
+ const expandOpts = computeExpandOpts.value;
10779
+ const {
10780
+ height: expandHeight,
10781
+ padding
10782
+ } = expandOpts;
10783
+ const {
10784
+ fullAllDataRowIdData
10785
+ } = internalData;
10786
+ const treeOpts = computeTreeOpts.value;
10787
+ const {
10788
+ transform,
10789
+ seqMode
10790
+ } = treeOpts;
10791
+ const cellStyle = {};
10792
+ const rowid = (0, _util.getRowid)($xeTable, row);
10793
+ const rest = fullAllDataRowIdData[rowid];
10794
+ let rowLevel = 0;
10795
+ let seq = -1;
10796
+ let _rowIndex = 0;
10797
+ const rowIndex = $xeTable.getRowIndex(row);
10798
+ const $rowIndex = $xeTable.getVMRowIndex(row);
10799
+ if (rest) {
10800
+ rowLevel = rest.level;
10801
+ if (treeConfig && transform && seqMode === 'increasing') {
10802
+ seq = rest._index + 1;
10803
+ } else {
10804
+ seq = rest.seq;
10805
+ }
10806
+ _rowIndex = rest._index;
10807
+ }
10808
+ if (expandHeight) {
10809
+ cellStyle.height = `${expandHeight}px`;
10810
+ }
10811
+ if (treeConfig) {
10812
+ cellStyle.paddingLeft = `${rowLevel * treeOpts.indent + 30}px`;
10813
+ }
10814
+ const expandParams = {
10815
+ $table: $xeTable,
10816
+ seq,
10817
+ column: expandColumn,
10818
+ fixed: '',
10819
+ type: 'body',
10820
+ level: rowLevel,
10821
+ row,
10822
+ rowIndex,
10823
+ $rowIndex,
10824
+ _rowIndex
10825
+ };
10826
+ expandVNs.push((0, _vue.h)('div', {
10827
+ key: rowid,
10828
+ class: ['vxe-body--row-expanded-cell', {
10829
+ 'is--padding': padding,
10830
+ 'is--ellipsis': expandHeight
10831
+ }],
10832
+ rowid,
10833
+ style: cellStyle
10834
+ }, expandColumn.renderData(expandParams)));
10835
+ });
10836
+ }
10837
+ return (0, _vue.h)('div', {
10838
+ ref: refRowExpandElem,
10839
+ class: 'vxe-table--row-expanded-wrapper'
10840
+ }, expandVNs);
10841
+ };
10619
10842
  const renderScrollX = () => {
10620
10843
  return (0, _vue.h)('div', {
10621
10844
  key: 'vsx',
@@ -10668,6 +10891,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
10668
10891
  } = props;
10669
10892
  const {
10670
10893
  overflowX,
10894
+ scrollYLoad,
10671
10895
  tableData,
10672
10896
  tableColumn,
10673
10897
  tableGroupColumn,
@@ -10678,10 +10902,16 @@ var _default = exports.default = (0, _vue.defineComponent)({
10678
10902
  leftList,
10679
10903
  rightList
10680
10904
  } = columnStore;
10681
- return (0, _vue.h)('div', {
10905
+ const leftFixedWidth = computeLeftFixedWidth.value;
10906
+ const rightFixedWidth = computeRightFixedWidth.value;
10907
+ const ons = {};
10908
+ if (scrollYLoad || leftFixedWidth || rightFixedWidth) {
10909
+ ons.onWheel = $xeTable.triggerBodyWheelEvent;
10910
+ }
10911
+ return (0, _vue.h)('div', Object.assign({
10682
10912
  ref: refTableViewportElem,
10683
10913
  class: 'vxe-table--viewport-wrapper'
10684
- }, [(0, _vue.h)('div', {
10914
+ }, ons), [(0, _vue.h)('div', {
10685
10915
  class: 'vxe-table--main-wrapper'
10686
10916
  }, [
10687
10917
  /**
@@ -10710,7 +10940,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
10710
10940
  tableColumn
10711
10941
  }) : renderEmptyElement($xeTable)]), (0, _vue.h)('div', {
10712
10942
  class: 'vxe-table--fixed-wrapper'
10713
- }, [leftList && leftList.length && overflowX ? renderFixed('left') : renderEmptyElement($xeTable), rightList && rightList.length && overflowX ? renderFixed('right') : renderEmptyElement($xeTable)])]);
10943
+ }, [leftList && leftList.length && overflowX ? renderFixed('left') : renderEmptyElement($xeTable), rightList && rightList.length && overflowX ? renderFixed('right') : renderEmptyElement($xeTable)]), renderRowExpandedVNs()]);
10714
10944
  };
10715
10945
  const renderBody = () => {
10716
10946
  const scrollbarYToLeft = computeScrollbarYToLeft.value;
@@ -11147,28 +11377,9 @@ var _default = exports.default = (0, _vue.defineComponent)({
11147
11377
  });
11148
11378
  });
11149
11379
  (0, _vue.onMounted)(() => {
11150
- const {
11151
- rowHeightStore
11152
- } = reactData;
11153
- const varEl = refVarElem.value;
11154
11380
  const columnOpts = computeColumnOpts.value;
11155
11381
  const rowOpts = computeRowOpts.value;
11156
11382
  const customOpts = computeCustomOpts.value;
11157
- if (varEl) {
11158
- const [defEl, mediumEl, smallEl, miniEl] = varEl.children;
11159
- if (defEl) {
11160
- rowHeightStore.default = defEl.clientHeight;
11161
- }
11162
- if (mediumEl) {
11163
- rowHeightStore.medium = mediumEl.clientHeight;
11164
- }
11165
- if (smallEl) {
11166
- rowHeightStore.small = smallEl.clientHeight;
11167
- }
11168
- if (miniEl) {
11169
- rowHeightStore.mini = miniEl.clientHeight;
11170
- }
11171
- }
11172
11383
  if (columnOpts.drag || rowOpts.drag || customOpts.allowSort) {
11173
11384
  (0, _dom.initTpImg)();
11174
11385
  }