vxe-table 4.10.6-beta.9 → 4.10.6
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/grid/src/grid.js +1 -1
- package/es/index.css +1 -1
- package/es/index.min.css +1 -1
- package/es/locale/lang/ar-EG.js +2 -1
- package/es/locale/lang/de-DE.js +2 -1
- package/es/locale/lang/en-US.js +4 -3
- package/es/locale/lang/es-ES.js +2 -1
- package/es/locale/lang/fr-FR.js +2 -1
- package/es/locale/lang/hu-HU.js +2 -1
- package/es/locale/lang/hy-AM.js +2 -1
- package/es/locale/lang/it-IT.js +2 -1
- package/es/locale/lang/ja-JP.js +2 -1
- package/es/locale/lang/ko-KR.js +2 -1
- package/es/locale/lang/nb-NO.js +2 -1
- package/es/locale/lang/pt-BR.js +2 -1
- package/es/locale/lang/ru-RU.js +4 -3
- package/es/locale/lang/th-TH.js +2 -1
- package/es/locale/lang/ug-CN.js +2 -1
- package/es/locale/lang/uk-UA.js +518 -517
- package/es/locale/lang/vi-VN.js +2 -1
- package/es/locale/lang/zh-CHT.js +2 -1
- package/es/locale/lang/zh-CN.js +2 -1
- package/es/style.css +1 -1
- package/es/style.min.css +1 -1
- package/es/table/module/edit/hook.js +7 -7
- package/es/table/module/export/hook.js +97 -62
- package/es/table/module/keyboard/hook.js +63 -27
- package/es/table/src/body.js +118 -84
- package/es/table/src/cell.js +41 -55
- package/es/table/src/column.js +13 -1
- package/es/table/src/columnInfo.js +3 -0
- package/es/table/src/emits.js +2 -0
- package/es/table/src/footer.js +45 -7
- package/es/table/src/header.js +67 -165
- package/es/table/src/props.js +14 -4
- package/es/table/src/table.js +858 -398
- package/es/table/src/util.js +77 -62
- package/es/table/style.css +246 -191
- package/es/table/style.min.css +1 -1
- package/es/ui/index.js +20 -7
- package/es/ui/src/log.js +1 -1
- package/es/vxe-table/style.css +246 -191
- package/es/vxe-table/style.min.css +1 -1
- package/lib/grid/src/grid.js +1 -1
- package/lib/grid/src/grid.min.js +1 -1
- package/lib/index.css +1 -1
- package/lib/index.min.css +1 -1
- package/lib/index.umd.js +1489 -874
- package/lib/index.umd.min.js +1 -1
- package/lib/locale/lang/ar-EG.js +2 -1
- package/lib/locale/lang/ar-EG.min.js +1 -1
- package/lib/locale/lang/de-DE.js +2 -1
- package/lib/locale/lang/de-DE.min.js +1 -1
- package/lib/locale/lang/en-US.js +4 -3
- package/lib/locale/lang/en-US.min.js +1 -1
- package/lib/locale/lang/en-US.umd.js +4 -3
- package/lib/locale/lang/es-ES.js +2 -1
- package/lib/locale/lang/es-ES.min.js +1 -1
- package/lib/locale/lang/es-ES.umd.js +2 -1
- package/lib/locale/lang/fr-FR.js +2 -1
- package/lib/locale/lang/fr-FR.min.js +1 -1
- package/lib/locale/lang/hu-HU.js +2 -1
- package/lib/locale/lang/hu-HU.min.js +1 -1
- package/lib/locale/lang/hu-HU.umd.js +2 -1
- package/lib/locale/lang/hy-AM.js +2 -1
- package/lib/locale/lang/hy-AM.min.js +1 -1
- package/lib/locale/lang/it-IT.js +2 -1
- package/lib/locale/lang/it-IT.min.js +1 -1
- package/lib/locale/lang/ja-JP.js +2 -1
- package/lib/locale/lang/ja-JP.min.js +1 -1
- package/lib/locale/lang/ja-JP.umd.js +2 -1
- package/lib/locale/lang/ko-KR.js +2 -1
- package/lib/locale/lang/ko-KR.min.js +1 -1
- package/lib/locale/lang/ko-KR.umd.js +2 -1
- package/lib/locale/lang/nb-NO.js +2 -1
- package/lib/locale/lang/nb-NO.min.js +1 -1
- package/lib/locale/lang/pt-BR.js +2 -1
- package/lib/locale/lang/pt-BR.min.js +1 -1
- package/lib/locale/lang/pt-BR.umd.js +2 -1
- package/lib/locale/lang/ru-RU.js +4 -3
- package/lib/locale/lang/ru-RU.min.js +1 -1
- package/lib/locale/lang/ru-RU.umd.js +4 -3
- package/lib/locale/lang/th-TH.js +2 -1
- package/lib/locale/lang/th-TH.min.js +1 -1
- package/lib/locale/lang/ug-CN.js +2 -1
- package/lib/locale/lang/ug-CN.min.js +1 -1
- package/lib/locale/lang/uk-UA.js +518 -517
- package/lib/locale/lang/uk-UA.min.js +1 -1
- package/lib/locale/lang/uk-UA.umd.js +518 -517
- package/lib/locale/lang/vi-VN.js +2 -1
- package/lib/locale/lang/vi-VN.min.js +1 -1
- package/lib/locale/lang/zh-CHT.js +2 -1
- package/lib/locale/lang/zh-CHT.min.js +1 -1
- package/lib/locale/lang/zh-CN.js +2 -1
- package/lib/locale/lang/zh-CN.min.js +1 -1
- package/lib/locale/lang/zh-CN.umd.js +2 -1
- package/lib/style.css +1 -1
- package/lib/style.min.css +1 -1
- package/lib/table/module/edit/hook.js +7 -2
- package/lib/table/module/edit/hook.min.js +1 -1
- package/lib/table/module/export/hook.js +97 -57
- package/lib/table/module/export/hook.min.js +1 -1
- package/lib/table/module/keyboard/hook.js +71 -28
- package/lib/table/module/keyboard/hook.min.js +1 -1
- package/lib/table/src/body.js +121 -80
- package/lib/table/src/body.min.js +1 -1
- package/lib/table/src/cell.js +32 -42
- package/lib/table/src/cell.min.js +1 -1
- package/lib/table/src/column.js +13 -1
- package/lib/table/src/column.min.js +1 -1
- package/lib/table/src/columnInfo.js +3 -0
- package/lib/table/src/columnInfo.min.js +1 -1
- package/lib/table/src/emits.js +1 -1
- package/lib/table/src/emits.min.js +1 -1
- package/lib/table/src/footer.js +45 -5
- package/lib/table/src/footer.min.js +1 -1
- package/lib/table/src/header.js +51 -178
- package/lib/table/src/header.min.js +1 -1
- package/lib/table/src/props.js +14 -4
- package/lib/table/src/props.min.js +1 -1
- package/lib/table/src/table.js +911 -384
- package/lib/table/src/table.min.js +1 -1
- package/lib/table/src/util.js +100 -82
- package/lib/table/src/util.min.js +1 -1
- package/lib/table/style/style.css +246 -191
- package/lib/table/style/style.min.css +1 -1
- package/lib/ui/index.js +20 -7
- 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 +246 -191
- package/lib/vxe-table/style/style.min.css +1 -1
- package/package.json +2 -2
- package/packages/grid/src/grid.ts +1 -1
- package/packages/locale/lang/ar-EG.ts +2 -1
- package/packages/locale/lang/de-DE.ts +2 -1
- package/packages/locale/lang/en-US.ts +4 -3
- package/packages/locale/lang/es-ES.ts +2 -1
- package/packages/locale/lang/fr-FR.ts +2 -1
- package/packages/locale/lang/hu-HU.ts +2 -1
- package/packages/locale/lang/hy-AM.ts +2 -1
- package/packages/locale/lang/it-IT.ts +2 -1
- package/packages/locale/lang/ja-JP.ts +2 -1
- package/packages/locale/lang/ko-KR.ts +2 -1
- package/packages/locale/lang/nb-NO.ts +2 -1
- package/packages/locale/lang/pt-BR.ts +2 -1
- package/packages/locale/lang/ru-RU.ts +4 -3
- package/packages/locale/lang/th-TH.ts +2 -1
- package/packages/locale/lang/ug-CN.ts +2 -1
- package/packages/locale/lang/uk-UA.ts +518 -517
- package/packages/locale/lang/vi-VN.ts +2 -1
- package/packages/locale/lang/zh-CHT.ts +2 -1
- package/packages/locale/lang/zh-CN.ts +2 -1
- package/packages/table/module/edit/hook.ts +7 -7
- package/packages/table/module/export/hook.ts +118 -65
- package/packages/table/module/keyboard/hook.ts +59 -25
- package/packages/table/src/body.ts +136 -94
- package/packages/table/src/cell.ts +41 -63
- package/packages/table/src/column.ts +13 -1
- package/packages/table/src/columnInfo.ts +3 -0
- package/packages/table/src/emits.ts +5 -1
- package/packages/table/src/footer.ts +48 -8
- package/packages/table/src/header.ts +67 -165
- package/packages/table/src/props.ts +14 -5
- package/packages/table/src/table.ts +862 -398
- package/packages/table/src/util.ts +81 -62
- package/packages/ui/index.ts +19 -6
- package/styles/components/table.scss +313 -274
- package/styles/theme/base.scss +4 -6
- package/styles/theme/dark.scss +1 -0
- package/styles/theme/light.scss +1 -0
- package/styles/variable.scss +1 -1
- /package/es/{iconfont.1736854674495.ttf → iconfont.1738985856004.ttf} +0 -0
- /package/es/{iconfont.1736854674495.woff → iconfont.1738985856004.woff} +0 -0
- /package/es/{iconfont.1736854674495.woff2 → iconfont.1738985856004.woff2} +0 -0
- /package/lib/{iconfont.1736854674495.ttf → iconfont.1738985856004.ttf} +0 -0
- /package/lib/{iconfont.1736854674495.woff → iconfont.1738985856004.woff} +0 -0
- /package/lib/{iconfont.1736854674495.woff2 → iconfont.1738985856004.woff2} +0 -0
package/lib/table/src/table.js
CHANGED
|
@@ -58,7 +58,6 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
58
58
|
computeSize
|
|
59
59
|
} = useFns.useSize(props);
|
|
60
60
|
const reactData = (0, _vue.reactive)({
|
|
61
|
-
isCalcColumn: false,
|
|
62
61
|
// 低性能的静态列
|
|
63
62
|
staticColumns: [],
|
|
64
63
|
// 渲染的列分组
|
|
@@ -271,15 +270,17 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
271
270
|
isFooter: false
|
|
272
271
|
},
|
|
273
272
|
scrollVMLoading: false,
|
|
274
|
-
|
|
273
|
+
calcCellHeightFlag: 0,
|
|
274
|
+
resizeHeightFlag: 0,
|
|
275
275
|
isCustomStatus: false,
|
|
276
276
|
isDragRowMove: false,
|
|
277
277
|
dragRow: null,
|
|
278
278
|
isDragColMove: false,
|
|
279
279
|
dragCol: null,
|
|
280
280
|
dragTipText: '',
|
|
281
|
-
|
|
282
|
-
|
|
281
|
+
isDragResize: false,
|
|
282
|
+
isRowLoading: false,
|
|
283
|
+
isColLoading: false
|
|
283
284
|
});
|
|
284
285
|
const internalData = {
|
|
285
286
|
tZindex: 0,
|
|
@@ -353,10 +354,6 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
353
354
|
fullDataRowIdData: {},
|
|
354
355
|
fullColumnIdData: {},
|
|
355
356
|
fullColumnFieldData: {},
|
|
356
|
-
// 列选取状态
|
|
357
|
-
columnStatusMaps: {},
|
|
358
|
-
// 行选取状态
|
|
359
|
-
rowStatusMaps: {},
|
|
360
357
|
// prevDragRow: null,
|
|
361
358
|
inited: false,
|
|
362
359
|
tooltipTimeout: null,
|
|
@@ -384,8 +381,8 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
384
381
|
const refTableRightFooter = (0, _vue.ref)();
|
|
385
382
|
const refLeftContainer = (0, _vue.ref)();
|
|
386
383
|
const refRightContainer = (0, _vue.ref)();
|
|
387
|
-
const
|
|
388
|
-
const
|
|
384
|
+
const refColResizeBar = (0, _vue.ref)();
|
|
385
|
+
const refRowResizeBar = (0, _vue.ref)();
|
|
389
386
|
const refEmptyPlaceholder = (0, _vue.ref)();
|
|
390
387
|
const refDragTipElem = (0, _vue.ref)();
|
|
391
388
|
const refDragRowLineElem = (0, _vue.ref)();
|
|
@@ -484,7 +481,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
484
481
|
const computeDefaultRowHeight = (0, _vue.computed)(() => {
|
|
485
482
|
const vSize = computeSize.value;
|
|
486
483
|
const rowHeightMaps = computeRowHeightMaps.value;
|
|
487
|
-
return rowHeightMaps[vSize || 'default'];
|
|
484
|
+
return rowHeightMaps[vSize || 'default'] || 18;
|
|
488
485
|
});
|
|
489
486
|
const computeColumnOpts = (0, _vue.computed)(() => {
|
|
490
487
|
return Object.assign({}, getConfig().table.columnConfig, props.columnConfig);
|
|
@@ -492,6 +489,12 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
492
489
|
const computeCellOpts = (0, _vue.computed)(() => {
|
|
493
490
|
return Object.assign({}, getConfig().table.cellConfig, props.cellConfig);
|
|
494
491
|
});
|
|
492
|
+
const computeHeaderCellOpts = (0, _vue.computed)(() => {
|
|
493
|
+
return Object.assign({}, getConfig().table.headerCellConfig, props.headerCellConfig);
|
|
494
|
+
});
|
|
495
|
+
const computeFooterCellOpts = (0, _vue.computed)(() => {
|
|
496
|
+
return Object.assign({}, getConfig().table.footerCellConfig, props.footerCellConfig);
|
|
497
|
+
});
|
|
495
498
|
const computeRowOpts = (0, _vue.computed)(() => {
|
|
496
499
|
return Object.assign({}, getConfig().table.rowConfig, props.rowConfig);
|
|
497
500
|
});
|
|
@@ -521,6 +524,17 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
521
524
|
const computeTooltipOpts = (0, _vue.computed)(() => {
|
|
522
525
|
return Object.assign({}, getConfig().tooltip, getConfig().table.tooltipConfig, props.tooltipConfig);
|
|
523
526
|
});
|
|
527
|
+
const computeTableTipConfig = (0, _vue.computed)(() => {
|
|
528
|
+
const {
|
|
529
|
+
tooltipStore
|
|
530
|
+
} = reactData;
|
|
531
|
+
const tooltipOpts = computeTooltipOpts.value;
|
|
532
|
+
return Object.assign({}, tooltipOpts, tooltipStore.currOpts);
|
|
533
|
+
});
|
|
534
|
+
const computeValidTipConfig = (0, _vue.computed)(() => {
|
|
535
|
+
const tooltipOpts = computeTooltipOpts.value;
|
|
536
|
+
return Object.assign({}, tooltipOpts);
|
|
537
|
+
});
|
|
524
538
|
const computeEditOpts = (0, _vue.computed)(() => {
|
|
525
539
|
return Object.assign({}, getConfig().table.editConfig, props.editConfig);
|
|
526
540
|
});
|
|
@@ -751,8 +765,8 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
751
765
|
refTableRightFooter,
|
|
752
766
|
refLeftContainer,
|
|
753
767
|
refRightContainer,
|
|
754
|
-
|
|
755
|
-
|
|
768
|
+
refColResizeBar,
|
|
769
|
+
refRowResizeBar,
|
|
756
770
|
refScrollXVirtualElem,
|
|
757
771
|
refScrollYVirtualElem,
|
|
758
772
|
refScrollXHandleElem,
|
|
@@ -774,6 +788,8 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
774
788
|
computeScrollYThreshold,
|
|
775
789
|
computeDefaultRowHeight,
|
|
776
790
|
computeCellOpts,
|
|
791
|
+
computeHeaderCellOpts,
|
|
792
|
+
computeFooterCellOpts,
|
|
777
793
|
computeRowOpts,
|
|
778
794
|
computeRowDragOpts,
|
|
779
795
|
computeColumnDragOpts,
|
|
@@ -925,14 +941,14 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
925
941
|
};
|
|
926
942
|
const computeRowHeight = () => {
|
|
927
943
|
const {
|
|
928
|
-
|
|
929
|
-
} =
|
|
944
|
+
isAllOverflow
|
|
945
|
+
} = reactData;
|
|
930
946
|
const tableHeader = refTableHeader.value;
|
|
931
947
|
const tableBody = refTableBody.value;
|
|
932
948
|
const tableBodyElem = tableBody ? tableBody.$el : null;
|
|
933
949
|
const defaultRowHeight = computeDefaultRowHeight.value;
|
|
934
950
|
let rowHeight = 0;
|
|
935
|
-
if (
|
|
951
|
+
if (isAllOverflow) {
|
|
936
952
|
if (tableBodyElem) {
|
|
937
953
|
const tableHeaderElem = tableHeader ? tableHeader.$el : null;
|
|
938
954
|
let firstTrElem;
|
|
@@ -955,16 +971,17 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
955
971
|
};
|
|
956
972
|
const handleVirtualYVisible = currScrollTop => {
|
|
957
973
|
const {
|
|
958
|
-
|
|
959
|
-
} = props;
|
|
960
|
-
const {
|
|
961
|
-
rowHeight
|
|
974
|
+
isAllOverflow
|
|
962
975
|
} = reactData;
|
|
963
976
|
const {
|
|
964
977
|
elemStore,
|
|
978
|
+
isResizeCellHeight,
|
|
965
979
|
afterFullData,
|
|
966
980
|
fullAllDataRowIdData
|
|
967
981
|
} = internalData;
|
|
982
|
+
const rowOpts = computeRowOpts.value;
|
|
983
|
+
const cellOpts = computeCellOpts.value;
|
|
984
|
+
const defaultRowHeight = computeDefaultRowHeight.value;
|
|
968
985
|
const bodyScrollElem = (0, _util.getRefElem)(elemStore['main-body-scroll']);
|
|
969
986
|
if (bodyScrollElem) {
|
|
970
987
|
const clientHeight = bodyScrollElem.clientHeight;
|
|
@@ -973,15 +990,16 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
973
990
|
let toVisibleIndex = -1;
|
|
974
991
|
let offsetTop = 0;
|
|
975
992
|
let visibleSize = 0;
|
|
976
|
-
|
|
977
|
-
|
|
978
|
-
|
|
993
|
+
const isCustomCellHeight = isResizeCellHeight || cellOpts.height || rowOpts.height;
|
|
994
|
+
if (!isCustomCellHeight && isAllOverflow) {
|
|
995
|
+
toVisibleIndex = Math.floor(scrollTop / defaultRowHeight);
|
|
996
|
+
visibleSize = Math.ceil(clientHeight / defaultRowHeight) + 1;
|
|
979
997
|
} else {
|
|
980
998
|
for (let rIndex = 0, rLen = afterFullData.length; rIndex < rLen; rIndex++) {
|
|
981
999
|
const row = afterFullData[rIndex];
|
|
982
1000
|
const rowid = (0, _util.getRowid)($xeTable, row);
|
|
983
|
-
const rowRest = fullAllDataRowIdData[rowid];
|
|
984
|
-
offsetTop += rowRest
|
|
1001
|
+
const rowRest = fullAllDataRowIdData[rowid] || {};
|
|
1002
|
+
offsetTop += rowRest.resizeHeight || rowRest.height || cellOpts.height || rowOpts.height || defaultRowHeight;
|
|
985
1003
|
if (toVisibleIndex === -1 && scrollTop < offsetTop) {
|
|
986
1004
|
toVisibleIndex = rIndex;
|
|
987
1005
|
}
|
|
@@ -1372,56 +1390,40 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
1372
1390
|
internalData.customMaxHeight = calcTableHeight('maxHeight');
|
|
1373
1391
|
};
|
|
1374
1392
|
const calcColumnAutoWidth = (column, wrapperEl) => {
|
|
1375
|
-
const
|
|
1376
|
-
|
|
1377
|
-
|
|
1378
|
-
if (firstCellEl) {
|
|
1379
|
-
const cellStyle = getComputedStyle(firstCellEl);
|
|
1380
|
-
|
|
1381
|
-
}
|
|
1382
|
-
let colWidth = column.renderAutoWidth -
|
|
1383
|
-
|
|
1384
|
-
const
|
|
1385
|
-
|
|
1386
|
-
|
|
1387
|
-
|
|
1388
|
-
_xeUtils.default.arrayEach(cellEl.children, btnEl => {
|
|
1389
|
-
titleWidth += btnEl.offsetWidth + 1;
|
|
1390
|
-
});
|
|
1391
|
-
} else {
|
|
1392
|
-
const labelEl = cellEl.firstElementChild;
|
|
1393
|
-
if (labelEl) {
|
|
1394
|
-
titleWidth = labelEl.offsetWidth;
|
|
1395
|
-
}
|
|
1396
|
-
}
|
|
1397
|
-
if (titleWidth) {
|
|
1398
|
-
colWidth = Math.max(colWidth, Math.ceil(titleWidth) + 4);
|
|
1399
|
-
}
|
|
1400
|
-
});
|
|
1401
|
-
return colWidth + paddingSize;
|
|
1393
|
+
const cellElemList = wrapperEl.querySelectorAll(`.vxe-cell--wrapper[colid="${column.id}"]`);
|
|
1394
|
+
let leftRightPadding = 0;
|
|
1395
|
+
const firstCellEl = cellElemList[0];
|
|
1396
|
+
if (firstCellEl && firstCellEl.parentElement) {
|
|
1397
|
+
const cellStyle = getComputedStyle(firstCellEl.parentElement);
|
|
1398
|
+
leftRightPadding = Math.ceil(_xeUtils.default.toNumber(cellStyle.paddingLeft) + _xeUtils.default.toNumber(cellStyle.paddingRight));
|
|
1399
|
+
}
|
|
1400
|
+
let colWidth = column.renderAutoWidth - leftRightPadding;
|
|
1401
|
+
for (let i = 0; i < cellElemList.length; i++) {
|
|
1402
|
+
const celEl = cellElemList[i];
|
|
1403
|
+
colWidth = Math.max(colWidth, celEl ? Math.ceil(celEl.scrollWidth) + 4 : 0);
|
|
1404
|
+
}
|
|
1405
|
+
return colWidth + leftRightPadding;
|
|
1402
1406
|
};
|
|
1403
1407
|
const calcCellWidth = () => {
|
|
1404
1408
|
const autoWidthColumnList = computeAutoWidthColumnList.value;
|
|
1405
|
-
|
|
1406
|
-
|
|
1407
|
-
|
|
1408
|
-
|
|
1409
|
-
|
|
1410
|
-
|
|
1411
|
-
|
|
1412
|
-
|
|
1413
|
-
|
|
1414
|
-
|
|
1415
|
-
|
|
1416
|
-
|
|
1417
|
-
|
|
1418
|
-
|
|
1419
|
-
|
|
1420
|
-
|
|
1421
|
-
|
|
1422
|
-
|
|
1423
|
-
reactData.isCalcColumn = false;
|
|
1424
|
-
});
|
|
1409
|
+
const {
|
|
1410
|
+
fullColumnIdData
|
|
1411
|
+
} = internalData;
|
|
1412
|
+
const el = refElem.value;
|
|
1413
|
+
if (el) {
|
|
1414
|
+
el.setAttribute('data-calc-col', 'Y');
|
|
1415
|
+
autoWidthColumnList.forEach(column => {
|
|
1416
|
+
const colid = column.id;
|
|
1417
|
+
const colRest = fullColumnIdData[colid];
|
|
1418
|
+
const colWidth = calcColumnAutoWidth(column, el);
|
|
1419
|
+
if (colRest) {
|
|
1420
|
+
colRest.width = Math.max(colWidth, colRest.width);
|
|
1421
|
+
}
|
|
1422
|
+
column.renderAutoWidth = colWidth;
|
|
1423
|
+
});
|
|
1424
|
+
$xeTable.analyColumnWidth();
|
|
1425
|
+
el.removeAttribute('data-calc-col');
|
|
1426
|
+
}
|
|
1425
1427
|
};
|
|
1426
1428
|
/**
|
|
1427
1429
|
* 列宽算法,计算单元格列宽,动态分配可用剩余空间
|
|
@@ -1477,39 +1479,39 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
1477
1479
|
});
|
|
1478
1480
|
// 最小自适应
|
|
1479
1481
|
autoMinList.forEach(column => {
|
|
1480
|
-
const
|
|
1481
|
-
tableWidth +=
|
|
1482
|
-
column.renderWidth =
|
|
1482
|
+
const caWidth = Math.max(60, _xeUtils.default.toInteger(column.renderAutoWidth));
|
|
1483
|
+
tableWidth += caWidth;
|
|
1484
|
+
column.renderWidth = caWidth;
|
|
1483
1485
|
});
|
|
1484
1486
|
// 最小百分比
|
|
1485
1487
|
scaleMinList.forEach(column => {
|
|
1486
|
-
const
|
|
1487
|
-
tableWidth +=
|
|
1488
|
-
column.renderWidth =
|
|
1488
|
+
const smWidth = Math.floor(_xeUtils.default.toInteger(column.minWidth) * meanWidth);
|
|
1489
|
+
tableWidth += smWidth;
|
|
1490
|
+
column.renderWidth = smWidth;
|
|
1489
1491
|
});
|
|
1490
1492
|
// 固定百分比
|
|
1491
1493
|
scaleList.forEach(column => {
|
|
1492
|
-
const
|
|
1493
|
-
tableWidth +=
|
|
1494
|
-
column.renderWidth =
|
|
1494
|
+
const sfWidth = Math.floor(_xeUtils.default.toInteger(column.width) * meanWidth);
|
|
1495
|
+
tableWidth += sfWidth;
|
|
1496
|
+
column.renderWidth = sfWidth;
|
|
1495
1497
|
});
|
|
1496
1498
|
// 固定宽
|
|
1497
1499
|
pxList.forEach(column => {
|
|
1498
|
-
const
|
|
1499
|
-
tableWidth +=
|
|
1500
|
-
column.renderWidth =
|
|
1500
|
+
const pWidth = _xeUtils.default.toInteger(column.width);
|
|
1501
|
+
tableWidth += pWidth;
|
|
1502
|
+
column.renderWidth = pWidth;
|
|
1501
1503
|
});
|
|
1502
1504
|
// 自适应宽
|
|
1503
1505
|
autoList.forEach(column => {
|
|
1504
|
-
const
|
|
1505
|
-
tableWidth +=
|
|
1506
|
-
column.renderWidth =
|
|
1506
|
+
const aWidth = Math.max(60, _xeUtils.default.toInteger(column.renderAutoWidth));
|
|
1507
|
+
tableWidth += aWidth;
|
|
1508
|
+
column.renderWidth = aWidth;
|
|
1507
1509
|
});
|
|
1508
1510
|
// 调整了列宽
|
|
1509
1511
|
resizeList.forEach(column => {
|
|
1510
|
-
const
|
|
1511
|
-
tableWidth +=
|
|
1512
|
-
column.renderWidth =
|
|
1512
|
+
const reWidth = _xeUtils.default.toInteger(column.resizeWidth);
|
|
1513
|
+
tableWidth += reWidth;
|
|
1514
|
+
column.renderWidth = reWidth;
|
|
1513
1515
|
});
|
|
1514
1516
|
remainWidth -= tableWidth;
|
|
1515
1517
|
meanWidth = remainWidth > 0 ? Math.floor(remainWidth / (scaleMinList.length + pxMinList.length + autoMinList.length + remainList.length)) : 0;
|
|
@@ -1549,7 +1551,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
1549
1551
|
}
|
|
1550
1552
|
const tableHeight = bodyElem.offsetHeight;
|
|
1551
1553
|
const overflowY = yHandleEl.scrollHeight > yHandleEl.clientHeight;
|
|
1552
|
-
reactData.scrollbarWidth =
|
|
1554
|
+
reactData.scrollbarWidth = Math.max(scrollbarOpts.width || 0, yHandleEl.offsetWidth - yHandleEl.clientWidth);
|
|
1553
1555
|
reactData.overflowY = overflowY;
|
|
1554
1556
|
internalData.tableWidth = tableWidth;
|
|
1555
1557
|
internalData.tableHeight = tableHeight;
|
|
@@ -1558,7 +1560,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
1558
1560
|
const headerHeight = headerTableElem ? headerTableElem.clientHeight : 0;
|
|
1559
1561
|
const overflowX = tableWidth > bodyWidth;
|
|
1560
1562
|
const footerHeight = footerTableElem ? footerTableElem.clientHeight : 0;
|
|
1561
|
-
reactData.scrollbarHeight =
|
|
1563
|
+
reactData.scrollbarHeight = Math.max(scrollbarOpts.height || 0, xHandleEl.offsetHeight - xHandleEl.clientHeight);
|
|
1562
1564
|
internalData.headerHeight = headerHeight;
|
|
1563
1565
|
internalData.footerHeight = footerHeight;
|
|
1564
1566
|
reactData.overflowX = overflowX;
|
|
@@ -1568,64 +1570,43 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
1568
1570
|
$xeTable.checkScrolling();
|
|
1569
1571
|
}
|
|
1570
1572
|
};
|
|
1571
|
-
|
|
1572
|
-
|
|
1573
|
-
|
|
1574
|
-
|
|
1575
|
-
|
|
1576
|
-
|
|
1577
|
-
|
|
1578
|
-
|
|
1579
|
-
|
|
1580
|
-
|
|
1581
|
-
|
|
1582
|
-
|
|
1583
|
-
// }
|
|
1573
|
+
const calcCellAutoHeight = (rowRest, wrapperEl) => {
|
|
1574
|
+
const cellElemList = wrapperEl.querySelectorAll(`.vxe-cell--wrapper[rowid="${rowRest.rowid}"]`);
|
|
1575
|
+
let colHeight = rowRest.height;
|
|
1576
|
+
for (let i = 0; i < cellElemList.length; i++) {
|
|
1577
|
+
const cellElem = cellElemList[i];
|
|
1578
|
+
const tdEl = cellElem.parentElement;
|
|
1579
|
+
const topBottomPadding = Math.ceil(_xeUtils.default.toNumber(tdEl.style.paddingTop) + _xeUtils.default.toNumber(tdEl.style.paddingBottom));
|
|
1580
|
+
const cellHeight = cellElem ? cellElem.clientHeight : 0;
|
|
1581
|
+
colHeight = Math.max(colHeight - topBottomPadding, Math.ceil(cellHeight));
|
|
1582
|
+
}
|
|
1583
|
+
return colHeight;
|
|
1584
|
+
};
|
|
1584
1585
|
const calcCellHeight = () => {
|
|
1585
|
-
const {
|
|
1586
|
-
showOverflow
|
|
1587
|
-
} = props;
|
|
1588
1586
|
const {
|
|
1589
1587
|
tableData,
|
|
1588
|
+
isAllOverflow,
|
|
1589
|
+
scrollYLoad,
|
|
1590
1590
|
scrollXLoad
|
|
1591
1591
|
} = reactData;
|
|
1592
1592
|
const {
|
|
1593
1593
|
fullAllDataRowIdData
|
|
1594
1594
|
} = internalData;
|
|
1595
|
+
const defaultRowHeight = computeDefaultRowHeight.value;
|
|
1595
1596
|
const el = refElem.value;
|
|
1596
|
-
if (!
|
|
1597
|
-
|
|
1598
|
-
let paddingBottom = 0;
|
|
1599
|
-
let calcPadding = false;
|
|
1597
|
+
if (!isAllOverflow && scrollYLoad && el) {
|
|
1598
|
+
el.setAttribute('data-calc-row', 'Y');
|
|
1600
1599
|
tableData.forEach(row => {
|
|
1601
1600
|
const rowid = (0, _util.getRowid)($xeTable, row);
|
|
1602
1601
|
const rowRest = fullAllDataRowIdData[rowid];
|
|
1603
|
-
|
|
1604
|
-
|
|
1605
|
-
|
|
1606
|
-
for (let i = 0; i < cellList.length; i++) {
|
|
1607
|
-
const cellElem = cellList[i];
|
|
1608
|
-
const tdEl = cellElem.parentElement;
|
|
1609
|
-
if (!tdEl || !tdEl.clientWidth) {
|
|
1610
|
-
break;
|
|
1611
|
-
}
|
|
1612
|
-
if (!calcPadding) {
|
|
1613
|
-
paddingTop = _xeUtils.default.toNumber(getComputedStyle(tdEl).paddingTop);
|
|
1614
|
-
paddingBottom = _xeUtils.default.toNumber(getComputedStyle(tdEl).paddingBottom);
|
|
1615
|
-
calcPadding = true;
|
|
1616
|
-
}
|
|
1617
|
-
let cellHeight = paddingTop + paddingBottom;
|
|
1618
|
-
if (cellElem) {
|
|
1619
|
-
cellHeight += cellElem.clientHeight;
|
|
1620
|
-
}
|
|
1621
|
-
height = Math.max(height, cellHeight);
|
|
1622
|
-
}
|
|
1623
|
-
rowRest.height = scrollXLoad ? Math.max(rowRest.height, height) : height;
|
|
1602
|
+
if (rowRest) {
|
|
1603
|
+
const reHeight = calcCellAutoHeight(rowRest, el);
|
|
1604
|
+
rowRest.height = Math.max(defaultRowHeight, scrollXLoad ? Math.max(rowRest.height, reHeight) : reHeight);
|
|
1624
1605
|
}
|
|
1606
|
+
el.removeAttribute('data-calc-row');
|
|
1625
1607
|
});
|
|
1626
|
-
reactData.
|
|
1608
|
+
reactData.calcCellHeightFlag++;
|
|
1627
1609
|
}
|
|
1628
|
-
// updateCellOffset()
|
|
1629
1610
|
};
|
|
1630
1611
|
const getOrderField = column => {
|
|
1631
1612
|
const {
|
|
@@ -1679,6 +1660,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
1679
1660
|
parent: null,
|
|
1680
1661
|
level: 0,
|
|
1681
1662
|
height: 0,
|
|
1663
|
+
resizeHeight: 0,
|
|
1682
1664
|
oTop: 0
|
|
1683
1665
|
};
|
|
1684
1666
|
fullAllDataRowIdData[rowid] = rest;
|
|
@@ -1728,6 +1710,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
1728
1710
|
parent: null,
|
|
1729
1711
|
level: 0,
|
|
1730
1712
|
height: 0,
|
|
1713
|
+
resizeHeight: 0,
|
|
1731
1714
|
oTop: 0
|
|
1732
1715
|
};
|
|
1733
1716
|
fullAllDataRowIdData[rowid] = rest;
|
|
@@ -1997,7 +1980,6 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
1997
1980
|
const updateStyle = () => {
|
|
1998
1981
|
const {
|
|
1999
1982
|
border,
|
|
2000
|
-
showOverflow: allColumnOverflow,
|
|
2001
1983
|
showHeaderOverflow: allColumnHeaderOverflow,
|
|
2002
1984
|
showFooterOverflow: allColumnFooterOverflow,
|
|
2003
1985
|
mouseConfig,
|
|
@@ -2010,7 +1992,9 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
2010
1992
|
tableColumn,
|
|
2011
1993
|
scrollXLoad,
|
|
2012
1994
|
scrollYLoad,
|
|
1995
|
+
overflowX,
|
|
2013
1996
|
scrollbarWidth,
|
|
1997
|
+
overflowY,
|
|
2014
1998
|
scrollbarHeight,
|
|
2015
1999
|
columnStore,
|
|
2016
2000
|
editStore,
|
|
@@ -2034,6 +2018,8 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
2034
2018
|
return;
|
|
2035
2019
|
}
|
|
2036
2020
|
const containerList = ['main', 'left', 'right'];
|
|
2021
|
+
const osbWidth = overflowY ? scrollbarWidth : 0;
|
|
2022
|
+
const osbHeight = overflowX ? scrollbarHeight : 0;
|
|
2037
2023
|
const emptyPlaceholderElem = refEmptyPlaceholder.value;
|
|
2038
2024
|
const cellOffsetWidth = computeCellOffsetWidth.value;
|
|
2039
2025
|
const mouseOpts = computeMouseOpts.value;
|
|
@@ -2041,16 +2027,16 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
2041
2027
|
const bodyTableElem = (0, _util.getRefElem)(elemStore['main-body-table']);
|
|
2042
2028
|
if (emptyPlaceholderElem) {
|
|
2043
2029
|
emptyPlaceholderElem.style.top = `${headerHeight}px`;
|
|
2044
|
-
emptyPlaceholderElem.style.height = bodyWrapperElem ? `${bodyWrapperElem.offsetHeight -
|
|
2030
|
+
emptyPlaceholderElem.style.height = bodyWrapperElem ? `${bodyWrapperElem.offsetHeight - osbHeight}px` : '';
|
|
2045
2031
|
}
|
|
2046
2032
|
let bodyHeight = 0;
|
|
2047
2033
|
let bodyMaxHeight = 0;
|
|
2048
|
-
const bodyMinHeight = customMinHeight - headerHeight - footerHeight -
|
|
2034
|
+
const bodyMinHeight = customMinHeight - headerHeight - footerHeight - osbHeight;
|
|
2049
2035
|
if (customMaxHeight) {
|
|
2050
|
-
bodyMaxHeight = Math.max(bodyMinHeight, customMaxHeight - headerHeight - footerHeight -
|
|
2036
|
+
bodyMaxHeight = Math.max(bodyMinHeight, customMaxHeight - headerHeight - footerHeight - osbHeight);
|
|
2051
2037
|
}
|
|
2052
2038
|
if (customHeight) {
|
|
2053
|
-
bodyHeight = customHeight - headerHeight - footerHeight -
|
|
2039
|
+
bodyHeight = customHeight - headerHeight - footerHeight - osbHeight;
|
|
2054
2040
|
}
|
|
2055
2041
|
if (!bodyHeight) {
|
|
2056
2042
|
if (bodyTableElem) {
|
|
@@ -2068,27 +2054,27 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
2068
2054
|
const scrollbarXToTop = computeScrollbarXToTop.value;
|
|
2069
2055
|
const scrollXVirtualEl = refScrollXVirtualElem.value;
|
|
2070
2056
|
if (scrollXVirtualEl) {
|
|
2071
|
-
scrollXVirtualEl.style.height = `${
|
|
2072
|
-
scrollXVirtualEl.style.visibility =
|
|
2057
|
+
scrollXVirtualEl.style.height = `${osbHeight}px`;
|
|
2058
|
+
scrollXVirtualEl.style.visibility = overflowX ? 'visible' : 'hidden';
|
|
2073
2059
|
}
|
|
2074
2060
|
const xWrapperEl = refScrollXWrapperElem.value;
|
|
2075
2061
|
if (xWrapperEl) {
|
|
2076
|
-
xWrapperEl.style.left = scrollbarXToTop ? `${
|
|
2077
|
-
xWrapperEl.style.width = `${el.clientWidth -
|
|
2062
|
+
xWrapperEl.style.left = scrollbarXToTop ? `${osbWidth}px` : '';
|
|
2063
|
+
xWrapperEl.style.width = `${el.clientWidth - osbWidth}px`;
|
|
2078
2064
|
}
|
|
2079
2065
|
if (xLeftCornerEl) {
|
|
2080
|
-
xLeftCornerEl.style.width = scrollbarXToTop ? `${
|
|
2081
|
-
xLeftCornerEl.style.display = scrollbarXToTop ?
|
|
2066
|
+
xLeftCornerEl.style.width = scrollbarXToTop ? `${osbWidth}px` : '';
|
|
2067
|
+
xLeftCornerEl.style.display = scrollbarXToTop ? osbWidth && osbHeight ? 'block' : '' : '';
|
|
2082
2068
|
}
|
|
2083
2069
|
if (xRightCornerEl) {
|
|
2084
|
-
xRightCornerEl.style.width = scrollbarXToTop ? '' : `${
|
|
2085
|
-
xRightCornerEl.style.display = scrollbarXToTop ? '' :
|
|
2070
|
+
xRightCornerEl.style.width = scrollbarXToTop ? '' : `${osbWidth}px`;
|
|
2071
|
+
xRightCornerEl.style.display = scrollbarXToTop ? '' : osbWidth && osbHeight ? 'block' : '';
|
|
2086
2072
|
}
|
|
2087
2073
|
const scrollYVirtualEl = refScrollYVirtualElem.value;
|
|
2088
2074
|
if (scrollYVirtualEl) {
|
|
2089
|
-
scrollYVirtualEl.style.width = `${
|
|
2075
|
+
scrollYVirtualEl.style.width = `${osbWidth}px`;
|
|
2090
2076
|
scrollYVirtualEl.style.height = `${bodyHeight + headerHeight + footerHeight}px`;
|
|
2091
|
-
scrollYVirtualEl.style.visibility =
|
|
2077
|
+
scrollYVirtualEl.style.visibility = overflowY ? 'visible' : 'hidden';
|
|
2092
2078
|
}
|
|
2093
2079
|
const yTopCornerEl = refScrollYTopCornerElem.value;
|
|
2094
2080
|
if (yTopCornerEl) {
|
|
@@ -2207,14 +2193,14 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
2207
2193
|
if (wrapperElem) {
|
|
2208
2194
|
wrapperElem.style.top = `${headerHeight}px`;
|
|
2209
2195
|
}
|
|
2210
|
-
fixedWrapperElem.style.height = `${customHeight > 0 ? customHeight : tableHeight + headerHeight + footerHeight +
|
|
2196
|
+
fixedWrapperElem.style.height = `${customHeight > 0 ? customHeight : tableHeight + headerHeight + footerHeight + osbHeight}px`;
|
|
2211
2197
|
fixedWrapperElem.style.width = `${fixedColumn.reduce((previous, column) => previous + column.renderWidth, 0)}px`;
|
|
2212
2198
|
}
|
|
2213
2199
|
let tWidth = tableWidth;
|
|
2214
2200
|
let renderColumnList = tableColumn;
|
|
2215
2201
|
let isOptimizeMode = false;
|
|
2216
2202
|
// 如果是使用优化模式
|
|
2217
|
-
if (scrollXLoad || scrollYLoad ||
|
|
2203
|
+
if (scrollXLoad || scrollYLoad || isAllOverflow) {
|
|
2218
2204
|
if (expandColumn || spanMethod || footerSpanMethod) {
|
|
2219
2205
|
// 如果不支持优化模式
|
|
2220
2206
|
} else {
|
|
@@ -2236,7 +2222,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
2236
2222
|
if (tableElem) {
|
|
2237
2223
|
tableElem.style.width = tWidth ? `${tWidth}px` : '';
|
|
2238
2224
|
// 兼容性处理
|
|
2239
|
-
tableElem.style.paddingRight =
|
|
2225
|
+
tableElem.style.paddingRight = osbWidth && fixedType && (_dom.browse['-moz'] || _dom.browse.safari) ? `${osbWidth}px` : '';
|
|
2240
2226
|
}
|
|
2241
2227
|
const emptyBlockElem = (0, _util.getRefElem)(elemStore[`${name}-${layout}-emptyBlock`]);
|
|
2242
2228
|
if (emptyBlockElem) {
|
|
@@ -2271,7 +2257,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
2271
2257
|
// 如果是固定列
|
|
2272
2258
|
if (fixedWrapperElem) {
|
|
2273
2259
|
if (wrapperElem) {
|
|
2274
|
-
wrapperElem.style.top = `${customHeight > 0 ? customHeight - footerHeight -
|
|
2260
|
+
wrapperElem.style.top = `${customHeight > 0 ? customHeight - footerHeight - osbHeight : tableHeight + headerHeight}px`;
|
|
2275
2261
|
}
|
|
2276
2262
|
}
|
|
2277
2263
|
}
|
|
@@ -2298,7 +2284,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
2298
2284
|
} else if (layout === 'footer') {
|
|
2299
2285
|
cellOverflow = _xeUtils.default.isUndefined(showFooterOverflow) || _xeUtils.default.isNull(showFooterOverflow) ? allColumnFooterOverflow : showFooterOverflow;
|
|
2300
2286
|
} else {
|
|
2301
|
-
cellOverflow = _xeUtils.default.isUndefined(showOverflow) || _xeUtils.default.isNull(showOverflow) ?
|
|
2287
|
+
cellOverflow = _xeUtils.default.isUndefined(showOverflow) || _xeUtils.default.isNull(showOverflow) ? isAllOverflow : showOverflow;
|
|
2302
2288
|
}
|
|
2303
2289
|
const showEllipsis = cellOverflow === 'ellipsis';
|
|
2304
2290
|
const showTitle = cellOverflow === 'title';
|
|
@@ -2992,11 +2978,10 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
2992
2978
|
* 加载表格数据
|
|
2993
2979
|
* @param {Array} datas 数据
|
|
2994
2980
|
*/
|
|
2995
|
-
const loadTableData = datas => {
|
|
2981
|
+
const loadTableData = (datas, isReset) => {
|
|
2996
2982
|
const {
|
|
2997
2983
|
keepSource,
|
|
2998
|
-
treeConfig
|
|
2999
|
-
showOverflow
|
|
2984
|
+
treeConfig
|
|
3000
2985
|
} = props;
|
|
3001
2986
|
const {
|
|
3002
2987
|
editStore,
|
|
@@ -3009,7 +2994,6 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
3009
2994
|
lastScrollTop
|
|
3010
2995
|
} = internalData;
|
|
3011
2996
|
const treeOpts = computeTreeOpts.value;
|
|
3012
|
-
const rowOpts = computeRowOpts.value;
|
|
3013
2997
|
const {
|
|
3014
2998
|
transform
|
|
3015
2999
|
} = treeOpts;
|
|
@@ -3056,42 +3040,30 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
3056
3040
|
scrollYStore.endIndex = 1;
|
|
3057
3041
|
scrollXStore.startIndex = 0;
|
|
3058
3042
|
scrollXStore.endIndex = 1;
|
|
3043
|
+
reactData.isRowLoading = true;
|
|
3059
3044
|
reactData.scrollVMLoading = false;
|
|
3060
3045
|
editStore.insertMaps = {};
|
|
3061
3046
|
editStore.removeMaps = {};
|
|
3062
3047
|
const sYLoad = updateScrollYStatus(fullData);
|
|
3048
|
+
reactData.isDragColMove = false;
|
|
3063
3049
|
reactData.isDragRowMove = false;
|
|
3064
3050
|
// 全量数据
|
|
3065
3051
|
internalData.tableFullData = fullData;
|
|
3066
3052
|
internalData.tableFullTreeData = treeData;
|
|
3067
3053
|
// 缓存数据
|
|
3068
|
-
|
|
3054
|
+
$xeTable.cacheRowMap(true, isReset);
|
|
3069
3055
|
// 原始数据
|
|
3070
3056
|
internalData.tableSynchData = datas;
|
|
3057
|
+
if (isReset) {
|
|
3058
|
+
internalData.isResizeCellHeight = false;
|
|
3059
|
+
reactData.rowExpandedMaps = {};
|
|
3060
|
+
reactData.rowExpandLazyLoadedMaps = {};
|
|
3061
|
+
reactData.treeExpandedMaps = {};
|
|
3062
|
+
reactData.treeExpandLazyLoadedMaps = {};
|
|
3063
|
+
}
|
|
3071
3064
|
// 克隆原数据,用于显示编辑状态,与编辑值做对比
|
|
3072
3065
|
if (keepSource) {
|
|
3073
|
-
|
|
3074
|
-
}
|
|
3075
|
-
if (sYLoad) {
|
|
3076
|
-
if (showOverflow) {
|
|
3077
|
-
if (!rowOpts.height) {
|
|
3078
|
-
const errColumn = internalData.tableFullColumn.find(column => column.showOverflow === false);
|
|
3079
|
-
if (errColumn) {
|
|
3080
|
-
(0, _log.errLog)('vxe.error.errProp', [`column[field="${errColumn.field}"].show-overflow=false`, 'show-overflow=true']);
|
|
3081
|
-
}
|
|
3082
|
-
}
|
|
3083
|
-
}
|
|
3084
|
-
if (process.env.NODE_ENV === 'development') {
|
|
3085
|
-
if (!(props.height || props.maxHeight)) {
|
|
3086
|
-
(0, _log.errLog)('vxe.error.reqProp', ['table.height | table.max-height | table.scroll-y={enabled: false}']);
|
|
3087
|
-
}
|
|
3088
|
-
// if (!props.showOverflow) {
|
|
3089
|
-
// warnLog('vxe.error.reqProp', ['table.show-overflow'])
|
|
3090
|
-
// }
|
|
3091
|
-
if (props.spanMethod) {
|
|
3092
|
-
(0, _log.warnLog)('vxe.error.scrollErrProp', ['table.span-method']);
|
|
3093
|
-
}
|
|
3094
|
-
}
|
|
3066
|
+
$xeTable.cacheSourceMap(fullData);
|
|
3095
3067
|
}
|
|
3096
3068
|
if ($xeTable.clearCellAreas && props.mouseConfig) {
|
|
3097
3069
|
$xeTable.clearCellAreas();
|
|
@@ -3111,6 +3083,27 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
3111
3083
|
if (sYLoad) {
|
|
3112
3084
|
scrollYStore.endIndex = scrollYStore.visibleSize;
|
|
3113
3085
|
}
|
|
3086
|
+
if (sYLoad) {
|
|
3087
|
+
// if (showOverflow) {
|
|
3088
|
+
// if (!rowOpts.height) {
|
|
3089
|
+
// const errColumn = internalData.tableFullColumn.find(column => column.showOverflow === false)
|
|
3090
|
+
// if (errColumn) {
|
|
3091
|
+
// errLog('vxe.error.errProp', [`column[field="${errColumn.field}"].show-overflow=false`, 'show-overflow=true'])
|
|
3092
|
+
// }
|
|
3093
|
+
// }
|
|
3094
|
+
// }
|
|
3095
|
+
if (process.env.NODE_ENV === 'development') {
|
|
3096
|
+
if (!(props.height || props.maxHeight)) {
|
|
3097
|
+
(0, _log.errLog)('vxe.error.reqProp', ['table.height | table.max-height | table.scroll-y={enabled: false}']);
|
|
3098
|
+
}
|
|
3099
|
+
// if (!props.showOverflow) {
|
|
3100
|
+
// warnLog('vxe.error.reqProp', ['table.show-overflow'])
|
|
3101
|
+
// }
|
|
3102
|
+
if (props.spanMethod) {
|
|
3103
|
+
(0, _log.warnLog)('vxe.error.scrollErrProp', ['table.span-method']);
|
|
3104
|
+
}
|
|
3105
|
+
}
|
|
3106
|
+
}
|
|
3114
3107
|
handleReserveStatus();
|
|
3115
3108
|
tablePrivateMethods.checkSelectionStatus();
|
|
3116
3109
|
return new Promise(resolve => {
|
|
@@ -3126,6 +3119,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
3126
3119
|
if (sYOpts.scrollToTopOnChange) {
|
|
3127
3120
|
targetScrollTop = 0;
|
|
3128
3121
|
}
|
|
3122
|
+
reactData.isRowLoading = false;
|
|
3129
3123
|
calcCellHeight();
|
|
3130
3124
|
// 是否变更虚拟滚动
|
|
3131
3125
|
if (oldScrollYLoad === sYLoad) {
|
|
@@ -3389,11 +3383,10 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
3389
3383
|
internalData.collectColumn = collectColumn;
|
|
3390
3384
|
const tableFullColumn = getColumnList(collectColumn);
|
|
3391
3385
|
internalData.tableFullColumn = tableFullColumn;
|
|
3392
|
-
reactData.
|
|
3386
|
+
reactData.isColLoading = true;
|
|
3393
3387
|
reactData.isDragColMove = false;
|
|
3394
3388
|
initColumnSort();
|
|
3395
3389
|
return Promise.resolve(restoreCustomStorage()).then(() => {
|
|
3396
|
-
reactData.isLoading = false;
|
|
3397
3390
|
cacheColumnMap();
|
|
3398
3391
|
parseColumns(true).then(() => {
|
|
3399
3392
|
if (reactData.scrollXLoad) {
|
|
@@ -3418,6 +3411,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
3418
3411
|
if ($xeTable.handleUpdateCustomColumn) {
|
|
3419
3412
|
$xeTable.handleUpdateCustomColumn();
|
|
3420
3413
|
}
|
|
3414
|
+
reactData.isColLoading = false;
|
|
3421
3415
|
return $xeTable.recalculate();
|
|
3422
3416
|
});
|
|
3423
3417
|
});
|
|
@@ -3559,10 +3553,8 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
3559
3553
|
*/
|
|
3560
3554
|
const loadScrollYData = scrollTop => {
|
|
3561
3555
|
const {
|
|
3562
|
-
|
|
3563
|
-
|
|
3564
|
-
const {
|
|
3565
|
-
mergeList
|
|
3556
|
+
mergeList,
|
|
3557
|
+
isAllOverflow
|
|
3566
3558
|
} = reactData;
|
|
3567
3559
|
const {
|
|
3568
3560
|
scrollYStore
|
|
@@ -3573,7 +3565,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
3573
3565
|
endIndex,
|
|
3574
3566
|
offsetSize
|
|
3575
3567
|
} = scrollYStore;
|
|
3576
|
-
const autoOffsetYSize =
|
|
3568
|
+
const autoOffsetYSize = isAllOverflow ? offsetSize : offsetSize + 1;
|
|
3577
3569
|
const {
|
|
3578
3570
|
toVisibleIndex,
|
|
3579
3571
|
visibleSize
|
|
@@ -3635,7 +3627,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
3635
3627
|
const {
|
|
3636
3628
|
visibleSize
|
|
3637
3629
|
} = scrollXStore;
|
|
3638
|
-
const fpsTime = Math.max(5, Math.min(
|
|
3630
|
+
const fpsTime = Math.max(5, Math.min(10, Math.floor(visibleSize / 3)));
|
|
3639
3631
|
if (lxTimeout) {
|
|
3640
3632
|
clearTimeout(lxTimeout);
|
|
3641
3633
|
}
|
|
@@ -3652,9 +3644,13 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
3652
3644
|
const lazyScrollYData = () => {
|
|
3653
3645
|
const {
|
|
3654
3646
|
lyTimeout,
|
|
3655
|
-
lyRunTime
|
|
3647
|
+
lyRunTime,
|
|
3648
|
+
scrollYStore
|
|
3656
3649
|
} = internalData;
|
|
3657
|
-
const
|
|
3650
|
+
const {
|
|
3651
|
+
visibleSize
|
|
3652
|
+
} = scrollYStore;
|
|
3653
|
+
const fpsTime = Math.floor(Math.max(4, Math.min(10, visibleSize / 3)));
|
|
3658
3654
|
if (lyTimeout) {
|
|
3659
3655
|
clearTimeout(lyTimeout);
|
|
3660
3656
|
}
|
|
@@ -3682,6 +3678,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
3682
3678
|
internalData.lcsTimeout = setTimeout(() => {
|
|
3683
3679
|
internalData.lcsRunTime = Date.now();
|
|
3684
3680
|
internalData.lcsTimeout = undefined;
|
|
3681
|
+
internalData.intoRunScroll = false;
|
|
3685
3682
|
internalData.inVirtualScroll = false;
|
|
3686
3683
|
internalData.inWheelScroll = false;
|
|
3687
3684
|
internalData.inHeaderScroll = false;
|
|
@@ -3701,6 +3698,43 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
3701
3698
|
$xeTable.updateCellAreas();
|
|
3702
3699
|
}, 200);
|
|
3703
3700
|
};
|
|
3701
|
+
const getWheelSpeed = lastScrollTime => {
|
|
3702
|
+
let multiple = 1;
|
|
3703
|
+
const currTime = Date.now();
|
|
3704
|
+
if (lastScrollTime + 25 > currTime) {
|
|
3705
|
+
multiple = 1.18;
|
|
3706
|
+
} else if (lastScrollTime + 30 > currTime) {
|
|
3707
|
+
multiple = 1.15;
|
|
3708
|
+
} else if (lastScrollTime + 40 > currTime) {
|
|
3709
|
+
multiple = 1.12;
|
|
3710
|
+
} else if (lastScrollTime + 55 > currTime) {
|
|
3711
|
+
multiple = 1.09;
|
|
3712
|
+
} else if (lastScrollTime + 75 > currTime) {
|
|
3713
|
+
multiple = 1.06;
|
|
3714
|
+
} else if (lastScrollTime + 100 > currTime) {
|
|
3715
|
+
multiple = 1.03;
|
|
3716
|
+
}
|
|
3717
|
+
return multiple;
|
|
3718
|
+
};
|
|
3719
|
+
const wheelScrollTo = (diffNum, cb) => {
|
|
3720
|
+
const duration = Math.abs(diffNum);
|
|
3721
|
+
const startTime = performance.now();
|
|
3722
|
+
let countTop = 0;
|
|
3723
|
+
const step = timestamp => {
|
|
3724
|
+
let progress = (timestamp - startTime) / duration;
|
|
3725
|
+
if (progress > 1) {
|
|
3726
|
+
progress = 1;
|
|
3727
|
+
}
|
|
3728
|
+
const easedProgress = Math.pow(progress, 2);
|
|
3729
|
+
const offsetTop = Math.floor(diffNum * easedProgress) - countTop;
|
|
3730
|
+
countTop += offsetTop;
|
|
3731
|
+
cb(offsetTop);
|
|
3732
|
+
if (progress < 1) {
|
|
3733
|
+
requestAnimationFrame(step);
|
|
3734
|
+
}
|
|
3735
|
+
};
|
|
3736
|
+
requestAnimationFrame(step);
|
|
3737
|
+
};
|
|
3704
3738
|
const dispatchEvent = (type, params, evnt) => {
|
|
3705
3739
|
emit(type, createEvent(evnt, {
|
|
3706
3740
|
$table: $xeTable,
|
|
@@ -3717,12 +3751,31 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
3717
3751
|
}
|
|
3718
3752
|
return (0, _vue.nextTick)();
|
|
3719
3753
|
};
|
|
3720
|
-
|
|
3754
|
+
const handleUpdateResize = () => {
|
|
3721
3755
|
const el = refElem.value;
|
|
3722
3756
|
if (el && el.clientWidth && el.clientHeight) {
|
|
3723
3757
|
tableMethods.recalculate();
|
|
3724
3758
|
}
|
|
3725
|
-
}
|
|
3759
|
+
};
|
|
3760
|
+
const handleUpdateColResize = (evnt, params) => {
|
|
3761
|
+
$xeTable.analyColumnWidth();
|
|
3762
|
+
$xeTable.recalculate(true).then(() => {
|
|
3763
|
+
$xeTable.saveCustomStore('update:width');
|
|
3764
|
+
$xeTable.updateCellAreas();
|
|
3765
|
+
$xeTable.dispatchEvent('column-resizable-change', params, evnt);
|
|
3766
|
+
// 已废弃 resizable-change
|
|
3767
|
+
$xeTable.dispatchEvent('resizable-change', params, evnt);
|
|
3768
|
+
setTimeout(() => $xeTable.recalculate(true), 300);
|
|
3769
|
+
});
|
|
3770
|
+
};
|
|
3771
|
+
const handleUpdateRowResize = (evnt, params) => {
|
|
3772
|
+
reactData.resizeHeightFlag++;
|
|
3773
|
+
$xeTable.recalculate(true).then(() => {
|
|
3774
|
+
$xeTable.updateCellAreas();
|
|
3775
|
+
$xeTable.dispatchEvent('row-resizable-change', params, evnt);
|
|
3776
|
+
setTimeout(() => $xeTable.recalculate(true), 300);
|
|
3777
|
+
});
|
|
3778
|
+
};
|
|
3726
3779
|
tableMethods = {
|
|
3727
3780
|
dispatchEvent,
|
|
3728
3781
|
/**
|
|
@@ -3780,7 +3833,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
3780
3833
|
const {
|
|
3781
3834
|
initStatus
|
|
3782
3835
|
} = internalData;
|
|
3783
|
-
return loadTableData(datas).then(() => {
|
|
3836
|
+
return loadTableData(datas, false).then(() => {
|
|
3784
3837
|
internalData.inited = true;
|
|
3785
3838
|
internalData.initStatus = true;
|
|
3786
3839
|
if (!initStatus) {
|
|
@@ -3797,7 +3850,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
3797
3850
|
return tableMethods.clearAll().then(() => {
|
|
3798
3851
|
internalData.inited = true;
|
|
3799
3852
|
internalData.initStatus = true;
|
|
3800
|
-
return loadTableData(datas);
|
|
3853
|
+
return loadTableData(datas, true);
|
|
3801
3854
|
}).then(() => {
|
|
3802
3855
|
handleLoadDefaults();
|
|
3803
3856
|
return tableMethods.recalculate();
|
|
@@ -3916,6 +3969,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
3916
3969
|
parent: parentRow,
|
|
3917
3970
|
level: parentLevel + nodes.length,
|
|
3918
3971
|
height: 0,
|
|
3972
|
+
resizeHeight: 0,
|
|
3919
3973
|
oTop: 0
|
|
3920
3974
|
};
|
|
3921
3975
|
fullDataRowIdData[rowid] = rest;
|
|
@@ -4156,29 +4210,32 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
4156
4210
|
return (0, _vue.nextTick)();
|
|
4157
4211
|
},
|
|
4158
4212
|
getCellElement(row, fieldOrColumn) {
|
|
4213
|
+
const {
|
|
4214
|
+
elemStore
|
|
4215
|
+
} = internalData;
|
|
4159
4216
|
const column = (0, _util.handleFieldOrColumn)($xeTable, fieldOrColumn);
|
|
4160
4217
|
if (!column) {
|
|
4161
4218
|
return null;
|
|
4162
4219
|
}
|
|
4163
4220
|
const rowid = (0, _util.getRowid)($xeTable, row);
|
|
4164
|
-
const
|
|
4165
|
-
const
|
|
4166
|
-
const
|
|
4221
|
+
const bodyScrollElem = (0, _util.getRefElem)(elemStore['main-body-scroll']);
|
|
4222
|
+
const leftScrollElem = (0, _util.getRefElem)(elemStore['left-body-scroll']);
|
|
4223
|
+
const rightScrollElem = (0, _util.getRefElem)(elemStore['right-body-scroll']);
|
|
4167
4224
|
let bodyElem;
|
|
4168
4225
|
if (column) {
|
|
4169
4226
|
if (column.fixed) {
|
|
4170
4227
|
if (column.fixed === 'left') {
|
|
4171
|
-
if (
|
|
4172
|
-
bodyElem =
|
|
4228
|
+
if (leftScrollElem) {
|
|
4229
|
+
bodyElem = leftScrollElem;
|
|
4173
4230
|
}
|
|
4174
4231
|
} else {
|
|
4175
|
-
if (
|
|
4176
|
-
bodyElem =
|
|
4232
|
+
if (rightScrollElem) {
|
|
4233
|
+
bodyElem = rightScrollElem;
|
|
4177
4234
|
}
|
|
4178
4235
|
}
|
|
4179
4236
|
}
|
|
4180
4237
|
if (!bodyElem) {
|
|
4181
|
-
bodyElem =
|
|
4238
|
+
bodyElem = bodyScrollElem;
|
|
4182
4239
|
}
|
|
4183
4240
|
if (bodyElem) {
|
|
4184
4241
|
return bodyElem.querySelector(`.vxe-body--row[rowid="${rowid}"] .${column.id}`);
|
|
@@ -4651,29 +4708,40 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
4651
4708
|
return (0, _vue.nextTick)();
|
|
4652
4709
|
},
|
|
4653
4710
|
setColumnWidth(fieldOrColumn, width) {
|
|
4711
|
+
const {
|
|
4712
|
+
elemStore
|
|
4713
|
+
} = internalData;
|
|
4654
4714
|
let status = false;
|
|
4655
4715
|
const cols = _xeUtils.default.isArray(fieldOrColumn) ? fieldOrColumn : [fieldOrColumn];
|
|
4656
|
-
|
|
4657
|
-
|
|
4658
|
-
|
|
4659
|
-
|
|
4660
|
-
|
|
4661
|
-
|
|
4662
|
-
|
|
4663
|
-
|
|
4664
|
-
|
|
4665
|
-
|
|
4666
|
-
|
|
4667
|
-
|
|
4668
|
-
|
|
4669
|
-
|
|
4716
|
+
let cWidth = _xeUtils.default.toInteger(width);
|
|
4717
|
+
if ((0, _dom.isScale)(width)) {
|
|
4718
|
+
const bodyScrollElem = (0, _util.getRefElem)(elemStore['main-body-scroll']);
|
|
4719
|
+
const bodyWidth = bodyScrollElem ? bodyScrollElem.clientWidth - 1 : 0;
|
|
4720
|
+
cWidth = Math.floor(cWidth * bodyWidth);
|
|
4721
|
+
}
|
|
4722
|
+
if (cWidth) {
|
|
4723
|
+
cols.forEach(item => {
|
|
4724
|
+
const column = (0, _util.handleFieldOrColumn)($xeTable, item);
|
|
4725
|
+
if (column) {
|
|
4726
|
+
column.resizeWidth = cWidth;
|
|
4727
|
+
if (!status) {
|
|
4728
|
+
status = true;
|
|
4729
|
+
}
|
|
4670
4730
|
}
|
|
4731
|
+
});
|
|
4732
|
+
if (status) {
|
|
4733
|
+
return $xeTable.refreshColumn().then(() => {
|
|
4734
|
+
return {
|
|
4735
|
+
status
|
|
4736
|
+
};
|
|
4737
|
+
});
|
|
4671
4738
|
}
|
|
4672
|
-
});
|
|
4673
|
-
if (status) {
|
|
4674
|
-
return tableMethods.refreshColumn();
|
|
4675
4739
|
}
|
|
4676
|
-
return (0, _vue.nextTick)()
|
|
4740
|
+
return (0, _vue.nextTick)().then(() => {
|
|
4741
|
+
return {
|
|
4742
|
+
status
|
|
4743
|
+
};
|
|
4744
|
+
});
|
|
4677
4745
|
},
|
|
4678
4746
|
getColumnWidth(fieldOrColumn) {
|
|
4679
4747
|
const column = (0, _util.handleFieldOrColumn)($xeTable, fieldOrColumn);
|
|
@@ -4706,6 +4774,106 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
4706
4774
|
return tableMethods.recalculate();
|
|
4707
4775
|
});
|
|
4708
4776
|
},
|
|
4777
|
+
setRowHeightConf(heightConf) {
|
|
4778
|
+
const {
|
|
4779
|
+
fullAllDataRowIdData
|
|
4780
|
+
} = internalData;
|
|
4781
|
+
let status = false;
|
|
4782
|
+
if (heightConf) {
|
|
4783
|
+
_xeUtils.default.each(heightConf, (height, rowid) => {
|
|
4784
|
+
const rowRest = fullAllDataRowIdData[rowid];
|
|
4785
|
+
if (rowRest) {
|
|
4786
|
+
const rHeight = _xeUtils.default.toInteger(height);
|
|
4787
|
+
if (rHeight) {
|
|
4788
|
+
rowRest.resizeHeight = rHeight;
|
|
4789
|
+
if (!status) {
|
|
4790
|
+
status = true;
|
|
4791
|
+
}
|
|
4792
|
+
}
|
|
4793
|
+
}
|
|
4794
|
+
});
|
|
4795
|
+
if (status) {
|
|
4796
|
+
internalData.isResizeCellHeight = true;
|
|
4797
|
+
reactData.resizeHeightFlag++;
|
|
4798
|
+
}
|
|
4799
|
+
}
|
|
4800
|
+
return (0, _vue.nextTick)().then(() => {
|
|
4801
|
+
return {
|
|
4802
|
+
status
|
|
4803
|
+
};
|
|
4804
|
+
});
|
|
4805
|
+
},
|
|
4806
|
+
getRowHeightConf(isFull) {
|
|
4807
|
+
const {
|
|
4808
|
+
fullAllDataRowIdData,
|
|
4809
|
+
afterFullData
|
|
4810
|
+
} = internalData;
|
|
4811
|
+
const rowOpts = computeRowOpts.value;
|
|
4812
|
+
const cellOpts = computeCellOpts.value;
|
|
4813
|
+
const defaultRowHeight = computeDefaultRowHeight.value;
|
|
4814
|
+
const rest = {};
|
|
4815
|
+
afterFullData.forEach(row => {
|
|
4816
|
+
const rowid = (0, _util.getRowid)($xeTable, row);
|
|
4817
|
+
const rowRest = fullAllDataRowIdData[rowid];
|
|
4818
|
+
if (rowRest) {
|
|
4819
|
+
const resizeHeight = rowRest.resizeHeight;
|
|
4820
|
+
if (resizeHeight || isFull) {
|
|
4821
|
+
const currCellHeight = resizeHeight || rowRest.height || cellOpts.height || rowOpts.height || defaultRowHeight;
|
|
4822
|
+
rest[rowid] = currCellHeight;
|
|
4823
|
+
}
|
|
4824
|
+
}
|
|
4825
|
+
});
|
|
4826
|
+
return rest;
|
|
4827
|
+
},
|
|
4828
|
+
setRowHeight(rowOrId, height) {
|
|
4829
|
+
const {
|
|
4830
|
+
fullAllDataRowIdData
|
|
4831
|
+
} = internalData;
|
|
4832
|
+
let status = false;
|
|
4833
|
+
const rows = _xeUtils.default.isArray(rowOrId) ? rowOrId : [rowOrId];
|
|
4834
|
+
let rHeight = _xeUtils.default.toInteger(height);
|
|
4835
|
+
if ((0, _dom.isScale)(height)) {
|
|
4836
|
+
const tableBody = refTableBody.value;
|
|
4837
|
+
const bodyElem = tableBody ? tableBody.$el : null;
|
|
4838
|
+
const bodyHeight = bodyElem ? bodyElem.clientHeight - 1 : 0;
|
|
4839
|
+
rHeight = Math.floor(rHeight * bodyHeight);
|
|
4840
|
+
}
|
|
4841
|
+
if (rHeight) {
|
|
4842
|
+
rows.forEach(row => {
|
|
4843
|
+
const rowid = _xeUtils.default.isString(row) || _xeUtils.default.isNumber(row) ? row : (0, _util.getRowid)($xeTable, row);
|
|
4844
|
+
const rowRest = fullAllDataRowIdData[rowid];
|
|
4845
|
+
if (rowRest) {
|
|
4846
|
+
rowRest.resizeHeight = rHeight;
|
|
4847
|
+
if (!status) {
|
|
4848
|
+
status = true;
|
|
4849
|
+
}
|
|
4850
|
+
}
|
|
4851
|
+
});
|
|
4852
|
+
if (status) {
|
|
4853
|
+
internalData.isResizeCellHeight = true;
|
|
4854
|
+
reactData.resizeHeightFlag++;
|
|
4855
|
+
}
|
|
4856
|
+
}
|
|
4857
|
+
return (0, _vue.nextTick)().then(() => {
|
|
4858
|
+
return {
|
|
4859
|
+
status
|
|
4860
|
+
};
|
|
4861
|
+
});
|
|
4862
|
+
},
|
|
4863
|
+
getRowHeight(rowOrId) {
|
|
4864
|
+
const {
|
|
4865
|
+
fullAllDataRowIdData
|
|
4866
|
+
} = internalData;
|
|
4867
|
+
const rowOpts = computeRowOpts.value;
|
|
4868
|
+
const cellOpts = computeCellOpts.value;
|
|
4869
|
+
const defaultRowHeight = computeDefaultRowHeight.value;
|
|
4870
|
+
const rowid = _xeUtils.default.isString(rowOrId) || _xeUtils.default.isNumber(rowOrId) ? rowOrId : (0, _util.getRowid)($xeTable, rowOrId);
|
|
4871
|
+
const rowRest = fullAllDataRowIdData[rowid];
|
|
4872
|
+
if (rowRest) {
|
|
4873
|
+
return rowRest.resizeHeight || rowRest.height || cellOpts.height || rowOpts.height || defaultRowHeight;
|
|
4874
|
+
}
|
|
4875
|
+
return 0;
|
|
4876
|
+
},
|
|
4709
4877
|
/**
|
|
4710
4878
|
* 刷新滚动操作,手动同步滚动相关位置(对于某些特殊的操作,比如滚动条错位、固定列不同步)
|
|
4711
4879
|
*/
|
|
@@ -5910,13 +6078,15 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
5910
6078
|
scrollXLoad,
|
|
5911
6079
|
scrollYLoad
|
|
5912
6080
|
} = reactData;
|
|
5913
|
-
const
|
|
5914
|
-
|
|
6081
|
+
const {
|
|
6082
|
+
elemStore
|
|
6083
|
+
} = internalData;
|
|
6084
|
+
const bodyScrollElem = (0, _util.getRefElem)(elemStore['main-body-scroll']);
|
|
5915
6085
|
return {
|
|
5916
6086
|
virtualX: scrollXLoad,
|
|
5917
6087
|
virtualY: scrollYLoad,
|
|
5918
|
-
scrollTop:
|
|
5919
|
-
scrollLeft:
|
|
6088
|
+
scrollTop: bodyScrollElem ? bodyScrollElem.scrollTop : 0,
|
|
6089
|
+
scrollLeft: bodyScrollElem ? bodyScrollElem.scrollLeft : 0
|
|
5920
6090
|
};
|
|
5921
6091
|
},
|
|
5922
6092
|
/**
|
|
@@ -5967,9 +6137,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
5967
6137
|
*/
|
|
5968
6138
|
scrollToRow(row, fieldOrColumn) {
|
|
5969
6139
|
const {
|
|
5970
|
-
|
|
5971
|
-
} = props;
|
|
5972
|
-
const {
|
|
6140
|
+
isAllOverflow,
|
|
5973
6141
|
scrollYLoad,
|
|
5974
6142
|
scrollXLoad
|
|
5975
6143
|
} = reactData;
|
|
@@ -5986,7 +6154,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
5986
6154
|
}
|
|
5987
6155
|
return Promise.all(rest).then(() => {
|
|
5988
6156
|
if (row) {
|
|
5989
|
-
if (!
|
|
6157
|
+
if (!isAllOverflow && (scrollYLoad || scrollXLoad)) {
|
|
5990
6158
|
calcCellHeight();
|
|
5991
6159
|
calcCellWidth();
|
|
5992
6160
|
}
|
|
@@ -7054,13 +7222,17 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
7054
7222
|
return;
|
|
7055
7223
|
}
|
|
7056
7224
|
const {
|
|
7225
|
+
overflowX,
|
|
7057
7226
|
scrollbarWidth,
|
|
7227
|
+
overflowY,
|
|
7058
7228
|
scrollbarHeight
|
|
7059
7229
|
} = reactData;
|
|
7060
7230
|
const {
|
|
7061
7231
|
prevDragToChild
|
|
7062
7232
|
} = internalData;
|
|
7063
7233
|
const wrapperRect = el.getBoundingClientRect();
|
|
7234
|
+
const osbWidth = overflowY ? scrollbarWidth : 0;
|
|
7235
|
+
const osbHeight = overflowX ? scrollbarHeight : 0;
|
|
7064
7236
|
const tableWidth = el.clientWidth;
|
|
7065
7237
|
const tableHeight = el.clientHeight;
|
|
7066
7238
|
if (trEl) {
|
|
@@ -7071,14 +7243,14 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
7071
7243
|
const trRect = trEl.getBoundingClientRect();
|
|
7072
7244
|
let trHeight = trEl.clientHeight;
|
|
7073
7245
|
const offsetTop = Math.max(1, trRect.y - wrapperRect.y);
|
|
7074
|
-
if (offsetTop + trHeight > tableHeight -
|
|
7075
|
-
trHeight = tableHeight - offsetTop -
|
|
7246
|
+
if (offsetTop + trHeight > tableHeight - osbHeight) {
|
|
7247
|
+
trHeight = tableHeight - offsetTop - osbHeight;
|
|
7076
7248
|
}
|
|
7077
7249
|
rdLineEl.style.display = 'block';
|
|
7078
|
-
rdLineEl.style.left = `${scrollbarYToLeft ?
|
|
7250
|
+
rdLineEl.style.left = `${scrollbarYToLeft ? osbWidth : 0}px`;
|
|
7079
7251
|
rdLineEl.style.top = `${offsetTop}px`;
|
|
7080
7252
|
rdLineEl.style.height = `${trHeight}px`;
|
|
7081
|
-
rdLineEl.style.width = `${tableWidth -
|
|
7253
|
+
rdLineEl.style.width = `${tableWidth - osbWidth}px`;
|
|
7082
7254
|
rdLineEl.setAttribute('drag-pos', dragPos);
|
|
7083
7255
|
rdLineEl.setAttribute('drag-to-child', prevDragToChild ? 'y' : 'n');
|
|
7084
7256
|
} else {
|
|
@@ -7103,7 +7275,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
7103
7275
|
thWidth -= startX - offsetLeft;
|
|
7104
7276
|
offsetLeft = startX;
|
|
7105
7277
|
}
|
|
7106
|
-
const endX = tableWidth - rightContainerWidth - (rightContainerWidth ? 0 :
|
|
7278
|
+
const endX = tableWidth - rightContainerWidth - (rightContainerWidth ? 0 : osbWidth);
|
|
7107
7279
|
if (offsetLeft + thWidth > endX) {
|
|
7108
7280
|
thWidth = endX - offsetLeft;
|
|
7109
7281
|
}
|
|
@@ -7114,7 +7286,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
7114
7286
|
if (prevDragToChild) {
|
|
7115
7287
|
cdLineEl.style.height = `${thRect.height}px`;
|
|
7116
7288
|
} else {
|
|
7117
|
-
cdLineEl.style.height = `${tableHeight - offsetTop - (scrollbarXToTop ? 0 :
|
|
7289
|
+
cdLineEl.style.height = `${tableHeight - offsetTop - (scrollbarXToTop ? 0 : osbHeight)}px`;
|
|
7118
7290
|
}
|
|
7119
7291
|
cdLineEl.setAttribute('drag-pos', dragPos);
|
|
7120
7292
|
cdLineEl.setAttribute('drag-to-child', prevDragToChild ? 'y' : 'n');
|
|
@@ -7150,11 +7322,11 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
7150
7322
|
* @param {Event} evnt 事件
|
|
7151
7323
|
* @param {Row} row 行对象
|
|
7152
7324
|
*/
|
|
7153
|
-
const handleTooltip = (evnt,
|
|
7325
|
+
const handleTooltip = (evnt, tdEl, overflowElem, tipElem, params) => {
|
|
7154
7326
|
if (!overflowElem) {
|
|
7155
7327
|
return (0, _vue.nextTick)();
|
|
7156
7328
|
}
|
|
7157
|
-
params.cell =
|
|
7329
|
+
params.cell = tdEl;
|
|
7158
7330
|
const {
|
|
7159
7331
|
tooltipStore
|
|
7160
7332
|
} = reactData;
|
|
@@ -7326,9 +7498,8 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
7326
7498
|
},
|
|
7327
7499
|
/**
|
|
7328
7500
|
* 更新数据行的 Map
|
|
7329
|
-
* 牺牲数据组装的耗时,用来换取使用过程中的流畅
|
|
7330
7501
|
*/
|
|
7331
|
-
cacheRowMap(isSource) {
|
|
7502
|
+
cacheRowMap(isReset, isSource) {
|
|
7332
7503
|
const {
|
|
7333
7504
|
treeConfig
|
|
7334
7505
|
} = props;
|
|
@@ -7356,7 +7527,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
7356
7527
|
row[childrenField] = null;
|
|
7357
7528
|
}
|
|
7358
7529
|
let cacheItem = fullAllDataRowIdData[rowid];
|
|
7359
|
-
if (!cacheItem) {
|
|
7530
|
+
if (isReset || !cacheItem) {
|
|
7360
7531
|
cacheItem = {
|
|
7361
7532
|
row,
|
|
7362
7533
|
rowid,
|
|
@@ -7369,6 +7540,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
7369
7540
|
parent: parentRow,
|
|
7370
7541
|
level,
|
|
7371
7542
|
height: 0,
|
|
7543
|
+
resizeHeight: 0,
|
|
7372
7544
|
oTop: 0
|
|
7373
7545
|
};
|
|
7374
7546
|
}
|
|
@@ -7482,13 +7654,166 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
7482
7654
|
remainList
|
|
7483
7655
|
});
|
|
7484
7656
|
},
|
|
7485
|
-
|
|
7657
|
+
handleColResizeMousedownEvent(evnt, fixedType, params) {
|
|
7658
|
+
evnt.stopPropagation();
|
|
7659
|
+
evnt.preventDefault();
|
|
7660
|
+
const {
|
|
7661
|
+
column
|
|
7662
|
+
} = params;
|
|
7663
|
+
const {
|
|
7664
|
+
overflowX,
|
|
7665
|
+
scrollbarHeight
|
|
7666
|
+
} = reactData;
|
|
7667
|
+
const {
|
|
7668
|
+
elemStore,
|
|
7669
|
+
visibleColumn
|
|
7670
|
+
} = internalData;
|
|
7671
|
+
const resizableOpts = computeResizableOpts.value;
|
|
7672
|
+
const osbHeight = overflowX ? scrollbarHeight : 0;
|
|
7673
|
+
const tableEl = refElem.value;
|
|
7674
|
+
const leftContainerElem = refLeftContainer.value;
|
|
7675
|
+
const rightContainerElem = refRightContainer.value;
|
|
7676
|
+
const resizeBarElem = refColResizeBar.value;
|
|
7677
|
+
if (!resizeBarElem) {
|
|
7678
|
+
return;
|
|
7679
|
+
}
|
|
7680
|
+
const resizeTipElem = resizeBarElem.firstElementChild;
|
|
7681
|
+
const scrollbarXToTop = computeScrollbarXToTop.value;
|
|
7682
|
+
const {
|
|
7683
|
+
clientX: dragClientX
|
|
7684
|
+
} = evnt;
|
|
7685
|
+
const wrapperElem = refElem.value;
|
|
7686
|
+
const dragBtnElem = evnt.target;
|
|
7687
|
+
let resizeColumn = column;
|
|
7688
|
+
if (column.children && column.children.length) {
|
|
7689
|
+
_xeUtils.default.eachTree(column.children, childColumn => {
|
|
7690
|
+
resizeColumn = childColumn;
|
|
7691
|
+
});
|
|
7692
|
+
}
|
|
7693
|
+
const cell = dragBtnElem.parentNode;
|
|
7694
|
+
const cellParams = Object.assign(params, {
|
|
7695
|
+
cell
|
|
7696
|
+
});
|
|
7697
|
+
let dragLeft = 0;
|
|
7698
|
+
const bodyScrollElem = (0, _util.getRefElem)(elemStore['main-body-scroll']);
|
|
7699
|
+
if (!bodyScrollElem) {
|
|
7700
|
+
return;
|
|
7701
|
+
}
|
|
7702
|
+
const pos = (0, _dom.getOffsetPos)(dragBtnElem, wrapperElem);
|
|
7703
|
+
const dragBtnWidth = dragBtnElem.clientWidth;
|
|
7704
|
+
const dragBtnOffsetWidth = Math.floor(dragBtnWidth / 2);
|
|
7705
|
+
const minInterval = (0, _util.getColReMinWidth)(cellParams) - dragBtnOffsetWidth; // 列之间的最小间距
|
|
7706
|
+
let dragMinLeft = pos.left - cell.clientWidth + dragBtnWidth + minInterval;
|
|
7707
|
+
let dragPosLeft = pos.left + dragBtnOffsetWidth;
|
|
7708
|
+
const isLeftFixed = fixedType === 'left';
|
|
7709
|
+
const isRightFixed = fixedType === 'right';
|
|
7710
|
+
// 计算左右侧固定列偏移量
|
|
7711
|
+
let fixedOffsetWidth = 0;
|
|
7712
|
+
if (isLeftFixed || isRightFixed) {
|
|
7713
|
+
const siblingProp = isLeftFixed ? 'nextElementSibling' : 'previousElementSibling';
|
|
7714
|
+
let tempCellElem = cell[siblingProp];
|
|
7715
|
+
while (tempCellElem) {
|
|
7716
|
+
if ((0, _dom.hasClass)(tempCellElem, 'fixed--hidden')) {
|
|
7717
|
+
break;
|
|
7718
|
+
} else if (!(0, _dom.hasClass)(tempCellElem, 'col--group')) {
|
|
7719
|
+
fixedOffsetWidth += tempCellElem.offsetWidth;
|
|
7720
|
+
}
|
|
7721
|
+
tempCellElem = tempCellElem[siblingProp];
|
|
7722
|
+
}
|
|
7723
|
+
if (isRightFixed && rightContainerElem) {
|
|
7724
|
+
dragPosLeft = rightContainerElem.offsetLeft + fixedOffsetWidth;
|
|
7725
|
+
}
|
|
7726
|
+
}
|
|
7727
|
+
// 处理拖动事件
|
|
7728
|
+
const updateEvent = evnt => {
|
|
7729
|
+
evnt.stopPropagation();
|
|
7730
|
+
evnt.preventDefault();
|
|
7731
|
+
const tableHeight = tableEl.clientHeight;
|
|
7732
|
+
const offsetX = evnt.clientX - dragClientX;
|
|
7733
|
+
let left = dragPosLeft + offsetX;
|
|
7734
|
+
const scrollLeft = fixedType ? 0 : bodyScrollElem.scrollLeft;
|
|
7735
|
+
if (isLeftFixed) {
|
|
7736
|
+
// 左固定列(不允许超过右侧固定列、不允许超过右边距)
|
|
7737
|
+
left = Math.min(left, (rightContainerElem ? rightContainerElem.offsetLeft : bodyScrollElem.clientWidth) - fixedOffsetWidth - minInterval);
|
|
7738
|
+
} else if (isRightFixed) {
|
|
7739
|
+
// 右侧固定列(不允许超过左侧固定列、不允许超过左边距)
|
|
7740
|
+
dragMinLeft = (leftContainerElem ? leftContainerElem.clientWidth : 0) + fixedOffsetWidth + minInterval;
|
|
7741
|
+
left = Math.min(left, dragPosLeft + cell.clientWidth - minInterval);
|
|
7742
|
+
} else {
|
|
7743
|
+
dragMinLeft = Math.max(bodyScrollElem.scrollLeft, dragMinLeft);
|
|
7744
|
+
// left = Math.min(left, bodyScrollElem.clientWidth + bodyScrollElem.scrollLeft - 40)
|
|
7745
|
+
}
|
|
7746
|
+
dragLeft = Math.max(left, dragMinLeft);
|
|
7747
|
+
const resizeBarLeft = Math.max(1, dragLeft - scrollLeft);
|
|
7748
|
+
resizeBarElem.style.left = `${resizeBarLeft}px`;
|
|
7749
|
+
resizeBarElem.style.top = `${scrollbarXToTop ? osbHeight : 0}px`;
|
|
7750
|
+
resizeBarElem.style.height = `${scrollbarXToTop ? tableHeight - osbHeight : tableHeight}px`;
|
|
7751
|
+
if (resizableOpts.showDragTip && resizeTipElem) {
|
|
7752
|
+
resizeTipElem.textContent = getI18n('vxe.table.resizeColTip', [resizeColumn.renderWidth + (isRightFixed ? dragPosLeft - dragLeft : dragLeft - dragPosLeft)]);
|
|
7753
|
+
const tableWidth = tableEl.clientWidth;
|
|
7754
|
+
const wrapperRect = wrapperElem.getBoundingClientRect();
|
|
7755
|
+
const resizeBarWidth = resizeBarElem.clientWidth;
|
|
7756
|
+
const resizeTipWidth = resizeTipElem.clientWidth;
|
|
7757
|
+
const resizeTipHeight = resizeTipElem.clientHeight;
|
|
7758
|
+
let resizeTipLeft = -resizeTipWidth;
|
|
7759
|
+
if (resizeBarLeft < resizeTipWidth + resizeBarWidth) {
|
|
7760
|
+
resizeTipLeft = 0;
|
|
7761
|
+
} else if (resizeBarLeft > tableWidth) {
|
|
7762
|
+
resizeTipLeft += tableWidth - resizeBarLeft;
|
|
7763
|
+
}
|
|
7764
|
+
resizeTipElem.style.left = `${resizeTipLeft}px`;
|
|
7765
|
+
resizeTipElem.style.top = `${Math.min(tableHeight - resizeTipHeight, Math.max(0, evnt.clientY - wrapperRect.y - resizeTipHeight / 2))}px`;
|
|
7766
|
+
}
|
|
7767
|
+
reactData.isDragResize = true;
|
|
7768
|
+
};
|
|
7769
|
+
reactData.isDragResize = true;
|
|
7770
|
+
(0, _dom.addClass)(tableEl, 'col-drag--resize');
|
|
7771
|
+
resizeBarElem.style.display = 'block';
|
|
7772
|
+
document.onmousemove = updateEvent;
|
|
7773
|
+
document.onmouseup = function (evnt) {
|
|
7774
|
+
document.onmousemove = null;
|
|
7775
|
+
document.onmouseup = null;
|
|
7776
|
+
resizeBarElem.style.display = 'none';
|
|
7777
|
+
internalData._lastResizeTime = Date.now();
|
|
7778
|
+
setTimeout(() => {
|
|
7779
|
+
reactData.isDragResize = false;
|
|
7780
|
+
}, 50);
|
|
7781
|
+
const resizeWidth = resizeColumn.renderWidth + (isRightFixed ? dragPosLeft - dragLeft : dragLeft - dragPosLeft);
|
|
7782
|
+
const resizeParams = Object.assign(Object.assign({}, params), {
|
|
7783
|
+
resizeWidth,
|
|
7784
|
+
resizeColumn
|
|
7785
|
+
});
|
|
7786
|
+
if (resizableOpts.dragMode === 'fixed') {
|
|
7787
|
+
visibleColumn.forEach(item => {
|
|
7788
|
+
if (item.id !== resizeColumn.id) {
|
|
7789
|
+
if (!item.resizeWidth) {
|
|
7790
|
+
item.resizeWidth = item.renderWidth;
|
|
7791
|
+
}
|
|
7792
|
+
}
|
|
7793
|
+
});
|
|
7794
|
+
}
|
|
7795
|
+
if ($xeTable.handleColResizeCellAreaEvent) {
|
|
7796
|
+
$xeTable.handleColResizeCellAreaEvent(evnt, resizeParams);
|
|
7797
|
+
} else {
|
|
7798
|
+
resizeColumn.resizeWidth = resizeWidth;
|
|
7799
|
+
handleUpdateColResize(evnt, resizeParams);
|
|
7800
|
+
}
|
|
7801
|
+
(0, _dom.removeClass)(tableEl, 'col-drag--resize');
|
|
7802
|
+
};
|
|
7803
|
+
updateEvent(evnt);
|
|
7804
|
+
if ($xeTable.closeMenu) {
|
|
7805
|
+
$xeTable.closeMenu();
|
|
7806
|
+
}
|
|
7807
|
+
},
|
|
7808
|
+
handleColResizeDblclickEvent(evnt, params) {
|
|
7486
7809
|
const resizableOpts = computeResizableOpts.value;
|
|
7487
7810
|
const {
|
|
7488
7811
|
isDblclickAutoWidth
|
|
7489
7812
|
} = resizableOpts;
|
|
7490
7813
|
const el = refElem.value;
|
|
7491
7814
|
if (isDblclickAutoWidth && el) {
|
|
7815
|
+
evnt.stopPropagation();
|
|
7816
|
+
evnt.preventDefault();
|
|
7492
7817
|
const {
|
|
7493
7818
|
fullColumnIdData
|
|
7494
7819
|
} = internalData;
|
|
@@ -7509,22 +7834,192 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
7509
7834
|
cell
|
|
7510
7835
|
});
|
|
7511
7836
|
const colMinWidth = (0, _util.getColReMinWidth)(cellParams);
|
|
7837
|
+
el.setAttribute('data-calc-col', 'Y');
|
|
7512
7838
|
let resizeWidth = calcColumnAutoWidth(resizeColumn, el);
|
|
7839
|
+
el.removeAttribute('data-calc-col');
|
|
7513
7840
|
if (colRest) {
|
|
7514
7841
|
resizeWidth = Math.max(resizeWidth, colRest.width);
|
|
7515
7842
|
}
|
|
7516
|
-
|
|
7517
|
-
|
|
7518
|
-
|
|
7519
|
-
|
|
7520
|
-
$xeTable.recalculate(true).then(() => {
|
|
7521
|
-
$xeTable.saveCustomStore('update:visible');
|
|
7522
|
-
$xeTable.updateCellAreas();
|
|
7523
|
-
$xeTable.dispatchEvent('resizable-change', Object.assign(Object.assign({}, params), {
|
|
7524
|
-
resizeWidth
|
|
7525
|
-
}), evnt);
|
|
7526
|
-
setTimeout(() => $xeTable.recalculate(true), 300);
|
|
7843
|
+
resizeWidth = Math.max(colMinWidth, resizeWidth);
|
|
7844
|
+
const resizeParams = Object.assign(Object.assign({}, params), {
|
|
7845
|
+
resizeWidth,
|
|
7846
|
+
resizeColumn
|
|
7527
7847
|
});
|
|
7848
|
+
reactData.isDragResize = false;
|
|
7849
|
+
internalData._lastResizeTime = Date.now();
|
|
7850
|
+
if ($xeTable.handleColResizeDblclickCellAreaEvent) {
|
|
7851
|
+
$xeTable.handleColResizeDblclickCellAreaEvent(evnt, resizeParams);
|
|
7852
|
+
} else {
|
|
7853
|
+
resizeColumn.resizeWidth = resizeWidth;
|
|
7854
|
+
handleUpdateColResize(evnt, resizeParams);
|
|
7855
|
+
}
|
|
7856
|
+
}
|
|
7857
|
+
},
|
|
7858
|
+
handleRowResizeMousedownEvent(evnt, params) {
|
|
7859
|
+
evnt.stopPropagation();
|
|
7860
|
+
evnt.preventDefault();
|
|
7861
|
+
const {
|
|
7862
|
+
row
|
|
7863
|
+
} = params;
|
|
7864
|
+
const {
|
|
7865
|
+
overflowX,
|
|
7866
|
+
scrollbarWidth,
|
|
7867
|
+
overflowY,
|
|
7868
|
+
scrollbarHeight
|
|
7869
|
+
} = reactData;
|
|
7870
|
+
const {
|
|
7871
|
+
elemStore,
|
|
7872
|
+
fullAllDataRowIdData
|
|
7873
|
+
} = internalData;
|
|
7874
|
+
const osbWidth = overflowY ? scrollbarWidth : 0;
|
|
7875
|
+
const osbHeight = overflowX ? scrollbarHeight : 0;
|
|
7876
|
+
const scrollbarYToLeft = computeScrollbarYToLeft.value;
|
|
7877
|
+
const resizableOpts = computeResizableOpts.value;
|
|
7878
|
+
const rowOpts = computeRowOpts.value;
|
|
7879
|
+
const cellOpts = computeCellOpts.value;
|
|
7880
|
+
const tableEl = refElem.value;
|
|
7881
|
+
const resizeBarElem = refRowResizeBar.value;
|
|
7882
|
+
if (!resizeBarElem) {
|
|
7883
|
+
return;
|
|
7884
|
+
}
|
|
7885
|
+
const {
|
|
7886
|
+
clientY: dragClientY
|
|
7887
|
+
} = evnt;
|
|
7888
|
+
const resizeTipElem = resizeBarElem.firstElementChild;
|
|
7889
|
+
const dragBtnElem = evnt.currentTarget;
|
|
7890
|
+
const tdEl = dragBtnElem.parentNode;
|
|
7891
|
+
const trEl = tdEl.parentNode;
|
|
7892
|
+
const bodyScrollElem = (0, _util.getRefElem)(elemStore['main-body-scroll']);
|
|
7893
|
+
if (!bodyScrollElem) {
|
|
7894
|
+
return;
|
|
7895
|
+
}
|
|
7896
|
+
const rowid = (0, _util.getRowid)($xeTable, row);
|
|
7897
|
+
const rowRest = fullAllDataRowIdData[rowid];
|
|
7898
|
+
if (!rowRest) {
|
|
7899
|
+
return;
|
|
7900
|
+
}
|
|
7901
|
+
const defaultRowHeight = computeDefaultRowHeight.value;
|
|
7902
|
+
const currCellHeight = rowRest.resizeHeight || rowRest.height || cellOpts.height || rowOpts.height || defaultRowHeight;
|
|
7903
|
+
const tableRect = tableEl.getBoundingClientRect();
|
|
7904
|
+
const trRect = trEl.getBoundingClientRect();
|
|
7905
|
+
const targetOffsetY = dragClientY - trRect.y - trEl.clientHeight;
|
|
7906
|
+
let resizeHeight = currCellHeight;
|
|
7907
|
+
const cellEl = tdEl.querySelector('.vxe-cell');
|
|
7908
|
+
let cellMinHeight = 0;
|
|
7909
|
+
if (cellEl) {
|
|
7910
|
+
const cellStyle = getComputedStyle(cellEl);
|
|
7911
|
+
cellMinHeight = Math.max(1, Math.ceil(_xeUtils.default.toNumber(cellStyle.paddingTop) + _xeUtils.default.toNumber(cellStyle.paddingBottom)));
|
|
7912
|
+
}
|
|
7913
|
+
const minTop = trRect.y - tableRect.y + cellMinHeight;
|
|
7914
|
+
// 处理拖动事件
|
|
7915
|
+
const updateEvent = evnt => {
|
|
7916
|
+
evnt.stopPropagation();
|
|
7917
|
+
evnt.preventDefault();
|
|
7918
|
+
const tableWidth = tableEl.clientWidth - osbWidth;
|
|
7919
|
+
const tableHeight = tableEl.clientHeight - osbHeight;
|
|
7920
|
+
let dragTop = evnt.clientY - tableRect.y - targetOffsetY;
|
|
7921
|
+
if (dragTop < minTop) {
|
|
7922
|
+
dragTop = minTop;
|
|
7923
|
+
} else {
|
|
7924
|
+
resizeHeight = Math.max(cellMinHeight, currCellHeight + evnt.clientY - dragClientY);
|
|
7925
|
+
}
|
|
7926
|
+
resizeBarElem.style.left = `${scrollbarYToLeft ? osbWidth : 0}px`;
|
|
7927
|
+
resizeBarElem.style.top = `${dragTop}px`;
|
|
7928
|
+
resizeBarElem.style.width = `${tableWidth}px`;
|
|
7929
|
+
if (resizableOpts.showDragTip && resizeTipElem) {
|
|
7930
|
+
resizeTipElem.textContent = getI18n('vxe.table.resizeRowTip', [resizeHeight]);
|
|
7931
|
+
const resizeTipWidth = resizeTipElem.clientWidth;
|
|
7932
|
+
const resizeTipHeight = resizeTipElem.clientHeight;
|
|
7933
|
+
let resizeBarLeft = Math.max(2, evnt.clientX - tableRect.x);
|
|
7934
|
+
let resizeBarTop = 0;
|
|
7935
|
+
if (resizeBarLeft + resizeTipWidth >= tableWidth - 2) {
|
|
7936
|
+
resizeBarLeft = tableWidth - resizeTipWidth - 2;
|
|
7937
|
+
}
|
|
7938
|
+
if (dragTop + resizeTipHeight >= tableHeight) {
|
|
7939
|
+
resizeBarTop = tableHeight - (dragTop + resizeTipHeight);
|
|
7940
|
+
}
|
|
7941
|
+
resizeTipElem.style.left = `${resizeBarLeft}px`;
|
|
7942
|
+
resizeTipElem.style.top = `${resizeBarTop}px`;
|
|
7943
|
+
}
|
|
7944
|
+
reactData.isDragResize = true;
|
|
7945
|
+
};
|
|
7946
|
+
reactData.isDragResize = true;
|
|
7947
|
+
(0, _dom.addClass)(tableEl, 'row-drag--resize');
|
|
7948
|
+
resizeBarElem.style.display = 'block';
|
|
7949
|
+
document.onmousemove = updateEvent;
|
|
7950
|
+
document.onmouseup = function (evnt) {
|
|
7951
|
+
document.onmousemove = null;
|
|
7952
|
+
document.onmouseup = null;
|
|
7953
|
+
resizeBarElem.style.display = 'none';
|
|
7954
|
+
internalData._lastResizeTime = Date.now();
|
|
7955
|
+
setTimeout(() => {
|
|
7956
|
+
reactData.isDragResize = false;
|
|
7957
|
+
}, 50);
|
|
7958
|
+
if (resizeHeight !== currCellHeight) {
|
|
7959
|
+
const resizeParams = Object.assign(Object.assign({}, params), {
|
|
7960
|
+
resizeHeight,
|
|
7961
|
+
resizeRow: row
|
|
7962
|
+
});
|
|
7963
|
+
internalData.isResizeCellHeight = true;
|
|
7964
|
+
if ($xeTable.handleRowResizeCellAreaEvent) {
|
|
7965
|
+
$xeTable.handleRowResizeCellAreaEvent(evnt, resizeParams);
|
|
7966
|
+
} else {
|
|
7967
|
+
rowRest.resizeHeight = resizeHeight;
|
|
7968
|
+
handleUpdateRowResize(evnt, resizeParams);
|
|
7969
|
+
}
|
|
7970
|
+
}
|
|
7971
|
+
(0, _dom.removeClass)(tableEl, 'row-drag--resize');
|
|
7972
|
+
};
|
|
7973
|
+
updateEvent(evnt);
|
|
7974
|
+
},
|
|
7975
|
+
handleRowResizeDblclickEvent(evnt, params) {
|
|
7976
|
+
const resizableOpts = computeResizableOpts.value;
|
|
7977
|
+
const {
|
|
7978
|
+
isDblclickAutoHeight
|
|
7979
|
+
} = resizableOpts;
|
|
7980
|
+
const el = refElem.value;
|
|
7981
|
+
if (isDblclickAutoHeight && el) {
|
|
7982
|
+
evnt.stopPropagation();
|
|
7983
|
+
evnt.preventDefault();
|
|
7984
|
+
const {
|
|
7985
|
+
editStore
|
|
7986
|
+
} = reactData;
|
|
7987
|
+
const {
|
|
7988
|
+
fullAllDataRowIdData
|
|
7989
|
+
} = internalData;
|
|
7990
|
+
const {
|
|
7991
|
+
actived
|
|
7992
|
+
} = editStore;
|
|
7993
|
+
const {
|
|
7994
|
+
row
|
|
7995
|
+
} = params;
|
|
7996
|
+
const rowid = (0, _util.getRowid)($xeTable, row);
|
|
7997
|
+
const rowRest = fullAllDataRowIdData[rowid];
|
|
7998
|
+
if (!rowRest) {
|
|
7999
|
+
return;
|
|
8000
|
+
}
|
|
8001
|
+
const handleRsHeight = () => {
|
|
8002
|
+
el.setAttribute('data-calc-row', 'Y');
|
|
8003
|
+
const resizeHeight = calcCellAutoHeight(rowRest, el);
|
|
8004
|
+
el.removeAttribute('data-calc-row');
|
|
8005
|
+
const resizeParams = Object.assign(Object.assign({}, params), {
|
|
8006
|
+
resizeHeight,
|
|
8007
|
+
resizeRow: row
|
|
8008
|
+
});
|
|
8009
|
+
reactData.isDragResize = false;
|
|
8010
|
+
internalData._lastResizeTime = Date.now();
|
|
8011
|
+
if ($xeTable.handleRowResizeDblclickCellAreaEvent) {
|
|
8012
|
+
$xeTable.handleRowResizeDblclickCellAreaEvent(evnt, resizeParams);
|
|
8013
|
+
} else {
|
|
8014
|
+
rowRest.resizeHeight = resizeHeight;
|
|
8015
|
+
handleUpdateRowResize(evnt, resizeParams);
|
|
8016
|
+
}
|
|
8017
|
+
};
|
|
8018
|
+
if (actived.row || actived.column) {
|
|
8019
|
+
$xeTable.clearEdit().then(handleRsHeight);
|
|
8020
|
+
} else {
|
|
8021
|
+
handleRsHeight();
|
|
8022
|
+
}
|
|
7528
8023
|
}
|
|
7529
8024
|
},
|
|
7530
8025
|
saveCustomStore(type) {
|
|
@@ -7930,10 +8425,21 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
7930
8425
|
const {
|
|
7931
8426
|
column
|
|
7932
8427
|
} = params;
|
|
7933
|
-
const titleElem = evnt.currentTarget;
|
|
7934
8428
|
handleTargetEnterEvent(true);
|
|
8429
|
+
const titleElem = evnt.currentTarget;
|
|
8430
|
+
if (!titleElem) {
|
|
8431
|
+
return;
|
|
8432
|
+
}
|
|
8433
|
+
const cellEl = titleElem.parentElement;
|
|
8434
|
+
if (!cellEl) {
|
|
8435
|
+
return;
|
|
8436
|
+
}
|
|
8437
|
+
const thEl = cellEl.parentElement;
|
|
8438
|
+
if (!thEl) {
|
|
8439
|
+
return;
|
|
8440
|
+
}
|
|
7935
8441
|
if (tooltipStore.column !== column || !tooltipStore.visible) {
|
|
7936
|
-
handleTooltip(evnt,
|
|
8442
|
+
handleTooltip(evnt, thEl, cellEl, null, params);
|
|
7937
8443
|
}
|
|
7938
8444
|
},
|
|
7939
8445
|
/**
|
|
@@ -7957,7 +8463,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
7957
8463
|
row,
|
|
7958
8464
|
column
|
|
7959
8465
|
} = params;
|
|
7960
|
-
const
|
|
8466
|
+
const tdEl = evnt.currentTarget;
|
|
7961
8467
|
handleTargetEnterEvent(tooltipStore.column !== column || tooltipStore.row !== row);
|
|
7962
8468
|
// 单元格处于编辑状态时不触发提示框
|
|
7963
8469
|
if (column.editRender && (0, _utils.isEnableConf)(editConfig)) {
|
|
@@ -7971,17 +8477,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
7971
8477
|
}
|
|
7972
8478
|
}
|
|
7973
8479
|
if (tooltipStore.column !== column || tooltipStore.row !== row || !tooltipStore.visible) {
|
|
7974
|
-
|
|
7975
|
-
let tipElem;
|
|
7976
|
-
if (column.treeNode) {
|
|
7977
|
-
overflowElem = cell.querySelector('.vxe-tree-cell');
|
|
7978
|
-
if (column.type === 'html') {
|
|
7979
|
-
tipElem = cell.querySelector('.vxe-cell--html');
|
|
7980
|
-
}
|
|
7981
|
-
} else {
|
|
7982
|
-
tipElem = cell.querySelector(column.type === 'html' ? '.vxe-cell--html' : '.vxe-cell--label');
|
|
7983
|
-
}
|
|
7984
|
-
handleTooltip(evnt, cell, overflowElem || cell.children[0], tipElem, params);
|
|
8480
|
+
handleTooltip(evnt, tdEl, tdEl.querySelector('.vxe-cell--wrapper'), null, params);
|
|
7985
8481
|
}
|
|
7986
8482
|
},
|
|
7987
8483
|
/**
|
|
@@ -7997,7 +8493,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
7997
8493
|
const cell = evnt.currentTarget;
|
|
7998
8494
|
handleTargetEnterEvent(tooltipStore.column !== column || !!tooltipStore.row);
|
|
7999
8495
|
if (tooltipStore.column !== column || !tooltipStore.visible) {
|
|
8000
|
-
handleTooltip(evnt, cell, cell.querySelector('.vxe-cell--
|
|
8496
|
+
handleTooltip(evnt, cell, cell.querySelector('.vxe-cell--wrapper') || cell.children[0], null, params);
|
|
8001
8497
|
}
|
|
8002
8498
|
},
|
|
8003
8499
|
handleTargetLeaveEvent() {
|
|
@@ -8010,11 +8506,11 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
8010
8506
|
internalData.tooltipTimeout = setTimeout(() => {
|
|
8011
8507
|
$tooltip = refTooltip.value;
|
|
8012
8508
|
if ($tooltip && $tooltip.isActived && !$tooltip.isActived()) {
|
|
8013
|
-
|
|
8509
|
+
$xeTable.closeTooltip();
|
|
8014
8510
|
}
|
|
8015
8511
|
}, tooltipOpts.leaveDelay);
|
|
8016
8512
|
} else {
|
|
8017
|
-
|
|
8513
|
+
$xeTable.closeTooltip();
|
|
8018
8514
|
}
|
|
8019
8515
|
},
|
|
8020
8516
|
triggerHeaderCellClickEvent(evnt, params) {
|
|
@@ -8059,8 +8555,12 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
8059
8555
|
editConfig
|
|
8060
8556
|
} = props;
|
|
8061
8557
|
const {
|
|
8062
|
-
editStore
|
|
8558
|
+
editStore,
|
|
8559
|
+
isDragResize
|
|
8063
8560
|
} = reactData;
|
|
8561
|
+
if (isDragResize) {
|
|
8562
|
+
return;
|
|
8563
|
+
}
|
|
8064
8564
|
const expandOpts = computeExpandOpts.value;
|
|
8065
8565
|
const editOpts = computeEditOpts.value;
|
|
8066
8566
|
const treeOpts = computeTreeOpts.value;
|
|
@@ -8170,8 +8670,12 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
8170
8670
|
editConfig
|
|
8171
8671
|
} = props;
|
|
8172
8672
|
const {
|
|
8173
|
-
editStore
|
|
8673
|
+
editStore,
|
|
8674
|
+
isDragResize
|
|
8174
8675
|
} = reactData;
|
|
8676
|
+
if (isDragResize) {
|
|
8677
|
+
return;
|
|
8678
|
+
}
|
|
8175
8679
|
const editOpts = computeEditOpts.value;
|
|
8176
8680
|
const {
|
|
8177
8681
|
actived
|
|
@@ -8460,13 +8964,19 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
8460
8964
|
*/
|
|
8461
8965
|
triggerSortEvent(evnt, column, order) {
|
|
8462
8966
|
const sortOpts = computeSortOpts.value;
|
|
8967
|
+
const {
|
|
8968
|
+
multiple,
|
|
8969
|
+
allowClear
|
|
8970
|
+
} = sortOpts;
|
|
8463
8971
|
const {
|
|
8464
8972
|
field,
|
|
8465
8973
|
sortable
|
|
8466
8974
|
} = column;
|
|
8467
8975
|
if (sortable) {
|
|
8468
8976
|
if (!order || column.order === order) {
|
|
8469
|
-
|
|
8977
|
+
if (allowClear) {
|
|
8978
|
+
tableMethods.clearSort(multiple ? column : null);
|
|
8979
|
+
}
|
|
8470
8980
|
} else {
|
|
8471
8981
|
tableMethods.sort({
|
|
8472
8982
|
field,
|
|
@@ -8593,7 +9103,8 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
8593
9103
|
isPeerDrag,
|
|
8594
9104
|
isCrossDrag,
|
|
8595
9105
|
isSelfToChildDrag,
|
|
8596
|
-
dragEndMethod
|
|
9106
|
+
dragEndMethod,
|
|
9107
|
+
dragToChildMethod
|
|
8597
9108
|
} = rowDragOpts;
|
|
8598
9109
|
const treeOpts = computeTreeOpts.value;
|
|
8599
9110
|
const {
|
|
@@ -8612,13 +9123,15 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
8612
9123
|
if (prevDragRow && dragRow) {
|
|
8613
9124
|
// 判断是否有拖动
|
|
8614
9125
|
if (prevDragRow !== dragRow) {
|
|
8615
|
-
|
|
9126
|
+
const dragParams = {
|
|
8616
9127
|
oldRow: dragRow,
|
|
8617
9128
|
newRow: prevDragRow,
|
|
8618
9129
|
dragPos: prevDragPos,
|
|
8619
9130
|
dragToChild: !!prevDragToChild,
|
|
8620
9131
|
offsetIndex: dragOffsetIndex
|
|
8621
|
-
}
|
|
9132
|
+
};
|
|
9133
|
+
const isDragToChildFlag = isSelfToChildDrag && dragToChildMethod ? dragToChildMethod(dragParams) : prevDragToChild;
|
|
9134
|
+
return Promise.resolve(dEndMethod ? dEndMethod(dragParams) : true).then(status => {
|
|
8622
9135
|
if (!status) {
|
|
8623
9136
|
return;
|
|
8624
9137
|
}
|
|
@@ -8696,7 +9209,9 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
8696
9209
|
// 根到根
|
|
8697
9210
|
}
|
|
8698
9211
|
const fullList = _xeUtils.default.toTreeArray(internalData.afterTreeFullData, {
|
|
8699
|
-
|
|
9212
|
+
key: rowField,
|
|
9213
|
+
parentKey: parentField,
|
|
9214
|
+
children: mapChildrenField
|
|
8700
9215
|
});
|
|
8701
9216
|
// 移出
|
|
8702
9217
|
const otfIndex = $xeTable.findRowIndexOf(fullList, dragRow);
|
|
@@ -8711,12 +9226,12 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
8711
9226
|
childRow[parentField] = dragRow[parentField];
|
|
8712
9227
|
});
|
|
8713
9228
|
}
|
|
8714
|
-
dragRow[parentField] =
|
|
9229
|
+
dragRow[parentField] = isDragToChildFlag ? prevDragRow[rowField] : prevDragRow[parentField];
|
|
8715
9230
|
internalData.tableFullTreeData = _xeUtils.default.toArrayTree(fullList, {
|
|
8716
|
-
key:
|
|
8717
|
-
parentKey:
|
|
9231
|
+
key: rowField,
|
|
9232
|
+
parentKey: parentField,
|
|
8718
9233
|
children: childrenField,
|
|
8719
|
-
mapChildren:
|
|
9234
|
+
mapChildren: mapChildrenField
|
|
8720
9235
|
});
|
|
8721
9236
|
}
|
|
8722
9237
|
}
|
|
@@ -8736,7 +9251,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
8736
9251
|
}
|
|
8737
9252
|
reactData.isDragRowMove = true;
|
|
8738
9253
|
$xeTable.handleTableData(treeConfig && transform);
|
|
8739
|
-
$xeTable.cacheRowMap();
|
|
9254
|
+
$xeTable.cacheRowMap(false);
|
|
8740
9255
|
updateScrollYStatus();
|
|
8741
9256
|
if (!(treeConfig && transform)) {
|
|
8742
9257
|
$xeTable.updateAfterDataIndex();
|
|
@@ -8753,7 +9268,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
8753
9268
|
oldRow: dragRow,
|
|
8754
9269
|
newRow: prevDragRow,
|
|
8755
9270
|
dragPos: prevDragPos,
|
|
8756
|
-
dragToChild:
|
|
9271
|
+
dragToChild: isDragToChildFlag,
|
|
8757
9272
|
offsetIndex: dragOffsetIndex,
|
|
8758
9273
|
_index: {
|
|
8759
9274
|
newIndex: nafIndex,
|
|
@@ -8785,18 +9300,16 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
8785
9300
|
prevDragRow,
|
|
8786
9301
|
prevDragPos
|
|
8787
9302
|
} = internalData;
|
|
8788
|
-
if (treeConfig && prevDragToChild) {
|
|
9303
|
+
if (treeConfig && lazy && prevDragToChild) {
|
|
8789
9304
|
// 懒加载
|
|
8790
|
-
|
|
8791
|
-
|
|
8792
|
-
|
|
8793
|
-
if (
|
|
8794
|
-
if (rowRest && rowRest.treeLoaded) {
|
|
8795
|
-
$xeTable.handleRowDragSwapEvent(evnt, true, dragRow, prevDragRow, prevDragPos, prevDragToChild);
|
|
8796
|
-
}
|
|
8797
|
-
} else {
|
|
9305
|
+
const newRowid = (0, _util.getRowid)($xeTable, prevDragRow);
|
|
9306
|
+
const rowRest = fullAllDataRowIdData[newRowid];
|
|
9307
|
+
if (prevDragRow[hasChildField]) {
|
|
9308
|
+
if (rowRest && rowRest.treeLoaded) {
|
|
8798
9309
|
$xeTable.handleRowDragSwapEvent(evnt, true, dragRow, prevDragRow, prevDragPos, prevDragToChild);
|
|
8799
9310
|
}
|
|
9311
|
+
} else {
|
|
9312
|
+
$xeTable.handleRowDragSwapEvent(evnt, true, dragRow, prevDragRow, prevDragPos, prevDragToChild);
|
|
8800
9313
|
}
|
|
8801
9314
|
} else {
|
|
8802
9315
|
$xeTable.handleRowDragSwapEvent(evnt, true, dragRow, prevDragRow, prevDragPos, prevDragToChild);
|
|
@@ -8927,7 +9440,8 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
8927
9440
|
isCrossDrag,
|
|
8928
9441
|
isSelfToChildDrag,
|
|
8929
9442
|
isToChildDrag,
|
|
8930
|
-
dragEndMethod
|
|
9443
|
+
dragEndMethod,
|
|
9444
|
+
dragToChildMethod
|
|
8931
9445
|
} = columnDragOpts;
|
|
8932
9446
|
const {
|
|
8933
9447
|
collectColumn
|
|
@@ -8938,13 +9452,15 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
8938
9452
|
if (prevDragCol !== dragCol) {
|
|
8939
9453
|
const oldColumn = dragCol;
|
|
8940
9454
|
const newColumn = prevDragCol;
|
|
8941
|
-
|
|
9455
|
+
const dragParams = {
|
|
8942
9456
|
oldColumn,
|
|
8943
9457
|
newColumn,
|
|
8944
9458
|
dragPos: prevDragPos,
|
|
8945
9459
|
dragToChild: !!prevDragToChild,
|
|
8946
9460
|
offsetIndex: dragOffsetIndex
|
|
8947
|
-
}
|
|
9461
|
+
};
|
|
9462
|
+
const isDragToChildFlag = isSelfToChildDrag && dragToChildMethod ? dragToChildMethod(dragParams) : prevDragToChild;
|
|
9463
|
+
return Promise.resolve(dragEndMethod ? dragEndMethod(dragParams) : true).then(status => {
|
|
8948
9464
|
if (!status) {
|
|
8949
9465
|
return;
|
|
8950
9466
|
}
|
|
@@ -9040,7 +9556,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
9040
9556
|
parent: nParent
|
|
9041
9557
|
} = newMatchRest;
|
|
9042
9558
|
// 转子级
|
|
9043
|
-
if (isCrossDrag && isToChildDrag &&
|
|
9559
|
+
if (isCrossDrag && isToChildDrag && isDragToChildFlag) {
|
|
9044
9560
|
oldColumn.parentId = newColumn.id;
|
|
9045
9561
|
newColumn.children = (newColumn.children || []).concat([oldColumn]);
|
|
9046
9562
|
} else {
|
|
@@ -9071,7 +9587,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
9071
9587
|
oldColumn,
|
|
9072
9588
|
newColumn,
|
|
9073
9589
|
dragPos: prevDragPos,
|
|
9074
|
-
dragToChild:
|
|
9590
|
+
dragToChild: isDragToChildFlag,
|
|
9075
9591
|
offsetIndex: dragOffsetIndex,
|
|
9076
9592
|
_index: {
|
|
9077
9593
|
newIndex: nafIndex,
|
|
@@ -9339,6 +9855,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
9339
9855
|
triggerBodyScrollEvent(evnt, fixedType) {
|
|
9340
9856
|
const {
|
|
9341
9857
|
elemStore,
|
|
9858
|
+
intoRunScroll,
|
|
9342
9859
|
lastScrollTop,
|
|
9343
9860
|
lastScrollLeft,
|
|
9344
9861
|
inWheelScroll,
|
|
@@ -9358,6 +9875,9 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
9358
9875
|
if (inWheelScroll || inVirtualScroll || inHeaderScroll || inFooterScroll) {
|
|
9359
9876
|
return;
|
|
9360
9877
|
}
|
|
9878
|
+
if (intoRunScroll) {
|
|
9879
|
+
return;
|
|
9880
|
+
}
|
|
9361
9881
|
if (!bodyScrollElem) {
|
|
9362
9882
|
return;
|
|
9363
9883
|
}
|
|
@@ -9414,6 +9934,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
9414
9934
|
triggerHeaderScrollEvent(evnt, fixedType) {
|
|
9415
9935
|
const {
|
|
9416
9936
|
elemStore,
|
|
9937
|
+
intoRunScroll,
|
|
9417
9938
|
inWheelScroll,
|
|
9418
9939
|
inVirtualScroll,
|
|
9419
9940
|
inBodyScroll,
|
|
@@ -9424,16 +9945,10 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
9424
9945
|
const bodyScrollElem = (0, _util.getRefElem)(elemStore['main-body-scroll']);
|
|
9425
9946
|
const headerScrollElem = (0, _util.getRefElem)(elemStore['main-header-scroll']);
|
|
9426
9947
|
const footerScrollElem = (0, _util.getRefElem)(elemStore['main-footer-scroll']);
|
|
9427
|
-
if (inWheelScroll) {
|
|
9428
|
-
return;
|
|
9429
|
-
}
|
|
9430
|
-
if (inVirtualScroll) {
|
|
9431
|
-
return;
|
|
9432
|
-
}
|
|
9433
|
-
if (inBodyScroll) {
|
|
9948
|
+
if (inWheelScroll || inVirtualScroll || inBodyScroll || inFooterScroll) {
|
|
9434
9949
|
return;
|
|
9435
9950
|
}
|
|
9436
|
-
if (
|
|
9951
|
+
if (intoRunScroll) {
|
|
9437
9952
|
return;
|
|
9438
9953
|
}
|
|
9439
9954
|
if (!headerScrollElem) {
|
|
@@ -9462,6 +9977,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
9462
9977
|
triggerFooterScrollEvent(evnt, fixedType) {
|
|
9463
9978
|
const {
|
|
9464
9979
|
elemStore,
|
|
9980
|
+
intoRunScroll,
|
|
9465
9981
|
inWheelScroll,
|
|
9466
9982
|
inVirtualScroll,
|
|
9467
9983
|
inHeaderScroll,
|
|
@@ -9472,16 +9988,10 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
9472
9988
|
const bodyScrollElem = (0, _util.getRefElem)(elemStore['main-body-scroll']);
|
|
9473
9989
|
const headerScrollElem = (0, _util.getRefElem)(elemStore['main-header-scroll']);
|
|
9474
9990
|
const footerScrollElem = (0, _util.getRefElem)(elemStore['main-footer-scroll']);
|
|
9475
|
-
if (inWheelScroll) {
|
|
9476
|
-
return;
|
|
9477
|
-
}
|
|
9478
|
-
if (inVirtualScroll) {
|
|
9991
|
+
if (inWheelScroll || inVirtualScroll || inHeaderScroll || inBodyScroll) {
|
|
9479
9992
|
return;
|
|
9480
9993
|
}
|
|
9481
|
-
if (
|
|
9482
|
-
return;
|
|
9483
|
-
}
|
|
9484
|
-
if (inBodyScroll) {
|
|
9994
|
+
if (intoRunScroll) {
|
|
9485
9995
|
return;
|
|
9486
9996
|
}
|
|
9487
9997
|
if (!footerScrollElem) {
|
|
@@ -9509,9 +10019,13 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
9509
10019
|
},
|
|
9510
10020
|
triggerBodyWheelEvent(evnt) {
|
|
9511
10021
|
const {
|
|
10022
|
+
target,
|
|
9512
10023
|
deltaY,
|
|
9513
10024
|
deltaX
|
|
9514
10025
|
} = evnt;
|
|
10026
|
+
if (target && /^textarea$/i.test(target.tagName)) {
|
|
10027
|
+
return;
|
|
10028
|
+
}
|
|
9515
10029
|
const {
|
|
9516
10030
|
highlightHoverRow
|
|
9517
10031
|
} = _props.default;
|
|
@@ -9535,26 +10049,13 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
9535
10049
|
if (!bodyScrollElem) {
|
|
9536
10050
|
return;
|
|
9537
10051
|
}
|
|
9538
|
-
|
|
9539
|
-
|
|
9540
|
-
|
|
9541
|
-
} else if (reactData.lastScrollTime + 30 > Date.now()) {
|
|
9542
|
-
multiple = 1.15;
|
|
9543
|
-
} else if (reactData.lastScrollTime + 40 > Date.now()) {
|
|
9544
|
-
multiple = 1.12;
|
|
9545
|
-
} else if (reactData.lastScrollTime + 55 > Date.now()) {
|
|
9546
|
-
multiple = 1.09;
|
|
9547
|
-
} else if (reactData.lastScrollTime + 75 > Date.now()) {
|
|
9548
|
-
multiple = 1.06;
|
|
9549
|
-
} else if (reactData.lastScrollTime + 100 > Date.now()) {
|
|
9550
|
-
multiple = 1.03;
|
|
9551
|
-
}
|
|
9552
|
-
const deltaTop = deltaY * multiple;
|
|
9553
|
-
const deltaLeft = deltaX * multiple;
|
|
10052
|
+
const wheelSpeed = getWheelSpeed(reactData.lastScrollTime);
|
|
10053
|
+
const deltaTop = deltaY * wheelSpeed;
|
|
10054
|
+
const deltaLeft = deltaX * wheelSpeed;
|
|
9554
10055
|
const isTopWheel = deltaTop < 0;
|
|
9555
|
-
const currScrollTop =
|
|
10056
|
+
const currScrollTop = bodyScrollElem.scrollTop;
|
|
9556
10057
|
// 如果滚动位置已经是顶部或底部,则不需要触发
|
|
9557
|
-
if (isTopWheel ? currScrollTop <= 0 : currScrollTop >=
|
|
10058
|
+
if (isTopWheel ? currScrollTop <= 0 : currScrollTop >= bodyScrollElem.scrollHeight - bodyScrollElem.clientHeight) {
|
|
9558
10059
|
return;
|
|
9559
10060
|
}
|
|
9560
10061
|
const scrollTop = bodyScrollElem.scrollTop + deltaTop;
|
|
@@ -9567,16 +10068,29 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
9567
10068
|
if (rowOpts.isHover || highlightHoverRow) {
|
|
9568
10069
|
$xeTable.clearHoverRow();
|
|
9569
10070
|
}
|
|
9570
|
-
|
|
9571
|
-
|
|
9572
|
-
|
|
9573
|
-
|
|
9574
|
-
|
|
9575
|
-
|
|
9576
|
-
|
|
9577
|
-
|
|
9578
|
-
|
|
10071
|
+
wheelScrollTo(scrollTop - bodyScrollElem.scrollTop, offsetTop => {
|
|
10072
|
+
const currTopNum = bodyScrollElem.scrollTop + offsetTop;
|
|
10073
|
+
internalData.inWheelScroll = true;
|
|
10074
|
+
(0, _dom.setScrollTop)(yHandleEl, currTopNum);
|
|
10075
|
+
(0, _dom.setScrollTop)(bodyScrollElem, currTopNum);
|
|
10076
|
+
(0, _dom.setScrollTop)(leftScrollElem, currTopNum);
|
|
10077
|
+
(0, _dom.setScrollTop)(rightScrollElem, currTopNum);
|
|
10078
|
+
$xeTable.triggerScrollYEvent(evnt);
|
|
10079
|
+
$xeTable.handleScrollEvent(evnt, isRollY, isRollX, currTopNum, scrollLeft, {
|
|
10080
|
+
type: 'table',
|
|
10081
|
+
fixed: ''
|
|
10082
|
+
});
|
|
9579
10083
|
});
|
|
10084
|
+
// internalData.inWheelScroll = true
|
|
10085
|
+
// setScrollTop(yHandleEl, scrollTop)
|
|
10086
|
+
// setScrollTop(bodyScrollElem, scrollTop)
|
|
10087
|
+
// setScrollTop(leftScrollElem, scrollTop)
|
|
10088
|
+
// setScrollTop(rightScrollElem, scrollTop)
|
|
10089
|
+
// loadScrollYData(scrollTop)
|
|
10090
|
+
// $xeTable.handleScrollEvent(evnt, isRollY, isRollX, scrollTop, scrollLeft, {
|
|
10091
|
+
// type: 'footer',
|
|
10092
|
+
// fixed: ''
|
|
10093
|
+
// })
|
|
9580
10094
|
}
|
|
9581
10095
|
},
|
|
9582
10096
|
triggerVirtualScrollXEvent(evnt) {
|
|
@@ -9746,45 +10260,43 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
9746
10260
|
// 更新纵向 Y 可视渲染上下剩余空间大小
|
|
9747
10261
|
updateScrollYSpace() {
|
|
9748
10262
|
const {
|
|
9749
|
-
|
|
9750
|
-
|
|
9751
|
-
const {
|
|
9752
|
-
scrollYLoad,
|
|
9753
|
-
rowHeight
|
|
10263
|
+
isAllOverflow,
|
|
10264
|
+
scrollYLoad
|
|
9754
10265
|
} = reactData;
|
|
9755
10266
|
const {
|
|
9756
10267
|
scrollYStore,
|
|
9757
10268
|
elemStore,
|
|
10269
|
+
isResizeCellHeight,
|
|
9758
10270
|
afterFullData,
|
|
9759
10271
|
fullAllDataRowIdData
|
|
9760
10272
|
} = internalData;
|
|
9761
10273
|
const {
|
|
9762
10274
|
startIndex
|
|
9763
10275
|
} = scrollYStore;
|
|
10276
|
+
const rowOpts = computeRowOpts.value;
|
|
10277
|
+
const cellOpts = computeCellOpts.value;
|
|
10278
|
+
const defaultRowHeight = computeDefaultRowHeight.value;
|
|
9764
10279
|
const bodyTableElem = (0, _util.getRefElem)(elemStore['main-body-table']);
|
|
9765
10280
|
const containerList = ['main', 'left', 'right'];
|
|
9766
10281
|
let topSpaceHeight = 0;
|
|
9767
10282
|
let ySpaceHeight = 0;
|
|
9768
10283
|
if (scrollYLoad) {
|
|
9769
|
-
|
|
9770
|
-
|
|
9771
|
-
|
|
10284
|
+
const isCustomCellHeight = isResizeCellHeight || cellOpts.height || rowOpts.height;
|
|
10285
|
+
if (!isCustomCellHeight && isAllOverflow) {
|
|
10286
|
+
ySpaceHeight = afterFullData.length * defaultRowHeight;
|
|
10287
|
+
topSpaceHeight = Math.max(0, startIndex * defaultRowHeight);
|
|
9772
10288
|
} else {
|
|
9773
10289
|
for (let i = 0; i < afterFullData.length; i++) {
|
|
9774
10290
|
const row = afterFullData[i];
|
|
9775
10291
|
const rowid = (0, _util.getRowid)($xeTable, row);
|
|
9776
|
-
const rowRest = fullAllDataRowIdData[rowid];
|
|
9777
|
-
|
|
9778
|
-
ySpaceHeight += rowRest.height || rowHeight;
|
|
9779
|
-
}
|
|
10292
|
+
const rowRest = fullAllDataRowIdData[rowid] || {};
|
|
10293
|
+
ySpaceHeight += rowRest.resizeHeight || rowRest.height || cellOpts.height || rowOpts.height || defaultRowHeight;
|
|
9780
10294
|
}
|
|
9781
10295
|
for (let i = 0; i < startIndex; i++) {
|
|
9782
10296
|
const row = afterFullData[i];
|
|
9783
10297
|
const rowid = (0, _util.getRowid)($xeTable, row);
|
|
9784
|
-
const rowRest = fullAllDataRowIdData[rowid];
|
|
9785
|
-
|
|
9786
|
-
topSpaceHeight += rowRest.height || rowHeight;
|
|
9787
|
-
}
|
|
10298
|
+
const rowRest = fullAllDataRowIdData[rowid] || {};
|
|
10299
|
+
topSpaceHeight += rowRest.resizeHeight || rowRest.height || cellOpts.height || rowOpts.height || defaultRowHeight;
|
|
9788
10300
|
}
|
|
9789
10301
|
}
|
|
9790
10302
|
} else {
|
|
@@ -9809,19 +10321,19 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
9809
10321
|
if (scrollYSpaceEl) {
|
|
9810
10322
|
scrollYSpaceEl.style.height = ySpaceHeight ? `${ySpaceHeight}px` : '';
|
|
9811
10323
|
}
|
|
9812
|
-
(0, _vue.nextTick)(() => {
|
|
10324
|
+
return (0, _vue.nextTick)().then(() => {
|
|
9813
10325
|
updateStyle();
|
|
9814
10326
|
});
|
|
9815
10327
|
},
|
|
9816
10328
|
updateScrollXData() {
|
|
9817
10329
|
const {
|
|
9818
|
-
|
|
9819
|
-
} =
|
|
10330
|
+
isAllOverflow
|
|
10331
|
+
} = reactData;
|
|
9820
10332
|
handleTableColumn();
|
|
9821
10333
|
return (0, _vue.nextTick)().then(() => {
|
|
9822
10334
|
handleTableColumn();
|
|
9823
10335
|
$xeTable.updateScrollXSpace();
|
|
9824
|
-
if (!
|
|
10336
|
+
if (!isAllOverflow) {
|
|
9825
10337
|
$xeTable.updateScrollYSpace();
|
|
9826
10338
|
}
|
|
9827
10339
|
});
|
|
@@ -10173,7 +10685,6 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
10173
10685
|
editRules
|
|
10174
10686
|
} = props;
|
|
10175
10687
|
const {
|
|
10176
|
-
isCalcColumn,
|
|
10177
10688
|
isGroup,
|
|
10178
10689
|
overflowX,
|
|
10179
10690
|
overflowY,
|
|
@@ -10183,15 +10694,15 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
10183
10694
|
initStore,
|
|
10184
10695
|
columnStore,
|
|
10185
10696
|
filterStore,
|
|
10186
|
-
customStore
|
|
10187
|
-
tooltipStore
|
|
10697
|
+
customStore
|
|
10188
10698
|
} = reactData;
|
|
10189
10699
|
const {
|
|
10190
10700
|
leftList,
|
|
10191
10701
|
rightList
|
|
10192
10702
|
} = columnStore;
|
|
10193
10703
|
const loadingSlot = slots.loading;
|
|
10194
|
-
const
|
|
10704
|
+
const tableTipConfig = computeTableTipConfig.value;
|
|
10705
|
+
const validTipConfig = computeValidTipConfig.value;
|
|
10195
10706
|
const validOpts = computeValidOpts.value;
|
|
10196
10707
|
const checkboxOpts = computeCheckboxOpts.value;
|
|
10197
10708
|
const treeOpts = computeTreeOpts.value;
|
|
@@ -10203,7 +10714,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
10203
10714
|
const areaOpts = computeAreaOpts.value;
|
|
10204
10715
|
const loadingOpts = computeLoadingOpts.value;
|
|
10205
10716
|
const isMenu = computeIsMenu.value;
|
|
10206
|
-
const currLoading = reactData.
|
|
10717
|
+
const currLoading = reactData.isColLoading || reactData.isRowLoading || loading;
|
|
10207
10718
|
const resizableOpts = computeResizableOpts.value;
|
|
10208
10719
|
const isArea = mouseConfig && mouseOpts.area;
|
|
10209
10720
|
const columnDragOpts = computeColumnDragOpts.value;
|
|
@@ -10224,7 +10735,6 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
10224
10735
|
'row--highlight': rowOpts.isHover || highlightHoverRow,
|
|
10225
10736
|
'column--highlight': columnOpts.isHover || highlightHoverColumn,
|
|
10226
10737
|
'checkbox--range': checkboxOpts.range,
|
|
10227
|
-
'column--calc': isCalcColumn,
|
|
10228
10738
|
'col--drag-cell': columnOpts.drag && columnDragOpts.trigger === 'cell',
|
|
10229
10739
|
'is--header': showHeader,
|
|
10230
10740
|
'is--footer': showFooter,
|
|
@@ -10233,7 +10743,6 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
10233
10743
|
'is--fixed-left': leftList.length,
|
|
10234
10744
|
'is--fixed-right': rightList.length,
|
|
10235
10745
|
'is--animat': !!props.animat,
|
|
10236
|
-
'is--padding': props.padding,
|
|
10237
10746
|
'is--round': props.round,
|
|
10238
10747
|
'is--stripe': !treeConfig && stripe,
|
|
10239
10748
|
'is--loading': currLoading,
|
|
@@ -10276,11 +10785,20 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
10276
10785
|
* 列宽线
|
|
10277
10786
|
*/
|
|
10278
10787
|
(0, _vue.h)('div', {
|
|
10279
|
-
key: '
|
|
10280
|
-
ref:
|
|
10281
|
-
class: 'vxe-table--resizable-bar'
|
|
10788
|
+
key: 'tcl',
|
|
10789
|
+
ref: refColResizeBar,
|
|
10790
|
+
class: 'vxe-table--resizable-col-bar'
|
|
10791
|
+
}, resizableOpts.showDragTip ? [(0, _vue.h)('div', {
|
|
10792
|
+
class: 'vxe-table--resizable-number-tip'
|
|
10793
|
+
})] : []),
|
|
10794
|
+
/**
|
|
10795
|
+
* 行高线
|
|
10796
|
+
*/
|
|
10797
|
+
(0, _vue.h)('div', {
|
|
10798
|
+
key: 'trl',
|
|
10799
|
+
ref: refRowResizeBar,
|
|
10800
|
+
class: 'vxe-table--resizable-row-bar'
|
|
10282
10801
|
}, resizableOpts.showDragTip ? [(0, _vue.h)('div', {
|
|
10283
|
-
ref: refCellResizeTip,
|
|
10284
10802
|
class: 'vxe-table--resizable-number-tip'
|
|
10285
10803
|
})] : []),
|
|
10286
10804
|
/**
|
|
@@ -10366,22 +10884,28 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
10366
10884
|
/**
|
|
10367
10885
|
* 工具提示
|
|
10368
10886
|
*/
|
|
10369
|
-
(0, _vue.h)(VxeUITooltipComponent,
|
|
10887
|
+
(0, _vue.h)(VxeUITooltipComponent, {
|
|
10370
10888
|
key: 'btp',
|
|
10371
|
-
ref: refTooltip
|
|
10372
|
-
|
|
10889
|
+
ref: refTooltip,
|
|
10890
|
+
theme: tableTipConfig.theme,
|
|
10891
|
+
enterable: tableTipConfig.enterable,
|
|
10892
|
+
enterDelay: tableTipConfig.enterDelay,
|
|
10893
|
+
leaveDelay: tableTipConfig.leaveDelay
|
|
10894
|
+
}),
|
|
10373
10895
|
/**
|
|
10374
10896
|
* 校验提示
|
|
10375
10897
|
*/
|
|
10376
|
-
props.editRules && validOpts.showMessage && (validOpts.message === 'default' ? !height : validOpts.message === 'tooltip') ? (0, _vue.h)(VxeUITooltipComponent,
|
|
10898
|
+
props.editRules && validOpts.showMessage && (validOpts.message === 'default' ? !height : validOpts.message === 'tooltip') ? (0, _vue.h)(VxeUITooltipComponent, {
|
|
10377
10899
|
key: 'vtp',
|
|
10378
10900
|
ref: refValidTooltip,
|
|
10379
10901
|
class: [{
|
|
10380
10902
|
'old-cell-valid': editRules && getConfig().cellVaildMode === 'obsolete'
|
|
10381
|
-
}, 'vxe-table--valid-error']
|
|
10382
|
-
|
|
10383
|
-
|
|
10384
|
-
|
|
10903
|
+
}, 'vxe-table--valid-error'],
|
|
10904
|
+
theme: validTipConfig.theme,
|
|
10905
|
+
enterable: validTipConfig.enterable,
|
|
10906
|
+
enterDelay: validTipConfig.enterDelay,
|
|
10907
|
+
leaveDelay: validTipConfig.leaveDelay
|
|
10908
|
+
}) : renderEmptyElement($xeTable)]) : renderEmptyElement($xeTable)]);
|
|
10385
10909
|
};
|
|
10386
10910
|
const dataFlag = (0, _vue.ref)(0);
|
|
10387
10911
|
(0, _vue.watch)(() => props.data ? props.data.length : -1, () => {
|
|
@@ -10398,7 +10922,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
10398
10922
|
if (value && value.length >= 50000) {
|
|
10399
10923
|
(0, _log.warnLog)('vxe.error.errLargeData', ['loadData(data), reloadData(data)']);
|
|
10400
10924
|
}
|
|
10401
|
-
loadTableData(value).then(() => {
|
|
10925
|
+
loadTableData(value, true).then(() => {
|
|
10402
10926
|
const {
|
|
10403
10927
|
scrollXLoad,
|
|
10404
10928
|
scrollYLoad,
|
|
@@ -10493,10 +11017,10 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
10493
11017
|
});
|
|
10494
11018
|
(0, _vue.watch)(() => props.syncResize, value => {
|
|
10495
11019
|
if (value) {
|
|
10496
|
-
|
|
11020
|
+
handleUpdateResize();
|
|
10497
11021
|
(0, _vue.nextTick)(() => {
|
|
10498
|
-
|
|
10499
|
-
setTimeout(() =>
|
|
11022
|
+
handleUpdateResize();
|
|
11023
|
+
setTimeout(() => handleUpdateResize());
|
|
10500
11024
|
});
|
|
10501
11025
|
}
|
|
10502
11026
|
});
|
|
@@ -10611,6 +11135,9 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
10611
11135
|
if (props.showFooter && !(props.footerMethod || props.footerData)) {
|
|
10612
11136
|
(0, _log.warnLog)('vxe.error.reqProp', ['footer-data | footer-method']);
|
|
10613
11137
|
}
|
|
11138
|
+
if (rowOpts.height) {
|
|
11139
|
+
(0, _log.warnLog)('vxe.error.delProp', ['row-config.height', 'cell-config.height']);
|
|
11140
|
+
}
|
|
10614
11141
|
// if (props.highlightCurrentRow) {
|
|
10615
11142
|
// warnLog('vxe.error.delProp', ['highlight-current-row', 'row-config.isCurrent'])
|
|
10616
11143
|
// }
|
|
@@ -10721,7 +11248,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
10721
11248
|
endIndex: 0,
|
|
10722
11249
|
visibleSize: 0
|
|
10723
11250
|
});
|
|
10724
|
-
loadTableData(data || []).then(() => {
|
|
11251
|
+
loadTableData(data || [], true).then(() => {
|
|
10725
11252
|
if (data && data.length) {
|
|
10726
11253
|
internalData.inited = true;
|
|
10727
11254
|
internalData.initStatus = true;
|