vxe-table 3.7.0-beta.16 → 3.7.0-beta.18

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.
Files changed (48) hide show
  1. package/lib/button/style/style.css +2 -3
  2. package/lib/button/style/style.min.css +1 -1
  3. package/lib/edit/src/mixin.js +6 -4
  4. package/lib/edit/src/mixin.min.js +1 -1
  5. package/lib/icon/style/style.css +1 -1
  6. package/lib/icon/style/style.min.css +1 -1
  7. package/lib/index.css +1 -1
  8. package/lib/index.umd.js +571 -404
  9. package/lib/index.umd.min.js +1 -1
  10. package/lib/input/src/input.js +24 -1
  11. package/lib/input/src/input.min.js +1 -1
  12. package/lib/input/style/style.css +21 -0
  13. package/lib/input/style/style.min.css +1 -1
  14. package/lib/style.css +1 -1
  15. package/lib/style.min.css +1 -1
  16. package/lib/table/src/body.js +6 -6
  17. package/lib/table/src/body.min.js +1 -1
  18. package/lib/table/src/cell.js +20 -16
  19. package/lib/table/src/cell.min.js +1 -1
  20. package/lib/table/src/methods.js +498 -360
  21. package/lib/table/src/methods.min.js +1 -1
  22. package/lib/table/src/table.js +15 -13
  23. package/lib/table/src/table.min.js +1 -1
  24. package/lib/table/style/style.css +2 -2
  25. package/lib/table/style/style.min.css +1 -1
  26. package/lib/tools/log.js +1 -1
  27. package/lib/tools/log.min.js +1 -1
  28. package/lib/v-x-e-table/index.js +1 -1
  29. package/lib/v-x-e-table/index.min.js +1 -1
  30. package/package.json +3 -8
  31. package/packages/edit/src/mixin.js +7 -5
  32. package/packages/input/src/input.js +24 -1
  33. package/packages/table/src/body.js +6 -6
  34. package/packages/table/src/cell.js +18 -14
  35. package/packages/table/src/methods.js +375 -181
  36. package/packages/table/src/table.js +15 -13
  37. package/styles/button.scss +5 -3
  38. package/styles/css-variable.scss +3 -3
  39. package/styles/input.scss +25 -0
  40. package/styles/table.scss +6 -2
  41. package/styles/textarea.scss +3 -3
  42. package/styles/variable.scss +3 -3
  43. /package/lib/icon/style/{iconfont.1693009490086.ttf → iconfont.1693698495640.ttf} +0 -0
  44. /package/lib/icon/style/{iconfont.1693009490086.woff → iconfont.1693698495640.woff} +0 -0
  45. /package/lib/icon/style/{iconfont.1693009490086.woff2 → iconfont.1693698495640.woff2} +0 -0
  46. /package/lib/{iconfont.1693009490086.ttf → iconfont.1693698495640.ttf} +0 -0
  47. /package/lib/{iconfont.1693009490086.woff → iconfont.1693698495640.woff} +0 -0
  48. /package/lib/{iconfont.1693009490086.woff2 → iconfont.1693698495640.woff2} +0 -0
package/lib/index.umd.js CHANGED
@@ -11045,7 +11045,7 @@ var es_array_concat = __webpack_require__(2222);
11045
11045
 
11046
11046
 
11047
11047
  function getLog(message, params) {
11048
- return "[vxe-table v".concat("3.7.0-beta.15", "] ").concat(conf.i18n(message, params));
11048
+ return "[vxe-table v".concat("3.7.0-beta.18", "] ").concat(conf.i18n(message, params));
11049
11049
  }
11050
11050
  function outLog(type) {
11051
11051
  return function (message, params) {
@@ -12482,7 +12482,7 @@ function _t(key, args) {
12482
12482
  var v = 'v3';
12483
12483
  var VXETable = {
12484
12484
  v: v,
12485
- version: "3.7.0-beta.15",
12485
+ version: "3.7.0-beta.18",
12486
12486
  reg: reg,
12487
12487
  use: use,
12488
12488
  setup: setup,
@@ -13275,7 +13275,6 @@ function getSlotVNs(vns) {
13275
13275
 
13276
13276
 
13277
13277
 
13278
-
13279
13278
 
13280
13279
 
13281
13280
  var renderType = 'body';
@@ -13573,9 +13572,9 @@ function renderRows(h, _vm, $xetable, fixedType, tableData, tableColumn) {
13573
13572
  treeOpts = $xetable.treeOpts,
13574
13573
  expandOpts = $xetable.expandOpts,
13575
13574
  editOpts = $xetable.editOpts,
13576
- treeExpandeds = $xetable.treeExpandeds,
13575
+ treeExpandedMaps = $xetable.treeExpandedMaps,
13577
13576
  scrollYLoad = $xetable.scrollYLoad,
13578
- rowExpandeds = $xetable.rowExpandeds,
13577
+ rowExpandedMaps = $xetable.rowExpandedMaps,
13579
13578
  radioOpts = $xetable.radioOpts,
13580
13579
  checkboxOpts = $xetable.checkboxOpts,
13581
13580
  expandColumn = $xetable.expandColumn,
@@ -13624,7 +13623,7 @@ function renderRows(h, _vm, $xetable, fixedType, tableData, tableColumn) {
13624
13623
  $rowIndex: $rowIndex
13625
13624
  };
13626
13625
  // 行是否被展开
13627
- var isExpandRow = expandColumn && rowExpandeds.length && rowExpandeds.indexOf(row) > -1;
13626
+ var isExpandRow = expandColumn && !!rowExpandedMaps[rowid];
13628
13627
  // 树节点是否被展开
13629
13628
  var isExpandTree = false;
13630
13629
  var rowChildren = [];
@@ -13633,9 +13632,9 @@ function renderRows(h, _vm, $xetable, fixedType, tableData, tableColumn) {
13633
13632
  if (editConfig) {
13634
13633
  isNewRow = $xetable.isInsertByRow(row);
13635
13634
  }
13636
- if (treeConfig && !scrollYLoad && !treeOpts.transform && treeExpandeds.length) {
13635
+ if (treeConfig && !scrollYLoad && !treeOpts.transform) {
13637
13636
  rowChildren = row[childrenField];
13638
- isExpandTree = rowChildren && rowChildren.length && treeExpandeds.indexOf(row) > -1;
13637
+ isExpandTree = rowChildren && rowChildren.length && !!treeExpandedMaps[rowid];
13639
13638
  }
13640
13639
  rows.push(h('tr', {
13641
13640
  "class": ['vxe-body--row', treeConfig ? "row--level-".concat(rowLevel) : '', {
@@ -13644,7 +13643,7 @@ function renderRows(h, _vm, $xetable, fixedType, tableData, tableColumn) {
13644
13643
  'is--expand-row': isExpandRow,
13645
13644
  'is--expand-tree': isExpandTree,
13646
13645
  'row--new': isNewRow && (editOpts.showStatus || editOpts.showInsertStatus),
13647
- 'row--radio': radioOpts.highlight && $xetable.selectRow === row,
13646
+ 'row--radio': radioOpts.highlight && $xetable.selectRadioRow === row,
13648
13647
  'row--checked': checkboxOpts.highlight && $xetable.isCheckedByCheckboxRow(row)
13649
13648
  }, rowClassName ? external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isFunction(rowClassName) ? rowClassName(params) : rowClassName : ''],
13650
13649
  attrs: {
@@ -15066,8 +15065,8 @@ var Cell = {
15066
15065
  var $table = params.$table,
15067
15066
  isHidden = params.isHidden;
15068
15067
  var treeOpts = $table.treeOpts,
15069
- treeExpandeds = $table.treeExpandeds,
15070
- treeLazyLoadeds = $table.treeLazyLoadeds;
15068
+ treeExpandedMaps = $table.treeExpandedMaps,
15069
+ treeExpandLazyLoadedMaps = $table.treeExpandLazyLoadedMaps;
15071
15070
  var row = params.row,
15072
15071
  column = params.column,
15073
15072
  level = params.level;
@@ -15090,9 +15089,10 @@ var Cell = {
15090
15089
  return $table.callSlot(slots.icon, params, h, cellVNodes);
15091
15090
  }
15092
15091
  if (!isHidden) {
15093
- isAceived = $table.findRowIndexOf(treeExpandeds, row) > -1;
15092
+ var rowid = getRowid($table, row);
15093
+ isAceived = !!treeExpandedMaps[rowid];
15094
15094
  if (lazy) {
15095
- isLazyLoaded = $table.findRowIndexOf(treeLazyLoadeds, row) > -1;
15095
+ isLazyLoaded = !!treeExpandLazyLoadedMaps[rowid];
15096
15096
  hasLazyChilds = row[hasChildField];
15097
15097
  }
15098
15098
  }
@@ -15161,7 +15161,7 @@ var Cell = {
15161
15161
  column = params.column,
15162
15162
  isHidden = params.isHidden;
15163
15163
  var radioOpts = $table.radioOpts,
15164
- selectRow = $table.selectRow;
15164
+ selectRadioRow = $table.selectRadioRow;
15165
15165
  var slots = column.slots;
15166
15166
  var labelField = radioOpts.labelField,
15167
15167
  checkMethod = radioOpts.checkMethod,
@@ -15169,7 +15169,7 @@ var Cell = {
15169
15169
  var row = params.row;
15170
15170
  var defaultSlot = slots ? slots["default"] : null;
15171
15171
  var radioSlot = slots ? slots.radio : null;
15172
- var isChecked = row === selectRow;
15172
+ var isChecked = row === selectRadioRow;
15173
15173
  var isVisible = !visibleMethod || visibleMethod({
15174
15174
  row: row
15175
15175
  });
@@ -15281,8 +15281,8 @@ var Cell = {
15281
15281
  column = params.column,
15282
15282
  isHidden = params.isHidden;
15283
15283
  var treeConfig = $table.treeConfig,
15284
- treeIndeterminates = $table.treeIndeterminates,
15285
- selectCheckboxRows = $table.selectCheckboxRows;
15284
+ treeIndeterminateMaps = $table.treeIndeterminateMaps,
15285
+ selectCheckboxMaps = $table.selectCheckboxMaps;
15286
15286
  var _$table$checkboxOpts = $table.checkboxOpts,
15287
15287
  labelField = _$table$checkboxOpts.labelField,
15288
15288
  checkMethod = _$table$checkboxOpts.checkMethod,
@@ -15298,7 +15298,8 @@ var Cell = {
15298
15298
  var isDisabled = !!checkMethod;
15299
15299
  var on;
15300
15300
  if (!isHidden) {
15301
- isChecked = $table.findRowIndexOf(selectCheckboxRows, row) > -1;
15301
+ var rowid = getRowid($table, row);
15302
+ isChecked = !!selectCheckboxMaps[rowid];
15302
15303
  on = {
15303
15304
  click: function click(evnt) {
15304
15305
  if (!isDisabled && isVisible) {
@@ -15313,7 +15314,7 @@ var Cell = {
15313
15314
  });
15314
15315
  }
15315
15316
  if (treeConfig) {
15316
- indeterminate = $table.findRowIndexOf(treeIndeterminates, row) > -1;
15317
+ indeterminate = !!treeIndeterminateMaps[rowid];
15317
15318
  }
15318
15319
  }
15319
15320
  var checkboxParams = _objectSpread2(_objectSpread2({}, params), {}, {
@@ -15354,7 +15355,7 @@ var Cell = {
15354
15355
  column = params.column,
15355
15356
  isHidden = params.isHidden;
15356
15357
  var treeConfig = $table.treeConfig,
15357
- treeIndeterminates = $table.treeIndeterminates,
15358
+ treeIndeterminateMaps = $table.treeIndeterminateMaps,
15358
15359
  checkboxOpts = $table.checkboxOpts;
15359
15360
  var labelField = checkboxOpts.labelField,
15360
15361
  checkField = checkboxOpts.checkField,
@@ -15372,6 +15373,7 @@ var Cell = {
15372
15373
  var isDisabled = !!checkMethod;
15373
15374
  var on;
15374
15375
  if (!isHidden) {
15376
+ var rowid = getRowid($table, row);
15375
15377
  isChecked = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(row, checkField);
15376
15378
  on = {
15377
15379
  click: function click(evnt) {
@@ -15387,7 +15389,7 @@ var Cell = {
15387
15389
  });
15388
15390
  }
15389
15391
  if (treeConfig) {
15390
- isIndeterminate = $table.findRowIndexOf(treeIndeterminates, row) > -1;
15392
+ isIndeterminate = !!treeIndeterminateMaps[rowid];
15391
15393
  }
15392
15394
  }
15393
15395
  var checkboxParams = _objectSpread2(_objectSpread2({}, params), {}, {
@@ -15431,8 +15433,8 @@ var Cell = {
15431
15433
  row = params.row,
15432
15434
  column = params.column;
15433
15435
  var expandOpts = $table.expandOpts,
15434
- rowExpandeds = $table.rowExpandeds,
15435
- expandLazyLoadeds = $table.expandLazyLoadeds;
15436
+ rowExpandedMaps = $table.rowExpandedMaps,
15437
+ rowExpandLazyLoadedMaps = $table.rowExpandLazyLoadedMaps;
15436
15438
  var lazy = expandOpts.lazy,
15437
15439
  labelField = expandOpts.labelField,
15438
15440
  iconLoaded = expandOpts.iconLoaded,
@@ -15448,9 +15450,10 @@ var Cell = {
15448
15450
  return $table.callSlot(slots.icon, params, h);
15449
15451
  }
15450
15452
  if (!isHidden) {
15451
- isAceived = $table.findRowIndexOf(rowExpandeds, params.row) > -1;
15453
+ var rowid = getRowid($table, row);
15454
+ isAceived = !!rowExpandedMaps[rowid];
15452
15455
  if (lazy) {
15453
- isLazyLoaded = $table.findRowIndexOf(expandLazyLoadeds, row) > -1;
15456
+ isLazyLoaded = !!rowExpandLazyLoadedMaps[rowid];
15454
15457
  }
15455
15458
  }
15456
15459
  return [showIcon && (!visibleMethod || visibleMethod(params)) ? h('span', {
@@ -15709,7 +15712,6 @@ var Cell = {
15709
15712
 
15710
15713
 
15711
15714
 
15712
-
15713
15715
 
15714
15716
 
15715
15717
  var setCellValue = utils.setCellValue,
@@ -15758,12 +15760,16 @@ function getCustomStorageMap(key) {
15758
15760
  _v: version
15759
15761
  };
15760
15762
  }
15761
- function getRecoverRow(_vm, list) {
15762
- var fullAllDataRowMap = _vm.fullAllDataRowMap;
15763
- return list.filter(function (row) {
15764
- return fullAllDataRowMap.has(row);
15763
+ var getRecoverRowMaps = function getRecoverRowMaps(_vm, keyMaps) {
15764
+ var fullAllDataRowIdData = _vm.fullAllDataRowIdData;
15765
+ var restKeys = {};
15766
+ external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().each(keyMaps, function (row, rowid) {
15767
+ if (fullAllDataRowIdData[rowid]) {
15768
+ restKeys[rowid] = row;
15769
+ }
15765
15770
  });
15766
- }
15771
+ return restKeys;
15772
+ };
15767
15773
  function handleReserveRow(_vm, reserveRowMap) {
15768
15774
  var fullDataRowIdData = _vm.fullDataRowIdData;
15769
15775
  var reserveList = [];
@@ -16419,7 +16425,8 @@ var Methods = {
16419
16425
  fullDataRowIdData = this.fullDataRowIdData,
16420
16426
  fullDataRowMap = this.fullDataRowMap,
16421
16427
  fullAllDataRowMap = this.fullAllDataRowMap,
16422
- fullAllDataRowIdData = this.fullAllDataRowIdData;
16428
+ fullAllDataRowIdData = this.fullAllDataRowIdData,
16429
+ sourceDataRowIdData = this.sourceDataRowIdData;
16423
16430
  var transform = treeOpts.transform,
16424
16431
  mapChildrenField = treeOpts.mapChildrenField;
16425
16432
  var childrenField = treeOpts.children || treeOpts.childrenField;
@@ -16436,6 +16443,10 @@ var Methods = {
16436
16443
  if (matchObj) {
16437
16444
  matchObj.item[childrenField] = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().clone(rows, true);
16438
16445
  }
16446
+ rows.forEach(function (childRow) {
16447
+ var rowid = getRowid(_this12, childRow);
16448
+ sourceDataRowIdData[rowid] = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().clone(childRow, true);
16449
+ });
16439
16450
  }
16440
16451
  external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree(rows, function (childRow, index, items, path, parent, nodes) {
16441
16452
  var rowid = getRowid(_this12, childRow);
@@ -16924,14 +16935,14 @@ var Methods = {
16924
16935
  * 用于多选行,获取已选中的数据
16925
16936
  */
16926
16937
  getCheckboxRecords: function getCheckboxRecords(isFull) {
16927
- var _this17 = this;
16928
16938
  var tableFullData = this.tableFullData,
16929
16939
  afterFullData = this.afterFullData,
16930
16940
  treeConfig = this.treeConfig,
16931
16941
  treeOpts = this.treeOpts,
16932
16942
  checkboxOpts = this.checkboxOpts,
16933
16943
  tableFullTreeData = this.tableFullTreeData,
16934
- afterTreeFullData = this.afterTreeFullData;
16944
+ afterTreeFullData = this.afterTreeFullData,
16945
+ afterFullRowMaps = this.afterFullRowMaps;
16935
16946
  var transform = treeOpts.transform,
16936
16947
  mapChildrenField = treeOpts.mapChildrenField;
16937
16948
  var checkField = checkboxOpts.checkField;
@@ -16951,18 +16962,13 @@ var Methods = {
16951
16962
  });
16952
16963
  }
16953
16964
  } else {
16954
- var selectCheckboxRows = this.selectCheckboxRows;
16955
- if (treeConfig) {
16956
- rowList = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().filterTree(currTableData, function (row) {
16957
- return _this17.findRowIndexOf(selectCheckboxRows, row) > -1;
16958
- }, {
16959
- children: transform ? mapChildrenField : childrenField
16960
- });
16961
- } else {
16962
- rowList = currTableData.filter(function (row) {
16963
- return _this17.findRowIndexOf(selectCheckboxRows, row) > -1;
16964
- });
16965
- }
16965
+ var selectCheckboxMaps = this.selectCheckboxMaps,
16966
+ fullDataRowIdData = this.fullDataRowIdData;
16967
+ external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().each(selectCheckboxMaps, function (row, rowid) {
16968
+ if (isFull ? fullDataRowIdData[rowid] : afterFullRowMaps[rowid]) {
16969
+ rowList.push(row);
16970
+ }
16971
+ });
16966
16972
  }
16967
16973
  return rowList;
16968
16974
  },
@@ -16971,17 +16977,20 @@ var Methods = {
16971
16977
  * @returns
16972
16978
  */
16973
16979
  handleVirtualTreeToList: function handleVirtualTreeToList() {
16980
+ var _this17 = this;
16974
16981
  var treeOpts = this.treeOpts,
16975
16982
  treeConfig = this.treeConfig,
16976
- treeExpandeds = this.treeExpandeds,
16983
+ treeExpandedMaps = this.treeExpandedMaps,
16977
16984
  afterTreeFullData = this.afterTreeFullData,
16978
16985
  afterFullData = this.afterFullData;
16979
16986
  if (treeConfig && treeOpts.transform) {
16980
16987
  var fullData = [];
16981
- var expandMaps = new Map();
16988
+ var expandMaps = {};
16982
16989
  external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree(afterTreeFullData, function (row, index, items, path, parent) {
16983
- if (!parent || expandMaps.has(parent) && treeExpandeds.indexOf(parent) > -1) {
16984
- expandMaps.set(row, 1);
16990
+ var rowid = getRowid(_this17, row);
16991
+ var parentRowid = getRowid(_this17, parent);
16992
+ if (!parent || expandMaps[parentRowid] && treeExpandedMaps[parentRowid]) {
16993
+ expandMaps[rowid] = 1;
16985
16994
  fullData.push(row);
16986
16995
  }
16987
16996
  }, {
@@ -17211,6 +17220,7 @@ var Methods = {
17211
17220
  afterTreeFullData = this.afterTreeFullData,
17212
17221
  treeOpts = this.treeOpts;
17213
17222
  var childrenField = treeOpts.children || treeOpts.childrenField;
17223
+ var fullMaps = {};
17214
17224
  if (treeConfig) {
17215
17225
  external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree(afterTreeFullData, function (row, index, items, path) {
17216
17226
  var rowid = getRowid(_this19, row);
@@ -17236,6 +17246,7 @@ var Methods = {
17236
17246
  fullAllDataRowIdData[rowid] = rest;
17237
17247
  fullDataRowIdData[rowid] = rest;
17238
17248
  }
17249
+ fullMaps[rowid] = row;
17239
17250
  }, {
17240
17251
  children: treeOpts.transform ? treeOpts.mapChildrenField : childrenField
17241
17252
  });
@@ -17262,8 +17273,10 @@ var Methods = {
17262
17273
  fullAllDataRowIdData[rowid] = rest;
17263
17274
  fullDataRowIdData[rowid] = rest;
17264
17275
  }
17276
+ fullMaps[rowid] = row;
17265
17277
  });
17266
17278
  }
17279
+ this.afterFullRowMaps = fullMaps;
17267
17280
  },
17268
17281
  /**
17269
17282
  * 只对 tree-config 有效,获取行的父级
@@ -19005,15 +19018,24 @@ var Methods = {
19005
19018
  * 获取复选框半选状态的行数据
19006
19019
  */
19007
19020
  getCheckboxIndeterminateRecords: function getCheckboxIndeterminateRecords(isFull) {
19008
- var _this31 = this;
19009
19021
  var treeConfig = this.treeConfig,
19010
- treeIndeterminates = this.treeIndeterminates,
19022
+ treeIndeterminateMaps = this.treeIndeterminateMaps,
19011
19023
  fullDataRowIdData = this.fullDataRowIdData;
19012
19024
  if (treeConfig) {
19013
- return isFull ? treeIndeterminates.slice(0) : treeIndeterminates.filter(function (row) {
19014
- var rowid = getRowid(_this31, row);
19015
- return fullDataRowIdData[rowid];
19025
+ var fullRest = [];
19026
+ var defRest = [];
19027
+ external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().each(treeIndeterminateMaps, function (item, rowid) {
19028
+ if (item) {
19029
+ fullRest.push(item);
19030
+ if (fullDataRowIdData[rowid]) {
19031
+ defRest.push(item);
19032
+ }
19033
+ }
19016
19034
  });
19035
+ if (isFull) {
19036
+ return fullRest;
19037
+ }
19038
+ return defRest;
19017
19039
  }
19018
19040
  return [];
19019
19041
  },
@@ -19038,12 +19060,12 @@ var Methods = {
19038
19060
  }
19039
19061
  },
19040
19062
  handleCheckedCheckboxRow: function handleCheckedCheckboxRow(rows, value, isForce) {
19041
- var _this32 = this;
19063
+ var _this31 = this;
19042
19064
  if (rows && !external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isArray(rows)) {
19043
19065
  rows = [rows];
19044
19066
  }
19045
19067
  rows.forEach(function (row) {
19046
- return _this32.handleSelectRow({
19068
+ return _this31.handleSelectRow({
19047
19069
  row: row
19048
19070
  }, !!value, isForce);
19049
19071
  });
@@ -19058,52 +19080,59 @@ var Methods = {
19058
19080
  return this.handleCheckedCheckboxRow(rows, value, true);
19059
19081
  },
19060
19082
  isCheckedByCheckboxRow: function isCheckedByCheckboxRow(row) {
19061
- var selectCheckboxRows = this.selectCheckboxRows;
19083
+ var selectCheckboxMaps = this.selectCheckboxMaps;
19062
19084
  var checkField = this.checkboxOpts.checkField;
19063
19085
  if (checkField) {
19064
19086
  return external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(row, checkField);
19065
19087
  }
19066
- return this.findRowIndexOf(selectCheckboxRows, row) > -1;
19088
+ return !!selectCheckboxMaps[getRowid(this, row)];
19067
19089
  },
19068
19090
  isIndeterminateByCheckboxRow: function isIndeterminateByCheckboxRow(row) {
19069
- var treeIndeterminates = this.treeIndeterminates;
19070
- return this.findRowIndexOf(treeIndeterminates, row) > -1 && !this.isCheckedByCheckboxRow(row);
19091
+ var treeIndeterminateMaps = this.treeIndeterminateMaps;
19092
+ return !!treeIndeterminateMaps[getRowid(this, row)] && !this.isCheckedByCheckboxRow(row);
19071
19093
  },
19072
19094
  /**
19073
19095
  * 多选,行选中事件
19074
19096
  * value 选中true 不选false 半选-1
19075
19097
  */
19076
19098
  handleSelectRow: function handleSelectRow(_ref6, value, isForce) {
19077
- var _this33 = this;
19099
+ var _this32 = this;
19078
19100
  var row = _ref6.row;
19079
- var selectCheckboxRows = this.selectCheckboxRows,
19101
+ var selectCheckboxMaps = this.selectCheckboxMaps,
19080
19102
  afterFullData = this.afterFullData,
19081
19103
  treeConfig = this.treeConfig,
19082
19104
  treeOpts = this.treeOpts,
19083
- treeIndeterminates = this.treeIndeterminates,
19105
+ treeIndeterminateMaps = this.treeIndeterminateMaps,
19084
19106
  checkboxOpts = this.checkboxOpts;
19085
19107
  var checkField = checkboxOpts.checkField,
19086
19108
  checkStrictly = checkboxOpts.checkStrictly,
19087
19109
  checkMethod = checkboxOpts.checkMethod;
19110
+ var selectRowMaps = _objectSpread2({}, selectCheckboxMaps);
19088
19111
  var childrenField = treeOpts.children || treeOpts.childrenField;
19112
+ var indeterminateField = checkboxOpts.indeterminateField || checkboxOpts.halfField;
19113
+ var rowid = getRowid(this, row);
19089
19114
  if (checkField) {
19090
19115
  if (treeConfig && !checkStrictly) {
19091
19116
  if (value === -1) {
19092
- if (this.findRowIndexOf(treeIndeterminates, row) === -1) {
19093
- treeIndeterminates.push(row);
19117
+ if (!treeIndeterminateMaps[rowid]) {
19118
+ if (indeterminateField) {
19119
+ external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().set(row, indeterminateField, true);
19120
+ }
19121
+ treeIndeterminateMaps[rowid] = row;
19094
19122
  }
19095
19123
  external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().set(row, checkField, false);
19096
19124
  } else {
19097
19125
  // 更新子节点状态
19098
19126
  external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree([row], function (item) {
19099
- if (_this33.eqRow(item, row) || isForce || !checkMethod || checkMethod({
19127
+ if (_this32.eqRow(item, row) || isForce || !checkMethod || checkMethod({
19100
19128
  row: item
19101
19129
  })) {
19102
19130
  external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().set(item, checkField, value);
19103
- external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().remove(treeIndeterminates, function (half) {
19104
- return _this33.eqRow(half, item);
19105
- });
19106
- _this33.handleCheckboxReserveRow(row, value);
19131
+ if (indeterminateField) {
19132
+ external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().set(row, indeterminateField, false);
19133
+ }
19134
+ delete treeIndeterminateMaps[getRowid(_this32, item)];
19135
+ _this32.handleCheckboxReserveRow(row, value);
19107
19136
  }
19108
19137
  }, {
19109
19138
  children: childrenField
@@ -19111,30 +19140,48 @@ var Methods = {
19111
19140
  }
19112
19141
  // 如果存在父节点,更新父节点状态
19113
19142
  var matchObj = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().findTree(afterFullData, function (item) {
19114
- return _this33.eqRow(item, row);
19143
+ return _this32.eqRow(item, row);
19115
19144
  }, {
19116
19145
  children: childrenField
19117
19146
  });
19118
19147
  if (matchObj && matchObj.parent) {
19119
19148
  var parentStatus;
19120
- var vItems = !isForce && checkMethod ? matchObj.items.filter(function (item) {
19121
- return checkMethod({
19122
- row: item
19149
+ var vItems = [];
19150
+ var vItemMaps = {};
19151
+ if (!isForce && checkMethod) {
19152
+ matchObj.items.forEach(function (item) {
19153
+ if (checkMethod({
19154
+ row: item
19155
+ })) {
19156
+ var itemRid = getRowid(_this32, item);
19157
+ vItemMaps[itemRid] = item;
19158
+ vItems.push(item);
19159
+ }
19123
19160
  });
19124
- }) : matchObj.items;
19161
+ } else {
19162
+ matchObj.items.forEach(function (item) {
19163
+ var itemRid = getRowid(_this32, item);
19164
+ vItemMaps[itemRid] = item;
19165
+ vItems.push(item);
19166
+ });
19167
+ }
19125
19168
  var indeterminatesItem = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().find(matchObj.items, function (item) {
19126
- return _this33.findRowIndexOf(treeIndeterminates, item) > -1;
19169
+ return !!treeIndeterminateMaps[getRowid(_this32, item)];
19127
19170
  });
19128
19171
  if (indeterminatesItem) {
19129
19172
  parentStatus = -1;
19130
19173
  } else {
19131
- var selectItems = matchObj.items.filter(function (item) {
19132
- return external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(item, checkField);
19174
+ var selectItems = [];
19175
+ matchObj.items.forEach(function (item) {
19176
+ if (external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(item, checkField)) {
19177
+ selectItems.push(item);
19178
+ }
19133
19179
  });
19134
19180
  parentStatus = selectItems.filter(function (item) {
19135
- return _this33.findRowIndexOf(vItems, item) > -1;
19181
+ return vItemMaps[getRowid(_this32, item)];
19136
19182
  }).length === vItems.length ? true : selectItems.length || value === -1 ? -1 : false;
19137
19183
  }
19184
+ this.selectCheckboxMaps = selectRowMaps;
19138
19185
  return this.handleSelectRow({
19139
19186
  row: matchObj.parent
19140
19187
  }, parentStatus, isForce);
@@ -19150,29 +19197,34 @@ var Methods = {
19150
19197
  } else {
19151
19198
  if (treeConfig && !checkStrictly) {
19152
19199
  if (value === -1) {
19153
- if (this.findRowIndexOf(treeIndeterminates, row) === -1) {
19154
- treeIndeterminates.push(row);
19200
+ if (!treeIndeterminateMaps[rowid]) {
19201
+ if (indeterminateField) {
19202
+ external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().set(row, indeterminateField, true);
19203
+ }
19204
+ treeIndeterminateMaps[rowid] = row;
19205
+ }
19206
+ if (selectRowMaps[rowid]) {
19207
+ delete selectRowMaps[rowid];
19155
19208
  }
19156
- external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().remove(selectCheckboxRows, function (item) {
19157
- return _this33.eqRow(item, row);
19158
- });
19159
19209
  } else {
19160
19210
  // 更新子节点状态
19161
19211
  external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree([row], function (item) {
19162
- if (_this33.eqRow(item, row) || isForce || !checkMethod || checkMethod({
19212
+ var itemRid = getRowid(_this32, item);
19213
+ if (_this32.eqRow(item, row) || isForce || !checkMethod || checkMethod({
19163
19214
  row: item
19164
19215
  })) {
19165
19216
  if (value) {
19166
- selectCheckboxRows.push(item);
19217
+ selectRowMaps[itemRid] = item;
19167
19218
  } else {
19168
- external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().remove(selectCheckboxRows, function (select) {
19169
- return _this33.eqRow(select, item);
19170
- });
19219
+ if (selectRowMaps[itemRid]) {
19220
+ delete selectRowMaps[itemRid];
19221
+ }
19171
19222
  }
19172
- external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().remove(treeIndeterminates, function (half) {
19173
- return _this33.eqRow(half, item);
19174
- });
19175
- _this33.handleCheckboxReserveRow(row, value);
19223
+ if (indeterminateField) {
19224
+ external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().set(row, indeterminateField, false);
19225
+ }
19226
+ delete treeIndeterminateMaps[getRowid(_this32, item)];
19227
+ _this32.handleCheckboxReserveRow(row, value);
19176
19228
  }
19177
19229
  }, {
19178
19230
  children: childrenField
@@ -19180,30 +19232,49 @@ var Methods = {
19180
19232
  }
19181
19233
  // 如果存在父节点,更新父节点状态
19182
19234
  var _matchObj = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().findTree(afterFullData, function (item) {
19183
- return _this33.eqRow(item, row);
19235
+ return _this32.eqRow(item, row);
19184
19236
  }, {
19185
19237
  children: childrenField
19186
19238
  });
19187
19239
  if (_matchObj && _matchObj.parent) {
19188
19240
  var _parentStatus;
19189
- var _vItems = !isForce && checkMethod ? _matchObj.items.filter(function (item) {
19190
- return checkMethod({
19191
- row: item
19241
+ var _vItems = [];
19242
+ var _vItemMaps = {};
19243
+ if (!isForce && checkMethod) {
19244
+ _matchObj.items.forEach(function (item) {
19245
+ if (checkMethod({
19246
+ row: item
19247
+ })) {
19248
+ var itemRid = getRowid(_this32, item);
19249
+ _vItemMaps[itemRid] = item;
19250
+ _vItems.push(item);
19251
+ }
19192
19252
  });
19193
- }) : _matchObj.items;
19253
+ } else {
19254
+ _matchObj.items.forEach(function (item) {
19255
+ var itemRid = getRowid(_this32, item);
19256
+ _vItemMaps[itemRid] = item;
19257
+ _vItems.push(item);
19258
+ });
19259
+ }
19194
19260
  var _indeterminatesItem = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().find(_matchObj.items, function (item) {
19195
- return _this33.findRowIndexOf(treeIndeterminates, item) > -1;
19261
+ return !!treeIndeterminateMaps[getRowid(_this32, item)];
19196
19262
  });
19197
19263
  if (_indeterminatesItem) {
19198
19264
  _parentStatus = -1;
19199
19265
  } else {
19200
- var _selectItems = _matchObj.items.filter(function (item) {
19201
- return _this33.findRowIndexOf(selectCheckboxRows, item) > -1;
19266
+ var _selectItems = [];
19267
+ _matchObj.items.forEach(function (item) {
19268
+ var itemRid = getRowid(_this32, item);
19269
+ if (selectRowMaps[itemRid]) {
19270
+ _selectItems.push(item);
19271
+ }
19202
19272
  });
19203
19273
  _parentStatus = _selectItems.filter(function (item) {
19204
- return _this33.findRowIndexOf(_vItems, item) > -1;
19274
+ return _vItemMaps[getRowid(_this32, item)];
19205
19275
  }).length === _vItems.length ? true : _selectItems.length || value === -1 ? -1 : false;
19206
19276
  }
19277
+ this.selectCheckboxMaps = selectRowMaps;
19207
19278
  return this.handleSelectRow({
19208
19279
  row: _matchObj.parent
19209
19280
  }, _parentStatus, isForce);
@@ -19213,26 +19284,32 @@ var Methods = {
19213
19284
  row: row
19214
19285
  })) {
19215
19286
  if (value) {
19216
- if (this.findRowIndexOf(selectCheckboxRows, row) === -1) {
19217
- selectCheckboxRows.push(row);
19287
+ if (!selectRowMaps[rowid]) {
19288
+ selectRowMaps[rowid] = row;
19218
19289
  }
19219
19290
  } else {
19220
- external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().remove(selectCheckboxRows, function (item) {
19221
- return _this33.eqRow(item, row);
19222
- });
19291
+ if (selectRowMaps[rowid]) {
19292
+ delete selectRowMaps[rowid];
19293
+ }
19223
19294
  }
19224
19295
  this.handleCheckboxReserveRow(row, value);
19225
19296
  }
19226
19297
  }
19227
19298
  }
19299
+ this.selectCheckboxMaps = selectRowMaps;
19228
19300
  this.checkSelectionStatus();
19229
19301
  },
19230
19302
  handleToggleCheckRowEvent: function handleToggleCheckRowEvent(evnt, params) {
19231
- var selectCheckboxRows = this.selectCheckboxRows,
19303
+ var selectCheckboxMaps = this.selectCheckboxMaps,
19232
19304
  checkboxOpts = this.checkboxOpts;
19233
19305
  var checkField = checkboxOpts.checkField;
19234
19306
  var row = params.row;
19235
- var value = checkField ? !external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(row, checkField) : this.findRowIndexOf(selectCheckboxRows, row) === -1;
19307
+ var value = false;
19308
+ if (checkField) {
19309
+ value = !external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(row, checkField);
19310
+ } else {
19311
+ value = !selectCheckboxMaps[getRowid(this, row)];
19312
+ }
19236
19313
  if (evnt) {
19237
19314
  this.triggerCheckRowEvent(evnt, params, value);
19238
19315
  } else {
@@ -19277,33 +19354,42 @@ var Methods = {
19277
19354
  * 多选,切换某一行的选中状态
19278
19355
  */
19279
19356
  toggleCheckboxRow: function toggleCheckboxRow(row) {
19280
- var selectCheckboxRows = this.selectCheckboxRows,
19357
+ var selectCheckboxMaps = this.selectCheckboxMaps,
19281
19358
  checkboxOpts = this.checkboxOpts;
19282
19359
  var checkField = checkboxOpts.checkField;
19283
- var value = checkField ? !external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(row, checkField) : this.findRowIndexOf(selectCheckboxRows, row) === -1;
19360
+ var value = checkField ? !external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(row, checkField) : !selectCheckboxMaps[getRowid(this, row)];
19284
19361
  this.handleSelectRow({
19285
19362
  row: row
19286
19363
  }, value, true);
19287
19364
  return this.$nextTick();
19288
19365
  },
19289
19366
  handleCheckedAllCheckboxRow: function handleCheckedAllCheckboxRow(value, isForce) {
19290
- var _this34 = this;
19367
+ var _this33 = this;
19291
19368
  var afterFullData = this.afterFullData,
19292
19369
  treeConfig = this.treeConfig,
19293
19370
  treeOpts = this.treeOpts,
19294
- selectCheckboxRows = this.selectCheckboxRows,
19371
+ selectCheckboxMaps = this.selectCheckboxMaps,
19295
19372
  checkboxReserveRowMap = this.checkboxReserveRowMap,
19296
- checkboxOpts = this.checkboxOpts;
19373
+ checkboxOpts = this.checkboxOpts,
19374
+ afterFullRowMaps = this.afterFullRowMaps;
19297
19375
  var checkField = checkboxOpts.checkField,
19298
19376
  reserve = checkboxOpts.reserve,
19299
19377
  checkStrictly = checkboxOpts.checkStrictly,
19300
19378
  checkMethod = checkboxOpts.checkMethod;
19301
19379
  var indeterminateField = checkboxOpts.indeterminateField || checkboxOpts.halfField;
19302
19380
  var childrenField = treeOpts.children || treeOpts.childrenField;
19303
- var selectRows = [];
19304
- var beforeSelection = treeConfig ? [] : selectCheckboxRows.filter(function (row) {
19305
- return _this34.findRowIndexOf(afterFullData, row) === -1;
19306
- });
19381
+ var selectRowMaps = {};
19382
+
19383
+ // 疑惑!
19384
+ if (!treeConfig) {
19385
+ external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().each(selectCheckboxMaps, function (row, rowid) {
19386
+ if (!afterFullRowMaps[rowid]) {
19387
+ selectRowMaps[rowid] = row;
19388
+ }
19389
+ });
19390
+ }
19391
+ // 疑惑!
19392
+
19307
19393
  if (checkStrictly) {
19308
19394
  this.isAllSelected = value;
19309
19395
  } else {
@@ -19317,7 +19403,7 @@ var Methods = {
19317
19403
  row: row
19318
19404
  })) {
19319
19405
  if (value) {
19320
- selectRows.push(row);
19406
+ selectRowMaps[getRowid(_this33, row)] = row;
19321
19407
  }
19322
19408
  external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().set(row, checkField, value);
19323
19409
  }
@@ -19349,7 +19435,7 @@ var Methods = {
19349
19435
  if (isForce || !checkMethod || checkMethod({
19350
19436
  row: row
19351
19437
  })) {
19352
- selectRows.push(row);
19438
+ selectRowMaps[getRowid(_this33, row)] = row;
19353
19439
  }
19354
19440
  }, {
19355
19441
  children: childrenField
@@ -19361,10 +19447,11 @@ var Methods = {
19361
19447
  */
19362
19448
  if (!isForce && checkMethod) {
19363
19449
  external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree(afterFullData, function (row) {
19450
+ var rowid = getRowid(_this33, row);
19364
19451
  if (checkMethod({
19365
19452
  row: row
19366
- }) ? 0 : _this34.findRowIndexOf(selectCheckboxRows, row) > -1) {
19367
- selectRows.push(row);
19453
+ }) ? 0 : selectCheckboxMaps[rowid]) {
19454
+ selectRowMaps[rowid] = row;
19368
19455
  }
19369
19456
  }, {
19370
19457
  children: childrenField
@@ -19379,13 +19466,18 @@ var Methods = {
19379
19466
  * 如果不存在选中方法,则添加所有数据到临时集合中
19380
19467
  */
19381
19468
  if (!isForce && checkMethod) {
19382
- selectRows = afterFullData.filter(function (row) {
19383
- return _this34.findRowIndexOf(selectCheckboxRows, row) > -1 || checkMethod({
19469
+ afterFullData.forEach(function (row) {
19470
+ var rowid = getRowid(_this33, row);
19471
+ if (selectCheckboxMaps[rowid] || checkMethod({
19384
19472
  row: row
19385
- });
19473
+ })) {
19474
+ selectRowMaps[rowid] = row;
19475
+ }
19386
19476
  });
19387
19477
  } else {
19388
- selectRows = afterFullData.slice(0);
19478
+ afterFullData.forEach(function (row) {
19479
+ selectRowMaps[getRowid(_this33, row)] = row;
19480
+ });
19389
19481
  }
19390
19482
  } else {
19391
19483
  /**
@@ -19394,10 +19486,13 @@ var Methods = {
19394
19486
  * 如果不存在选中方法,无需处理,临时集合默认为空
19395
19487
  */
19396
19488
  if (!isForce && checkMethod) {
19397
- selectRows = afterFullData.filter(function (row) {
19398
- return checkMethod({
19489
+ afterFullData.forEach(function (row) {
19490
+ var rowid = getRowid(_this33, row);
19491
+ if (checkMethod({
19399
19492
  row: row
19400
- }) ? 0 : _this34.findRowIndexOf(selectCheckboxRows, row) > -1;
19493
+ }) ? 0 : selectCheckboxMaps[rowid]) {
19494
+ selectRowMaps[rowid] = row;
19495
+ }
19401
19496
  });
19402
19497
  }
19403
19498
  }
@@ -19405,18 +19500,19 @@ var Methods = {
19405
19500
  }
19406
19501
  if (reserve) {
19407
19502
  if (value) {
19408
- selectRows.forEach(function (row) {
19409
- checkboxReserveRowMap[getRowid(_this34, row)] = row;
19503
+ external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().each(selectRowMaps, function (row, rowid) {
19504
+ checkboxReserveRowMap[rowid] = row;
19410
19505
  });
19411
19506
  } else {
19412
19507
  afterFullData.forEach(function (row) {
19413
- return _this34.handleCheckboxReserveRow(row, false);
19508
+ return _this33.handleCheckboxReserveRow(row, false);
19414
19509
  });
19415
19510
  }
19416
19511
  }
19417
- this.selectCheckboxRows = checkField ? [] : beforeSelection.concat(selectRows);
19512
+ this.selectCheckboxMaps = checkField ? {} : selectRowMaps;
19418
19513
  }
19419
- this.treeIndeterminates = [];
19514
+ this.treeIndeterminateMaps = {};
19515
+ this.treeIndeterminateRowMaps = {};
19420
19516
  this.checkSelectionStatus();
19421
19517
  return this.$nextTick();
19422
19518
  },
@@ -19428,10 +19524,10 @@ var Methods = {
19428
19524
  return this.handleCheckedAllCheckboxRow(value, true);
19429
19525
  },
19430
19526
  checkSelectionStatus: function checkSelectionStatus() {
19431
- var _this35 = this;
19527
+ var _this34 = this;
19432
19528
  var afterFullData = this.afterFullData,
19433
- selectCheckboxRows = this.selectCheckboxRows,
19434
- treeIndeterminates = this.treeIndeterminates,
19529
+ selectCheckboxMaps = this.selectCheckboxMaps,
19530
+ treeIndeterminateMaps = this.treeIndeterminateMaps,
19435
19531
  checkboxOpts = this.checkboxOpts,
19436
19532
  treeConfig = this.treeConfig;
19437
19533
  var checkField = checkboxOpts.checkField,
@@ -19464,11 +19560,11 @@ var Methods = {
19464
19560
  if (treeConfig) {
19465
19561
  if (indeterminateField) {
19466
19562
  isIndeterminate = !isAllSelected && afterFullData.some(function (row) {
19467
- return external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(row, checkField) || external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(row, indeterminateField) || _this35.findRowIndexOf(treeIndeterminates, row) > -1;
19563
+ return external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(row, checkField) || external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(row, indeterminateField) || !!treeIndeterminateMaps[getRowid(_this34, row)];
19468
19564
  });
19469
19565
  } else {
19470
19566
  isIndeterminate = !isAllSelected && afterFullData.some(function (row) {
19471
- return external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(row, checkField) || _this35.findRowIndexOf(treeIndeterminates, row) > -1;
19567
+ return external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(row, checkField) || !!treeIndeterminateMaps[getRowid(_this34, row)];
19472
19568
  });
19473
19569
  }
19474
19570
  } else {
@@ -19490,22 +19586,23 @@ var Methods = {
19490
19586
  disableRows.push(row);
19491
19587
  return true;
19492
19588
  }
19493
- if (_this35.findRowIndexOf(selectCheckboxRows, row) > -1) {
19589
+ if (selectCheckboxMaps[getRowid(_this34, row)]) {
19494
19590
  checkRows.push(row);
19495
19591
  return true;
19496
19592
  }
19497
19593
  return false;
19498
19594
  } : function (row) {
19499
- return _this35.findRowIndexOf(selectCheckboxRows, row) > -1;
19595
+ return selectCheckboxMaps[getRowid(_this34, row)];
19500
19596
  });
19501
19597
  isAllSelected = isAllResolve && afterFullData.length !== disableRows.length;
19502
19598
  if (treeConfig) {
19503
19599
  isIndeterminate = !isAllSelected && afterFullData.some(function (row) {
19504
- return _this35.findRowIndexOf(treeIndeterminates, row) > -1 || _this35.findRowIndexOf(selectCheckboxRows, row) > -1;
19600
+ var itemRid = getRowid(_this34, row);
19601
+ return treeIndeterminateMaps[itemRid] || selectCheckboxMaps[itemRid];
19505
19602
  });
19506
19603
  } else {
19507
19604
  isIndeterminate = !isAllSelected && afterFullData.some(function (row) {
19508
- return _this35.findRowIndexOf(selectCheckboxRows, row) > -1;
19605
+ return selectCheckboxMaps[getRowid(_this34, row)];
19509
19606
  });
19510
19607
  }
19511
19608
  }
@@ -19521,17 +19618,17 @@ var Methods = {
19521
19618
  fullDataRowIdData = this.fullDataRowIdData,
19522
19619
  fullAllDataRowMap = this.fullAllDataRowMap,
19523
19620
  currentRow = this.currentRow,
19524
- selectRow = this.selectRow,
19621
+ selectRadioRow = this.selectRadioRow,
19525
19622
  radioReserveRow = this.radioReserveRow,
19526
19623
  radioOpts = this.radioOpts,
19527
19624
  checkboxOpts = this.checkboxOpts,
19528
- selectCheckboxRows = this.selectCheckboxRows,
19529
- rowExpandeds = this.rowExpandeds,
19530
- treeExpandeds = this.treeExpandeds,
19625
+ selectCheckboxMaps = this.selectCheckboxMaps,
19626
+ rowExpandedMaps = this.rowExpandedMaps,
19627
+ treeExpandedMaps = this.treeExpandedMaps,
19531
19628
  expandOpts = this.expandOpts;
19532
19629
  // 单选框
19533
- if (selectRow && !fullAllDataRowMap.has(selectRow)) {
19534
- this.selectRow = null; // 刷新单选行状态
19630
+ if (selectRadioRow && !fullAllDataRowMap.has(selectRadioRow)) {
19631
+ this.selectRadioRow = null; // 刷新单选行状态
19535
19632
  }
19536
19633
  // 还原保留选中状态
19537
19634
  if (radioOpts.reserve && radioReserveRow) {
@@ -19541,7 +19638,7 @@ var Methods = {
19541
19638
  }
19542
19639
  }
19543
19640
  // 复选框
19544
- this.selectCheckboxRows = getRecoverRow(this, selectCheckboxRows); // 刷新多选行状态
19641
+ this.selectCheckboxMaps = getRecoverRowMaps(this, selectCheckboxMaps); // 刷新多选行状态
19545
19642
  // 还原保留选中状态
19546
19643
  if (checkboxOpts.reserve) {
19547
19644
  this.handleCheckedCheckboxRow(handleReserveRow(this, this.checkboxReserveRowMap), true, true);
@@ -19550,13 +19647,13 @@ var Methods = {
19550
19647
  this.currentRow = null; // 刷新当前行状态
19551
19648
  }
19552
19649
  // 行展开
19553
- this.rowExpandeds = expandColumn ? getRecoverRow(this, rowExpandeds) : []; // 刷新行展开状态
19650
+ this.rowExpandedMaps = expandColumn ? getRecoverRowMaps(this, rowExpandedMaps) : []; // 刷新行展开状态
19554
19651
  // 还原保留状态
19555
19652
  if (expandColumn && expandOpts.reserve) {
19556
19653
  this.setRowExpand(handleReserveRow(this, this.rowExpandedReserveRowMap), true);
19557
19654
  }
19558
19655
  // 树展开
19559
- this.treeExpandeds = treeConfig ? getRecoverRow(this, treeExpandeds) : []; // 刷新树展开状态
19656
+ this.treeExpandedMaps = treeConfig ? getRecoverRowMaps(this, treeExpandedMaps) : []; // 刷新树展开状态
19560
19657
  if (treeConfig && treeOpts.reserve) {
19561
19658
  this.setTreeExpand(handleReserveRow(this, this.treeExpandedReserveRowMap), true);
19562
19659
  }
@@ -19614,7 +19711,7 @@ var Methods = {
19614
19711
  * 获取复选框保留选中的行
19615
19712
  */
19616
19713
  getCheckboxReserveRecords: function getCheckboxReserveRecords(isFull) {
19617
- var _this36 = this;
19714
+ var _this35 = this;
19618
19715
  var fullDataRowIdData = this.fullDataRowIdData,
19619
19716
  afterFullData = this.afterFullData,
19620
19717
  checkboxReserveRowMap = this.checkboxReserveRowMap,
@@ -19627,13 +19724,13 @@ var Methods = {
19627
19724
  var afterFullIdMaps = {};
19628
19725
  if (treeConfig) {
19629
19726
  external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree(afterFullData, function (row) {
19630
- afterFullIdMaps[getRowid(_this36, row)] = 1;
19727
+ afterFullIdMaps[getRowid(_this35, row)] = 1;
19631
19728
  }, {
19632
19729
  children: childrenField
19633
19730
  });
19634
19731
  } else {
19635
19732
  afterFullData.forEach(function (row) {
19636
- afterFullIdMaps[getRowid(_this36, row)] = 1;
19733
+ afterFullIdMaps[getRowid(_this35, row)] = 1;
19637
19734
  });
19638
19735
  }
19639
19736
  external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().each(checkboxReserveRowMap, function (oldRow, oldRowid) {
@@ -19692,7 +19789,7 @@ var Methods = {
19692
19789
  * 清空行为不管是否被禁用还是保留记录,都将彻底清空选中状态
19693
19790
  */
19694
19791
  clearCheckboxRow: function clearCheckboxRow() {
19695
- var _this37 = this;
19792
+ var _this36 = this;
19696
19793
  var tableFullData = this.tableFullData,
19697
19794
  treeConfig = this.treeConfig,
19698
19795
  treeOpts = this.treeOpts,
@@ -19718,13 +19815,13 @@ var Methods = {
19718
19815
  }
19719
19816
  if (reserve) {
19720
19817
  tableFullData.forEach(function (row) {
19721
- return _this37.handleCheckboxReserveRow(row, false);
19818
+ return _this36.handleCheckboxReserveRow(row, false);
19722
19819
  });
19723
19820
  }
19724
19821
  this.isAllSelected = false;
19725
19822
  this.isIndeterminate = false;
19726
- this.selectCheckboxRows = [];
19727
- this.treeIndeterminates = [];
19823
+ this.selectCheckboxMaps = {};
19824
+ this.treeIndeterminateMaps = {};
19728
19825
  return this.$nextTick();
19729
19826
  },
19730
19827
  /**
@@ -19749,7 +19846,7 @@ var Methods = {
19749
19846
  * 单选,行选中事件
19750
19847
  */
19751
19848
  triggerRadioRowEvent: function triggerRadioRowEvent(evnt, params) {
19752
- var oldValue = this.selectRow,
19849
+ var oldValue = this.selectRadioRow,
19753
19850
  radioOpts = this.radioOpts;
19754
19851
  var row = params.row;
19755
19852
  var newValue = row;
@@ -19802,7 +19899,7 @@ var Methods = {
19802
19899
  return this.$nextTick();
19803
19900
  },
19804
19901
  isCheckedByRadioRow: function isCheckedByRadioRow(row) {
19805
- return this.selectRow === row;
19902
+ return this.selectRadioRow === row;
19806
19903
  },
19807
19904
  handleCheckedRadioRow: function handleCheckedRadioRow(row, isForce) {
19808
19905
  var radioOpts = this.radioOpts;
@@ -19810,7 +19907,7 @@ var Methods = {
19810
19907
  if (row && (isForce || !checkMethod || checkMethod({
19811
19908
  row: row
19812
19909
  }))) {
19813
- this.selectRow = row;
19910
+ this.selectRadioRow = row;
19814
19911
  this.handleRadioReserveRow(row);
19815
19912
  }
19816
19913
  return this.$nextTick();
@@ -19840,7 +19937,7 @@ var Methods = {
19840
19937
  * 用于单选行,手动清空用户的选择
19841
19938
  */
19842
19939
  clearRadioRow: function clearRadioRow() {
19843
- this.selectRow = null;
19940
+ this.selectRadioRow = null;
19844
19941
  return this.$nextTick();
19845
19942
  },
19846
19943
  /**
@@ -19853,33 +19950,18 @@ var Methods = {
19853
19950
  * 用于单选行,获取当已选中的数据
19854
19951
  */
19855
19952
  getRadioRecord: function getRadioRecord(isFull) {
19856
- var treeConfig = this.treeConfig,
19857
- treeOpts = this.treeOpts,
19858
- selectRow = this.selectRow,
19953
+ var selectRadioRow = this.selectRadioRow,
19859
19954
  fullDataRowIdData = this.fullDataRowIdData,
19860
- afterFullData = this.afterFullData;
19861
- var childrenField = treeOpts.children || treeOpts.childrenField;
19862
- if (selectRow) {
19863
- var rowid = getRowid(this, selectRow);
19955
+ afterFullRowMaps = this.afterFullRowMaps;
19956
+ if (selectRadioRow) {
19957
+ var rowid = getRowid(this, selectRadioRow);
19864
19958
  if (isFull) {
19865
19959
  if (!fullDataRowIdData[rowid]) {
19866
- return selectRow;
19960
+ return selectRadioRow;
19867
19961
  }
19868
19962
  } else {
19869
- if (treeConfig) {
19870
- var rowkey = getRowkey(this);
19871
- var matchObj = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().findTree(afterFullData, function (row) {
19872
- return rowid === external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(row, rowkey);
19873
- }, {
19874
- children: childrenField
19875
- });
19876
- if (matchObj) {
19877
- return selectRow;
19878
- }
19879
- } else {
19880
- if (afterFullData.indexOf(selectRow) > -1) {
19881
- return selectRow;
19882
- }
19963
+ if (afterFullRowMaps[rowid]) {
19964
+ return selectRadioRow;
19883
19965
  }
19884
19966
  }
19885
19967
  }
@@ -19973,12 +20055,12 @@ var Methods = {
19973
20055
  * 如果存在规则,则校验
19974
20056
  */
19975
20057
  handleChangeCell: function handleChangeCell(evnt, params) {
19976
- var _this38 = this;
20058
+ var _this37 = this;
19977
20059
  this.checkValidate('blur')["catch"](function (e) {
19978
20060
  return e;
19979
20061
  }).then(function () {
19980
- _this38.handleActived(params, evnt).then(function () {
19981
- return _this38.checkValidate('change');
20062
+ _this37.handleActived(params, evnt).then(function () {
20063
+ return _this37.checkValidate('change');
19982
20064
  })["catch"](function (e) {
19983
20065
  return e;
19984
20066
  });
@@ -20072,7 +20154,7 @@ var Methods = {
20072
20154
  * 如果是双击模式,则激活为编辑状态
20073
20155
  */
20074
20156
  triggerCellDblclickEvent: function triggerCellDblclickEvent(evnt, params) {
20075
- var _this39 = this;
20157
+ var _this38 = this;
20076
20158
  var editStore = this.editStore,
20077
20159
  editConfig = this.editConfig,
20078
20160
  editOpts = this.editOpts;
@@ -20085,15 +20167,15 @@ var Methods = {
20085
20167
  this.checkValidate('blur')["catch"](function (e) {
20086
20168
  return e;
20087
20169
  }).then(function () {
20088
- _this39.handleActived(params, evnt).then(function () {
20089
- return _this39.checkValidate('change');
20170
+ _this38.handleActived(params, evnt).then(function () {
20171
+ return _this38.checkValidate('change');
20090
20172
  })["catch"](function (e) {
20091
20173
  return e;
20092
20174
  });
20093
20175
  });
20094
20176
  } else if (editOpts.mode === 'cell') {
20095
20177
  this.handleActived(params, evnt).then(function () {
20096
- return _this39.checkValidate('change');
20178
+ return _this38.checkValidate('change');
20097
20179
  })["catch"](function (e) {
20098
20180
  return e;
20099
20181
  });
@@ -20103,7 +20185,7 @@ var Methods = {
20103
20185
  this.emitEvent('cell-dblclick', params, evnt);
20104
20186
  },
20105
20187
  handleDefaultSort: function handleDefaultSort() {
20106
- var _this40 = this;
20188
+ var _this39 = this;
20107
20189
  var sortConfig = this.sortConfig,
20108
20190
  sortOpts = this.sortOpts;
20109
20191
  var defaultSort = sortOpts.defaultSort;
@@ -20116,7 +20198,7 @@ var Methods = {
20116
20198
  var field = item.field,
20117
20199
  order = item.order;
20118
20200
  if (field && order) {
20119
- var column = _this40.getColumnByField(field);
20201
+ var column = _this39.getColumnByField(field);
20120
20202
  if (column && column.sortable) {
20121
20203
  column.order = order;
20122
20204
  column.sortTime = Date.now() + index;
@@ -20163,7 +20245,7 @@ var Methods = {
20163
20245
  }
20164
20246
  },
20165
20247
  sort: function sort(sortConfs, sortOrder) {
20166
- var _this41 = this;
20248
+ var _this40 = this;
20167
20249
  var sortOpts = this.sortOpts;
20168
20250
  var multiple = sortOpts.multiple,
20169
20251
  remote = sortOpts.remote,
@@ -20189,14 +20271,14 @@ var Methods = {
20189
20271
  order = confs.order;
20190
20272
  var column = field;
20191
20273
  if (external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isString(field)) {
20192
- column = _this41.getColumnByField(field);
20274
+ column = _this40.getColumnByField(field);
20193
20275
  }
20194
20276
  if (column && (column.sortable || column.remoteSort)) {
20195
20277
  if (!firstSortColumn) {
20196
20278
  firstSortColumn = column;
20197
20279
  }
20198
20280
  if (orders.indexOf(order) === -1) {
20199
- order = getNextSortOrder(_this41, column);
20281
+ order = getNextSortOrder(_this40, column);
20200
20282
  }
20201
20283
  if (column.order !== order) {
20202
20284
  column.order = order;
@@ -20209,8 +20291,8 @@ var Methods = {
20209
20291
  this.handleTableData(true);
20210
20292
  }
20211
20293
  return this.$nextTick().then(function () {
20212
- _this41.updateCellAreas();
20213
- return _this41.updateStyle();
20294
+ _this40.updateCellAreas();
20295
+ return _this40.updateStyle();
20214
20296
  });
20215
20297
  }
20216
20298
  return this.$nextTick();
@@ -20323,17 +20405,19 @@ var Methods = {
20323
20405
  return rest && rest.expandLoaded;
20324
20406
  },
20325
20407
  clearRowExpandLoaded: function clearRowExpandLoaded(row) {
20326
- var _this42 = this;
20327
20408
  var expandOpts = this.expandOpts,
20328
- expandLazyLoadeds = this.expandLazyLoadeds,
20409
+ rowExpandLazyLoadedMaps = this.rowExpandLazyLoadedMaps,
20329
20410
  fullAllDataRowMap = this.fullAllDataRowMap;
20330
20411
  var lazy = expandOpts.lazy;
20412
+ var rowid = getRowid(this, row);
20331
20413
  var rest = fullAllDataRowMap.get(row);
20332
20414
  if (lazy && rest) {
20333
20415
  rest.expandLoaded = false;
20334
- external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().remove(expandLazyLoadeds, function (item) {
20335
- return _this42.eqRow(item, row);
20336
- });
20416
+ var rowTempExpandLazyLoadedMaps = _objectSpread2({}, rowExpandLazyLoadedMaps);
20417
+ if (rowTempExpandLazyLoadedMaps[rowid]) {
20418
+ delete rowTempExpandLazyLoadedMaps[rowid];
20419
+ }
20420
+ this.rowExpandLazyLoadedMaps = rowTempExpandLazyLoadedMaps;
20337
20421
  }
20338
20422
  return this.$nextTick();
20339
20423
  },
@@ -20342,13 +20426,14 @@ var Methods = {
20342
20426
  * @param {Row} row 行对象
20343
20427
  */
20344
20428
  reloadRowExpand: function reloadRowExpand(row) {
20345
- var _this43 = this;
20429
+ var _this41 = this;
20346
20430
  var expandOpts = this.expandOpts,
20347
- expandLazyLoadeds = this.expandLazyLoadeds;
20431
+ rowExpandLazyLoadedMaps = this.rowExpandLazyLoadedMaps;
20348
20432
  var lazy = expandOpts.lazy;
20349
- if (lazy && this.findRowIndexOf(expandLazyLoadeds, row) === -1) {
20433
+ var rowid = getRowid(this, row);
20434
+ if (lazy && !rowExpandLazyLoadedMaps[rowid]) {
20350
20435
  this.clearRowExpandLoaded(row).then(function () {
20351
- return _this43.handleAsyncRowExpand(row);
20436
+ return _this41.handleAsyncRowExpand(row);
20352
20437
  });
20353
20438
  }
20354
20439
  return this.$nextTick();
@@ -20363,11 +20448,12 @@ var Methods = {
20363
20448
  */
20364
20449
  triggerRowExpandEvent: function triggerRowExpandEvent(evnt, params) {
20365
20450
  var expandOpts = this.expandOpts,
20366
- expandLazyLoadeds = this.expandLazyLoadeds,
20451
+ rowExpandLazyLoadedMaps = this.rowExpandLazyLoadedMaps,
20367
20452
  column = this.expandColumn;
20368
20453
  var row = params.row;
20369
20454
  var lazy = expandOpts.lazy;
20370
- if (!lazy || this.findRowIndexOf(expandLazyLoadeds, row) === -1) {
20455
+ var rowid = getRowid(this, row);
20456
+ if (!lazy || !rowExpandLazyLoadedMaps[rowid]) {
20371
20457
  var expanded = !this.isExpandByRow(row);
20372
20458
  var columnIndex = this.getColumnIndex(column);
20373
20459
  var $columnIndex = this.getVMColumnIndex(column);
@@ -20432,26 +20518,43 @@ var Methods = {
20432
20518
  return this.setRowExpand(expandedRows, expanded);
20433
20519
  },
20434
20520
  handleAsyncRowExpand: function handleAsyncRowExpand(row) {
20435
- var _this44 = this;
20436
- var rest = this.fullAllDataRowMap.get(row);
20521
+ var _this42 = this;
20522
+ var fullAllDataRowMap = this.fullAllDataRowMap,
20523
+ expandOpts = this.expandOpts;
20524
+ var rest = fullAllDataRowMap.get(row);
20437
20525
  return new Promise(function (resolve) {
20438
- _this44.expandLazyLoadeds.push(row);
20439
- _this44.expandOpts.loadMethod({
20440
- $table: _this44,
20441
- row: row,
20442
- rowIndex: _this44.getRowIndex(row),
20443
- $rowIndex: _this44.getVMRowIndex(row)
20444
- }).then(function () {
20445
- rest.expandLoaded = true;
20446
- _this44.rowExpandeds.push(row);
20447
- })["catch"](function () {
20448
- rest.expandLoaded = false;
20449
- })["finally"](function () {
20450
- external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().remove(_this44.expandLazyLoadeds, function (item) {
20451
- return _this44.eqRow(item, row);
20526
+ var loadMethod = expandOpts.loadMethod;
20527
+ if (loadMethod) {
20528
+ var rowExpandLazyLoadedMaps = _this42.rowExpandLazyLoadedMaps;
20529
+ var rowTempExpandLazyLoadedMaps = _objectSpread2({}, rowExpandLazyLoadedMaps);
20530
+ var rowid = getRowid(_this42, row);
20531
+ rowTempExpandLazyLoadedMaps[rowid] = row;
20532
+ _this42.rowExpandLazyLoadedMaps = rowTempExpandLazyLoadedMaps;
20533
+ loadMethod({
20534
+ $table: _this42,
20535
+ row: row,
20536
+ rowIndex: _this42.getRowIndex(row),
20537
+ $rowIndex: _this42.getVMRowIndex(row)
20538
+ }).then(function () {
20539
+ rest.expandLoaded = true;
20540
+ var rowExpandedMaps = _this42.rowExpandedMaps;
20541
+ var rowTempExpandedMaps = _objectSpread2({}, rowExpandedMaps);
20542
+ rowTempExpandedMaps[rowid] = row;
20543
+ _this42.rowExpandedMaps = rowTempExpandedMaps;
20544
+ })["catch"](function () {
20545
+ rest.expandLoaded = false;
20546
+ })["finally"](function () {
20547
+ var rowExpandLazyLoadedMaps = _this42.rowExpandLazyLoadedMaps;
20548
+ var rowTempExpandLazyLoadedMaps = _objectSpread2({}, rowExpandLazyLoadedMaps);
20549
+ if (rowTempExpandLazyLoadedMaps[rowid]) {
20550
+ delete rowTempExpandLazyLoadedMaps[rowid];
20551
+ }
20552
+ _this42.rowExpandLazyLoadedMaps = rowTempExpandLazyLoadedMaps;
20553
+ resolve(_this42.$nextTick().then(_this42.recalculate));
20452
20554
  });
20453
- resolve(_this44.$nextTick().then(_this44.recalculate));
20454
- });
20555
+ } else {
20556
+ resolve();
20557
+ }
20455
20558
  });
20456
20559
  },
20457
20560
  /**
@@ -20462,12 +20565,13 @@ var Methods = {
20462
20565
  * @param {Boolean} expanded 是否展开
20463
20566
  */
20464
20567
  setRowExpand: function setRowExpand(rows, expanded) {
20465
- var _this45 = this;
20466
- var fullAllDataRowMap = this.fullAllDataRowMap,
20467
- expandLazyLoadeds = this.expandLazyLoadeds,
20568
+ var _this43 = this;
20569
+ var rowExpandedMaps = this.rowExpandedMaps,
20570
+ fullAllDataRowIdData = this.fullAllDataRowIdData,
20571
+ rowExpandLazyLoadedMaps = this.rowExpandLazyLoadedMaps,
20468
20572
  expandOpts = this.expandOpts,
20469
20573
  column = this.expandColumn;
20470
- var rowExpandeds = this.rowExpandeds;
20574
+ var rExpandedMaps = _objectSpread2({}, rowExpandedMaps);
20471
20575
  var reserve = expandOpts.reserve,
20472
20576
  lazy = expandOpts.lazy,
20473
20577
  accordion = expandOpts.accordion,
@@ -20481,7 +20585,7 @@ var Methods = {
20481
20585
  }
20482
20586
  if (accordion) {
20483
20587
  // 只能同时展开一个
20484
- rowExpandeds = [];
20588
+ rExpandedMaps = {};
20485
20589
  rows = rows.slice(rows.length - 1, rows.length);
20486
20590
  }
20487
20591
  var validRows = toggleMethod ? rows.filter(function (row) {
@@ -20491,34 +20595,38 @@ var Methods = {
20491
20595
  columnIndex: columnIndex,
20492
20596
  $columnIndex: $columnIndex,
20493
20597
  row: row,
20494
- rowIndex: _this45.getRowIndex(row),
20495
- $rowIndex: _this45.getVMRowIndex(row)
20598
+ rowIndex: _this43.getRowIndex(row),
20599
+ $rowIndex: _this43.getVMRowIndex(row)
20496
20600
  });
20497
20601
  }) : rows;
20498
20602
  if (expanded) {
20499
20603
  validRows.forEach(function (row) {
20500
- if (_this45.findRowIndexOf(rowExpandeds, row) === -1) {
20501
- var rest = fullAllDataRowMap.get(row);
20502
- var isLoad = lazy && !rest.expandLoaded && _this45.findRowIndexOf(expandLazyLoadeds, row) === -1;
20604
+ var rowid = getRowid(_this43, row);
20605
+ if (!rExpandedMaps[rowid]) {
20606
+ var rest = fullAllDataRowIdData[rowid];
20607
+ var isLoad = lazy && !rest.expandLoaded && !rowExpandLazyLoadedMaps[rowid];
20503
20608
  if (isLoad) {
20504
- lazyRests.push(_this45.handleAsyncRowExpand(row));
20609
+ lazyRests.push(_this43.handleAsyncRowExpand(row));
20505
20610
  } else {
20506
- rowExpandeds.push(row);
20611
+ rExpandedMaps[rowid] = row;
20507
20612
  }
20508
20613
  }
20509
20614
  });
20510
20615
  } else {
20511
- external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().remove(rowExpandeds, function (row) {
20512
- return _this45.findRowIndexOf(validRows, row) > -1;
20616
+ validRows.forEach(function (item) {
20617
+ var rowid = getRowid(_this43, item);
20618
+ if (rExpandedMaps[rowid]) {
20619
+ delete rExpandedMaps[rowid];
20620
+ }
20513
20621
  });
20514
20622
  }
20515
20623
  if (reserve) {
20516
20624
  validRows.forEach(function (row) {
20517
- return _this45.handleRowExpandReserve(row, expanded);
20625
+ return _this43.handleRowExpandReserve(row, expanded);
20518
20626
  });
20519
20627
  }
20520
20628
  }
20521
- this.rowExpandeds = rowExpandeds;
20629
+ this.rowExpandedMaps = rExpandedMaps;
20522
20630
  return Promise.all(lazyRests).then(this.recalculate);
20523
20631
  },
20524
20632
  /**
@@ -20526,28 +20634,28 @@ var Methods = {
20526
20634
  * @param {Row} row 行对象
20527
20635
  */
20528
20636
  isExpandByRow: function isExpandByRow(row) {
20529
- var rowExpandeds = this.rowExpandeds;
20530
- return this.findRowIndexOf(rowExpandeds, row) > -1;
20637
+ var rowExpandedMaps = this.rowExpandedMaps;
20638
+ var rowid = getRowid(this, row);
20639
+ return !!rowExpandedMaps[rowid];
20531
20640
  },
20532
20641
  /**
20533
20642
  * 手动清空展开行状态,数据会恢复成未展开的状态
20534
20643
  */
20535
20644
  clearRowExpand: function clearRowExpand() {
20536
- var _this46 = this;
20645
+ var _this44 = this;
20537
20646
  var expandOpts = this.expandOpts,
20538
- rowExpandeds = this.rowExpandeds,
20539
20647
  tableFullData = this.tableFullData;
20540
20648
  var reserve = expandOpts.reserve;
20541
- var isExists = rowExpandeds.length;
20542
- this.rowExpandeds = [];
20649
+ var expList = this.getRowExpandRecords();
20650
+ this.rowExpandedMaps = {};
20543
20651
  if (reserve) {
20544
20652
  tableFullData.forEach(function (row) {
20545
- return _this46.handleRowExpandReserve(row, false);
20653
+ return _this44.handleRowExpandReserve(row, false);
20546
20654
  });
20547
20655
  }
20548
20656
  return this.$nextTick().then(function () {
20549
- if (isExists) {
20550
- _this46.recalculate();
20657
+ if (expList.length) {
20658
+ _this44.recalculate();
20551
20659
  }
20552
20660
  });
20553
20661
  },
@@ -20568,13 +20676,25 @@ var Methods = {
20568
20676
  }
20569
20677
  },
20570
20678
  getRowExpandRecords: function getRowExpandRecords() {
20571
- return this.rowExpandeds.slice(0);
20679
+ var rest = [];
20680
+ external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().each(this.rowExpandedMaps, function (item) {
20681
+ if (item) {
20682
+ rest.push(item);
20683
+ }
20684
+ });
20685
+ return rest;
20572
20686
  },
20573
20687
  getTreeExpandRecords: function getTreeExpandRecords() {
20574
- return this.treeExpandeds.slice(0);
20688
+ var rest = [];
20689
+ external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().each(this.treeExpandedMaps, function (item) {
20690
+ if (item) {
20691
+ rest.push(item);
20692
+ }
20693
+ });
20694
+ return rest;
20575
20695
  },
20576
20696
  /**
20577
- * 获取数表格状态
20697
+ * 获取树表格状态
20578
20698
  */
20579
20699
  getTreeStatus: function getTreeStatus() {
20580
20700
  if (this.treeConfig) {
@@ -20595,16 +20715,17 @@ var Methods = {
20595
20715
  },
20596
20716
  clearTreeExpandLoaded: function clearTreeExpandLoaded(row) {
20597
20717
  var treeOpts = this.treeOpts,
20598
- treeExpandeds = this.treeExpandeds,
20718
+ treeExpandedMaps = this.treeExpandedMaps,
20599
20719
  fullAllDataRowMap = this.fullAllDataRowMap;
20600
20720
  var transform = treeOpts.transform,
20601
20721
  lazy = treeOpts.lazy;
20722
+ var rowid = getRowid(this, row);
20602
20723
  var rest = fullAllDataRowMap.get(row);
20603
20724
  if (lazy && rest) {
20604
20725
  rest.treeLoaded = false;
20605
- external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().remove(treeExpandeds, function (item) {
20606
- return row === item;
20607
- });
20726
+ if (treeExpandedMaps[rowid]) {
20727
+ delete treeExpandedMaps[rowid];
20728
+ }
20608
20729
  }
20609
20730
  if (transform) {
20610
20731
  this.handleVirtualTreeToList();
@@ -20617,22 +20738,23 @@ var Methods = {
20617
20738
  * @param {Row} row 行对象
20618
20739
  */
20619
20740
  reloadTreeExpand: function reloadTreeExpand(row) {
20620
- var _this47 = this;
20741
+ var _this45 = this;
20621
20742
  var treeOpts = this.treeOpts,
20622
- treeLazyLoadeds = this.treeLazyLoadeds;
20743
+ treeExpandLazyLoadedMaps = this.treeExpandLazyLoadedMaps;
20623
20744
  var transform = treeOpts.transform,
20624
20745
  lazy = treeOpts.lazy;
20625
20746
  var hasChildField = treeOpts.hasChild || treeOpts.hasChildField;
20626
- if (lazy && row[hasChildField] && treeLazyLoadeds.indexOf(row) === -1) {
20747
+ var rowid = getRowid(this, row);
20748
+ if (lazy && row[hasChildField] && !treeExpandLazyLoadedMaps[rowid]) {
20627
20749
  this.clearTreeExpandLoaded(row).then(function () {
20628
- return _this47.handleAsyncTreeExpandChilds(row);
20750
+ return _this45.handleAsyncTreeExpandChilds(row);
20629
20751
  }).then(function () {
20630
20752
  if (transform) {
20631
- _this47.handleVirtualTreeToList();
20632
- return _this47.handleTableData();
20753
+ _this45.handleVirtualTreeToList();
20754
+ return _this45.handleTableData();
20633
20755
  }
20634
20756
  }).then(function () {
20635
- return _this47.recalculate();
20757
+ return _this45.recalculate();
20636
20758
  });
20637
20759
  }
20638
20760
  return this.$nextTick();
@@ -20647,11 +20769,12 @@ var Methods = {
20647
20769
  */
20648
20770
  triggerTreeExpandEvent: function triggerTreeExpandEvent(evnt, params) {
20649
20771
  var treeOpts = this.treeOpts,
20650
- treeLazyLoadeds = this.treeLazyLoadeds;
20772
+ treeExpandLazyLoadedMaps = this.treeExpandLazyLoadedMaps;
20651
20773
  var row = params.row,
20652
20774
  column = params.column;
20653
20775
  var lazy = treeOpts.lazy;
20654
- if (!lazy || treeLazyLoadeds.indexOf(row) === -1) {
20776
+ var rowid = getRowid(this, row);
20777
+ if (!lazy || !treeExpandLazyLoadedMaps[rowid]) {
20655
20778
  var expanded = !this.isTreeExpandByRow(row);
20656
20779
  var columnIndex = this.getColumnIndex(column);
20657
20780
  var $columnIndex = this.getVMColumnIndex(column);
@@ -20702,59 +20825,67 @@ var Methods = {
20702
20825
  }
20703
20826
  },
20704
20827
  handleAsyncTreeExpandChilds: function handleAsyncTreeExpandChilds(row) {
20705
- var _this48 = this;
20706
- var fullAllDataRowMap = this.fullAllDataRowMap,
20707
- treeExpandeds = this.treeExpandeds,
20708
- treeOpts = this.treeOpts,
20709
- treeLazyLoadeds = this.treeLazyLoadeds,
20828
+ var _this46 = this;
20829
+ var treeOpts = this.treeOpts,
20710
20830
  checkboxOpts = this.checkboxOpts;
20711
20831
  var transform = treeOpts.transform,
20712
20832
  loadMethod = treeOpts.loadMethod;
20713
20833
  var checkStrictly = checkboxOpts.checkStrictly;
20714
- var rest = fullAllDataRowMap.get(row);
20715
20834
  return new Promise(function (resolve) {
20716
- treeLazyLoadeds.push(row);
20717
- loadMethod({
20718
- $table: _this48,
20719
- row: row
20720
- }).then(function (childRecords) {
20721
- // 响应成功后则展开行,并将子节点挂载到该节点下
20722
- rest.treeLoaded = true;
20723
- external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().remove(treeLazyLoadeds, function (item) {
20724
- return item === row;
20725
- });
20726
- if (!external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isArray(childRecords)) {
20727
- childRecords = [];
20728
- }
20729
- if (childRecords) {
20730
- return _this48.loadTreeChildren(row, childRecords).then(function (childRows) {
20731
- if (childRows.length && treeExpandeds.indexOf(row) === -1) {
20732
- treeExpandeds.push(row);
20733
- }
20734
- // 如果当前节点已选中,则展开后子节点也被选中
20735
- if (!checkStrictly && _this48.isCheckedByCheckboxRow(row)) {
20736
- _this48.handleCheckedCheckboxRow(childRows, true, true);
20737
- }
20738
- return _this48.$nextTick().then(function () {
20739
- if (transform) {
20740
- return _this48.handleTableData();
20835
+ if (loadMethod) {
20836
+ var fullAllDataRowMap = _this46.fullAllDataRowMap,
20837
+ treeExpandLazyLoadedMaps = _this46.treeExpandLazyLoadedMaps;
20838
+ var rowid = getRowid(_this46, row);
20839
+ var rest = fullAllDataRowMap.get(row);
20840
+ treeExpandLazyLoadedMaps[rowid] = row;
20841
+ loadMethod({
20842
+ $table: _this46,
20843
+ row: row
20844
+ }).then(function (childRecords) {
20845
+ // 响应成功后则展开行,并将子节点挂载到该节点下
20846
+ rest.treeLoaded = true;
20847
+ if (treeExpandLazyLoadedMaps[rowid]) {
20848
+ treeExpandLazyLoadedMaps[rowid] = null;
20849
+ }
20850
+ if (!external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isArray(childRecords)) {
20851
+ childRecords = [];
20852
+ }
20853
+ if (childRecords) {
20854
+ return _this46.loadTreeChildren(row, childRecords).then(function (childRows) {
20855
+ var treeExpandedMaps = _this46.treeExpandedMaps;
20856
+ var treeTempExpandedMaps = _objectSpread2({}, treeExpandedMaps);
20857
+ if (childRows.length && !treeTempExpandedMaps[rowid]) {
20858
+ treeTempExpandedMaps[rowid] = row;
20859
+ _this46.treeExpandedMaps = treeTempExpandedMaps;
20860
+ }
20861
+ // 如果当前节点已选中,则展开后子节点也被选中
20862
+ if (!checkStrictly && _this46.isCheckedByCheckboxRow(row)) {
20863
+ _this46.handleCheckedCheckboxRow(childRows, true, true);
20741
20864
  }
20865
+ return _this46.$nextTick().then(function () {
20866
+ if (transform) {
20867
+ return _this46.handleTableData();
20868
+ }
20869
+ });
20742
20870
  });
20871
+ }
20872
+ })["catch"](function () {
20873
+ // 如果响应异常,则不展开,再次点击后将重新触发懒加载
20874
+ rest.treeLoaded = false;
20875
+ var treeExpandLazyLoadedMaps = _this46.treeExpandLazyLoadedMaps;
20876
+ if (treeExpandLazyLoadedMaps[rowid]) {
20877
+ treeExpandLazyLoadedMaps[rowid] = null;
20878
+ }
20879
+ })["finally"](function () {
20880
+ _this46.$nextTick().then(function () {
20881
+ return _this46.recalculate();
20882
+ }).then(function () {
20883
+ return resolve();
20743
20884
  });
20744
- }
20745
- })["catch"](function () {
20746
- // 如果响应异常,则不展开,再次点击后将重新触发懒加载
20747
- rest.treeLoaded = false;
20748
- external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().remove(treeLazyLoadeds, function (item) {
20749
- return item === row;
20750
- });
20751
- })["finally"](function () {
20752
- _this48.$nextTick().then(function () {
20753
- return _this48.recalculate();
20754
- }).then(function () {
20755
- return resolve();
20756
20885
  });
20757
- });
20886
+ } else {
20887
+ resolve();
20888
+ }
20758
20889
  });
20759
20890
  },
20760
20891
  /**
@@ -20784,17 +20915,18 @@ var Methods = {
20784
20915
  * @returns
20785
20916
  */
20786
20917
  handleBaseTreeExpand: function handleBaseTreeExpand(rows, expanded) {
20787
- var _this49 = this;
20918
+ var _this47 = this;
20788
20919
  var fullAllDataRowMap = this.fullAllDataRowMap,
20789
20920
  tableFullData = this.tableFullData,
20790
- treeExpandeds = this.treeExpandeds,
20921
+ treeExpandedMaps = this.treeExpandedMaps,
20791
20922
  treeOpts = this.treeOpts,
20792
- treeLazyLoadeds = this.treeLazyLoadeds,
20923
+ treeExpandLazyLoadedMaps = this.treeExpandLazyLoadedMaps,
20793
20924
  treeNodeColumn = this.treeNodeColumn;
20794
20925
  var reserve = treeOpts.reserve,
20795
20926
  lazy = treeOpts.lazy,
20796
20927
  accordion = treeOpts.accordion,
20797
20928
  toggleMethod = treeOpts.toggleMethod;
20929
+ var treeTempExpandedMaps = _objectSpread2({}, treeExpandedMaps);
20798
20930
  var childrenField = treeOpts.children || treeOpts.childrenField;
20799
20931
  var hasChildField = treeOpts.hasChild || treeOpts.hasChildField;
20800
20932
  var result = [];
@@ -20818,36 +20950,44 @@ var Methods = {
20818
20950
  children: childrenField
20819
20951
  });
20820
20952
  if (matchObj) {
20821
- external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().remove(treeExpandeds, function (item) {
20822
- return matchObj.items.indexOf(item) > -1;
20953
+ matchObj.items.forEach(function (item) {
20954
+ var rowid = getRowid(_this47, item);
20955
+ if (treeTempExpandedMaps[rowid]) {
20956
+ delete treeTempExpandedMaps[rowid];
20957
+ }
20823
20958
  });
20824
20959
  }
20825
20960
  }
20826
20961
  if (expanded) {
20827
20962
  validRows.forEach(function (row) {
20828
- if (treeExpandeds.indexOf(row) === -1) {
20963
+ var rowid = getRowid(_this47, row);
20964
+ if (!treeTempExpandedMaps[rowid]) {
20829
20965
  var rest = fullAllDataRowMap.get(row);
20830
- var isLoad = lazy && row[hasChildField] && !rest.treeLoaded && treeLazyLoadeds.indexOf(row) === -1;
20966
+ var isLoad = lazy && row[hasChildField] && !rest.treeLoaded && !treeExpandLazyLoadedMaps[rowid];
20831
20967
  // 是否使用懒加载
20832
20968
  if (isLoad) {
20833
- result.push(_this49.handleAsyncTreeExpandChilds(row));
20969
+ result.push(_this47.handleAsyncTreeExpandChilds(row));
20834
20970
  } else {
20835
20971
  if (row[childrenField] && row[childrenField].length) {
20836
- treeExpandeds.push(row);
20972
+ treeTempExpandedMaps[rowid] = row;
20837
20973
  }
20838
20974
  }
20839
20975
  }
20840
20976
  });
20841
20977
  } else {
20842
- external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().remove(treeExpandeds, function (row) {
20843
- return validRows.indexOf(row) > -1;
20978
+ validRows.forEach(function (item) {
20979
+ var rowid = getRowid(_this47, item);
20980
+ if (treeTempExpandedMaps[rowid]) {
20981
+ delete treeTempExpandedMaps[rowid];
20982
+ }
20844
20983
  });
20845
20984
  }
20846
20985
  if (reserve) {
20847
20986
  validRows.forEach(function (row) {
20848
- return _this49.handleTreeExpandReserve(row, expanded);
20987
+ return _this47.handleTreeExpandReserve(row, expanded);
20849
20988
  });
20850
20989
  }
20990
+ this.treeExpandedMaps = treeTempExpandedMaps;
20851
20991
  return Promise.all(result).then(this.recalculate);
20852
20992
  },
20853
20993
  /**
@@ -20857,12 +20997,12 @@ var Methods = {
20857
20997
  * @returns
20858
20998
  */
20859
20999
  handleVirtualTreeExpand: function handleVirtualTreeExpand(rows, expanded) {
20860
- var _this50 = this;
21000
+ var _this48 = this;
20861
21001
  return this.handleBaseTreeExpand(rows, expanded).then(function () {
20862
- _this50.handleVirtualTreeToList();
20863
- return _this50.handleTableData();
21002
+ _this48.handleVirtualTreeToList();
21003
+ return _this48.handleTableData();
20864
21004
  }).then(function () {
20865
- return _this50.recalculate();
21005
+ return _this48.recalculate();
20866
21006
  });
20867
21007
  },
20868
21008
  /**
@@ -20895,36 +21035,36 @@ var Methods = {
20895
21035
  * @param {Row} row 行对象
20896
21036
  */
20897
21037
  isTreeExpandByRow: function isTreeExpandByRow(row) {
20898
- return this.treeExpandeds.indexOf(row) > -1;
21038
+ var treeExpandedMaps = this.treeExpandedMaps;
21039
+ return !!treeExpandedMaps[getRowid(this, row)];
20899
21040
  },
20900
21041
  /**
20901
21042
  * 手动清空树形节点的展开状态,数据会恢复成未展开的状态
20902
21043
  */
20903
21044
  clearTreeExpand: function clearTreeExpand() {
20904
- var _this51 = this;
21045
+ var _this49 = this;
20905
21046
  var treeOpts = this.treeOpts,
20906
- treeExpandeds = this.treeExpandeds,
20907
21047
  tableFullData = this.tableFullData;
20908
21048
  var transform = treeOpts.transform,
20909
21049
  reserve = treeOpts.reserve;
20910
21050
  var childrenField = treeOpts.children || treeOpts.childrenField;
20911
- var isExists = treeExpandeds.length;
20912
- this.treeExpandeds = [];
21051
+ var expList = this.getTreeExpandRecords();
21052
+ this.treeExpandedMaps = {};
20913
21053
  if (reserve) {
20914
21054
  external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree(tableFullData, function (row) {
20915
- return _this51.handleTreeExpandReserve(row, false);
21055
+ return _this49.handleTreeExpandReserve(row, false);
20916
21056
  }, {
20917
21057
  children: childrenField
20918
21058
  });
20919
21059
  }
20920
21060
  return this.handleTableData().then(function () {
20921
21061
  if (transform) {
20922
- _this51.handleVirtualTreeToList();
20923
- return _this51.handleTableData();
21062
+ _this49.handleVirtualTreeToList();
21063
+ return _this49.handleTableData();
20924
21064
  }
20925
21065
  }).then(function () {
20926
- if (isExists) {
20927
- _this51.recalculate();
21066
+ if (expList.length) {
21067
+ _this49.recalculate();
20928
21068
  }
20929
21069
  });
20930
21070
  },
@@ -21043,28 +21183,28 @@ var Methods = {
21043
21183
  },
21044
21184
  // 计算可视渲染相关数据
21045
21185
  computeScrollLoad: function computeScrollLoad() {
21046
- var _this52 = this;
21186
+ var _this50 = this;
21047
21187
  return this.$nextTick().then(function () {
21048
- var sYOpts = _this52.sYOpts,
21049
- sXOpts = _this52.sXOpts,
21050
- scrollXLoad = _this52.scrollXLoad,
21051
- scrollYLoad = _this52.scrollYLoad,
21052
- scrollXStore = _this52.scrollXStore,
21053
- scrollYStore = _this52.scrollYStore;
21188
+ var sYOpts = _this50.sYOpts,
21189
+ sXOpts = _this50.sXOpts,
21190
+ scrollXLoad = _this50.scrollXLoad,
21191
+ scrollYLoad = _this50.scrollYLoad,
21192
+ scrollXStore = _this50.scrollXStore,
21193
+ scrollYStore = _this50.scrollYStore;
21054
21194
  // 计算 X 逻辑
21055
21195
  if (scrollXLoad) {
21056
- var _computeVirtualX3 = computeVirtualX(_this52),
21196
+ var _computeVirtualX3 = computeVirtualX(_this50),
21057
21197
  visibleXSize = _computeVirtualX3.visibleSize;
21058
21198
  var offsetXSize = sXOpts.oSize ? external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toNumber(sXOpts.oSize) : browse.msie ? 10 : browse.edge ? 5 : 0;
21059
21199
  scrollXStore.offsetSize = offsetXSize;
21060
21200
  scrollXStore.visibleSize = visibleXSize;
21061
21201
  scrollXStore.endIndex = Math.max(scrollXStore.startIndex + scrollXStore.visibleSize + offsetXSize, scrollXStore.endIndex);
21062
- _this52.updateScrollXData();
21202
+ _this50.updateScrollXData();
21063
21203
  } else {
21064
- _this52.updateScrollXSpace();
21204
+ _this50.updateScrollXSpace();
21065
21205
  }
21066
21206
  // 计算 Y 逻辑
21067
- var _computeVirtualY = computeVirtualY(_this52),
21207
+ var _computeVirtualY = computeVirtualY(_this50),
21068
21208
  rowHeight = _computeVirtualY.rowHeight,
21069
21209
  visibleYSize = _computeVirtualY.visibleSize;
21070
21210
  scrollYStore.rowHeight = rowHeight;
@@ -21073,12 +21213,12 @@ var Methods = {
21073
21213
  scrollYStore.offsetSize = offsetYSize;
21074
21214
  scrollYStore.visibleSize = visibleYSize;
21075
21215
  scrollYStore.endIndex = Math.max(scrollYStore.startIndex + visibleYSize + offsetYSize, scrollYStore.endIndex);
21076
- _this52.updateScrollYData();
21216
+ _this50.updateScrollYData();
21077
21217
  } else {
21078
- _this52.updateScrollYSpace();
21218
+ _this50.updateScrollYSpace();
21079
21219
  }
21080
- _this52.rowHeight = rowHeight;
21081
- _this52.$nextTick(_this52.updateStyle);
21220
+ _this50.rowHeight = rowHeight;
21221
+ _this50.$nextTick(_this50.updateStyle);
21082
21222
  });
21083
21223
  },
21084
21224
  handleTableColumn: function handleTableColumn() {
@@ -21088,11 +21228,11 @@ var Methods = {
21088
21228
  this.tableColumn = scrollXLoad ? visibleColumn.slice(scrollXStore.startIndex, scrollXStore.endIndex) : visibleColumn.slice(0);
21089
21229
  },
21090
21230
  updateScrollXData: function updateScrollXData() {
21091
- var _this53 = this;
21231
+ var _this51 = this;
21092
21232
  // this.tableColumn = []
21093
21233
  this.$nextTick(function () {
21094
- _this53.handleTableColumn();
21095
- _this53.updateScrollXSpace();
21234
+ _this51.handleTableColumn();
21235
+ _this51.updateScrollXSpace();
21096
21236
  });
21097
21237
  },
21098
21238
  // 更新横向 X 可视渲染上下剩余空间大小
@@ -21143,11 +21283,11 @@ var Methods = {
21143
21283
  }
21144
21284
  },
21145
21285
  updateScrollYData: function updateScrollYData() {
21146
- var _this54 = this;
21286
+ var _this52 = this;
21147
21287
  // this.tableData = []
21148
21288
  this.$nextTick(function () {
21149
- _this54.handleTableData();
21150
- _this54.updateScrollYSpace();
21289
+ _this52.handleTableData();
21290
+ _this52.updateScrollYSpace();
21151
21291
  });
21152
21292
  },
21153
21293
  // 更新纵向 Y 可视渲染上下剩余空间大小
@@ -21188,7 +21328,7 @@ var Methods = {
21188
21328
  * @param {Number} scrollTop 上距离
21189
21329
  */
21190
21330
  scrollTo: function scrollTo(scrollLeft, scrollTop) {
21191
- var _this55 = this;
21331
+ var _this53 = this;
21192
21332
  var $refs = this.$refs;
21193
21333
  var tableBody = $refs.tableBody,
21194
21334
  rightBody = $refs.rightBody,
@@ -21205,7 +21345,7 @@ var Methods = {
21205
21345
  if (this.scrollXLoad || this.scrollYLoad) {
21206
21346
  return new Promise(function (resolve) {
21207
21347
  return setTimeout(function () {
21208
- return resolve(_this55.$nextTick());
21348
+ return resolve(_this53.$nextTick());
21209
21349
  }, 50);
21210
21350
  });
21211
21351
  }
@@ -21247,7 +21387,7 @@ var Methods = {
21247
21387
  * @param {Row} row 行对象
21248
21388
  */
21249
21389
  scrollToTreeRow: function scrollToTreeRow(row) {
21250
- var _this56 = this;
21390
+ var _this54 = this;
21251
21391
  var tableFullData = this.tableFullData,
21252
21392
  treeConfig = this.treeConfig,
21253
21393
  treeOpts = this.treeOpts;
@@ -21262,14 +21402,14 @@ var Methods = {
21262
21402
  if (matchObj) {
21263
21403
  var nodes = matchObj.nodes;
21264
21404
  nodes.forEach(function (row, index) {
21265
- if (index < nodes.length - 1 && !_this56.isTreeExpandByRow(row)) {
21266
- rests.push(_this56.setTreeExpand(row, true));
21405
+ if (index < nodes.length - 1 && !_this54.isTreeExpandByRow(row)) {
21406
+ rests.push(_this54.setTreeExpand(row, true));
21267
21407
  }
21268
21408
  });
21269
21409
  }
21270
21410
  }
21271
21411
  return Promise.all(rests).then(function () {
21272
- return rowToVisible(_this56, row);
21412
+ return rowToVisible(_this54, row);
21273
21413
  });
21274
21414
  },
21275
21415
  /**
@@ -21324,30 +21464,30 @@ var Methods = {
21324
21464
  * 如果单元格配置了校验规则,则会进行校验
21325
21465
  */
21326
21466
  updateStatus: function updateStatus(slotParams, cellValue) {
21327
- var _this57 = this;
21467
+ var _this55 = this;
21328
21468
  var customVal = !external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isUndefined(cellValue);
21329
21469
  return this.$nextTick().then(function () {
21330
- var $refs = _this57.$refs,
21331
- editRules = _this57.editRules,
21332
- validStore = _this57.validStore;
21470
+ var $refs = _this55.$refs,
21471
+ editRules = _this55.editRules,
21472
+ validStore = _this55.validStore;
21333
21473
  if (slotParams && $refs.tableBody && editRules) {
21334
21474
  var row = slotParams.row,
21335
21475
  column = slotParams.column;
21336
21476
  var type = 'change';
21337
- if (_this57.hasCellRules(type, row, column)) {
21338
- var cell = _this57.getCell(row, column);
21477
+ if (_this55.hasCellRules(type, row, column)) {
21478
+ var cell = _this55.getCell(row, column);
21339
21479
  if (cell) {
21340
- return _this57.validCellRules(type, row, column, cellValue).then(function () {
21480
+ return _this55.validCellRules(type, row, column, cellValue).then(function () {
21341
21481
  if (customVal && validStore.visible) {
21342
21482
  setCellValue(row, column, cellValue);
21343
21483
  }
21344
- _this57.clearValidate();
21484
+ _this55.clearValidate();
21345
21485
  })["catch"](function (_ref8) {
21346
21486
  var rule = _ref8.rule;
21347
21487
  if (customVal) {
21348
21488
  setCellValue(row, column, cellValue);
21349
21489
  }
21350
- _this57.showValidTooltip({
21490
+ _this55.showValidTooltip({
21351
21491
  rule: rule,
21352
21492
  row: row,
21353
21493
  column: column,
@@ -21367,13 +21507,13 @@ var Methods = {
21367
21507
  * @param {TableMergeConfig[]} merges { row: Row|number, column: ColumnInfo|number, rowspan: number, colspan: number }
21368
21508
  */
21369
21509
  setMergeCells: function setMergeCells(merges) {
21370
- var _this58 = this;
21510
+ var _this56 = this;
21371
21511
  if (this.spanMethod) {
21372
21512
  errLog('vxe.error.errConflicts', ['merge-cells', 'span-method']);
21373
21513
  }
21374
21514
  setMerges(this, merges, this.mergeList, this.afterFullData);
21375
21515
  return this.$nextTick().then(function () {
21376
- return _this58.updateCellAreas();
21516
+ return _this56.updateCellAreas();
21377
21517
  });
21378
21518
  },
21379
21519
  /**
@@ -21381,13 +21521,13 @@ var Methods = {
21381
21521
  * @param {TableMergeConfig[]} merges 多个或数组 [{row:Row|number, col:ColumnInfo|number}]
21382
21522
  */
21383
21523
  removeMergeCells: function removeMergeCells(merges) {
21384
- var _this59 = this;
21524
+ var _this57 = this;
21385
21525
  if (this.spanMethod) {
21386
21526
  errLog('vxe.error.errConflicts', ['merge-cells', 'span-method']);
21387
21527
  }
21388
21528
  var rest = removeMerges(this, merges, this.mergeList, this.afterFullData);
21389
21529
  return this.$nextTick().then(function () {
21390
- _this59.updateCellAreas();
21530
+ _this57.updateCellAreas();
21391
21531
  return rest;
21392
21532
  });
21393
21533
  },
@@ -21408,23 +21548,23 @@ var Methods = {
21408
21548
  this.setMergeFooterItems(this.mergeFooterItems);
21409
21549
  },
21410
21550
  setMergeFooterItems: function setMergeFooterItems(merges) {
21411
- var _this60 = this;
21551
+ var _this58 = this;
21412
21552
  if (this.footerSpanMethod) {
21413
21553
  errLog('vxe.error.errConflicts', ['merge-footer-items', 'footer-span-method']);
21414
21554
  }
21415
21555
  setMerges(this, merges, this.mergeFooterList, null);
21416
21556
  return this.$nextTick().then(function () {
21417
- return _this60.updateCellAreas();
21557
+ return _this58.updateCellAreas();
21418
21558
  });
21419
21559
  },
21420
21560
  removeMergeFooterItems: function removeMergeFooterItems(merges) {
21421
- var _this61 = this;
21561
+ var _this59 = this;
21422
21562
  if (this.footerSpanMethod) {
21423
21563
  errLog('vxe.error.errConflicts', ['merge-footer-items', 'footer-span-method']);
21424
21564
  }
21425
21565
  var rest = removeMerges(this, merges, this.mergeFooterList, null);
21426
21566
  return this.$nextTick().then(function () {
21427
- _this61.updateCellAreas();
21567
+ _this59.updateCellAreas();
21428
21568
  return rest;
21429
21569
  });
21430
21570
  },
@@ -21541,9 +21681,9 @@ var Methods = {
21541
21681
  return cellLabel;
21542
21682
  },
21543
21683
  findRowIndexOf: function findRowIndexOf(list, row) {
21544
- var _this62 = this;
21684
+ var _this60 = this;
21545
21685
  return row ? external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().findIndexOf(list, function (item) {
21546
- return _this62.eqRow(item, row);
21686
+ return _this60.eqRow(item, row);
21547
21687
  }) : -1;
21548
21688
  },
21549
21689
  eqRow: function eqRow(row1, row2) {
@@ -22073,14 +22213,14 @@ function handleUupdateResize(_vm) {
22073
22213
  isAllSelected: false,
22074
22214
  // 复选框属性,有选中且非全选状态
22075
22215
  isIndeterminate: false,
22076
- // 复选框属性,已选中的行
22077
- selectCheckboxRows: [],
22216
+ // 复选框属性,已选中的行集合
22217
+ selectCheckboxMaps: {},
22078
22218
  // 当前行
22079
22219
  currentRow: null,
22080
22220
  // 单选框属性,选中列
22081
22221
  currentColumn: null,
22082
22222
  // 单选框属性,选中行
22083
- selectRow: null,
22223
+ selectRadioRow: null,
22084
22224
  // 表尾合计数据
22085
22225
  footerTableData: [],
22086
22226
  // 展开列信息
@@ -22088,16 +22228,16 @@ function handleUupdateResize(_vm) {
22088
22228
  hasFixedColumn: false,
22089
22229
  // 树节点列信息
22090
22230
  treeNodeColumn: null,
22091
- // 已展开的行
22092
- rowExpandeds: [],
22093
- // 懒加载中的展开行的列表
22094
- expandLazyLoadeds: [],
22095
- // 已展开树节点
22096
- treeExpandeds: [],
22097
- // 懒加载中的树节点的列表
22098
- treeLazyLoadeds: [],
22099
- // 树节点不确定状态的列表
22100
- treeIndeterminates: [],
22231
+ // 已展开的行集合
22232
+ rowExpandedMaps: {},
22233
+ // 懒加载中的展开行的集合
22234
+ rowExpandLazyLoadedMaps: {},
22235
+ // 已展开树节点集合
22236
+ treeExpandedMaps: {},
22237
+ // 懒加载中的树节点的集合
22238
+ treeExpandLazyLoadedMaps: {},
22239
+ // 树节点不确定状态的集合
22240
+ treeIndeterminateMaps: {},
22101
22241
  // 合并单元格的对象集
22102
22242
  mergeList: [],
22103
22243
  // 合并表尾数据的对象集
@@ -22560,6 +22700,8 @@ function handleUupdateResize(_vm) {
22560
22700
  // 完整数据、条件处理后
22561
22701
  tableFullData: [],
22562
22702
  afterFullData: [],
22703
+ // 列表条件处理后数据集合
22704
+ afterFullRowMaps: {},
22563
22705
  // 收集的列配置(带分组)
22564
22706
  collectColumn: [],
22565
22707
  // 完整所有列(不带分组)
@@ -24208,7 +24350,7 @@ function handleInsertRowAt(_vm, records, row, isInsertNextRow) {
24208
24350
  mergeList = this.mergeList,
24209
24351
  editStore = this.editStore,
24210
24352
  checkboxOpts = this.checkboxOpts,
24211
- selectCheckboxRows = this.selectCheckboxRows,
24353
+ selectCheckboxMaps = this.selectCheckboxMaps,
24212
24354
  isInsertByRow = this.isInsertByRow,
24213
24355
  treeOpts = this.treeOpts;
24214
24356
  var transform = treeOpts.transform,
@@ -24233,12 +24375,14 @@ function handleInsertRowAt(_vm, records, row, isInsertNextRow) {
24233
24375
  });
24234
24376
  // 如果绑定了多选属性,则更新状态
24235
24377
  if (!checkField) {
24378
+ var selectRowMaps = _objectSpread2({}, selectCheckboxMaps);
24236
24379
  rows.forEach(function (row) {
24237
- var sIndex = _this.findRowIndexOf(selectCheckboxRows, row);
24238
- if (sIndex > -1) {
24239
- selectCheckboxRows.splice(sIndex, 1);
24380
+ var rowid = getRowid(_this, row);
24381
+ if (selectRowMaps[rowid]) {
24382
+ delete selectRowMaps[rowid];
24240
24383
  }
24241
24384
  });
24385
+ this.selectCheckboxMaps = selectRowMaps;
24242
24386
  }
24243
24387
  // 从数据源中移除
24244
24388
  if (tableFullData === rows) {
@@ -26653,6 +26797,9 @@ function renderExtraSuffixIcon(h, _vm) {
26653
26797
  }
26654
26798
  },
26655
26799
  multiple: Boolean,
26800
+ // text
26801
+ showWordCount: Boolean,
26802
+ countMethod: Function,
26656
26803
  // number、integer、float
26657
26804
  min: {
26658
26805
  type: [String, Number],
@@ -26795,6 +26942,12 @@ function renderExtraSuffixIcon(h, _vm) {
26795
26942
  isSearch: function isSearch() {
26796
26943
  return this.type === 'search';
26797
26944
  },
26945
+ inputCount: function inputCount() {
26946
+ return external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().getSize(this.inputValue);
26947
+ },
26948
+ isCountError: function isCountError() {
26949
+ return this.maxlength && this.inputCount > external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toNumber(this.maxlength);
26950
+ },
26798
26951
  stepValue: function stepValue() {
26799
26952
  var type = this.type,
26800
26953
  step = this.step;
@@ -27259,6 +27412,8 @@ function renderExtraSuffixIcon(h, _vm) {
27259
27412
  inpReadonly = this.inpReadonly,
27260
27413
  className = this.className,
27261
27414
  controls = this.controls,
27415
+ showWordCount = this.showWordCount,
27416
+ countMethod = this.countMethod,
27262
27417
  inputValue = this.inputValue,
27263
27418
  isDatePickerType = this.isDatePickerType,
27264
27419
  visiblePanel = this.visiblePanel,
@@ -27314,8 +27469,20 @@ function renderExtraSuffixIcon(h, _vm) {
27314
27469
  if (isDatePickerType) {
27315
27470
  childs.push(renderPanel(h, this));
27316
27471
  }
27472
+ var isWordCount = false;
27473
+ // 统计字数
27474
+ if (showWordCount && ['text', 'search'].includes(type)) {
27475
+ isWordCount = true;
27476
+ childs.push(h('span', {
27477
+ "class": ['vxe-input--count', {
27478
+ 'is--error': this.isCountError
27479
+ }]
27480
+ }, countMethod ? "".concat(countMethod({
27481
+ value: inputValue
27482
+ })) : "".concat(this.inputCount).concat(inpMaxlength ? "/".concat(inpMaxlength) : '')));
27483
+ }
27317
27484
  return h('div', {
27318
- "class": ['vxe-input', "type--".concat(type), className, (_ref2 = {}, _defineProperty(_ref2, "size--".concat(vSize), vSize), _defineProperty(_ref2, "is--".concat(align), align), _defineProperty(_ref2, 'is--controls', controls), _defineProperty(_ref2, 'is--prefix', !!prefix), _defineProperty(_ref2, 'is--suffix', !!suffix), _defineProperty(_ref2, 'is--readonly', readonly), _defineProperty(_ref2, 'is--visivle', visiblePanel), _defineProperty(_ref2, 'is--disabled', disabled), _defineProperty(_ref2, 'is--active', isActivated), _ref2)]
27485
+ "class": ['vxe-input', "type--".concat(type), className, (_ref2 = {}, _defineProperty(_ref2, "size--".concat(vSize), vSize), _defineProperty(_ref2, "is--".concat(align), align), _defineProperty(_ref2, 'is--controls', controls), _defineProperty(_ref2, 'is--prefix', !!prefix), _defineProperty(_ref2, 'is--suffix', !!suffix), _defineProperty(_ref2, 'is--readonly', readonly), _defineProperty(_ref2, 'is--visivle', visiblePanel), _defineProperty(_ref2, 'is--count', isWordCount), _defineProperty(_ref2, 'is--disabled', disabled), _defineProperty(_ref2, 'is--active', isActivated), _ref2)]
27319
27486
  }, childs);
27320
27487
  },
27321
27488
  methods: {