vxe-table 3.10.14 → 3.10.15

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/lib/index.umd.js CHANGED
@@ -2220,7 +2220,7 @@ function getClass(property, params) {
2220
2220
  ;// CONCATENATED MODULE: ./packages/ui/index.ts
2221
2221
 
2222
2222
 
2223
- const version = "3.10.14";
2223
+ const version = "3.10.15";
2224
2224
  core_.VxeUI.version = version;
2225
2225
  core_.VxeUI.tableVersion = version;
2226
2226
  core_.VxeUI.setConfig({
@@ -2769,7 +2769,7 @@ function isNodeElement(elem) {
2769
2769
  const {
2770
2770
  log: log_log
2771
2771
  } = core_.VxeUI;
2772
- const log_version = `table v${"3.10.14"}`;
2772
+ const log_version = `table v${"3.10.15"}`;
2773
2773
  const warnLog = log_log.create('warn', log_version);
2774
2774
  const errLog = log_log.create('error', log_version);
2775
2775
  ;// CONCATENATED MODULE: ./packages/table/src/columnInfo.ts
@@ -19830,29 +19830,46 @@ function getTargetOffset(target, container) {
19830
19830
  offsetLeft
19831
19831
  };
19832
19832
  }
19833
- function getCheckboxRangeRows(_vm, params, targetTrElem, moveRange) {
19833
+ function getCheckboxRangeRows($xeTable, evnt, params, targetTrElem, trRect, offsetClientTop, moveRange) {
19834
+ const reactData = $xeTable;
19835
+ const internalData = $xeTable;
19834
19836
  let countHeight = 0;
19835
19837
  let rangeRows = [];
19838
+ let moveSize = 0;
19836
19839
  const isDown = moveRange > 0;
19837
- const moveSize = moveRange > 0 ? moveRange : Math.abs(moveRange) + targetTrElem.offsetHeight;
19838
19840
  const {
19839
- afterFullData,
19840
- scrollYStore,
19841
19841
  scrollYLoad
19842
- } = _vm;
19842
+ } = reactData;
19843
+ const {
19844
+ afterFullData,
19845
+ scrollYStore
19846
+ } = internalData;
19843
19847
  if (scrollYLoad) {
19844
- const _rowIndex = _vm.getVTRowIndex(params.row);
19848
+ if (isDown) {
19849
+ moveSize = offsetClientTop + moveRange;
19850
+ } else {
19851
+ moveSize = trRect.height - offsetClientTop + Math.abs(moveRange);
19852
+ }
19853
+ const _rowIndex = $xeTable.getVTRowIndex(params.row);
19845
19854
  if (isDown) {
19846
19855
  rangeRows = afterFullData.slice(_rowIndex, _rowIndex + Math.ceil(moveSize / scrollYStore.rowHeight));
19847
19856
  } else {
19848
- rangeRows = afterFullData.slice(_rowIndex - Math.floor(moveSize / scrollYStore.rowHeight) + 1, _rowIndex + 1);
19857
+ rangeRows = afterFullData.slice(_rowIndex - Math.floor(moveSize / scrollYStore.rowHeight), _rowIndex + 1);
19849
19858
  }
19850
19859
  } else {
19860
+ if (isDown) {
19861
+ moveSize = evnt.clientY - trRect.y;
19862
+ } else {
19863
+ moveSize = trRect.y - evnt.clientY + trRect.height;
19864
+ }
19851
19865
  const siblingProp = isDown ? 'next' : 'previous';
19852
19866
  while (targetTrElem && countHeight < moveSize) {
19853
- rangeRows.push(_vm.getRowNode(targetTrElem).item);
19854
- countHeight += targetTrElem.offsetHeight;
19855
- targetTrElem = targetTrElem[`${siblingProp}ElementSibling`];
19867
+ const rowNodeRest = $xeTable.getRowNode(targetTrElem);
19868
+ if (rowNodeRest) {
19869
+ rangeRows.push(rowNodeRest.item);
19870
+ countHeight += targetTrElem.offsetHeight;
19871
+ targetTrElem = targetTrElem[`${siblingProp}ElementSibling`];
19872
+ }
19856
19873
  }
19857
19874
  }
19858
19875
  return rangeRows;
@@ -20077,6 +20094,8 @@ function getCheckboxRangeRows(_vm, params, targetTrElem, moveRange) {
20077
20094
  const startLeft = offsetRest.offsetLeft + evnt.offsetX;
20078
20095
  const startScrollTop = bodyWrapperElem.scrollTop;
20079
20096
  const rowHeight = trElem.offsetHeight;
20097
+ const trRect = trElem.getBoundingClientRect();
20098
+ const offsetClientTop = disY - trRect.y;
20080
20099
  let mouseScrollTimeout = null;
20081
20100
  let isMouseScrollDown = false;
20082
20101
  let mouseScrollSpaceSize = 1;
@@ -20124,7 +20143,7 @@ function getCheckboxRangeRows(_vm, params, targetTrElem, moveRange) {
20124
20143
  checkboxRangeElem.style.left = `${rangeLeft}px`;
20125
20144
  checkboxRangeElem.style.top = `${rangeTop}px`;
20126
20145
  checkboxRangeElem.style.display = 'block';
20127
- const rangeRows = getCheckboxRangeRows(this, params, trElem, offsetTop < marginSize ? -rangeHeight : rangeHeight);
20146
+ const rangeRows = getCheckboxRangeRows(this, evnt, params, trElem, trRect, offsetClientTop, offsetTop < marginSize ? -rangeHeight : rangeHeight);
20128
20147
  // 至少滑动 10px 才能有效匹配
20129
20148
  if (rangeHeight > 10 && rangeRows.length !== lastRangeRows.length) {
20130
20149
  lastRangeRows = rangeRows;