vxe-table 3.12.16 → 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.
- package/es/index.css +1 -1
- package/es/index.min.css +1 -1
- package/es/style.css +1 -1
- package/es/style.min.css +1 -1
- package/es/table/module/edit/mixin.js +5 -5
- package/es/table/src/body.js +60 -47
- package/es/table/src/methods.js +123 -24
- package/es/table/src/table.js +101 -23
- package/es/table/style.css +26 -0
- package/es/table/style.min.css +1 -1
- package/es/ui/index.js +1 -1
- package/es/ui/src/log.js +1 -1
- package/es/vxe-table/style.css +26 -0
- package/es/vxe-table/style.min.css +1 -1
- package/lib/index.css +1 -1
- package/lib/index.min.css +1 -1
- package/lib/index.umd.js +350 -113
- package/lib/index.umd.min.js +1 -1
- package/lib/style.css +1 -1
- package/lib/style.min.css +1 -1
- package/lib/table/module/edit/mixin.js +10 -5
- package/lib/table/module/edit/mixin.min.js +1 -1
- package/lib/table/src/body.js +71 -59
- package/lib/table/src/body.min.js +1 -1
- package/lib/table/src/methods.js +141 -23
- package/lib/table/src/methods.min.js +1 -1
- package/lib/table/src/table.js +126 -24
- package/lib/table/src/table.min.js +1 -1
- package/lib/table/style/style.css +26 -0
- package/lib/table/style/style.min.css +1 -1
- package/lib/ui/index.js +1 -1
- package/lib/ui/index.min.js +1 -1
- package/lib/ui/src/log.js +1 -1
- package/lib/ui/src/log.min.js +1 -1
- package/lib/vxe-table/style/style.css +26 -0
- package/lib/vxe-table/style/style.min.css +1 -1
- package/package.json +1 -1
- package/packages/table/module/edit/mixin.ts +5 -5
- package/packages/table/src/body.ts +62 -48
- package/packages/table/src/methods.ts +125 -24
- package/packages/table/src/table.ts +108 -24
- package/styles/components/table.scss +26 -0
- /package/es/{iconfont.1739333092714.ttf → iconfont.1739428244406.ttf} +0 -0
- /package/es/{iconfont.1739333092714.woff → iconfont.1739428244406.woff} +0 -0
- /package/es/{iconfont.1739333092714.woff2 → iconfont.1739428244406.woff2} +0 -0
- /package/lib/{iconfont.1739333092714.ttf → iconfont.1739428244406.ttf} +0 -0
- /package/lib/{iconfont.1739333092714.woff → iconfont.1739428244406.woff} +0 -0
- /package/lib/{iconfont.1739333092714.woff2 → iconfont.1739428244406.woff2} +0 -0
package/lib/table/src/methods.js
CHANGED
|
@@ -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
|
-
|
|
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
|
-
|
|
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);
|
|
@@ -9157,6 +9261,7 @@ const Methods = {
|
|
|
9157
9261
|
isRight,
|
|
9158
9262
|
direction
|
|
9159
9263
|
}, params);
|
|
9264
|
+
updateRowExpandStyle($xeTable);
|
|
9160
9265
|
checkLastSyncScroll($xeTable, isRollX, isRollY);
|
|
9161
9266
|
if (rowOpts.isHover || highlightHoverRow) {
|
|
9162
9267
|
$xeTable.clearHoverRow();
|
|
@@ -9223,6 +9328,7 @@ const Methods = {
|
|
|
9223
9328
|
const rightScrollElem = (0, _util.getRefElem)(elemStore['right-body-scroll']);
|
|
9224
9329
|
const headerScrollElem = (0, _util.getRefElem)(elemStore['main-header-scroll']);
|
|
9225
9330
|
const footerScrollElem = (0, _util.getRefElem)(elemStore['main-footer-scroll']);
|
|
9331
|
+
const rowExpandEl = $xeTable.$refs.refRowExpandElem;
|
|
9226
9332
|
if (inWheelScroll || inVirtualScroll || inHeaderScroll || inFooterScroll) {
|
|
9227
9333
|
return;
|
|
9228
9334
|
}
|
|
@@ -9269,6 +9375,7 @@ const Methods = {
|
|
|
9269
9375
|
(0, _dom.setScrollTop)(rightScrollElem, scrollTop);
|
|
9270
9376
|
}
|
|
9271
9377
|
(0, _dom.setScrollTop)(yHandleEl, scrollTop);
|
|
9378
|
+
(0, _dom.setScrollTop)(rowExpandEl, scrollTop);
|
|
9272
9379
|
if (scrollYLoad) {
|
|
9273
9380
|
$xeTable.triggerScrollYEvent(evnt);
|
|
9274
9381
|
}
|
|
@@ -9418,6 +9525,7 @@ const Methods = {
|
|
|
9418
9525
|
const leftScrollElem = (0, _util.getRefElem)(elemStore['left-body-scroll']);
|
|
9419
9526
|
const bodyScrollElem = (0, _util.getRefElem)(elemStore['main-body-scroll']);
|
|
9420
9527
|
const rightScrollElem = (0, _util.getRefElem)(elemStore['right-body-scroll']);
|
|
9528
|
+
const rowExpandEl = $xeTable.$refs.refRowExpandElem;
|
|
9421
9529
|
if (!xHandleEl) {
|
|
9422
9530
|
return;
|
|
9423
9531
|
}
|
|
@@ -9453,6 +9561,7 @@ const Methods = {
|
|
|
9453
9561
|
(0, _dom.setScrollTop)(bodyScrollElem, currTopNum);
|
|
9454
9562
|
(0, _dom.setScrollTop)(leftScrollElem, currTopNum);
|
|
9455
9563
|
(0, _dom.setScrollTop)(rightScrollElem, currTopNum);
|
|
9564
|
+
(0, _dom.setScrollTop)(rowExpandEl, currTopNum);
|
|
9456
9565
|
if (scrollYLoad) {
|
|
9457
9566
|
$xeTable.triggerScrollYEvent(evnt);
|
|
9458
9567
|
}
|
|
@@ -9461,16 +9570,6 @@ const Methods = {
|
|
|
9461
9570
|
fixed: ''
|
|
9462
9571
|
});
|
|
9463
9572
|
});
|
|
9464
|
-
// internalData.inWheelScroll = true
|
|
9465
|
-
// setScrollTop(yHandleEl, scrollTop)
|
|
9466
|
-
// setScrollTop(bodyScrollElem, scrollTop)
|
|
9467
|
-
// setScrollTop(leftScrollElem, scrollTop)
|
|
9468
|
-
// setScrollTop(rightScrollElem, scrollTop)
|
|
9469
|
-
// loadScrollYData($xeTable, scrollTop)
|
|
9470
|
-
// $xeTable.handleScrollEvent(evnt, isRollY, isRollX, scrollTop, scrollLeft, {
|
|
9471
|
-
// type: 'footer',
|
|
9472
|
-
// fixed: ''
|
|
9473
|
-
// })
|
|
9474
9573
|
}
|
|
9475
9574
|
},
|
|
9476
9575
|
triggerVirtualScrollXEvent(evnt) {
|
|
@@ -9545,6 +9644,7 @@ const Methods = {
|
|
|
9545
9644
|
const leftScrollElem = (0, _util.getRefElem)(elemStore['left-body-scroll']);
|
|
9546
9645
|
const bodyScrollElem = (0, _util.getRefElem)(elemStore['main-body-scroll']);
|
|
9547
9646
|
const rightScrollElem = (0, _util.getRefElem)(elemStore['right-body-scroll']);
|
|
9647
|
+
const rowExpandEl = $xeTable.$refs.refRowExpandElem;
|
|
9548
9648
|
const xHandleEl = $xeTable.$refs.refScrollXHandleElem;
|
|
9549
9649
|
const wrapperEl = evnt.currentTarget;
|
|
9550
9650
|
const {
|
|
@@ -9561,6 +9661,7 @@ const Methods = {
|
|
|
9561
9661
|
(0, _dom.setScrollTop)(bodyScrollElem, scrollTop);
|
|
9562
9662
|
(0, _dom.setScrollTop)(leftScrollElem, scrollTop);
|
|
9563
9663
|
(0, _dom.setScrollTop)(rightScrollElem, scrollTop);
|
|
9664
|
+
(0, _dom.setScrollTop)(rowExpandEl, scrollTop);
|
|
9564
9665
|
if (scrollYLoad) {
|
|
9565
9666
|
$xeTable.triggerScrollYEvent(evnt);
|
|
9566
9667
|
}
|
|
@@ -9576,6 +9677,7 @@ const Methods = {
|
|
|
9576
9677
|
isAllOverflow
|
|
9577
9678
|
} = reactData;
|
|
9578
9679
|
handleTableColumn($xeTable);
|
|
9680
|
+
$xeTable.updateScrollXSpace();
|
|
9579
9681
|
return $xeTable.$nextTick().then(() => {
|
|
9580
9682
|
handleTableColumn($xeTable);
|
|
9581
9683
|
$xeTable.updateScrollXSpace();
|
|
@@ -9643,6 +9745,7 @@ const Methods = {
|
|
|
9643
9745
|
updateScrollYData() {
|
|
9644
9746
|
const $xeTable = this;
|
|
9645
9747
|
$xeTable.handleTableData();
|
|
9748
|
+
$xeTable.updateScrollYSpace();
|
|
9646
9749
|
return $xeTable.$nextTick().then(() => {
|
|
9647
9750
|
$xeTable.handleTableData();
|
|
9648
9751
|
$xeTable.updateScrollYSpace();
|
|
@@ -9655,7 +9758,9 @@ const Methods = {
|
|
|
9655
9758
|
const internalData = $xeTable;
|
|
9656
9759
|
const {
|
|
9657
9760
|
isAllOverflow,
|
|
9658
|
-
scrollYLoad
|
|
9761
|
+
scrollYLoad,
|
|
9762
|
+
expandColumn,
|
|
9763
|
+
rowExpandedMaps
|
|
9659
9764
|
} = reactData;
|
|
9660
9765
|
const {
|
|
9661
9766
|
scrollYStore,
|
|
@@ -9667,6 +9772,7 @@ const Methods = {
|
|
|
9667
9772
|
const {
|
|
9668
9773
|
startIndex
|
|
9669
9774
|
} = scrollYStore;
|
|
9775
|
+
const expandOpts = $xeTable.computeExpandOpts;
|
|
9670
9776
|
const rowOpts = $xeTable.computeRowOpts;
|
|
9671
9777
|
const cellOpts = $xeTable.computeCellOpts;
|
|
9672
9778
|
const defaultRowHeight = $xeTable.computeDefaultRowHeight;
|
|
@@ -9676,7 +9782,7 @@ const Methods = {
|
|
|
9676
9782
|
let ySpaceHeight = 0;
|
|
9677
9783
|
if (scrollYLoad) {
|
|
9678
9784
|
const isCustomCellHeight = isResizeCellHeight || cellOpts.height || rowOpts.height;
|
|
9679
|
-
if (!isCustomCellHeight && isAllOverflow) {
|
|
9785
|
+
if (!isCustomCellHeight && !expandColumn && isAllOverflow) {
|
|
9680
9786
|
ySpaceHeight = afterFullData.length * defaultRowHeight;
|
|
9681
9787
|
topSpaceHeight = Math.max(0, startIndex * defaultRowHeight);
|
|
9682
9788
|
} else {
|
|
@@ -9685,12 +9791,20 @@ const Methods = {
|
|
|
9685
9791
|
const rowid = (0, _util.getRowid)($xeTable, row);
|
|
9686
9792
|
const rowRest = fullAllDataRowIdData[rowid] || {};
|
|
9687
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
|
+
}
|
|
9688
9798
|
}
|
|
9689
9799
|
for (let i = 0; i < startIndex; i++) {
|
|
9690
9800
|
const row = afterFullData[i];
|
|
9691
9801
|
const rowid = (0, _util.getRowid)($xeTable, row);
|
|
9692
9802
|
const rowRest = fullAllDataRowIdData[rowid] || {};
|
|
9693
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
|
+
}
|
|
9694
9808
|
}
|
|
9695
9809
|
}
|
|
9696
9810
|
} else {
|
|
@@ -9715,6 +9829,10 @@ const Methods = {
|
|
|
9715
9829
|
if (scrollYSpaceEl) {
|
|
9716
9830
|
scrollYSpaceEl.style.height = ySpaceHeight ? `${ySpaceHeight}px` : '';
|
|
9717
9831
|
}
|
|
9832
|
+
const rowExpandYSpaceEl = $xeTable.$refs.refRowExpandYSpaceElem;
|
|
9833
|
+
if (rowExpandYSpaceEl) {
|
|
9834
|
+
rowExpandYSpaceEl.style.height = ySpaceHeight ? `${ySpaceHeight}px` : '';
|
|
9835
|
+
}
|
|
9718
9836
|
return $xeTable.$nextTick().then(() => {
|
|
9719
9837
|
updateStyle($xeTable);
|
|
9720
9838
|
});
|