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.
- 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 +224 -158
- package/es/table/src/body.js +60 -47
- package/es/table/src/methods.js +166 -36
- 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 +730 -391
- 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 +278 -215
- 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 +199 -37
- 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 +242 -159
- package/packages/table/src/body.ts +62 -48
- package/packages/table/src/methods.ts +170 -36
- package/packages/table/src/table.ts +108 -24
- package/styles/components/table.scss +26 -0
- /package/es/{iconfont.1739257460253.ttf → iconfont.1739428244406.ttf} +0 -0
- /package/es/{iconfont.1739257460253.woff → iconfont.1739428244406.woff} +0 -0
- /package/es/{iconfont.1739257460253.woff2 → iconfont.1739428244406.woff2} +0 -0
- /package/lib/{iconfont.1739257460253.ttf → iconfont.1739428244406.ttf} +0 -0
- /package/lib/{iconfont.1739257460253.woff → iconfont.1739428244406.woff} +0 -0
- /package/lib/{iconfont.1739257460253.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);
|
|
@@ -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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
});
|