vxe-table 3.11.39 → 3.12.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/es/index.css +1 -1
- package/es/index.min.css +1 -1
- package/es/style.css +1 -1
- package/es/style.min.css +1 -1
- package/es/table/module/custom/panel.js +6 -2
- package/es/table/render/index.js +3 -1
- package/es/table/src/body.js +56 -13
- package/es/table/src/footer.js +28 -3
- package/es/table/src/header.js +36 -6
- package/es/table/src/methods.js +136 -104
- package/es/table/src/table.js +5 -13
- package/es/table/style.css +3 -5
- package/es/table/style.min.css +1 -1
- package/es/ui/index.js +5 -3
- package/es/ui/src/log.js +1 -1
- package/es/vxe-table/style.css +3 -5
- package/es/vxe-table/style.min.css +1 -1
- package/lib/index.css +1 -1
- package/lib/index.min.css +1 -1
- package/lib/index.umd.js +294 -166
- package/lib/index.umd.min.js +1 -1
- package/lib/style.css +1 -1
- package/lib/style.min.css +1 -1
- package/lib/table/module/custom/panel.js +6 -4
- package/lib/table/module/custom/panel.min.js +1 -1
- package/lib/table/render/index.js +3 -1
- package/lib/table/render/index.min.js +1 -1
- package/lib/table/src/body.js +58 -13
- package/lib/table/src/body.min.js +1 -1
- package/lib/table/src/footer.js +31 -3
- package/lib/table/src/footer.min.js +1 -1
- package/lib/table/src/header.js +39 -6
- package/lib/table/src/header.min.js +1 -1
- package/lib/table/src/methods.js +146 -120
- package/lib/table/src/methods.min.js +1 -1
- package/lib/table/src/table.js +5 -15
- package/lib/table/src/table.min.js +1 -1
- package/lib/table/style/style.css +3 -5
- package/lib/table/style/style.min.css +1 -1
- package/lib/ui/index.js +5 -3
- 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 +3 -5
- package/lib/vxe-table/style/style.min.css +1 -1
- package/package.json +1 -1
- package/packages/table/module/custom/panel.ts +7 -2
- package/packages/table/render/index.ts +3 -1
- package/packages/table/src/body.ts +56 -13
- package/packages/table/src/footer.ts +28 -3
- package/packages/table/src/header.ts +40 -7
- package/packages/table/src/methods.ts +140 -109
- package/packages/table/src/table.ts +6 -15
- package/packages/ui/index.ts +4 -2
- package/styles/components/table.scss +1 -3
- /package/es/{iconfont.1735027791418.ttf → iconfont.1735108867776.ttf} +0 -0
- /package/es/{iconfont.1735027791418.woff → iconfont.1735108867776.woff} +0 -0
- /package/es/{iconfont.1735027791418.woff2 → iconfont.1735108867776.woff2} +0 -0
- /package/lib/{iconfont.1735027791418.ttf → iconfont.1735108867776.ttf} +0 -0
- /package/lib/{iconfont.1735027791418.woff → iconfont.1735108867776.woff} +0 -0
- /package/lib/{iconfont.1735027791418.woff2 → iconfont.1735108867776.woff2} +0 -0
package/lib/table/src/methods.js
CHANGED
|
@@ -21,8 +21,6 @@ const {
|
|
|
21
21
|
interceptor,
|
|
22
22
|
createEvent
|
|
23
23
|
} = _ui.VxeUI;
|
|
24
|
-
// const isWebkit = browse['-webkit'] && !browse.edge
|
|
25
|
-
// const debounceScrollYDuration = browse.msie ? 80 : 20
|
|
26
24
|
const customStorageKey = 'VXE_CUSTOM_STORE';
|
|
27
25
|
// 获取所有的列,排除分组
|
|
28
26
|
const getColumnList = columns => {
|
|
@@ -356,7 +354,7 @@ const calcCellHeight = $xeTable => {
|
|
|
356
354
|
const {
|
|
357
355
|
fullAllDataRowIdData
|
|
358
356
|
} = internalData;
|
|
359
|
-
const el = $xeTable.$
|
|
357
|
+
const el = $xeTable.$refs.refElem;
|
|
360
358
|
if (!showOverflow && (scrollXLoad || scrollYLoad) && el) {
|
|
361
359
|
let paddingTop = 0;
|
|
362
360
|
let paddingBottom = 0;
|
|
@@ -364,28 +362,27 @@ const calcCellHeight = $xeTable => {
|
|
|
364
362
|
tableData.forEach(row => {
|
|
365
363
|
const rowid = (0, _util.getRowid)($xeTable, row);
|
|
366
364
|
const rowRest = fullAllDataRowIdData[rowid];
|
|
367
|
-
const
|
|
368
|
-
if (rowRest &&
|
|
365
|
+
const cellList = el.querySelectorAll(`.vxe-body--row[rowid="${rowid}"]>.vxe-body--column>.vxe-cell`);
|
|
366
|
+
if (rowRest && cellList.length) {
|
|
369
367
|
let height = 0;
|
|
370
|
-
for (let i = 0; i <
|
|
371
|
-
const
|
|
372
|
-
const
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
}
|
|
385
|
-
height = Math.max(height, cellHeight);
|
|
368
|
+
for (let i = 0; i < cellList.length; i++) {
|
|
369
|
+
const cellElem = cellList[i];
|
|
370
|
+
const tdEl = cellElem.parentElement;
|
|
371
|
+
if (!tdEl || !tdEl.clientWidth) {
|
|
372
|
+
break;
|
|
373
|
+
}
|
|
374
|
+
if (!calcPadding) {
|
|
375
|
+
paddingTop = _xeUtils.default.toNumber(getComputedStyle(tdEl).paddingTop);
|
|
376
|
+
paddingBottom = _xeUtils.default.toNumber(getComputedStyle(tdEl).paddingBottom);
|
|
377
|
+
calcPadding = true;
|
|
378
|
+
}
|
|
379
|
+
let cellHeight = paddingTop + paddingBottom;
|
|
380
|
+
if (cellElem) {
|
|
381
|
+
cellHeight += cellElem.clientHeight;
|
|
386
382
|
}
|
|
383
|
+
height = Math.max(height, cellHeight);
|
|
387
384
|
}
|
|
388
|
-
rowRest.height = height;
|
|
385
|
+
rowRest.height = scrollXLoad ? Math.max(rowRest.height, height) : height;
|
|
389
386
|
}
|
|
390
387
|
});
|
|
391
388
|
}
|
|
@@ -516,15 +513,22 @@ function showDropTip($xeTable, evnt, trEl, thEl, showLine, dragPos) {
|
|
|
516
513
|
prevDragToChild
|
|
517
514
|
} = internalData;
|
|
518
515
|
const wrapperRect = el.getBoundingClientRect();
|
|
516
|
+
const tableWidth = el.clientWidth;
|
|
517
|
+
const tableHeight = el.clientHeight;
|
|
519
518
|
if (trEl) {
|
|
520
519
|
const rdLineEl = $xeTable.$refs.refDragRowLineElem;
|
|
521
520
|
if (rdLineEl) {
|
|
522
521
|
if (showLine) {
|
|
523
522
|
const trRect = trEl.getBoundingClientRect();
|
|
523
|
+
let trHeight = trEl.clientHeight;
|
|
524
|
+
const offsetTop = Math.max(1, trRect.y - wrapperRect.y);
|
|
525
|
+
if (offsetTop + trHeight > tableHeight - scrollbarHeight) {
|
|
526
|
+
trHeight = tableHeight - offsetTop - scrollbarHeight;
|
|
527
|
+
}
|
|
524
528
|
rdLineEl.style.display = 'block';
|
|
525
|
-
rdLineEl.style.top = `${
|
|
526
|
-
rdLineEl.style.height = `${
|
|
527
|
-
rdLineEl.style.width = `${
|
|
529
|
+
rdLineEl.style.top = `${offsetTop}px`;
|
|
530
|
+
rdLineEl.style.height = `${trHeight}px`;
|
|
531
|
+
rdLineEl.style.width = `${tableWidth - scrollbarWidth}px`;
|
|
528
532
|
rdLineEl.setAttribute('drag-pos', dragPos);
|
|
529
533
|
rdLineEl.setAttribute('drag-to-child', prevDragToChild ? 'y' : 'n');
|
|
530
534
|
} else {
|
|
@@ -535,16 +539,31 @@ function showDropTip($xeTable, evnt, trEl, thEl, showLine, dragPos) {
|
|
|
535
539
|
const cdLineEl = $xeTable.$refs.refDragColLineElem;
|
|
536
540
|
if (cdLineEl) {
|
|
537
541
|
if (showLine) {
|
|
542
|
+
const leftContainerElem = $xeTable.$refs.leftContainer;
|
|
543
|
+
const leftContainerWidth = leftContainerElem ? leftContainerElem.clientWidth : 0;
|
|
544
|
+
const rightContainerElem = $xeTable.$refs.rightContainer;
|
|
545
|
+
const rightContainerWidth = rightContainerElem ? rightContainerElem.clientWidth : 0;
|
|
538
546
|
const thRect = thEl.getBoundingClientRect();
|
|
547
|
+
let thWidth = thEl.clientWidth;
|
|
539
548
|
const offsetTop = Math.max(0, thRect.y - wrapperRect.y);
|
|
549
|
+
const startX = leftContainerWidth;
|
|
550
|
+
let offsetLeft = thRect.x - wrapperRect.x;
|
|
551
|
+
if (offsetLeft < startX) {
|
|
552
|
+
thWidth -= startX - offsetLeft;
|
|
553
|
+
offsetLeft = startX;
|
|
554
|
+
}
|
|
555
|
+
const endX = tableWidth - rightContainerWidth - (rightContainerWidth ? 0 : scrollbarWidth);
|
|
556
|
+
if (offsetLeft + thWidth > endX) {
|
|
557
|
+
thWidth = endX - offsetLeft;
|
|
558
|
+
}
|
|
540
559
|
cdLineEl.style.display = 'block';
|
|
541
560
|
cdLineEl.style.top = `${offsetTop}px`;
|
|
542
|
-
cdLineEl.style.left = `${
|
|
543
|
-
cdLineEl.style.width = `${
|
|
561
|
+
cdLineEl.style.left = `${offsetLeft}px`;
|
|
562
|
+
cdLineEl.style.width = `${thWidth}px`;
|
|
544
563
|
if (prevDragToChild) {
|
|
545
564
|
cdLineEl.style.height = `${thRect.height}px`;
|
|
546
565
|
} else {
|
|
547
|
-
cdLineEl.style.height = `${
|
|
566
|
+
cdLineEl.style.height = `${tableHeight - offsetTop - scrollbarHeight}px`;
|
|
548
567
|
}
|
|
549
568
|
cdLineEl.setAttribute('drag-pos', dragPos);
|
|
550
569
|
cdLineEl.setAttribute('drag-to-child', prevDragToChild ? 'y' : 'n');
|
|
@@ -1030,7 +1049,7 @@ const Methods = {
|
|
|
1030
1049
|
return Promise.resolve(this.restoreCustomStorage()).then(() => {
|
|
1031
1050
|
this._isLoading = false;
|
|
1032
1051
|
this.cacheColumnMap();
|
|
1033
|
-
this.parseColumns().then(() => {
|
|
1052
|
+
this.parseColumns(true).then(() => {
|
|
1034
1053
|
if (this.scrollXLoad) {
|
|
1035
1054
|
this.loadScrollXData(true);
|
|
1036
1055
|
}
|
|
@@ -2902,15 +2921,11 @@ const Methods = {
|
|
|
2902
2921
|
/**
|
|
2903
2922
|
* 刷新列配置
|
|
2904
2923
|
*/
|
|
2905
|
-
refreshColumn(
|
|
2906
|
-
if (
|
|
2907
|
-
|
|
2908
|
-
this.collectColumn = columnList;
|
|
2909
|
-
const tableFullColumn = getColumnList(columnList);
|
|
2910
|
-
this.tableFullColumn = tableFullColumn;
|
|
2911
|
-
this.cacheColumnMap();
|
|
2924
|
+
refreshColumn(initSort) {
|
|
2925
|
+
if (initSort) {
|
|
2926
|
+
this.handleUpdateColumn();
|
|
2912
2927
|
}
|
|
2913
|
-
return this.parseColumns().then(() => {
|
|
2928
|
+
return this.parseColumns(true).then(() => {
|
|
2914
2929
|
return this.refreshScroll();
|
|
2915
2930
|
}).then(() => {
|
|
2916
2931
|
return this.recalculate();
|
|
@@ -2920,7 +2935,7 @@ const Methods = {
|
|
|
2920
2935
|
* 刷新列信息
|
|
2921
2936
|
* 将固定的列左边、右边分别靠边
|
|
2922
2937
|
*/
|
|
2923
|
-
parseColumns() {
|
|
2938
|
+
parseColumns(isReset) {
|
|
2924
2939
|
const $xeTable = this;
|
|
2925
2940
|
const props = $xeTable;
|
|
2926
2941
|
const internalData = $xeTable;
|
|
@@ -3024,12 +3039,14 @@ const Methods = {
|
|
|
3024
3039
|
(0, _log.warnLog)('vxe.error.scrollErrProp', ['footer-span-method']);
|
|
3025
3040
|
}
|
|
3026
3041
|
}
|
|
3027
|
-
|
|
3028
|
-
|
|
3029
|
-
|
|
3030
|
-
|
|
3031
|
-
|
|
3032
|
-
|
|
3042
|
+
if (isReset) {
|
|
3043
|
+
const {
|
|
3044
|
+
visibleSize
|
|
3045
|
+
} = handleVirtualXVisible(this);
|
|
3046
|
+
scrollXStore.startIndex = 0;
|
|
3047
|
+
scrollXStore.endIndex = visibleSize;
|
|
3048
|
+
scrollXStore.visibleSize = visibleSize;
|
|
3049
|
+
}
|
|
3033
3050
|
}
|
|
3034
3051
|
// 如果列被显示/隐藏,则清除合并状态
|
|
3035
3052
|
// 如果列被设置为固定,则清除合并状态
|
|
@@ -3047,12 +3064,15 @@ const Methods = {
|
|
|
3047
3064
|
});
|
|
3048
3065
|
this.visibleColumn = visibleColumn;
|
|
3049
3066
|
this.handleTableColumn();
|
|
3050
|
-
|
|
3051
|
-
return this.
|
|
3052
|
-
|
|
3053
|
-
|
|
3054
|
-
|
|
3055
|
-
|
|
3067
|
+
if (isReset) {
|
|
3068
|
+
return this.updateFooter().then(() => {
|
|
3069
|
+
return this.recalculate();
|
|
3070
|
+
}).then(() => {
|
|
3071
|
+
this.updateCellAreas();
|
|
3072
|
+
return this.recalculate();
|
|
3073
|
+
});
|
|
3074
|
+
}
|
|
3075
|
+
return this.updateFooter();
|
|
3056
3076
|
},
|
|
3057
3077
|
/**
|
|
3058
3078
|
* 指定列宽的列进行拆分
|
|
@@ -3383,56 +3403,6 @@ const Methods = {
|
|
|
3383
3403
|
this.checkScrolling();
|
|
3384
3404
|
}
|
|
3385
3405
|
},
|
|
3386
|
-
calcCellHeight() {
|
|
3387
|
-
const $xeTable = this;
|
|
3388
|
-
const props = $xeTable;
|
|
3389
|
-
const reactData = $xeTable;
|
|
3390
|
-
const internalData = $xeTable;
|
|
3391
|
-
const {
|
|
3392
|
-
showOverflow
|
|
3393
|
-
} = props;
|
|
3394
|
-
const {
|
|
3395
|
-
tableData,
|
|
3396
|
-
scrollXLoad,
|
|
3397
|
-
scrollYLoad
|
|
3398
|
-
} = reactData;
|
|
3399
|
-
const {
|
|
3400
|
-
fullAllDataRowIdData
|
|
3401
|
-
} = internalData;
|
|
3402
|
-
const el = $xeTable.$el;
|
|
3403
|
-
if (!showOverflow && (scrollXLoad || scrollYLoad) && el) {
|
|
3404
|
-
let paddingTop = 0;
|
|
3405
|
-
let paddingBottom = 0;
|
|
3406
|
-
let calcPadding = false;
|
|
3407
|
-
tableData.forEach(row => {
|
|
3408
|
-
const rowid = (0, _util.getRowid)($xeTable, row);
|
|
3409
|
-
const rowRest = fullAllDataRowIdData[rowid];
|
|
3410
|
-
const trList = el.querySelectorAll(`.vxe-body--row[rowid="${rowid}"]`);
|
|
3411
|
-
if (rowRest && trList.length) {
|
|
3412
|
-
let height = 0;
|
|
3413
|
-
for (let i = 0; i < trList.length; i++) {
|
|
3414
|
-
const trEl = trList[i];
|
|
3415
|
-
const tdList = trEl.children;
|
|
3416
|
-
for (let j = 0; j < tdList.length; j++) {
|
|
3417
|
-
const tdEl = tdList[j];
|
|
3418
|
-
const cellElem = tdEl.querySelector('.vxe-cell');
|
|
3419
|
-
if (!calcPadding) {
|
|
3420
|
-
paddingTop = _xeUtils.default.toNumber(getComputedStyle(tdEl).paddingTop);
|
|
3421
|
-
paddingBottom = _xeUtils.default.toNumber(getComputedStyle(tdEl).paddingBottom);
|
|
3422
|
-
calcPadding = true;
|
|
3423
|
-
}
|
|
3424
|
-
let cellHeight = paddingTop + paddingBottom;
|
|
3425
|
-
if (cellElem) {
|
|
3426
|
-
cellHeight += cellElem.offsetHeight;
|
|
3427
|
-
}
|
|
3428
|
-
height = Math.max(height, cellHeight);
|
|
3429
|
-
}
|
|
3430
|
-
}
|
|
3431
|
-
rowRest.height = scrollXLoad ? Math.max(rowRest.height, height) : height;
|
|
3432
|
-
}
|
|
3433
|
-
});
|
|
3434
|
-
}
|
|
3435
|
-
},
|
|
3436
3406
|
updateHeight() {
|
|
3437
3407
|
this.customHeight = calcTableHeight(this, 'height');
|
|
3438
3408
|
this.customMinHeight = calcTableHeight(this, 'minHeight');
|
|
@@ -3528,7 +3498,7 @@ const Methods = {
|
|
|
3528
3498
|
} else {
|
|
3529
3499
|
if (fixedType) {
|
|
3530
3500
|
// 如果是使用优化模式
|
|
3531
|
-
if (allColumnHeaderOverflow) {
|
|
3501
|
+
if (scrollXLoad || scrollYLoad || allColumnHeaderOverflow) {
|
|
3532
3502
|
// 如果不支持优化模式
|
|
3533
3503
|
if (spanMethod || footerSpanMethod) {
|
|
3534
3504
|
renderColumnList = visibleColumn;
|
|
@@ -3650,7 +3620,7 @@ const Methods = {
|
|
|
3650
3620
|
let renderColumnList = tableColumn;
|
|
3651
3621
|
if (fixedType) {
|
|
3652
3622
|
// 如果是使用优化模式
|
|
3653
|
-
if (allColumnFooterOverflow) {
|
|
3623
|
+
if (scrollXLoad || scrollYLoad || allColumnFooterOverflow) {
|
|
3654
3624
|
// 如果不支持优化模式
|
|
3655
3625
|
if (spanMethod || footerSpanMethod) {
|
|
3656
3626
|
renderColumnList = visibleColumn;
|
|
@@ -6101,7 +6071,10 @@ const Methods = {
|
|
|
6101
6071
|
const triggerFilter = (0, _dom.getEventTargetNode)(evnt, cell, 'vxe-cell--filter').flag;
|
|
6102
6072
|
let triggerDrag = false;
|
|
6103
6073
|
if (!(triggerInput || triggerCheckbox || triggerSort || triggerFilter)) {
|
|
6104
|
-
|
|
6074
|
+
const {
|
|
6075
|
+
column
|
|
6076
|
+
} = params;
|
|
6077
|
+
if (columnOpts.drag && !column.fixed && trigger === 'cell' && !(disabledMethod && disabledMethod(params))) {
|
|
6105
6078
|
triggerDrag = true;
|
|
6106
6079
|
$xeTable.handleHeaderCellDragMousedownEvent(evnt, params);
|
|
6107
6080
|
}
|
|
@@ -6478,7 +6451,7 @@ const Methods = {
|
|
|
6478
6451
|
evnt.dataTransfer.setDragImage(img, 0, 0);
|
|
6479
6452
|
}
|
|
6480
6453
|
},
|
|
6481
|
-
|
|
6454
|
+
handleColDragSwapEvent(evnt, isSyncColumn, dragCol, prevDragCol, prevDragPos, prevDragToChild) {
|
|
6482
6455
|
const $xeTable = this;
|
|
6483
6456
|
const props = $xeTable;
|
|
6484
6457
|
const reactData = $xeTable;
|
|
@@ -6494,13 +6467,7 @@ const Methods = {
|
|
|
6494
6467
|
dragEndMethod
|
|
6495
6468
|
} = columnDragOpts;
|
|
6496
6469
|
const {
|
|
6497
|
-
|
|
6498
|
-
} = reactData;
|
|
6499
|
-
const {
|
|
6500
|
-
collectColumn,
|
|
6501
|
-
prevDragCol,
|
|
6502
|
-
prevDragPos,
|
|
6503
|
-
prevDragToChild
|
|
6470
|
+
collectColumn
|
|
6504
6471
|
} = internalData;
|
|
6505
6472
|
const dragOffsetIndex = prevDragPos === 'right' ? 1 : 0;
|
|
6506
6473
|
if (prevDragCol && dragCol) {
|
|
@@ -6508,7 +6475,7 @@ const Methods = {
|
|
|
6508
6475
|
if (prevDragCol !== dragCol) {
|
|
6509
6476
|
const oldColumn = dragCol;
|
|
6510
6477
|
const newColumn = prevDragCol;
|
|
6511
|
-
Promise.resolve(dragEndMethod ? dragEndMethod({
|
|
6478
|
+
return Promise.resolve(dragEndMethod ? dragEndMethod({
|
|
6512
6479
|
oldColumn,
|
|
6513
6480
|
newColumn,
|
|
6514
6481
|
dragPos: prevDragPos,
|
|
@@ -6629,9 +6596,6 @@ const Methods = {
|
|
|
6629
6596
|
$xeTable.clearCopyCellArea();
|
|
6630
6597
|
}
|
|
6631
6598
|
}
|
|
6632
|
-
$xeTable.refreshColumn(true).then(() => {
|
|
6633
|
-
$xeTable.updateCellAreas();
|
|
6634
|
-
});
|
|
6635
6599
|
$xeTable.dispatchEvent('column-dragend', {
|
|
6636
6600
|
oldColumn,
|
|
6637
6601
|
newColumn,
|
|
@@ -6642,10 +6606,31 @@ const Methods = {
|
|
|
6642
6606
|
oldIndex: oafIndex
|
|
6643
6607
|
}
|
|
6644
6608
|
}, evnt);
|
|
6645
|
-
|
|
6609
|
+
if (isSyncColumn) {
|
|
6610
|
+
$xeTable.handleUpdateColumn();
|
|
6611
|
+
$xeTable.parseColumns(false).then(() => {
|
|
6612
|
+
$xeTable.updateCellAreas();
|
|
6613
|
+
return $xeTable.saveCustomStore('update:sort');
|
|
6614
|
+
});
|
|
6615
|
+
}
|
|
6646
6616
|
}).catch(() => {});
|
|
6647
6617
|
}
|
|
6648
6618
|
}
|
|
6619
|
+
return Promise.resolve();
|
|
6620
|
+
},
|
|
6621
|
+
handleHeaderCellDragDragendEvent(evnt) {
|
|
6622
|
+
const $xeTable = this;
|
|
6623
|
+
const reactData = $xeTable;
|
|
6624
|
+
const internalData = $xeTable;
|
|
6625
|
+
const {
|
|
6626
|
+
dragCol
|
|
6627
|
+
} = reactData;
|
|
6628
|
+
const {
|
|
6629
|
+
prevDragCol,
|
|
6630
|
+
prevDragPos,
|
|
6631
|
+
prevDragToChild
|
|
6632
|
+
} = internalData;
|
|
6633
|
+
$xeTable.handleColDragSwapEvent(evnt, true, dragCol, prevDragCol, prevDragPos, prevDragToChild);
|
|
6649
6634
|
hideDropTip($xeTable);
|
|
6650
6635
|
clearColDropOrigin($xeTable);
|
|
6651
6636
|
internalData.prevDragToChild = false;
|
|
@@ -6653,6 +6638,9 @@ const Methods = {
|
|
|
6653
6638
|
reactData.dragCol = null;
|
|
6654
6639
|
setTimeout(() => {
|
|
6655
6640
|
reactData.isDragColMove = false;
|
|
6641
|
+
$xeTable.recalculate().then(() => {
|
|
6642
|
+
$xeTable.loadScrollXData();
|
|
6643
|
+
});
|
|
6656
6644
|
}, 500);
|
|
6657
6645
|
},
|
|
6658
6646
|
handleHeaderCellDragDragoverEvent(evnt) {
|
|
@@ -6678,11 +6666,11 @@ const Methods = {
|
|
|
6678
6666
|
if (column) {
|
|
6679
6667
|
evnt.preventDefault();
|
|
6680
6668
|
const {
|
|
6681
|
-
|
|
6682
|
-
} =
|
|
6683
|
-
const offsetX =
|
|
6669
|
+
clientX
|
|
6670
|
+
} = evnt;
|
|
6671
|
+
const offsetX = clientX - thEl.getBoundingClientRect().x;
|
|
6684
6672
|
const dragPos = offsetX < thEl.clientWidth / 2 ? 'left' : 'right';
|
|
6685
|
-
if (dragCol && dragCol.id === column.id || !isCrossDrag && column.parentId) {
|
|
6673
|
+
if (column.fixed || dragCol && dragCol.id === column.id || !isCrossDrag && column.parentId) {
|
|
6686
6674
|
showDropTip($xeTable, evnt, null, thEl, false, dragPos);
|
|
6687
6675
|
return;
|
|
6688
6676
|
}
|
|
@@ -6695,6 +6683,35 @@ const Methods = {
|
|
|
6695
6683
|
targetColumn: column,
|
|
6696
6684
|
dragPos
|
|
6697
6685
|
}, evnt);
|
|
6686
|
+
// 边缘滚动
|
|
6687
|
+
const el = $xeTable.$refs.refElem;
|
|
6688
|
+
if (!el) {
|
|
6689
|
+
return;
|
|
6690
|
+
}
|
|
6691
|
+
const xHandleEl = $xeTable.$refs.refScrollXHandleElem;
|
|
6692
|
+
const tableBody = $xeTable.$refs.tableBody;
|
|
6693
|
+
const tableBodyElem = tableBody ? tableBody.$el : null;
|
|
6694
|
+
const scrollTargetEl = xHandleEl || tableBodyElem;
|
|
6695
|
+
if (scrollTargetEl) {
|
|
6696
|
+
const wrapperRect = el.getBoundingClientRect();
|
|
6697
|
+
const tableWidth = el.clientWidth;
|
|
6698
|
+
const leftContainerElem = $xeTable.$refs.leftContainer;
|
|
6699
|
+
const leftContainerWidth = leftContainerElem ? leftContainerElem.clientWidth : 0;
|
|
6700
|
+
const rightContainerElem = $xeTable.$refs.rightContainer;
|
|
6701
|
+
const rightContainerWidth = rightContainerElem ? rightContainerElem.clientWidth : 0;
|
|
6702
|
+
const srartX = wrapperRect.x + leftContainerWidth;
|
|
6703
|
+
const endX = wrapperRect.x + tableWidth - rightContainerWidth;
|
|
6704
|
+
const distSize = 28;
|
|
6705
|
+
const startDistSize = clientX - srartX;
|
|
6706
|
+
const endDistSize = endX - clientX;
|
|
6707
|
+
if (startDistSize > 0 && startDistSize <= distSize) {
|
|
6708
|
+
const scrollRatio = Math.floor(tableWidth / (startDistSize > distSize / 2 ? 240 : 120));
|
|
6709
|
+
scrollTargetEl.scrollLeft -= scrollRatio * (distSize - startDistSize);
|
|
6710
|
+
} else if (endDistSize > 0 && endDistSize <= distSize) {
|
|
6711
|
+
const scrollRatio = Math.floor(tableWidth / (endDistSize > distSize / 2 ? 240 : 120));
|
|
6712
|
+
scrollTargetEl.scrollLeft += scrollRatio * (distSize - endDistSize);
|
|
6713
|
+
}
|
|
6714
|
+
}
|
|
6698
6715
|
}
|
|
6699
6716
|
},
|
|
6700
6717
|
handleHeaderCellDragMousedownEvent(evnt, params) {
|
|
@@ -8246,6 +8263,15 @@ const Methods = {
|
|
|
8246
8263
|
});
|
|
8247
8264
|
this.tableColumn = tableColumn;
|
|
8248
8265
|
},
|
|
8266
|
+
handleUpdateColumn() {
|
|
8267
|
+
const $xeTable = this;
|
|
8268
|
+
const internalData = $xeTable;
|
|
8269
|
+
const columnList = _xeUtils.default.orderBy(internalData.collectColumn, 'renderSortNumber');
|
|
8270
|
+
internalData.collectColumn = columnList;
|
|
8271
|
+
const tableFullColumn = getColumnList(columnList);
|
|
8272
|
+
internalData.tableFullColumn = tableFullColumn;
|
|
8273
|
+
$xeTable.cacheColumnMap();
|
|
8274
|
+
},
|
|
8249
8275
|
updateScrollXData() {
|
|
8250
8276
|
const $xeTable = this;
|
|
8251
8277
|
const props = $xeTable;
|