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.
- 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/hook.js +5 -5
- package/es/table/src/body.js +57 -43
- package/es/table/src/table.js +209 -44
- 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 +330 -107
- 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/hook.js +10 -5
- package/lib/table/module/edit/hook.min.js +1 -1
- package/lib/table/src/body.js +65 -58
- package/lib/table/src/body.min.js +1 -1
- package/lib/table/src/table.js +253 -42
- 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/hook.ts +5 -5
- package/packages/table/src/body.ts +60 -50
- package/packages/table/src/table.ts +220 -44
- package/styles/components/table.scss +26 -0
- /package/es/{iconfont.1739333111603.ttf → iconfont.1739426300784.ttf} +0 -0
- /package/es/{iconfont.1739333111603.woff → iconfont.1739426300784.woff} +0 -0
- /package/es/{iconfont.1739333111603.woff2 → iconfont.1739426300784.woff2} +0 -0
- /package/lib/{iconfont.1739333111603.ttf → iconfont.1739426300784.ttf} +0 -0
- /package/lib/{iconfont.1739333111603.woff → iconfont.1739426300784.woff} +0 -0
- /package/lib/{iconfont.1739333111603.woff2 → iconfont.1739426300784.woff2} +0 -0
package/lib/table/src/table.js
CHANGED
|
@@ -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:
|
|
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
|
-
|
|
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
|
}
|