vxe-table 3.10.0 → 3.10.2
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/locale/lang/en-US.js +4 -2
- package/es/locale/lang/es-ES.js +4 -2
- package/es/locale/lang/hu-HU.js +4 -2
- package/es/locale/lang/ja-JP.js +4 -2
- package/es/locale/lang/ko-KR.js +4 -2
- package/es/locale/lang/pt-BR.js +4 -2
- package/es/locale/lang/ru-RU.js +4 -2
- package/es/locale/lang/uk-UA.js +4 -2
- package/es/locale/lang/vi-VN.js +4 -2
- package/es/locale/lang/zh-CHT.js +4 -2
- package/es/locale/lang/zh-CN.js +4 -2
- package/es/style.css +1 -1
- package/es/style.min.css +1 -1
- package/es/table/module/edit/mixin.js +9 -4
- package/es/table/module/export/export-panel.js +2 -2
- package/es/table/module/export/import-panel.js +1 -1
- package/es/table/src/body.js +43 -24
- package/es/table/src/cell.js +54 -24
- package/es/table/src/column.js +3 -1
- package/es/table/src/columnInfo.js +1 -0
- package/es/table/src/methods.js +211 -14
- package/es/table/src/props.js +2 -0
- package/es/table/src/table.js +16 -1
- package/es/table/style.css +80 -3
- package/es/table/style.min.css +1 -1
- package/es/ui/index.js +4 -1
- package/es/ui/src/log.js +1 -1
- package/es/vxe-table/style.css +80 -3
- package/es/vxe-table/style.min.css +1 -1
- package/helper/vetur/attributes.json +1 -1
- package/helper/vetur/tags.json +1 -1
- package/lib/index.umd.js +371 -78
- package/lib/index.umd.min.js +1 -1
- package/lib/locale/lang/en-US.js +4 -2
- package/lib/locale/lang/en-US.min.js +1 -1
- package/lib/locale/lang/en-US.umd.js +4 -2
- package/lib/locale/lang/es-ES.js +4 -2
- package/lib/locale/lang/es-ES.min.js +1 -1
- package/lib/locale/lang/es-ES.umd.js +4 -2
- package/lib/locale/lang/hu-HU.js +4 -2
- package/lib/locale/lang/hu-HU.min.js +1 -1
- package/lib/locale/lang/hu-HU.umd.js +4 -2
- package/lib/locale/lang/ja-JP.js +4 -2
- package/lib/locale/lang/ja-JP.min.js +1 -1
- package/lib/locale/lang/ja-JP.umd.js +4 -2
- package/lib/locale/lang/ko-KR.js +4 -2
- package/lib/locale/lang/ko-KR.min.js +1 -1
- package/lib/locale/lang/ko-KR.umd.js +4 -2
- package/lib/locale/lang/pt-BR.js +4 -2
- package/lib/locale/lang/pt-BR.min.js +1 -1
- package/lib/locale/lang/pt-BR.umd.js +4 -2
- package/lib/locale/lang/ru-RU.js +4 -2
- package/lib/locale/lang/ru-RU.min.js +1 -1
- package/lib/locale/lang/ru-RU.umd.js +4 -2
- package/lib/locale/lang/uk-UA.js +4 -2
- package/lib/locale/lang/uk-UA.min.js +1 -1
- package/lib/locale/lang/uk-UA.umd.js +4 -2
- package/lib/locale/lang/vi-VN.js +4 -2
- package/lib/locale/lang/vi-VN.min.js +1 -1
- package/lib/locale/lang/zh-CHT.js +4 -2
- package/lib/locale/lang/zh-CHT.min.js +1 -1
- package/lib/locale/lang/zh-CHT.umd.js +4 -2
- package/lib/locale/lang/zh-CN.js +4 -2
- package/lib/locale/lang/zh-CN.min.js +1 -1
- package/lib/locale/lang/zh-CN.umd.js +4 -2
- package/lib/style.css +1 -1
- package/lib/style.min.css +1 -1
- package/lib/table/module/edit/mixin.js +9 -4
- package/lib/table/module/edit/mixin.min.js +1 -1
- package/lib/table/module/export/export-panel.js +2 -2
- package/lib/table/module/export/export-panel.min.js +1 -1
- package/lib/table/module/export/import-panel.js +1 -1
- package/lib/table/module/export/import-panel.min.js +1 -1
- package/lib/table/src/body.js +41 -22
- package/lib/table/src/body.min.js +1 -1
- package/lib/table/src/cell.js +58 -24
- package/lib/table/src/cell.min.js +1 -1
- package/lib/table/src/column.js +3 -1
- package/lib/table/src/column.min.js +1 -1
- package/lib/table/src/columnInfo.js +1 -0
- package/lib/table/src/columnInfo.min.js +1 -1
- package/lib/table/src/methods.js +227 -14
- package/lib/table/src/methods.min.js +1 -1
- package/lib/table/src/props.js +2 -0
- package/lib/table/src/props.min.js +1 -1
- package/lib/table/src/table.js +15 -2
- package/lib/table/src/table.min.js +1 -1
- package/lib/table/style/style.css +80 -3
- package/lib/table/style/style.min.css +1 -1
- package/lib/ui/index.js +4 -1
- package/lib/ui/index.min.js +1 -1
- package/lib/ui/src/log.js +1 -1
- package/lib/ui/src/log.min.js +1 -1
- package/lib/vxe-table/style/style.css +80 -3
- package/lib/vxe-table/style/style.min.css +1 -1
- package/package.json +2 -2
- package/packages/locale/lang/en-US.ts +4 -2
- package/packages/locale/lang/es-ES.ts +4 -2
- package/packages/locale/lang/hu-HU.ts +4 -2
- package/packages/locale/lang/ja-JP.ts +4 -2
- package/packages/locale/lang/ko-KR.ts +4 -2
- package/packages/locale/lang/pt-BR.ts +4 -2
- package/packages/locale/lang/ru-RU.ts +4 -2
- package/packages/locale/lang/uk-UA.ts +4 -2
- package/packages/locale/lang/vi-VN.ts +4 -2
- package/packages/locale/lang/zh-CHT.ts +4 -2
- package/packages/locale/lang/zh-CN.ts +4 -2
- package/packages/table/module/custom/panel.ts +8 -8
- package/packages/table/module/edit/mixin.ts +10 -4
- package/packages/table/module/export/export-panel.ts +2 -2
- package/packages/table/module/export/import-panel.ts +1 -1
- package/packages/table/src/body.ts +43 -24
- package/packages/table/src/cell.ts +58 -24
- package/packages/table/src/column.ts +3 -1
- package/packages/table/src/columnInfo.ts +1 -0
- package/packages/table/src/methods.ts +227 -14
- package/packages/table/src/props.ts +2 -0
- package/packages/table/src/table.ts +16 -1
- package/packages/ui/index.ts +3 -0
- package/styles/components/table-module/custom.scss +9 -3
- package/styles/components/table.scss +89 -0
- /package/es/{iconfont.1730681241769.ttf → iconfont.1730873052490.ttf} +0 -0
- /package/es/{iconfont.1730681241769.woff → iconfont.1730873052490.woff} +0 -0
- /package/es/{iconfont.1730681241769.woff2 → iconfont.1730873052490.woff2} +0 -0
- /package/lib/{iconfont.1730681241769.ttf → iconfont.1730873052490.ttf} +0 -0
- /package/lib/{iconfont.1730681241769.woff → iconfont.1730873052490.woff} +0 -0
- /package/lib/{iconfont.1730681241769.woff2 → iconfont.1730873052490.woff2} +0 -0
package/es/table/src/methods.js
CHANGED
|
@@ -311,6 +311,51 @@ function getOrderField(_vm, column) {
|
|
|
311
311
|
return cellValue;
|
|
312
312
|
};
|
|
313
313
|
}
|
|
314
|
+
function clearRowDropOrigin($xeTable) {
|
|
315
|
+
const el = $xeTable.$el;
|
|
316
|
+
if (el) {
|
|
317
|
+
const clss = 'row--drag-origin';
|
|
318
|
+
XEUtils.arrayEach(el.querySelectorAll(`.${clss}`), (elem) => {
|
|
319
|
+
elem.draggable = false;
|
|
320
|
+
removeClass(elem, clss);
|
|
321
|
+
});
|
|
322
|
+
}
|
|
323
|
+
}
|
|
324
|
+
function clearRowDropTarget($xeTable) {
|
|
325
|
+
const el = $xeTable.$el;
|
|
326
|
+
if (el) {
|
|
327
|
+
const clss = 'row--drag-active-target';
|
|
328
|
+
XEUtils.arrayEach(el.querySelectorAll(`.${clss}`), (elem) => {
|
|
329
|
+
removeClass(elem, clss);
|
|
330
|
+
});
|
|
331
|
+
}
|
|
332
|
+
}
|
|
333
|
+
function showRowDropTip(evnt, $xeTable) {
|
|
334
|
+
const rdTipEl = $xeTable.$refs.refRowDragTipElem;
|
|
335
|
+
if (!rdTipEl) {
|
|
336
|
+
return;
|
|
337
|
+
}
|
|
338
|
+
const el = $xeTable.$el;
|
|
339
|
+
if (!el) {
|
|
340
|
+
return;
|
|
341
|
+
}
|
|
342
|
+
if (rdTipEl) {
|
|
343
|
+
const wrapperRect = el.getBoundingClientRect();
|
|
344
|
+
rdTipEl.style.display = 'block';
|
|
345
|
+
rdTipEl.style.top = `${Math.min(el.clientHeight - el.scrollTop - rdTipEl.clientHeight, evnt.clientY - wrapperRect.y)}px`;
|
|
346
|
+
rdTipEl.style.left = `${Math.min(el.clientWidth - el.scrollLeft - rdTipEl.clientWidth - 16, evnt.clientX - wrapperRect.x)}px`;
|
|
347
|
+
}
|
|
348
|
+
}
|
|
349
|
+
const hideRowDropTip = ($xeTable) => {
|
|
350
|
+
const rdTipEl = $xeTable.$refs.refRowDragTipElem;
|
|
351
|
+
if (rdTipEl) {
|
|
352
|
+
rdTipEl.style.display = '';
|
|
353
|
+
}
|
|
354
|
+
};
|
|
355
|
+
const updateRowDropTipContent = ($xeTable, tdEl) => {
|
|
356
|
+
const reactData = $xeTable;
|
|
357
|
+
reactData.dragTipText = tdEl.textContent || '';
|
|
358
|
+
};
|
|
314
359
|
const Methods = {
|
|
315
360
|
callSlot(slotFunc, params, h, vNodes) {
|
|
316
361
|
if (slotFunc) {
|
|
@@ -4577,6 +4622,145 @@ const Methods = {
|
|
|
4577
4622
|
this.emitEvent('sort-change', params, evnt);
|
|
4578
4623
|
}
|
|
4579
4624
|
},
|
|
4625
|
+
handleRowDragDragstartEvent(evnt) {
|
|
4626
|
+
const img = new Image();
|
|
4627
|
+
if (evnt.dataTransfer) {
|
|
4628
|
+
evnt.dataTransfer.setDragImage(img, 0, 0);
|
|
4629
|
+
}
|
|
4630
|
+
},
|
|
4631
|
+
handleRowDragDragendEvent(evnt) {
|
|
4632
|
+
const $xeTable = this;
|
|
4633
|
+
const props = $xeTable;
|
|
4634
|
+
const reactData = $xeTable;
|
|
4635
|
+
const internalData = $xeTable;
|
|
4636
|
+
const { treeConfig } = props;
|
|
4637
|
+
const rowOpts = $xeTable.computeRowOpts;
|
|
4638
|
+
const { dragEndMethod } = rowOpts;
|
|
4639
|
+
const treeOpts = $xeTable.computeTreeOpts;
|
|
4640
|
+
const { transform } = treeOpts;
|
|
4641
|
+
const { dragRow } = reactData;
|
|
4642
|
+
const { afterFullData, tableFullData, prevDragRow, prevDragPos } = internalData;
|
|
4643
|
+
if (prevDragRow && dragRow) {
|
|
4644
|
+
// 判断是否有拖动
|
|
4645
|
+
if (prevDragRow !== dragRow) {
|
|
4646
|
+
Promise.resolve(dragEndMethod
|
|
4647
|
+
? dragEndMethod({
|
|
4648
|
+
oldRow: dragRow,
|
|
4649
|
+
newRow: prevDragRow
|
|
4650
|
+
})
|
|
4651
|
+
: true).then((status) => {
|
|
4652
|
+
if (!status) {
|
|
4653
|
+
return;
|
|
4654
|
+
}
|
|
4655
|
+
const dragOffsetIndex = prevDragPos === 'bottom' ? 1 : 0;
|
|
4656
|
+
// 移出源位置
|
|
4657
|
+
const oafIndex = $xeTable.findRowIndexOf(afterFullData, dragRow);
|
|
4658
|
+
const otfIndex = $xeTable.findRowIndexOf(tableFullData, dragRow);
|
|
4659
|
+
afterFullData.splice(oafIndex, 1);
|
|
4660
|
+
tableFullData.splice(otfIndex, 1);
|
|
4661
|
+
// 插新位置
|
|
4662
|
+
const pafIndex = $xeTable.findRowIndexOf(afterFullData, prevDragRow);
|
|
4663
|
+
const ptfIndex = $xeTable.findRowIndexOf(tableFullData, prevDragRow);
|
|
4664
|
+
const nafIndex = pafIndex + dragOffsetIndex;
|
|
4665
|
+
const ntfIndex = ptfIndex + dragOffsetIndex;
|
|
4666
|
+
afterFullData.splice(nafIndex, 0, dragRow);
|
|
4667
|
+
tableFullData.splice(ntfIndex, 0, dragRow);
|
|
4668
|
+
reactData.isDragRowMove = true;
|
|
4669
|
+
$xeTable.cacheRowMap();
|
|
4670
|
+
$xeTable.updateScrollYStatus();
|
|
4671
|
+
$xeTable.handleTableData(treeConfig && transform);
|
|
4672
|
+
if (!(treeConfig && transform)) {
|
|
4673
|
+
$xeTable.updateAfterDataIndex();
|
|
4674
|
+
}
|
|
4675
|
+
$xeTable.updateFooter();
|
|
4676
|
+
$xeTable.checkSelectionStatus();
|
|
4677
|
+
if (reactData.scrollYLoad) {
|
|
4678
|
+
$xeTable.updateScrollYSpace();
|
|
4679
|
+
}
|
|
4680
|
+
$xeTable.$nextTick().then(() => {
|
|
4681
|
+
$xeTable.updateCellAreas();
|
|
4682
|
+
return $xeTable.recalculate();
|
|
4683
|
+
});
|
|
4684
|
+
$xeTable.dispatchEvent('row-dragend', {
|
|
4685
|
+
oldRow: dragRow,
|
|
4686
|
+
newRow: prevDragRow,
|
|
4687
|
+
_index: {
|
|
4688
|
+
newIndex: nafIndex,
|
|
4689
|
+
oldIndex: oafIndex
|
|
4690
|
+
}
|
|
4691
|
+
}, evnt);
|
|
4692
|
+
}).catch(() => {
|
|
4693
|
+
});
|
|
4694
|
+
}
|
|
4695
|
+
}
|
|
4696
|
+
hideRowDropTip($xeTable);
|
|
4697
|
+
clearRowDropOrigin($xeTable);
|
|
4698
|
+
clearRowDropTarget($xeTable);
|
|
4699
|
+
reactData.dragRow = null;
|
|
4700
|
+
setTimeout(() => {
|
|
4701
|
+
reactData.isDragRowMove = false;
|
|
4702
|
+
}, 500);
|
|
4703
|
+
},
|
|
4704
|
+
handleRowDragDragoverEvent(evnt) {
|
|
4705
|
+
const $xeTable = this;
|
|
4706
|
+
const internalData = $xeTable;
|
|
4707
|
+
const reactData = $xeTable;
|
|
4708
|
+
const trEl = evnt.currentTarget;
|
|
4709
|
+
const rowid = trEl.getAttribute('rowid');
|
|
4710
|
+
const row = $xeTable.getRowById(rowid);
|
|
4711
|
+
clearRowDropTarget($xeTable);
|
|
4712
|
+
if (row) {
|
|
4713
|
+
evnt.preventDefault();
|
|
4714
|
+
evnt.preventDefault();
|
|
4715
|
+
const { dragRow } = reactData;
|
|
4716
|
+
const offsetY = evnt.clientY - trEl.getBoundingClientRect().y;
|
|
4717
|
+
const dragPos = offsetY < trEl.clientHeight / 2 ? 'top' : 'bottom';
|
|
4718
|
+
addClass(trEl, 'row--drag-active-target');
|
|
4719
|
+
trEl.setAttribute('drag-pos', dragPos);
|
|
4720
|
+
internalData.prevDragRow = row;
|
|
4721
|
+
internalData.prevDragPos = dragPos;
|
|
4722
|
+
$xeTable.dispatchEvent('row-dragover', {
|
|
4723
|
+
oldRow: dragRow,
|
|
4724
|
+
targetRow: row,
|
|
4725
|
+
dragPos
|
|
4726
|
+
}, evnt);
|
|
4727
|
+
}
|
|
4728
|
+
showRowDropTip(evnt, $xeTable);
|
|
4729
|
+
},
|
|
4730
|
+
handleCellDragMousedownEvent(evnt, params) {
|
|
4731
|
+
var _a;
|
|
4732
|
+
const $xeTable = this;
|
|
4733
|
+
const reactData = $xeTable;
|
|
4734
|
+
evnt.stopPropagation();
|
|
4735
|
+
const rowOpts = $xeTable.computeRowOpts;
|
|
4736
|
+
const { dragStartMethod } = rowOpts;
|
|
4737
|
+
const { row } = params;
|
|
4738
|
+
const dragEl = evnt.currentTarget;
|
|
4739
|
+
const tdEl = (_a = dragEl.parentNode) === null || _a === void 0 ? void 0 : _a.parentNode;
|
|
4740
|
+
const trEl = tdEl.parentNode;
|
|
4741
|
+
reactData.isDragRowMove = false;
|
|
4742
|
+
clearRowDropOrigin($xeTable);
|
|
4743
|
+
if (dragStartMethod && !dragStartMethod(params)) {
|
|
4744
|
+
trEl.draggable = false;
|
|
4745
|
+
reactData.dragRow = null;
|
|
4746
|
+
hideRowDropTip($xeTable);
|
|
4747
|
+
return;
|
|
4748
|
+
}
|
|
4749
|
+
reactData.dragRow = row;
|
|
4750
|
+
trEl.draggable = true;
|
|
4751
|
+
addClass(trEl, 'row--drag-origin');
|
|
4752
|
+
showRowDropTip(evnt, $xeTable);
|
|
4753
|
+
updateRowDropTipContent($xeTable, tdEl);
|
|
4754
|
+
$xeTable.dispatchEvent('row-dragstart', params, evnt);
|
|
4755
|
+
},
|
|
4756
|
+
handleCellDragMouseupEvent() {
|
|
4757
|
+
const $xeTable = this;
|
|
4758
|
+
const reactData = $xeTable;
|
|
4759
|
+
clearRowDropOrigin($xeTable);
|
|
4760
|
+
hideRowDropTip($xeTable);
|
|
4761
|
+
reactData.dragRow = null;
|
|
4762
|
+
reactData.isDragRowMove = false;
|
|
4763
|
+
},
|
|
4580
4764
|
setPendingRow(rows, status) {
|
|
4581
4765
|
const pendingMaps = Object.assign({}, this.pendingRowMaps);
|
|
4582
4766
|
const pendingList = [...this.pendingRowList];
|
|
@@ -5436,10 +5620,11 @@ const Methods = {
|
|
|
5436
5620
|
const bodyWidth = bodyElem ? bodyElem.clientWidth : 0;
|
|
5437
5621
|
const scrollHeight = bodyElem ? bodyElem.scrollHeight : 0;
|
|
5438
5622
|
const scrollWidth = bodyElem ? bodyElem.scrollWidth : 0;
|
|
5439
|
-
|
|
5623
|
+
const evntParams = Object.assign({ bodyHeight,
|
|
5440
5624
|
bodyWidth,
|
|
5441
5625
|
scrollHeight,
|
|
5442
|
-
scrollWidth, isX: isRollX, isY: isRollY }, params)
|
|
5626
|
+
scrollWidth, isX: isRollX, isY: isRollY }, params);
|
|
5627
|
+
$xeTable.dispatchEvent('scroll', evntParams, evnt);
|
|
5443
5628
|
},
|
|
5444
5629
|
/**
|
|
5445
5630
|
* 纵向 Y 可视渲染事件处理
|
|
@@ -5459,23 +5644,29 @@ const Methods = {
|
|
|
5459
5644
|
debounceScrollYData: XEUtils.debounce(function () {
|
|
5460
5645
|
this.loadScrollYData();
|
|
5461
5646
|
}, debounceScrollYDuration, { leading: false, trailing: true }),
|
|
5462
|
-
|
|
5647
|
+
handleSyncScrollX(scrollLeft) {
|
|
5463
5648
|
const $xeTable = this;
|
|
5464
|
-
const wrapperEl = evnt.currentTarget;
|
|
5465
5649
|
const tableHeader = $xeTable.$refs.tableHeader;
|
|
5466
5650
|
const tableBody = $xeTable.$refs.tableBody;
|
|
5467
5651
|
const tableFooter = $xeTable.$refs.tableFooter;
|
|
5468
5652
|
const bodyElem = tableBody.$el;
|
|
5469
5653
|
const headerElem = tableHeader ? tableHeader.$el : null;
|
|
5470
5654
|
const footerElem = tableFooter ? tableFooter.$el : null;
|
|
5471
|
-
const { scrollTop, scrollLeft } = wrapperEl;
|
|
5472
|
-
const isRollX = true;
|
|
5473
|
-
const isRollY = false;
|
|
5474
5655
|
$xeTable.lastScrollLeft = scrollLeft;
|
|
5475
5656
|
$xeTable.lastScrollTime = Date.now();
|
|
5476
5657
|
setScrollLeft(bodyElem, scrollLeft);
|
|
5477
5658
|
setScrollLeft(headerElem, scrollLeft);
|
|
5478
5659
|
setScrollLeft(footerElem, scrollLeft);
|
|
5660
|
+
},
|
|
5661
|
+
scrollXEvent(evnt) {
|
|
5662
|
+
const $xeTable = this;
|
|
5663
|
+
const wrapperEl = evnt.currentTarget;
|
|
5664
|
+
const { scrollTop, scrollLeft } = wrapperEl;
|
|
5665
|
+
const isRollX = true;
|
|
5666
|
+
const isRollY = false;
|
|
5667
|
+
$xeTable.lastScrollLeft = scrollLeft;
|
|
5668
|
+
$xeTable.lastScrollTime = Date.now();
|
|
5669
|
+
$xeTable.handleSyncScrollX(scrollLeft);
|
|
5479
5670
|
$xeTable.triggerScrollXEvent(evnt);
|
|
5480
5671
|
$xeTable.handleScrollEvent(evnt, isRollY, isRollX, {
|
|
5481
5672
|
type: 'table',
|
|
@@ -5487,23 +5678,29 @@ const Methods = {
|
|
|
5487
5678
|
debounceScrollYCalculate: XEUtils.debounce(function () {
|
|
5488
5679
|
this.updateScrollYSpace();
|
|
5489
5680
|
}, 1000, { leading: false, trailing: true }),
|
|
5490
|
-
|
|
5681
|
+
handleSyncScrollY(scrollTop) {
|
|
5491
5682
|
const $xeTable = this;
|
|
5492
|
-
const wrapperEl = evnt.currentTarget;
|
|
5493
5683
|
const tableBody = $xeTable.$refs.tableBody;
|
|
5494
5684
|
const leftBody = $xeTable.$refs.leftBody;
|
|
5495
5685
|
const rightBody = $xeTable.$refs.rightBody;
|
|
5496
5686
|
const bodyElem = tableBody.$el;
|
|
5497
5687
|
const leftElem = leftBody ? leftBody.$el : null;
|
|
5498
5688
|
const rightElem = rightBody ? rightBody.$el : null;
|
|
5499
|
-
const { scrollTop, scrollLeft } = wrapperEl;
|
|
5500
|
-
const isRollX = false;
|
|
5501
|
-
const isRollY = true;
|
|
5502
5689
|
$xeTable.lastScrollTop = scrollTop;
|
|
5503
5690
|
$xeTable.lastScrollTime = Date.now();
|
|
5504
5691
|
setScrollTop(bodyElem, scrollTop);
|
|
5505
5692
|
setScrollTop(leftElem, scrollTop);
|
|
5506
5693
|
setScrollTop(rightElem, scrollTop);
|
|
5694
|
+
},
|
|
5695
|
+
scrollYEvent(evnt) {
|
|
5696
|
+
const $xeTable = this;
|
|
5697
|
+
const wrapperEl = evnt.currentTarget;
|
|
5698
|
+
const { scrollTop, scrollLeft } = wrapperEl;
|
|
5699
|
+
const isRollX = false;
|
|
5700
|
+
const isRollY = true;
|
|
5701
|
+
$xeTable.lastScrollTop = scrollTop;
|
|
5702
|
+
$xeTable.lastScrollTime = Date.now();
|
|
5703
|
+
$xeTable.handleSyncScrollY(scrollTop);
|
|
5507
5704
|
$xeTable.triggerScrollYEvent(evnt);
|
|
5508
5705
|
$xeTable.handleScrollEvent(evnt, isRollY, isRollX, {
|
|
5509
5706
|
type: 'table',
|
|
@@ -5589,7 +5786,7 @@ const Methods = {
|
|
|
5589
5786
|
},
|
|
5590
5787
|
updateScrollXData() {
|
|
5591
5788
|
// this.tableColumn = []
|
|
5592
|
-
this.$nextTick(() => {
|
|
5789
|
+
return this.$nextTick().then(() => {
|
|
5593
5790
|
this.handleTableColumn();
|
|
5594
5791
|
this.updateScrollXSpace();
|
|
5595
5792
|
});
|
|
@@ -5638,7 +5835,7 @@ const Methods = {
|
|
|
5638
5835
|
updateScrollYData() {
|
|
5639
5836
|
const $xeTable = this;
|
|
5640
5837
|
// this.tableData = []
|
|
5641
|
-
this.$nextTick(() => {
|
|
5838
|
+
return this.$nextTick().then(() => {
|
|
5642
5839
|
this.handleTableData();
|
|
5643
5840
|
calcCellHeight($xeTable);
|
|
5644
5841
|
this.updateScrollYSpace();
|
package/es/table/src/props.js
CHANGED
package/es/table/src/table.js
CHANGED
|
@@ -345,6 +345,9 @@ export default {
|
|
|
345
345
|
isHeader: false,
|
|
346
346
|
isFooter: false
|
|
347
347
|
},
|
|
348
|
+
isDragRowMove: false,
|
|
349
|
+
dragRow: null,
|
|
350
|
+
dragTipText: '',
|
|
348
351
|
_isLoading: false
|
|
349
352
|
};
|
|
350
353
|
},
|
|
@@ -399,6 +402,9 @@ export default {
|
|
|
399
402
|
computeRowOpts() {
|
|
400
403
|
return Object.assign({}, getConfig().table.rowConfig, this.rowConfig);
|
|
401
404
|
},
|
|
405
|
+
computeDragOpts() {
|
|
406
|
+
return Object.assign({}, getConfig().table.dragConfig, this.dragConfig);
|
|
407
|
+
},
|
|
402
408
|
resizeOpts() {
|
|
403
409
|
return this.computeResizeOpts;
|
|
404
410
|
},
|
|
@@ -1263,9 +1269,18 @@ export default {
|
|
|
1263
1269
|
}
|
|
1264
1270
|
})
|
|
1265
1271
|
: _e(),
|
|
1272
|
+
/**
|
|
1273
|
+
* 拖拽提示
|
|
1274
|
+
*/
|
|
1275
|
+
rowOpts.drag
|
|
1276
|
+
? h('div', {
|
|
1277
|
+
ref: 'refRowDragTipElem',
|
|
1278
|
+
class: 'vxe-table--row-drag-hint'
|
|
1279
|
+
}, getI18n('vxe.table.dragTip', [this.dragTipText]))
|
|
1280
|
+
: _e(),
|
|
1266
1281
|
h('div', {}, [
|
|
1267
1282
|
/**
|
|
1268
|
-
*
|
|
1283
|
+
* 提示相关
|
|
1269
1284
|
*/
|
|
1270
1285
|
VxeUITooltipComponent
|
|
1271
1286
|
? h(VxeUITooltipComponent, {
|
package/es/table/style.css
CHANGED
|
@@ -712,6 +712,9 @@
|
|
|
712
712
|
display: flex;
|
|
713
713
|
flex-direction: row;
|
|
714
714
|
}
|
|
715
|
+
.vxe-table-custom--option.active--drag-origin {
|
|
716
|
+
opacity: 0.5;
|
|
717
|
+
}
|
|
715
718
|
.vxe-table-custom--option.active--drag-target[drag-pos=top]::after {
|
|
716
719
|
display: block;
|
|
717
720
|
top: -2px;
|
|
@@ -944,6 +947,9 @@
|
|
|
944
947
|
padding-right: 0.4em;
|
|
945
948
|
}
|
|
946
949
|
.vxe-table-custom--sort-btn:not(.is--disabled) {
|
|
950
|
+
cursor: grab;
|
|
951
|
+
}
|
|
952
|
+
.vxe-table-custom--sort-btn:not(.is--disabled):active {
|
|
947
953
|
cursor: grabbing;
|
|
948
954
|
}
|
|
949
955
|
.vxe-table-custom--sort-btn:not(.is--disabled):hover {
|
|
@@ -1024,7 +1030,7 @@
|
|
|
1024
1030
|
position: absolute;
|
|
1025
1031
|
top: 0;
|
|
1026
1032
|
left: 0;
|
|
1027
|
-
padding: 0.6em 1em 0.6em 1.
|
|
1033
|
+
padding: 0.6em 1em 0.6em 1.6em;
|
|
1028
1034
|
max-width: 300px;
|
|
1029
1035
|
border-radius: var(--vxe-ui-border-radius);
|
|
1030
1036
|
overflow: hidden;
|
|
@@ -1108,7 +1114,7 @@
|
|
|
1108
1114
|
position: absolute;
|
|
1109
1115
|
left: -1px;
|
|
1110
1116
|
width: calc(100% + 1px);
|
|
1111
|
-
height:
|
|
1117
|
+
height: 2px;
|
|
1112
1118
|
background-color: var(--vxe-ui-font-primary-color);
|
|
1113
1119
|
z-index: 12;
|
|
1114
1120
|
}
|
|
@@ -2032,6 +2038,7 @@
|
|
|
2032
2038
|
/*树形节点*/
|
|
2033
2039
|
/*展开行*/
|
|
2034
2040
|
/*设置列高度*/
|
|
2041
|
+
/*拖拽行*/
|
|
2035
2042
|
/*溢出列*/
|
|
2036
2043
|
/*暂无数据*/
|
|
2037
2044
|
/*校验不通过*/
|
|
@@ -2314,7 +2321,12 @@
|
|
|
2314
2321
|
.vxe-table--render-default .vxe-table--scroll-y-space {
|
|
2315
2322
|
width: 1px;
|
|
2316
2323
|
}
|
|
2317
|
-
.vxe-table--render-default.is--padding .vxe-cell {
|
|
2324
|
+
.vxe-table--render-default.is--padding .vxe-body--column .vxe-cell {
|
|
2325
|
+
padding-left: var(--vxe-ui-table-cell-padding-left);
|
|
2326
|
+
padding-right: var(--vxe-ui-table-cell-padding-right);
|
|
2327
|
+
}
|
|
2328
|
+
.vxe-table--render-default .vxe-header--column .vxe-cell,
|
|
2329
|
+
.vxe-table--render-default .vxe-footer--column .vxe-cell {
|
|
2318
2330
|
padding-left: var(--vxe-ui-table-cell-padding-left);
|
|
2319
2331
|
padding-right: var(--vxe-ui-table-cell-padding-right);
|
|
2320
2332
|
}
|
|
@@ -2587,6 +2599,71 @@
|
|
|
2587
2599
|
overflow: auto;
|
|
2588
2600
|
outline: 0;
|
|
2589
2601
|
}
|
|
2602
|
+
.vxe-table--render-default .vxe-cell--drag-handle {
|
|
2603
|
+
-webkit-user-select: none;
|
|
2604
|
+
-moz-user-select: none;
|
|
2605
|
+
user-select: none;
|
|
2606
|
+
}
|
|
2607
|
+
.vxe-table--render-default .vxe-cell--drag-handle + span {
|
|
2608
|
+
padding-left: 0.5em;
|
|
2609
|
+
}
|
|
2610
|
+
.vxe-table--render-default .vxe-cell--drag-handle:not(.is--disabled) {
|
|
2611
|
+
cursor: grab;
|
|
2612
|
+
}
|
|
2613
|
+
.vxe-table--render-default .vxe-cell--drag-handle:not(.is--disabled):active {
|
|
2614
|
+
cursor: grabbing;
|
|
2615
|
+
}
|
|
2616
|
+
.vxe-table--render-default .vxe-cell--drag-handle:not(.is--disabled):hover {
|
|
2617
|
+
color: var(--vxe-ui-font-primary-color);
|
|
2618
|
+
}
|
|
2619
|
+
.vxe-table--render-default .vxe-cell--drag-handle.is--disabled {
|
|
2620
|
+
color: var(--vxe-ui-input-disabled-color);
|
|
2621
|
+
cursor: not-allowed;
|
|
2622
|
+
}
|
|
2623
|
+
.vxe-table--render-default .vxe-body--row.row--drag-origin > .vxe-body--column > .vxe-cell {
|
|
2624
|
+
opacity: 0.5;
|
|
2625
|
+
}
|
|
2626
|
+
.vxe-table--render-default .vxe-body--row.row--drag-active-target > .vxe-body--column::after {
|
|
2627
|
+
display: none;
|
|
2628
|
+
content: "";
|
|
2629
|
+
position: absolute;
|
|
2630
|
+
left: 0;
|
|
2631
|
+
width: 100%;
|
|
2632
|
+
height: 2px;
|
|
2633
|
+
background-color: var(--vxe-ui-font-primary-color);
|
|
2634
|
+
z-index: 12;
|
|
2635
|
+
}
|
|
2636
|
+
.vxe-table--render-default .vxe-body--row.row--drag-active-target[drag-pos=top] > .vxe-body--column::after {
|
|
2637
|
+
display: block;
|
|
2638
|
+
top: 0;
|
|
2639
|
+
}
|
|
2640
|
+
.vxe-table--render-default .vxe-body--row.row--drag-active-target[drag-pos=bottom] > .vxe-body--column::after {
|
|
2641
|
+
display: block;
|
|
2642
|
+
bottom: 0;
|
|
2643
|
+
}
|
|
2644
|
+
.vxe-table--render-default .vxe-body--row-list-move {
|
|
2645
|
+
transition: transform 0.35s;
|
|
2646
|
+
}
|
|
2647
|
+
.vxe-table--render-default .vxe-table--row-drag-hint {
|
|
2648
|
+
display: none;
|
|
2649
|
+
position: absolute;
|
|
2650
|
+
top: 0;
|
|
2651
|
+
left: 0;
|
|
2652
|
+
padding: 0.6em 1em 0.6em 1.6em;
|
|
2653
|
+
max-width: 50%;
|
|
2654
|
+
min-width: 100px;
|
|
2655
|
+
border-radius: var(--vxe-ui-border-radius);
|
|
2656
|
+
overflow: hidden;
|
|
2657
|
+
text-overflow: ellipsis;
|
|
2658
|
+
white-space: nowrap;
|
|
2659
|
+
-webkit-user-select: none;
|
|
2660
|
+
-moz-user-select: none;
|
|
2661
|
+
user-select: none;
|
|
2662
|
+
pointer-events: none;
|
|
2663
|
+
background-color: var(--vxe-ui-layout-background-color);
|
|
2664
|
+
box-shadow: 0 0 10px 0 rgba(0, 0, 0, 0.2);
|
|
2665
|
+
z-index: 33;
|
|
2666
|
+
}
|
|
2590
2667
|
.vxe-table--render-default .vxe-header--column.col--ellipsis:not(.col--active) > .vxe-cell,
|
|
2591
2668
|
.vxe-table--render-default .vxe-body--column.col--ellipsis:not(.col--active) > .vxe-cell,
|
|
2592
2669
|
.vxe-table--render-default .vxe-footer--column.col--ellipsis:not(.col--active) > .vxe-cell {
|