vxe-table 3.7.0-beta.8 → 3.7.0

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 (113) hide show
  1. package/README.md +1 -1
  2. package/helper/vetur/attributes.json +26 -2
  3. package/helper/vetur/tags.json +6 -0
  4. package/lib/button/style/style.css +2 -3
  5. package/lib/button/style/style.min.css +1 -1
  6. package/lib/edit/src/mixin.js +267 -215
  7. package/lib/edit/src/mixin.min.js +1 -1
  8. package/lib/export/src/mixin.js +11 -7
  9. package/lib/export/src/mixin.min.js +1 -1
  10. package/lib/form/src/form-config-item.js +5 -1
  11. package/lib/form/src/form-config-item.min.js +1 -1
  12. package/lib/form/src/form-item.js +9 -1
  13. package/lib/form/src/form-item.min.js +1 -1
  14. package/lib/form/src/form.js +4 -0
  15. package/lib/form/src/form.min.js +1 -1
  16. package/lib/form/style/style.css +12 -0
  17. package/lib/form/style/style.min.css +1 -1
  18. package/lib/icon/style/style.css +1 -1
  19. package/lib/icon/style/style.min.css +1 -1
  20. package/lib/index.css +1 -1
  21. package/lib/index.umd.js +1155 -723
  22. package/lib/index.umd.min.js +1 -1
  23. package/lib/input/src/input.js +24 -1
  24. package/lib/input/src/input.min.js +1 -1
  25. package/lib/input/style/style.css +21 -0
  26. package/lib/input/style/style.min.css +1 -1
  27. package/lib/keyboard/src/mixin.js +4 -1
  28. package/lib/keyboard/src/mixin.min.js +1 -1
  29. package/lib/style.css +1 -1
  30. package/lib/style.min.css +1 -1
  31. package/lib/table/src/body.js +18 -15
  32. package/lib/table/src/body.min.js +1 -1
  33. package/lib/table/src/cell.js +38 -32
  34. package/lib/table/src/cell.min.js +1 -1
  35. package/lib/table/src/columnInfo.js +3 -3
  36. package/lib/table/src/columnInfo.min.js +1 -1
  37. package/lib/table/src/methods.js +652 -426
  38. package/lib/table/src/methods.min.js +1 -1
  39. package/lib/table/src/table.js +38 -24
  40. package/lib/table/src/table.min.js +1 -1
  41. package/lib/table/src/util.js +4 -2
  42. package/lib/table/src/util.min.js +1 -1
  43. package/lib/table/style/style.css +7 -2
  44. package/lib/table/style/style.min.css +1 -1
  45. package/lib/toolbar/src/toolbar.js +5 -1
  46. package/lib/toolbar/src/toolbar.min.js +1 -1
  47. package/lib/tools/log.js +1 -1
  48. package/lib/tools/log.min.js +1 -1
  49. package/lib/tools/utils.js +3 -5
  50. package/lib/tools/utils.min.js +1 -1
  51. package/lib/tooltip/style/style.css +0 -6
  52. package/lib/tooltip/style/style.min.css +1 -1
  53. package/lib/v-x-e-table/index.js +15 -12
  54. package/lib/v-x-e-table/index.min.js +1 -1
  55. package/lib/v-x-e-table/src/commands.js +3 -1
  56. package/lib/v-x-e-table/src/conf.js +5 -5
  57. package/lib/v-x-e-table/src/conf.min.js +1 -1
  58. package/lib/v-x-e-table/src/{setup.js → config.js} +3 -3
  59. package/lib/v-x-e-table/src/config.min.js +1 -0
  60. package/lib/v-x-e-table/src/formats.js +4 -2
  61. package/lib/v-x-e-table/src/formats.min.js +1 -1
  62. package/lib/v-x-e-table/src/menus.js +3 -1
  63. package/lib/v-x-e-table/src/renderer.js +4 -4
  64. package/lib/v-x-e-table/src/renderer.min.js +1 -1
  65. package/lib/validator/src/mixin.js +14 -1
  66. package/lib/validator/src/mixin.min.js +1 -1
  67. package/package.json +7 -8
  68. package/packages/edit/src/mixin.js +186 -143
  69. package/packages/export/src/mixin.js +9 -7
  70. package/packages/form/src/form-config-item.js +4 -2
  71. package/packages/form/src/form-item.js +8 -2
  72. package/packages/form/src/form.js +4 -0
  73. package/packages/input/src/input.js +24 -1
  74. package/packages/keyboard/src/mixin.js +2 -1
  75. package/packages/table/src/body.js +18 -15
  76. package/packages/table/src/cell.js +32 -23
  77. package/packages/table/src/columnInfo.js +3 -3
  78. package/packages/table/src/methods.js +485 -239
  79. package/packages/table/src/table.js +36 -22
  80. package/packages/table/src/util.js +4 -2
  81. package/packages/toolbar/src/toolbar.js +4 -1
  82. package/packages/tools/utils.js +3 -6
  83. package/packages/v-x-e-table/index.js +7 -4
  84. package/packages/v-x-e-table/src/commands.js +3 -1
  85. package/packages/v-x-e-table/src/conf.js +5 -5
  86. package/packages/v-x-e-table/src/{setup.js → config.js} +2 -2
  87. package/packages/v-x-e-table/src/formats.js +4 -2
  88. package/packages/v-x-e-table/src/menus.js +3 -1
  89. package/packages/v-x-e-table/src/renderer.js +4 -4
  90. package/packages/validator/src/mixin.js +12 -1
  91. package/styles/button.scss +5 -3
  92. package/styles/css-variable.scss +3 -3
  93. package/styles/form.scss +14 -0
  94. package/styles/input.scss +25 -0
  95. package/styles/table.scss +13 -2
  96. package/styles/textarea.scss +3 -3
  97. package/styles/tooltip.scss +0 -8
  98. package/styles/variable.scss +3 -3
  99. package/types/all.d.ts +2 -2
  100. package/types/form-item.d.ts +1 -0
  101. package/types/form.d.ts +1 -0
  102. package/types/table.d.ts +36 -5
  103. package/types/v-x-e-table/config.d.ts +51 -0
  104. package/types/v-x-e-table/formats.d.ts +1 -1
  105. package/types/v-x-e-table/index.d.ts +22 -10
  106. package/lib/v-x-e-table/src/setup.min.js +0 -1
  107. package/types/v-x-e-table/setup.d.ts +0 -74
  108. /package/lib/icon/style/{iconfont.1690504677290.ttf → iconfont.1694737793729.ttf} +0 -0
  109. /package/lib/icon/style/{iconfont.1690504677290.woff → iconfont.1694737793729.woff} +0 -0
  110. /package/lib/icon/style/{iconfont.1690504677290.woff2 → iconfont.1694737793729.woff2} +0 -0
  111. /package/lib/{iconfont.1690504677290.ttf → iconfont.1694737793729.ttf} +0 -0
  112. /package/lib/{iconfont.1690504677290.woff → iconfont.1694737793729.woff} +0 -0
  113. /package/lib/{iconfont.1690504677290.woff2 → iconfont.1694737793729.woff2} +0 -0
package/lib/index.umd.js CHANGED
@@ -10526,6 +10526,7 @@ __webpack_require__.d(__webpack_exports__, {
10526
10526
  "config": () => (/* reexport */ config),
10527
10527
  "default": () => (/* binding */ entry_lib),
10528
10528
  "formats": () => (/* reexport */ formats),
10529
+ "globalConfs": () => (/* reexport */ globalConfs),
10529
10530
  "install": () => (/* reexport */ install),
10530
10531
  "interceptor": () => (/* reexport */ interceptor),
10531
10532
  "menus": () => (/* reexport */ menus),
@@ -10583,6 +10584,7 @@ __webpack_require__.d(all_namespaceObject, {
10583
10584
  "commands": () => (commands),
10584
10585
  "config": () => (config),
10585
10586
  "formats": () => (formats),
10587
+ "globalConfs": () => (globalConfs),
10586
10588
  "install": () => (install),
10587
10589
  "interceptor": () => (interceptor),
10588
10590
  "menus": () => (menus),
@@ -10740,9 +10742,9 @@ var iconPrefix = 'vxe-icon-';
10740
10742
  treeConfig: {
10741
10743
  rowField: 'id',
10742
10744
  parentField: 'parentId',
10743
- children: 'children',
10744
- hasChild: 'hasChild',
10745
- mapChildren: '_X_ROW_CHILD',
10745
+ childrenField: 'children',
10746
+ hasChildField: 'hasChild',
10747
+ mapChildrenField: '_X_ROW_CHILD',
10746
10748
  indent: 20,
10747
10749
  showIcon: true
10748
10750
  },
@@ -10783,13 +10785,13 @@ var iconPrefix = 'vxe-icon-';
10783
10785
  isReplace: true
10784
10786
  },
10785
10787
  scrollX: {
10786
- enabled: true,
10788
+ // enabled: false,
10787
10789
  gt: 60
10788
10790
  // oSize: 0
10789
10791
  },
10790
10792
 
10791
10793
  scrollY: {
10792
- enabled: true,
10794
+ // enabled: false,
10793
10795
  gt: 100
10794
10796
  // oSize: 0
10795
10797
  }
@@ -11045,7 +11047,7 @@ var es_array_concat = __webpack_require__(2222);
11045
11047
 
11046
11048
 
11047
11049
  function getLog(message, params) {
11048
- return "[vxe-table v".concat("3.7.0-beta.8", "] ").concat(conf.i18n(message, params));
11050
+ return "[vxe-table v".concat("3.7.0", "] ").concat(conf.i18n(message, params));
11049
11051
  }
11050
11052
  function outLog(type) {
11051
11053
  return function (message, params) {
@@ -11219,6 +11221,89 @@ var es_array_splice = __webpack_require__(561);
11219
11221
  var es_array_last_index_of = __webpack_require__(4986);
11220
11222
  // EXTERNAL MODULE: ./node_modules/core-js/modules/es.parse-float.js
11221
11223
  var es_parse_float = __webpack_require__(4678);
11224
+ ;// CONCATENATED MODULE: ./node_modules/dom-zindex/es/index.esm.js
11225
+ var storeEl = null;
11226
+ var storeId = 'z-index-manage';
11227
+ var storeMainKey = 'm';
11228
+ var storeSubKey = 's';
11229
+ var storeData = {
11230
+ m: 1000,
11231
+ s: 1000
11232
+ };
11233
+ function getDom() {
11234
+ if (!storeEl) {
11235
+ if (typeof document !== 'undefined') {
11236
+ storeEl = document.getElementById(storeId);
11237
+ if (!storeEl) {
11238
+ storeEl = document.createElement('div');
11239
+ storeEl.id = storeId;
11240
+ storeEl.style.display = 'none';
11241
+ document.body.appendChild(storeEl);
11242
+ setCurrent(storeData.m);
11243
+ setSubCurrent(storeData.s);
11244
+ }
11245
+ }
11246
+ }
11247
+ return storeEl;
11248
+ }
11249
+ function createSetHandle(key) {
11250
+ return function (value) {
11251
+ if (value) {
11252
+ value = Number(value);
11253
+ storeData[key] = value;
11254
+ var doc = getDom();
11255
+ if (doc) {
11256
+ if (doc.dataset) {
11257
+ doc.dataset[key] = value + '';
11258
+ }
11259
+ else {
11260
+ doc.setAttribute('data-' + key, value + '');
11261
+ }
11262
+ }
11263
+ }
11264
+ return storeData[key];
11265
+ };
11266
+ }
11267
+ var setCurrent = createSetHandle(storeMainKey);
11268
+ function createGetHandle(key) {
11269
+ return function getCurrent() {
11270
+ var zIndex;
11271
+ var doc = getDom();
11272
+ if (doc) {
11273
+ zIndex = doc.dataset ? doc.dataset[key] : doc.getAttribute('data-' + key);
11274
+ }
11275
+ if (zIndex) {
11276
+ return Number(zIndex);
11277
+ }
11278
+ return storeData[key];
11279
+ };
11280
+ }
11281
+ var getCurrent = createGetHandle(storeMainKey);
11282
+ function getNext() {
11283
+ return setCurrent(getCurrent() + 1);
11284
+ }
11285
+ var setSubCurrent = createSetHandle(storeSubKey);
11286
+ var _getSubCurrent = createGetHandle(storeSubKey);
11287
+ function getSubCurrent() {
11288
+ return getCurrent() + _getSubCurrent();
11289
+ }
11290
+ function getSubNext() {
11291
+ setSubCurrent(_getSubCurrent() + 1);
11292
+ return getSubCurrent();
11293
+ }
11294
+ /**
11295
+ * Web common z-index style management
11296
+ */
11297
+ var DomZIndex = {
11298
+ setCurrent: setCurrent,
11299
+ getCurrent: getCurrent,
11300
+ getNext: getNext,
11301
+ setSubCurrent: setSubCurrent,
11302
+ getSubCurrent: getSubCurrent,
11303
+ getSubNext: getSubNext
11304
+ };
11305
+ /* harmony default export */ const index_esm = (DomZIndex);
11306
+
11222
11307
  ;// CONCATENATED MODULE: ./packages/tools/utils.js
11223
11308
 
11224
11309
 
@@ -11233,8 +11318,7 @@ var es_parse_float = __webpack_require__(4678);
11233
11318
 
11234
11319
 
11235
11320
 
11236
- var zindexIndex = 0;
11237
- var lastZindex = 1;
11321
+
11238
11322
  function isEnableConf(conf) {
11239
11323
  return conf && conf.enabled !== false;
11240
11324
  }
@@ -11259,11 +11343,10 @@ function getColumnList(columns) {
11259
11343
  }
11260
11344
  var UtilTools = {
11261
11345
  nextZIndex: function nextZIndex() {
11262
- lastZindex = conf.zIndex + zindexIndex++;
11263
- return lastZindex;
11346
+ return index_esm.getNext();
11264
11347
  },
11265
11348
  getLastZIndex: function getLastZIndex() {
11266
- return lastZindex;
11349
+ return index_esm.getCurrent();
11267
11350
  },
11268
11351
  getColumnList: getColumnList,
11269
11352
  getClass: function getClass(property, params) {
@@ -12097,7 +12180,9 @@ var VXECommandsStore = /*#__PURE__*/function () {
12097
12180
  var conf = this.store[name];
12098
12181
  // 兼容
12099
12182
  if (external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isFunction(render)) {
12100
- // warnLog('vxe.error.delProp', ['callback', 'commandMethod'])
12183
+ // if (process.env.VUE_APP_VXE_TABLE_ENV === 'development') {
12184
+ // warnLog('vxe.error.delProp', ['commands -> callback', 'commandMethod'])
12185
+ // }
12101
12186
  render = {
12102
12187
  commandMethod: render
12103
12188
  };
@@ -12155,7 +12240,9 @@ var VXEMenusStore = /*#__PURE__*/function () {
12155
12240
  var conf = this.store[name];
12156
12241
  // 兼容
12157
12242
  if (external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isFunction(render)) {
12158
- // warnLog('vxe.error.delProp', ['callback', 'menuMethod'])
12243
+ // if (process.env.VUE_APP_VXE_TABLE_ENV === 'development') {
12244
+ // warnLog('vxe.error.delProp', ['menus -> callback', 'menuMethod'])
12245
+ // }
12159
12246
  render = {
12160
12247
  menuMethod: render
12161
12248
  };
@@ -12213,9 +12300,11 @@ var VXEFormatsStore = /*#__PURE__*/function () {
12213
12300
  var conf = this.store[name];
12214
12301
  // 兼容
12215
12302
  if (external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isFunction(render)) {
12216
- // warnLog('vxe.error.delProp', ['callback', 'formatMethod'])
12303
+ // if (process.env.VUE_APP_VXE_TABLE_ENV === 'development') {
12304
+ // warnLog('vxe.error.delProp', ['formats -> callback', 'cellFormatMethod'])
12305
+ // }
12217
12306
  render = {
12218
- formatMethod: render
12307
+ cellFormatMethod: render
12219
12308
  };
12220
12309
  }
12221
12310
 
@@ -12292,14 +12381,14 @@ var Store = /*#__PURE__*/function () {
12292
12381
 
12293
12382
  var validators = new store();
12294
12383
  if (false) {}
12295
- ;// CONCATENATED MODULE: ./packages/v-x-e-table/src/setup.js
12384
+ ;// CONCATENATED MODULE: ./packages/v-x-e-table/src/config.js
12296
12385
 
12297
12386
 
12298
12387
 
12299
12388
  /**
12300
12389
  * 全局参数设置
12301
12390
  */
12302
- function setup(options) {
12391
+ function config(options) {
12303
12392
  return external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().merge(conf, options);
12304
12393
  }
12305
12394
  ;// CONCATENATED MODULE: ./packages/v-x-e-table/index.js
@@ -12390,8 +12479,8 @@ var VXETableConfig = /*#__PURE__*/function () {
12390
12479
  }
12391
12480
  }]);
12392
12481
  return VXETableConfig;
12393
- }();
12394
- var config = new VXETableConfig();
12482
+ }(); // 已废弃
12483
+ var globalConfs = new VXETableConfig();
12395
12484
  function t(key, args) {
12396
12485
  return conf.i18n(key, args);
12397
12486
  }
@@ -12399,19 +12488,20 @@ function _t(key, args) {
12399
12488
  return key ? external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toValueString(conf.translate ? conf.translate(key, args) : key) : '';
12400
12489
  }
12401
12490
  var v = 'v3';
12491
+ var setup = config;
12402
12492
  var VXETable = {
12403
12493
  v: v,
12404
- version: "3.7.0-beta.8",
12494
+ version: "3.7.0",
12405
12495
  reg: reg,
12406
12496
  use: use,
12407
12497
  setup: setup,
12498
+ config: config,
12408
12499
  interceptor: interceptor,
12409
12500
  renderer: renderer,
12410
12501
  commands: commands,
12411
12502
  formats: formats,
12412
12503
  menus: menus,
12413
12504
  validators: validators,
12414
- config: config,
12415
12505
  t: t,
12416
12506
  _t: _t
12417
12507
  };
@@ -13024,8 +13114,10 @@ function countTreeExpand(prevRow, params) {
13024
13114
  return count;
13025
13115
  }
13026
13116
  var $table = params.$table;
13027
- var rowChildren = prevRow[$table.treeOpts.children];
13028
- if ($table.isTreeExpandByRow(prevRow)) {
13117
+ var treeOpts = $table.treeOpts;
13118
+ var childrenField = treeOpts.children || treeOpts.childrenField;
13119
+ var rowChildren = prevRow[childrenField];
13120
+ if (rowChildren && $table.isTreeExpandByRow(prevRow)) {
13029
13121
  for (var index = 0; index < rowChildren.length; index++) {
13030
13122
  count += countTreeExpand(rowChildren[index], params);
13031
13123
  }
@@ -13192,13 +13284,12 @@ function getSlotVNs(vns) {
13192
13284
 
13193
13285
 
13194
13286
 
13195
-
13196
13287
 
13197
13288
 
13198
13289
  var renderType = 'body';
13199
13290
 
13200
13291
  // 滚动、拖动过程中不需要触发
13201
- function isOperateMouse($xetable) {
13292
+ function isVMScrollProcess($xetable) {
13202
13293
  return $xetable._isResize || $xetable.lastScrollTime && Date.now() < $xetable.lastScrollTime + $xetable.delayHover;
13203
13294
  }
13204
13295
  function renderLine(h, _vm, $xetable, params) {
@@ -13222,7 +13313,7 @@ function renderLine(h, _vm, $xetable, params) {
13222
13313
  if (slots && slots.line) {
13223
13314
  return $xetable.callSlot(slots.line, params, h);
13224
13315
  }
13225
- if (treeConfig && treeNode && treeOpts.line) {
13316
+ if (treeConfig && treeNode && (treeOpts.showLine || treeOpts.line)) {
13226
13317
  return [h('div', {
13227
13318
  "class": 'vxe-tree--line-wrapper'
13228
13319
  }, [h('div', {
@@ -13337,7 +13428,7 @@ function renderColumn(h, _vm, $xetable, seq, rowid, fixedType, rowLevel, row, ro
13337
13428
  // hover 进入事件
13338
13429
  if (showTitle || showTooltip || showAllTip || bindMouseenter || tooltipConfig) {
13339
13430
  tdOns.mouseenter = function (evnt) {
13340
- if (isOperateMouse($xetable)) {
13431
+ if (isVMScrollProcess($xetable)) {
13341
13432
  return;
13342
13433
  }
13343
13434
  if (showTitle) {
@@ -13356,7 +13447,7 @@ function renderColumn(h, _vm, $xetable, seq, rowid, fixedType, rowLevel, row, ro
13356
13447
  // hover 退出事件
13357
13448
  if (showTooltip || showAllTip || bindMouseleave || tooltipConfig) {
13358
13449
  tdOns.mouseleave = function (evnt) {
13359
- if (isOperateMouse($xetable)) {
13450
+ if (isVMScrollProcess($xetable)) {
13360
13451
  return;
13361
13452
  }
13362
13453
  if (showTooltip || showAllTip) {
@@ -13490,15 +13581,16 @@ function renderRows(h, _vm, $xetable, fixedType, tableData, tableColumn) {
13490
13581
  treeOpts = $xetable.treeOpts,
13491
13582
  expandOpts = $xetable.expandOpts,
13492
13583
  editOpts = $xetable.editOpts,
13493
- treeExpandeds = $xetable.treeExpandeds,
13584
+ treeExpandedMaps = $xetable.treeExpandedMaps,
13494
13585
  scrollYLoad = $xetable.scrollYLoad,
13495
- rowExpandeds = $xetable.rowExpandeds,
13586
+ rowExpandedMaps = $xetable.rowExpandedMaps,
13496
13587
  radioOpts = $xetable.radioOpts,
13497
13588
  checkboxOpts = $xetable.checkboxOpts,
13498
13589
  expandColumn = $xetable.expandColumn,
13499
13590
  hasFixedColumn = $xetable.hasFixedColumn,
13500
13591
  fullAllDataRowIdData = $xetable.fullAllDataRowIdData,
13501
13592
  rowOpts = $xetable.rowOpts;
13593
+ var childrenField = treeOpts.children || treeOpts.childrenField;
13502
13594
  var rows = [];
13503
13595
  tableData.forEach(function (row, $rowIndex) {
13504
13596
  var trOn = {};
@@ -13509,7 +13601,7 @@ function renderRows(h, _vm, $xetable, fixedType, tableData, tableColumn) {
13509
13601
  // 事件绑定
13510
13602
  if (rowOpts.isHover || highlightHoverRow) {
13511
13603
  trOn.mouseenter = function (evnt) {
13512
- if (isOperateMouse($xetable)) {
13604
+ if (isVMScrollProcess($xetable)) {
13513
13605
  return;
13514
13606
  }
13515
13607
  $xetable.triggerHoverEvent(evnt, {
@@ -13518,7 +13610,7 @@ function renderRows(h, _vm, $xetable, fixedType, tableData, tableColumn) {
13518
13610
  });
13519
13611
  };
13520
13612
  trOn.mouseleave = function () {
13521
- if (isOperateMouse($xetable)) {
13613
+ if (isVMScrollProcess($xetable)) {
13522
13614
  return;
13523
13615
  }
13524
13616
  $xetable.clearHoverRow();
@@ -13540,7 +13632,7 @@ function renderRows(h, _vm, $xetable, fixedType, tableData, tableColumn) {
13540
13632
  $rowIndex: $rowIndex
13541
13633
  };
13542
13634
  // 行是否被展开
13543
- var isExpandRow = expandColumn && rowExpandeds.length && rowExpandeds.indexOf(row) > -1;
13635
+ var isExpandRow = expandColumn && !!rowExpandedMaps[rowid];
13544
13636
  // 树节点是否被展开
13545
13637
  var isExpandTree = false;
13546
13638
  var rowChildren = [];
@@ -13549,9 +13641,9 @@ function renderRows(h, _vm, $xetable, fixedType, tableData, tableColumn) {
13549
13641
  if (editConfig) {
13550
13642
  isNewRow = $xetable.isInsertByRow(row);
13551
13643
  }
13552
- if (treeConfig && !scrollYLoad && !treeOpts.transform && treeExpandeds.length) {
13553
- rowChildren = row[treeOpts.children];
13554
- isExpandTree = rowChildren && rowChildren.length && treeExpandeds.indexOf(row) > -1;
13644
+ if (treeConfig && !scrollYLoad && !treeOpts.transform) {
13645
+ rowChildren = row[childrenField];
13646
+ isExpandTree = rowChildren && rowChildren.length && !!treeExpandedMaps[rowid];
13555
13647
  }
13556
13648
  rows.push(h('tr', {
13557
13649
  "class": ['vxe-body--row', treeConfig ? "row--level-".concat(rowLevel) : '', {
@@ -13560,7 +13652,7 @@ function renderRows(h, _vm, $xetable, fixedType, tableData, tableColumn) {
13560
13652
  'is--expand-row': isExpandRow,
13561
13653
  'is--expand-tree': isExpandTree,
13562
13654
  'row--new': isNewRow && (editOpts.showStatus || editOpts.showInsertStatus),
13563
- 'row--radio': radioOpts.highlight && $xetable.selectRow === row,
13655
+ 'row--radio': radioOpts.highlight && $xetable.selectRadioRow === row,
13564
13656
  'row--checked': checkboxOpts.highlight && $xetable.isCheckedByCheckboxRow(row)
13565
13657
  }, rowClassName ? external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isFunction(rowClassName) ? rowClassName(params) : rowClassName : ''],
13566
13658
  attrs: {
@@ -13700,8 +13792,10 @@ function syncBodyScroll(_vm, fixedType, scrollTop, elem1, elem2) {
13700
13792
  },
13701
13793
  beforeDestroy: function beforeDestroy() {
13702
13794
  clearTimeout(this.wheelTime);
13703
- this.$el._onscroll = null;
13704
- this.$el.onscroll = null;
13795
+ if (this.$el) {
13796
+ this.$el._onscroll = null;
13797
+ this.$el.onscroll = null;
13798
+ }
13705
13799
  },
13706
13800
  destroyed: function destroyed() {
13707
13801
  var $xetable = this.$parent,
@@ -14980,22 +15074,22 @@ var Cell = {
14980
15074
  var $table = params.$table,
14981
15075
  isHidden = params.isHidden;
14982
15076
  var treeOpts = $table.treeOpts,
14983
- treeExpandeds = $table.treeExpandeds,
14984
- treeLazyLoadeds = $table.treeLazyLoadeds;
15077
+ treeExpandedMaps = $table.treeExpandedMaps,
15078
+ treeExpandLazyLoadedMaps = $table.treeExpandLazyLoadedMaps;
14985
15079
  var row = params.row,
14986
15080
  column = params.column,
14987
15081
  level = params.level;
14988
15082
  var slots = column.slots;
14989
- var children = treeOpts.children,
14990
- hasChild = treeOpts.hasChild,
14991
- indent = treeOpts.indent,
15083
+ var indent = treeOpts.indent,
14992
15084
  lazy = treeOpts.lazy,
14993
15085
  trigger = treeOpts.trigger,
14994
15086
  iconLoaded = treeOpts.iconLoaded,
14995
15087
  showIcon = treeOpts.showIcon,
14996
15088
  iconOpen = treeOpts.iconOpen,
14997
15089
  iconClose = treeOpts.iconClose;
14998
- var rowChilds = row[children];
15090
+ var childrenField = treeOpts.children || treeOpts.childrenField;
15091
+ var hasChildField = treeOpts.hasChild || treeOpts.hasChildField;
15092
+ var rowChilds = row[childrenField];
14999
15093
  var hasLazyChilds = false;
15000
15094
  var isAceived = false;
15001
15095
  var isLazyLoaded = false;
@@ -15004,10 +15098,11 @@ var Cell = {
15004
15098
  return $table.callSlot(slots.icon, params, h, cellVNodes);
15005
15099
  }
15006
15100
  if (!isHidden) {
15007
- isAceived = $table.findRowIndexOf(treeExpandeds, row) > -1;
15101
+ var rowid = getRowid($table, row);
15102
+ isAceived = !!treeExpandedMaps[rowid];
15008
15103
  if (lazy) {
15009
- isLazyLoaded = $table.findRowIndexOf(treeLazyLoadeds, row) > -1;
15010
- hasLazyChilds = row[hasChild];
15104
+ isLazyLoaded = !!treeExpandLazyLoadedMaps[rowid];
15105
+ hasLazyChilds = row[hasChildField];
15011
15106
  }
15012
15107
  }
15013
15108
  if (!trigger || trigger === 'default') {
@@ -15075,7 +15170,7 @@ var Cell = {
15075
15170
  column = params.column,
15076
15171
  isHidden = params.isHidden;
15077
15172
  var radioOpts = $table.radioOpts,
15078
- selectRow = $table.selectRow;
15173
+ selectRadioRow = $table.selectRadioRow;
15079
15174
  var slots = column.slots;
15080
15175
  var labelField = radioOpts.labelField,
15081
15176
  checkMethod = radioOpts.checkMethod,
@@ -15083,7 +15178,7 @@ var Cell = {
15083
15178
  var row = params.row;
15084
15179
  var defaultSlot = slots ? slots["default"] : null;
15085
15180
  var radioSlot = slots ? slots.radio : null;
15086
- var isChecked = row === selectRow;
15181
+ var isChecked = row === selectRadioRow;
15087
15182
  var isVisible = !visibleMethod || visibleMethod({
15088
15183
  row: row
15089
15184
  });
@@ -15195,8 +15290,8 @@ var Cell = {
15195
15290
  column = params.column,
15196
15291
  isHidden = params.isHidden;
15197
15292
  var treeConfig = $table.treeConfig,
15198
- treeIndeterminates = $table.treeIndeterminates,
15199
- selectCheckboxRows = $table.selectCheckboxRows;
15293
+ treeIndeterminateMaps = $table.treeIndeterminateMaps,
15294
+ selectCheckboxMaps = $table.selectCheckboxMaps;
15200
15295
  var _$table$checkboxOpts = $table.checkboxOpts,
15201
15296
  labelField = _$table$checkboxOpts.labelField,
15202
15297
  checkMethod = _$table$checkboxOpts.checkMethod,
@@ -15212,7 +15307,8 @@ var Cell = {
15212
15307
  var isDisabled = !!checkMethod;
15213
15308
  var on;
15214
15309
  if (!isHidden) {
15215
- isChecked = $table.findRowIndexOf(selectCheckboxRows, row) > -1;
15310
+ var rowid = getRowid($table, row);
15311
+ isChecked = !!selectCheckboxMaps[rowid];
15216
15312
  on = {
15217
15313
  click: function click(evnt) {
15218
15314
  if (!isDisabled && isVisible) {
@@ -15227,7 +15323,7 @@ var Cell = {
15227
15323
  });
15228
15324
  }
15229
15325
  if (treeConfig) {
15230
- indeterminate = $table.findRowIndexOf(treeIndeterminates, row) > -1;
15326
+ indeterminate = !!treeIndeterminateMaps[rowid];
15231
15327
  }
15232
15328
  }
15233
15329
  var checkboxParams = _objectSpread2(_objectSpread2({}, params), {}, {
@@ -15268,17 +15364,17 @@ var Cell = {
15268
15364
  column = params.column,
15269
15365
  isHidden = params.isHidden;
15270
15366
  var treeConfig = $table.treeConfig,
15271
- treeIndeterminates = $table.treeIndeterminates;
15272
- var _$table$checkboxOpts2 = $table.checkboxOpts,
15273
- labelField = _$table$checkboxOpts2.labelField,
15274
- checkField = _$table$checkboxOpts2.checkField,
15275
- halfField = _$table$checkboxOpts2.halfField,
15276
- checkMethod = _$table$checkboxOpts2.checkMethod,
15277
- visibleMethod = _$table$checkboxOpts2.visibleMethod;
15367
+ treeIndeterminateMaps = $table.treeIndeterminateMaps,
15368
+ checkboxOpts = $table.checkboxOpts;
15369
+ var labelField = checkboxOpts.labelField,
15370
+ checkField = checkboxOpts.checkField,
15371
+ checkMethod = checkboxOpts.checkMethod,
15372
+ visibleMethod = checkboxOpts.visibleMethod;
15373
+ var indeterminateField = checkboxOpts.indeterminateField || checkboxOpts.halfField;
15278
15374
  var slots = column.slots;
15279
15375
  var defaultSlot = slots ? slots["default"] : null;
15280
15376
  var checkboxSlot = slots ? slots.checkbox : null;
15281
- var indeterminate = false;
15377
+ var isIndeterminate = false;
15282
15378
  var isChecked = false;
15283
15379
  var isVisible = !visibleMethod || visibleMethod({
15284
15380
  row: row
@@ -15286,6 +15382,7 @@ var Cell = {
15286
15382
  var isDisabled = !!checkMethod;
15287
15383
  var on;
15288
15384
  if (!isHidden) {
15385
+ var rowid = getRowid($table, row);
15289
15386
  isChecked = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(row, checkField);
15290
15387
  on = {
15291
15388
  click: function click(evnt) {
@@ -15301,14 +15398,14 @@ var Cell = {
15301
15398
  });
15302
15399
  }
15303
15400
  if (treeConfig) {
15304
- indeterminate = $table.findRowIndexOf(treeIndeterminates, row) > -1;
15401
+ isIndeterminate = !!treeIndeterminateMaps[rowid];
15305
15402
  }
15306
15403
  }
15307
15404
  var checkboxParams = _objectSpread2(_objectSpread2({}, params), {}, {
15308
15405
  checked: isChecked,
15309
15406
  disabled: isDisabled,
15310
15407
  visible: isVisible,
15311
- indeterminate: indeterminate
15408
+ indeterminate: isIndeterminate
15312
15409
  });
15313
15410
  if (checkboxSlot) {
15314
15411
  return $table.callSlot(checkboxSlot, checkboxParams, h);
@@ -15316,7 +15413,7 @@ var Cell = {
15316
15413
  var checkVNs = [];
15317
15414
  if (isVisible) {
15318
15415
  checkVNs.push(h('span', {
15319
- "class": ['vxe-checkbox--icon', indeterminate ? conf.icon.TABLE_CHECKBOX_INDETERMINATE : isChecked ? conf.icon.TABLE_CHECKBOX_CHECKED : conf.icon.TABLE_CHECKBOX_UNCHECKED]
15416
+ "class": ['vxe-checkbox--icon', isIndeterminate ? conf.icon.TABLE_CHECKBOX_INDETERMINATE : isChecked ? conf.icon.TABLE_CHECKBOX_CHECKED : conf.icon.TABLE_CHECKBOX_UNCHECKED]
15320
15417
  }));
15321
15418
  }
15322
15419
  if (defaultSlot || labelField) {
@@ -15328,7 +15425,7 @@ var Cell = {
15328
15425
  "class": ['vxe-cell--checkbox', {
15329
15426
  'is--checked': isChecked,
15330
15427
  'is--disabled': isDisabled,
15331
- 'is--indeterminate': halfField && !isChecked ? row[halfField] : indeterminate
15428
+ 'is--indeterminate': indeterminateField && !isChecked ? row[indeterminateField] : isIndeterminate
15332
15429
  }],
15333
15430
  on: on
15334
15431
  }, checkVNs)];
@@ -15345,8 +15442,8 @@ var Cell = {
15345
15442
  row = params.row,
15346
15443
  column = params.column;
15347
15444
  var expandOpts = $table.expandOpts,
15348
- rowExpandeds = $table.rowExpandeds,
15349
- expandLazyLoadeds = $table.expandLazyLoadeds;
15445
+ rowExpandedMaps = $table.rowExpandedMaps,
15446
+ rowExpandLazyLoadedMaps = $table.rowExpandLazyLoadedMaps;
15350
15447
  var lazy = expandOpts.lazy,
15351
15448
  labelField = expandOpts.labelField,
15352
15449
  iconLoaded = expandOpts.iconLoaded,
@@ -15362,9 +15459,10 @@ var Cell = {
15362
15459
  return $table.callSlot(slots.icon, params, h);
15363
15460
  }
15364
15461
  if (!isHidden) {
15365
- isAceived = $table.findRowIndexOf(rowExpandeds, params.row) > -1;
15462
+ var rowid = getRowid($table, row);
15463
+ isAceived = !!rowExpandedMaps[rowid];
15366
15464
  if (lazy) {
15367
- isLazyLoaded = $table.findRowIndexOf(expandLazyLoadeds, row) > -1;
15465
+ isLazyLoaded = !!rowExpandLazyLoadedMaps[rowid];
15368
15466
  }
15369
15467
  }
15370
15468
  return [showIcon && (!visibleMethod || visibleMethod(params)) ? h('span', {
@@ -15494,7 +15592,9 @@ var Cell = {
15494
15592
  },
15495
15593
  on: {
15496
15594
  click: function click(evnt) {
15497
- $table.triggerFilterEvent(evnt, params.column, params);
15595
+ if ($table.triggerFilterEvent) {
15596
+ $table.triggerFilterEvent(evnt, params.column, params);
15597
+ }
15498
15598
  }
15499
15599
  }
15500
15600
  })])] : [];
@@ -15623,7 +15723,6 @@ var Cell = {
15623
15723
 
15624
15724
 
15625
15725
 
15626
-
15627
15726
 
15628
15727
 
15629
15728
  var setCellValue = utils.setCellValue,
@@ -15672,12 +15771,16 @@ function getCustomStorageMap(key) {
15672
15771
  _v: version
15673
15772
  };
15674
15773
  }
15675
- function getRecoverRow(_vm, list) {
15676
- var fullAllDataRowMap = _vm.fullAllDataRowMap;
15677
- return list.filter(function (row) {
15678
- return fullAllDataRowMap.has(row);
15774
+ var getRecoverRowMaps = function getRecoverRowMaps(_vm, keyMaps) {
15775
+ var fullAllDataRowIdData = _vm.fullAllDataRowIdData;
15776
+ var restKeys = {};
15777
+ external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().each(keyMaps, function (row, rowid) {
15778
+ if (fullAllDataRowIdData[rowid]) {
15779
+ restKeys[rowid] = row;
15780
+ }
15679
15781
  });
15680
- }
15782
+ return restKeys;
15783
+ };
15681
15784
  function handleReserveRow(_vm, reserveRowMap) {
15682
15785
  var fullDataRowIdData = _vm.fullDataRowIdData;
15683
15786
  var reserveList = [];
@@ -16029,6 +16132,7 @@ var Methods = {
16029
16132
  oldScrollYLoad = this.scrollYLoad,
16030
16133
  sXOpts = this.sXOpts,
16031
16134
  sYOpts = this.sYOpts;
16135
+ var childrenField = treeOpts.children || treeOpts.childrenField;
16032
16136
  var treeData = [];
16033
16137
  var fullData = datas ? datas.slice(0) : [];
16034
16138
  if (treeConfig) {
@@ -16038,8 +16142,8 @@ var Methods = {
16038
16142
  treeData = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toArrayTree(fullData, {
16039
16143
  key: treeOpts.rowField,
16040
16144
  parentKey: treeOpts.parentField,
16041
- children: treeOpts.children,
16042
- mapChildren: treeOpts.mapChildren
16145
+ children: childrenField,
16146
+ mapChildren: treeOpts.mapChildrenField
16043
16147
  });
16044
16148
  fullData = treeData.slice(0);
16045
16149
  } else {
@@ -16247,6 +16351,8 @@ var Methods = {
16247
16351
  tableFullTreeData = this.tableFullTreeData;
16248
16352
  var fullDataRowIdData = this.fullDataRowIdData,
16249
16353
  fullAllDataRowIdData = this.fullAllDataRowIdData;
16354
+ var childrenField = treeOpts.children || treeOpts.childrenField;
16355
+ var hasChildField = treeOpts.hasChild || treeOpts.hasChildField;
16250
16356
  var rowkey = getRowkey(this);
16251
16357
  var isLazy = treeConfig && treeOpts.lazy;
16252
16358
  var handleCache = function handleCache(row, index, items, path, parent, nodes) {
@@ -16257,8 +16363,8 @@ var Methods = {
16257
16363
  rowid = getRowUniqueId();
16258
16364
  external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().set(row, rowkey, rowid);
16259
16365
  }
16260
- if (isLazy && row[treeOpts.hasChild] && external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isUndefined(row[treeOpts.children])) {
16261
- row[treeOpts.children] = null;
16366
+ if (isLazy && row[hasChildField] && external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isUndefined(row[childrenField])) {
16367
+ row[childrenField] = null;
16262
16368
  }
16263
16369
  var rest = {
16264
16370
  row: row,
@@ -16285,7 +16391,9 @@ var Methods = {
16285
16391
  fullAllDataRowIdData = this.fullAllDataRowIdData = {};
16286
16392
  fullAllDataRowMap.clear();
16287
16393
  if (treeConfig) {
16288
- external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree(tableFullTreeData, handleCache, treeOpts);
16394
+ external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree(tableFullTreeData, handleCache, {
16395
+ children: childrenField
16396
+ });
16289
16397
  } else {
16290
16398
  tableFullData.forEach(handleCache);
16291
16399
  }
@@ -16311,7 +16419,10 @@ var Methods = {
16311
16419
  };
16312
16420
  // 源数据缓存
16313
16421
  if (treeConfig && !treeOpts.transform) {
16314
- external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree(sourceData, handleSourceRow, treeOpts);
16422
+ var childrenField = treeOpts.children || treeOpts.childrenField;
16423
+ external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree(sourceData, handleSourceRow, {
16424
+ children: treeOpts.transform ? treeOpts.mapChildrenField : childrenField
16425
+ });
16315
16426
  } else {
16316
16427
  sourceData.forEach(handleSourceRow);
16317
16428
  }
@@ -16325,10 +16436,11 @@ var Methods = {
16325
16436
  fullDataRowIdData = this.fullDataRowIdData,
16326
16437
  fullDataRowMap = this.fullDataRowMap,
16327
16438
  fullAllDataRowMap = this.fullAllDataRowMap,
16328
- fullAllDataRowIdData = this.fullAllDataRowIdData;
16439
+ fullAllDataRowIdData = this.fullAllDataRowIdData,
16440
+ sourceDataRowIdData = this.sourceDataRowIdData;
16329
16441
  var transform = treeOpts.transform,
16330
- children = treeOpts.children,
16331
- mapChildren = treeOpts.mapChildren;
16442
+ mapChildrenField = treeOpts.mapChildrenField;
16443
+ var childrenField = treeOpts.children || treeOpts.childrenField;
16332
16444
  var rest = fullAllDataRowIdData[getRowid(this, row)];
16333
16445
  var parentLevel = rest ? rest.level : 0;
16334
16446
  return this.createData(childRecords).then(function (rows) {
@@ -16336,10 +16448,16 @@ var Methods = {
16336
16448
  var rowid = getRowid(_this12, row);
16337
16449
  var matchObj = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().findTree(tableSourceData, function (item) {
16338
16450
  return rowid === getRowid(_this12, item);
16339
- }, treeOpts);
16451
+ }, {
16452
+ children: childrenField
16453
+ });
16340
16454
  if (matchObj) {
16341
- matchObj.item[children] = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().clone(rows, true);
16455
+ matchObj.item[childrenField] = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().clone(rows, true);
16342
16456
  }
16457
+ rows.forEach(function (childRow) {
16458
+ var rowid = getRowid(_this12, childRow);
16459
+ sourceDataRowIdData[rowid] = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().clone(childRow, true);
16460
+ });
16343
16461
  }
16344
16462
  external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree(rows, function (childRow, index, items, path, parent, nodes) {
16345
16463
  var rowid = getRowid(_this12, childRow);
@@ -16358,10 +16476,12 @@ var Methods = {
16358
16476
  fullDataRowMap.set(childRow, rest);
16359
16477
  fullAllDataRowIdData[rowid] = rest;
16360
16478
  fullAllDataRowMap.set(childRow, rest);
16361
- }, treeOpts);
16362
- row[children] = rows;
16479
+ }, {
16480
+ children: childrenField
16481
+ });
16482
+ row[childrenField] = rows;
16363
16483
  if (transform) {
16364
- row[mapChildren] = rows;
16484
+ row[mapChildrenField] = rows;
16365
16485
  }
16366
16486
  _this12.updateAfterDataIndex();
16367
16487
  return rows;
@@ -16587,6 +16707,7 @@ var Methods = {
16587
16707
  treeConfig = this.treeConfig,
16588
16708
  treeOpts = this.treeOpts,
16589
16709
  expandOpts = this.expandOpts;
16710
+ var childrenField = treeOpts.children || treeOpts.childrenField;
16590
16711
  var rowkey = getRowkey(this);
16591
16712
  if (!external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isArray(records)) {
16592
16713
  records = [records || {}];
@@ -16616,8 +16737,8 @@ var Methods = {
16616
16737
  external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().set(record, key, null);
16617
16738
  }
16618
16739
  });
16619
- if (treeConfig && treeOpts.lazy && external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isUndefined(record[treeOpts.children])) {
16620
- record[treeOpts.children] = null;
16740
+ if (treeConfig && treeOpts.lazy && external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isUndefined(record[childrenField])) {
16741
+ record[childrenField] = null;
16621
16742
  }
16622
16743
  // 必须有行数据的唯一主键,可以自行设置;也可以默认生成一个随机数
16623
16744
  if (eqEmptyValue(external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(record, rowkey))) {
@@ -16825,18 +16946,18 @@ var Methods = {
16825
16946
  * 用于多选行,获取已选中的数据
16826
16947
  */
16827
16948
  getCheckboxRecords: function getCheckboxRecords(isFull) {
16828
- var _this17 = this;
16829
16949
  var tableFullData = this.tableFullData,
16830
16950
  afterFullData = this.afterFullData,
16831
16951
  treeConfig = this.treeConfig,
16832
16952
  treeOpts = this.treeOpts,
16833
16953
  checkboxOpts = this.checkboxOpts,
16834
16954
  tableFullTreeData = this.tableFullTreeData,
16835
- afterTreeFullData = this.afterTreeFullData;
16955
+ afterTreeFullData = this.afterTreeFullData,
16956
+ afterFullRowMaps = this.afterFullRowMaps;
16836
16957
  var transform = treeOpts.transform,
16837
- children = treeOpts.children,
16838
- mapChildren = treeOpts.mapChildren;
16958
+ mapChildrenField = treeOpts.mapChildrenField;
16839
16959
  var checkField = checkboxOpts.checkField;
16960
+ var childrenField = treeOpts.children || treeOpts.childrenField;
16840
16961
  var currTableData = isFull ? transform ? tableFullTreeData : tableFullData : transform ? afterTreeFullData : afterFullData;
16841
16962
  var rowList = [];
16842
16963
  if (checkField) {
@@ -16844,7 +16965,7 @@ var Methods = {
16844
16965
  rowList = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().filterTree(currTableData, function (row) {
16845
16966
  return external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(row, checkField);
16846
16967
  }, {
16847
- children: transform ? mapChildren : children
16968
+ children: transform ? mapChildrenField : childrenField
16848
16969
  });
16849
16970
  } else {
16850
16971
  rowList = currTableData.filter(function (row) {
@@ -16852,18 +16973,13 @@ var Methods = {
16852
16973
  });
16853
16974
  }
16854
16975
  } else {
16855
- var selectCheckboxRows = this.selectCheckboxRows;
16856
- if (treeConfig) {
16857
- rowList = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().filterTree(currTableData, function (row) {
16858
- return _this17.findRowIndexOf(selectCheckboxRows, row) > -1;
16859
- }, {
16860
- children: transform ? mapChildren : children
16861
- });
16862
- } else {
16863
- rowList = currTableData.filter(function (row) {
16864
- return _this17.findRowIndexOf(selectCheckboxRows, row) > -1;
16865
- });
16866
- }
16976
+ var selectCheckboxMaps = this.selectCheckboxMaps,
16977
+ fullDataRowIdData = this.fullDataRowIdData;
16978
+ external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().each(selectCheckboxMaps, function (row, rowid) {
16979
+ if (isFull ? fullDataRowIdData[rowid] : afterFullRowMaps[rowid]) {
16980
+ rowList.push(row);
16981
+ }
16982
+ });
16867
16983
  }
16868
16984
  return rowList;
16869
16985
  },
@@ -16872,21 +16988,24 @@ var Methods = {
16872
16988
  * @returns
16873
16989
  */
16874
16990
  handleVirtualTreeToList: function handleVirtualTreeToList() {
16991
+ var _this17 = this;
16875
16992
  var treeOpts = this.treeOpts,
16876
16993
  treeConfig = this.treeConfig,
16877
- treeExpandeds = this.treeExpandeds,
16994
+ treeExpandedMaps = this.treeExpandedMaps,
16878
16995
  afterTreeFullData = this.afterTreeFullData,
16879
16996
  afterFullData = this.afterFullData;
16880
16997
  if (treeConfig && treeOpts.transform) {
16881
16998
  var fullData = [];
16882
- var expandMaps = new Map();
16999
+ var expandMaps = {};
16883
17000
  external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree(afterTreeFullData, function (row, index, items, path, parent) {
16884
- if (!parent || expandMaps.has(parent) && treeExpandeds.indexOf(parent) > -1) {
16885
- expandMaps.set(row, 1);
17001
+ var rowid = getRowid(_this17, row);
17002
+ var parentRowid = getRowid(_this17, parent);
17003
+ if (!parent || expandMaps[parentRowid] && treeExpandedMaps[parentRowid]) {
17004
+ expandMaps[rowid] = 1;
16886
17005
  fullData.push(row);
16887
17006
  }
16888
17007
  }, {
16889
- children: treeOpts.mapChildren
17008
+ children: treeOpts.mapChildrenField
16890
17009
  });
16891
17010
  this.afterFullData = fullData;
16892
17011
  this.updateScrollYStatus(fullData);
@@ -17111,6 +17230,8 @@ var Methods = {
17111
17230
  fullAllDataRowIdData = this.fullAllDataRowIdData,
17112
17231
  afterTreeFullData = this.afterTreeFullData,
17113
17232
  treeOpts = this.treeOpts;
17233
+ var childrenField = treeOpts.children || treeOpts.childrenField;
17234
+ var fullMaps = {};
17114
17235
  if (treeConfig) {
17115
17236
  external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree(afterTreeFullData, function (row, index, items, path) {
17116
17237
  var rowid = getRowid(_this19, row);
@@ -17136,8 +17257,9 @@ var Methods = {
17136
17257
  fullAllDataRowIdData[rowid] = rest;
17137
17258
  fullDataRowIdData[rowid] = rest;
17138
17259
  }
17260
+ fullMaps[rowid] = row;
17139
17261
  }, {
17140
- children: treeOpts.transform ? treeOpts.mapChildren : treeOpts.children
17262
+ children: treeOpts.transform ? treeOpts.mapChildrenField : childrenField
17141
17263
  });
17142
17264
  } else {
17143
17265
  afterFullData.forEach(function (row, index) {
@@ -17162,8 +17284,10 @@ var Methods = {
17162
17284
  fullAllDataRowIdData[rowid] = rest;
17163
17285
  fullDataRowIdData[rowid] = rest;
17164
17286
  }
17287
+ fullMaps[rowid] = row;
17165
17288
  });
17166
17289
  }
17290
+ this.afterFullRowMaps = fullMaps;
17167
17291
  },
17168
17292
  /**
17169
17293
  * 只对 tree-config 有效,获取行的父级
@@ -17302,7 +17426,7 @@ var Methods = {
17302
17426
  */
17303
17427
  showColumn: function showColumn(fieldOrColumn) {
17304
17428
  var column = handleFieldOrColumn(this, fieldOrColumn);
17305
- if (column && column.visible) {
17429
+ if (column && !column.visible) {
17306
17430
  column.visible = true;
17307
17431
  return this.handleCustom();
17308
17432
  }
@@ -18452,6 +18576,7 @@ var Methods = {
18452
18576
  var operArrow = isLeftArrow || isUpArrow || isRightArrow || isDwArrow;
18453
18577
  var operCtxMenu = isCtxMenu && ctxMenuStore.visible && (isEnter || isSpacebar || operArrow);
18454
18578
  var isEditStatus = isEnableConf(editConfig) && actived.column && actived.row;
18579
+ var childrenField = treeOpts.children || treeOpts.childrenField;
18455
18580
  var params;
18456
18581
  if (filterStore.visible) {
18457
18582
  if (isEsc) {
@@ -18526,7 +18651,7 @@ var Methods = {
18526
18651
  }
18527
18652
  } else if (treeConfig && (rowOpts.isCurrent || highlightCurrentRow) && currentRow) {
18528
18653
  // 如果是树形表格当前行回车移动到子节点
18529
- var childrens = currentRow[treeOpts.children];
18654
+ var childrens = currentRow[childrenField];
18530
18655
  if (childrens && childrens.length) {
18531
18656
  evnt.preventDefault();
18532
18657
  var targetRow = childrens[0];
@@ -18596,7 +18721,9 @@ var Methods = {
18596
18721
  // 如果树形表格回退键关闭当前行返回父节点
18597
18722
  var _XEUtils$findTree = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().findTree(_this29.afterFullData, function (item) {
18598
18723
  return item === currentRow;
18599
- }, treeOpts),
18724
+ }, {
18725
+ children: childrenField
18726
+ }),
18600
18727
  parentRow = _XEUtils$findTree.parent;
18601
18728
  if (parentRow) {
18602
18729
  evnt.preventDefault();
@@ -18902,15 +19029,24 @@ var Methods = {
18902
19029
  * 获取复选框半选状态的行数据
18903
19030
  */
18904
19031
  getCheckboxIndeterminateRecords: function getCheckboxIndeterminateRecords(isFull) {
18905
- var _this31 = this;
18906
19032
  var treeConfig = this.treeConfig,
18907
- treeIndeterminates = this.treeIndeterminates,
19033
+ treeIndeterminateMaps = this.treeIndeterminateMaps,
18908
19034
  fullDataRowIdData = this.fullDataRowIdData;
18909
19035
  if (treeConfig) {
18910
- return isFull ? treeIndeterminates.slice(0) : treeIndeterminates.filter(function (row) {
18911
- var rowid = getRowid(_this31, row);
18912
- return fullDataRowIdData[rowid];
19036
+ var fullRest = [];
19037
+ var defRest = [];
19038
+ external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().each(treeIndeterminateMaps, function (item, rowid) {
19039
+ if (item) {
19040
+ fullRest.push(item);
19041
+ if (fullDataRowIdData[rowid]) {
19042
+ defRest.push(item);
19043
+ }
19044
+ }
18913
19045
  });
19046
+ if (isFull) {
19047
+ return fullRest;
19048
+ }
19049
+ return defRest;
18914
19050
  }
18915
19051
  return [];
18916
19052
  },
@@ -18935,12 +19071,12 @@ var Methods = {
18935
19071
  }
18936
19072
  },
18937
19073
  handleCheckedCheckboxRow: function handleCheckedCheckboxRow(rows, value, isForce) {
18938
- var _this32 = this;
19074
+ var _this31 = this;
18939
19075
  if (rows && !external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isArray(rows)) {
18940
19076
  rows = [rows];
18941
19077
  }
18942
19078
  rows.forEach(function (row) {
18943
- return _this32.handleSelectRow({
19079
+ return _this31.handleSelectRow({
18944
19080
  row: row
18945
19081
  }, !!value, isForce);
18946
19082
  });
@@ -18955,78 +19091,108 @@ var Methods = {
18955
19091
  return this.handleCheckedCheckboxRow(rows, value, true);
18956
19092
  },
18957
19093
  isCheckedByCheckboxRow: function isCheckedByCheckboxRow(row) {
18958
- var selectCheckboxRows = this.selectCheckboxRows;
19094
+ var selectCheckboxMaps = this.selectCheckboxMaps;
18959
19095
  var checkField = this.checkboxOpts.checkField;
18960
19096
  if (checkField) {
18961
19097
  return external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(row, checkField);
18962
19098
  }
18963
- return this.findRowIndexOf(selectCheckboxRows, row) > -1;
19099
+ return !!selectCheckboxMaps[getRowid(this, row)];
18964
19100
  },
18965
19101
  isIndeterminateByCheckboxRow: function isIndeterminateByCheckboxRow(row) {
18966
- var treeIndeterminates = this.treeIndeterminates;
18967
- return this.findRowIndexOf(treeIndeterminates, row) > -1 && !this.isCheckedByCheckboxRow(row);
19102
+ var treeIndeterminateMaps = this.treeIndeterminateMaps;
19103
+ return !!treeIndeterminateMaps[getRowid(this, row)] && !this.isCheckedByCheckboxRow(row);
18968
19104
  },
18969
19105
  /**
18970
19106
  * 多选,行选中事件
18971
19107
  * value 选中true 不选false 半选-1
18972
19108
  */
18973
19109
  handleSelectRow: function handleSelectRow(_ref6, value, isForce) {
18974
- var _this33 = this;
19110
+ var _this32 = this;
18975
19111
  var row = _ref6.row;
18976
- var selectCheckboxRows = this.selectCheckboxRows,
19112
+ var selectCheckboxMaps = this.selectCheckboxMaps,
18977
19113
  afterFullData = this.afterFullData,
18978
19114
  treeConfig = this.treeConfig,
18979
19115
  treeOpts = this.treeOpts,
18980
- treeIndeterminates = this.treeIndeterminates,
19116
+ treeIndeterminateMaps = this.treeIndeterminateMaps,
18981
19117
  checkboxOpts = this.checkboxOpts;
18982
19118
  var checkField = checkboxOpts.checkField,
18983
19119
  checkStrictly = checkboxOpts.checkStrictly,
18984
19120
  checkMethod = checkboxOpts.checkMethod;
19121
+ var selectRowMaps = _objectSpread2({}, selectCheckboxMaps);
19122
+ var childrenField = treeOpts.children || treeOpts.childrenField;
19123
+ var indeterminateField = checkboxOpts.indeterminateField || checkboxOpts.halfField;
19124
+ var rowid = getRowid(this, row);
18985
19125
  if (checkField) {
18986
19126
  if (treeConfig && !checkStrictly) {
18987
19127
  if (value === -1) {
18988
- if (this.findRowIndexOf(treeIndeterminates, row) === -1) {
18989
- treeIndeterminates.push(row);
19128
+ if (!treeIndeterminateMaps[rowid]) {
19129
+ if (indeterminateField) {
19130
+ external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().set(row, indeterminateField, true);
19131
+ }
19132
+ treeIndeterminateMaps[rowid] = row;
18990
19133
  }
18991
19134
  external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().set(row, checkField, false);
18992
19135
  } else {
18993
19136
  // 更新子节点状态
18994
19137
  external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree([row], function (item) {
18995
- if (_this33.eqRow(item, row) || isForce || !checkMethod || checkMethod({
19138
+ if (_this32.eqRow(item, row) || isForce || !checkMethod || checkMethod({
18996
19139
  row: item
18997
19140
  })) {
18998
19141
  external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().set(item, checkField, value);
18999
- external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().remove(treeIndeterminates, function (half) {
19000
- return _this33.eqRow(half, item);
19001
- });
19002
- _this33.handleCheckboxReserveRow(row, value);
19142
+ if (indeterminateField) {
19143
+ external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().set(row, indeterminateField, false);
19144
+ }
19145
+ delete treeIndeterminateMaps[getRowid(_this32, item)];
19146
+ _this32.handleCheckboxReserveRow(row, value);
19003
19147
  }
19004
- }, treeOpts);
19148
+ }, {
19149
+ children: childrenField
19150
+ });
19005
19151
  }
19006
19152
  // 如果存在父节点,更新父节点状态
19007
19153
  var matchObj = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().findTree(afterFullData, function (item) {
19008
- return _this33.eqRow(item, row);
19009
- }, treeOpts);
19154
+ return _this32.eqRow(item, row);
19155
+ }, {
19156
+ children: childrenField
19157
+ });
19010
19158
  if (matchObj && matchObj.parent) {
19011
19159
  var parentStatus;
19012
- var vItems = !isForce && checkMethod ? matchObj.items.filter(function (item) {
19013
- return checkMethod({
19014
- row: item
19160
+ var vItems = [];
19161
+ var vItemMaps = {};
19162
+ if (!isForce && checkMethod) {
19163
+ matchObj.items.forEach(function (item) {
19164
+ if (checkMethod({
19165
+ row: item
19166
+ })) {
19167
+ var itemRid = getRowid(_this32, item);
19168
+ vItemMaps[itemRid] = item;
19169
+ vItems.push(item);
19170
+ }
19171
+ });
19172
+ } else {
19173
+ matchObj.items.forEach(function (item) {
19174
+ var itemRid = getRowid(_this32, item);
19175
+ vItemMaps[itemRid] = item;
19176
+ vItems.push(item);
19015
19177
  });
19016
- }) : matchObj.items;
19178
+ }
19017
19179
  var indeterminatesItem = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().find(matchObj.items, function (item) {
19018
- return _this33.findRowIndexOf(treeIndeterminates, item) > -1;
19180
+ return !!treeIndeterminateMaps[getRowid(_this32, item)];
19019
19181
  });
19020
19182
  if (indeterminatesItem) {
19021
19183
  parentStatus = -1;
19022
19184
  } else {
19023
- var selectItems = matchObj.items.filter(function (item) {
19024
- return external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(item, checkField);
19185
+ var selectItems = [];
19186
+ matchObj.items.forEach(function (item) {
19187
+ if (external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(item, checkField)) {
19188
+ selectItems.push(item);
19189
+ }
19025
19190
  });
19026
19191
  parentStatus = selectItems.filter(function (item) {
19027
- return _this33.findRowIndexOf(vItems, item) > -1;
19192
+ return vItemMaps[getRowid(_this32, item)];
19028
19193
  }).length === vItems.length ? true : selectItems.length || value === -1 ? -1 : false;
19029
19194
  }
19195
+ this.selectCheckboxMaps = selectRowMaps;
19030
19196
  return this.handleSelectRow({
19031
19197
  row: matchObj.parent
19032
19198
  }, parentStatus, isForce);
@@ -19042,56 +19208,84 @@ var Methods = {
19042
19208
  } else {
19043
19209
  if (treeConfig && !checkStrictly) {
19044
19210
  if (value === -1) {
19045
- if (this.findRowIndexOf(treeIndeterminates, row) === -1) {
19046
- treeIndeterminates.push(row);
19211
+ if (!treeIndeterminateMaps[rowid]) {
19212
+ if (indeterminateField) {
19213
+ external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().set(row, indeterminateField, true);
19214
+ }
19215
+ treeIndeterminateMaps[rowid] = row;
19216
+ }
19217
+ if (selectRowMaps[rowid]) {
19218
+ delete selectRowMaps[rowid];
19047
19219
  }
19048
- external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().remove(selectCheckboxRows, function (item) {
19049
- return _this33.eqRow(item, row);
19050
- });
19051
19220
  } else {
19052
19221
  // 更新子节点状态
19053
19222
  external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree([row], function (item) {
19054
- if (_this33.eqRow(item, row) || isForce || !checkMethod || checkMethod({
19223
+ var itemRid = getRowid(_this32, item);
19224
+ if (_this32.eqRow(item, row) || isForce || !checkMethod || checkMethod({
19055
19225
  row: item
19056
19226
  })) {
19057
19227
  if (value) {
19058
- selectCheckboxRows.push(item);
19228
+ selectRowMaps[itemRid] = item;
19059
19229
  } else {
19060
- external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().remove(selectCheckboxRows, function (select) {
19061
- return _this33.eqRow(select, item);
19062
- });
19230
+ if (selectRowMaps[itemRid]) {
19231
+ delete selectRowMaps[itemRid];
19232
+ }
19063
19233
  }
19064
- external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().remove(treeIndeterminates, function (half) {
19065
- return _this33.eqRow(half, item);
19066
- });
19067
- _this33.handleCheckboxReserveRow(row, value);
19234
+ if (indeterminateField) {
19235
+ external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().set(row, indeterminateField, false);
19236
+ }
19237
+ delete treeIndeterminateMaps[getRowid(_this32, item)];
19238
+ _this32.handleCheckboxReserveRow(row, value);
19068
19239
  }
19069
- }, treeOpts);
19240
+ }, {
19241
+ children: childrenField
19242
+ });
19070
19243
  }
19071
19244
  // 如果存在父节点,更新父节点状态
19072
19245
  var _matchObj = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().findTree(afterFullData, function (item) {
19073
- return _this33.eqRow(item, row);
19074
- }, treeOpts);
19246
+ return _this32.eqRow(item, row);
19247
+ }, {
19248
+ children: childrenField
19249
+ });
19075
19250
  if (_matchObj && _matchObj.parent) {
19076
19251
  var _parentStatus;
19077
- var _vItems = !isForce && checkMethod ? _matchObj.items.filter(function (item) {
19078
- return checkMethod({
19079
- row: item
19252
+ var _vItems = [];
19253
+ var _vItemMaps = {};
19254
+ if (!isForce && checkMethod) {
19255
+ _matchObj.items.forEach(function (item) {
19256
+ if (checkMethod({
19257
+ row: item
19258
+ })) {
19259
+ var itemRid = getRowid(_this32, item);
19260
+ _vItemMaps[itemRid] = item;
19261
+ _vItems.push(item);
19262
+ }
19263
+ });
19264
+ } else {
19265
+ _matchObj.items.forEach(function (item) {
19266
+ var itemRid = getRowid(_this32, item);
19267
+ _vItemMaps[itemRid] = item;
19268
+ _vItems.push(item);
19080
19269
  });
19081
- }) : _matchObj.items;
19270
+ }
19082
19271
  var _indeterminatesItem = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().find(_matchObj.items, function (item) {
19083
- return _this33.findRowIndexOf(treeIndeterminates, item) > -1;
19272
+ return !!treeIndeterminateMaps[getRowid(_this32, item)];
19084
19273
  });
19085
19274
  if (_indeterminatesItem) {
19086
19275
  _parentStatus = -1;
19087
19276
  } else {
19088
- var _selectItems = _matchObj.items.filter(function (item) {
19089
- return _this33.findRowIndexOf(selectCheckboxRows, item) > -1;
19277
+ var _selectItems = [];
19278
+ _matchObj.items.forEach(function (item) {
19279
+ var itemRid = getRowid(_this32, item);
19280
+ if (selectRowMaps[itemRid]) {
19281
+ _selectItems.push(item);
19282
+ }
19090
19283
  });
19091
19284
  _parentStatus = _selectItems.filter(function (item) {
19092
- return _this33.findRowIndexOf(_vItems, item) > -1;
19285
+ return _vItemMaps[getRowid(_this32, item)];
19093
19286
  }).length === _vItems.length ? true : _selectItems.length || value === -1 ? -1 : false;
19094
19287
  }
19288
+ this.selectCheckboxMaps = selectRowMaps;
19095
19289
  return this.handleSelectRow({
19096
19290
  row: _matchObj.parent
19097
19291
  }, _parentStatus, isForce);
@@ -19101,26 +19295,32 @@ var Methods = {
19101
19295
  row: row
19102
19296
  })) {
19103
19297
  if (value) {
19104
- if (this.findRowIndexOf(selectCheckboxRows, row) === -1) {
19105
- selectCheckboxRows.push(row);
19298
+ if (!selectRowMaps[rowid]) {
19299
+ selectRowMaps[rowid] = row;
19106
19300
  }
19107
19301
  } else {
19108
- external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().remove(selectCheckboxRows, function (item) {
19109
- return _this33.eqRow(item, row);
19110
- });
19302
+ if (selectRowMaps[rowid]) {
19303
+ delete selectRowMaps[rowid];
19304
+ }
19111
19305
  }
19112
19306
  this.handleCheckboxReserveRow(row, value);
19113
19307
  }
19114
19308
  }
19115
19309
  }
19310
+ this.selectCheckboxMaps = selectRowMaps;
19116
19311
  this.checkSelectionStatus();
19117
19312
  },
19118
19313
  handleToggleCheckRowEvent: function handleToggleCheckRowEvent(evnt, params) {
19119
- var selectCheckboxRows = this.selectCheckboxRows,
19314
+ var selectCheckboxMaps = this.selectCheckboxMaps,
19120
19315
  checkboxOpts = this.checkboxOpts;
19121
19316
  var checkField = checkboxOpts.checkField;
19122
19317
  var row = params.row;
19123
- var value = checkField ? !external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(row, checkField) : this.findRowIndexOf(selectCheckboxRows, row) === -1;
19318
+ var value = false;
19319
+ if (checkField) {
19320
+ value = !external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(row, checkField);
19321
+ } else {
19322
+ value = !selectCheckboxMaps[getRowid(this, row)];
19323
+ }
19124
19324
  if (evnt) {
19125
19325
  this.triggerCheckRowEvent(evnt, params, value);
19126
19326
  } else {
@@ -19128,9 +19328,29 @@ var Methods = {
19128
19328
  }
19129
19329
  },
19130
19330
  triggerCheckRowEvent: function triggerCheckRowEvent(evnt, params, value) {
19131
- var checkMethod = this.checkboxOpts.checkMethod;
19331
+ var checkboxOpts = this.checkboxOpts,
19332
+ afterFullData = this.afterFullData;
19333
+ var checkMethod = checkboxOpts.checkMethod;
19334
+ var row = params.row;
19335
+ if (checkboxOpts.isShiftKey && evnt.shiftKey && !this.treeConfig) {
19336
+ var checkboxRecords = this.getCheckboxRecords();
19337
+ if (checkboxRecords.length) {
19338
+ var firstRow = checkboxRecords[0];
19339
+ var _rowIndex = this.getVTRowIndex(row);
19340
+ var _firstRowIndex = this.getVTRowIndex(firstRow);
19341
+ if (_rowIndex !== _firstRowIndex) {
19342
+ this.setAllCheckboxRow(false);
19343
+ var rangeRows = _rowIndex < _firstRowIndex ? afterFullData.slice(_rowIndex, _firstRowIndex + 1) : afterFullData.slice(_firstRowIndex, _rowIndex + 1);
19344
+ this.handleCheckedCheckboxRow(rangeRows, true, false);
19345
+ this.emitEvent('checkbox-range-select', Object.assign({
19346
+ rangeRecords: rangeRows
19347
+ }, params), evnt);
19348
+ return;
19349
+ }
19350
+ }
19351
+ }
19132
19352
  if (!checkMethod || checkMethod({
19133
- row: params.row
19353
+ row: row
19134
19354
  })) {
19135
19355
  this.handleSelectRow(params, value);
19136
19356
  this.emitEvent('checkbox-change', Object.assign({
@@ -19145,31 +19365,42 @@ var Methods = {
19145
19365
  * 多选,切换某一行的选中状态
19146
19366
  */
19147
19367
  toggleCheckboxRow: function toggleCheckboxRow(row) {
19148
- var selectCheckboxRows = this.selectCheckboxRows,
19368
+ var selectCheckboxMaps = this.selectCheckboxMaps,
19149
19369
  checkboxOpts = this.checkboxOpts;
19150
19370
  var checkField = checkboxOpts.checkField;
19151
- var value = checkField ? !external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(row, checkField) : this.findRowIndexOf(selectCheckboxRows, row) === -1;
19371
+ var value = checkField ? !external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(row, checkField) : !selectCheckboxMaps[getRowid(this, row)];
19152
19372
  this.handleSelectRow({
19153
19373
  row: row
19154
19374
  }, value, true);
19155
19375
  return this.$nextTick();
19156
19376
  },
19157
19377
  handleCheckedAllCheckboxRow: function handleCheckedAllCheckboxRow(value, isForce) {
19158
- var _this34 = this;
19378
+ var _this33 = this;
19159
19379
  var afterFullData = this.afterFullData,
19160
19380
  treeConfig = this.treeConfig,
19161
19381
  treeOpts = this.treeOpts,
19162
- selectCheckboxRows = this.selectCheckboxRows,
19382
+ selectCheckboxMaps = this.selectCheckboxMaps,
19163
19383
  checkboxReserveRowMap = this.checkboxReserveRowMap,
19164
- checkboxOpts = this.checkboxOpts;
19384
+ checkboxOpts = this.checkboxOpts,
19385
+ afterFullRowMaps = this.afterFullRowMaps;
19165
19386
  var checkField = checkboxOpts.checkField,
19166
19387
  reserve = checkboxOpts.reserve,
19167
19388
  checkStrictly = checkboxOpts.checkStrictly,
19168
19389
  checkMethod = checkboxOpts.checkMethod;
19169
- var selectRows = [];
19170
- var beforeSelection = treeConfig ? [] : selectCheckboxRows.filter(function (row) {
19171
- return _this34.findRowIndexOf(afterFullData, row) === -1;
19172
- });
19390
+ var indeterminateField = checkboxOpts.indeterminateField || checkboxOpts.halfField;
19391
+ var childrenField = treeOpts.children || treeOpts.childrenField;
19392
+ var selectRowMaps = {};
19393
+
19394
+ // 疑惑!
19395
+ if (!treeConfig) {
19396
+ external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().each(selectCheckboxMaps, function (row, rowid) {
19397
+ if (!afterFullRowMaps[rowid]) {
19398
+ selectRowMaps[rowid] = row;
19399
+ }
19400
+ });
19401
+ }
19402
+ // 疑惑!
19403
+
19173
19404
  if (checkStrictly) {
19174
19405
  this.isAllSelected = value;
19175
19406
  } else {
@@ -19183,15 +19414,20 @@ var Methods = {
19183
19414
  row: row
19184
19415
  })) {
19185
19416
  if (value) {
19186
- selectRows.push(row);
19417
+ selectRowMaps[getRowid(_this33, row)] = row;
19187
19418
  }
19188
19419
  external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().set(row, checkField, value);
19189
19420
  }
19421
+ if (treeConfig && indeterminateField) {
19422
+ external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().set(row, indeterminateField, false);
19423
+ }
19190
19424
  };
19191
19425
  // 如果存在选中方法
19192
19426
  // 如果方法成立,则更新值,否则忽略该数据
19193
19427
  if (treeConfig) {
19194
- external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree(afterFullData, checkValFn, treeOpts);
19428
+ external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree(afterFullData, checkValFn, {
19429
+ children: childrenField
19430
+ });
19195
19431
  } else {
19196
19432
  afterFullData.forEach(checkValFn);
19197
19433
  }
@@ -19210,9 +19446,11 @@ var Methods = {
19210
19446
  if (isForce || !checkMethod || checkMethod({
19211
19447
  row: row
19212
19448
  })) {
19213
- selectRows.push(row);
19449
+ selectRowMaps[getRowid(_this33, row)] = row;
19214
19450
  }
19215
- }, treeOpts);
19451
+ }, {
19452
+ children: childrenField
19453
+ });
19216
19454
  } else {
19217
19455
  /**
19218
19456
  * 如果是树取消
@@ -19220,12 +19458,15 @@ var Methods = {
19220
19458
  */
19221
19459
  if (!isForce && checkMethod) {
19222
19460
  external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree(afterFullData, function (row) {
19461
+ var rowid = getRowid(_this33, row);
19223
19462
  if (checkMethod({
19224
19463
  row: row
19225
- }) ? 0 : _this34.findRowIndexOf(selectCheckboxRows, row) > -1) {
19226
- selectRows.push(row);
19464
+ }) ? 0 : selectCheckboxMaps[rowid]) {
19465
+ selectRowMaps[rowid] = row;
19227
19466
  }
19228
- }, treeOpts);
19467
+ }, {
19468
+ children: childrenField
19469
+ });
19229
19470
  }
19230
19471
  }
19231
19472
  } else {
@@ -19236,13 +19477,18 @@ var Methods = {
19236
19477
  * 如果不存在选中方法,则添加所有数据到临时集合中
19237
19478
  */
19238
19479
  if (!isForce && checkMethod) {
19239
- selectRows = afterFullData.filter(function (row) {
19240
- return _this34.findRowIndexOf(selectCheckboxRows, row) > -1 || checkMethod({
19480
+ afterFullData.forEach(function (row) {
19481
+ var rowid = getRowid(_this33, row);
19482
+ if (selectCheckboxMaps[rowid] || checkMethod({
19241
19483
  row: row
19242
- });
19484
+ })) {
19485
+ selectRowMaps[rowid] = row;
19486
+ }
19243
19487
  });
19244
19488
  } else {
19245
- selectRows = afterFullData.slice(0);
19489
+ afterFullData.forEach(function (row) {
19490
+ selectRowMaps[getRowid(_this33, row)] = row;
19491
+ });
19246
19492
  }
19247
19493
  } else {
19248
19494
  /**
@@ -19251,10 +19497,13 @@ var Methods = {
19251
19497
  * 如果不存在选中方法,无需处理,临时集合默认为空
19252
19498
  */
19253
19499
  if (!isForce && checkMethod) {
19254
- selectRows = afterFullData.filter(function (row) {
19255
- return checkMethod({
19500
+ afterFullData.forEach(function (row) {
19501
+ var rowid = getRowid(_this33, row);
19502
+ if (checkMethod({
19256
19503
  row: row
19257
- }) ? 0 : _this34.findRowIndexOf(selectCheckboxRows, row) > -1;
19504
+ }) ? 0 : selectCheckboxMaps[rowid]) {
19505
+ selectRowMaps[rowid] = row;
19506
+ }
19258
19507
  });
19259
19508
  }
19260
19509
  }
@@ -19262,18 +19511,19 @@ var Methods = {
19262
19511
  }
19263
19512
  if (reserve) {
19264
19513
  if (value) {
19265
- selectRows.forEach(function (row) {
19266
- checkboxReserveRowMap[getRowid(_this34, row)] = row;
19514
+ external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().each(selectRowMaps, function (row, rowid) {
19515
+ checkboxReserveRowMap[rowid] = row;
19267
19516
  });
19268
19517
  } else {
19269
19518
  afterFullData.forEach(function (row) {
19270
- return _this34.handleCheckboxReserveRow(row, false);
19519
+ return _this33.handleCheckboxReserveRow(row, false);
19271
19520
  });
19272
19521
  }
19273
19522
  }
19274
- this.selectCheckboxRows = checkField ? [] : beforeSelection.concat(selectRows);
19523
+ this.selectCheckboxMaps = checkField ? {} : selectRowMaps;
19275
19524
  }
19276
- this.treeIndeterminates = [];
19525
+ this.treeIndeterminateMaps = {};
19526
+ this.treeIndeterminateRowMaps = {};
19277
19527
  this.checkSelectionStatus();
19278
19528
  return this.$nextTick();
19279
19529
  },
@@ -19285,16 +19535,16 @@ var Methods = {
19285
19535
  return this.handleCheckedAllCheckboxRow(value, true);
19286
19536
  },
19287
19537
  checkSelectionStatus: function checkSelectionStatus() {
19288
- var _this35 = this;
19538
+ var _this34 = this;
19289
19539
  var afterFullData = this.afterFullData,
19290
- selectCheckboxRows = this.selectCheckboxRows,
19291
- treeIndeterminates = this.treeIndeterminates,
19540
+ selectCheckboxMaps = this.selectCheckboxMaps,
19541
+ treeIndeterminateMaps = this.treeIndeterminateMaps,
19292
19542
  checkboxOpts = this.checkboxOpts,
19293
19543
  treeConfig = this.treeConfig;
19294
19544
  var checkField = checkboxOpts.checkField,
19295
- halfField = checkboxOpts.halfField,
19296
19545
  checkStrictly = checkboxOpts.checkStrictly,
19297
19546
  checkMethod = checkboxOpts.checkMethod;
19547
+ var indeterminateField = checkboxOpts.indeterminateField || checkboxOpts.halfField;
19298
19548
  if (!checkStrictly) {
19299
19549
  var disableRows = [];
19300
19550
  var checkRows = [];
@@ -19319,19 +19569,19 @@ var Methods = {
19319
19569
  });
19320
19570
  isAllSelected = isAllResolve && afterFullData.length !== disableRows.length;
19321
19571
  if (treeConfig) {
19322
- if (halfField) {
19572
+ if (indeterminateField) {
19323
19573
  isIndeterminate = !isAllSelected && afterFullData.some(function (row) {
19324
- 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, halfField) || _this35.findRowIndexOf(treeIndeterminates, row) > -1;
19574
+ 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)];
19325
19575
  });
19326
19576
  } else {
19327
19577
  isIndeterminate = !isAllSelected && afterFullData.some(function (row) {
19328
- return external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(row, checkField) || _this35.findRowIndexOf(treeIndeterminates, row) > -1;
19578
+ return external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(row, checkField) || !!treeIndeterminateMaps[getRowid(_this34, row)];
19329
19579
  });
19330
19580
  }
19331
19581
  } else {
19332
- if (halfField) {
19582
+ if (indeterminateField) {
19333
19583
  isIndeterminate = !isAllSelected && afterFullData.some(function (row) {
19334
- 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, halfField);
19584
+ 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);
19335
19585
  });
19336
19586
  } else {
19337
19587
  isIndeterminate = !isAllSelected && afterFullData.some(function (row) {
@@ -19347,22 +19597,23 @@ var Methods = {
19347
19597
  disableRows.push(row);
19348
19598
  return true;
19349
19599
  }
19350
- if (_this35.findRowIndexOf(selectCheckboxRows, row) > -1) {
19600
+ if (selectCheckboxMaps[getRowid(_this34, row)]) {
19351
19601
  checkRows.push(row);
19352
19602
  return true;
19353
19603
  }
19354
19604
  return false;
19355
19605
  } : function (row) {
19356
- return _this35.findRowIndexOf(selectCheckboxRows, row) > -1;
19606
+ return selectCheckboxMaps[getRowid(_this34, row)];
19357
19607
  });
19358
19608
  isAllSelected = isAllResolve && afterFullData.length !== disableRows.length;
19359
19609
  if (treeConfig) {
19360
19610
  isIndeterminate = !isAllSelected && afterFullData.some(function (row) {
19361
- return _this35.findRowIndexOf(treeIndeterminates, row) > -1 || _this35.findRowIndexOf(selectCheckboxRows, row) > -1;
19611
+ var itemRid = getRowid(_this34, row);
19612
+ return treeIndeterminateMaps[itemRid] || selectCheckboxMaps[itemRid];
19362
19613
  });
19363
19614
  } else {
19364
19615
  isIndeterminate = !isAllSelected && afterFullData.some(function (row) {
19365
- return _this35.findRowIndexOf(selectCheckboxRows, row) > -1;
19616
+ return selectCheckboxMaps[getRowid(_this34, row)];
19366
19617
  });
19367
19618
  }
19368
19619
  }
@@ -19378,17 +19629,17 @@ var Methods = {
19378
19629
  fullDataRowIdData = this.fullDataRowIdData,
19379
19630
  fullAllDataRowMap = this.fullAllDataRowMap,
19380
19631
  currentRow = this.currentRow,
19381
- selectRow = this.selectRow,
19632
+ selectRadioRow = this.selectRadioRow,
19382
19633
  radioReserveRow = this.radioReserveRow,
19383
19634
  radioOpts = this.radioOpts,
19384
19635
  checkboxOpts = this.checkboxOpts,
19385
- selectCheckboxRows = this.selectCheckboxRows,
19386
- rowExpandeds = this.rowExpandeds,
19387
- treeExpandeds = this.treeExpandeds,
19636
+ selectCheckboxMaps = this.selectCheckboxMaps,
19637
+ rowExpandedMaps = this.rowExpandedMaps,
19638
+ treeExpandedMaps = this.treeExpandedMaps,
19388
19639
  expandOpts = this.expandOpts;
19389
19640
  // 单选框
19390
- if (selectRow && !fullAllDataRowMap.has(selectRow)) {
19391
- this.selectRow = null; // 刷新单选行状态
19641
+ if (selectRadioRow && !fullAllDataRowMap.has(selectRadioRow)) {
19642
+ this.selectRadioRow = null; // 刷新单选行状态
19392
19643
  }
19393
19644
  // 还原保留选中状态
19394
19645
  if (radioOpts.reserve && radioReserveRow) {
@@ -19398,7 +19649,7 @@ var Methods = {
19398
19649
  }
19399
19650
  }
19400
19651
  // 复选框
19401
- this.selectCheckboxRows = getRecoverRow(this, selectCheckboxRows); // 刷新多选行状态
19652
+ this.selectCheckboxMaps = getRecoverRowMaps(this, selectCheckboxMaps); // 刷新多选行状态
19402
19653
  // 还原保留选中状态
19403
19654
  if (checkboxOpts.reserve) {
19404
19655
  this.handleCheckedCheckboxRow(handleReserveRow(this, this.checkboxReserveRowMap), true, true);
@@ -19407,13 +19658,13 @@ var Methods = {
19407
19658
  this.currentRow = null; // 刷新当前行状态
19408
19659
  }
19409
19660
  // 行展开
19410
- this.rowExpandeds = expandColumn ? getRecoverRow(this, rowExpandeds) : []; // 刷新行展开状态
19661
+ this.rowExpandedMaps = expandColumn ? getRecoverRowMaps(this, rowExpandedMaps) : []; // 刷新行展开状态
19411
19662
  // 还原保留状态
19412
19663
  if (expandColumn && expandOpts.reserve) {
19413
19664
  this.setRowExpand(handleReserveRow(this, this.rowExpandedReserveRowMap), true);
19414
19665
  }
19415
19666
  // 树展开
19416
- this.treeExpandeds = treeConfig ? getRecoverRow(this, treeExpandeds) : []; // 刷新树展开状态
19667
+ this.treeExpandedMaps = treeConfig ? getRecoverRowMaps(this, treeExpandedMaps) : []; // 刷新树展开状态
19417
19668
  if (treeConfig && treeOpts.reserve) {
19418
19669
  this.setTreeExpand(handleReserveRow(this, this.treeExpandedReserveRowMap), true);
19419
19670
  }
@@ -19428,6 +19679,7 @@ var Methods = {
19428
19679
  afterFullData = this.afterFullData,
19429
19680
  treeConfig = this.treeConfig,
19430
19681
  treeOpts = this.treeOpts;
19682
+ var childrenField = treeOpts.children || treeOpts.childrenField;
19431
19683
  if (radioOpts.reserve && radioReserveRow) {
19432
19684
  var rowid = getRowid(this, radioReserveRow);
19433
19685
  if (isFull) {
@@ -19439,7 +19691,9 @@ var Methods = {
19439
19691
  if (treeConfig) {
19440
19692
  var matchObj = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().findTree(afterFullData, function (row) {
19441
19693
  return rowid === external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(row, rowkey);
19442
- }, treeOpts);
19694
+ }, {
19695
+ children: childrenField
19696
+ });
19443
19697
  if (matchObj) {
19444
19698
  return radioReserveRow;
19445
19699
  }
@@ -19468,23 +19722,26 @@ var Methods = {
19468
19722
  * 获取复选框保留选中的行
19469
19723
  */
19470
19724
  getCheckboxReserveRecords: function getCheckboxReserveRecords(isFull) {
19471
- var _this36 = this;
19725
+ var _this35 = this;
19472
19726
  var fullDataRowIdData = this.fullDataRowIdData,
19473
19727
  afterFullData = this.afterFullData,
19474
19728
  checkboxReserveRowMap = this.checkboxReserveRowMap,
19475
19729
  checkboxOpts = this.checkboxOpts,
19476
19730
  treeConfig = this.treeConfig,
19477
19731
  treeOpts = this.treeOpts;
19732
+ var childrenField = treeOpts.children || treeOpts.childrenField;
19478
19733
  var reserveSelection = [];
19479
19734
  if (checkboxOpts.reserve) {
19480
19735
  var afterFullIdMaps = {};
19481
19736
  if (treeConfig) {
19482
19737
  external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree(afterFullData, function (row) {
19483
- afterFullIdMaps[getRowid(_this36, row)] = 1;
19484
- }, treeOpts);
19738
+ afterFullIdMaps[getRowid(_this35, row)] = 1;
19739
+ }, {
19740
+ children: childrenField
19741
+ });
19485
19742
  } else {
19486
19743
  afterFullData.forEach(function (row) {
19487
- afterFullIdMaps[getRowid(_this36, row)] = 1;
19744
+ afterFullIdMaps[getRowid(_this35, row)] = 1;
19488
19745
  });
19489
19746
  }
19490
19747
  external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().each(checkboxReserveRowMap, function (oldRow, oldRowid) {
@@ -19543,33 +19800,39 @@ var Methods = {
19543
19800
  * 清空行为不管是否被禁用还是保留记录,都将彻底清空选中状态
19544
19801
  */
19545
19802
  clearCheckboxRow: function clearCheckboxRow() {
19546
- var _this37 = this;
19803
+ var _this36 = this;
19547
19804
  var tableFullData = this.tableFullData,
19548
19805
  treeConfig = this.treeConfig,
19549
19806
  treeOpts = this.treeOpts,
19550
19807
  checkboxOpts = this.checkboxOpts;
19551
19808
  var checkField = checkboxOpts.checkField,
19552
19809
  reserve = checkboxOpts.reserve;
19810
+ var childrenField = treeOpts.children || treeOpts.childrenField;
19811
+ var indeterminateField = checkboxOpts.indeterminateField || checkboxOpts.halfField;
19553
19812
  if (checkField) {
19813
+ var handleClearChecked = function handleClearChecked(item) {
19814
+ if (treeConfig && indeterminateField) {
19815
+ external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().set(item, indeterminateField, false);
19816
+ }
19817
+ external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().set(item, checkField, false);
19818
+ };
19554
19819
  if (treeConfig) {
19555
- external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree(tableFullData, function (item) {
19556
- return external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().set(item, checkField, false);
19557
- }, treeOpts);
19558
- } else {
19559
- tableFullData.forEach(function (item) {
19560
- return external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().set(item, checkField, false);
19820
+ external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree(tableFullData, handleClearChecked, {
19821
+ children: childrenField
19561
19822
  });
19823
+ } else {
19824
+ tableFullData.forEach(handleClearChecked);
19562
19825
  }
19563
19826
  }
19564
19827
  if (reserve) {
19565
19828
  tableFullData.forEach(function (row) {
19566
- return _this37.handleCheckboxReserveRow(row, false);
19829
+ return _this36.handleCheckboxReserveRow(row, false);
19567
19830
  });
19568
19831
  }
19569
19832
  this.isAllSelected = false;
19570
19833
  this.isIndeterminate = false;
19571
- this.selectCheckboxRows = [];
19572
- this.treeIndeterminates = [];
19834
+ this.selectCheckboxMaps = {};
19835
+ this.treeIndeterminateMaps = {};
19573
19836
  return this.$nextTick();
19574
19837
  },
19575
19838
  /**
@@ -19594,7 +19857,7 @@ var Methods = {
19594
19857
  * 单选,行选中事件
19595
19858
  */
19596
19859
  triggerRadioRowEvent: function triggerRadioRowEvent(evnt, params) {
19597
- var oldValue = this.selectRow,
19860
+ var oldValue = this.selectRadioRow,
19598
19861
  radioOpts = this.radioOpts;
19599
19862
  var row = params.row;
19600
19863
  var newValue = row;
@@ -19647,7 +19910,7 @@ var Methods = {
19647
19910
  return this.$nextTick();
19648
19911
  },
19649
19912
  isCheckedByRadioRow: function isCheckedByRadioRow(row) {
19650
- return this.selectRow === row;
19913
+ return this.selectRadioRow === row;
19651
19914
  },
19652
19915
  handleCheckedRadioRow: function handleCheckedRadioRow(row, isForce) {
19653
19916
  var radioOpts = this.radioOpts;
@@ -19655,7 +19918,7 @@ var Methods = {
19655
19918
  if (row && (isForce || !checkMethod || checkMethod({
19656
19919
  row: row
19657
19920
  }))) {
19658
- this.selectRow = row;
19921
+ this.selectRadioRow = row;
19659
19922
  this.handleRadioReserveRow(row);
19660
19923
  }
19661
19924
  return this.$nextTick();
@@ -19685,7 +19948,7 @@ var Methods = {
19685
19948
  * 用于单选行,手动清空用户的选择
19686
19949
  */
19687
19950
  clearRadioRow: function clearRadioRow() {
19688
- this.selectRow = null;
19951
+ this.selectRadioRow = null;
19689
19952
  return this.$nextTick();
19690
19953
  },
19691
19954
  /**
@@ -19698,30 +19961,18 @@ var Methods = {
19698
19961
  * 用于单选行,获取当已选中的数据
19699
19962
  */
19700
19963
  getRadioRecord: function getRadioRecord(isFull) {
19701
- var treeConfig = this.treeConfig,
19702
- treeOpts = this.treeOpts,
19703
- selectRow = this.selectRow,
19964
+ var selectRadioRow = this.selectRadioRow,
19704
19965
  fullDataRowIdData = this.fullDataRowIdData,
19705
- afterFullData = this.afterFullData;
19706
- if (selectRow) {
19707
- var rowid = getRowid(this, selectRow);
19966
+ afterFullRowMaps = this.afterFullRowMaps;
19967
+ if (selectRadioRow) {
19968
+ var rowid = getRowid(this, selectRadioRow);
19708
19969
  if (isFull) {
19709
19970
  if (!fullDataRowIdData[rowid]) {
19710
- return selectRow;
19971
+ return selectRadioRow;
19711
19972
  }
19712
19973
  } else {
19713
- if (treeConfig) {
19714
- var rowkey = getRowkey(this);
19715
- var matchObj = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().findTree(afterFullData, function (row) {
19716
- return rowid === external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(row, rowkey);
19717
- }, treeOpts);
19718
- if (matchObj) {
19719
- return selectRow;
19720
- }
19721
- } else {
19722
- if (afterFullData.indexOf(selectRow) > -1) {
19723
- return selectRow;
19724
- }
19974
+ if (afterFullRowMaps[rowid]) {
19975
+ return selectRadioRow;
19725
19976
  }
19726
19977
  }
19727
19978
  }
@@ -19815,12 +20066,12 @@ var Methods = {
19815
20066
  * 如果存在规则,则校验
19816
20067
  */
19817
20068
  handleChangeCell: function handleChangeCell(evnt, params) {
19818
- var _this38 = this;
20069
+ var _this37 = this;
19819
20070
  this.checkValidate('blur')["catch"](function (e) {
19820
20071
  return e;
19821
20072
  }).then(function () {
19822
- _this38.handleActived(params, evnt).then(function () {
19823
- return _this38.checkValidate('change');
20073
+ _this37.handleActived(params, evnt).then(function () {
20074
+ return _this37.checkValidate('change');
19824
20075
  })["catch"](function (e) {
19825
20076
  return e;
19826
20077
  });
@@ -19914,7 +20165,7 @@ var Methods = {
19914
20165
  * 如果是双击模式,则激活为编辑状态
19915
20166
  */
19916
20167
  triggerCellDblclickEvent: function triggerCellDblclickEvent(evnt, params) {
19917
- var _this39 = this;
20168
+ var _this38 = this;
19918
20169
  var editStore = this.editStore,
19919
20170
  editConfig = this.editConfig,
19920
20171
  editOpts = this.editOpts;
@@ -19927,15 +20178,15 @@ var Methods = {
19927
20178
  this.checkValidate('blur')["catch"](function (e) {
19928
20179
  return e;
19929
20180
  }).then(function () {
19930
- _this39.handleActived(params, evnt).then(function () {
19931
- return _this39.checkValidate('change');
20181
+ _this38.handleActived(params, evnt).then(function () {
20182
+ return _this38.checkValidate('change');
19932
20183
  })["catch"](function (e) {
19933
20184
  return e;
19934
20185
  });
19935
20186
  });
19936
20187
  } else if (editOpts.mode === 'cell') {
19937
20188
  this.handleActived(params, evnt).then(function () {
19938
- return _this39.checkValidate('change');
20189
+ return _this38.checkValidate('change');
19939
20190
  })["catch"](function (e) {
19940
20191
  return e;
19941
20192
  });
@@ -19945,7 +20196,7 @@ var Methods = {
19945
20196
  this.emitEvent('cell-dblclick', params, evnt);
19946
20197
  },
19947
20198
  handleDefaultSort: function handleDefaultSort() {
19948
- var _this40 = this;
20199
+ var _this39 = this;
19949
20200
  var sortConfig = this.sortConfig,
19950
20201
  sortOpts = this.sortOpts;
19951
20202
  var defaultSort = sortOpts.defaultSort;
@@ -19958,7 +20209,7 @@ var Methods = {
19958
20209
  var field = item.field,
19959
20210
  order = item.order;
19960
20211
  if (field && order) {
19961
- var column = _this40.getColumnByField(field);
20212
+ var column = _this39.getColumnByField(field);
19962
20213
  if (column && column.sortable) {
19963
20214
  column.order = order;
19964
20215
  column.sortTime = Date.now() + index;
@@ -20005,7 +20256,7 @@ var Methods = {
20005
20256
  }
20006
20257
  },
20007
20258
  sort: function sort(sortConfs, sortOrder) {
20008
- var _this41 = this;
20259
+ var _this40 = this;
20009
20260
  var sortOpts = this.sortOpts;
20010
20261
  var multiple = sortOpts.multiple,
20011
20262
  remote = sortOpts.remote,
@@ -20031,14 +20282,14 @@ var Methods = {
20031
20282
  order = confs.order;
20032
20283
  var column = field;
20033
20284
  if (external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isString(field)) {
20034
- column = _this41.getColumnByField(field);
20285
+ column = _this40.getColumnByField(field);
20035
20286
  }
20036
20287
  if (column && (column.sortable || column.remoteSort)) {
20037
20288
  if (!firstSortColumn) {
20038
20289
  firstSortColumn = column;
20039
20290
  }
20040
20291
  if (orders.indexOf(order) === -1) {
20041
- order = getNextSortOrder(_this41, column);
20292
+ order = getNextSortOrder(_this40, column);
20042
20293
  }
20043
20294
  if (column.order !== order) {
20044
20295
  column.order = order;
@@ -20051,8 +20302,8 @@ var Methods = {
20051
20302
  this.handleTableData(true);
20052
20303
  }
20053
20304
  return this.$nextTick().then(function () {
20054
- _this41.updateCellAreas();
20055
- return _this41.updateStyle();
20305
+ _this40.updateCellAreas();
20306
+ return _this40.updateStyle();
20056
20307
  });
20057
20308
  }
20058
20309
  return this.$nextTick();
@@ -20165,17 +20416,19 @@ var Methods = {
20165
20416
  return rest && rest.expandLoaded;
20166
20417
  },
20167
20418
  clearRowExpandLoaded: function clearRowExpandLoaded(row) {
20168
- var _this42 = this;
20169
20419
  var expandOpts = this.expandOpts,
20170
- expandLazyLoadeds = this.expandLazyLoadeds,
20420
+ rowExpandLazyLoadedMaps = this.rowExpandLazyLoadedMaps,
20171
20421
  fullAllDataRowMap = this.fullAllDataRowMap;
20172
20422
  var lazy = expandOpts.lazy;
20423
+ var rowid = getRowid(this, row);
20173
20424
  var rest = fullAllDataRowMap.get(row);
20174
20425
  if (lazy && rest) {
20175
20426
  rest.expandLoaded = false;
20176
- external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().remove(expandLazyLoadeds, function (item) {
20177
- return _this42.eqRow(item, row);
20178
- });
20427
+ var rowTempExpandLazyLoadedMaps = _objectSpread2({}, rowExpandLazyLoadedMaps);
20428
+ if (rowTempExpandLazyLoadedMaps[rowid]) {
20429
+ delete rowTempExpandLazyLoadedMaps[rowid];
20430
+ }
20431
+ this.rowExpandLazyLoadedMaps = rowTempExpandLazyLoadedMaps;
20179
20432
  }
20180
20433
  return this.$nextTick();
20181
20434
  },
@@ -20184,13 +20437,14 @@ var Methods = {
20184
20437
  * @param {Row} row 行对象
20185
20438
  */
20186
20439
  reloadRowExpand: function reloadRowExpand(row) {
20187
- var _this43 = this;
20440
+ var _this41 = this;
20188
20441
  var expandOpts = this.expandOpts,
20189
- expandLazyLoadeds = this.expandLazyLoadeds;
20442
+ rowExpandLazyLoadedMaps = this.rowExpandLazyLoadedMaps;
20190
20443
  var lazy = expandOpts.lazy;
20191
- if (lazy && this.findRowIndexOf(expandLazyLoadeds, row) === -1) {
20444
+ var rowid = getRowid(this, row);
20445
+ if (lazy && !rowExpandLazyLoadedMaps[rowid]) {
20192
20446
  this.clearRowExpandLoaded(row).then(function () {
20193
- return _this43.handleAsyncRowExpand(row);
20447
+ return _this41.handleAsyncRowExpand(row);
20194
20448
  });
20195
20449
  }
20196
20450
  return this.$nextTick();
@@ -20205,11 +20459,12 @@ var Methods = {
20205
20459
  */
20206
20460
  triggerRowExpandEvent: function triggerRowExpandEvent(evnt, params) {
20207
20461
  var expandOpts = this.expandOpts,
20208
- expandLazyLoadeds = this.expandLazyLoadeds,
20462
+ rowExpandLazyLoadedMaps = this.rowExpandLazyLoadedMaps,
20209
20463
  column = this.expandColumn;
20210
20464
  var row = params.row;
20211
20465
  var lazy = expandOpts.lazy;
20212
- if (!lazy || this.findRowIndexOf(expandLazyLoadeds, row) === -1) {
20466
+ var rowid = getRowid(this, row);
20467
+ if (!lazy || !rowExpandLazyLoadedMaps[rowid]) {
20213
20468
  var expanded = !this.isExpandByRow(row);
20214
20469
  var columnIndex = this.getColumnIndex(column);
20215
20470
  var $columnIndex = this.getVMColumnIndex(column);
@@ -20260,37 +20515,57 @@ var Methods = {
20260
20515
  treeOpts = this.treeOpts,
20261
20516
  tableFullData = this.tableFullData,
20262
20517
  tableFullTreeData = this.tableFullTreeData;
20518
+ var childrenField = treeOpts.children || treeOpts.childrenField;
20263
20519
  var expandedRows = [];
20264
20520
  if (treeConfig) {
20265
20521
  external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree(tableFullTreeData, function (row) {
20266
20522
  expandedRows.push(row);
20267
- }, treeOpts);
20523
+ }, {
20524
+ children: childrenField
20525
+ });
20268
20526
  } else {
20269
20527
  expandedRows = tableFullData;
20270
20528
  }
20271
20529
  return this.setRowExpand(expandedRows, expanded);
20272
20530
  },
20273
20531
  handleAsyncRowExpand: function handleAsyncRowExpand(row) {
20274
- var _this44 = this;
20275
- var rest = this.fullAllDataRowMap.get(row);
20532
+ var _this42 = this;
20533
+ var fullAllDataRowMap = this.fullAllDataRowMap,
20534
+ expandOpts = this.expandOpts;
20535
+ var rest = fullAllDataRowMap.get(row);
20276
20536
  return new Promise(function (resolve) {
20277
- _this44.expandLazyLoadeds.push(row);
20278
- _this44.expandOpts.loadMethod({
20279
- $table: _this44,
20280
- row: row,
20281
- rowIndex: _this44.getRowIndex(row),
20282
- $rowIndex: _this44.getVMRowIndex(row)
20283
- }).then(function () {
20284
- rest.expandLoaded = true;
20285
- _this44.rowExpandeds.push(row);
20286
- })["catch"](function () {
20287
- rest.expandLoaded = false;
20288
- })["finally"](function () {
20289
- external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().remove(_this44.expandLazyLoadeds, function (item) {
20290
- return _this44.eqRow(item, row);
20537
+ var loadMethod = expandOpts.loadMethod;
20538
+ if (loadMethod) {
20539
+ var rowExpandLazyLoadedMaps = _this42.rowExpandLazyLoadedMaps;
20540
+ var rowTempExpandLazyLoadedMaps = _objectSpread2({}, rowExpandLazyLoadedMaps);
20541
+ var rowid = getRowid(_this42, row);
20542
+ rowTempExpandLazyLoadedMaps[rowid] = row;
20543
+ _this42.rowExpandLazyLoadedMaps = rowTempExpandLazyLoadedMaps;
20544
+ loadMethod({
20545
+ $table: _this42,
20546
+ row: row,
20547
+ rowIndex: _this42.getRowIndex(row),
20548
+ $rowIndex: _this42.getVMRowIndex(row)
20549
+ }).then(function () {
20550
+ rest.expandLoaded = true;
20551
+ var rowExpandedMaps = _this42.rowExpandedMaps;
20552
+ var rowTempExpandedMaps = _objectSpread2({}, rowExpandedMaps);
20553
+ rowTempExpandedMaps[rowid] = row;
20554
+ _this42.rowExpandedMaps = rowTempExpandedMaps;
20555
+ })["catch"](function () {
20556
+ rest.expandLoaded = false;
20557
+ })["finally"](function () {
20558
+ var rowExpandLazyLoadedMaps = _this42.rowExpandLazyLoadedMaps;
20559
+ var rowTempExpandLazyLoadedMaps = _objectSpread2({}, rowExpandLazyLoadedMaps);
20560
+ if (rowTempExpandLazyLoadedMaps[rowid]) {
20561
+ delete rowTempExpandLazyLoadedMaps[rowid];
20562
+ }
20563
+ _this42.rowExpandLazyLoadedMaps = rowTempExpandLazyLoadedMaps;
20564
+ resolve(_this42.$nextTick().then(_this42.recalculate));
20291
20565
  });
20292
- resolve(_this44.$nextTick().then(_this44.recalculate));
20293
- });
20566
+ } else {
20567
+ resolve();
20568
+ }
20294
20569
  });
20295
20570
  },
20296
20571
  /**
@@ -20301,12 +20576,13 @@ var Methods = {
20301
20576
  * @param {Boolean} expanded 是否展开
20302
20577
  */
20303
20578
  setRowExpand: function setRowExpand(rows, expanded) {
20304
- var _this45 = this;
20305
- var fullAllDataRowMap = this.fullAllDataRowMap,
20306
- expandLazyLoadeds = this.expandLazyLoadeds,
20579
+ var _this43 = this;
20580
+ var rowExpandedMaps = this.rowExpandedMaps,
20581
+ fullAllDataRowIdData = this.fullAllDataRowIdData,
20582
+ rowExpandLazyLoadedMaps = this.rowExpandLazyLoadedMaps,
20307
20583
  expandOpts = this.expandOpts,
20308
20584
  column = this.expandColumn;
20309
- var rowExpandeds = this.rowExpandeds;
20585
+ var rExpandedMaps = _objectSpread2({}, rowExpandedMaps);
20310
20586
  var reserve = expandOpts.reserve,
20311
20587
  lazy = expandOpts.lazy,
20312
20588
  accordion = expandOpts.accordion,
@@ -20320,7 +20596,7 @@ var Methods = {
20320
20596
  }
20321
20597
  if (accordion) {
20322
20598
  // 只能同时展开一个
20323
- rowExpandeds = [];
20599
+ rExpandedMaps = {};
20324
20600
  rows = rows.slice(rows.length - 1, rows.length);
20325
20601
  }
20326
20602
  var validRows = toggleMethod ? rows.filter(function (row) {
@@ -20330,34 +20606,38 @@ var Methods = {
20330
20606
  columnIndex: columnIndex,
20331
20607
  $columnIndex: $columnIndex,
20332
20608
  row: row,
20333
- rowIndex: _this45.getRowIndex(row),
20334
- $rowIndex: _this45.getVMRowIndex(row)
20609
+ rowIndex: _this43.getRowIndex(row),
20610
+ $rowIndex: _this43.getVMRowIndex(row)
20335
20611
  });
20336
20612
  }) : rows;
20337
20613
  if (expanded) {
20338
20614
  validRows.forEach(function (row) {
20339
- if (_this45.findRowIndexOf(rowExpandeds, row) === -1) {
20340
- var rest = fullAllDataRowMap.get(row);
20341
- var isLoad = lazy && !rest.expandLoaded && _this45.findRowIndexOf(expandLazyLoadeds, row) === -1;
20615
+ var rowid = getRowid(_this43, row);
20616
+ if (!rExpandedMaps[rowid]) {
20617
+ var rest = fullAllDataRowIdData[rowid];
20618
+ var isLoad = lazy && !rest.expandLoaded && !rowExpandLazyLoadedMaps[rowid];
20342
20619
  if (isLoad) {
20343
- lazyRests.push(_this45.handleAsyncRowExpand(row));
20620
+ lazyRests.push(_this43.handleAsyncRowExpand(row));
20344
20621
  } else {
20345
- rowExpandeds.push(row);
20622
+ rExpandedMaps[rowid] = row;
20346
20623
  }
20347
20624
  }
20348
20625
  });
20349
20626
  } else {
20350
- external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().remove(rowExpandeds, function (row) {
20351
- return _this45.findRowIndexOf(validRows, row) > -1;
20627
+ validRows.forEach(function (item) {
20628
+ var rowid = getRowid(_this43, item);
20629
+ if (rExpandedMaps[rowid]) {
20630
+ delete rExpandedMaps[rowid];
20631
+ }
20352
20632
  });
20353
20633
  }
20354
20634
  if (reserve) {
20355
20635
  validRows.forEach(function (row) {
20356
- return _this45.handleRowExpandReserve(row, expanded);
20636
+ return _this43.handleRowExpandReserve(row, expanded);
20357
20637
  });
20358
20638
  }
20359
20639
  }
20360
- this.rowExpandeds = rowExpandeds;
20640
+ this.rowExpandedMaps = rExpandedMaps;
20361
20641
  return Promise.all(lazyRests).then(this.recalculate);
20362
20642
  },
20363
20643
  /**
@@ -20365,28 +20645,28 @@ var Methods = {
20365
20645
  * @param {Row} row 行对象
20366
20646
  */
20367
20647
  isExpandByRow: function isExpandByRow(row) {
20368
- var rowExpandeds = this.rowExpandeds;
20369
- return this.findRowIndexOf(rowExpandeds, row) > -1;
20648
+ var rowExpandedMaps = this.rowExpandedMaps;
20649
+ var rowid = getRowid(this, row);
20650
+ return !!rowExpandedMaps[rowid];
20370
20651
  },
20371
20652
  /**
20372
20653
  * 手动清空展开行状态,数据会恢复成未展开的状态
20373
20654
  */
20374
20655
  clearRowExpand: function clearRowExpand() {
20375
- var _this46 = this;
20656
+ var _this44 = this;
20376
20657
  var expandOpts = this.expandOpts,
20377
- rowExpandeds = this.rowExpandeds,
20378
20658
  tableFullData = this.tableFullData;
20379
20659
  var reserve = expandOpts.reserve;
20380
- var isExists = rowExpandeds.length;
20381
- this.rowExpandeds = [];
20660
+ var expList = this.getRowExpandRecords();
20661
+ this.rowExpandedMaps = {};
20382
20662
  if (reserve) {
20383
20663
  tableFullData.forEach(function (row) {
20384
- return _this46.handleRowExpandReserve(row, false);
20664
+ return _this44.handleRowExpandReserve(row, false);
20385
20665
  });
20386
20666
  }
20387
20667
  return this.$nextTick().then(function () {
20388
- if (isExists) {
20389
- _this46.recalculate();
20668
+ if (expList.length) {
20669
+ _this44.recalculate();
20390
20670
  }
20391
20671
  });
20392
20672
  },
@@ -20407,13 +20687,25 @@ var Methods = {
20407
20687
  }
20408
20688
  },
20409
20689
  getRowExpandRecords: function getRowExpandRecords() {
20410
- return this.rowExpandeds.slice(0);
20690
+ var rest = [];
20691
+ external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().each(this.rowExpandedMaps, function (item) {
20692
+ if (item) {
20693
+ rest.push(item);
20694
+ }
20695
+ });
20696
+ return rest;
20411
20697
  },
20412
20698
  getTreeExpandRecords: function getTreeExpandRecords() {
20413
- return this.treeExpandeds.slice(0);
20699
+ var rest = [];
20700
+ external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().each(this.treeExpandedMaps, function (item) {
20701
+ if (item) {
20702
+ rest.push(item);
20703
+ }
20704
+ });
20705
+ return rest;
20414
20706
  },
20415
20707
  /**
20416
- * 获取数表格状态
20708
+ * 获取树表格状态
20417
20709
  */
20418
20710
  getTreeStatus: function getTreeStatus() {
20419
20711
  if (this.treeConfig) {
@@ -20434,16 +20726,17 @@ var Methods = {
20434
20726
  },
20435
20727
  clearTreeExpandLoaded: function clearTreeExpandLoaded(row) {
20436
20728
  var treeOpts = this.treeOpts,
20437
- treeExpandeds = this.treeExpandeds,
20729
+ treeExpandedMaps = this.treeExpandedMaps,
20438
20730
  fullAllDataRowMap = this.fullAllDataRowMap;
20439
20731
  var transform = treeOpts.transform,
20440
20732
  lazy = treeOpts.lazy;
20733
+ var rowid = getRowid(this, row);
20441
20734
  var rest = fullAllDataRowMap.get(row);
20442
20735
  if (lazy && rest) {
20443
20736
  rest.treeLoaded = false;
20444
- external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().remove(treeExpandeds, function (item) {
20445
- return row === item;
20446
- });
20737
+ if (treeExpandedMaps[rowid]) {
20738
+ delete treeExpandedMaps[rowid];
20739
+ }
20447
20740
  }
20448
20741
  if (transform) {
20449
20742
  this.handleVirtualTreeToList();
@@ -20456,22 +20749,23 @@ var Methods = {
20456
20749
  * @param {Row} row 行对象
20457
20750
  */
20458
20751
  reloadTreeExpand: function reloadTreeExpand(row) {
20459
- var _this47 = this;
20752
+ var _this45 = this;
20460
20753
  var treeOpts = this.treeOpts,
20461
- treeLazyLoadeds = this.treeLazyLoadeds;
20754
+ treeExpandLazyLoadedMaps = this.treeExpandLazyLoadedMaps;
20462
20755
  var transform = treeOpts.transform,
20463
- lazy = treeOpts.lazy,
20464
- hasChild = treeOpts.hasChild;
20465
- if (lazy && row[hasChild] && treeLazyLoadeds.indexOf(row) === -1) {
20756
+ lazy = treeOpts.lazy;
20757
+ var hasChildField = treeOpts.hasChild || treeOpts.hasChildField;
20758
+ var rowid = getRowid(this, row);
20759
+ if (lazy && row[hasChildField] && !treeExpandLazyLoadedMaps[rowid]) {
20466
20760
  this.clearTreeExpandLoaded(row).then(function () {
20467
- return _this47.handleAsyncTreeExpandChilds(row);
20761
+ return _this45.handleAsyncTreeExpandChilds(row);
20468
20762
  }).then(function () {
20469
20763
  if (transform) {
20470
- _this47.handleVirtualTreeToList();
20471
- return _this47.handleTableData();
20764
+ _this45.handleVirtualTreeToList();
20765
+ return _this45.handleTableData();
20472
20766
  }
20473
20767
  }).then(function () {
20474
- return _this47.recalculate();
20768
+ return _this45.recalculate();
20475
20769
  });
20476
20770
  }
20477
20771
  return this.$nextTick();
@@ -20486,11 +20780,12 @@ var Methods = {
20486
20780
  */
20487
20781
  triggerTreeExpandEvent: function triggerTreeExpandEvent(evnt, params) {
20488
20782
  var treeOpts = this.treeOpts,
20489
- treeLazyLoadeds = this.treeLazyLoadeds;
20783
+ treeExpandLazyLoadedMaps = this.treeExpandLazyLoadedMaps;
20490
20784
  var row = params.row,
20491
20785
  column = params.column;
20492
20786
  var lazy = treeOpts.lazy;
20493
- if (!lazy || treeLazyLoadeds.indexOf(row) === -1) {
20787
+ var rowid = getRowid(this, row);
20788
+ if (!lazy || !treeExpandLazyLoadedMaps[rowid]) {
20494
20789
  var expanded = !this.isTreeExpandByRow(row);
20495
20790
  var columnIndex = this.getColumnIndex(column);
20496
20791
  var $columnIndex = this.getVMColumnIndex(column);
@@ -20520,6 +20815,7 @@ var Methods = {
20520
20815
  if (treeConfig) {
20521
20816
  var expandAll = treeOpts.expandAll,
20522
20817
  expandRowKeys = treeOpts.expandRowKeys;
20818
+ var childrenField = treeOpts.children || treeOpts.childrenField;
20523
20819
  if (expandAll) {
20524
20820
  this.setAllTreeExpand(true);
20525
20821
  } else if (expandRowKeys) {
@@ -20528,7 +20824,9 @@ var Methods = {
20528
20824
  expandRowKeys.forEach(function (rowid) {
20529
20825
  var matchObj = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().findTree(tableFullData, function (item) {
20530
20826
  return rowid === external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(item, rowkey);
20531
- }, treeOpts);
20827
+ }, {
20828
+ children: childrenField
20829
+ });
20532
20830
  if (matchObj) {
20533
20831
  defExpandeds.push(matchObj.item);
20534
20832
  }
@@ -20538,59 +20836,67 @@ var Methods = {
20538
20836
  }
20539
20837
  },
20540
20838
  handleAsyncTreeExpandChilds: function handleAsyncTreeExpandChilds(row) {
20541
- var _this48 = this;
20542
- var fullAllDataRowMap = this.fullAllDataRowMap,
20543
- treeExpandeds = this.treeExpandeds,
20544
- treeOpts = this.treeOpts,
20545
- treeLazyLoadeds = this.treeLazyLoadeds,
20839
+ var _this46 = this;
20840
+ var treeOpts = this.treeOpts,
20546
20841
  checkboxOpts = this.checkboxOpts;
20547
20842
  var transform = treeOpts.transform,
20548
20843
  loadMethod = treeOpts.loadMethod;
20549
20844
  var checkStrictly = checkboxOpts.checkStrictly;
20550
- var rest = fullAllDataRowMap.get(row);
20551
20845
  return new Promise(function (resolve) {
20552
- treeLazyLoadeds.push(row);
20553
- loadMethod({
20554
- $table: _this48,
20555
- row: row
20556
- }).then(function (childRecords) {
20557
- // 响应成功后则展开行,并将子节点挂载到该节点下
20558
- rest.treeLoaded = true;
20559
- external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().remove(treeLazyLoadeds, function (item) {
20560
- return item === row;
20561
- });
20562
- if (!external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isArray(childRecords)) {
20563
- childRecords = [];
20564
- }
20565
- if (childRecords) {
20566
- return _this48.loadTreeChildren(row, childRecords).then(function (childRows) {
20567
- if (childRows.length && treeExpandeds.indexOf(row) === -1) {
20568
- treeExpandeds.push(row);
20569
- }
20570
- // 如果当前节点已选中,则展开后子节点也被选中
20571
- if (!checkStrictly && _this48.isCheckedByCheckboxRow(row)) {
20572
- _this48.handleCheckedCheckboxRow(childRows, true, true);
20573
- }
20574
- return _this48.$nextTick().then(function () {
20575
- if (transform) {
20576
- return _this48.handleTableData();
20846
+ if (loadMethod) {
20847
+ var fullAllDataRowMap = _this46.fullAllDataRowMap,
20848
+ treeExpandLazyLoadedMaps = _this46.treeExpandLazyLoadedMaps;
20849
+ var rowid = getRowid(_this46, row);
20850
+ var rest = fullAllDataRowMap.get(row);
20851
+ treeExpandLazyLoadedMaps[rowid] = row;
20852
+ loadMethod({
20853
+ $table: _this46,
20854
+ row: row
20855
+ }).then(function (childRecords) {
20856
+ // 响应成功后则展开行,并将子节点挂载到该节点下
20857
+ rest.treeLoaded = true;
20858
+ if (treeExpandLazyLoadedMaps[rowid]) {
20859
+ treeExpandLazyLoadedMaps[rowid] = null;
20860
+ }
20861
+ if (!external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isArray(childRecords)) {
20862
+ childRecords = [];
20863
+ }
20864
+ if (childRecords) {
20865
+ return _this46.loadTreeChildren(row, childRecords).then(function (childRows) {
20866
+ var treeExpandedMaps = _this46.treeExpandedMaps;
20867
+ var treeTempExpandedMaps = _objectSpread2({}, treeExpandedMaps);
20868
+ if (childRows.length && !treeTempExpandedMaps[rowid]) {
20869
+ treeTempExpandedMaps[rowid] = row;
20870
+ _this46.treeExpandedMaps = treeTempExpandedMaps;
20577
20871
  }
20872
+ // 如果当前节点已选中,则展开后子节点也被选中
20873
+ if (!checkStrictly && _this46.isCheckedByCheckboxRow(row)) {
20874
+ _this46.handleCheckedCheckboxRow(childRows, true, true);
20875
+ }
20876
+ return _this46.$nextTick().then(function () {
20877
+ if (transform) {
20878
+ return _this46.handleTableData();
20879
+ }
20880
+ });
20578
20881
  });
20882
+ }
20883
+ })["catch"](function () {
20884
+ // 如果响应异常,则不展开,再次点击后将重新触发懒加载
20885
+ rest.treeLoaded = false;
20886
+ var treeExpandLazyLoadedMaps = _this46.treeExpandLazyLoadedMaps;
20887
+ if (treeExpandLazyLoadedMaps[rowid]) {
20888
+ treeExpandLazyLoadedMaps[rowid] = null;
20889
+ }
20890
+ })["finally"](function () {
20891
+ _this46.$nextTick().then(function () {
20892
+ return _this46.recalculate();
20893
+ }).then(function () {
20894
+ return resolve();
20579
20895
  });
20580
- }
20581
- })["catch"](function () {
20582
- // 如果响应异常,则不展开,再次点击后将重新触发懒加载
20583
- rest.treeLoaded = false;
20584
- external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().remove(treeLazyLoadeds, function (item) {
20585
- return item === row;
20586
20896
  });
20587
- })["finally"](function () {
20588
- _this48.$nextTick().then(function () {
20589
- return _this48.recalculate();
20590
- }).then(function () {
20591
- return resolve();
20592
- });
20593
- });
20897
+ } else {
20898
+ resolve();
20899
+ }
20594
20900
  });
20595
20901
  },
20596
20902
  /**
@@ -20600,15 +20906,17 @@ var Methods = {
20600
20906
  setAllTreeExpand: function setAllTreeExpand(expanded) {
20601
20907
  var tableFullData = this.tableFullData,
20602
20908
  treeOpts = this.treeOpts;
20603
- var lazy = treeOpts.lazy,
20604
- children = treeOpts.children;
20909
+ var lazy = treeOpts.lazy;
20910
+ var childrenField = treeOpts.children || treeOpts.childrenField;
20605
20911
  var expandeds = [];
20606
20912
  external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree(tableFullData, function (row) {
20607
- var rowChildren = row[children];
20913
+ var rowChildren = row[childrenField];
20608
20914
  if (lazy || rowChildren && rowChildren.length) {
20609
20915
  expandeds.push(row);
20610
20916
  }
20611
- }, treeOpts);
20917
+ }, {
20918
+ children: childrenField
20919
+ });
20612
20920
  return this.setTreeExpand(expandeds, expanded);
20613
20921
  },
20614
20922
  /**
@@ -20618,19 +20926,20 @@ var Methods = {
20618
20926
  * @returns
20619
20927
  */
20620
20928
  handleBaseTreeExpand: function handleBaseTreeExpand(rows, expanded) {
20621
- var _this49 = this;
20929
+ var _this47 = this;
20622
20930
  var fullAllDataRowMap = this.fullAllDataRowMap,
20623
20931
  tableFullData = this.tableFullData,
20624
- treeExpandeds = this.treeExpandeds,
20932
+ treeExpandedMaps = this.treeExpandedMaps,
20625
20933
  treeOpts = this.treeOpts,
20626
- treeLazyLoadeds = this.treeLazyLoadeds,
20934
+ treeExpandLazyLoadedMaps = this.treeExpandLazyLoadedMaps,
20627
20935
  treeNodeColumn = this.treeNodeColumn;
20628
20936
  var reserve = treeOpts.reserve,
20629
20937
  lazy = treeOpts.lazy,
20630
- hasChild = treeOpts.hasChild,
20631
- children = treeOpts.children,
20632
20938
  accordion = treeOpts.accordion,
20633
20939
  toggleMethod = treeOpts.toggleMethod;
20940
+ var treeTempExpandedMaps = _objectSpread2({}, treeExpandedMaps);
20941
+ var childrenField = treeOpts.children || treeOpts.childrenField;
20942
+ var hasChildField = treeOpts.hasChild || treeOpts.hasChildField;
20634
20943
  var result = [];
20635
20944
  var columnIndex = this.getColumnIndex(treeNodeColumn);
20636
20945
  var $columnIndex = this.getVMColumnIndex(treeNodeColumn);
@@ -20648,38 +20957,48 @@ var Methods = {
20648
20957
  // 同一级只能展开一个
20649
20958
  var matchObj = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().findTree(tableFullData, function (item) {
20650
20959
  return item === validRows[0];
20651
- }, treeOpts);
20960
+ }, {
20961
+ children: childrenField
20962
+ });
20652
20963
  if (matchObj) {
20653
- external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().remove(treeExpandeds, function (item) {
20654
- return matchObj.items.indexOf(item) > -1;
20964
+ matchObj.items.forEach(function (item) {
20965
+ var rowid = getRowid(_this47, item);
20966
+ if (treeTempExpandedMaps[rowid]) {
20967
+ delete treeTempExpandedMaps[rowid];
20968
+ }
20655
20969
  });
20656
20970
  }
20657
20971
  }
20658
20972
  if (expanded) {
20659
20973
  validRows.forEach(function (row) {
20660
- if (treeExpandeds.indexOf(row) === -1) {
20974
+ var rowid = getRowid(_this47, row);
20975
+ if (!treeTempExpandedMaps[rowid]) {
20661
20976
  var rest = fullAllDataRowMap.get(row);
20662
- var isLoad = lazy && row[hasChild] && !rest.treeLoaded && treeLazyLoadeds.indexOf(row) === -1;
20977
+ var isLoad = lazy && row[hasChildField] && !rest.treeLoaded && !treeExpandLazyLoadedMaps[rowid];
20663
20978
  // 是否使用懒加载
20664
20979
  if (isLoad) {
20665
- result.push(_this49.handleAsyncTreeExpandChilds(row));
20980
+ result.push(_this47.handleAsyncTreeExpandChilds(row));
20666
20981
  } else {
20667
- if (row[children] && row[children].length) {
20668
- treeExpandeds.push(row);
20982
+ if (row[childrenField] && row[childrenField].length) {
20983
+ treeTempExpandedMaps[rowid] = row;
20669
20984
  }
20670
20985
  }
20671
20986
  }
20672
20987
  });
20673
20988
  } else {
20674
- external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().remove(treeExpandeds, function (row) {
20675
- return validRows.indexOf(row) > -1;
20989
+ validRows.forEach(function (item) {
20990
+ var rowid = getRowid(_this47, item);
20991
+ if (treeTempExpandedMaps[rowid]) {
20992
+ delete treeTempExpandedMaps[rowid];
20993
+ }
20676
20994
  });
20677
20995
  }
20678
20996
  if (reserve) {
20679
20997
  validRows.forEach(function (row) {
20680
- return _this49.handleTreeExpandReserve(row, expanded);
20998
+ return _this47.handleTreeExpandReserve(row, expanded);
20681
20999
  });
20682
21000
  }
21001
+ this.treeExpandedMaps = treeTempExpandedMaps;
20683
21002
  return Promise.all(result).then(this.recalculate);
20684
21003
  },
20685
21004
  /**
@@ -20689,12 +21008,12 @@ var Methods = {
20689
21008
  * @returns
20690
21009
  */
20691
21010
  handleVirtualTreeExpand: function handleVirtualTreeExpand(rows, expanded) {
20692
- var _this50 = this;
21011
+ var _this48 = this;
20693
21012
  return this.handleBaseTreeExpand(rows, expanded).then(function () {
20694
- _this50.handleVirtualTreeToList();
20695
- return _this50.handleTableData();
21013
+ _this48.handleVirtualTreeToList();
21014
+ return _this48.handleTableData();
20696
21015
  }).then(function () {
20697
- return _this50.recalculate();
21016
+ return _this48.recalculate();
20698
21017
  });
20699
21018
  },
20700
21019
  /**
@@ -20727,33 +21046,36 @@ var Methods = {
20727
21046
  * @param {Row} row 行对象
20728
21047
  */
20729
21048
  isTreeExpandByRow: function isTreeExpandByRow(row) {
20730
- return this.treeExpandeds.indexOf(row) > -1;
21049
+ var treeExpandedMaps = this.treeExpandedMaps;
21050
+ return !!treeExpandedMaps[getRowid(this, row)];
20731
21051
  },
20732
21052
  /**
20733
21053
  * 手动清空树形节点的展开状态,数据会恢复成未展开的状态
20734
21054
  */
20735
21055
  clearTreeExpand: function clearTreeExpand() {
20736
- var _this51 = this;
21056
+ var _this49 = this;
20737
21057
  var treeOpts = this.treeOpts,
20738
- treeExpandeds = this.treeExpandeds,
20739
21058
  tableFullData = this.tableFullData;
20740
21059
  var transform = treeOpts.transform,
20741
21060
  reserve = treeOpts.reserve;
20742
- var isExists = treeExpandeds.length;
20743
- this.treeExpandeds = [];
21061
+ var childrenField = treeOpts.children || treeOpts.childrenField;
21062
+ var expList = this.getTreeExpandRecords();
21063
+ this.treeExpandedMaps = {};
20744
21064
  if (reserve) {
20745
21065
  external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree(tableFullData, function (row) {
20746
- return _this51.handleTreeExpandReserve(row, false);
20747
- }, treeOpts);
21066
+ return _this49.handleTreeExpandReserve(row, false);
21067
+ }, {
21068
+ children: childrenField
21069
+ });
20748
21070
  }
20749
21071
  return this.handleTableData().then(function () {
20750
21072
  if (transform) {
20751
- _this51.handleVirtualTreeToList();
20752
- return _this51.handleTableData();
21073
+ _this49.handleVirtualTreeToList();
21074
+ return _this49.handleTableData();
20753
21075
  }
20754
21076
  }).then(function () {
20755
- if (isExists) {
20756
- _this51.recalculate();
21077
+ if (expList.length) {
21078
+ _this49.recalculate();
20757
21079
  }
20758
21080
  });
20759
21081
  },
@@ -20872,28 +21194,28 @@ var Methods = {
20872
21194
  },
20873
21195
  // 计算可视渲染相关数据
20874
21196
  computeScrollLoad: function computeScrollLoad() {
20875
- var _this52 = this;
21197
+ var _this50 = this;
20876
21198
  return this.$nextTick().then(function () {
20877
- var sYOpts = _this52.sYOpts,
20878
- sXOpts = _this52.sXOpts,
20879
- scrollXLoad = _this52.scrollXLoad,
20880
- scrollYLoad = _this52.scrollYLoad,
20881
- scrollXStore = _this52.scrollXStore,
20882
- scrollYStore = _this52.scrollYStore;
21199
+ var sYOpts = _this50.sYOpts,
21200
+ sXOpts = _this50.sXOpts,
21201
+ scrollXLoad = _this50.scrollXLoad,
21202
+ scrollYLoad = _this50.scrollYLoad,
21203
+ scrollXStore = _this50.scrollXStore,
21204
+ scrollYStore = _this50.scrollYStore;
20883
21205
  // 计算 X 逻辑
20884
21206
  if (scrollXLoad) {
20885
- var _computeVirtualX3 = computeVirtualX(_this52),
21207
+ var _computeVirtualX3 = computeVirtualX(_this50),
20886
21208
  visibleXSize = _computeVirtualX3.visibleSize;
20887
21209
  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;
20888
21210
  scrollXStore.offsetSize = offsetXSize;
20889
21211
  scrollXStore.visibleSize = visibleXSize;
20890
21212
  scrollXStore.endIndex = Math.max(scrollXStore.startIndex + scrollXStore.visibleSize + offsetXSize, scrollXStore.endIndex);
20891
- _this52.updateScrollXData();
21213
+ _this50.updateScrollXData();
20892
21214
  } else {
20893
- _this52.updateScrollXSpace();
21215
+ _this50.updateScrollXSpace();
20894
21216
  }
20895
21217
  // 计算 Y 逻辑
20896
- var _computeVirtualY = computeVirtualY(_this52),
21218
+ var _computeVirtualY = computeVirtualY(_this50),
20897
21219
  rowHeight = _computeVirtualY.rowHeight,
20898
21220
  visibleYSize = _computeVirtualY.visibleSize;
20899
21221
  scrollYStore.rowHeight = rowHeight;
@@ -20902,12 +21224,12 @@ var Methods = {
20902
21224
  scrollYStore.offsetSize = offsetYSize;
20903
21225
  scrollYStore.visibleSize = visibleYSize;
20904
21226
  scrollYStore.endIndex = Math.max(scrollYStore.startIndex + visibleYSize + offsetYSize, scrollYStore.endIndex);
20905
- _this52.updateScrollYData();
21227
+ _this50.updateScrollYData();
20906
21228
  } else {
20907
- _this52.updateScrollYSpace();
21229
+ _this50.updateScrollYSpace();
20908
21230
  }
20909
- _this52.rowHeight = rowHeight;
20910
- _this52.$nextTick(_this52.updateStyle);
21231
+ _this50.rowHeight = rowHeight;
21232
+ _this50.$nextTick(_this50.updateStyle);
20911
21233
  });
20912
21234
  },
20913
21235
  handleTableColumn: function handleTableColumn() {
@@ -20917,11 +21239,11 @@ var Methods = {
20917
21239
  this.tableColumn = scrollXLoad ? visibleColumn.slice(scrollXStore.startIndex, scrollXStore.endIndex) : visibleColumn.slice(0);
20918
21240
  },
20919
21241
  updateScrollXData: function updateScrollXData() {
20920
- var _this53 = this;
21242
+ var _this51 = this;
20921
21243
  // this.tableColumn = []
20922
21244
  this.$nextTick(function () {
20923
- _this53.handleTableColumn();
20924
- _this53.updateScrollXSpace();
21245
+ _this51.handleTableColumn();
21246
+ _this51.updateScrollXSpace();
20925
21247
  });
20926
21248
  },
20927
21249
  // 更新横向 X 可视渲染上下剩余空间大小
@@ -20972,11 +21294,11 @@ var Methods = {
20972
21294
  }
20973
21295
  },
20974
21296
  updateScrollYData: function updateScrollYData() {
20975
- var _this54 = this;
21297
+ var _this52 = this;
20976
21298
  // this.tableData = []
20977
21299
  this.$nextTick(function () {
20978
- _this54.handleTableData();
20979
- _this54.updateScrollYSpace();
21300
+ _this52.handleTableData();
21301
+ _this52.updateScrollYSpace();
20980
21302
  });
20981
21303
  },
20982
21304
  // 更新纵向 Y 可视渲染上下剩余空间大小
@@ -21017,7 +21339,7 @@ var Methods = {
21017
21339
  * @param {Number} scrollTop 上距离
21018
21340
  */
21019
21341
  scrollTo: function scrollTo(scrollLeft, scrollTop) {
21020
- var _this55 = this;
21342
+ var _this53 = this;
21021
21343
  var $refs = this.$refs;
21022
21344
  var tableBody = $refs.tableBody,
21023
21345
  rightBody = $refs.rightBody,
@@ -21034,7 +21356,7 @@ var Methods = {
21034
21356
  if (this.scrollXLoad || this.scrollYLoad) {
21035
21357
  return new Promise(function (resolve) {
21036
21358
  return setTimeout(function () {
21037
- return resolve(_this55.$nextTick());
21359
+ return resolve(_this53.$nextTick());
21038
21360
  }, 50);
21039
21361
  });
21040
21362
  }
@@ -21076,26 +21398,29 @@ var Methods = {
21076
21398
  * @param {Row} row 行对象
21077
21399
  */
21078
21400
  scrollToTreeRow: function scrollToTreeRow(row) {
21079
- var _this56 = this;
21401
+ var _this54 = this;
21080
21402
  var tableFullData = this.tableFullData,
21081
21403
  treeConfig = this.treeConfig,
21082
21404
  treeOpts = this.treeOpts;
21405
+ var childrenField = treeOpts.children || treeOpts.childrenField;
21083
21406
  var rests = [];
21084
21407
  if (treeConfig) {
21085
21408
  var matchObj = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().findTree(tableFullData, function (item) {
21086
21409
  return item === row;
21087
- }, treeOpts);
21410
+ }, {
21411
+ children: childrenField
21412
+ });
21088
21413
  if (matchObj) {
21089
21414
  var nodes = matchObj.nodes;
21090
21415
  nodes.forEach(function (row, index) {
21091
- if (index < nodes.length - 1 && !_this56.isTreeExpandByRow(row)) {
21092
- rests.push(_this56.setTreeExpand(row, true));
21416
+ if (index < nodes.length - 1 && !_this54.isTreeExpandByRow(row)) {
21417
+ rests.push(_this54.setTreeExpand(row, true));
21093
21418
  }
21094
21419
  });
21095
21420
  }
21096
21421
  }
21097
21422
  return Promise.all(rests).then(function () {
21098
- return rowToVisible(_this56, row);
21423
+ return rowToVisible(_this54, row);
21099
21424
  });
21100
21425
  },
21101
21426
  /**
@@ -21150,30 +21475,30 @@ var Methods = {
21150
21475
  * 如果单元格配置了校验规则,则会进行校验
21151
21476
  */
21152
21477
  updateStatus: function updateStatus(slotParams, cellValue) {
21153
- var _this57 = this;
21478
+ var _this55 = this;
21154
21479
  var customVal = !external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isUndefined(cellValue);
21155
21480
  return this.$nextTick().then(function () {
21156
- var $refs = _this57.$refs,
21157
- editRules = _this57.editRules,
21158
- validStore = _this57.validStore;
21481
+ var $refs = _this55.$refs,
21482
+ editRules = _this55.editRules,
21483
+ validStore = _this55.validStore;
21159
21484
  if (slotParams && $refs.tableBody && editRules) {
21160
21485
  var row = slotParams.row,
21161
21486
  column = slotParams.column;
21162
21487
  var type = 'change';
21163
- if (_this57.hasCellRules(type, row, column)) {
21164
- var cell = _this57.getCell(row, column);
21488
+ if (_this55.hasCellRules(type, row, column)) {
21489
+ var cell = _this55.getCell(row, column);
21165
21490
  if (cell) {
21166
- return _this57.validCellRules(type, row, column, cellValue).then(function () {
21491
+ return _this55.validCellRules(type, row, column, cellValue).then(function () {
21167
21492
  if (customVal && validStore.visible) {
21168
21493
  setCellValue(row, column, cellValue);
21169
21494
  }
21170
- _this57.clearValidate();
21495
+ _this55.clearValidate();
21171
21496
  })["catch"](function (_ref8) {
21172
21497
  var rule = _ref8.rule;
21173
21498
  if (customVal) {
21174
21499
  setCellValue(row, column, cellValue);
21175
21500
  }
21176
- _this57.showValidTooltip({
21501
+ _this55.showValidTooltip({
21177
21502
  rule: rule,
21178
21503
  row: row,
21179
21504
  column: column,
@@ -21193,13 +21518,13 @@ var Methods = {
21193
21518
  * @param {TableMergeConfig[]} merges { row: Row|number, column: ColumnInfo|number, rowspan: number, colspan: number }
21194
21519
  */
21195
21520
  setMergeCells: function setMergeCells(merges) {
21196
- var _this58 = this;
21521
+ var _this56 = this;
21197
21522
  if (this.spanMethod) {
21198
21523
  errLog('vxe.error.errConflicts', ['merge-cells', 'span-method']);
21199
21524
  }
21200
21525
  setMerges(this, merges, this.mergeList, this.afterFullData);
21201
21526
  return this.$nextTick().then(function () {
21202
- return _this58.updateCellAreas();
21527
+ return _this56.updateCellAreas();
21203
21528
  });
21204
21529
  },
21205
21530
  /**
@@ -21207,13 +21532,13 @@ var Methods = {
21207
21532
  * @param {TableMergeConfig[]} merges 多个或数组 [{row:Row|number, col:ColumnInfo|number}]
21208
21533
  */
21209
21534
  removeMergeCells: function removeMergeCells(merges) {
21210
- var _this59 = this;
21535
+ var _this57 = this;
21211
21536
  if (this.spanMethod) {
21212
21537
  errLog('vxe.error.errConflicts', ['merge-cells', 'span-method']);
21213
21538
  }
21214
21539
  var rest = removeMerges(this, merges, this.mergeList, this.afterFullData);
21215
21540
  return this.$nextTick().then(function () {
21216
- _this59.updateCellAreas();
21541
+ _this57.updateCellAreas();
21217
21542
  return rest;
21218
21543
  });
21219
21544
  },
@@ -21234,23 +21559,23 @@ var Methods = {
21234
21559
  this.setMergeFooterItems(this.mergeFooterItems);
21235
21560
  },
21236
21561
  setMergeFooterItems: function setMergeFooterItems(merges) {
21237
- var _this60 = this;
21562
+ var _this58 = this;
21238
21563
  if (this.footerSpanMethod) {
21239
21564
  errLog('vxe.error.errConflicts', ['merge-footer-items', 'footer-span-method']);
21240
21565
  }
21241
21566
  setMerges(this, merges, this.mergeFooterList, null);
21242
21567
  return this.$nextTick().then(function () {
21243
- return _this60.updateCellAreas();
21568
+ return _this58.updateCellAreas();
21244
21569
  });
21245
21570
  },
21246
21571
  removeMergeFooterItems: function removeMergeFooterItems(merges) {
21247
- var _this61 = this;
21572
+ var _this59 = this;
21248
21573
  if (this.footerSpanMethod) {
21249
21574
  errLog('vxe.error.errConflicts', ['merge-footer-items', 'footer-span-method']);
21250
21575
  }
21251
21576
  var rest = removeMerges(this, merges, this.mergeFooterList, null);
21252
21577
  return this.$nextTick().then(function () {
21253
- _this61.updateCellAreas();
21578
+ _this59.updateCellAreas();
21254
21579
  return rest;
21255
21580
  });
21256
21581
  },
@@ -21350,10 +21675,10 @@ var Methods = {
21350
21675
  };
21351
21676
  if (external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isString(formatter)) {
21352
21677
  var gFormatOpts = formats.get(formatter);
21353
- cellLabel = gFormatOpts && gFormatOpts.formatMethod ? gFormatOpts.formatMethod(formatParams) : '';
21678
+ cellLabel = gFormatOpts && gFormatOpts.cellFormatMethod ? gFormatOpts.cellFormatMethod(formatParams) : '';
21354
21679
  } else if (external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isArray(formatter)) {
21355
21680
  var _gFormatOpts = formats.get(formatter[0]);
21356
- cellLabel = _gFormatOpts && _gFormatOpts.formatMethod ? _gFormatOpts.formatMethod.apply(_gFormatOpts, [formatParams].concat(_toConsumableArray(formatter.slice(1)))) : '';
21681
+ cellLabel = _gFormatOpts && _gFormatOpts.cellFormatMethod ? _gFormatOpts.cellFormatMethod.apply(_gFormatOpts, [formatParams].concat(_toConsumableArray(formatter.slice(1)))) : '';
21357
21682
  } else {
21358
21683
  cellLabel = formatter(formatParams);
21359
21684
  }
@@ -21367,9 +21692,9 @@ var Methods = {
21367
21692
  return cellLabel;
21368
21693
  },
21369
21694
  findRowIndexOf: function findRowIndexOf(list, row) {
21370
- var _this62 = this;
21695
+ var _this60 = this;
21371
21696
  return row ? external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().findIndexOf(list, function (item) {
21372
- return _this62.eqRow(item, row);
21697
+ return _this60.eqRow(item, row);
21373
21698
  }) : -1;
21374
21699
  },
21375
21700
  eqRow: function eqRow(row1, row2) {
@@ -21390,7 +21715,7 @@ var Methods = {
21390
21715
  };
21391
21716
 
21392
21717
  // Module methods
21393
- var funcs = 'setFilter,openFilter,clearFilter,getCheckedFilters,closeMenu,setActiveCellArea,getActiveCellArea,getCellAreas,clearCellAreas,copyCellArea,cutCellArea,pasteCellArea,getCopyCellArea,getCopyCellAreas,clearCopyCellArea,setCellAreas,openFind,openReplace,closeFNR,getSelectedCell,clearSelected,insert,insertAt,remove,removeCheckboxRow,removeRadioRow,removeCurrentRow,getRecordset,getInsertRecords,getRemoveRecords,getUpdateRecords,clearEdit,clearActived,getEditRecord,getActiveRecord,isEditByRow,isActiveByRow,setEditRow,setActiveRow,setEditCell,setActiveCell,setSelectCell,clearValidate,fullValidate,validate,openExport,openPrint,exportData,openImport,importData,saveFile,readFile,importByFile,print'.split(',');
21718
+ var funcs = 'setFilter,openFilter,clearFilter,getCheckedFilters,closeMenu,setActiveCellArea,getActiveCellArea,getCellAreas,clearCellAreas,copyCellArea,cutCellArea,pasteCellArea,getCopyCellArea,getCopyCellAreas,clearCopyCellArea,setCellAreas,openFind,openReplace,closeFNR,getSelectedCell,clearSelected,insert,insertAt,insertNextAt,remove,removeCheckboxRow,removeRadioRow,removeCurrentRow,getRecordset,getInsertRecords,getRemoveRecords,getUpdateRecords,clearEdit,clearActived,getEditRecord,getActiveRecord,isEditByRow,isActiveByRow,setEditRow,setActiveRow,setEditCell,setActiveCell,setSelectCell,clearValidate,fullValidate,validate,openExport,openPrint,exportData,openImport,importData,saveFile,readFile,importByFile,print'.split(',');
21394
21719
  funcs.forEach(function (name) {
21395
21720
  Methods[name] = function () {
21396
21721
  if (false) {}
@@ -21899,14 +22224,14 @@ function handleUupdateResize(_vm) {
21899
22224
  isAllSelected: false,
21900
22225
  // 复选框属性,有选中且非全选状态
21901
22226
  isIndeterminate: false,
21902
- // 复选框属性,已选中的行
21903
- selectCheckboxRows: [],
22227
+ // 复选框属性,已选中的行集合
22228
+ selectCheckboxMaps: {},
21904
22229
  // 当前行
21905
22230
  currentRow: null,
21906
22231
  // 单选框属性,选中列
21907
22232
  currentColumn: null,
21908
22233
  // 单选框属性,选中行
21909
- selectRow: null,
22234
+ selectRadioRow: null,
21910
22235
  // 表尾合计数据
21911
22236
  footerTableData: [],
21912
22237
  // 展开列信息
@@ -21914,16 +22239,16 @@ function handleUupdateResize(_vm) {
21914
22239
  hasFixedColumn: false,
21915
22240
  // 树节点列信息
21916
22241
  treeNodeColumn: null,
21917
- // 已展开的行
21918
- rowExpandeds: [],
21919
- // 懒加载中的展开行的列表
21920
- expandLazyLoadeds: [],
21921
- // 已展开树节点
21922
- treeExpandeds: [],
21923
- // 懒加载中的树节点的列表
21924
- treeLazyLoadeds: [],
21925
- // 树节点不确定状态的列表
21926
- treeIndeterminates: [],
22242
+ // 已展开的行集合
22243
+ rowExpandedMaps: {},
22244
+ // 懒加载中的展开行的集合
22245
+ rowExpandLazyLoadedMaps: {},
22246
+ // 已展开树节点集合
22247
+ treeExpandedMaps: {},
22248
+ // 懒加载中的树节点的集合
22249
+ treeExpandLazyLoadedMaps: {},
22250
+ // 树节点不确定状态的集合
22251
+ treeIndeterminateMaps: {},
21927
22252
  // 合并单元格的对象集
21928
22253
  mergeList: [],
21929
22254
  // 合并表尾数据的对象集
@@ -22386,6 +22711,8 @@ function handleUupdateResize(_vm) {
22386
22711
  // 完整数据、条件处理后
22387
22712
  tableFullData: [],
22388
22713
  afterFullData: [],
22714
+ // 列表条件处理后数据集合
22715
+ afterFullRowMaps: {},
22389
22716
  // 收集的列配置(带分组)
22390
22717
  collectColumn: [],
22391
22718
  // 完整所有列(不带分组)
@@ -22542,7 +22869,7 @@ function handleUupdateResize(_vm) {
22542
22869
  var leftList = columnStore.leftList,
22543
22870
  rightList = columnStore.rightList;
22544
22871
  return h('div', {
22545
- "class": ['vxe-table', 'vxe-table--render-default', "tid_".concat(tId), vSize ? "size--".concat(vSize) : '', "border--".concat(tableBorder), (_ref = {}, _defineProperty(_ref, "vaild-msg--".concat(validOpts.msgMode), !!editRules), _defineProperty(_ref, 'vxe-editable', !!editConfig), _defineProperty(_ref, 'cell--highlight', highlightCell), _defineProperty(_ref, 'cell--selected', mouseConfig && mouseOpts.selected), _defineProperty(_ref, 'cell--area', mouseConfig && mouseOpts.area), _defineProperty(_ref, 'row--highlight', rowOpts.isHover || highlightHoverRow), _defineProperty(_ref, 'column--highlight', columnOpts.isHover || highlightHoverColumn), _defineProperty(_ref, 'is--header', showHeader), _defineProperty(_ref, 'is--footer', showFooter), _defineProperty(_ref, 'is--group', isGroup), _defineProperty(_ref, 'is--tree-line', treeConfig && treeOpts.line), _defineProperty(_ref, 'is--fixed-left', leftList.length), _defineProperty(_ref, 'is--fixed-right', rightList.length), _defineProperty(_ref, 'is--animat', !!this.animat), _defineProperty(_ref, 'is--round', this.round), _defineProperty(_ref, 'is--stripe', !treeConfig && stripe), _defineProperty(_ref, 'is--loading', loading), _defineProperty(_ref, 'is--empty', !loading && !tableData.length), _defineProperty(_ref, 'is--scroll-y', overflowY), _defineProperty(_ref, 'is--scroll-x', overflowX), _defineProperty(_ref, 'is--virtual-x', scrollXLoad), _defineProperty(_ref, 'is--virtual-y', scrollYLoad), _ref)],
22872
+ "class": ['vxe-table', 'vxe-table--render-default', "tid_".concat(tId), vSize ? "size--".concat(vSize) : '', "border--".concat(tableBorder), (_ref = {}, _defineProperty(_ref, "vaild-msg--".concat(validOpts.msgMode), !!editRules), _defineProperty(_ref, 'vxe-editable', !!editConfig), _defineProperty(_ref, 'cell--highlight', highlightCell), _defineProperty(_ref, 'cell--selected', mouseConfig && mouseOpts.selected), _defineProperty(_ref, 'cell--area', mouseConfig && mouseOpts.area), _defineProperty(_ref, 'row--highlight', rowOpts.isHover || highlightHoverRow), _defineProperty(_ref, 'column--highlight', columnOpts.isHover || highlightHoverColumn), _defineProperty(_ref, 'is--header', showHeader), _defineProperty(_ref, 'is--footer', showFooter), _defineProperty(_ref, 'is--group', isGroup), _defineProperty(_ref, 'is--tree-line', treeConfig && (treeOpts.showLine || treeOpts.line)), _defineProperty(_ref, 'is--fixed-left', leftList.length), _defineProperty(_ref, 'is--fixed-right', rightList.length), _defineProperty(_ref, 'is--animat', !!this.animat), _defineProperty(_ref, 'is--round', this.round), _defineProperty(_ref, 'is--stripe', !treeConfig && stripe), _defineProperty(_ref, 'is--loading', loading), _defineProperty(_ref, 'is--empty', !loading && !tableData.length), _defineProperty(_ref, 'is--scroll-y', overflowY), _defineProperty(_ref, 'is--scroll-x', overflowX), _defineProperty(_ref, 'is--virtual-x', scrollXLoad), _defineProperty(_ref, 'is--virtual-y', scrollYLoad), _ref)],
22546
22873
  on: {
22547
22874
  keydown: this.keydownEvent
22548
22875
  }
@@ -23750,6 +24077,7 @@ var es_array_unshift = __webpack_require__(541);
23750
24077
 
23751
24078
 
23752
24079
 
24080
+
23753
24081
 
23754
24082
 
23755
24083
  function insertTreeRow(_vm, newRecords, isAppend) {
@@ -23760,8 +24088,8 @@ function insertTreeRow(_vm, newRecords, isAppend) {
23760
24088
  treeOpts = _vm.treeOpts;
23761
24089
  var rowField = treeOpts.rowField,
23762
24090
  parentField = treeOpts.parentField,
23763
- children = treeOpts.children,
23764
- mapChildren = treeOpts.mapChildren;
24091
+ mapChildrenField = treeOpts.mapChildrenField;
24092
+ var childrenField = treeOpts.children || treeOpts.childrenField;
23765
24093
  var funcName = isAppend ? 'push' : 'unshift';
23766
24094
  newRecords.forEach(function (item) {
23767
24095
  var parentRowId = item[parentField];
@@ -23769,17 +24097,22 @@ function insertTreeRow(_vm, newRecords, isAppend) {
23769
24097
  var matchObj = parentRowId ? external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().findTree(tableFullTreeData, function (item) {
23770
24098
  return parentRowId === item[rowField];
23771
24099
  }, {
23772
- children: mapChildren
24100
+ children: mapChildrenField
23773
24101
  }) : null;
23774
24102
  if (matchObj) {
23775
24103
  var parentRow = matchObj.item;
23776
24104
  var parentRest = fullAllDataRowIdData[getRowid(_vm, parentRow)];
23777
24105
  var parentLevel = parentRest ? parentRest.level : 0;
23778
- var parentChilds = parentRow[children];
24106
+ var parentChilds = parentRow[childrenField];
24107
+ var mapChilds = parentRow[mapChildrenField];
23779
24108
  if (!external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isArray(parentChilds)) {
23780
- parentChilds = parentRow[children] = [];
24109
+ parentChilds = parentRow[childrenField] = [];
24110
+ }
24111
+ if (!external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isArray(mapChilds)) {
24112
+ mapChilds = parentRow[childrenField] = [];
23781
24113
  }
23782
24114
  parentChilds[funcName](item);
24115
+ mapChilds[funcName](item);
23783
24116
  var rest = {
23784
24117
  row: item,
23785
24118
  rowid: rowid,
@@ -23813,6 +24146,181 @@ function insertTreeRow(_vm, newRecords, isAppend) {
23813
24146
  }
23814
24147
  });
23815
24148
  }
24149
+ function handleInsertRowAt(_vm, records, row, isInsertNextRow) {
24150
+ var tableFullTreeData = _vm.tableFullTreeData,
24151
+ mergeList = _vm.mergeList,
24152
+ afterFullData = _vm.afterFullData,
24153
+ editStore = _vm.editStore,
24154
+ tableFullData = _vm.tableFullData,
24155
+ treeConfig = _vm.treeConfig,
24156
+ fullDataRowIdData = _vm.fullDataRowIdData,
24157
+ fullAllDataRowIdData = _vm.fullAllDataRowIdData,
24158
+ treeOpts = _vm.treeOpts;
24159
+ var transform = treeOpts.transform,
24160
+ rowField = treeOpts.rowField,
24161
+ mapChildrenField = treeOpts.mapChildrenField;
24162
+ var childrenField = treeOpts.children || treeOpts.childrenField;
24163
+ if (!external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isArray(records)) {
24164
+ records = [records];
24165
+ }
24166
+ var newRecords = _vm.defineField(records.map(function (record) {
24167
+ var _ref;
24168
+ return Object.assign(treeConfig && transform ? (_ref = {}, _defineProperty(_ref, mapChildrenField, []), _defineProperty(_ref, childrenField, []), _ref) : {}, record);
24169
+ }));
24170
+ if (!row) {
24171
+ // 如果为虚拟树
24172
+ if (treeConfig && transform) {
24173
+ insertTreeRow(_vm, newRecords, false);
24174
+ } else {
24175
+ afterFullData.unshift.apply(afterFullData, _toConsumableArray(newRecords));
24176
+ tableFullData.unshift.apply(tableFullData, _toConsumableArray(newRecords));
24177
+ // 刷新单元格合并
24178
+ mergeList.forEach(function (mergeItem) {
24179
+ var mergeRowIndex = mergeItem.row;
24180
+ if (mergeRowIndex > 0) {
24181
+ mergeItem.row = mergeRowIndex + newRecords.length;
24182
+ }
24183
+ });
24184
+ }
24185
+ } else {
24186
+ if (row === -1) {
24187
+ // 如果为虚拟树
24188
+ if (treeConfig && transform) {
24189
+ insertTreeRow(_vm, newRecords, true);
24190
+ } else {
24191
+ afterFullData.push.apply(afterFullData, _toConsumableArray(newRecords));
24192
+ tableFullData.push.apply(tableFullData, _toConsumableArray(newRecords));
24193
+ // 刷新单元格合并
24194
+ mergeList.forEach(function (mergeItem) {
24195
+ var mergeRowIndex = mergeItem.row,
24196
+ mergeRowspan = mergeItem.rowspan;
24197
+ if (mergeRowIndex + mergeRowspan > afterFullData.length) {
24198
+ mergeItem.rowspan = mergeRowspan + newRecords.length;
24199
+ }
24200
+ });
24201
+ }
24202
+ } else {
24203
+ // 如果为虚拟树
24204
+ if (treeConfig && transform) {
24205
+ var matchMapObj = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().findTree(tableFullTreeData, function (item) {
24206
+ return row[rowField] === item[rowField];
24207
+ }, {
24208
+ children: mapChildrenField
24209
+ });
24210
+ if (matchMapObj) {
24211
+ var parentRow = matchMapObj.parent;
24212
+ var parentMapChilds = parentRow ? parentRow[mapChildrenField] : tableFullTreeData;
24213
+ var parentRest = fullAllDataRowIdData[getRowid(_vm, parentRow)];
24214
+ var parentLevel = parentRest ? parentRest.level : 0;
24215
+ newRecords.forEach(function (item, i) {
24216
+ var rowid = getRowid(_vm, item);
24217
+ if (false) {}
24218
+ if (parentRow) {
24219
+ item[treeOpts.parentField] = parentRow[rowField];
24220
+ }
24221
+ var targetIndex = matchMapObj.index + i;
24222
+ if (isInsertNextRow) {
24223
+ targetIndex = targetIndex + 1;
24224
+ }
24225
+ parentMapChilds.splice(targetIndex, 0, item);
24226
+ var rest = {
24227
+ row: item,
24228
+ rowid: rowid,
24229
+ seq: -1,
24230
+ index: -1,
24231
+ _index: -1,
24232
+ $index: -1,
24233
+ items: parentMapChilds,
24234
+ parent: parentRow,
24235
+ level: parentLevel + 1
24236
+ };
24237
+ fullDataRowIdData[rowid] = rest;
24238
+ fullAllDataRowIdData[rowid] = rest;
24239
+ });
24240
+
24241
+ // 源
24242
+ if (parentRow) {
24243
+ var matchObj = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().findTree(tableFullTreeData, function (item) {
24244
+ return row[rowField] === item[rowField];
24245
+ }, {
24246
+ children: childrenField
24247
+ });
24248
+ if (matchObj) {
24249
+ var parentChilds = matchObj.items;
24250
+ var targetIndex = matchObj.index;
24251
+ if (isInsertNextRow) {
24252
+ targetIndex = targetIndex + 1;
24253
+ }
24254
+ parentChilds.splice.apply(parentChilds, [targetIndex, 0].concat(_toConsumableArray(newRecords)));
24255
+ }
24256
+ }
24257
+ } else {
24258
+ if (false) {}
24259
+ insertTreeRow(_vm, newRecords, true);
24260
+ }
24261
+ } else {
24262
+ if (treeConfig) {
24263
+ throw new Error(getLog('vxe.error.noTree', ['insert']));
24264
+ }
24265
+ var afIndex = -1;
24266
+ // 如果是可视索引
24267
+ if (external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isNumber(row)) {
24268
+ if (row < afterFullData.length) {
24269
+ afIndex = row;
24270
+ }
24271
+ } else {
24272
+ afIndex = _vm.findRowIndexOf(afterFullData, row);
24273
+ }
24274
+ // 如果是插入指定行的下一行
24275
+ if (isInsertNextRow) {
24276
+ afIndex = Math.max(afterFullData.length, afIndex + 1);
24277
+ }
24278
+ if (afIndex === -1) {
24279
+ throw new Error(errLog('vxe.error.unableInsert'));
24280
+ }
24281
+ afterFullData.splice.apply(afterFullData, [afIndex, 0].concat(_toConsumableArray(newRecords)));
24282
+ tableFullData.splice.apply(tableFullData, [_vm.findRowIndexOf(tableFullData, row), 0].concat(_toConsumableArray(newRecords)));
24283
+ // 刷新单元格合并
24284
+ mergeList.forEach(function (mergeItem) {
24285
+ var mergeRowIndex = mergeItem.row,
24286
+ mergeRowspan = mergeItem.rowspan;
24287
+ if (mergeRowIndex > afIndex) {
24288
+ mergeItem.row = mergeRowIndex + newRecords.length;
24289
+ } else if (mergeRowIndex + mergeRowspan > afIndex) {
24290
+ mergeItem.rowspan = mergeRowspan + newRecords.length;
24291
+ }
24292
+ });
24293
+ }
24294
+ }
24295
+ }
24296
+ var insertList = editStore.insertList,
24297
+ insertMaps = editStore.insertMaps;
24298
+ newRecords.forEach(function (newRow) {
24299
+ var rowid = getRowid(_vm, newRow);
24300
+ insertMaps[rowid] = newRow;
24301
+ });
24302
+ insertList.unshift.apply(insertList, _toConsumableArray(newRecords));
24303
+ _vm.cacheRowMap();
24304
+ _vm.updateScrollYStatus();
24305
+ _vm.handleTableData(treeConfig && transform);
24306
+ if (!(treeConfig && transform)) {
24307
+ _vm.updateAfterDataIndex();
24308
+ }
24309
+ _vm.updateFooter();
24310
+ _vm.checkSelectionStatus();
24311
+ if (_vm.scrollYLoad) {
24312
+ _vm.updateScrollYSpace();
24313
+ }
24314
+ return _vm.$nextTick().then(function () {
24315
+ _vm.updateCellAreas();
24316
+ return _vm.recalculate();
24317
+ }).then(function () {
24318
+ return {
24319
+ row: newRecords.length ? newRecords[newRecords.length - 1] : null,
24320
+ rows: newRecords
24321
+ };
24322
+ });
24323
+ }
23816
24324
  /* harmony default export */ const edit_src_mixin = ({
23817
24325
  methods: {
23818
24326
  /**
@@ -23821,7 +24329,7 @@ function insertTreeRow(_vm, newRecords, isAppend) {
23821
24329
  * @param {*} records
23822
24330
  */
23823
24331
  _insert: function _insert(records) {
23824
- return this.insertAt(records);
24332
+ return handleInsertRowAt(this, records, null);
23825
24333
  },
23826
24334
  /**
23827
24335
  * 往表格指定行中插入临时数据
@@ -23830,155 +24338,13 @@ function insertTreeRow(_vm, newRecords, isAppend) {
23830
24338
  * 如果 row 为有效行则插入到该行的位置
23831
24339
  * @param {Object/Array} records 新的数据
23832
24340
  * @param {Row} row 指定行
24341
+ * @returns
23833
24342
  */
23834
24343
  _insertAt: function _insertAt(records, row) {
23835
- var _this = this;
23836
- var tableFullTreeData = this.tableFullTreeData,
23837
- mergeList = this.mergeList,
23838
- afterFullData = this.afterFullData,
23839
- editStore = this.editStore,
23840
- tableFullData = this.tableFullData,
23841
- treeConfig = this.treeConfig,
23842
- fullDataRowIdData = this.fullDataRowIdData,
23843
- fullAllDataRowIdData = this.fullAllDataRowIdData,
23844
- treeOpts = this.treeOpts;
23845
- var transform = treeOpts.transform,
23846
- rowField = treeOpts.rowField,
23847
- mapChildren = treeOpts.mapChildren;
23848
- if (!external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isArray(records)) {
23849
- records = [records];
23850
- }
23851
- var newRecords = this.defineField(records.map(function (record) {
23852
- return Object.assign({}, record);
23853
- }));
23854
- if (!row) {
23855
- // 如果为虚拟树
23856
- if (treeConfig && transform) {
23857
- insertTreeRow(this, newRecords, false);
23858
- } else {
23859
- afterFullData.unshift.apply(afterFullData, _toConsumableArray(newRecords));
23860
- tableFullData.unshift.apply(tableFullData, _toConsumableArray(newRecords));
23861
- // 刷新单元格合并
23862
- mergeList.forEach(function (mergeItem) {
23863
- var mergeRowIndex = mergeItem.row;
23864
- if (mergeRowIndex > 0) {
23865
- mergeItem.row = mergeRowIndex + newRecords.length;
23866
- }
23867
- });
23868
- }
23869
- } else {
23870
- if (row === -1) {
23871
- // 如果为虚拟树
23872
- if (treeConfig && transform) {
23873
- insertTreeRow(this, newRecords, true);
23874
- } else {
23875
- afterFullData.push.apply(afterFullData, _toConsumableArray(newRecords));
23876
- tableFullData.push.apply(tableFullData, _toConsumableArray(newRecords));
23877
- // 刷新单元格合并
23878
- mergeList.forEach(function (mergeItem) {
23879
- var mergeRowIndex = mergeItem.row,
23880
- mergeRowspan = mergeItem.rowspan;
23881
- if (mergeRowIndex + mergeRowspan > afterFullData.length) {
23882
- mergeItem.rowspan = mergeRowspan + newRecords.length;
23883
- }
23884
- });
23885
- }
23886
- } else {
23887
- // 如果为虚拟树
23888
- if (treeConfig && transform) {
23889
- var matchObj = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().findTree(tableFullTreeData, function (item) {
23890
- return row[rowField] === item[rowField];
23891
- }, {
23892
- children: mapChildren
23893
- });
23894
- if (matchObj) {
23895
- var parentRow = matchObj.parent;
23896
- var parentChilds = matchObj.items;
23897
- var parentRest = fullAllDataRowIdData[getRowid(this, parentRow)];
23898
- var parentLevel = parentRest ? parentRest.level : 0;
23899
- newRecords.forEach(function (item, i) {
23900
- var rowid = getRowid(_this, item);
23901
- if (false) {}
23902
- if (parentRow) {
23903
- item[treeOpts.parentField] = parentRow[rowField];
23904
- }
23905
- parentChilds.splice(matchObj.index + i, 0, item);
23906
- var rest = {
23907
- row: item,
23908
- rowid: rowid,
23909
- seq: -1,
23910
- index: -1,
23911
- _index: -1,
23912
- $index: -1,
23913
- items: parentChilds,
23914
- parent: parentRow,
23915
- level: parentLevel + 1
23916
- };
23917
- fullDataRowIdData[rowid] = rest;
23918
- fullAllDataRowIdData[rowid] = rest;
23919
- });
23920
- } else {
23921
- if (false) {}
23922
- insertTreeRow(this, newRecords, true);
23923
- }
23924
- } else {
23925
- if (treeConfig) {
23926
- throw new Error(getLog('vxe.error.noTree', ['insert']));
23927
- }
23928
- var afIndex = -1;
23929
- // 如果是可视索引
23930
- if (external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isNumber(row)) {
23931
- if (row < afterFullData.length) {
23932
- afIndex = row;
23933
- }
23934
- } else {
23935
- afIndex = this.findRowIndexOf(afterFullData, row);
23936
- }
23937
- if (afIndex === -1) {
23938
- throw new Error(errLog('vxe.error.unableInsert'));
23939
- }
23940
- afterFullData.splice.apply(afterFullData, [afIndex, 0].concat(_toConsumableArray(newRecords)));
23941
- tableFullData.splice.apply(tableFullData, [this.findRowIndexOf(tableFullData, row), 0].concat(_toConsumableArray(newRecords)));
23942
- // 刷新单元格合并
23943
- mergeList.forEach(function (mergeItem) {
23944
- var mergeRowIndex = mergeItem.row,
23945
- mergeRowspan = mergeItem.rowspan;
23946
- if (mergeRowIndex > afIndex) {
23947
- mergeItem.row = mergeRowIndex + newRecords.length;
23948
- } else if (mergeRowIndex + mergeRowspan > afIndex) {
23949
- mergeItem.rowspan = mergeRowspan + newRecords.length;
23950
- }
23951
- });
23952
- }
23953
- }
23954
- }
23955
- var insertList = editStore.insertList,
23956
- insertMaps = editStore.insertMaps;
23957
- newRecords.forEach(function (newRow) {
23958
- var rowid = getRowid(_this, newRow);
23959
- insertMaps[rowid] = newRow;
23960
- });
23961
- insertList.unshift.apply(insertList, _toConsumableArray(newRecords));
23962
- this.cacheRowMap();
23963
- this.updateScrollYStatus();
23964
- this.handleTableData(treeConfig && transform);
23965
- if (!(treeConfig && transform)) {
23966
- this.updateAfterDataIndex();
23967
- }
23968
- this.updateFooter();
23969
- this.checkSelectionStatus();
23970
- if (this.scrollYLoad) {
23971
- this.updateScrollYSpace();
23972
- }
23973
- return this.$nextTick().then(function () {
23974
- _this.updateCellAreas();
23975
- return _this.recalculate();
23976
- }).then(function () {
23977
- return {
23978
- row: newRecords.length ? newRecords[newRecords.length - 1] : null,
23979
- rows: newRecords
23980
- };
23981
- });
24344
+ return handleInsertRowAt(this, records, row);
24345
+ },
24346
+ _insertNextAt: function _insertNextAt(records, row) {
24347
+ return handleInsertRowAt(this, records, row, true);
23982
24348
  },
23983
24349
  /**
23984
24350
  * 删除指定行数据
@@ -23987,7 +24353,7 @@ function insertTreeRow(_vm, newRecords, isAppend) {
23987
24353
  * 如果为空则删除所有
23988
24354
  */
23989
24355
  _remove: function _remove(rows) {
23990
- var _this2 = this;
24356
+ var _this = this;
23991
24357
  var afterFullData = this.afterFullData,
23992
24358
  tableFullData = this.tableFullData,
23993
24359
  tableFullTreeData = this.tableFullTreeData,
@@ -23995,16 +24361,18 @@ function insertTreeRow(_vm, newRecords, isAppend) {
23995
24361
  mergeList = this.mergeList,
23996
24362
  editStore = this.editStore,
23997
24363
  checkboxOpts = this.checkboxOpts,
23998
- selectCheckboxRows = this.selectCheckboxRows,
24364
+ selectCheckboxMaps = this.selectCheckboxMaps,
23999
24365
  isInsertByRow = this.isInsertByRow,
24000
24366
  treeOpts = this.treeOpts;
24001
- var transform = treeOpts.transform;
24367
+ var transform = treeOpts.transform,
24368
+ mapChildrenField = treeOpts.mapChildrenField;
24369
+ var childrenField = treeOpts.children || treeOpts.childrenField;
24002
24370
  var actived = editStore.actived,
24003
24371
  removeList = editStore.removeList,
24004
24372
  insertList = editStore.insertList,
24005
24373
  insertMaps = editStore.insertMaps;
24006
24374
  var checkField = checkboxOpts.checkField;
24007
- var rest = [];
24375
+ var delList = [];
24008
24376
  if (!rows) {
24009
24377
  rows = tableFullData;
24010
24378
  } else if (!external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isArray(rows)) {
@@ -24018,16 +24386,18 @@ function insertTreeRow(_vm, newRecords, isAppend) {
24018
24386
  });
24019
24387
  // 如果绑定了多选属性,则更新状态
24020
24388
  if (!checkField) {
24389
+ var selectRowMaps = _objectSpread2({}, selectCheckboxMaps);
24021
24390
  rows.forEach(function (row) {
24022
- var sIndex = _this2.findRowIndexOf(selectCheckboxRows, row);
24023
- if (sIndex > -1) {
24024
- selectCheckboxRows.splice(sIndex, 1);
24391
+ var rowid = getRowid(_this, row);
24392
+ if (selectRowMaps[rowid]) {
24393
+ delete selectRowMaps[rowid];
24025
24394
  }
24026
24395
  });
24396
+ this.selectCheckboxMaps = selectRowMaps;
24027
24397
  }
24028
24398
  // 从数据源中移除
24029
24399
  if (tableFullData === rows) {
24030
- rows = rest = tableFullData.slice(0);
24400
+ rows = delList = tableFullData.slice(0);
24031
24401
  this.tableFullData = [];
24032
24402
  this.afterFullData = [];
24033
24403
  this.clearMergeCells();
@@ -24035,27 +24405,37 @@ function insertTreeRow(_vm, newRecords, isAppend) {
24035
24405
  // 如果为虚拟树
24036
24406
  if (treeConfig && transform) {
24037
24407
  rows.forEach(function (row) {
24038
- var rowid = getRowid(_this2, row);
24408
+ var rowid = getRowid(_this, row);
24409
+ var matchMapObj = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().findTree(tableFullTreeData, function (item) {
24410
+ return rowid === getRowid(_this, item);
24411
+ }, {
24412
+ children: mapChildrenField
24413
+ });
24414
+ if (matchMapObj) {
24415
+ var rItems = matchMapObj.items.splice(matchMapObj.index, 1);
24416
+ delList.push(rItems[0]);
24417
+ }
24039
24418
  var matchObj = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().findTree(tableFullTreeData, function (item) {
24040
- return rowid === getRowid(_this2, item);
24041
- }, treeOpts);
24419
+ return rowid === getRowid(_this, item);
24420
+ }, {
24421
+ children: childrenField
24422
+ });
24042
24423
  if (matchObj) {
24043
- var rItems = matchObj.items.splice(matchObj.index, 1);
24044
- rest.push(rItems[0]);
24424
+ matchObj.items.splice(matchObj.index, 1);
24045
24425
  }
24046
- var afIndex = _this2.findRowIndexOf(afterFullData, row);
24426
+ var afIndex = _this.findRowIndexOf(afterFullData, row);
24047
24427
  if (afIndex > -1) {
24048
24428
  afterFullData.splice(afIndex, 1);
24049
24429
  }
24050
24430
  });
24051
24431
  } else {
24052
24432
  rows.forEach(function (row) {
24053
- var tfIndex = _this2.findRowIndexOf(tableFullData, row);
24433
+ var tfIndex = _this.findRowIndexOf(tableFullData, row);
24054
24434
  if (tfIndex > -1) {
24055
24435
  var rItems = tableFullData.splice(tfIndex, 1);
24056
- rest.push(rItems[0]);
24436
+ delList.push(rItems[0]);
24057
24437
  }
24058
- var afIndex = _this2.findRowIndexOf(afterFullData, row);
24438
+ var afIndex = _this.findRowIndexOf(afterFullData, row);
24059
24439
  if (afIndex > -1) {
24060
24440
  // 刷新单元格合并
24061
24441
  mergeList.forEach(function (mergeItem) {
@@ -24078,8 +24458,8 @@ function insertTreeRow(_vm, newRecords, isAppend) {
24078
24458
  }
24079
24459
  // 从新增中移除已删除的数据
24080
24460
  rows.forEach(function (row) {
24081
- var rowid = getRowid(_this2, row);
24082
- var iIndex = _this2.findRowIndexOf(insertList, row);
24461
+ var rowid = getRowid(_this, row);
24462
+ var iIndex = _this.findRowIndexOf(insertList, row);
24083
24463
  if (iIndex > -1) {
24084
24464
  insertList.splice(iIndex, 1);
24085
24465
  }
@@ -24096,12 +24476,12 @@ function insertTreeRow(_vm, newRecords, isAppend) {
24096
24476
  this.updateScrollYSpace();
24097
24477
  }
24098
24478
  return this.$nextTick().then(function () {
24099
- _this2.updateCellAreas();
24100
- return _this2.recalculate();
24479
+ _this.updateCellAreas();
24480
+ return _this.recalculate();
24101
24481
  }).then(function () {
24102
24482
  return {
24103
- row: rest.length ? rest[rest.length - 1] : null,
24104
- rows: rest
24483
+ row: delList.length ? delList[delList.length - 1] : null,
24484
+ rows: delList
24105
24485
  };
24106
24486
  });
24107
24487
  },
@@ -24109,9 +24489,9 @@ function insertTreeRow(_vm, newRecords, isAppend) {
24109
24489
  * 删除复选框选中的数据
24110
24490
  */
24111
24491
  _removeCheckboxRow: function _removeCheckboxRow() {
24112
- var _this3 = this;
24492
+ var _this2 = this;
24113
24493
  return this.remove(this.getCheckboxRecords()).then(function (params) {
24114
- _this3.clearCheckboxRow();
24494
+ _this2.clearCheckboxRow();
24115
24495
  return params;
24116
24496
  });
24117
24497
  },
@@ -24119,10 +24499,10 @@ function insertTreeRow(_vm, newRecords, isAppend) {
24119
24499
  * 删除单选框选中的数据
24120
24500
  */
24121
24501
  _removeRadioRow: function _removeRadioRow() {
24122
- var _this4 = this;
24502
+ var _this3 = this;
24123
24503
  var radioRecord = this.getRadioRecord();
24124
24504
  return this.remove(radioRecord || []).then(function (params) {
24125
- _this4.clearRadioRow();
24505
+ _this3.clearRadioRow();
24126
24506
  return params;
24127
24507
  });
24128
24508
  },
@@ -24130,10 +24510,10 @@ function insertTreeRow(_vm, newRecords, isAppend) {
24130
24510
  * 删除当前行选中的数据
24131
24511
  */
24132
24512
  _removeCurrentRow: function _removeCurrentRow() {
24133
- var _this5 = this;
24513
+ var _this4 = this;
24134
24514
  var currentRecord = this.getCurrentRecord();
24135
24515
  return this.remove(currentRecord || []).then(function (params) {
24136
- _this5.clearCurrentRow();
24516
+ _this4.clearCurrentRow();
24137
24517
  return params;
24138
24518
  });
24139
24519
  },
@@ -24151,12 +24531,12 @@ function insertTreeRow(_vm, newRecords, isAppend) {
24151
24531
  * 获取新增的临时数据
24152
24532
  */
24153
24533
  _getInsertRecords: function _getInsertRecords() {
24154
- var _this6 = this;
24534
+ var _this5 = this;
24155
24535
  var fullAllDataRowIdData = this.fullAllDataRowIdData;
24156
24536
  var insertList = this.editStore.insertList;
24157
24537
  var insertRecords = [];
24158
24538
  insertList.forEach(function (row) {
24159
- var rowid = getRowid(_this6, row);
24539
+ var rowid = getRowid(_this5, row);
24160
24540
  if (fullAllDataRowIdData[rowid]) {
24161
24541
  insertRecords.push(row);
24162
24542
  }
@@ -24203,7 +24583,7 @@ function insertTreeRow(_vm, newRecords, isAppend) {
24203
24583
  * 处理激活编辑
24204
24584
  */
24205
24585
  handleActived: function handleActived(params, evnt) {
24206
- var _this7 = this;
24586
+ var _this6 = this;
24207
24587
  var editStore = this.editStore,
24208
24588
  editOpts = this.editOpts,
24209
24589
  tableColumn = this.tableColumn,
@@ -24239,13 +24619,13 @@ function insertTreeRow(_vm, newRecords, isAppend) {
24239
24619
  actived.column = column;
24240
24620
  if (mode === 'row') {
24241
24621
  tableColumn.forEach(function (column) {
24242
- return _this7._getColumnModel(row, column);
24622
+ return _this6._getColumnModel(row, column);
24243
24623
  });
24244
24624
  } else {
24245
24625
  this._getColumnModel(row, column);
24246
24626
  }
24247
24627
  this.$nextTick(function () {
24248
- _this7.handleFocus(params, evnt);
24628
+ _this6.handleFocus(params, evnt);
24249
24629
  });
24250
24630
  }
24251
24631
  this.emitEvent(type, {
@@ -24274,7 +24654,7 @@ function insertTreeRow(_vm, newRecords, isAppend) {
24274
24654
  actived.args = params;
24275
24655
  actived.column = column;
24276
24656
  setTimeout(function () {
24277
- _this7.handleFocus(params, evnt);
24657
+ _this6.handleFocus(params, evnt);
24278
24658
  });
24279
24659
  }
24280
24660
  this.focus();
@@ -24299,7 +24679,7 @@ function insertTreeRow(_vm, newRecords, isAppend) {
24299
24679
  }
24300
24680
  },
24301
24681
  _syncActivedCell: function _syncActivedCell() {
24302
- var _this8 = this;
24682
+ var _this7 = this;
24303
24683
  var tableColumn = this.tableColumn,
24304
24684
  editStore = this.editStore,
24305
24685
  editOpts = this.editOpts;
@@ -24309,7 +24689,7 @@ function insertTreeRow(_vm, newRecords, isAppend) {
24309
24689
  if (row || column) {
24310
24690
  if (editOpts.mode === 'row') {
24311
24691
  tableColumn.forEach(function (column) {
24312
- return _this8._setColumnModel(row, column);
24692
+ return _this7._setColumnModel(row, column);
24313
24693
  });
24314
24694
  } else {
24315
24695
  this._setColumnModel(row, column);
@@ -24452,22 +24832,22 @@ function insertTreeRow(_vm, newRecords, isAppend) {
24452
24832
  * 激活单元格编辑
24453
24833
  */
24454
24834
  _setEditCell: function _setEditCell(row, fieldOrColumn) {
24455
- var _this9 = this;
24835
+ var _this8 = this;
24456
24836
  var editConfig = this.editConfig;
24457
24837
  var column = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isString(fieldOrColumn) ? this.getColumnByField(fieldOrColumn) : fieldOrColumn;
24458
24838
  if (row && column && isEnableConf(editConfig) && isEnableConf(column.editRender)) {
24459
24839
  return this.scrollToRow(row, true).then(function () {
24460
- var cell = _this9.getCell(row, column);
24840
+ var cell = _this8.getCell(row, column);
24461
24841
  if (cell) {
24462
- _this9.handleActived({
24842
+ _this8.handleActived({
24463
24843
  row: row,
24464
- rowIndex: _this9.getRowIndex(row),
24844
+ rowIndex: _this8.getRowIndex(row),
24465
24845
  column: column,
24466
- columnIndex: _this9.getColumnIndex(column),
24846
+ columnIndex: _this8.getColumnIndex(column),
24467
24847
  cell: cell,
24468
- $table: _this9
24848
+ $table: _this8
24469
24849
  });
24470
- _this9.lastCallTime = Date.now();
24850
+ _this8.lastCallTime = Date.now();
24471
24851
  }
24472
24852
  });
24473
24853
  }
@@ -24501,7 +24881,7 @@ function insertTreeRow(_vm, newRecords, isAppend) {
24501
24881
  * 处理选中源
24502
24882
  */
24503
24883
  handleSelected: function handleSelected(params, evnt) {
24504
- var _this10 = this;
24884
+ var _this9 = this;
24505
24885
  var mouseConfig = this.mouseConfig,
24506
24886
  mouseOpts = this.mouseOpts,
24507
24887
  editOpts = this.editOpts,
@@ -24514,23 +24894,23 @@ function insertTreeRow(_vm, newRecords, isAppend) {
24514
24894
  var selectMethod = function selectMethod() {
24515
24895
  if (isMouseSelected && (selected.row !== row || selected.column !== column)) {
24516
24896
  if (actived.row !== row || (editOpts.mode === 'cell' ? actived.column !== column : false)) {
24517
- _this10.clearActived(evnt);
24518
- _this10.clearSelected(evnt);
24519
- _this10.clearCellAreas(evnt);
24520
- _this10.clearCopyCellArea(evnt);
24897
+ _this9.clearActived(evnt);
24898
+ _this9.clearSelected(evnt);
24899
+ _this9.clearCellAreas(evnt);
24900
+ _this9.clearCopyCellArea(evnt);
24521
24901
  selected.args = params;
24522
24902
  selected.row = row;
24523
24903
  selected.column = column;
24524
24904
  if (isMouseSelected) {
24525
- _this10.addColSdCls();
24905
+ _this9.addColSdCls();
24526
24906
  }
24527
- _this10.focus();
24907
+ _this9.focus();
24528
24908
  if (evnt) {
24529
- _this10.emitEvent('cell-selected', params, evnt);
24909
+ _this9.emitEvent('cell-selected', params, evnt);
24530
24910
  }
24531
24911
  }
24532
24912
  }
24533
- return _this10.$nextTick();
24913
+ return _this9.$nextTick();
24534
24914
  };
24535
24915
  return selectMethod();
24536
24916
  },
@@ -26428,6 +26808,9 @@ function renderExtraSuffixIcon(h, _vm) {
26428
26808
  }
26429
26809
  },
26430
26810
  multiple: Boolean,
26811
+ // text
26812
+ showWordCount: Boolean,
26813
+ countMethod: Function,
26431
26814
  // number、integer、float
26432
26815
  min: {
26433
26816
  type: [String, Number],
@@ -26570,6 +26953,12 @@ function renderExtraSuffixIcon(h, _vm) {
26570
26953
  isSearch: function isSearch() {
26571
26954
  return this.type === 'search';
26572
26955
  },
26956
+ inputCount: function inputCount() {
26957
+ return external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().getSize(this.inputValue);
26958
+ },
26959
+ isCountError: function isCountError() {
26960
+ return this.maxlength && this.inputCount > external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toNumber(this.maxlength);
26961
+ },
26573
26962
  stepValue: function stepValue() {
26574
26963
  var type = this.type,
26575
26964
  step = this.step;
@@ -27034,6 +27423,8 @@ function renderExtraSuffixIcon(h, _vm) {
27034
27423
  inpReadonly = this.inpReadonly,
27035
27424
  className = this.className,
27036
27425
  controls = this.controls,
27426
+ showWordCount = this.showWordCount,
27427
+ countMethod = this.countMethod,
27037
27428
  inputValue = this.inputValue,
27038
27429
  isDatePickerType = this.isDatePickerType,
27039
27430
  visiblePanel = this.visiblePanel,
@@ -27089,8 +27480,20 @@ function renderExtraSuffixIcon(h, _vm) {
27089
27480
  if (isDatePickerType) {
27090
27481
  childs.push(renderPanel(h, this));
27091
27482
  }
27483
+ var isWordCount = false;
27484
+ // 统计字数
27485
+ if (showWordCount && ['text', 'search'].includes(type)) {
27486
+ isWordCount = true;
27487
+ childs.push(h('span', {
27488
+ "class": ['vxe-input--count', {
27489
+ 'is--error': this.isCountError
27490
+ }]
27491
+ }, countMethod ? "".concat(countMethod({
27492
+ value: inputValue
27493
+ })) : "".concat(this.inputCount).concat(inpMaxlength ? "/".concat(inpMaxlength) : '')));
27494
+ }
27092
27495
  return h('div', {
27093
- "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)]
27496
+ "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)]
27094
27497
  }, childs);
27095
27498
  },
27096
27499
  methods: {
@@ -30312,7 +30715,8 @@ function getExportBlobByContent(content, options) {
30312
30715
  }
30313
30716
  function hasTreeChildren($xetable, row) {
30314
30717
  var treeOpts = $xetable.treeOpts;
30315
- return row[treeOpts.children] && row[treeOpts.children].length > 0;
30718
+ var childrenField = treeOpts.children || treeOpts.childrenField;
30719
+ return row[childrenField] && row[childrenField].length > 0;
30316
30720
  }
30317
30721
  function getSeq($xetable, row, $rowIndex, column, $columnIndex) {
30318
30722
  var seqOpts = $xetable.seqOpts;
@@ -30352,6 +30756,7 @@ function getLabelData($xetable, opts, columns, datas) {
30352
30756
  radioOpts = $xetable.radioOpts,
30353
30757
  checkboxOpts = $xetable.checkboxOpts,
30354
30758
  columnOpts = $xetable.columnOpts;
30759
+ var childrenField = treeOpts.children || treeOpts.childrenField;
30355
30760
  if (!htmlCellElem) {
30356
30761
  htmlCellElem = document.createElement('div');
30357
30762
  }
@@ -30433,7 +30838,9 @@ function getLabelData($xetable, opts, columns, datas) {
30433
30838
  expandMaps.set(row, 1);
30434
30839
  rest.push(Object.assign(_item, row));
30435
30840
  }
30436
- }, treeOpts);
30841
+ }, {
30842
+ children: childrenField
30843
+ });
30437
30844
  return rest;
30438
30845
  }
30439
30846
  return datas.map(function (row, $rowIndex) {
@@ -31208,7 +31615,7 @@ function handleFileImport($xetable, file, opts) {
31208
31615
  filename = _UtilTools$parseFile.filename;
31209
31616
 
31210
31617
  // 检查类型,如果为自定义导出,则不需要校验类型
31211
- if (!importMethod && !external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().includes(v_x_e_table.config.importTypes, type)) {
31618
+ if (!importMethod && !external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().includes(v_x_e_table.globalConfs.importTypes, type)) {
31212
31619
  if (opts.message !== false) {
31213
31620
  // 检测弹窗模块
31214
31621
  if (false) {}
@@ -31440,7 +31847,7 @@ function handleExportAndPrint($xetable, options, isPrint) {
31440
31847
  message: true,
31441
31848
  isHeader: true
31442
31849
  }, options);
31443
- var types = defOpts.types || v_x_e_table.config.exportTypes;
31850
+ var types = defOpts.types || v_x_e_table.globalConfs.exportTypes;
31444
31851
  var modes = defOpts.modes;
31445
31852
  var checkMethod = customOpts.checkMethod;
31446
31853
  var exportColumns = collectColumn.slice(0);
@@ -31700,7 +32107,7 @@ var mixin_convertToRows = function convertToRows(originColumns) {
31700
32107
  }
31701
32108
 
31702
32109
  // 检查类型,如果为自定义导出,则不需要校验类型
31703
- if (!opts.exportMethod && !external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().includes(v_x_e_table.config.exportTypes, type)) {
32110
+ if (!opts.exportMethod && !external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().includes(v_x_e_table.globalConfs.exportTypes, type)) {
31704
32111
  if (false) {}
31705
32112
  var params = {
31706
32113
  status: false
@@ -31780,7 +32187,7 @@ var mixin_convertToRows = function convertToRows(originColumns) {
31780
32187
  _importData: function _importData(options) {
31781
32188
  var _this2 = this;
31782
32189
  var opts = Object.assign({
31783
- types: v_x_e_table.config.importTypes
32190
+ types: v_x_e_table.globalConfs.importTypes
31784
32191
  // beforeImportMethod: null,
31785
32192
  // afterImportMethod: null
31786
32193
  }, this.importOpts, options);
@@ -31841,7 +32248,7 @@ var mixin_convertToRows = function convertToRows(originColumns) {
31841
32248
  var defOpts = Object.assign({
31842
32249
  mode: 'insert',
31843
32250
  message: true,
31844
- types: v_x_e_table.config.importTypes
32251
+ types: v_x_e_table.globalConfs.importTypes
31845
32252
  }, options, this.importOpts);
31846
32253
  var types = defOpts.types;
31847
32254
  var isTree = !!this.getTreeStatus();
@@ -32069,13 +32476,16 @@ function getCheckboxRangeRows(_vm, params, targetTrElem, moveRange) {
32069
32476
  treeConfig = this.treeConfig,
32070
32477
  treeOpts = this.treeOpts,
32071
32478
  afterFullData = this.afterFullData;
32479
+ var childrenField = treeOpts.children || treeOpts.childrenField;
32072
32480
  var targetRow;
32073
32481
  evnt.preventDefault();
32074
32482
  if (currentRow) {
32075
32483
  if (treeConfig) {
32076
32484
  var _XEUtils$findTree = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().findTree(afterFullData, function (item) {
32077
32485
  return item === currentRow;
32078
- }, treeOpts),
32486
+ }, {
32487
+ children: childrenField
32488
+ }),
32079
32489
  index = _XEUtils$findTree.index,
32080
32490
  items = _XEUtils$findTree.items;
32081
32491
  if (isUpArrow && index > 0) {
@@ -32455,12 +32865,14 @@ function validErrorRuleValue(rule, val) {
32455
32865
  * 完整校验,和 validate 的区别就是会给有效数据中的每一行进行校验
32456
32866
  */
32457
32867
  _fullValidate: function _fullValidate(rows, cb) {
32868
+ if (false) {}
32458
32869
  return this.beginValidate(rows, cb, true);
32459
32870
  },
32460
32871
  /**
32461
32872
  * 快速校验,如果存在记录不通过的记录,则返回不再继续校验(异步校验除外)
32462
32873
  */
32463
32874
  _validate: function _validate(rows, cb) {
32875
+ if (false) {}
32464
32876
  return this.beginValidate(rows, cb);
32465
32877
  },
32466
32878
  /**
@@ -32500,6 +32912,7 @@ function validErrorRuleValue(rule, val) {
32500
32912
  afterFullData = this.afterFullData,
32501
32913
  treeConfig = this.treeConfig,
32502
32914
  treeOpts = this.treeOpts;
32915
+ var childrenField = treeOpts.children || treeOpts.childrenField;
32503
32916
  var vaildDatas;
32504
32917
  if (rows === true) {
32505
32918
  vaildDatas = afterFullData;
@@ -32552,7 +32965,9 @@ function validErrorRuleValue(rule, val) {
32552
32965
  }
32553
32966
  };
32554
32967
  if (treeConfig) {
32555
- external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree(vaildDatas, handleVaild, treeOpts);
32968
+ external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree(vaildDatas, handleVaild, {
32969
+ children: childrenField
32970
+ });
32556
32971
  } else {
32557
32972
  vaildDatas.forEach(handleVaild);
32558
32973
  }
@@ -34963,7 +35378,8 @@ function renderCustoms(h, _vm) {
34963
35378
  created: function created() {
34964
35379
  var _this = this;
34965
35380
  var refresh = this.refresh,
34966
- refreshOpts = this.refreshOpts;
35381
+ refreshOpts = this.refreshOpts,
35382
+ customOpts = this.customOpts;
34967
35383
  this.$nextTick(function () {
34968
35384
  var $xetable = _this.fintTable();
34969
35385
  var queryMethod = refreshOpts.queryMethod || refreshOpts.query;
@@ -37593,7 +38009,8 @@ var VxeFormConfigItem = {
37593
38009
  allTitleWidth = $xeform.titleWidth,
37594
38010
  allTitleColon = $xeform.titleColon,
37595
38011
  allTitleAsterisk = $xeform.titleAsterisk,
37596
- allTitleOverflow = $xeform.titleOverflow;
38012
+ allTitleOverflow = $xeform.titleOverflow,
38013
+ allVertical = $xeform.vertical;
37597
38014
  var slots = item.slots,
37598
38015
  title = item.title,
37599
38016
  folding = item.folding,
@@ -37605,6 +38022,7 @@ var VxeFormConfigItem = {
37605
38022
  errRule = item.errRule,
37606
38023
  className = item.className,
37607
38024
  titleOverflow = item.titleOverflow,
38025
+ vertical = item.vertical,
37608
38026
  children = item.children,
37609
38027
  showTitle = item.showTitle,
37610
38028
  contentClassName = item.contentClassName,
@@ -37625,6 +38043,7 @@ var VxeFormConfigItem = {
37625
38043
  var titleColon = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eqNull(item.titleColon) ? allTitleColon : item.titleColon;
37626
38044
  var titleAsterisk = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eqNull(item.titleAsterisk) ? allTitleAsterisk : item.titleAsterisk;
37627
38045
  var itemOverflow = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isUndefined(titleOverflow) || external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isNull(titleOverflow) ? allTitleOverflow : titleOverflow;
38046
+ var itemVertical = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isUndefined(vertical) || external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isNull(vertical) ? allVertical : vertical;
37628
38047
  var ovEllipsis = itemOverflow === 'ellipsis';
37629
38048
  var ovTitle = itemOverflow === 'title';
37630
38049
  var ovTooltip = itemOverflow === true || itemOverflow === 'tooltip';
@@ -37684,6 +38103,7 @@ var VxeFormConfigItem = {
37684
38103
  "class": ['vxe-form--item', item.id, span ? "vxe-col--".concat(span, " is--span") : null, className ? external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isFunction(className) ? className(params) : className : '', itemClassName ? external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isFunction(itemClassName) ? itemClassName(params) : itemClassName : '', {
37685
38104
  'is--title': title,
37686
38105
  'is--colon': titleColon,
38106
+ 'is--vertical': itemVertical,
37687
38107
  'is--asterisk': titleAsterisk,
37688
38108
  'is--required': isRequired,
37689
38109
  'is--hidden': folding && collapseAll,
@@ -37875,6 +38295,10 @@ function getResetValue(value, resetValue) {
37875
38295
  type: [Boolean, String],
37876
38296
  "default": null
37877
38297
  },
38298
+ vertical: {
38299
+ type: Boolean,
38300
+ "default": null
38301
+ },
37878
38302
  className: [String, Function],
37879
38303
  readonly: Boolean,
37880
38304
  items: Array,
@@ -38506,6 +38930,10 @@ var form_item_props = {
38506
38930
  type: Boolean,
38507
38931
  "default": true
38508
38932
  },
38933
+ vertical: {
38934
+ type: Boolean,
38935
+ "default": null
38936
+ },
38509
38937
  className: [String, Function],
38510
38938
  contentClassName: [String, Function],
38511
38939
  contentStyle: [Object, Function],
@@ -38545,7 +38973,8 @@ var renderItem = function renderItem(h, _vm, item, slots) {
38545
38973
  allTitleWidth = _vm.titleWidth,
38546
38974
  allTitleColon = _vm.titleColon,
38547
38975
  allTitleAsterisk = _vm.titleAsterisk,
38548
- allTitleOverflow = _vm.titleOverflow;
38976
+ allTitleOverflow = _vm.titleOverflow,
38977
+ allVertical = _vm.vertical;
38549
38978
  var title = item.title,
38550
38979
  folding = item.folding,
38551
38980
  visible = item.visible,
@@ -38556,6 +38985,7 @@ var renderItem = function renderItem(h, _vm, item, slots) {
38556
38985
  errRule = item.errRule,
38557
38986
  className = item.className,
38558
38987
  titleOverflow = item.titleOverflow,
38988
+ vertical = item.vertical,
38559
38989
  showTitle = item.showTitle,
38560
38990
  contentClassName = item.contentClassName,
38561
38991
  contentStyle = item.contentStyle,
@@ -38575,6 +39005,7 @@ var renderItem = function renderItem(h, _vm, item, slots) {
38575
39005
  var titleColon = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eqNull(item.titleColon) ? allTitleColon : item.titleColon;
38576
39006
  var titleAsterisk = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eqNull(item.titleAsterisk) ? allTitleAsterisk : item.titleAsterisk;
38577
39007
  var itemOverflow = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isUndefined(titleOverflow) || external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isNull(titleOverflow) ? allTitleOverflow : titleOverflow;
39008
+ var itemVertical = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isUndefined(vertical) || external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isNull(vertical) ? allVertical : vertical;
38578
39009
  var ovEllipsis = itemOverflow === 'ellipsis';
38579
39010
  var ovTitle = itemOverflow === 'title';
38580
39011
  var ovTooltip = itemOverflow === true || itemOverflow === 'tooltip';
@@ -38619,6 +39050,7 @@ var renderItem = function renderItem(h, _vm, item, slots) {
38619
39050
  "class": ['vxe-form--item', item.id, span ? "vxe-col--".concat(span, " is--span") : '', className ? external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isFunction(className) ? className(params) : className : '', itemClassName ? external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isFunction(itemClassName) ? itemClassName(params) : itemClassName : '', {
38620
39051
  'is--title': title,
38621
39052
  'is--colon': titleColon,
39053
+ 'is--vertical': itemVertical,
38622
39054
  'is--asterisk': titleAsterisk,
38623
39055
  'is--required': isRequired,
38624
39056
  'is--hidden': folding && collapseAll,