vxe-table 3.4.14-beta.2 → 3.4.14-beta.3

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
@@ -9280,6 +9280,17 @@ function setScrollLeft(elem, scrollLeft) {
9280
9280
  elem.scrollLeft = scrollLeft;
9281
9281
  }
9282
9282
  }
9283
+ function setScrollLeftAndTop(elem, scrollLeft, scrollTop) {
9284
+ if (elem) {
9285
+ elem.scrollLeft = scrollLeft;
9286
+ elem.scrollTop = scrollTop;
9287
+ }
9288
+ }
9289
+
9290
+ function isNodeElement(elem) {
9291
+ return elem && elem.nodeType === 1;
9292
+ }
9293
+
9283
9294
  var DomTools = {
9284
9295
  browse: browse,
9285
9296
  isPx: function isPx(val) {
@@ -9467,7 +9478,8 @@ var DomTools = {
9467
9478
  }
9468
9479
 
9469
9480
  return num;
9470
- }
9481
+ },
9482
+ isNodeElement: isNodeElement
9471
9483
  };
9472
9484
  /* harmony default export */ var dom = (DomTools);
9473
9485
  // CONCATENATED MODULE: ./packages/tools/src/event.js
@@ -11438,7 +11450,7 @@ function renderRows(h, _vm, $xetable, fixedType, tableData, tableColumn) {
11438
11450
 
11439
11451
  var scrollProcessTimeout;
11440
11452
 
11441
- function syncBodyScroll(scrollTop, elem1, elem2) {
11453
+ function syncBodyScroll(_vm, fixedType, scrollTop, elem1, elem2) {
11442
11454
  if (elem1 || elem2) {
11443
11455
  if (elem1) {
11444
11456
  removeScrollListener(elem1);
@@ -11452,8 +11464,34 @@ function syncBodyScroll(scrollTop, elem1, elem2) {
11452
11464
 
11453
11465
  clearTimeout(scrollProcessTimeout);
11454
11466
  scrollProcessTimeout = setTimeout(function () {
11467
+ var _vm$$refs = _vm.$refs,
11468
+ tableBody = _vm$$refs.tableBody,
11469
+ leftBody = _vm$$refs.leftBody,
11470
+ rightBody = _vm$$refs.rightBody;
11471
+ var bodyElem = tableBody.$el;
11472
+ var leftElem = leftBody ? leftBody.$el : null;
11473
+ var rightElem = rightBody ? rightBody.$el : null;
11455
11474
  restoreScrollListener(elem1);
11456
- restoreScrollListener(elem2);
11475
+ restoreScrollListener(elem2); // 检查滚动条是的同步
11476
+
11477
+ var targetTop = bodyElem.scrollTop;
11478
+ var targetLeft = bodyElem.scrollLeft;
11479
+
11480
+ if (fixedType === 'left') {
11481
+ if (leftElem) {
11482
+ targetTop = leftElem.scrollTop;
11483
+ targetLeft = leftElem.scrollLeft;
11484
+ }
11485
+ } else if (fixedType === 'right') {
11486
+ if (rightElem) {
11487
+ targetTop = rightElem.scrollTop;
11488
+ targetLeft = rightElem.scrollLeft;
11489
+ }
11490
+ }
11491
+
11492
+ setScrollLeftAndTop(bodyElem, targetLeft, targetTop);
11493
+ setScrollLeftAndTop(leftElem, targetLeft, targetTop);
11494
+ setScrollLeftAndTop(rightElem, targetLeft, targetTop);
11457
11495
  }, 300);
11458
11496
  }
11459
11497
  }
@@ -11692,10 +11730,10 @@ function syncBodyScroll(scrollTop, elem1, elem2) {
11692
11730
 
11693
11731
  if (leftElem && fixedType === 'left') {
11694
11732
  scrollTop = leftElem.scrollTop;
11695
- syncBodyScroll(scrollTop, bodyElem, rightElem);
11733
+ syncBodyScroll($xetable, fixedType, scrollTop, bodyElem, rightElem);
11696
11734
  } else if (rightElem && fixedType === 'right') {
11697
11735
  scrollTop = rightElem.scrollTop;
11698
- syncBodyScroll(scrollTop, bodyElem, leftElem);
11736
+ syncBodyScroll($xetable, fixedType, scrollTop, bodyElem, leftElem);
11699
11737
  } else {
11700
11738
  if (isRollX) {
11701
11739
  if (headerElem) {
@@ -11711,7 +11749,7 @@ function syncBodyScroll(scrollTop, elem1, elem2) {
11711
11749
  $xetable.checkScrolling();
11712
11750
 
11713
11751
  if (isRollY) {
11714
- syncBodyScroll(scrollTop, leftElem, rightElem);
11752
+ syncBodyScroll($xetable, fixedType, scrollTop, leftElem, rightElem);
11715
11753
  }
11716
11754
  }
11717
11755
  }
@@ -11783,18 +11821,18 @@ function syncBodyScroll(scrollTop, elem1, elem2) {
11783
11821
  var scrollTop = bodyElem.scrollTop,
11784
11822
  clientHeight = bodyElem.clientHeight,
11785
11823
  scrollHeight = bodyElem.scrollHeight;
11786
- var targerTop = scrollTop + wheelYInterval * (isTopWheel ? -1 : 1);
11787
- bodyElem.scrollTop = targerTop;
11824
+ var targetTop = scrollTop + wheelYInterval * (isTopWheel ? -1 : 1);
11825
+ bodyElem.scrollTop = targetTop;
11788
11826
 
11789
11827
  if (leftElem) {
11790
- leftElem.scrollTop = targerTop;
11828
+ leftElem.scrollTop = targetTop;
11791
11829
  }
11792
11830
 
11793
11831
  if (rightElem) {
11794
- rightElem.scrollTop = targerTop;
11832
+ rightElem.scrollTop = targetTop;
11795
11833
  }
11796
11834
 
11797
- if (isTopWheel ? targerTop < scrollHeight - clientHeight : targerTop >= 0) {
11835
+ if (isTopWheel ? targetTop < scrollHeight - clientHeight : targetTop >= 0) {
11798
11836
  _this.wheelTime = setTimeout(handleSmooth, 10);
11799
11837
  }
11800
11838
 
@@ -12904,7 +12942,8 @@ var methods_calcHeight = DomTools.calcHeight,
12904
12942
  methods_hasClass = DomTools.hasClass,
12905
12943
  addClass = DomTools.addClass,
12906
12944
  methods_removeClass = DomTools.removeClass,
12907
- getEventTargetNode = DomTools.getEventTargetNode;
12945
+ getEventTargetNode = DomTools.getEventTargetNode,
12946
+ methods_isNodeElement = DomTools.isNodeElement;
12908
12947
  var isWebkit = browse['-webkit'] && !browse.edge;
12909
12948
  var debounceScrollYDuration = browse.msie ? 80 : 20;
12910
12949
  var resizableStorageKey = 'VXE_TABLE_CUSTOM_COLUMN_WIDTH';
@@ -13289,6 +13328,8 @@ var Methods = {
13289
13328
  return this.handleTableData(true).then(function () {
13290
13329
  _this2.updateFooter();
13291
13330
 
13331
+ _this2.checkSelectionStatus();
13332
+
13292
13333
  if (scrollXLoad || scrollYLoad) {
13293
13334
  if (scrollXLoad) {
13294
13335
  _this2.updateScrollXSpace();
@@ -13301,7 +13342,14 @@ var Methods = {
13301
13342
  return _this2.refreshScroll();
13302
13343
  }
13303
13344
  }).then(function () {
13304
- return _this2.recalculate();
13345
+ _this2.updateCellAreas();
13346
+
13347
+ return _this2.recalculate(true);
13348
+ }).then(function () {
13349
+ // 存在滚动行为未结束情况
13350
+ setTimeout(function () {
13351
+ return _this2.recalculate();
13352
+ }, 50);
13305
13353
  });
13306
13354
  },
13307
13355
  handleTableData: function handleTableData(force) {
@@ -15148,6 +15196,8 @@ var Methods = {
15148
15196
  * 刷新滚动操作,手动同步滚动相关位置(对于某些特殊的操作,比如滚动条错位、固定列不同步)
15149
15197
  */
15150
15198
  refreshScroll: function refreshScroll() {
15199
+ var _this22 = this;
15200
+
15151
15201
  var lastScrollLeft = this.lastScrollLeft,
15152
15202
  lastScrollTop = this.lastScrollTop;
15153
15203
  var $refs = this.$refs;
@@ -15158,17 +15208,24 @@ var Methods = {
15158
15208
  var tableBodyElem = tableBody ? tableBody.$el : null;
15159
15209
  var leftBodyElem = leftBody ? leftBody.$el : null;
15160
15210
  var rightBodyElem = rightBody ? rightBody.$el : null;
15161
- var tableFooterElem = tableFooter ? tableFooter.$el : null; // 还原滚动条位置
15211
+ var tableFooterElem = tableFooter ? tableFooter.$el : null;
15212
+ return new Promise(function (resolve) {
15213
+ // 还原滚动条位置
15214
+ if (lastScrollLeft || lastScrollTop) {
15215
+ return restoreScrollLocation(_this22, lastScrollLeft, lastScrollTop).then(function () {
15216
+ // 存在滚动行为未结束情况
15217
+ setTimeout(resolve, 30);
15218
+ });
15219
+ } // 重置
15162
15220
 
15163
- if (lastScrollLeft || lastScrollTop) {
15164
- return restoreScrollLocation(this, lastScrollLeft, lastScrollTop);
15165
- } // 重置
15166
15221
 
15222
+ setScrollTop(tableBodyElem, lastScrollTop);
15223
+ setScrollTop(leftBodyElem, lastScrollTop);
15224
+ setScrollTop(rightBodyElem, lastScrollTop);
15225
+ setScrollLeft(tableFooterElem, lastScrollLeft); // 存在滚动行为未结束情况
15167
15226
 
15168
- setScrollTop(tableBodyElem, lastScrollTop);
15169
- setScrollTop(leftBodyElem, lastScrollTop);
15170
- setScrollTop(rightBodyElem, lastScrollTop);
15171
- setScrollLeft(tableFooterElem, lastScrollLeft);
15227
+ setTimeout(resolve, 30);
15228
+ });
15172
15229
  },
15173
15230
 
15174
15231
  /**
@@ -15176,7 +15233,7 @@ var Methods = {
15176
15233
  * 支持 width=? width=?px width=?% min-width=? min-width=?px min-width=?%
15177
15234
  */
15178
15235
  recalculate: function recalculate(refull) {
15179
- var _this22 = this;
15236
+ var _this23 = this;
15180
15237
 
15181
15238
  var $refs = this.$refs;
15182
15239
  var tableBody = $refs.tableBody,
@@ -15192,9 +15249,9 @@ var Methods = {
15192
15249
  if (refull === true) {
15193
15250
  // 初始化时需要在列计算之后再执行优化运算,达到最优显示效果
15194
15251
  return this.computeScrollLoad().then(function () {
15195
- _this22.autoCellWidth(headerElem, bodyElem, footerElem);
15252
+ _this23.autoCellWidth(headerElem, bodyElem, footerElem);
15196
15253
 
15197
- return _this22.computeScrollLoad();
15254
+ return _this23.computeScrollLoad();
15198
15255
  });
15199
15256
  }
15200
15257
  }
@@ -15342,7 +15399,7 @@ var Methods = {
15342
15399
  this.customMaxHeight = methods_calcHeight(this, 'maxHeight');
15343
15400
  },
15344
15401
  updateStyle: function updateStyle() {
15345
- var _this23 = this;
15402
+ var _this24 = this;
15346
15403
 
15347
15404
  var $refs = this.$refs,
15348
15405
  isGroup = this.isGroup,
@@ -15446,7 +15503,7 @@ var Methods = {
15446
15503
 
15447
15504
  if (isGroup && listElem) {
15448
15505
  external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default.a.arrayEach(listElem.querySelectorAll('.col--group'), function (thElem) {
15449
- var colNode = _this23.getColumnNode(thElem);
15506
+ var colNode = _this24.getColumnNode(thElem);
15450
15507
 
15451
15508
  if (colNode) {
15452
15509
  var column = colNode.item;
@@ -15476,7 +15533,7 @@ var Methods = {
15476
15533
  } else if (layout === 'body') {
15477
15534
  var emptyBlockElem = elemStore["".concat(name, "-").concat(layout, "-emptyBlock")];
15478
15535
 
15479
- if (wrapperElem) {
15536
+ if (methods_isNodeElement(wrapperElem)) {
15480
15537
  if (customMaxHeight) {
15481
15538
  wrapperElem.style.maxHeight = "".concat(fixedType ? customMaxHeight - headerHeight - (showFooter ? 0 : scrollbarHeight) : customMaxHeight - headerHeight, "px");
15482
15539
  } else {
@@ -15493,7 +15550,7 @@ var Methods = {
15493
15550
  var isRightFixed = fixedType === 'right';
15494
15551
  var _fixedColumn = columnStore["".concat(fixedType, "List")];
15495
15552
 
15496
- if (wrapperElem) {
15553
+ if (methods_isNodeElement(wrapperElem)) {
15497
15554
  wrapperElem.style.top = "".concat(headerHeight, "px");
15498
15555
  }
15499
15556
 
@@ -15563,7 +15620,7 @@ var Methods = {
15563
15620
  return previous + column.renderWidth;
15564
15621
  }, 0);
15565
15622
 
15566
- if (wrapperElem) {
15623
+ if (methods_isNodeElement(wrapperElem)) {
15567
15624
  // 如果是固定列
15568
15625
  if (fixedWrapperElem) {
15569
15626
  wrapperElem.style.top = "".concat(customHeight > 0 ? customHeight - footerHeight : tableHeight + headerHeight, "px");
@@ -15627,10 +15684,10 @@ var Methods = {
15627
15684
 
15628
15685
  if (cellElem) {
15629
15686
  if (colspan > 1) {
15630
- var columnIndex = _this23.getColumnIndex(column);
15687
+ var columnIndex = _this24.getColumnIndex(column);
15631
15688
 
15632
15689
  for (var _index = 1; _index < colspan; _index++) {
15633
- var nextColumn = _this23.getColumns(columnIndex + _index);
15690
+ var nextColumn = _this24.getColumns(columnIndex + _index);
15634
15691
 
15635
15692
  if (nextColumn) {
15636
15693
  colWidth += nextColumn.renderWidth;
@@ -15680,15 +15737,15 @@ var Methods = {
15680
15737
  }
15681
15738
  },
15682
15739
  preventEvent: function preventEvent(evnt, type, args, next, end) {
15683
- var _this24 = this;
15740
+ var _this25 = this;
15684
15741
 
15685
15742
  var evntList = v_x_e_table.interceptor.get(type);
15686
15743
  var rest;
15687
15744
 
15688
15745
  if (!evntList.some(function (func) {
15689
15746
  return func(Object.assign({
15690
- $grid: _this24.$xegrid,
15691
- $table: _this24,
15747
+ $grid: _this25.$xegrid,
15748
+ $table: _this25,
15692
15749
  $event: evnt
15693
15750
  }, args)) === false;
15694
15751
  })) {
@@ -15708,7 +15765,7 @@ var Methods = {
15708
15765
  * 全局按下事件处理
15709
15766
  */
15710
15767
  handleGlobalMousedownEvent: function handleGlobalMousedownEvent(evnt) {
15711
- var _this25 = this;
15768
+ var _this26 = this;
15712
15769
 
15713
15770
  var $el = this.$el,
15714
15771
  $refs = this.$refs,
@@ -15769,7 +15826,7 @@ var Methods = {
15769
15826
  } // 如果固定了高度且点击了行之外的空白处,则清除激活状态
15770
15827
 
15771
15828
 
15772
- if (!isClearActived && _this25.height && !_this25.overflowY) {
15829
+ if (!isClearActived && _this26.height && !_this26.overflowY) {
15773
15830
  var bodyWrapperElem = evnt.target;
15774
15831
 
15775
15832
  if (methods_hasClass(bodyWrapperElem, 'vxe-table--body-wrapper')) {
@@ -15780,7 +15837,7 @@ var Methods = {
15780
15837
  if (isClearActived || // 如果点击了当前表格之外
15781
15838
  !getEventTargetNode(evnt, $el).flag) {
15782
15839
  setTimeout(function () {
15783
- return _this25.clearActived(evnt);
15840
+ return _this26.clearActived(evnt);
15784
15841
  });
15785
15842
  }
15786
15843
  });
@@ -15794,9 +15851,9 @@ var Methods = {
15794
15851
 
15795
15852
  if (!getEventTargetNode(evnt, document.body, 'vxe-table--ignore-areas-clear').flag) {
15796
15853
  this.preventEvent(evnt, 'event.clearAreas', {}, function () {
15797
- _this25.clearCellAreas();
15854
+ _this26.clearCellAreas();
15798
15855
 
15799
- _this25.clearCopyCellArea();
15856
+ _this26.clearCopyCellArea();
15800
15857
  });
15801
15858
  }
15802
15859
  }
@@ -15831,7 +15888,7 @@ var Methods = {
15831
15888
  * 表格键盘事件
15832
15889
  */
15833
15890
  keydownEvent: function keydownEvent(evnt) {
15834
- var _this26 = this;
15891
+ var _this27 = this;
15835
15892
 
15836
15893
  var filterStore = this.filterStore,
15837
15894
  ctxMenuStore = this.ctxMenuStore,
@@ -15846,33 +15903,33 @@ var Methods = {
15846
15903
 
15847
15904
  if (isEsc) {
15848
15905
  this.preventEvent(evnt, 'event.keydown', null, function () {
15849
- if (keyboardConfig && mouseConfig && mouseOpts.area && _this26.handleKeyboardEvent) {
15850
- _this26.handleKeyboardEvent(evnt);
15906
+ if (keyboardConfig && mouseConfig && mouseOpts.area && _this27.handleKeyboardEvent) {
15907
+ _this27.handleKeyboardEvent(evnt);
15851
15908
  } else if (actived.row || filterStore.visible || ctxMenuStore.visible) {
15852
15909
  evnt.stopPropagation(); // 如果按下了 Esc 键,关闭快捷菜单、筛选
15853
15910
 
15854
- _this26.closeFilter();
15911
+ _this27.closeFilter();
15855
15912
 
15856
- _this26.closeMenu();
15913
+ _this27.closeMenu();
15857
15914
 
15858
15915
  if (keyboardConfig && keyboardOpts.isEsc) {
15859
15916
  // 如果是激活编辑状态,则取消编辑
15860
15917
  if (actived.row) {
15861
15918
  var params = actived.args;
15862
15919
 
15863
- _this26.clearActived(evnt); // 如果配置了选中功能,则为选中状态
15920
+ _this27.clearActived(evnt); // 如果配置了选中功能,则为选中状态
15864
15921
 
15865
15922
 
15866
15923
  if (mouseConfig && mouseOpts.selected) {
15867
- _this26.$nextTick(function () {
15868
- return _this26.handleSelected(params, evnt);
15924
+ _this27.$nextTick(function () {
15925
+ return _this27.handleSelected(params, evnt);
15869
15926
  });
15870
15927
  }
15871
15928
  }
15872
15929
  }
15873
15930
  }
15874
15931
 
15875
- _this26.emitEvent('keydown', {}, evnt);
15932
+ _this27.emitEvent('keydown', {}, evnt);
15876
15933
  });
15877
15934
  }
15878
15935
  },
@@ -15881,27 +15938,27 @@ var Methods = {
15881
15938
  * 全局键盘事件
15882
15939
  */
15883
15940
  handleGlobalKeydownEvent: function handleGlobalKeydownEvent(evnt) {
15884
- var _this27 = this;
15941
+ var _this28 = this;
15885
15942
 
15886
15943
  // 该行为只对当前激活的表格有效
15887
15944
  if (this.isActivated) {
15888
15945
  this.preventEvent(evnt, 'event.keydown', null, function () {
15889
- var filterStore = _this27.filterStore,
15890
- isCtxMenu = _this27.isCtxMenu,
15891
- ctxMenuStore = _this27.ctxMenuStore,
15892
- editStore = _this27.editStore,
15893
- editOpts = _this27.editOpts,
15894
- editConfig = _this27.editConfig,
15895
- mouseConfig = _this27.mouseConfig,
15896
- mouseOpts = _this27.mouseOpts,
15897
- keyboardConfig = _this27.keyboardConfig,
15898
- keyboardOpts = _this27.keyboardOpts,
15899
- treeConfig = _this27.treeConfig,
15900
- treeOpts = _this27.treeOpts,
15901
- highlightCurrentRow = _this27.highlightCurrentRow,
15902
- currentRow = _this27.currentRow,
15903
- bodyCtxMenu = _this27.bodyCtxMenu,
15904
- rowOpts = _this27.rowOpts;
15946
+ var filterStore = _this28.filterStore,
15947
+ isCtxMenu = _this28.isCtxMenu,
15948
+ ctxMenuStore = _this28.ctxMenuStore,
15949
+ editStore = _this28.editStore,
15950
+ editOpts = _this28.editOpts,
15951
+ editConfig = _this28.editConfig,
15952
+ mouseConfig = _this28.mouseConfig,
15953
+ mouseOpts = _this28.mouseOpts,
15954
+ keyboardConfig = _this28.keyboardConfig,
15955
+ keyboardOpts = _this28.keyboardOpts,
15956
+ treeConfig = _this28.treeConfig,
15957
+ treeOpts = _this28.treeOpts,
15958
+ highlightCurrentRow = _this28.highlightCurrentRow,
15959
+ currentRow = _this28.currentRow,
15960
+ bodyCtxMenu = _this28.bodyCtxMenu,
15961
+ rowOpts = _this28.rowOpts;
15905
15962
  var selected = editStore.selected,
15906
15963
  actived = editStore.actived;
15907
15964
  var keyCode = evnt.keyCode;
@@ -15928,7 +15985,7 @@ var Methods = {
15928
15985
 
15929
15986
  if (filterStore.visible) {
15930
15987
  if (isEsc) {
15931
- _this27.closeFilter();
15988
+ _this28.closeFilter();
15932
15989
  }
15933
15990
 
15934
15991
  return;
@@ -15939,20 +15996,20 @@ var Methods = {
15939
15996
  evnt.preventDefault();
15940
15997
 
15941
15998
  if (ctxMenuStore.showChild && hasChildrenList(ctxMenuStore.selected)) {
15942
- _this27.moveCtxMenu(evnt, keyCode, ctxMenuStore, 'selectChild', 37, false, ctxMenuStore.selected.children);
15999
+ _this28.moveCtxMenu(evnt, keyCode, ctxMenuStore, 'selectChild', 37, false, ctxMenuStore.selected.children);
15943
16000
  } else {
15944
- _this27.moveCtxMenu(evnt, keyCode, ctxMenuStore, 'selected', 39, true, _this27.ctxMenuList);
16001
+ _this28.moveCtxMenu(evnt, keyCode, ctxMenuStore, 'selected', 39, true, _this28.ctxMenuList);
15945
16002
  }
15946
- } else if (keyboardConfig && mouseConfig && mouseOpts.area && _this27.handleKeyboardEvent) {
15947
- _this27.handleKeyboardEvent(evnt);
16003
+ } else if (keyboardConfig && mouseConfig && mouseOpts.area && _this28.handleKeyboardEvent) {
16004
+ _this28.handleKeyboardEvent(evnt);
15948
16005
  } else if (keyboardConfig && isSpacebar && keyboardOpts.isChecked && selected.row && selected.column && (selected.column.type === 'checkbox' || selected.column.type === 'radio')) {
15949
16006
  // 空格键支持选中复选框
15950
16007
  evnt.preventDefault();
15951
16008
 
15952
16009
  if (selected.column.type === 'checkbox') {
15953
- _this27.handleToggleCheckRowEvent(evnt, selected.args);
16010
+ _this28.handleToggleCheckRowEvent(evnt, selected.args);
15954
16011
  } else {
15955
- _this27.triggerRadioRowEvent(evnt, selected.args);
16012
+ _this28.triggerRadioRowEvent(evnt, selected.args);
15956
16013
  }
15957
16014
  } else if (isF2 && isEnableConf(editConfig)) {
15958
16015
  if (!isEditStatus) {
@@ -15961,15 +16018,15 @@ var Methods = {
15961
16018
  evnt.stopPropagation();
15962
16019
  evnt.preventDefault();
15963
16020
 
15964
- _this27.handleActived(selected.args, evnt);
16021
+ _this28.handleActived(selected.args, evnt);
15965
16022
  }
15966
16023
  }
15967
16024
  } else if (isContextMenu) {
15968
16025
  // 如果按下上下文键
15969
- _this27._keyCtx = selected.row && selected.column && bodyCtxMenu.length;
15970
- clearTimeout(_this27.keyCtxTimeout);
15971
- _this27.keyCtxTimeout = setTimeout(function () {
15972
- _this27._keyCtx = false;
16026
+ _this28._keyCtx = selected.row && selected.column && bodyCtxMenu.length;
16027
+ clearTimeout(_this28.keyCtxTimeout);
16028
+ _this28.keyCtxTimeout = setTimeout(function () {
16029
+ _this28._keyCtx = false;
15973
16030
  }, 1000);
15974
16031
  } else if (isEnter && !hasAltKey && keyboardConfig && keyboardOpts.isEnter && (selected.row || actived.row || treeConfig && (rowOpts.isCurrent || highlightCurrentRow) && currentRow)) {
15975
16032
  // 退出选中
@@ -15978,12 +16035,12 @@ var Methods = {
15978
16035
  if (actived.row) {
15979
16036
  params = actived.args;
15980
16037
 
15981
- _this27.clearActived(evnt); // 如果配置了选中功能,则为选中状态
16038
+ _this28.clearActived(evnt); // 如果配置了选中功能,则为选中状态
15982
16039
 
15983
16040
 
15984
16041
  if (mouseConfig && mouseOpts.selected) {
15985
- _this27.$nextTick(function () {
15986
- return _this27.handleSelected(params, evnt);
16042
+ _this28.$nextTick(function () {
16043
+ return _this28.handleSelected(params, evnt);
15987
16044
  });
15988
16045
  }
15989
16046
  }
@@ -15994,15 +16051,15 @@ var Methods = {
15994
16051
 
15995
16052
  if (hasShiftKey) {
15996
16053
  if (keyboardOpts.enterToTab) {
15997
- _this27.moveTabSelected(targetArgs, hasShiftKey, evnt);
16054
+ _this28.moveTabSelected(targetArgs, hasShiftKey, evnt);
15998
16055
  } else {
15999
- _this27.moveSelected(targetArgs, isLeftArrow, true, isRightArrow, false, evnt);
16056
+ _this28.moveSelected(targetArgs, isLeftArrow, true, isRightArrow, false, evnt);
16000
16057
  }
16001
16058
  } else {
16002
16059
  if (keyboardOpts.enterToTab) {
16003
- _this27.moveTabSelected(targetArgs, hasShiftKey, evnt);
16060
+ _this28.moveTabSelected(targetArgs, hasShiftKey, evnt);
16004
16061
  } else {
16005
- _this27.moveSelected(targetArgs, isLeftArrow, false, isRightArrow, true, evnt);
16062
+ _this28.moveSelected(targetArgs, isLeftArrow, false, isRightArrow, true, evnt);
16006
16063
  }
16007
16064
  }
16008
16065
  } else if (treeConfig && (rowOpts.isCurrent || highlightCurrentRow) && currentRow) {
@@ -16013,14 +16070,14 @@ var Methods = {
16013
16070
  evnt.preventDefault();
16014
16071
  var targetRow = childrens[0];
16015
16072
  params = {
16016
- $table: _this27,
16073
+ $table: _this28,
16017
16074
  row: targetRow
16018
16075
  };
16019
16076
 
16020
- _this27.setTreeExpand(currentRow, true).then(function () {
16021
- return _this27.scrollToRow(targetRow);
16077
+ _this28.setTreeExpand(currentRow, true).then(function () {
16078
+ return _this28.scrollToRow(targetRow);
16022
16079
  }).then(function () {
16023
- return _this27.triggerCurrentRowEvent(evnt, params);
16080
+ return _this28.triggerCurrentRowEvent(evnt, params);
16024
16081
  });
16025
16082
  }
16026
16083
  }
@@ -16029,18 +16086,18 @@ var Methods = {
16029
16086
  if (!isEditStatus) {
16030
16087
  // 如果按下了方向键
16031
16088
  if (selected.row && selected.column) {
16032
- _this27.moveSelected(selected.args, isLeftArrow, isUpArrow, isRightArrow, isDwArrow, evnt);
16089
+ _this28.moveSelected(selected.args, isLeftArrow, isUpArrow, isRightArrow, isDwArrow, evnt);
16033
16090
  } else if ((isUpArrow || isDwArrow) && (rowOpts.isCurrent || highlightCurrentRow)) {
16034
16091
  // 当前行按键上下移动
16035
- _this27.moveCurrentRow(isUpArrow, isDwArrow, evnt);
16092
+ _this28.moveCurrentRow(isUpArrow, isDwArrow, evnt);
16036
16093
  }
16037
16094
  }
16038
16095
  } else if (isTab && keyboardConfig && keyboardOpts.isTab) {
16039
16096
  // 如果按下了 Tab 键切换
16040
16097
  if (selected.row || selected.column) {
16041
- _this27.moveTabSelected(selected.args, hasShiftKey, evnt);
16098
+ _this28.moveTabSelected(selected.args, hasShiftKey, evnt);
16042
16099
  } else if (actived.row || actived.column) {
16043
- _this27.moveTabSelected(actived.args, hasShiftKey, evnt);
16100
+ _this28.moveTabSelected(actived.args, hasShiftKey, evnt);
16044
16101
  }
16045
16102
  } else if (keyboardConfig && (isDel || (treeConfig && (rowOpts.isCurrent || highlightCurrentRow) && currentRow ? isBack && keyboardOpts.isArrow : isBack))) {
16046
16103
  if (!isEditStatus) {
@@ -16051,10 +16108,10 @@ var Methods = {
16051
16108
  if (delMethod) {
16052
16109
  delMethod({
16053
16110
  row: selected.row,
16054
- rowIndex: _this27.getRowIndex(selected.row),
16111
+ rowIndex: _this28.getRowIndex(selected.row),
16055
16112
  column: selected.column,
16056
- columnIndex: _this27.getColumnIndex(selected.column),
16057
- $table: _this27
16113
+ columnIndex: _this28.getColumnIndex(selected.column),
16114
+ $table: _this28
16058
16115
  });
16059
16116
  } else {
16060
16117
  methods_setCellValue(selected.row, selected.column, null);
@@ -16064,21 +16121,21 @@ var Methods = {
16064
16121
  if (backMethod) {
16065
16122
  backMethod({
16066
16123
  row: selected.row,
16067
- rowIndex: _this27.getRowIndex(selected.row),
16124
+ rowIndex: _this28.getRowIndex(selected.row),
16068
16125
  column: selected.column,
16069
- columnIndex: _this27.getColumnIndex(selected.column),
16070
- $table: _this27
16126
+ columnIndex: _this28.getColumnIndex(selected.column),
16127
+ $table: _this28
16071
16128
  });
16072
16129
  } else {
16073
- _this27.handleActived(selected.args, evnt);
16130
+ _this28.handleActived(selected.args, evnt);
16074
16131
  }
16075
16132
  } else if (isDel) {
16076
16133
  // 如果按下 del 键,更新表尾数据
16077
- _this27.updateFooter();
16134
+ _this28.updateFooter();
16078
16135
  }
16079
16136
  } else if (isBack && keyboardOpts.isArrow && treeConfig && (rowOpts.isCurrent || highlightCurrentRow) && currentRow) {
16080
16137
  // 如果树形表格回退键关闭当前行返回父节点
16081
- var _XEUtils$findTree = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default.a.findTree(_this27.afterFullData, function (item) {
16138
+ var _XEUtils$findTree = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default.a.findTree(_this28.afterFullData, function (item) {
16082
16139
  return item === currentRow;
16083
16140
  }, treeOpts),
16084
16141
  parentRow = _XEUtils$findTree.parent;
@@ -16086,14 +16143,14 @@ var Methods = {
16086
16143
  if (parentRow) {
16087
16144
  evnt.preventDefault();
16088
16145
  params = {
16089
- $table: _this27,
16146
+ $table: _this28,
16090
16147
  row: parentRow
16091
16148
  };
16092
16149
 
16093
- _this27.setTreeExpand(parentRow, false).then(function () {
16094
- return _this27.scrollToRow(parentRow);
16150
+ _this28.setTreeExpand(parentRow, false).then(function () {
16151
+ return _this28.scrollToRow(parentRow);
16095
16152
  }).then(function () {
16096
- return _this27.triggerCurrentRowEvent(evnt, params);
16153
+ return _this28.triggerCurrentRowEvent(evnt, params);
16097
16154
  });
16098
16155
  }
16099
16156
  }
@@ -16107,26 +16164,26 @@ var Methods = {
16107
16164
 
16108
16165
  if (selected.column && selected.row && isEnableConf(selected.column.editRender)) {
16109
16166
  if (!editOpts.activeMethod || editOpts.activeMethod(_objectSpread2(_objectSpread2({}, selected.args), {}, {
16110
- $table: _this27
16167
+ $table: _this28
16111
16168
  }))) {
16112
16169
  if (editMethod) {
16113
16170
  editMethod({
16114
16171
  row: selected.row,
16115
- rowIndex: _this27.getRowIndex(selected.row),
16172
+ rowIndex: _this28.getRowIndex(selected.row),
16116
16173
  column: selected.column,
16117
- columnIndex: _this27.getColumnIndex(selected.column),
16118
- $table: _this27
16174
+ columnIndex: _this28.getColumnIndex(selected.column),
16175
+ $table: _this28
16119
16176
  });
16120
16177
  } else {
16121
16178
  methods_setCellValue(selected.row, selected.column, null);
16122
16179
 
16123
- _this27.handleActived(selected.args, evnt);
16180
+ _this28.handleActived(selected.args, evnt);
16124
16181
  }
16125
16182
  }
16126
16183
  }
16127
16184
  }
16128
16185
 
16129
- _this27.emitEvent('keydown', {}, evnt);
16186
+ _this28.emitEvent('keydown', {}, evnt);
16130
16187
  });
16131
16188
  }
16132
16189
  },
@@ -16196,12 +16253,12 @@ var Methods = {
16196
16253
  this.recalculate(true);
16197
16254
  },
16198
16255
  handleTooltipLeaveMethod: function handleTooltipLeaveMethod() {
16199
- var _this28 = this;
16256
+ var _this29 = this;
16200
16257
 
16201
16258
  var tooltipOpts = this.tooltipOpts;
16202
16259
  setTimeout(function () {
16203
- if (!_this28.tooltipActive) {
16204
- _this28.closeTooltip();
16260
+ if (!_this29.tooltipActive) {
16261
+ _this29.closeTooltip();
16205
16262
  }
16206
16263
  }, tooltipOpts.leaveDelay);
16207
16264
  return false;
@@ -16212,17 +16269,17 @@ var Methods = {
16212
16269
  this.closeTooltip();
16213
16270
  },
16214
16271
  handleTargetLeaveEvent: function handleTargetLeaveEvent() {
16215
- var _this29 = this;
16272
+ var _this30 = this;
16216
16273
 
16217
16274
  var tooltipOpts = this.tooltipOpts;
16218
16275
  this.tooltipActive = false;
16219
16276
 
16220
16277
  if (tooltipOpts.enterable) {
16221
16278
  this.tooltipTimeout = setTimeout(function () {
16222
- var tooltip = _this29.$refs.tooltip;
16279
+ var tooltip = _this30.$refs.tooltip;
16223
16280
 
16224
16281
  if (tooltip && !tooltip.isHover) {
16225
- _this29.closeTooltip();
16282
+ _this30.closeTooltip();
16226
16283
  }
16227
16284
  }, tooltipOpts.leaveDelay);
16228
16285
  } else {
@@ -16452,14 +16509,14 @@ var Methods = {
16452
16509
  * @param {Boolean} value 是否选中
16453
16510
  */
16454
16511
  setCheckboxRow: function setCheckboxRow(rows, value) {
16455
- var _this30 = this;
16512
+ var _this31 = this;
16456
16513
 
16457
16514
  if (rows && !external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default.a.isArray(rows)) {
16458
16515
  rows = [rows];
16459
16516
  }
16460
16517
 
16461
16518
  rows.forEach(function (row) {
16462
- return _this30.handleSelectRow({
16519
+ return _this31.handleSelectRow({
16463
16520
  row: row
16464
16521
  }, !!value);
16465
16522
  });
@@ -16483,7 +16540,7 @@ var Methods = {
16483
16540
  * value 选中true 不选false 半选-1
16484
16541
  */
16485
16542
  handleSelectRow: function handleSelectRow(_ref6, value) {
16486
- var _this31 = this;
16543
+ var _this32 = this;
16487
16544
 
16488
16545
  var row = _ref6.row;
16489
16546
  var selection = this.selection,
@@ -16515,7 +16572,7 @@ var Methods = {
16515
16572
  return half === item;
16516
16573
  });
16517
16574
 
16518
- _this31.handleCheckboxReserveRow(row, value);
16575
+ _this32.handleCheckboxReserveRow(row, value);
16519
16576
  }
16520
16577
  }, treeOpts);
16521
16578
  } // 如果存在父节点,更新父节点状态
@@ -16587,7 +16644,7 @@ var Methods = {
16587
16644
  return half === item;
16588
16645
  });
16589
16646
 
16590
- _this31.handleCheckboxReserveRow(row, value);
16647
+ _this32.handleCheckboxReserveRow(row, value);
16591
16648
  }
16592
16649
  }, treeOpts);
16593
16650
  } // 如果存在父节点,更新父节点状态
@@ -16691,7 +16748,7 @@ var Methods = {
16691
16748
  * @param {Boolean} value 是否选中
16692
16749
  */
16693
16750
  setAllCheckboxRow: function setAllCheckboxRow(value) {
16694
- var _this32 = this;
16751
+ var _this33 = this;
16695
16752
 
16696
16753
  var afterFullData = this.afterFullData,
16697
16754
  treeConfig = this.treeConfig,
@@ -16804,11 +16861,11 @@ var Methods = {
16804
16861
  if (reserve) {
16805
16862
  if (value) {
16806
16863
  selectRows.forEach(function (row) {
16807
- checkboxReserveRowMap[methods_getRowid(_this32, row)] = row;
16864
+ checkboxReserveRowMap[methods_getRowid(_this33, row)] = row;
16808
16865
  });
16809
16866
  } else {
16810
16867
  afterFullData.forEach(function (row) {
16811
- return _this32.handleCheckboxReserveRow(row, false);
16868
+ return _this33.handleCheckboxReserveRow(row, false);
16812
16869
  });
16813
16870
  }
16814
16871
  }
@@ -17028,7 +17085,7 @@ var Methods = {
17028
17085
  * 获取复选框保留选中的行
17029
17086
  */
17030
17087
  getCheckboxReserveRecords: function getCheckboxReserveRecords(isFull) {
17031
- var _this33 = this;
17088
+ var _this34 = this;
17032
17089
 
17033
17090
  var fullDataRowIdData = this.fullDataRowIdData,
17034
17091
  afterFullData = this.afterFullData,
@@ -17043,11 +17100,11 @@ var Methods = {
17043
17100
 
17044
17101
  if (treeConfig) {
17045
17102
  external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default.a.eachTree(afterFullData, function (row) {
17046
- afterFullIdMaps[methods_getRowid(_this33, row)] = 1;
17103
+ afterFullIdMaps[methods_getRowid(_this34, row)] = 1;
17047
17104
  }, treeOpts);
17048
17105
  } else {
17049
17106
  afterFullData.forEach(function (row) {
17050
- afterFullIdMaps[methods_getRowid(_this33, row)] = 1;
17107
+ afterFullIdMaps[methods_getRowid(_this34, row)] = 1;
17051
17108
  });
17052
17109
  }
17053
17110
 
@@ -17113,7 +17170,7 @@ var Methods = {
17113
17170
  * 清空行为不管是否被禁用还是保留记录,都将彻底清空选中状态
17114
17171
  */
17115
17172
  clearCheckboxRow: function clearCheckboxRow() {
17116
- var _this34 = this;
17173
+ var _this35 = this;
17117
17174
 
17118
17175
  var tableFullData = this.tableFullData,
17119
17176
  treeConfig = this.treeConfig,
@@ -17136,7 +17193,7 @@ var Methods = {
17136
17193
 
17137
17194
  if (reserve) {
17138
17195
  tableFullData.forEach(function (row) {
17139
- return _this34.handleCheckboxReserveRow(row, false);
17196
+ return _this35.handleCheckboxReserveRow(row, false);
17140
17197
  });
17141
17198
  }
17142
17199
 
@@ -17427,13 +17484,13 @@ var Methods = {
17427
17484
  * 如果存在规则,则校验
17428
17485
  */
17429
17486
  handleChangeCell: function handleChangeCell(evnt, params) {
17430
- var _this35 = this;
17487
+ var _this36 = this;
17431
17488
 
17432
17489
  this.checkValidate('blur').catch(function (e) {
17433
17490
  return e;
17434
17491
  }).then(function () {
17435
- _this35.handleActived(params, evnt).then(function () {
17436
- return _this35.checkValidate('change');
17492
+ _this36.handleActived(params, evnt).then(function () {
17493
+ return _this36.checkValidate('change');
17437
17494
  }).catch(function (e) {
17438
17495
  return e;
17439
17496
  });
@@ -17536,7 +17593,7 @@ var Methods = {
17536
17593
  * 如果是双击模式,则激活为编辑状态
17537
17594
  */
17538
17595
  triggerCellDblclickEvent: function triggerCellDblclickEvent(evnt, params) {
17539
- var _this36 = this;
17596
+ var _this37 = this;
17540
17597
 
17541
17598
  var editStore = this.editStore,
17542
17599
  editConfig = this.editConfig,
@@ -17551,15 +17608,15 @@ var Methods = {
17551
17608
  this.checkValidate('blur').catch(function (e) {
17552
17609
  return e;
17553
17610
  }).then(function () {
17554
- _this36.handleActived(params, evnt).then(function () {
17555
- return _this36.checkValidate('change');
17611
+ _this37.handleActived(params, evnt).then(function () {
17612
+ return _this37.checkValidate('change');
17556
17613
  }).catch(function (e) {
17557
17614
  return e;
17558
17615
  });
17559
17616
  });
17560
17617
  } else if (editOpts.mode === 'cell') {
17561
17618
  this.handleActived(params, evnt).then(function () {
17562
- return _this36.checkValidate('change');
17619
+ return _this37.checkValidate('change');
17563
17620
  }).catch(function (e) {
17564
17621
  return e;
17565
17622
  });
@@ -17570,7 +17627,7 @@ var Methods = {
17570
17627
  this.emitEvent('cell-dblclick', params, evnt);
17571
17628
  },
17572
17629
  handleDefaultSort: function handleDefaultSort() {
17573
- var _this37 = this;
17630
+ var _this38 = this;
17574
17631
 
17575
17632
  var sortConfig = this.sortConfig,
17576
17633
  sortOpts = this.sortOpts;
@@ -17587,7 +17644,7 @@ var Methods = {
17587
17644
  order = item.order;
17588
17645
 
17589
17646
  if (field && order) {
17590
- var column = _this37.getColumnByField(field);
17647
+ var column = _this38.getColumnByField(field);
17591
17648
 
17592
17649
  if (column && column.sortable) {
17593
17650
  column.order = order;
@@ -17630,7 +17687,7 @@ var Methods = {
17630
17687
  }
17631
17688
  },
17632
17689
  sort: function sort(sortConfs, sortOrder) {
17633
- var _this38 = this;
17690
+ var _this39 = this;
17634
17691
 
17635
17692
  var sortOpts = this.sortOpts;
17636
17693
  var multiple = sortOpts.multiple,
@@ -17663,7 +17720,7 @@ var Methods = {
17663
17720
  var column = field;
17664
17721
 
17665
17722
  if (external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default.a.isString(field)) {
17666
- column = _this38.getColumnByField(field);
17723
+ column = _this39.getColumnByField(field);
17667
17724
  }
17668
17725
 
17669
17726
  if (column && (column.sortable || column.remoteSort)) {
@@ -17672,7 +17729,7 @@ var Methods = {
17672
17729
  }
17673
17730
 
17674
17731
  if (orders.indexOf(order) === -1) {
17675
- order = getNextSortOrder(_this38, column);
17732
+ order = getNextSortOrder(_this39, column);
17676
17733
  }
17677
17734
 
17678
17735
  if (column.order !== order) {
@@ -17822,7 +17879,7 @@ var Methods = {
17822
17879
  * @param {Row} row 行对象
17823
17880
  */
17824
17881
  reloadRowExpand: function reloadRowExpand(row) {
17825
- var _this39 = this;
17882
+ var _this40 = this;
17826
17883
 
17827
17884
  var expandOpts = this.expandOpts,
17828
17885
  expandLazyLoadeds = this.expandLazyLoadeds;
@@ -17830,7 +17887,7 @@ var Methods = {
17830
17887
 
17831
17888
  if (lazy && expandLazyLoadeds.indexOf(row) === -1) {
17832
17889
  this.clearRowExpandLoaded(row).then(function () {
17833
- return _this39.handleAsyncRowExpand(row);
17890
+ return _this40.handleAsyncRowExpand(row);
17834
17891
  });
17835
17892
  }
17836
17893
 
@@ -17907,28 +17964,28 @@ var Methods = {
17907
17964
  return this.setRowExpand(this.expandOpts.lazy ? this.tableData : this.tableFullData, expanded);
17908
17965
  },
17909
17966
  handleAsyncRowExpand: function handleAsyncRowExpand(row) {
17910
- var _this40 = this;
17967
+ var _this41 = this;
17911
17968
 
17912
17969
  var rest = this.fullAllDataRowMap.get(row);
17913
17970
  return new Promise(function (resolve) {
17914
- _this40.expandLazyLoadeds.push(row);
17971
+ _this41.expandLazyLoadeds.push(row);
17915
17972
 
17916
- _this40.expandOpts.loadMethod({
17917
- $table: _this40,
17973
+ _this41.expandOpts.loadMethod({
17974
+ $table: _this41,
17918
17975
  row: row,
17919
- rowIndex: _this40.getRowIndex(row),
17920
- $rowIndex: _this40.getVMRowIndex(row)
17976
+ rowIndex: _this41.getRowIndex(row),
17977
+ $rowIndex: _this41.getVMRowIndex(row)
17921
17978
  }).catch(function (e) {
17922
17979
  return e;
17923
17980
  }).then(function () {
17924
17981
  rest.expandLoaded = true;
17925
- external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default.a.remove(_this40.expandLazyLoadeds, function (item) {
17982
+ external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default.a.remove(_this41.expandLazyLoadeds, function (item) {
17926
17983
  return item === row;
17927
17984
  });
17928
17985
 
17929
- _this40.rowExpandeds.push(row);
17986
+ _this41.rowExpandeds.push(row);
17930
17987
 
17931
- resolve(_this40.$nextTick().then(_this40.recalculate));
17988
+ resolve(_this41.$nextTick().then(_this41.recalculate));
17932
17989
  });
17933
17990
  });
17934
17991
  },
@@ -17941,7 +17998,7 @@ var Methods = {
17941
17998
  * @param {Boolean} expanded 是否展开
17942
17999
  */
17943
18000
  setRowExpand: function setRowExpand(rows, expanded) {
17944
- var _this41 = this;
18001
+ var _this42 = this;
17945
18002
 
17946
18003
  var fullAllDataRowMap = this.fullAllDataRowMap,
17947
18004
  expandLazyLoadeds = this.expandLazyLoadeds,
@@ -17974,8 +18031,8 @@ var Methods = {
17974
18031
  columnIndex: columnIndex,
17975
18032
  $columnIndex: $columnIndex,
17976
18033
  row: row,
17977
- rowIndex: _this41.getRowIndex(row),
17978
- $rowIndex: _this41.getVMRowIndex(row)
18034
+ rowIndex: _this42.getRowIndex(row),
18035
+ $rowIndex: _this42.getVMRowIndex(row)
17979
18036
  });
17980
18037
  }) : rows;
17981
18038
 
@@ -17986,7 +18043,7 @@ var Methods = {
17986
18043
  var isLoad = lazy && !rest.expandLoaded && expandLazyLoadeds.indexOf(row) === -1;
17987
18044
 
17988
18045
  if (isLoad) {
17989
- lazyRests.push(_this41.handleAsyncRowExpand(row));
18046
+ lazyRests.push(_this42.handleAsyncRowExpand(row));
17990
18047
  } else {
17991
18048
  rowExpandeds.push(row);
17992
18049
  }
@@ -18000,7 +18057,7 @@ var Methods = {
18000
18057
 
18001
18058
  if (reserve) {
18002
18059
  validRows.forEach(function (row) {
18003
- return _this41.handleRowExpandReserve(row, expanded);
18060
+ return _this42.handleRowExpandReserve(row, expanded);
18004
18061
  });
18005
18062
  }
18006
18063
  }
@@ -18021,7 +18078,7 @@ var Methods = {
18021
18078
  * 手动清空展开行状态,数据会恢复成未展开的状态
18022
18079
  */
18023
18080
  clearRowExpand: function clearRowExpand() {
18024
- var _this42 = this;
18081
+ var _this43 = this;
18025
18082
 
18026
18083
  var expandOpts = this.expandOpts,
18027
18084
  rowExpandeds = this.rowExpandeds,
@@ -18032,13 +18089,13 @@ var Methods = {
18032
18089
 
18033
18090
  if (reserve) {
18034
18091
  tableFullData.forEach(function (row) {
18035
- return _this42.handleRowExpandReserve(row, false);
18092
+ return _this43.handleRowExpandReserve(row, false);
18036
18093
  });
18037
18094
  }
18038
18095
 
18039
18096
  return this.$nextTick().then(function () {
18040
18097
  if (isExists) {
18041
- _this42.recalculate();
18098
+ _this43.recalculate();
18042
18099
  }
18043
18100
  });
18044
18101
  },
@@ -18117,7 +18174,7 @@ var Methods = {
18117
18174
  * @param {Row} row 行对象
18118
18175
  */
18119
18176
  reloadTreeExpand: function reloadTreeExpand(row) {
18120
- var _this43 = this;
18177
+ var _this44 = this;
18121
18178
 
18122
18179
  var treeOpts = this.treeOpts,
18123
18180
  treeLazyLoadeds = this.treeLazyLoadeds;
@@ -18127,15 +18184,15 @@ var Methods = {
18127
18184
 
18128
18185
  if (lazy && row[hasChild] && treeLazyLoadeds.indexOf(row) === -1) {
18129
18186
  this.clearTreeExpandLoaded(row).then(function () {
18130
- return _this43.handleAsyncTreeExpandChilds(row);
18187
+ return _this44.handleAsyncTreeExpandChilds(row);
18131
18188
  }).then(function () {
18132
18189
  if (transform) {
18133
- _this43.handleVirtualTreeToList();
18190
+ _this44.handleVirtualTreeToList();
18134
18191
 
18135
- return _this43.handleTableData();
18192
+ return _this44.handleTableData();
18136
18193
  }
18137
18194
  }).then(function () {
18138
- return _this43.recalculate();
18195
+ return _this44.recalculate();
18139
18196
  });
18140
18197
  }
18141
18198
 
@@ -18211,7 +18268,7 @@ var Methods = {
18211
18268
  }
18212
18269
  },
18213
18270
  handleAsyncTreeExpandChilds: function handleAsyncTreeExpandChilds(row) {
18214
- var _this44 = this;
18271
+ var _this45 = this;
18215
18272
 
18216
18273
  var fullAllDataRowMap = this.fullAllDataRowMap,
18217
18274
  treeExpandeds = this.treeExpandeds,
@@ -18225,7 +18282,7 @@ var Methods = {
18225
18282
  return new Promise(function (resolve) {
18226
18283
  treeLazyLoadeds.push(row);
18227
18284
  loadMethod({
18228
- $table: _this44,
18285
+ $table: _this45,
18229
18286
  row: row
18230
18287
  }).catch(function () {
18231
18288
  return [];
@@ -18240,29 +18297,29 @@ var Methods = {
18240
18297
  }
18241
18298
 
18242
18299
  if (childRecords) {
18243
- _this44.loadTreeChildren(row, childRecords).then(function (childRows) {
18300
+ _this45.loadTreeChildren(row, childRecords).then(function (childRows) {
18244
18301
  if (childRows.length && treeExpandeds.indexOf(row) === -1) {
18245
18302
  treeExpandeds.push(row);
18246
18303
  } // 如果当前节点已选中,则展开后子节点也被选中
18247
18304
 
18248
18305
 
18249
- if (!checkStrictly && _this44.isCheckedByCheckboxRow(row)) {
18250
- _this44.setCheckboxRow(childRows, true);
18306
+ if (!checkStrictly && _this45.isCheckedByCheckboxRow(row)) {
18307
+ _this45.setCheckboxRow(childRows, true);
18251
18308
  }
18252
18309
 
18253
- _this44.$nextTick().then(function () {
18310
+ _this45.$nextTick().then(function () {
18254
18311
  if (transform) {
18255
- return _this44.handleTableData();
18312
+ return _this45.handleTableData();
18256
18313
  }
18257
18314
  }).then(function () {
18258
- return _this44.recalculate();
18315
+ return _this45.recalculate();
18259
18316
  }).then(function () {
18260
18317
  return resolve();
18261
18318
  });
18262
18319
  });
18263
18320
  } else {
18264
- _this44.$nextTick().then(function () {
18265
- return _this44.recalculate();
18321
+ _this45.$nextTick().then(function () {
18322
+ return _this45.recalculate();
18266
18323
  }).then(function () {
18267
18324
  return resolve();
18268
18325
  });
@@ -18298,7 +18355,7 @@ var Methods = {
18298
18355
  * @returns
18299
18356
  */
18300
18357
  handleBaseTreeExpand: function handleBaseTreeExpand(rows, expanded) {
18301
- var _this45 = this;
18358
+ var _this46 = this;
18302
18359
 
18303
18360
  var fullAllDataRowMap = this.fullAllDataRowMap,
18304
18361
  tableFullData = this.tableFullData,
@@ -18346,7 +18403,7 @@ var Methods = {
18346
18403
  var isLoad = lazy && row[hasChild] && !rest.treeLoaded && treeLazyLoadeds.indexOf(row) === -1; // 是否使用懒加载
18347
18404
 
18348
18405
  if (isLoad) {
18349
- result.push(_this45.handleAsyncTreeExpandChilds(row));
18406
+ result.push(_this46.handleAsyncTreeExpandChilds(row));
18350
18407
  } else {
18351
18408
  if (row[children] && row[children].length) {
18352
18409
  treeExpandeds.push(row);
@@ -18362,7 +18419,7 @@ var Methods = {
18362
18419
 
18363
18420
  if (reserve) {
18364
18421
  validRows.forEach(function (row) {
18365
- return _this45.handleTreeExpandReserve(row, expanded);
18422
+ return _this46.handleTreeExpandReserve(row, expanded);
18366
18423
  });
18367
18424
  }
18368
18425
 
@@ -18376,14 +18433,14 @@ var Methods = {
18376
18433
  * @returns
18377
18434
  */
18378
18435
  handleVirtualTreeExpand: function handleVirtualTreeExpand(rows, expanded) {
18379
- var _this46 = this;
18436
+ var _this47 = this;
18380
18437
 
18381
18438
  return this.handleBaseTreeExpand(rows, expanded).then(function () {
18382
- _this46.handleVirtualTreeToList();
18439
+ _this47.handleVirtualTreeToList();
18383
18440
 
18384
- return _this46.handleTableData();
18441
+ return _this47.handleTableData();
18385
18442
  }).then(function () {
18386
- return _this46.recalculate();
18443
+ return _this47.recalculate();
18387
18444
  });
18388
18445
  },
18389
18446
 
@@ -18428,7 +18485,7 @@ var Methods = {
18428
18485
  * 手动清空树形节点的展开状态,数据会恢复成未展开的状态
18429
18486
  */
18430
18487
  clearTreeExpand: function clearTreeExpand() {
18431
- var _this47 = this;
18488
+ var _this48 = this;
18432
18489
 
18433
18490
  var treeOpts = this.treeOpts,
18434
18491
  treeExpandeds = this.treeExpandeds,
@@ -18440,19 +18497,19 @@ var Methods = {
18440
18497
 
18441
18498
  if (reserve) {
18442
18499
  external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default.a.eachTree(tableFullData, function (row) {
18443
- return _this47.handleTreeExpandReserve(row, false);
18500
+ return _this48.handleTreeExpandReserve(row, false);
18444
18501
  }, treeOpts);
18445
18502
  }
18446
18503
 
18447
18504
  return this.handleTableData().then(function () {
18448
18505
  if (transform) {
18449
- _this47.handleVirtualTreeToList();
18506
+ _this48.handleVirtualTreeToList();
18450
18507
 
18451
- return _this47.handleTableData();
18508
+ return _this48.handleTableData();
18452
18509
  }
18453
18510
  }).then(function () {
18454
18511
  if (isExists) {
18455
- _this47.recalculate();
18512
+ _this48.recalculate();
18456
18513
  }
18457
18514
  });
18458
18515
  },
@@ -18582,18 +18639,18 @@ var Methods = {
18582
18639
  },
18583
18640
  // 计算可视渲染相关数据
18584
18641
  computeScrollLoad: function computeScrollLoad() {
18585
- var _this48 = this;
18642
+ var _this49 = this;
18586
18643
 
18587
18644
  return this.$nextTick().then(function () {
18588
- var sYOpts = _this48.sYOpts,
18589
- sXOpts = _this48.sXOpts,
18590
- scrollXLoad = _this48.scrollXLoad,
18591
- scrollYLoad = _this48.scrollYLoad,
18592
- scrollXStore = _this48.scrollXStore,
18593
- scrollYStore = _this48.scrollYStore; // 计算 X 逻辑
18645
+ var sYOpts = _this49.sYOpts,
18646
+ sXOpts = _this49.sXOpts,
18647
+ scrollXLoad = _this49.scrollXLoad,
18648
+ scrollYLoad = _this49.scrollYLoad,
18649
+ scrollXStore = _this49.scrollXStore,
18650
+ scrollYStore = _this49.scrollYStore; // 计算 X 逻辑
18594
18651
 
18595
18652
  if (scrollXLoad) {
18596
- var _computeVirtualX3 = computeVirtualX(_this48),
18653
+ var _computeVirtualX3 = computeVirtualX(_this49),
18597
18654
  visibleXSize = _computeVirtualX3.visibleSize;
18598
18655
 
18599
18656
  var offsetXSize = sXOpts.oSize ? external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default.a.toNumber(sXOpts.oSize) : browse.msie ? 10 : browse.edge ? 5 : 0;
@@ -18601,13 +18658,13 @@ var Methods = {
18601
18658
  scrollXStore.visibleSize = visibleXSize;
18602
18659
  scrollXStore.endIndex = Math.max(scrollXStore.startIndex + scrollXStore.visibleSize + offsetXSize, scrollXStore.endIndex);
18603
18660
 
18604
- _this48.updateScrollXData();
18661
+ _this49.updateScrollXData();
18605
18662
  } else {
18606
- _this48.updateScrollXSpace();
18663
+ _this49.updateScrollXSpace();
18607
18664
  } // 计算 Y 逻辑
18608
18665
 
18609
18666
 
18610
- var _computeVirtualY = computeVirtualY(_this48),
18667
+ var _computeVirtualY = computeVirtualY(_this49),
18611
18668
  rowHeight = _computeVirtualY.rowHeight,
18612
18669
  visibleYSize = _computeVirtualY.visibleSize;
18613
18670
 
@@ -18619,14 +18676,14 @@ var Methods = {
18619
18676
  scrollYStore.visibleSize = visibleYSize;
18620
18677
  scrollYStore.endIndex = Math.max(scrollYStore.startIndex + visibleYSize + offsetYSize, scrollYStore.endIndex);
18621
18678
 
18622
- _this48.updateScrollYData();
18679
+ _this49.updateScrollYData();
18623
18680
  } else {
18624
- _this48.updateScrollYSpace();
18681
+ _this49.updateScrollYSpace();
18625
18682
  }
18626
18683
 
18627
- _this48.rowHeight = rowHeight;
18684
+ _this49.rowHeight = rowHeight;
18628
18685
 
18629
- _this48.$nextTick(_this48.updateStyle);
18686
+ _this49.$nextTick(_this49.updateStyle);
18630
18687
  });
18631
18688
  },
18632
18689
  handleTableColumn: function handleTableColumn() {
@@ -18740,7 +18797,7 @@ var Methods = {
18740
18797
  * @param {Number} scrollTop 上距离
18741
18798
  */
18742
18799
  scrollTo: function scrollTo(scrollLeft, scrollTop) {
18743
- var _this49 = this;
18800
+ var _this50 = this;
18744
18801
 
18745
18802
  var $refs = this.$refs;
18746
18803
  var tableBody = $refs.tableBody,
@@ -18761,7 +18818,7 @@ var Methods = {
18761
18818
  if (this.scrollXLoad || this.scrollYLoad) {
18762
18819
  return new Promise(function (resolve) {
18763
18820
  return setTimeout(function () {
18764
- return resolve(_this49.$nextTick());
18821
+ return resolve(_this50.$nextTick());
18765
18822
  }, 50);
18766
18823
  });
18767
18824
  }
@@ -18812,7 +18869,7 @@ var Methods = {
18812
18869
  * @param {Row} row 行对象
18813
18870
  */
18814
18871
  scrollToTreeRow: function scrollToTreeRow(row) {
18815
- var _this50 = this;
18872
+ var _this51 = this;
18816
18873
 
18817
18874
  var tableFullData = this.tableFullData,
18818
18875
  treeConfig = this.treeConfig,
@@ -18827,15 +18884,15 @@ var Methods = {
18827
18884
  if (matchObj) {
18828
18885
  var nodes = matchObj.nodes;
18829
18886
  nodes.forEach(function (row, index) {
18830
- if (index < nodes.length - 1 && !_this50.isTreeExpandByRow(row)) {
18831
- rests.push(_this50.setTreeExpand(row, true));
18887
+ if (index < nodes.length - 1 && !_this51.isTreeExpandByRow(row)) {
18888
+ rests.push(_this51.setTreeExpand(row, true));
18832
18889
  }
18833
18890
  });
18834
18891
  }
18835
18892
  }
18836
18893
 
18837
18894
  return Promise.all(rests).then(function () {
18838
- return DomTools.rowToVisible(_this50, row);
18895
+ return DomTools.rowToVisible(_this51, row);
18839
18896
  });
18840
18897
  },
18841
18898
 
@@ -18899,29 +18956,29 @@ var Methods = {
18899
18956
  * 如果单元格配置了校验规则,则会进行校验
18900
18957
  */
18901
18958
  updateStatus: function updateStatus(scope, cellValue) {
18902
- var _this51 = this;
18959
+ var _this52 = this;
18903
18960
 
18904
18961
  var customVal = !external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default.a.isUndefined(cellValue);
18905
18962
  return this.$nextTick().then(function () {
18906
- var $refs = _this51.$refs,
18907
- editRules = _this51.editRules,
18908
- validStore = _this51.validStore;
18963
+ var $refs = _this52.$refs,
18964
+ editRules = _this52.editRules,
18965
+ validStore = _this52.validStore;
18909
18966
 
18910
18967
  if (scope && $refs.tableBody && editRules) {
18911
18968
  var row = scope.row,
18912
18969
  column = scope.column;
18913
18970
  var type = 'change';
18914
18971
 
18915
- if (_this51.hasCellRules(type, row, column)) {
18916
- var cell = _this51.getCell(row, column);
18972
+ if (_this52.hasCellRules(type, row, column)) {
18973
+ var cell = _this52.getCell(row, column);
18917
18974
 
18918
18975
  if (cell) {
18919
- return _this51.validCellRules(type, row, column, cellValue).then(function () {
18976
+ return _this52.validCellRules(type, row, column, cellValue).then(function () {
18920
18977
  if (customVal && validStore.visible) {
18921
18978
  methods_setCellValue(row, column, cellValue);
18922
18979
  }
18923
18980
 
18924
- _this51.clearValidate();
18981
+ _this52.clearValidate();
18925
18982
  }).catch(function (_ref8) {
18926
18983
  var rule = _ref8.rule;
18927
18984
 
@@ -18929,7 +18986,7 @@ var Methods = {
18929
18986
  methods_setCellValue(row, column, cellValue);
18930
18987
  }
18931
18988
 
18932
- _this51.showValidTooltip({
18989
+ _this52.showValidTooltip({
18933
18990
  rule: rule,
18934
18991
  row: row,
18935
18992
  column: column,
@@ -18950,7 +19007,7 @@ var Methods = {
18950
19007
  * @param {TableMergeConfig[]} merges { row: Row|number, column: ColumnInfo|number, rowspan: number, colspan: number }
18951
19008
  */
18952
19009
  setMergeCells: function setMergeCells(merges) {
18953
- var _this52 = this;
19010
+ var _this53 = this;
18954
19011
 
18955
19012
  if (this.spanMethod) {
18956
19013
  UtilTools.error('vxe.error.errConflicts', ['merge-cells', 'span-method']);
@@ -18958,7 +19015,7 @@ var Methods = {
18958
19015
 
18959
19016
  setMerges(this, merges, this.mergeList, this.afterFullData);
18960
19017
  return this.$nextTick().then(function () {
18961
- return _this52.updateCellAreas();
19018
+ return _this53.updateCellAreas();
18962
19019
  });
18963
19020
  },
18964
19021
 
@@ -18967,7 +19024,7 @@ var Methods = {
18967
19024
  * @param {TableMergeConfig[]} merges 多个或数组 [{row:Row|number, col:ColumnInfo|number}]
18968
19025
  */
18969
19026
  removeMergeCells: function removeMergeCells(merges) {
18970
- var _this53 = this;
19027
+ var _this54 = this;
18971
19028
 
18972
19029
  if (this.spanMethod) {
18973
19030
  UtilTools.error('vxe.error.errConflicts', ['merge-cells', 'span-method']);
@@ -18975,7 +19032,7 @@ var Methods = {
18975
19032
 
18976
19033
  var rest = removeMerges(this, merges, this.mergeList, this.afterFullData);
18977
19034
  return this.$nextTick().then(function () {
18978
- _this53.updateCellAreas();
19035
+ _this54.updateCellAreas();
18979
19036
 
18980
19037
  return rest;
18981
19038
  });
@@ -18999,7 +19056,7 @@ var Methods = {
18999
19056
  this.setMergeFooterItems(this.mergeFooterItems);
19000
19057
  },
19001
19058
  setMergeFooterItems: function setMergeFooterItems(merges) {
19002
- var _this54 = this;
19059
+ var _this55 = this;
19003
19060
 
19004
19061
  if (this.footerSpanMethod) {
19005
19062
  UtilTools.error('vxe.error.errConflicts', ['merge-footer-items', 'footer-span-method']);
@@ -19007,11 +19064,11 @@ var Methods = {
19007
19064
 
19008
19065
  setMerges(this, merges, this.mergeFooterList, null);
19009
19066
  return this.$nextTick().then(function () {
19010
- return _this54.updateCellAreas();
19067
+ return _this55.updateCellAreas();
19011
19068
  });
19012
19069
  },
19013
19070
  removeMergeFooterItems: function removeMergeFooterItems(merges) {
19014
- var _this55 = this;
19071
+ var _this56 = this;
19015
19072
 
19016
19073
  if (this.footerSpanMethod) {
19017
19074
  UtilTools.error('vxe.error.errConflicts', ['merge-footer-items', 'footer-span-method']);
@@ -19019,7 +19076,7 @@ var Methods = {
19019
19076
 
19020
19077
  var rest = removeMerges(this, merges, this.mergeFooterList, null);
19021
19078
  return this.$nextTick().then(function () {
19022
- _this55.updateCellAreas();
19079
+ _this56.updateCellAreas();
19023
19080
 
19024
19081
  return rest;
19025
19082
  });
@@ -20914,8 +20971,8 @@ var Table = Object.assign(table, {
20914
20971
 
20915
20972
  var filterStore = this.filterStore,
20916
20973
  filterOpts = this.filterOpts,
20917
- scrollXLoad = this.scrollXLoad,
20918
- scrollYLoad = this.scrollYLoad;
20974
+ oldScrollXLoad = this.scrollXLoad,
20975
+ oldScrollYLoad = this.scrollYLoad;
20919
20976
  var column = filterStore.column;
20920
20977
  var property = column.property;
20921
20978
  var values = [];
@@ -20931,19 +20988,6 @@ var Table = Object.assign(table, {
20931
20988
  if (!filterOpts.remote) {
20932
20989
  this.handleTableData(true);
20933
20990
  this.checkSelectionStatus();
20934
- this.updateFooter();
20935
-
20936
- if (scrollXLoad || scrollYLoad) {
20937
- if (scrollXLoad) {
20938
- this.updateScrollXSpace();
20939
- }
20940
-
20941
- if (scrollYLoad) {
20942
- this.updateScrollYSpace();
20943
- }
20944
-
20945
- this.refreshScroll();
20946
- }
20947
20991
  }
20948
20992
 
20949
20993
  this.emitEvent('filter-change', {
@@ -20955,10 +20999,30 @@ var Table = Object.assign(table, {
20955
20999
  filterList: filterList
20956
21000
  }, evnt);
20957
21001
  this.closeFilter();
20958
- this.$nextTick(function () {
20959
- _this2.recalculate();
21002
+ this.updateFooter().then(function () {
21003
+ var scrollXLoad = _this2.scrollXLoad,
21004
+ scrollYLoad = _this2.scrollYLoad;
21005
+
21006
+ if (oldScrollXLoad || scrollXLoad || oldScrollYLoad || scrollYLoad) {
21007
+ if (oldScrollXLoad || scrollXLoad) {
21008
+ _this2.updateScrollXSpace();
21009
+ }
21010
+
21011
+ if (oldScrollYLoad || scrollYLoad) {
21012
+ _this2.updateScrollYSpace();
21013
+ }
20960
21014
 
21015
+ return _this2.refreshScroll();
21016
+ }
21017
+ }).then(function () {
20961
21018
  _this2.updateCellAreas();
21019
+
21020
+ return _this2.recalculate(true);
21021
+ }).then(function () {
21022
+ // 存在滚动行为未结束情况
21023
+ setTimeout(function () {
21024
+ return _this2.recalculate();
21025
+ }, 50);
20962
21026
  });
20963
21027
  },
20964
21028
  handleClearFilter: function handleClearFilter(column) {