@kdcloudjs/table 1.2.0-canary.16 → 1.2.0-canary.17

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.
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  *
3
- * @kdcloudjs/table v1.2.0-canary.15
3
+ * @kdcloudjs/table v1.2.0-canary.16
4
4
  *
5
5
  * Copyright 2020-present, Kingdee, Inc.
6
6
  * All rights reserved.
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  *
3
- * @kdcloudjs/table v1.2.0-canary.15
3
+ * @kdcloudjs/table v1.2.0-canary.16
4
4
  *
5
5
  * Copyright 2020-present, Kingdee, Inc.
6
6
  * All rights reserved.
@@ -1997,7 +1997,9 @@ var TableDOMHelper = /*#__PURE__*/function () {
1997
1997
  this.tableFooter = this.artTable.querySelector(".".concat(_styles__WEBPACK_IMPORTED_MODULE_7__["Classes"].tableFooter));
1998
1998
  this.tableFooterMain = this.artTable.querySelector(".".concat(_styles__WEBPACK_IMPORTED_MODULE_7__["Classes"].tableFooterMain));
1999
1999
  var stickyScrollSelector = ".".concat(_styles__WEBPACK_IMPORTED_MODULE_7__["Classes"].artTable, " + .").concat(_styles__WEBPACK_IMPORTED_MODULE_7__["Classes"].horizontalStickyScrollContainer, " .").concat(_styles__WEBPACK_IMPORTED_MODULE_7__["Classes"].stickyScroll);
2000
- this.stickyScroll = artTableWrapper.querySelector(stickyScrollSelector);
2000
+ var stickyScrolls = artTableWrapper.querySelectorAll(stickyScrollSelector);
2001
+ this.stickyScroll = stickyScrolls[stickyScrolls.length - 1]; // 当嵌套多层表格时,需要查找最后一个,否则会查找到父表格内嵌套的子表格的
2002
+
2001
2003
  this.stickyScrollItem = this.stickyScroll.querySelector(".".concat(_styles__WEBPACK_IMPORTED_MODULE_7__["Classes"].stickyScrollItem));
2002
2004
  }
2003
2005
 
@@ -3763,10 +3765,10 @@ var BaseTable = /*#__PURE__*/function (_React$Component) {
3763
3765
  // }
3764
3766
  this.hasScrollY = true;
3765
3767
  } else {
3766
- stickyScroll.style.paddingRight = "".concat(stickyScrollHeight, "px"); // this.setState({
3768
+ // stickyScroll.style.paddingRight = `${stickyScrollHeight}px`
3769
+ // this.setState({
3767
3770
  // hasScrollY: false
3768
3771
  // })
3769
-
3770
3772
  this.hasScrollY = false;
3771
3773
  }
3772
3774
 
@@ -9499,15 +9501,32 @@ function rowDrag(opt) {
9499
9501
  var tableWidth = tableBody.clientWidth;
9500
9502
  var startRowRects = startRowInfo.cell.getBoundingClientRect(); // 光标位置距离初始拖拽行的偏移量
9501
9503
 
9502
- var startOffset = mouseDownEvent.clientY - startRowRects.y;
9504
+ var startOffset = mouseDownEvent.clientY - startRowRects.top;
9503
9505
  var dragElement = createDragElement(startRowRects, tableWidth, rowHeight); // 可拖拽的范围
9504
9506
 
9505
9507
  var dragRange = getDragRange(tableBody, {
9506
9508
  startOffset: startOffset,
9507
- rowHeight: startRowRects.height
9509
+ rowHeight: rowHeight
9508
9510
  });
9511
+ var mousePosition = {
9512
+ x: mouseDownEvent.clientX,
9513
+ y: mouseDownEvent.clientY
9514
+ };
9509
9515
  var mousemove$ = Object(rxjs__WEBPACK_IMPORTED_MODULE_4__["fromEvent"])(window, 'mousemove');
9510
9516
  var mouseup$ = Object(rxjs__WEBPACK_IMPORTED_MODULE_4__["fromEvent"])(window, 'mouseup');
9517
+
9518
+ var scrollCallback = function scrollCallback(event) {
9519
+ // 在当前表格内滚动不处理
9520
+ if (event.target === tableBody) return;
9521
+ dragRange = getDragRange(tableBody, {
9522
+ startOffset: startOffset,
9523
+ rowHeight: rowHeight
9524
+ });
9525
+ var isOutOfRange = isOutOfDragRange(mousePosition, dragRange);
9526
+ updateCurSorStyle(isOutOfRange);
9527
+ };
9528
+
9529
+ document.addEventListener('scroll', scrollCallback, true);
9511
9530
  var rowDrag$ = mousemove$.pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_5__["map"])(function (mouseMoveEvent) {
9512
9531
  var clientX = mouseMoveEvent.clientX,
9513
9532
  clientY = mouseMoveEvent.clientY;
@@ -9519,12 +9538,16 @@ function rowDrag(opt) {
9519
9538
 
9520
9539
  var targetRowRects = endRowInfo.cell.getBoundingClientRect(); // 判断拖拽插入的位置,拖拽框上边框位于目标行之上则向上插入,否则向下插入
9521
9540
 
9522
- var isMoveToTop = clientY - startOffset < targetRowRects.y;
9541
+ var isMoveToTop = clientY - startOffset < targetRowRects.top;
9523
9542
  dragPosition = isMoveToTop ? 'top' : 'bottom';
9524
9543
  isOutOfRange = isOutOfDragRange({
9525
9544
  x: clientX,
9526
9545
  y: clientY
9527
9546
  }, dragRange);
9547
+ mousePosition = {
9548
+ x: clientX,
9549
+ y: clientY
9550
+ };
9528
9551
  updateScrollPosition(mouseMoveEvent); // 拖拽到底时让滚动条可以滚动
9529
9552
 
9530
9553
  updateDragElementPosition(dragElement, dragRange, {
@@ -9558,6 +9581,7 @@ function rowDrag(opt) {
9558
9581
  handleDragEnd(dragEndEvent, isOutOfRange);
9559
9582
  removeDragElement(dragElement);
9560
9583
  removeCurSorStyle();
9584
+ document.removeEventListener('scroll', scrollCallback, true);
9561
9585
  }
9562
9586
  });
9563
9587
  };
@@ -9669,13 +9693,13 @@ function getDragRange(tableBody, _ref4) {
9669
9693
  var tableBodyClientRect = tableBody.getBoundingClientRect();
9670
9694
  var height = tableBodyClientRect.height,
9671
9695
  width = tableBodyClientRect.width,
9672
- x = tableBodyClientRect.x,
9673
- y = tableBodyClientRect.y;
9696
+ top = tableBodyClientRect.top,
9697
+ left = tableBodyClientRect.left;
9674
9698
  return {
9675
- minX: x,
9676
- maxX: x + width,
9677
- minY: y - rowHeight + startOffset,
9678
- maxY: y + height + startOffset
9699
+ minX: left,
9700
+ maxX: left + width,
9701
+ minY: top - rowHeight + startOffset,
9702
+ maxY: top + height + startOffset
9679
9703
  };
9680
9704
  }
9681
9705