vxe-table 4.18.6 → 4.18.8
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/LICENSE +20 -20
- package/README.en.md +118 -118
- package/README.ja-JP.md +117 -117
- package/README.md +268 -268
- package/README.zh-TW.md +117 -117
- package/es/style.css +1 -1
- package/es/table/src/table.js +89 -79
- package/es/table/src/util.js +6 -0
- package/es/table/style.css +18 -48
- package/es/ui/index.js +1 -1
- package/es/ui/src/dom.js +21 -0
- package/es/ui/src/log.js +1 -1
- package/es/vxe-table/style.css +18 -48
- package/lib/index.common.js +2 -1
- package/lib/index.umd.js +2762 -2833
- package/lib/index.umd.min.js +1 -1
- package/lib/style.css +1 -1
- package/lib/table/src/table.js +15 -12
- package/lib/table/src/table.min.js +1 -1
- package/lib/table/src/util.js +6 -0
- package/lib/table/src/util.min.js +1 -1
- package/lib/table/style/style.css +18 -48
- package/lib/ui/index.js +1 -1
- package/lib/ui/index.min.js +1 -1
- package/lib/ui/src/dom.js +23 -0
- package/lib/ui/src/dom.min.js +1 -1
- package/lib/ui/src/log.js +1 -1
- package/lib/ui/src/log.min.js +1 -1
- package/lib/v-x-e-table/index.js +2 -1
- package/lib/v-x-e-table/index.min.js +1 -1
- package/lib/vxe-colgroup/index.js +2 -1
- package/lib/vxe-colgroup/index.min.js +1 -1
- package/lib/vxe-column/index.js +2 -1
- package/lib/vxe-column/index.min.js +1 -1
- package/lib/vxe-grid/index.js +2 -1
- package/lib/vxe-grid/index.min.js +1 -1
- package/lib/vxe-table/index.js +2 -1
- package/lib/vxe-table/index.min.js +1 -1
- package/lib/vxe-table/style/style.css +18 -48
- package/lib/vxe-toolbar/index.js +2 -1
- package/lib/vxe-toolbar/index.min.js +1 -1
- package/lib/vxe-ui/index.js +2 -1
- package/lib/vxe-ui/index.min.js +1 -1
- package/lib/vxe-v-x-e-table/index.js +2 -1
- package/lib/vxe-v-x-e-table/index.min.js +1 -1
- package/package.json +91 -91
- package/packages/colgroup/index.ts +22 -22
- package/packages/column/index.ts +22 -22
- package/packages/components.ts +43 -43
- package/packages/grid/index.ts +18 -18
- package/packages/grid/src/emits.ts +19 -19
- package/packages/grid/src/grid.ts +1768 -1768
- package/packages/grid/src/props.ts +23 -23
- package/packages/index.ts +4 -4
- package/packages/locale/lang/ar-EG.ts +832 -832
- package/packages/locale/lang/de-DE.ts +832 -832
- package/packages/locale/lang/en-US.ts +832 -832
- package/packages/locale/lang/es-ES.ts +832 -832
- package/packages/locale/lang/fr-FR.ts +832 -832
- package/packages/locale/lang/hu-HU.ts +832 -832
- package/packages/locale/lang/hy-AM.ts +832 -832
- package/packages/locale/lang/id-ID.ts +832 -832
- package/packages/locale/lang/it-IT.ts +832 -832
- package/packages/locale/lang/ja-JP.ts +832 -832
- package/packages/locale/lang/ko-KR.ts +832 -832
- package/packages/locale/lang/ms-MY.ts +832 -832
- package/packages/locale/lang/nb-NO.ts +832 -832
- package/packages/locale/lang/pt-BR.ts +832 -832
- package/packages/locale/lang/ru-RU.ts +832 -832
- package/packages/locale/lang/th-TH.ts +832 -832
- package/packages/locale/lang/ug-CN.ts +832 -832
- package/packages/locale/lang/uk-UA.ts +832 -832
- package/packages/locale/lang/uz-UZ.ts +832 -832
- package/packages/locale/lang/vi-VN.ts +832 -832
- package/packages/locale/lang/zh-CHT.ts +832 -832
- package/packages/locale/lang/zh-CN.ts +832 -832
- package/packages/locale/lang/zh-HK.ts +3 -3
- package/packages/locale/lang/zh-MO.ts +3 -3
- package/packages/locale/lang/zh-TC.ts +3 -3
- package/packages/locale/lang/zh-TW.ts +3 -3
- package/packages/table/index.ts +26 -26
- package/packages/table/module/custom/hook.ts +359 -359
- package/packages/table/module/custom/panel.ts +1331 -1331
- package/packages/table/module/edit/hook.ts +1032 -1032
- package/packages/table/module/export/export-panel.ts +567 -567
- package/packages/table/module/export/hook.ts +1654 -1654
- package/packages/table/module/export/import-panel.ts +266 -266
- package/packages/table/module/export/util.ts +24 -24
- package/packages/table/module/filter/hook.ts +468 -468
- package/packages/table/module/filter/panel.ts +301 -301
- package/packages/table/module/keyboard/hook.ts +495 -495
- package/packages/table/module/menu/hook.ts +325 -325
- package/packages/table/module/menu/panel.ts +201 -201
- package/packages/table/module/validator/hook.ts +631 -631
- package/packages/table/render/index.ts +1440 -1440
- package/packages/table/src/body.ts +932 -932
- package/packages/table/src/cell.ts +1290 -1290
- package/packages/table/src/column.ts +190 -190
- package/packages/table/src/columnInfo.ts +225 -225
- package/packages/table/src/emits.ts +123 -123
- package/packages/table/src/footer.ts +368 -368
- package/packages/table/src/group.ts +59 -59
- package/packages/table/src/header.ts +559 -559
- package/packages/table/src/props.ts +324 -324
- package/packages/table/src/store.ts +14 -14
- package/packages/table/src/table.ts +14010 -14001
- package/packages/table/src/use/cell-view.ts +44 -44
- package/packages/table/src/use/index.ts +1 -1
- package/packages/table/src/util.ts +1070 -1064
- package/packages/toolbar/index.ts +18 -18
- package/packages/toolbar/src/toolbar.ts +701 -701
- package/packages/ui/index.ts +530 -530
- package/packages/ui/src/anime.ts +52 -52
- package/packages/ui/src/comp.ts +3 -3
- package/packages/ui/src/dom.ts +259 -236
- package/packages/ui/src/log.ts +8 -8
- package/packages/ui/src/utils.ts +56 -56
- package/packages/ui/src/vn.ts +55 -55
- package/packages/v-x-e-table/index.d.ts +4 -4
- package/packages/v-x-e-table/index.ts +4 -4
- package/styles/all.scss +7 -7
- package/styles/base.scss +16 -16
- package/styles/components/grid.scss +89 -89
- package/styles/components/icon.scss +225 -225
- package/styles/components/old-icon.scss +715 -715
- package/styles/components/table-module/all.scss +6 -6
- package/styles/components/table-module/custom.scss +527 -527
- package/styles/components/table-module/export.scss +130 -130
- package/styles/components/table-module/filter.scss +130 -130
- package/styles/components/table-module/menu.scss +81 -81
- package/styles/components/table.scss +2679 -2679
- package/styles/components/toolbar.scss +119 -119
- package/styles/default.scss +2 -2
- package/styles/helpers/baseMixin.scss +95 -95
- package/styles/index.scss +4 -4
- package/styles/modules.scss +5 -5
- package/styles/theme/base.scss +93 -93
- package/styles/theme/dark.scss +49 -49
- package/styles/theme/light.scss +44 -44
- package/styles/variable.scss +43 -43
- package/types/all.d.ts +37 -37
- package/types/index.d.ts +4 -4
- /package/es/{iconfont.1773972993993.ttf → iconfont.1774240404046.ttf} +0 -0
- /package/es/{iconfont.1773972993993.woff → iconfont.1774240404046.woff} +0 -0
- /package/es/{iconfont.1773972993993.woff2 → iconfont.1774240404046.woff2} +0 -0
- /package/lib/{iconfont.1773972993993.ttf → iconfont.1774240404046.ttf} +0 -0
- /package/lib/{iconfont.1773972993993.woff → iconfont.1774240404046.woff} +0 -0
- /package/lib/{iconfont.1773972993993.woff2 → iconfont.1774240404046.woff2} +0 -0
package/es/table/src/table.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { h, reactive, ref, provide, inject, nextTick, Teleport, onActivated, onDeactivated, onBeforeUnmount, onUnmounted, watch, computed, onMounted } from 'vue';
|
|
2
2
|
import { defineVxeComponent } from '../../ui/src/comp';
|
|
3
3
|
import XEUtils from 'xe-utils';
|
|
4
|
-
import { initTpImg, getTpImg, isPx, isScale, hasClass, addClass, removeClass,
|
|
4
|
+
import { initTpImg, getTpImg, isPx, isScale, hasClass, addClass, removeClass, wheelScrollTopTo, wheelScrollLeftTo, getEventTargetNode, getPaddingTopBottomSize, setScrollTop, setScrollLeft, toCssUnit, hasControlKey, checkTargetElement } from '../../ui/src/dom';
|
|
5
5
|
import { getLastZIndex, nextZIndex, hasChildrenList, getFuncText, isEnableConf, formatText, eqEmptyValue } from '../../ui/src/utils';
|
|
6
6
|
import { VxeUI } from '../../ui';
|
|
7
7
|
import { createReactData, createInternalData, getRowUniqueId, createRowId, clearTableAllStatus, getColumnList, toFilters, hasDeepKey, getRowkey, getRowid, rowToVisible, colToVisible, getCellValue, setCellValue, handleRowidOrRow, handleFieldOrColumn, toTreePathSeq, restoreScrollLocation, getRootColumn, getRefElem, getColReMinWidth, createHandleUpdateRowId, createHandleGetRowId, getCalcHeight, getCellRestHeight, getLastChildColumn } from './util';
|
|
@@ -364,6 +364,7 @@ export default defineVxeComponent({
|
|
|
364
364
|
}
|
|
365
365
|
return leftWidth;
|
|
366
366
|
});
|
|
367
|
+
// 合并列是否超越冻结列
|
|
367
368
|
const computeBodyMergeCoverFixed = computed(() => {
|
|
368
369
|
const { columnStore, mergeBodyFlag } = reactData;
|
|
369
370
|
const { mergeBodyList, visibleColumn } = internalData;
|
|
@@ -373,7 +374,10 @@ export default defineVxeComponent({
|
|
|
373
374
|
const lecIndex = leftList.length;
|
|
374
375
|
for (let i = 0; i < mergeBodyList.length; i++) {
|
|
375
376
|
const { col, colspan } = mergeBodyList[i];
|
|
376
|
-
if (col < lecIndex
|
|
377
|
+
if (col < lecIndex && col + colspan > lecIndex) {
|
|
378
|
+
return true;
|
|
379
|
+
}
|
|
380
|
+
else if (col < rscIndex && col + colspan > rscIndex) {
|
|
377
381
|
return true;
|
|
378
382
|
}
|
|
379
383
|
}
|
|
@@ -970,32 +974,46 @@ export default defineVxeComponent({
|
|
|
970
974
|
}
|
|
971
975
|
return { toVisibleIndex: 0, visibleSize: 6 };
|
|
972
976
|
};
|
|
973
|
-
const calculateMergerOffsetIndex = (list, offsetItem, type) => {
|
|
974
|
-
|
|
975
|
-
|
|
976
|
-
|
|
977
|
-
|
|
978
|
-
|
|
979
|
-
|
|
980
|
-
|
|
981
|
-
|
|
982
|
-
|
|
983
|
-
|
|
984
|
-
|
|
985
|
-
|
|
986
|
-
|
|
987
|
-
|
|
977
|
+
const calculateMergerOffsetIndex = (list, mergeMaps, offsetItem, type) => {
|
|
978
|
+
const mKey = `${offsetItem.startIndex}:${offsetItem.endIndex}`;
|
|
979
|
+
const mObj = mergeMaps[mKey];
|
|
980
|
+
// 缓存
|
|
981
|
+
if (mObj) {
|
|
982
|
+
offsetItem.startIndex = mObj.startIndex;
|
|
983
|
+
offsetItem.endIndex = mObj.endIndex;
|
|
984
|
+
}
|
|
985
|
+
else {
|
|
986
|
+
for (let mcIndex = 0, len = list.length; mcIndex < len; mcIndex++) {
|
|
987
|
+
const mergeItem = list[mcIndex];
|
|
988
|
+
const { startIndex, endIndex } = offsetItem;
|
|
989
|
+
const mergeStartIndex = mergeItem[type];
|
|
990
|
+
const mergeSpanNumber = mergeItem[type + 'span'];
|
|
991
|
+
const mergeEndIndex = mergeStartIndex + mergeSpanNumber;
|
|
992
|
+
if (mergeStartIndex < startIndex && startIndex < mergeEndIndex) {
|
|
993
|
+
offsetItem.startIndex = mergeStartIndex;
|
|
994
|
+
}
|
|
995
|
+
if (mergeStartIndex < endIndex && endIndex < mergeEndIndex) {
|
|
996
|
+
offsetItem.endIndex = mergeEndIndex;
|
|
997
|
+
}
|
|
998
|
+
if (offsetItem.startIndex !== startIndex || offsetItem.endIndex !== endIndex) {
|
|
999
|
+
mcIndex = -1;
|
|
1000
|
+
}
|
|
988
1001
|
}
|
|
1002
|
+
mergeMaps[mKey] = offsetItem;
|
|
989
1003
|
}
|
|
990
1004
|
};
|
|
991
1005
|
function buildMergeData(mergeConfigs) {
|
|
992
1006
|
const mergeMaps = {};
|
|
1007
|
+
const mergeRowMaps = {};
|
|
1008
|
+
const mergeColMaps = {};
|
|
993
1009
|
if (mergeConfigs && mergeConfigs.length) {
|
|
994
1010
|
for (let mIndex = 0; mIndex < mergeConfigs.length; mIndex++) {
|
|
995
1011
|
const { row: _rowIndex, col: _columnIndex, rowspan: mergeRowspan, colspan: mergeColspan } = mergeConfigs[mIndex];
|
|
996
1012
|
for (let i = 0; i < mergeRowspan; i++) {
|
|
1013
|
+
const currRIndex = _rowIndex + i;
|
|
997
1014
|
for (let j = 0; j < mergeColspan; j++) {
|
|
998
|
-
|
|
1015
|
+
const currCIndex = _columnIndex + j;
|
|
1016
|
+
mergeMaps[`${currRIndex}:${currCIndex}`] = !i && !j
|
|
999
1017
|
? {
|
|
1000
1018
|
rowspan: mergeRowspan,
|
|
1001
1019
|
colspan: mergeColspan
|
|
@@ -1008,12 +1026,14 @@ export default defineVxeComponent({
|
|
|
1008
1026
|
}
|
|
1009
1027
|
}
|
|
1010
1028
|
}
|
|
1011
|
-
return mergeMaps;
|
|
1029
|
+
return { mergeMaps, mergeRowMaps, mergeColMaps };
|
|
1012
1030
|
}
|
|
1013
1031
|
const handleUpdateMergeBodyCells = (merges) => {
|
|
1014
1032
|
internalData.mergeBodyList = [];
|
|
1015
1033
|
internalData.mergeBodyMaps = {};
|
|
1016
1034
|
internalData.mergeBodyCellMaps = {};
|
|
1035
|
+
internalData.mergeBodyRowMaps = {};
|
|
1036
|
+
internalData.mergeBodyColMaps = {};
|
|
1017
1037
|
$xeTable.setMergeCells(merges);
|
|
1018
1038
|
};
|
|
1019
1039
|
const handleBodyMerge = (merges) => {
|
|
@@ -1130,6 +1150,8 @@ export default defineVxeComponent({
|
|
|
1130
1150
|
internalData.mergeHeaderList = [];
|
|
1131
1151
|
internalData.mergeHeaderMaps = {};
|
|
1132
1152
|
internalData.mergeHeaderCellMaps = {};
|
|
1153
|
+
internalData.mergeHeaderRowMaps = {};
|
|
1154
|
+
internalData.mergeBodyColMaps = {};
|
|
1133
1155
|
$xeTable.setMergeHeaderCells(merges);
|
|
1134
1156
|
};
|
|
1135
1157
|
const handleHeaderMerge = (merges) => {
|
|
@@ -1231,6 +1253,8 @@ export default defineVxeComponent({
|
|
|
1231
1253
|
internalData.mergeFooterList = [];
|
|
1232
1254
|
internalData.mergeFooterMaps = {};
|
|
1233
1255
|
internalData.mergeFooterCellMaps = {};
|
|
1256
|
+
internalData.mergeFooterRowMaps = {};
|
|
1257
|
+
internalData.mergeFooterColMaps = {};
|
|
1234
1258
|
$xeTable.setMergeFooterCells(merges);
|
|
1235
1259
|
};
|
|
1236
1260
|
const handleFooterMerge = (merges) => {
|
|
@@ -1560,7 +1584,7 @@ export default defineVxeComponent({
|
|
|
1560
1584
|
const updateColumnAllOverflow = () => {
|
|
1561
1585
|
const { showOverflow } = props;
|
|
1562
1586
|
const { isGroup } = reactData;
|
|
1563
|
-
const { tableFullColumn, collectColumn } = internalData;
|
|
1587
|
+
const { fullAllDataRowIdData, tableFullColumn, collectColumn } = internalData;
|
|
1564
1588
|
let isAllOverflow = !!showOverflow;
|
|
1565
1589
|
const handleFunc = (column) => {
|
|
1566
1590
|
if (isAllOverflow && column.showOverflow === false) {
|
|
@@ -1573,6 +1597,9 @@ export default defineVxeComponent({
|
|
|
1573
1597
|
else {
|
|
1574
1598
|
tableFullColumn.forEach(handleFunc);
|
|
1575
1599
|
}
|
|
1600
|
+
XEUtils.each(fullAllDataRowIdData, (rowRest) => {
|
|
1601
|
+
rowRest.height = 0;
|
|
1602
|
+
});
|
|
1576
1603
|
reactData.isAllOverflow = isAllOverflow;
|
|
1577
1604
|
};
|
|
1578
1605
|
/**
|
|
@@ -3762,7 +3789,7 @@ export default defineVxeComponent({
|
|
|
3762
3789
|
};
|
|
3763
3790
|
const loadScrollXData = () => {
|
|
3764
3791
|
const { isScrollXBig } = reactData;
|
|
3765
|
-
const { mergeBodyList, mergeFooterList, scrollXStore } = internalData;
|
|
3792
|
+
const { mergeBodyList, mergeFooterList, mergeBodyRowMaps, scrollXStore } = internalData;
|
|
3766
3793
|
const { preloadSize, startIndex, endIndex, offsetSize } = scrollXStore;
|
|
3767
3794
|
const { toVisibleIndex, visibleSize } = handleVirtualXVisible();
|
|
3768
3795
|
const offsetItem = {
|
|
@@ -3771,7 +3798,7 @@ export default defineVxeComponent({
|
|
|
3771
3798
|
};
|
|
3772
3799
|
scrollXStore.visibleStartIndex = toVisibleIndex - 1;
|
|
3773
3800
|
scrollXStore.visibleEndIndex = toVisibleIndex + visibleSize + 1;
|
|
3774
|
-
calculateMergerOffsetIndex(mergeBodyList.concat(mergeFooterList), offsetItem, 'col');
|
|
3801
|
+
calculateMergerOffsetIndex(mergeBodyList.concat(mergeFooterList), mergeBodyRowMaps, offsetItem, 'col');
|
|
3775
3802
|
const { startIndex: offsetStartIndex, endIndex: offsetEndIndex } = offsetItem;
|
|
3776
3803
|
if (toVisibleIndex <= startIndex || toVisibleIndex >= endIndex - visibleSize - 1) {
|
|
3777
3804
|
if (startIndex !== offsetStartIndex || endIndex !== offsetEndIndex) {
|
|
@@ -4198,7 +4225,7 @@ export default defineVxeComponent({
|
|
|
4198
4225
|
*/
|
|
4199
4226
|
const loadScrollYData = () => {
|
|
4200
4227
|
const { isAllOverflow, isScrollYBig } = reactData;
|
|
4201
|
-
const { mergeBodyList, scrollYStore } = internalData;
|
|
4228
|
+
const { mergeBodyList, mergeBodyColMaps, scrollYStore } = internalData;
|
|
4202
4229
|
const { preloadSize, startIndex, endIndex, offsetSize } = scrollYStore;
|
|
4203
4230
|
const autoOffsetYSize = isAllOverflow ? offsetSize : offsetSize + 1;
|
|
4204
4231
|
const { toVisibleIndex, visibleSize } = handleVirtualYVisible();
|
|
@@ -4208,7 +4235,7 @@ export default defineVxeComponent({
|
|
|
4208
4235
|
};
|
|
4209
4236
|
scrollYStore.visibleStartIndex = toVisibleIndex - 1;
|
|
4210
4237
|
scrollYStore.visibleEndIndex = toVisibleIndex + visibleSize + 1;
|
|
4211
|
-
calculateMergerOffsetIndex(mergeBodyList, offsetItem, 'row');
|
|
4238
|
+
calculateMergerOffsetIndex(mergeBodyList, mergeBodyColMaps, offsetItem, 'row');
|
|
4212
4239
|
const { startIndex: offsetStartIndex, endIndex: offsetEndIndex } = offsetItem;
|
|
4213
4240
|
if (toVisibleIndex <= startIndex || toVisibleIndex >= endIndex - visibleSize - 1) {
|
|
4214
4241
|
if (startIndex !== offsetStartIndex || endIndex !== offsetEndIndex) {
|
|
@@ -4356,11 +4383,6 @@ export default defineVxeComponent({
|
|
|
4356
4383
|
}
|
|
4357
4384
|
return multiple;
|
|
4358
4385
|
};
|
|
4359
|
-
const wheelScrollLeftTo = (scrollLeft, cb) => {
|
|
4360
|
-
requestAnimationFrame(() => {
|
|
4361
|
-
cb(scrollLeft);
|
|
4362
|
-
});
|
|
4363
|
-
};
|
|
4364
4386
|
const syncGanttScrollTop = (scrollTop) => {
|
|
4365
4387
|
const $xeGanttView = internalData.xeGanttView;
|
|
4366
4388
|
if ($xeGanttView) {
|
|
@@ -7452,6 +7474,8 @@ export default defineVxeComponent({
|
|
|
7452
7474
|
internalData.mergeBodyList = [];
|
|
7453
7475
|
internalData.mergeBodyMaps = {};
|
|
7454
7476
|
internalData.mergeBodyCellMaps = {};
|
|
7477
|
+
internalData.mergeBodyRowMaps = {};
|
|
7478
|
+
internalData.mergeBodyColMaps = {};
|
|
7455
7479
|
reactData.mergeBodyFlag++;
|
|
7456
7480
|
return nextTick().then(() => {
|
|
7457
7481
|
return updateStyle();
|
|
@@ -7488,6 +7512,8 @@ export default defineVxeComponent({
|
|
|
7488
7512
|
internalData.mergeHeaderList = [];
|
|
7489
7513
|
internalData.mergeHeaderMaps = {};
|
|
7490
7514
|
internalData.mergeHeaderCellMaps = {};
|
|
7515
|
+
internalData.mergeHeaderRowMaps = {};
|
|
7516
|
+
internalData.mergeBodyColMaps = {};
|
|
7491
7517
|
reactData.mergeHeadFlag++;
|
|
7492
7518
|
return nextTick().then(() => {
|
|
7493
7519
|
return updateStyle();
|
|
@@ -7539,6 +7565,8 @@ export default defineVxeComponent({
|
|
|
7539
7565
|
internalData.mergeFooterList = [];
|
|
7540
7566
|
internalData.mergeFooterMaps = {};
|
|
7541
7567
|
internalData.mergeFooterCellMaps = {};
|
|
7568
|
+
internalData.mergeFooterRowMaps = {};
|
|
7569
|
+
internalData.mergeFooterColMaps = {};
|
|
7542
7570
|
reactData.mergeFootFlag++;
|
|
7543
7571
|
return nextTick().then(() => {
|
|
7544
7572
|
return updateStyle();
|
|
@@ -8780,6 +8808,13 @@ export default defineVxeComponent({
|
|
|
8780
8808
|
updateAfterFullData();
|
|
8781
8809
|
// 如果为虚拟树,将树结构拍平
|
|
8782
8810
|
fullList = handleVirtualTreeToList();
|
|
8811
|
+
// 更新数据后清除合并缓存,涉及分组、筛选、排序等
|
|
8812
|
+
internalData.mergeHeaderRowMaps = {};
|
|
8813
|
+
internalData.mergeHeaderColMaps = {};
|
|
8814
|
+
internalData.mergeBodyRowMaps = {};
|
|
8815
|
+
internalData.mergeBodyColMaps = {};
|
|
8816
|
+
internalData.mergeFooterRowMaps = {};
|
|
8817
|
+
internalData.mergeFooterColMaps = {};
|
|
8783
8818
|
}
|
|
8784
8819
|
const tableData = scrollYLoad ? fullList.slice(scrollYStore.startIndex, scrollYStore.endIndex) : fullList.slice(0);
|
|
8785
8820
|
const visibleDataRowIdMaps = {};
|
|
@@ -9741,22 +9776,31 @@ export default defineVxeComponent({
|
|
|
9741
9776
|
handleSelectRow({ row }, checked, isForce) {
|
|
9742
9777
|
$xeTable.handleBatchSelectRows([row], checked, isForce);
|
|
9743
9778
|
},
|
|
9779
|
+
handleUpdateHeaderMerge() {
|
|
9780
|
+
const { mergeHeaderList } = internalData;
|
|
9781
|
+
const { mergeMaps, mergeRowMaps, mergeColMaps } = buildMergeData(mergeHeaderList);
|
|
9782
|
+
internalData.mergeHeaderCellMaps = mergeMaps;
|
|
9783
|
+
internalData.mergeHeaderRowMaps = mergeRowMaps;
|
|
9784
|
+
internalData.mergeHeaderColMaps = mergeColMaps;
|
|
9785
|
+
reactData.mergeHeadFlag++;
|
|
9786
|
+
},
|
|
9744
9787
|
/**
|
|
9745
9788
|
* 处理合并
|
|
9746
9789
|
*/
|
|
9747
9790
|
handleUpdateBodyMerge() {
|
|
9748
9791
|
const { mergeBodyList } = internalData;
|
|
9749
|
-
|
|
9792
|
+
const { mergeMaps, mergeRowMaps, mergeColMaps } = buildMergeData(mergeBodyList);
|
|
9793
|
+
internalData.mergeBodyCellMaps = mergeMaps;
|
|
9794
|
+
internalData.mergeBodyRowMaps = mergeRowMaps;
|
|
9795
|
+
internalData.mergeBodyColMaps = mergeColMaps;
|
|
9750
9796
|
reactData.mergeBodyFlag++;
|
|
9751
9797
|
},
|
|
9752
|
-
handleUpdateHeaderMerge() {
|
|
9753
|
-
const { mergeHeaderList } = internalData;
|
|
9754
|
-
internalData.mergeHeaderCellMaps = buildMergeData(mergeHeaderList);
|
|
9755
|
-
reactData.mergeHeadFlag++;
|
|
9756
|
-
},
|
|
9757
9798
|
handleUpdateFooterMerge() {
|
|
9758
9799
|
const { mergeFooterList } = internalData;
|
|
9759
|
-
|
|
9800
|
+
const { mergeMaps, mergeRowMaps, mergeColMaps } = buildMergeData(mergeFooterList);
|
|
9801
|
+
internalData.mergeFooterCellMaps = mergeMaps;
|
|
9802
|
+
internalData.mergeFooterRowMaps = mergeRowMaps;
|
|
9803
|
+
internalData.mergeFooterColMaps = mergeColMaps;
|
|
9760
9804
|
reactData.mergeFootFlag++;
|
|
9761
9805
|
},
|
|
9762
9806
|
handleAggregateSummaryData() {
|
|
@@ -11898,8 +11942,9 @@ export default defineVxeComponent({
|
|
|
11898
11942
|
if (isRollX) {
|
|
11899
11943
|
evnt.preventDefault();
|
|
11900
11944
|
internalData.inWheelScroll = true;
|
|
11901
|
-
|
|
11902
|
-
|
|
11945
|
+
wheelScrollLeftTo(scrollLeft, (offsetLeft) => {
|
|
11946
|
+
internalData.inWheelScroll = true;
|
|
11947
|
+
const currLeftNum = offsetLeft;
|
|
11903
11948
|
setScrollLeft(xHandleEl, currLeftNum);
|
|
11904
11949
|
setScrollLeft(bodyScrollElem, currLeftNum);
|
|
11905
11950
|
setScrollLeft(headerScrollElem, currLeftNum);
|
|
@@ -11911,30 +11956,14 @@ export default defineVxeComponent({
|
|
|
11911
11956
|
type: 'table',
|
|
11912
11957
|
fixed: ''
|
|
11913
11958
|
});
|
|
11914
|
-
}
|
|
11915
|
-
else {
|
|
11916
|
-
wheelScrollLeftTo(scrollLeft, (offsetLeft) => {
|
|
11917
|
-
internalData.inWheelScroll = true;
|
|
11918
|
-
const currLeftNum = offsetLeft;
|
|
11919
|
-
setScrollLeft(xHandleEl, currLeftNum);
|
|
11920
|
-
setScrollLeft(bodyScrollElem, currLeftNum);
|
|
11921
|
-
setScrollLeft(headerScrollElem, currLeftNum);
|
|
11922
|
-
setScrollLeft(footerScrollElem, currLeftNum);
|
|
11923
|
-
if (scrollXLoad) {
|
|
11924
|
-
$xeTable.triggerScrollXEvent(evnt);
|
|
11925
|
-
}
|
|
11926
|
-
$xeTable.handleScrollEvent(evnt, isRollY, isRollX, bodyScrollElem.scrollTop, currLeftNum, {
|
|
11927
|
-
type: 'table',
|
|
11928
|
-
fixed: ''
|
|
11929
|
-
});
|
|
11930
|
-
});
|
|
11931
|
-
}
|
|
11959
|
+
});
|
|
11932
11960
|
}
|
|
11933
11961
|
if (isRollY) {
|
|
11934
11962
|
evnt.preventDefault();
|
|
11935
11963
|
internalData.inWheelScroll = true;
|
|
11936
|
-
|
|
11937
|
-
|
|
11964
|
+
wheelScrollTopTo(scrollTop, (offsetTop) => {
|
|
11965
|
+
internalData.inWheelScroll = true;
|
|
11966
|
+
const currTopNum = offsetTop;
|
|
11938
11967
|
setScrollTop(yHandleEl, currTopNum);
|
|
11939
11968
|
setScrollTop(bodyScrollElem, currTopNum);
|
|
11940
11969
|
setScrollTop(leftScrollElem, currTopNum);
|
|
@@ -11944,30 +11973,11 @@ export default defineVxeComponent({
|
|
|
11944
11973
|
if (scrollYLoad) {
|
|
11945
11974
|
$xeTable.triggerScrollYEvent(evnt);
|
|
11946
11975
|
}
|
|
11947
|
-
$xeTable.handleScrollEvent(evnt, isRollY, isRollX,
|
|
11976
|
+
$xeTable.handleScrollEvent(evnt, isRollY, isRollX, offsetTop, bodyScrollElem.scrollLeft, {
|
|
11948
11977
|
type: 'table',
|
|
11949
11978
|
fixed: ''
|
|
11950
11979
|
});
|
|
11951
|
-
}
|
|
11952
|
-
else {
|
|
11953
|
-
scrollTopTo(scrollTop - currScrollTop, (offsetTop) => {
|
|
11954
|
-
internalData.inWheelScroll = true;
|
|
11955
|
-
const currTopNum = bodyScrollElem.scrollTop + offsetTop;
|
|
11956
|
-
setScrollTop(yHandleEl, currTopNum);
|
|
11957
|
-
setScrollTop(bodyScrollElem, currTopNum);
|
|
11958
|
-
setScrollTop(leftScrollElem, currTopNum);
|
|
11959
|
-
setScrollTop(rightScrollElem, currTopNum);
|
|
11960
|
-
setScrollTop(rowExpandEl, currTopNum);
|
|
11961
|
-
syncGanttScrollTop(currTopNum);
|
|
11962
|
-
if (scrollYLoad) {
|
|
11963
|
-
$xeTable.triggerScrollYEvent(evnt);
|
|
11964
|
-
}
|
|
11965
|
-
$xeTable.handleScrollEvent(evnt, isRollY, isRollX, currTopNum, bodyScrollElem.scrollLeft, {
|
|
11966
|
-
type: 'table',
|
|
11967
|
-
fixed: ''
|
|
11968
|
-
});
|
|
11969
|
-
});
|
|
11970
|
-
}
|
|
11980
|
+
});
|
|
11971
11981
|
}
|
|
11972
11982
|
},
|
|
11973
11983
|
triggerVirtualScrollXEvent(evnt) {
|
package/es/table/src/util.js
CHANGED
|
@@ -87,16 +87,22 @@ export function createInternalData() {
|
|
|
87
87
|
mergeHeaderMaps: {},
|
|
88
88
|
// 已合并单元格数据集合
|
|
89
89
|
mergeHeaderCellMaps: {},
|
|
90
|
+
mergeHeaderRowMaps: {},
|
|
91
|
+
mergeHeaderColMaps: {},
|
|
90
92
|
// 合并单元格的数据
|
|
91
93
|
mergeBodyList: [],
|
|
92
94
|
mergeBodyMaps: {},
|
|
93
95
|
// 已合并单元格数据集合
|
|
94
96
|
mergeBodyCellMaps: {},
|
|
97
|
+
mergeBodyRowMaps: {},
|
|
98
|
+
mergeBodyColMaps: {},
|
|
95
99
|
// 合并表尾的数据
|
|
96
100
|
mergeFooterList: [],
|
|
97
101
|
mergeFooterMaps: {},
|
|
98
102
|
// 已合并表尾数据集合
|
|
99
103
|
mergeFooterCellMaps: {},
|
|
104
|
+
mergeFooterRowMaps: {},
|
|
105
|
+
mergeFooterColMaps: {},
|
|
100
106
|
// 已展开的行集合
|
|
101
107
|
rowExpandedMaps: {},
|
|
102
108
|
// 懒加载中的展开行的集合
|
package/es/table/style.css
CHANGED
|
@@ -2507,12 +2507,12 @@
|
|
|
2507
2507
|
}
|
|
2508
2508
|
|
|
2509
2509
|
/*header*/
|
|
2510
|
-
.vxe-table .vxe-table--header-wrapper {
|
|
2511
|
-
color: var(--vxe-ui-table-header-font-color);
|
|
2512
|
-
}
|
|
2513
2510
|
.vxe-table {
|
|
2514
2511
|
/*排序*/
|
|
2515
2512
|
}
|
|
2513
|
+
.vxe-table .vxe-table--header-wrapper {
|
|
2514
|
+
color: var(--vxe-ui-table-header-font-color);
|
|
2515
|
+
}
|
|
2516
2516
|
.vxe-table .vxe-cell--sort {
|
|
2517
2517
|
text-align: center;
|
|
2518
2518
|
position: relative;
|
|
@@ -2866,6 +2866,21 @@
|
|
|
2866
2866
|
color: var(--vxe-ui-font-color);
|
|
2867
2867
|
font-family: var(--vxe-ui-font-family);
|
|
2868
2868
|
direction: ltr;
|
|
2869
|
+
/*边框*/
|
|
2870
|
+
/*边框线*/
|
|
2871
|
+
/*树形节点*/
|
|
2872
|
+
/*行分组*/
|
|
2873
|
+
/*单元格高度*/
|
|
2874
|
+
/*溢出列*/
|
|
2875
|
+
/*展开行*/
|
|
2876
|
+
/*拖拽列*/
|
|
2877
|
+
/*拖拽行把柄*/
|
|
2878
|
+
/*暂无数据*/
|
|
2879
|
+
/*校验不通过*/
|
|
2880
|
+
/*已废弃,旧的校验样式**/
|
|
2881
|
+
/*单元格标记删除状态*/
|
|
2882
|
+
/*单元格编辑状态*/
|
|
2883
|
+
/*可编辑*/
|
|
2869
2884
|
}
|
|
2870
2885
|
.vxe-table--render-default .vxe-table--body-wrapper {
|
|
2871
2886
|
background-color: var(--vxe-ui-layout-background-color);
|
|
@@ -3034,9 +3049,6 @@
|
|
|
3034
3049
|
.vxe-table--render-default .vxe-body--row.row--hover.row--current > .vxe-body--column {
|
|
3035
3050
|
background-color: var(--vxe-ui-table-row-hover-current-background-color);
|
|
3036
3051
|
}
|
|
3037
|
-
.vxe-table--render-default {
|
|
3038
|
-
/*边框*/
|
|
3039
|
-
}
|
|
3040
3052
|
.vxe-table--render-default.border--default.sy-pos--right .vxe-table--scroll-y-top-corner, .vxe-table--render-default.border--full.sy-pos--right .vxe-table--scroll-y-top-corner, .vxe-table--render-default.border--outer.sy-pos--right .vxe-table--scroll-y-top-corner, .vxe-table--render-default.border--inner.sy-pos--right .vxe-table--scroll-y-top-corner {
|
|
3041
3053
|
background-image: linear-gradient(var(--vxe-ui-table-border-color), var(--vxe-ui-table-border-color)), linear-gradient(var(--vxe-ui-table-border-color), var(--vxe-ui-table-border-color));
|
|
3042
3054
|
background-repeat: no-repeat;
|
|
@@ -3401,9 +3413,6 @@
|
|
|
3401
3413
|
width: 0;
|
|
3402
3414
|
float: left;
|
|
3403
3415
|
}
|
|
3404
|
-
.vxe-table--render-default {
|
|
3405
|
-
/*边框线*/
|
|
3406
|
-
}
|
|
3407
3416
|
.vxe-table--render-default .vxe-table--border-line {
|
|
3408
3417
|
position: absolute;
|
|
3409
3418
|
top: 0;
|
|
@@ -3414,9 +3423,6 @@
|
|
|
3414
3423
|
pointer-events: none;
|
|
3415
3424
|
border: var(--vxe-ui-table-border-width) solid var(--vxe-ui-table-border-color);
|
|
3416
3425
|
}
|
|
3417
|
-
.vxe-table--render-default {
|
|
3418
|
-
/*树形节点*/
|
|
3419
|
-
}
|
|
3420
3426
|
.vxe-table--render-default .vxe-tree--line-wrapper {
|
|
3421
3427
|
position: relative;
|
|
3422
3428
|
display: block;
|
|
@@ -3463,9 +3469,6 @@
|
|
|
3463
3469
|
user-select: none;
|
|
3464
3470
|
cursor: pointer;
|
|
3465
3471
|
}
|
|
3466
|
-
.vxe-table--render-default {
|
|
3467
|
-
/*行分组*/
|
|
3468
|
-
}
|
|
3469
3472
|
.vxe-table--render-default .vxe-row-group--node-btn:hover {
|
|
3470
3473
|
color: var(--vxe-ui-font-color);
|
|
3471
3474
|
}
|
|
@@ -3474,9 +3477,6 @@
|
|
|
3474
3477
|
color: var(--vxe-ui-font-lighten-color);
|
|
3475
3478
|
transition: transform 0.1s ease-in-out;
|
|
3476
3479
|
}
|
|
3477
|
-
.vxe-table--render-default {
|
|
3478
|
-
/*单元格高度*/
|
|
3479
|
-
}
|
|
3480
3480
|
.vxe-table--render-default .vxe-body--column.col--ellipsis > .vxe-cell .vxe-row-group-cell,
|
|
3481
3481
|
.vxe-table--render-default .vxe-body--column.col--ellipsis > .vxe-cell .vxe-tree-cell {
|
|
3482
3482
|
overflow: hidden;
|
|
@@ -3497,9 +3497,6 @@
|
|
|
3497
3497
|
flex-direction: row;
|
|
3498
3498
|
align-items: center;
|
|
3499
3499
|
}
|
|
3500
|
-
.vxe-table--render-default {
|
|
3501
|
-
/*溢出列*/
|
|
3502
|
-
}
|
|
3503
3500
|
.vxe-table--render-default .vxe-header--column:not(.col--active).col--ellipsis > .vxe-cell,
|
|
3504
3501
|
.vxe-table--render-default .vxe-body--column:not(.col--active).col--ellipsis > .vxe-cell,
|
|
3505
3502
|
.vxe-table--render-default .vxe-footer--column:not(.col--active).col--ellipsis > .vxe-cell {
|
|
@@ -3533,9 +3530,6 @@
|
|
|
3533
3530
|
flex-direction: row;
|
|
3534
3531
|
align-items: center;
|
|
3535
3532
|
}
|
|
3536
|
-
.vxe-table--render-default {
|
|
3537
|
-
/*展开行*/
|
|
3538
|
-
}
|
|
3539
3533
|
.vxe-table--render-default .vxe-table--row-expanded-wrapper {
|
|
3540
3534
|
position: absolute;
|
|
3541
3535
|
top: 0;
|
|
@@ -3606,18 +3600,12 @@
|
|
|
3606
3600
|
overflow: auto;
|
|
3607
3601
|
outline: 0;
|
|
3608
3602
|
}
|
|
3609
|
-
.vxe-table--render-default {
|
|
3610
|
-
/*拖拽列*/
|
|
3611
|
-
}
|
|
3612
3603
|
.vxe-table--render-default .vxe-table--column.col--drag-move {
|
|
3613
3604
|
transition: transform 0.5s ease;
|
|
3614
3605
|
}
|
|
3615
3606
|
.vxe-table--render-default .vxe-table--column.col--drag-origin > .vxe-cell {
|
|
3616
3607
|
opacity: 0.3;
|
|
3617
3608
|
}
|
|
3618
|
-
.vxe-table--render-default {
|
|
3619
|
-
/*拖拽行把柄*/
|
|
3620
|
-
}
|
|
3621
3609
|
.vxe-table--render-default .vxe-cell--drag-handle {
|
|
3622
3610
|
-webkit-user-select: none;
|
|
3623
3611
|
-moz-user-select: none;
|
|
@@ -3681,9 +3669,6 @@
|
|
|
3681
3669
|
.vxe-table--render-default.size--mini .vxe-cell--radio {
|
|
3682
3670
|
font-size: var(--vxe-radio-font-size-mini);
|
|
3683
3671
|
}
|
|
3684
|
-
.vxe-table--render-default {
|
|
3685
|
-
/*暂无数据*/
|
|
3686
|
-
}
|
|
3687
3672
|
.vxe-table--render-default .vxe-table--empty-placeholder,
|
|
3688
3673
|
.vxe-table--render-default .vxe-table--empty-block {
|
|
3689
3674
|
color: var(--vxe-ui-input-placeholder-color);
|
|
@@ -3724,9 +3709,6 @@
|
|
|
3724
3709
|
.vxe-table--render-default .vxe-body--column.col--selected {
|
|
3725
3710
|
box-shadow: inset 0px 0px 0px 2px var(--vxe-ui-font-primary-color);
|
|
3726
3711
|
}
|
|
3727
|
-
.vxe-table--render-default {
|
|
3728
|
-
/*校验不通过*/
|
|
3729
|
-
}
|
|
3730
3712
|
.vxe-table--render-default .vxe-body--column .vxe-cell--valid-error-tip {
|
|
3731
3713
|
width: 100%;
|
|
3732
3714
|
position: absolute;
|
|
@@ -3783,9 +3765,6 @@
|
|
|
3783
3765
|
.vxe-table--render-default.valid-msg--full .vxe-body--row:last-child .vxe-cell--valid-error-tip {
|
|
3784
3766
|
top: calc(100% - 1.3em);
|
|
3785
3767
|
}
|
|
3786
|
-
.vxe-table--render-default {
|
|
3787
|
-
/*已废弃,旧的校验样式**/
|
|
3788
|
-
}
|
|
3789
3768
|
.vxe-table--render-default.old-cell-valid .vxe-body--column.col--valid-error .vxe-cell--valid-error-tip {
|
|
3790
3769
|
width: 320px;
|
|
3791
3770
|
position: absolute;
|
|
@@ -3813,9 +3792,6 @@
|
|
|
3813
3792
|
transform: translateX(0);
|
|
3814
3793
|
text-align: left;
|
|
3815
3794
|
}
|
|
3816
|
-
.vxe-table--render-default {
|
|
3817
|
-
/*单元格标记删除状态*/
|
|
3818
|
-
}
|
|
3819
3795
|
.vxe-table--render-default .vxe-body--row.row--pending {
|
|
3820
3796
|
color: var(--vxe-ui-font-disabled-color);
|
|
3821
3797
|
opacity: 0.5;
|
|
@@ -3835,9 +3811,6 @@
|
|
|
3835
3811
|
border-bottom: 1px solid var(--vxe-ui-table-validate-error-color);
|
|
3836
3812
|
z-index: 1;
|
|
3837
3813
|
}
|
|
3838
|
-
.vxe-table--render-default {
|
|
3839
|
-
/*单元格编辑状态*/
|
|
3840
|
-
}
|
|
3841
3814
|
.vxe-table--render-default .vxe-body--row.row--new > .vxe-body--column {
|
|
3842
3815
|
position: relative;
|
|
3843
3816
|
}
|
|
@@ -3864,9 +3837,6 @@
|
|
|
3864
3837
|
border-color: transparent var(--vxe-ui-table-cell-dirty-update-color) transparent transparent;
|
|
3865
3838
|
transform: rotate(45deg);
|
|
3866
3839
|
}
|
|
3867
|
-
.vxe-table--render-default {
|
|
3868
|
-
/*可编辑*/
|
|
3869
|
-
}
|
|
3870
3840
|
.vxe-table--render-default.vxe-editable.cell--highlight .vxe-body--column.col--active {
|
|
3871
3841
|
box-shadow: inset 0px 0px 0px 2px var(--vxe-ui-font-primary-color);
|
|
3872
3842
|
}
|
package/es/ui/index.js
CHANGED
package/es/ui/src/dom.js
CHANGED
|
@@ -206,3 +206,24 @@ export function scrollTopTo(diffNum, cb) {
|
|
|
206
206
|
};
|
|
207
207
|
requestAnimationFrame(step);
|
|
208
208
|
}
|
|
209
|
+
let wtlFrame;
|
|
210
|
+
export function wheelScrollLeftTo(scrollLeft, cb) {
|
|
211
|
+
if (wtlFrame) {
|
|
212
|
+
cancelAnimationFrame(wtlFrame);
|
|
213
|
+
}
|
|
214
|
+
wtlFrame = requestAnimationFrame(() => {
|
|
215
|
+
cb(scrollLeft);
|
|
216
|
+
wtlFrame = null;
|
|
217
|
+
});
|
|
218
|
+
}
|
|
219
|
+
let wtaFrame;
|
|
220
|
+
export function wheelScrollTopTo(diffNum, cb) {
|
|
221
|
+
if (wtaFrame) {
|
|
222
|
+
cancelAnimationFrame(wtaFrame);
|
|
223
|
+
}
|
|
224
|
+
wtaFrame = requestAnimationFrame(() => {
|
|
225
|
+
const offsetTop = diffNum;
|
|
226
|
+
cb(offsetTop);
|
|
227
|
+
wtaFrame = null;
|
|
228
|
+
});
|
|
229
|
+
}
|
package/es/ui/src/log.js
CHANGED