vxe-table 4.0.30 → 4.1.1

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 (127) hide show
  1. package/README.md +1 -0
  2. package/README.zh-TW.md +1 -0
  3. package/es/button/style.css +2 -2
  4. package/es/checkbox/style.css +1 -1
  5. package/es/edit/src/hook.js +2 -2
  6. package/es/export/src/hook.js +24 -0
  7. package/es/export/src/util.js +20 -8
  8. package/es/export/style.css +1 -1
  9. package/es/filter/src/hook.js +2 -2
  10. package/es/filter/style.css +2 -2
  11. package/es/footer/src/footer.js +4 -4
  12. package/es/form/src/form.js +13 -6
  13. package/es/form/src/render.js +4 -4
  14. package/es/grid/src/grid.js +48 -1
  15. package/es/header/src/header.js +7 -5
  16. package/es/header/style.css +3 -10
  17. package/es/input/style.css +4 -4
  18. package/es/menu/style.css +1 -1
  19. package/es/modal/style.css +1 -1
  20. package/es/pager/style.css +2 -2
  21. package/es/radio/style.css +1 -1
  22. package/es/select/src/select.js +5 -5
  23. package/es/select/style.css +1 -1
  24. package/es/style.css +1 -1
  25. package/es/style.min.css +1 -1
  26. package/es/table/src/body.js +18 -14
  27. package/es/table/src/emits.js +1 -0
  28. package/es/table/src/props.js +4 -1
  29. package/es/table/src/table.js +219 -89
  30. package/es/table/style.css +15 -12
  31. package/es/toolbar/style.css +1 -1
  32. package/es/v-x-e-table/src/conf.js +2 -1
  33. package/es/v-x-e-table/src/renderer.js +4 -4
  34. package/es/validator/src/hook.js +12 -5
  35. package/helper/vetur/attributes.json +16 -204
  36. package/helper/vetur/tags.json +3 -65
  37. package/lib/button/style/style.css +2 -2
  38. package/lib/button/style/style.min.css +1 -1
  39. package/lib/checkbox/style/style.css +1 -1
  40. package/lib/checkbox/style/style.min.css +1 -1
  41. package/lib/edit/src/hook.js +2 -2
  42. package/lib/edit/src/hook.min.js +1 -1
  43. package/lib/export/src/hook.js +28 -0
  44. package/lib/export/src/hook.min.js +1 -1
  45. package/lib/export/src/util.js +21 -7
  46. package/lib/export/src/util.min.js +1 -1
  47. package/lib/export/style/style.css +1 -1
  48. package/lib/export/style/style.min.css +1 -1
  49. package/lib/filter/src/hook.js +8 -2
  50. package/lib/filter/src/hook.min.js +1 -1
  51. package/lib/filter/style/style.css +2 -2
  52. package/lib/filter/style/style.min.css +1 -1
  53. package/lib/footer/src/footer.js +4 -4
  54. package/lib/footer/src/footer.min.js +1 -1
  55. package/lib/form/src/form.js +23 -6
  56. package/lib/form/src/form.min.js +1 -1
  57. package/lib/form/src/render.js +4 -4
  58. package/lib/form/src/render.min.js +1 -1
  59. package/lib/grid/src/grid.js +56 -1
  60. package/lib/grid/src/grid.min.js +1 -1
  61. package/lib/header/src/header.js +7 -5
  62. package/lib/header/src/header.min.js +1 -1
  63. package/lib/header/style/style.css +3 -10
  64. package/lib/header/style/style.min.css +1 -1
  65. package/lib/index.umd.js +561 -186
  66. package/lib/index.umd.min.js +1 -1
  67. package/lib/input/style/style.css +4 -4
  68. package/lib/input/style/style.min.css +1 -1
  69. package/lib/menu/style/style.css +1 -1
  70. package/lib/menu/style/style.min.css +1 -1
  71. package/lib/modal/style/style.css +1 -1
  72. package/lib/modal/style/style.min.css +1 -1
  73. package/lib/pager/style/style.css +2 -2
  74. package/lib/pager/style/style.min.css +1 -1
  75. package/lib/radio/style/style.css +1 -1
  76. package/lib/radio/style/style.min.css +1 -1
  77. package/lib/select/src/select.js +5 -5
  78. package/lib/select/style/style.css +1 -1
  79. package/lib/select/style/style.min.css +1 -1
  80. package/lib/style.css +1 -1
  81. package/lib/style.min.css +1 -1
  82. package/lib/table/src/body.js +18 -14
  83. package/lib/table/src/body.min.js +1 -1
  84. package/lib/table/src/emits.js +1 -1
  85. package/lib/table/src/emits.min.js +1 -1
  86. package/lib/table/src/props.js +4 -1
  87. package/lib/table/src/props.min.js +1 -1
  88. package/lib/table/src/table.js +288 -120
  89. package/lib/table/src/table.min.js +1 -1
  90. package/lib/table/style/style.css +15 -12
  91. package/lib/table/style/style.min.css +1 -1
  92. package/lib/toolbar/style/style.css +1 -1
  93. package/lib/toolbar/style/style.min.css +1 -1
  94. package/lib/v-x-e-table/src/conf.js +2 -1
  95. package/lib/v-x-e-table/src/conf.min.js +1 -1
  96. package/lib/v-x-e-table/src/renderer.js +4 -4
  97. package/lib/v-x-e-table/src/renderer.min.js +1 -1
  98. package/lib/validator/src/hook.js +12 -5
  99. package/lib/validator/src/hook.min.js +1 -1
  100. package/package.json +4 -4
  101. package/packages/edit/src/hook.ts +2 -2
  102. package/packages/export/src/hook.ts +24 -0
  103. package/packages/export/src/util.ts +17 -5
  104. package/packages/filter/src/hook.ts +2 -2
  105. package/packages/footer/src/footer.ts +4 -4
  106. package/packages/form/src/form.ts +10 -6
  107. package/packages/form/src/render.ts +4 -4
  108. package/packages/grid/src/grid.ts +48 -1
  109. package/packages/header/src/header.ts +7 -5
  110. package/packages/select/src/select.ts +5 -5
  111. package/packages/table/src/body.ts +18 -14
  112. package/packages/table/src/emits.ts +1 -0
  113. package/packages/table/src/props.ts +4 -1
  114. package/packages/table/src/table.ts +222 -88
  115. package/packages/v-x-e-table/src/conf.ts +2 -1
  116. package/packages/v-x-e-table/src/renderer.ts +4 -4
  117. package/packages/validator/src/hook.ts +9 -5
  118. package/styles/header.scss +9 -12
  119. package/styles/table.scss +9 -3
  120. package/styles/variable.scss +2 -2
  121. package/types/column.d.ts +5 -1
  122. package/types/form-item.d.ts +5 -1
  123. package/types/form.d.ts +5 -1
  124. package/types/grid.d.ts +4 -0
  125. package/types/modal.d.ts +4 -5
  126. package/types/table.d.ts +53 -11
  127. package/types/validator.d.ts +5 -1
package/lib/index.umd.js CHANGED
@@ -7976,7 +7976,6 @@ var GlobalConfig = {
7976
7976
  // resizeInterval: 500,
7977
7977
  // size: null,
7978
7978
  // zIndex: null,
7979
- // resizable: false,
7980
7979
  // autoResize: false,
7981
7980
  // stripe: false,
7982
7981
  // border: false,
@@ -8022,6 +8021,8 @@ var GlobalConfig = {
8022
8021
  showIcon: true
8023
8022
  },
8024
8023
  treeConfig: {
8024
+ rowtKey: 'id',
8025
+ parentKey: 'parentId',
8025
8026
  children: 'children',
8026
8027
  hasChild: 'hasChild',
8027
8028
  indent: 20,
@@ -8475,6 +8476,9 @@ var es_regexp_exec = __webpack_require__("ac1f");
8475
8476
  // EXTERNAL MODULE: ./node_modules/core-js/modules/es.string.replace.js
8476
8477
  var es_string_replace = __webpack_require__("5319");
8477
8478
 
8479
+ // EXTERNAL MODULE: ./node_modules/core-js/modules/es.object.assign.js
8480
+ var es_object_assign = __webpack_require__("cca6");
8481
+
8478
8482
  // EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.concat.js
8479
8483
  var es_array_concat = __webpack_require__("99af");
8480
8484
 
@@ -8499,6 +8503,9 @@ var es_array_slice = __webpack_require__("fb6a");
8499
8503
  // EXTERNAL MODULE: ./node_modules/core-js/modules/es.object.to-string.js
8500
8504
  var es_object_to_string = __webpack_require__("d3b7");
8501
8505
 
8506
+ // EXTERNAL MODULE: ./node_modules/core-js/modules/es.promise.js
8507
+ var es_promise = __webpack_require__("e6cf");
8508
+
8502
8509
  // EXTERNAL MODULE: ./node_modules/core-js/modules/es.string.fixed.js
8503
8510
  var es_string_fixed = __webpack_require__("c7cd");
8504
8511
 
@@ -8513,6 +8520,7 @@ var es_string_fixed = __webpack_require__("c7cd");
8513
8520
 
8514
8521
 
8515
8522
 
8523
+
8516
8524
  var columnInfo_ColumnInfo = /*#__PURE__*/function () {
8517
8525
  /* eslint-disable @typescript-eslint/no-use-before-define */
8518
8526
  function ColumnInfo($xetable, _vm) {
@@ -8889,6 +8897,7 @@ function dom_triggerEvent(targetElem, type) {
8889
8897
 
8890
8898
 
8891
8899
 
8900
+
8892
8901
  function restoreScrollLocation($xetable, scrollLeft, scrollTop) {
8893
8902
  var internalData = $xetable.internalData;
8894
8903
  return $xetable.clearScroll().then(function () {
@@ -9270,6 +9279,7 @@ function getOnName(type) {
9270
9279
 
9271
9280
 
9272
9281
 
9282
+
9273
9283
  var componentDefaultModelProp = 'modelValue';
9274
9284
  var defaultCompProps = {
9275
9285
  transfer: true
@@ -9878,7 +9888,7 @@ var renderMap = {
9878
9888
  renderEdit: nativeEditRender,
9879
9889
  renderDefault: nativeEditRender,
9880
9890
  renderFilter: nativeFilterRender,
9881
- filterMethod: handleFilterMethod,
9891
+ defaultFilterMethod: handleFilterMethod,
9882
9892
  renderItemContent: nativeItemRender
9883
9893
  },
9884
9894
  textarea: {
@@ -9901,7 +9911,7 @@ var renderMap = {
9901
9911
  }, getNativeAttrs(renderOpts)), getNativeFilterOns(renderOpts, params, option)), renderOpts.optionGroups ? renderNativeOptgroups(renderOpts, params, renderNativeOptions) : renderNativeOptions(renderOpts.options, renderOpts, params));
9902
9912
  });
9903
9913
  },
9904
- filterMethod: handleFilterMethod,
9914
+ defaultFilterMethod: handleFilterMethod,
9905
9915
  renderItemContent: function renderItemContent(renderOpts, params) {
9906
9916
  return [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["h"])('select', _objectSpread2(_objectSpread2({
9907
9917
  class: 'vxe-default-select'
@@ -9939,7 +9949,7 @@ var renderMap = {
9939
9949
  },
9940
9950
  renderDefault: defaultEditRender,
9941
9951
  renderFilter: defaultFilterRender,
9942
- filterMethod: handleFilterMethod,
9952
+ defaultFilterMethod: handleFilterMethod,
9943
9953
  renderItemContent: defaultItemRender
9944
9954
  },
9945
9955
  $textarea: {
@@ -9979,7 +9989,7 @@ var renderMap = {
9979
9989
  })), getFilterOns(renderOpts, params, option)));
9980
9990
  });
9981
9991
  },
9982
- filterMethod: handleFilterMethod,
9992
+ defaultFilterMethod: handleFilterMethod,
9983
9993
  renderItemContent: function renderItemContent(renderOpts, params) {
9984
9994
  var data = params.data,
9985
9995
  property = params.property;
@@ -10059,6 +10069,7 @@ var renderer = {
10059
10069
 
10060
10070
 
10061
10071
 
10072
+
10062
10073
  /**
10063
10074
  * 创建数据仓库
10064
10075
  */
@@ -10116,6 +10127,7 @@ var store_Store = /*#__PURE__*/function () {
10116
10127
  /* harmony default export */ var store = (store_Store);
10117
10128
  // CONCATENATED MODULE: ./packages/v-x-e-table/src/commands.ts
10118
10129
 
10130
+
10119
10131
  var commands = new store();
10120
10132
 
10121
10133
  if (true) {
@@ -10125,6 +10137,7 @@ if (true) {
10125
10137
  }
10126
10138
  // CONCATENATED MODULE: ./packages/v-x-e-table/src/menus.ts
10127
10139
 
10140
+
10128
10141
  var menus = new store();
10129
10142
 
10130
10143
  if (true) {
@@ -10134,6 +10147,7 @@ if (true) {
10134
10147
  }
10135
10148
  // CONCATENATED MODULE: ./packages/v-x-e-table/src/formats.ts
10136
10149
 
10150
+
10137
10151
  var formats = new store();
10138
10152
 
10139
10153
  if (true) {
@@ -10283,6 +10297,7 @@ var Icon = {
10283
10297
 
10284
10298
 
10285
10299
 
10300
+
10286
10301
  /* harmony default export */ var panel = (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["defineComponent"])({
10287
10302
  name: 'VxeTableFilter',
10288
10303
  props: {
@@ -10505,6 +10520,7 @@ var Icon = {
10505
10520
 
10506
10521
 
10507
10522
 
10523
+
10508
10524
  var tableFilterMethodKeys = ['setFilter', 'clearFilter', 'getCheckedFilters'];
10509
10525
  var tableFilterHook = {
10510
10526
  setupTable: function setupTable($xetable) {
@@ -10610,7 +10626,7 @@ var tableFilterHook = {
10610
10626
  var maxHeight = null;
10611
10627
 
10612
10628
  if (filterHeight >= bodyElem.clientHeight) {
10613
- maxHeight = bodyElem.clientHeight - (filterFootElem ? filterFootElem.offsetHeight : 0) - (filterHeadElem ? filterHeadElem.offsetHeight : 0);
10629
+ maxHeight = Math.max(40, bodyElem.clientHeight - (filterFootElem ? filterFootElem.offsetHeight : 0) - (filterHeadElem ? filterHeadElem.offsetHeight : 0));
10614
10630
  }
10615
10631
 
10616
10632
  if (column.fixed === 'left') {
@@ -10643,6 +10659,13 @@ var tableFilterHook = {
10643
10659
  filterStore.maxHeight = maxHeight;
10644
10660
  });
10645
10661
  }
10662
+
10663
+ $xetable.dispatchEvent('filter-visible', {
10664
+ column: column,
10665
+ property: column.property,
10666
+ filterList: $xetable.getCheckedFilters(),
10667
+ visible: filterStore.visible
10668
+ }, evnt);
10646
10669
  },
10647
10670
  handleClearFilter: function handleClearFilter(column) {
10648
10671
  if (column) {
@@ -10692,7 +10715,6 @@ var tableFilterHook = {
10692
10715
  datas.push(item.data);
10693
10716
  }
10694
10717
  });
10695
- filterStore.visible = false;
10696
10718
  var filterList = $xetable.getCheckedFilters(); // 如果是服务端筛选,则跳过本地筛选处理
10697
10719
 
10698
10720
  if (!filterOpts.remote) {
@@ -11083,6 +11105,7 @@ if (browse.isDoc) {
11083
11105
 
11084
11106
 
11085
11107
 
11108
+
11086
11109
  var tableMenuMethodKeys = ['closeMenu'];
11087
11110
  var tableMenuHook = {
11088
11111
  setupTable: function setupTable($xetable) {
@@ -11507,6 +11530,9 @@ var es_symbol_description = __webpack_require__("e01a");
11507
11530
  // EXTERNAL MODULE: ./node_modules/core-js/modules/es.symbol.iterator.js
11508
11531
  var es_symbol_iterator = __webpack_require__("d28b");
11509
11532
 
11533
+ // EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.iterator.js
11534
+ var es_array_iterator = __webpack_require__("e260");
11535
+
11510
11536
  // EXTERNAL MODULE: ./node_modules/core-js/modules/es.string.iterator.js
11511
11537
  var es_string_iterator = __webpack_require__("3ca3");
11512
11538
 
@@ -11524,6 +11550,7 @@ var es_array_from = __webpack_require__("a630");
11524
11550
 
11525
11551
 
11526
11552
 
11553
+
11527
11554
  function _iterableToArray(iter) {
11528
11555
  if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
11529
11556
  }
@@ -11571,6 +11598,7 @@ function _toConsumableArray(arr) {
11571
11598
 
11572
11599
 
11573
11600
 
11601
+
11574
11602
  var tableEditMethodKeys = ['insert', 'insertAt', 'remove', 'removeCheckboxRow', 'removeRadioRow', 'removeCurrentRow', 'getRecordset', 'getInsertRecords', 'getRemoveRecords', 'getUpdateRecords', 'getActiveRecord', 'getSelectedCell', 'clearActived', 'clearSelected', 'isActiveByRow', 'setActiveRow', 'setActiveCell', 'setSelectCell'];
11575
11603
  var editHook = {
11576
11604
  setupTable: function setupTable($xetable) {
@@ -11735,7 +11763,7 @@ var editHook = {
11735
11763
 
11736
11764
  reactData.scrollYLoad = !treeConfig && sYOpts.gt > -1 && sYOpts.gt < tableFullData.length;
11737
11765
  $xetable.updateFooter();
11738
- $xetable.updateCache();
11766
+ $xetable.cacheRowMap();
11739
11767
  $xetable.handleTableData();
11740
11768
  $xetable.updateAfterDataIndex();
11741
11769
  $xetable.checkSelectionStatus();
@@ -11849,7 +11877,7 @@ var editHook = {
11849
11877
  });
11850
11878
  reactData.scrollYLoad = !treeConfig && sYOpts.gt > -1 && sYOpts.gt < tableFullData.length;
11851
11879
  $xetable.updateFooter();
11852
- $xetable.updateCache();
11880
+ $xetable.cacheRowMap();
11853
11881
  $xetable.handleTableData();
11854
11882
  $xetable.updateAfterDataIndex();
11855
11883
  $xetable.checkSelectionStatus();
@@ -12346,6 +12374,7 @@ function _arrayWithHoles(arr) {
12346
12374
 
12347
12375
 
12348
12376
 
12377
+
12349
12378
  function _iterableToArrayLimit(arr, i) {
12350
12379
  var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
12351
12380
 
@@ -12416,6 +12445,7 @@ function useSize(props) {
12416
12445
 
12417
12446
 
12418
12447
 
12448
+
12419
12449
  /* harmony default export */ var src_button = (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["defineComponent"])({
12420
12450
  name: 'VxeButton',
12421
12451
  props: {
@@ -12892,6 +12922,8 @@ function useSize(props) {
12892
12922
 
12893
12923
 
12894
12924
 
12925
+
12926
+
12895
12927
 
12896
12928
  var allActivedModals = [];
12897
12929
  var msgQueue = [];
@@ -14108,6 +14140,7 @@ var es_string_pad_start = __webpack_require__("4d90");
14108
14140
 
14109
14141
 
14110
14142
 
14143
+
14111
14144
  var yearSize = 20;
14112
14145
  var monthSize = 20;
14113
14146
  var quarterSize = 8;
@@ -16558,6 +16591,7 @@ var es_string_includes = __webpack_require__("2532");
16558
16591
 
16559
16592
 
16560
16593
 
16594
+
16561
16595
  /* harmony default export */ var src_checkbox = (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["defineComponent"])({
16562
16596
  name: 'VxeCheckbox',
16563
16597
  props: {
@@ -16683,6 +16717,7 @@ var es_string_includes = __webpack_require__("2532");
16683
16717
 
16684
16718
 
16685
16719
 
16720
+
16686
16721
  function isOptionVisible(option) {
16687
16722
  return option.visible !== false;
16688
16723
  }
@@ -16897,7 +16932,7 @@ function getOptUniqueId() {
16897
16932
  return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["nextTick"])();
16898
16933
  };
16899
16934
 
16900
- var updateCache = function updateCache() {
16935
+ var cacheItemMap = function cacheItemMap() {
16901
16936
  var fullOptionList = reactData.fullOptionList,
16902
16937
  fullGroupList = reactData.fullGroupList;
16903
16938
  var groupOptionsField = computeGroupOptionsField.value;
@@ -17508,21 +17543,21 @@ function getOptUniqueId() {
17508
17543
  reactData.fullOptionList = value || [];
17509
17544
  }
17510
17545
 
17511
- updateCache();
17546
+ cacheItemMap();
17512
17547
  });
17513
17548
  Object(external_commonjs_vue_commonjs2_vue_root_Vue_["watch"])(function () {
17514
17549
  return props.options;
17515
17550
  }, function (value) {
17516
17551
  reactData.fullGroupList = [];
17517
17552
  reactData.fullOptionList = value || [];
17518
- updateCache();
17553
+ cacheItemMap();
17519
17554
  });
17520
17555
  Object(external_commonjs_vue_commonjs2_vue_root_Vue_["watch"])(function () {
17521
17556
  return props.optionGroups;
17522
17557
  }, function (value) {
17523
17558
  reactData.fullOptionList = [];
17524
17559
  reactData.fullGroupList = value || [];
17525
- updateCache();
17560
+ cacheItemMap();
17526
17561
  });
17527
17562
  Object(external_commonjs_vue_commonjs2_vue_root_Vue_["onMounted"])(function () {
17528
17563
  Object(external_commonjs_vue_commonjs2_vue_root_Vue_["nextTick"])(function () {
@@ -17535,7 +17570,7 @@ function getOptUniqueId() {
17535
17570
  reactData.fullOptionList = options;
17536
17571
  }
17537
17572
 
17538
- updateCache();
17573
+ cacheItemMap();
17539
17574
  });
17540
17575
  GlobalEvent.on($xeselect, 'mousewheel', handleGlobalMousewheelEvent);
17541
17576
  GlobalEvent.on($xeselect, 'mousedown', handleGlobalMousedownEvent);
@@ -17622,6 +17657,7 @@ function getOptUniqueId() {
17622
17657
 
17623
17658
 
17624
17659
 
17660
+
17625
17661
  /* harmony default export */ var export_panel = (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["defineComponent"])({
17626
17662
  name: 'VxeExportPanel',
17627
17663
  props: {
@@ -17992,6 +18028,7 @@ function getOptUniqueId() {
17992
18028
 
17993
18029
 
17994
18030
 
18031
+
17995
18032
  /* harmony default export */ var src_group = (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["defineComponent"])({
17996
18033
  name: 'VxeRadioGroup',
17997
18034
  props: {
@@ -18055,6 +18092,7 @@ function getOptUniqueId() {
18055
18092
 
18056
18093
 
18057
18094
 
18095
+
18058
18096
  /* harmony default export */ var src_radio = (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["defineComponent"])({
18059
18097
  name: 'VxeRadio',
18060
18098
  props: {
@@ -18171,6 +18209,7 @@ function getOptUniqueId() {
18171
18209
 
18172
18210
 
18173
18211
 
18212
+
18174
18213
  /* harmony default export */ var import_panel = (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["defineComponent"])({
18175
18214
  name: 'VxeImportPanel',
18176
18215
  props: {
@@ -18436,6 +18475,13 @@ var util_readLocalFile = function readLocalFile(options) {
18436
18475
  });
18437
18476
  } else {
18438
18477
  if (opts.message !== false) {
18478
+ // 检测弹窗模块
18479
+ if (true) {
18480
+ if (!VXETable.modal) {
18481
+ errLog('vxe.error.reqModule', ['Modal']);
18482
+ }
18483
+ }
18484
+
18439
18485
  VXETable.modal.message({
18440
18486
  content: conf.i18n('vxe.error.notType', [errType]),
18441
18487
  status: 'error'
@@ -18534,13 +18580,20 @@ var util_saveLocalFile = function saveLocalFile(options) {
18534
18580
  if (navigator.msSaveBlob) {
18535
18581
  navigator.msSaveBlob(blob, name);
18536
18582
  } else {
18583
+ var url = URL.createObjectURL(blob);
18537
18584
  var linkElem = document.createElement('a');
18538
18585
  linkElem.target = '_blank';
18539
18586
  linkElem.download = name;
18540
- linkElem.href = URL.createObjectURL(blob);
18587
+ linkElem.href = url;
18541
18588
  document.body.appendChild(linkElem);
18542
18589
  linkElem.click();
18543
- document.body.removeChild(linkElem);
18590
+ requestAnimationFrame(function () {
18591
+ if (linkElem.parentNode) {
18592
+ linkElem.parentNode.removeChild(linkElem);
18593
+ }
18594
+
18595
+ URL.revokeObjectURL(url);
18596
+ });
18544
18597
  }
18545
18598
 
18546
18599
  return Promise.resolve();
@@ -19489,6 +19542,13 @@ var tableExportHook = {
19489
19542
  content: content
19490
19543
  }).then(function () {
19491
19544
  if (opts.message !== false) {
19545
+ // 检测弹窗模块
19546
+ if (true) {
19547
+ if (!VXETable.modal) {
19548
+ errLog('vxe.error.reqModule', ['Modal']);
19549
+ }
19550
+ }
19551
+
19492
19552
  VXETable.modal.message({
19493
19553
  content: conf.i18n('vxe.table.expSuccess'),
19494
19554
  status: 'success'
@@ -19603,6 +19663,13 @@ var tableExportHook = {
19603
19663
  }
19604
19664
 
19605
19665
  if (opts.message !== false) {
19666
+ // 检测弹窗模块
19667
+ if (true) {
19668
+ if (!VXETable.modal) {
19669
+ errLog('vxe.error.reqModule', ['Modal']);
19670
+ }
19671
+ }
19672
+
19606
19673
  VXETable.modal.message({
19607
19674
  content: conf.i18n('vxe.table.impSuccess', [rows.length]),
19608
19675
  status: 'success'
@@ -19618,6 +19685,13 @@ var tableExportHook = {
19618
19685
  });
19619
19686
  });
19620
19687
  } else if (opts.message !== false) {
19688
+ // 检测弹窗模块
19689
+ if (true) {
19690
+ if (!VXETable.modal) {
19691
+ errLog('vxe.error.reqModule', ['Modal']);
19692
+ }
19693
+ }
19694
+
19621
19695
  VXETable.modal.message({
19622
19696
  content: conf.i18n('vxe.error.impFields'),
19623
19697
  status: 'error'
@@ -19642,6 +19716,13 @@ var tableExportHook = {
19642
19716
 
19643
19717
  if (!importMethod && !external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default.a.includes(VXETable.config.importTypes, type)) {
19644
19718
  if (opts.message !== false) {
19719
+ // 检测弹窗模块
19720
+ if (true) {
19721
+ if (!VXETable.modal) {
19722
+ errLog('vxe.error.reqModule', ['Modal']);
19723
+ }
19724
+ }
19725
+
19645
19726
  VXETable.modal.message({
19646
19727
  content: conf.i18n('vxe.error.notType', [type]),
19647
19728
  status: 'error'
@@ -20260,6 +20341,7 @@ var tableExportHook = {
20260
20341
 
20261
20342
 
20262
20343
 
20344
+
20263
20345
  var export_print = function print(options) {
20264
20346
  var opts = Object.assign({}, options, {
20265
20347
  type: 'html'
@@ -20298,6 +20380,7 @@ var Export = {
20298
20380
 
20299
20381
 
20300
20382
 
20383
+
20301
20384
  function getTargetOffset(target, container) {
20302
20385
  var offsetTop = 0;
20303
20386
  var offsetLeft = 0;
@@ -20831,9 +20914,14 @@ var hook_Rule = /*#__PURE__*/function () {
20831
20914
 
20832
20915
 
20833
20916
  _createClass(Rule, [{
20917
+ key: "content",
20918
+ get: function get() {
20919
+ return getFuncText(this.$options.content || this.$options.message);
20920
+ }
20921
+ }, {
20834
20922
  key: "message",
20835
20923
  get: function get() {
20836
- return getFuncText(this.$options.message);
20924
+ return this.content;
20837
20925
  }
20838
20926
  }]);
20839
20927
 
@@ -21142,7 +21230,7 @@ var validatorHook = {
21142
21230
  errorRules.push(new hook_Rule({
21143
21231
  type: 'custom',
21144
21232
  trigger: trigger,
21145
- message: customValid.message,
21233
+ content: customValid.message,
21146
21234
  rule: new hook_Rule(rule)
21147
21235
  }));
21148
21236
  } else if (customValid.catch) {
@@ -21152,7 +21240,7 @@ var validatorHook = {
21152
21240
  errorRules.push(new hook_Rule({
21153
21241
  type: 'custom',
21154
21242
  trigger: trigger,
21155
- message: e && e.message ? e.message : rule.message,
21243
+ content: e && e.message ? e.message : rule.content || rule.message,
21156
21244
  rule: new hook_Rule(rule)
21157
21245
  }));
21158
21246
  }));
@@ -21256,7 +21344,7 @@ var validatorHook = {
21256
21344
  column = params.column,
21257
21345
  cell = params.cell;
21258
21346
  var validTip = refValidTooltip.value;
21259
- var content = rule.message;
21347
+ var content = rule.content;
21260
21348
  return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["nextTick"])().then(function () {
21261
21349
  Object.assign(validStore, {
21262
21350
  row: row,
@@ -21402,6 +21490,9 @@ var renderType = 'header';
21402
21490
  refRightContainer = _$xetable$getRefMaps.refRightContainer,
21403
21491
  refCellResizeBar = _$xetable$getRefMaps.refCellResizeBar;
21404
21492
 
21493
+ var _$xetable$getComputeM = $xetable.getComputeMaps(),
21494
+ computeColumnOpts = _$xetable$getComputeM.computeColumnOpts;
21495
+
21405
21496
  var headerColumn = Object(external_commonjs_vue_commonjs2_vue_root_Vue_["ref"])([]);
21406
21497
  var refElem = Object(external_commonjs_vue_commonjs2_vue_root_Vue_["ref"])();
21407
21498
  var refHeaderTable = Object(external_commonjs_vue_commonjs2_vue_root_Vue_["ref"])();
@@ -21547,14 +21638,15 @@ var renderType = 'header';
21547
21638
  mouseConfig = tableProps.mouseConfig;
21548
21639
  var isGroup = tableReactData.isGroup,
21549
21640
  currentColumn = tableReactData.currentColumn,
21550
- scrollXLoad = tableReactData.scrollXLoad,
21641
+ scrollYLoad = tableReactData.scrollYLoad,
21551
21642
  overflowX = tableReactData.overflowX,
21552
21643
  scrollbarWidth = tableReactData.scrollbarWidth;
21644
+ var columnOpts = computeColumnOpts.value;
21553
21645
  var headerGroups = headerColumn.value; // 如果是使用优化模式
21554
21646
 
21555
21647
  if (!isGroup) {
21556
21648
  if (fixedType) {
21557
- if (scrollXLoad || allColumnHeaderOverflow) {
21649
+ if (scrollYLoad || allColumnHeaderOverflow) {
21558
21650
  tableColumn = fixedColumn;
21559
21651
  }
21560
21652
  }
@@ -21651,9 +21743,9 @@ var renderType = 'header';
21651
21743
  onDblclick: function onDblclick(evnt) {
21652
21744
  return $xetable.triggerHeaderCellDblclickEvent(evnt, params);
21653
21745
  }
21654
- }; // 虚拟滚动不支持动态高度
21746
+ }; // 纵向虚拟滚动不支持动态行高
21655
21747
 
21656
- if (scrollXLoad && !hasEllipsis) {
21748
+ if (scrollYLoad && !hasEllipsis) {
21657
21749
  showEllipsis = hasEllipsis = true;
21658
21750
  } // 按下事件处理
21659
21751
 
@@ -21682,7 +21774,7 @@ var renderType = 'header';
21682
21774
  /**
21683
21775
  * 列宽拖动
21684
21776
  */
21685
- !fixedHiddenColumn && !isColGroup && (external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default.a.isBoolean(column.resizable) ? column.resizable : resizable) ? Object(external_commonjs_vue_commonjs2_vue_root_Vue_["h"])('div', {
21777
+ !fixedHiddenColumn && !isColGroup && (external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default.a.isBoolean(column.resizable) ? column.resizable : columnOpts.resizable || resizable) ? Object(external_commonjs_vue_commonjs2_vue_root_Vue_["h"])('div', {
21686
21778
  class: ['vxe-resizable', {
21687
21779
  'is--line': !border || border === 'none'
21688
21780
  }],
@@ -21710,6 +21802,7 @@ var renderType = 'header';
21710
21802
 
21711
21803
 
21712
21804
 
21805
+
21713
21806
  var Header = Object.assign(header, {
21714
21807
  install: function install(app) {
21715
21808
  dynamicApp.component(header.name, header);
@@ -21874,7 +21967,7 @@ function mergeFooterMethod(mergeFooterList, _rowIndex, _columnIndex) {
21874
21967
  columnKey = tableProps.columnKey,
21875
21968
  allColumnFooterOverflow = tableProps.showFooterOverflow;
21876
21969
  var visibleColumn = tableInternalData.visibleColumn;
21877
- var scrollXLoad = tableReactData.scrollXLoad,
21970
+ var scrollYLoad = tableReactData.scrollYLoad,
21878
21971
  overflowX = tableReactData.overflowX,
21879
21972
  scrollbarWidth = tableReactData.scrollbarWidth,
21880
21973
  currentColumn = tableReactData.currentColumn,
@@ -21882,7 +21975,7 @@ function mergeFooterMethod(mergeFooterList, _rowIndex, _columnIndex) {
21882
21975
  var tooltipOpts = computeTooltipOpts.value; // 如果是使用优化模式
21883
21976
 
21884
21977
  if (fixedType) {
21885
- if (scrollXLoad || allColumnFooterOverflow) {
21978
+ if (scrollYLoad || allColumnFooterOverflow) {
21886
21979
  if (!mergeFooterList.length || !footerSpanMethod) {
21887
21980
  tableColumn = fixedColumn;
21888
21981
  } else {
@@ -21983,9 +22076,9 @@ function mergeFooterMethod(mergeFooterList, _rowIndex, _columnIndex) {
21983
22076
  fixed: fixedType,
21984
22077
  type: footer_renderType,
21985
22078
  data: footerTableData
21986
- }; // 虚拟滚动不支持动态高度
22079
+ }; // 纵向虚拟滚动不支持动态行高
21987
22080
 
21988
- if (scrollXLoad && !hasEllipsis) {
22081
+ if (scrollYLoad && !hasEllipsis) {
21989
22082
  showEllipsis = hasEllipsis = true;
21990
22083
  }
21991
22084
 
@@ -22086,6 +22179,7 @@ function mergeFooterMethod(mergeFooterList, _rowIndex, _columnIndex) {
22086
22179
 
22087
22180
 
22088
22181
 
22182
+
22089
22183
  var Footer = Object.assign(footer, {
22090
22184
  install: function install(app) {
22091
22185
  dynamicApp.component(footer.name, footer);
@@ -22105,6 +22199,7 @@ var Footer = Object.assign(footer, {
22105
22199
 
22106
22200
 
22107
22201
 
22202
+
22108
22203
  function renderHelpIcon(params) {
22109
22204
  var $table = params.$table,
22110
22205
  column = params.column;
@@ -23146,6 +23241,7 @@ var columnProps = {
23146
23241
 
23147
23242
 
23148
23243
 
23244
+
23149
23245
  var Column = Object.assign(src_column, {
23150
23246
  install: function install(app) {
23151
23247
  dynamicApp.component(src_column.name, src_column);
@@ -23204,6 +23300,7 @@ var Column = Object.assign(src_column, {
23204
23300
 
23205
23301
 
23206
23302
 
23303
+
23207
23304
  var Colgroup = Object.assign(table_src_group, {
23208
23305
  install: function install(app) {
23209
23306
  dynamicApp.component(table_src_group.name, table_src_group);
@@ -23421,8 +23518,11 @@ var es_array_sort = __webpack_require__("4e82");
23421
23518
  },
23422
23519
  // 是否自动根据状态属性去更新响应式表格宽高
23423
23520
  syncResize: [Boolean, String, Number],
23424
- // 设置列的默认参数,仅对部分支持的属性有效
23521
+ // 列配置信息
23425
23522
  columnConfig: Object,
23523
+ // 行配置信息
23524
+ rowConfig: Object,
23525
+ // 列调整配置项
23426
23526
  resizableConfig: Object,
23427
23527
  // 序号配置项
23428
23528
  seqConfig: Object,
@@ -23489,7 +23589,7 @@ var es_array_sort = __webpack_require__("4e82");
23489
23589
  params: Object
23490
23590
  });
23491
23591
  // CONCATENATED MODULE: ./packages/table/src/emits.ts
23492
- /* harmony default export */ var emits = (['update:data', 'keydown', 'paste', 'copy', 'cut', 'current-change', 'radio-change', 'checkbox-change', 'checkbox-all', 'checkbox-range-start', 'checkbox-range-change', 'checkbox-range-end', 'cell-click', 'cell-dblclick', 'cell-menu', 'cell-mouseenter', 'cell-mouseleave', 'header-cell-click', 'header-cell-dblclick', 'header-cell-menu', 'footer-cell-click', 'footer-cell-dblclick', 'footer-cell-menu', 'clear-merge', 'sort-change', 'clear-sort', 'filter-change', 'clear-filter', 'resizable-change', 'toggle-row-expand', 'toggle-tree-expand', 'menu-click', 'edit-closed', 'edit-actived', 'edit-disabled', 'valid-error', 'scroll', 'custom', 'change-fnr', 'open-fnr', 'fnr-change', 'fnr-find', 'fnr-find-all', 'fnr-replace', 'fnr-replace-all', 'cell-area-copy', 'cell-area-cut', 'cell-area-paste', 'cell-area-merge', 'clear-cell-area-merge', 'header-cell-area-selection', 'cell-area-selection-start', 'cell-area-selection-end', 'cell-area-extension-start', 'cell-area-extension-end']);
23592
+ /* harmony default export */ var emits = (['update:data', 'keydown', 'paste', 'copy', 'cut', 'current-change', 'radio-change', 'checkbox-change', 'checkbox-all', 'checkbox-range-start', 'checkbox-range-change', 'checkbox-range-end', 'cell-click', 'cell-dblclick', 'cell-menu', 'cell-mouseenter', 'cell-mouseleave', 'header-cell-click', 'header-cell-dblclick', 'header-cell-menu', 'footer-cell-click', 'footer-cell-dblclick', 'footer-cell-menu', 'clear-merge', 'sort-change', 'clear-sort', 'filter-change', 'filter-visible', 'clear-filter', 'resizable-change', 'toggle-row-expand', 'toggle-tree-expand', 'menu-click', 'edit-closed', 'edit-actived', 'edit-disabled', 'valid-error', 'scroll', 'custom', 'change-fnr', 'open-fnr', 'fnr-change', 'fnr-find', 'fnr-find-all', 'fnr-replace', 'fnr-replace-all', 'cell-area-copy', 'cell-area-cut', 'cell-area-paste', 'cell-area-merge', 'clear-cell-area-merge', 'header-cell-area-selection', 'cell-area-selection-start', 'cell-area-selection-end', 'cell-area-extension-start', 'cell-area-extension-end']);
23493
23593
  // CONCATENATED MODULE: ./packages/grid/src/grid.ts
23494
23594
 
23495
23595
 
@@ -23509,10 +23609,12 @@ var es_array_sort = __webpack_require__("4e82");
23509
23609
 
23510
23610
 
23511
23611
 
23612
+
23613
+
23512
23614
 
23513
23615
 
23514
23616
  var tableComponentPropKeys = Object.keys(src_props);
23515
- var tableComponentMethodKeys = ['clearAll', 'syncData', 'updateData', 'loadData', 'reloadData', 'reloadRow', 'loadColumn', 'reloadColumn', 'getRowNode', 'getColumnNode', 'getRowIndex', 'getVTRowIndex', 'getVMRowIndex', 'getColumnIndex', 'getVTColumnIndex', 'getVMColumnIndex', 'createData', 'createRow', 'revertData', 'clearData', 'isInsertByRow', 'isUpdateByRow', 'getColumns', 'getColumnById', 'getColumnByField', 'getTableColumn', 'getData', 'getCheckboxRecords', 'getRowById', 'getRowid', 'getTableData', 'hideColumn', 'showColumn', 'resetColumn', 'refreshColumn', 'refreshScroll', 'recalculate', 'closeTooltip', 'isAllCheckboxChecked', 'isAllCheckboxIndeterminate', 'getCheckboxIndeterminateRecords', 'setCheckboxRow', 'isCheckedByCheckboxRow', 'isIndeterminateByCheckboxRow', 'toggleCheckboxRow', 'setAllCheckboxRow', 'getRadioReserveRecord', 'clearRadioReserve', 'getCheckboxReserveRecords', 'clearCheckboxReserve', 'toggleAllCheckboxRow', 'clearCheckboxRow', 'setCurrentRow', 'isCheckedByRadioRow', 'setRadioRow', 'clearCurrentRow', 'clearRadioRow', 'getCurrentRecord', 'getRadioRecord', 'getCurrentColumn', 'setCurrentColumn', 'clearCurrentColumn', 'sort', 'clearSort', 'isSort', 'getSortColumns', 'closeFilter', 'isFilter', 'isRowExpandLoaded', 'clearRowExpandLoaded', 'reloadExpandContent', 'toggleRowExpand', 'setAllRowExpand', 'setRowExpand', 'isExpandByRow', 'clearRowExpand', 'clearRowExpandReserve', 'getRowExpandRecords', 'getTreeExpandRecords', 'isTreeExpandLoaded', 'clearTreeExpandLoaded', 'reloadTreeChilds', 'toggleTreeExpand', 'setAllTreeExpand', 'setTreeExpand', 'isTreeExpandByRow', 'clearTreeExpand', 'clearTreeExpandReserve', 'getScroll', 'scrollTo', 'scrollToRow', 'scrollToColumn', 'clearScroll', 'updateFooter', 'updateStatus', 'setMergeCells', 'removeMergeCells', 'getMergeCells', 'clearMergeCells', 'setMergeFooterItems', 'removeMergeFooterItems', 'getMergeFooterItems', 'clearMergeFooterItems', 'focus', 'blur', 'connect'];
23617
+ var tableComponentMethodKeys = ['clearAll', 'syncData', 'updateData', 'loadData', 'reloadData', 'reloadRow', 'loadColumn', 'reloadColumn', 'getRowNode', 'getColumnNode', 'getRowIndex', 'getVTRowIndex', 'getVMRowIndex', 'getColumnIndex', 'getVTColumnIndex', 'getVMColumnIndex', 'createData', 'createRow', 'revertData', 'clearData', 'isInsertByRow', 'isUpdateByRow', 'getColumns', 'getColumnById', 'getColumnByField', 'getTableColumn', 'getData', 'getCheckboxRecords', 'getRowById', 'getRowid', 'getTableData', 'hideColumn', 'showColumn', 'resetColumn', 'refreshColumn', 'refreshScroll', 'recalculate', 'closeTooltip', 'isAllCheckboxChecked', 'isAllCheckboxIndeterminate', 'getCheckboxIndeterminateRecords', 'setCheckboxRow', 'isCheckedByCheckboxRow', 'isIndeterminateByCheckboxRow', 'toggleCheckboxRow', 'setAllCheckboxRow', 'getRadioReserveRecord', 'clearRadioReserve', 'getCheckboxReserveRecords', 'clearCheckboxReserve', 'toggleAllCheckboxRow', 'clearCheckboxRow', 'setCurrentRow', 'isCheckedByRadioRow', 'setRadioRow', 'clearCurrentRow', 'clearRadioRow', 'getCurrentRecord', 'getRadioRecord', 'getCurrentColumn', 'setCurrentColumn', 'clearCurrentColumn', 'sort', 'clearSort', 'isSort', 'getSortColumns', 'closeFilter', 'isFilter', 'isRowExpandLoaded', 'clearRowExpandLoaded', 'lazyExpandContent', 'reloadExpandContent', 'toggleRowExpand', 'setAllRowExpand', 'setRowExpand', 'isExpandByRow', 'clearRowExpand', 'clearRowExpandReserve', 'getRowExpandRecords', 'getTreeExpandRecords', 'isTreeExpandLoaded', 'clearTreeExpandLoaded', 'lazyTreeChildren', 'reloadTreeChilds', 'toggleTreeExpand', 'setAllTreeExpand', 'setTreeExpand', 'isTreeExpandByRow', 'clearTreeExpand', 'clearTreeExpandReserve', 'getScroll', 'scrollTo', 'scrollToRow', 'scrollToColumn', 'clearScroll', 'updateFooter', 'updateStatus', 'setMergeCells', 'removeMergeCells', 'getMergeCells', 'clearMergeCells', 'setMergeFooterItems', 'removeMergeFooterItems', 'getMergeFooterItems', 'clearMergeFooterItems', 'focus', 'blur', 'connect'];
23516
23618
  var gridComponentEmits = [].concat(_toConsumableArray(emits), ['page-change', 'form-submit', 'form-submit-invalid', 'form-reset', 'form-collapse', 'form-toggle-collapse', 'toolbar-button-click', 'toolbar-tool-click', 'zoom']);
23517
23619
  /* harmony default export */ var grid = (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["defineComponent"])({
23518
23620
  name: 'VxeGrid',
@@ -23768,6 +23870,13 @@ var gridComponentEmits = [].concat(_toConsumableArray(emits), ['page-change', 'f
23768
23870
  gridExtendTableMethods.clearCheckboxRow();
23769
23871
  } else {
23770
23872
  if (isMsg) {
23873
+ // 检测弹窗模块
23874
+ if (true) {
23875
+ if (!VXETable.modal) {
23876
+ errLog('vxe.error.reqModule', ['Modal']);
23877
+ }
23878
+ }
23879
+
23771
23880
  VXETable.modal.message({
23772
23881
  id: code,
23773
23882
  content: conf.i18n('vxe.grid.selectOneRecord'),
@@ -23806,6 +23915,13 @@ var gridComponentEmits = [].concat(_toConsumableArray(emits), ['page-change', 'f
23806
23915
  }
23807
23916
  });
23808
23917
  } else {
23918
+ // 检测弹窗模块
23919
+ if (true) {
23920
+ if (!VXETable.modal) {
23921
+ errLog('vxe.error.reqModule', ['Modal']);
23922
+ }
23923
+ }
23924
+
23809
23925
  VXETable.modal.message({
23810
23926
  id: "msg_".concat(code),
23811
23927
  content: conf.i18n('vxe.grid.selectOneRecord'),
@@ -24471,6 +24587,13 @@ var gridComponentEmits = [].concat(_toConsumableArray(emits), ['page-change', 'f
24471
24587
  });
24472
24588
 
24473
24589
  if (isMsg) {
24590
+ // 检测弹窗模块
24591
+ if (true) {
24592
+ if (!VXETable.modal) {
24593
+ errLog('vxe.error.reqModule', ['Modal']);
24594
+ }
24595
+ }
24596
+
24474
24597
  VXETable.modal.message({
24475
24598
  content: getRespMsg(rest, 'vxe.grid.delSuccess'),
24476
24599
  status: 'success'
@@ -24486,6 +24609,12 @@ var gridComponentEmits = [].concat(_toConsumableArray(emits), ['page-change', 'f
24486
24609
  reactData.tableLoading = false;
24487
24610
 
24488
24611
  if (isMsg) {
24612
+ if (true) {
24613
+ if (!VXETable.modal.message) {
24614
+ errLog('vxe.error.reqModule', ['Modal']);
24615
+ }
24616
+ }
24617
+
24489
24618
  VXETable.modal.message({
24490
24619
  id: code,
24491
24620
  content: getRespMsg(rest, 'vxe.grid.operError'),
@@ -24496,6 +24625,13 @@ var gridComponentEmits = [].concat(_toConsumableArray(emits), ['page-change', 'f
24496
24625
  });
24497
24626
  } else {
24498
24627
  if (isMsg) {
24628
+ // 检测弹窗模块
24629
+ if (true) {
24630
+ if (!VXETable.modal) {
24631
+ errLog('vxe.error.reqModule', ['Modal']);
24632
+ }
24633
+ }
24634
+
24499
24635
  VXETable.modal.message({
24500
24636
  id: code,
24501
24637
  content: conf.i18n('vxe.grid.selectOneRecord'),
@@ -24557,6 +24693,13 @@ var gridComponentEmits = [].concat(_toConsumableArray(emits), ['page-change', 'f
24557
24693
  reactData.pendingRecords = [];
24558
24694
 
24559
24695
  if (isMsg) {
24696
+ // 检测弹窗模块
24697
+ if (true) {
24698
+ if (!VXETable.modal) {
24699
+ errLog('vxe.error.reqModule', ['Modal']);
24700
+ }
24701
+ }
24702
+
24560
24703
  VXETable.modal.message({
24561
24704
  content: getRespMsg(rest, 'vxe.grid.saveSuccess'),
24562
24705
  status: 'success'
@@ -24572,6 +24715,13 @@ var gridComponentEmits = [].concat(_toConsumableArray(emits), ['page-change', 'f
24572
24715
  reactData.tableLoading = false;
24573
24716
 
24574
24717
  if (isMsg) {
24718
+ // 检测弹窗模块
24719
+ if (true) {
24720
+ if (!VXETable.modal) {
24721
+ errLog('vxe.error.reqModule', ['Modal']);
24722
+ }
24723
+ }
24724
+
24575
24725
  VXETable.modal.message({
24576
24726
  id: code,
24577
24727
  content: getRespMsg(rest, 'vxe.grid.operError'),
@@ -24581,6 +24731,13 @@ var gridComponentEmits = [].concat(_toConsumableArray(emits), ['page-change', 'f
24581
24731
  });
24582
24732
  } else {
24583
24733
  if (isMsg) {
24734
+ // 检测弹窗模块
24735
+ if (true) {
24736
+ if (!VXETable.modal) {
24737
+ errLog('vxe.error.reqModule', ['Modal']);
24738
+ }
24739
+ }
24740
+
24584
24741
  VXETable.modal.message({
24585
24742
  id: code,
24586
24743
  content: conf.i18n('vxe.grid.dataUnchanged'),
@@ -24847,6 +25004,7 @@ var gridComponentEmits = [].concat(_toConsumableArray(emits), ['page-change', 'f
24847
25004
 
24848
25005
 
24849
25006
 
25007
+
24850
25008
  var Grid = Object.assign(grid, {
24851
25009
  install: function install(app) {
24852
25010
  dynamicApp.component(grid.name, grid);
@@ -24869,6 +25027,8 @@ var Grid = Object.assign(grid, {
24869
25027
 
24870
25028
 
24871
25029
 
25030
+
25031
+
24872
25032
  /* harmony default export */ var toolbar = (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["defineComponent"])({
24873
25033
  name: 'VxeToolbar',
24874
25034
  props: {
@@ -25619,6 +25779,7 @@ var Grid = Object.assign(grid, {
25619
25779
 
25620
25780
 
25621
25781
 
25782
+
25622
25783
  var Toolbar = Object.assign(toolbar, {
25623
25784
  install: function install(app) {
25624
25785
  dynamicApp.component(toolbar.name, toolbar);
@@ -25637,6 +25798,7 @@ var Toolbar = Object.assign(toolbar, {
25637
25798
 
25638
25799
 
25639
25800
 
25801
+
25640
25802
  /* harmony default export */ var pager = (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["defineComponent"])({
25641
25803
  name: 'VxePager',
25642
25804
  props: {
@@ -26199,6 +26361,7 @@ var Toolbar = Object.assign(toolbar, {
26199
26361
 
26200
26362
 
26201
26363
 
26364
+
26202
26365
  var Pager = Object.assign(pager, {
26203
26366
  install: function install(app) {
26204
26367
  dynamicApp.component(pager.name, pager);
@@ -26210,6 +26373,7 @@ var Pager = Object.assign(pager, {
26210
26373
 
26211
26374
 
26212
26375
 
26376
+
26213
26377
  var Checkbox = Object.assign(src_checkbox, {
26214
26378
  install: function install(app) {
26215
26379
  dynamicApp.component(src_checkbox.name, src_checkbox);
@@ -26223,6 +26387,7 @@ var Checkbox = Object.assign(src_checkbox, {
26223
26387
 
26224
26388
 
26225
26389
 
26390
+
26226
26391
  /* harmony default export */ var checkbox_src_group = (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["defineComponent"])({
26227
26392
  name: 'VxeCheckboxGroup',
26228
26393
  props: {
@@ -26292,6 +26457,7 @@ var Checkbox = Object.assign(src_checkbox, {
26292
26457
 
26293
26458
 
26294
26459
 
26460
+
26295
26461
  var CheckboxGroup = Object.assign(checkbox_src_group, {
26296
26462
  install: function install(app) {
26297
26463
  dynamicApp.component(checkbox_src_group.name, checkbox_src_group);
@@ -26303,6 +26469,7 @@ var CheckboxGroup = Object.assign(checkbox_src_group, {
26303
26469
 
26304
26470
 
26305
26471
 
26472
+
26306
26473
  var Radio = Object.assign(src_radio, {
26307
26474
  install: function install(app) {
26308
26475
  dynamicApp.component(src_radio.name, src_radio);
@@ -26314,6 +26481,7 @@ var Radio = Object.assign(src_radio, {
26314
26481
 
26315
26482
 
26316
26483
 
26484
+
26317
26485
  var RadioGroup = Object.assign(src_group, {
26318
26486
  install: function install(app) {
26319
26487
  dynamicApp.component(src_group.name, src_group);
@@ -26330,6 +26498,7 @@ var RadioGroup = Object.assign(src_group, {
26330
26498
 
26331
26499
 
26332
26500
 
26501
+
26333
26502
  /* harmony default export */ var radio_src_button = (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["defineComponent"])({
26334
26503
  name: 'VxeRadioButton',
26335
26504
  props: {
@@ -26433,6 +26602,7 @@ var RadioGroup = Object.assign(src_group, {
26433
26602
 
26434
26603
 
26435
26604
 
26605
+
26436
26606
  var RadioButton = Object.assign(radio_src_button, {
26437
26607
  install: function install(app) {
26438
26608
  dynamicApp.component(radio_src_button.name, radio_src_button);
@@ -26444,6 +26614,7 @@ var RadioButton = Object.assign(radio_src_button, {
26444
26614
 
26445
26615
 
26446
26616
 
26617
+
26447
26618
  var Input = Object.assign(input, {
26448
26619
  install: function install(app) {
26449
26620
  dynamicApp.component(input.name, input);
@@ -26464,6 +26635,7 @@ var Input = Object.assign(input, {
26464
26635
 
26465
26636
 
26466
26637
 
26638
+
26467
26639
  var autoTxtElem;
26468
26640
  /* harmony default export */ var src_textarea = (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["defineComponent"])({
26469
26641
  name: 'VxeTextarea',
@@ -26747,6 +26919,7 @@ var autoTxtElem;
26747
26919
 
26748
26920
 
26749
26921
 
26922
+
26750
26923
  var Textarea = Object.assign(src_textarea, {
26751
26924
  install: function install(app) {
26752
26925
  dynamicApp.component(src_textarea.name, src_textarea);
@@ -26758,6 +26931,7 @@ var Textarea = Object.assign(src_textarea, {
26758
26931
 
26759
26932
 
26760
26933
 
26934
+
26761
26935
  var Button = Object.assign(src_button, {
26762
26936
  install: function install(app) {
26763
26937
  dynamicApp.component(src_button.name, src_button);
@@ -26779,6 +26953,9 @@ var Button = Object.assign(src_button, {
26779
26953
 
26780
26954
 
26781
26955
 
26956
+
26957
+
26958
+
26782
26959
  function modal_openModal(options) {
26783
26960
  // 使用动态组件渲染动态弹框
26784
26961
  checkDynamic();
@@ -26900,6 +27077,7 @@ var Modal = Object.assign(modal, {
26900
27077
 
26901
27078
 
26902
27079
 
27080
+
26903
27081
  /* harmony default export */ var tooltip = (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["defineComponent"])({
26904
27082
  name: 'VxeTooltip',
26905
27083
  props: {
@@ -27267,6 +27445,7 @@ var Modal = Object.assign(modal, {
27267
27445
 
27268
27446
 
27269
27447
 
27448
+
27270
27449
  var Tooltip = Object.assign(tooltip, {
27271
27450
  install: function install(app) {
27272
27451
  VXETable.tooltip = true;
@@ -27279,6 +27458,7 @@ var Tooltip = Object.assign(tooltip, {
27279
27458
 
27280
27459
 
27281
27460
 
27461
+
27282
27462
  var itemInfo_ItemInfo = /*#__PURE__*/function () {
27283
27463
  function ItemInfo($xeform, item) {
27284
27464
  _classCallCheck(this, ItemInfo);
@@ -27408,8 +27588,8 @@ function renderTitle($xeform, item) {
27408
27588
  var titVNs = [];
27409
27589
 
27410
27590
  if (titlePrefix) {
27411
- titVNs.push(titlePrefix.message ? Object(external_commonjs_vue_commonjs2_vue_root_Vue_["h"])(Object(external_commonjs_vue_commonjs2_vue_root_Vue_["resolveComponent"])('vxe-tooltip'), {
27412
- content: getFuncText(titlePrefix.message),
27591
+ titVNs.push(titlePrefix.content || titlePrefix.message ? Object(external_commonjs_vue_commonjs2_vue_root_Vue_["h"])(Object(external_commonjs_vue_commonjs2_vue_root_Vue_["resolveComponent"])('vxe-tooltip'), {
27592
+ content: getFuncText(titlePrefix.content || titlePrefix.message),
27413
27593
  enterable: titlePrefix.enterable,
27414
27594
  theme: titlePrefix.theme
27415
27595
  }, {
@@ -27428,8 +27608,8 @@ function renderTitle($xeform, item) {
27428
27608
  var fixVNs = [];
27429
27609
 
27430
27610
  if (titleSuffix) {
27431
- fixVNs.push(titleSuffix.message ? Object(external_commonjs_vue_commonjs2_vue_root_Vue_["h"])(Object(external_commonjs_vue_commonjs2_vue_root_Vue_["resolveComponent"])('vxe-tooltip'), {
27432
- content: getFuncText(titleSuffix.message),
27611
+ fixVNs.push(titleSuffix.content || titleSuffix.message ? Object(external_commonjs_vue_commonjs2_vue_root_Vue_["h"])(Object(external_commonjs_vue_commonjs2_vue_root_Vue_["resolveComponent"])('vxe-tooltip'), {
27612
+ content: getFuncText(titleSuffix.content || titleSuffix.message),
27433
27613
  enterable: titleSuffix.enterable,
27434
27614
  theme: titleSuffix.theme
27435
27615
  }, {
@@ -27491,9 +27671,14 @@ var form_Rule = /*#__PURE__*/function () {
27491
27671
  }
27492
27672
 
27493
27673
  _createClass(Rule, [{
27674
+ key: "content",
27675
+ get: function get() {
27676
+ return getFuncText(this.$options.content || this.$options.message);
27677
+ }
27678
+ }, {
27494
27679
  key: "message",
27495
27680
  get: function get() {
27496
- return getFuncText(this.$options.message);
27681
+ return this.content;
27497
27682
  }
27498
27683
  }]);
27499
27684
 
@@ -27553,7 +27738,12 @@ function getResetValue(value, resetValue) {
27553
27738
  return conf.form.size || conf.size;
27554
27739
  }
27555
27740
  },
27556
- span: [String, Number],
27741
+ span: {
27742
+ type: [String, Number],
27743
+ default: function _default() {
27744
+ return conf.form.span;
27745
+ }
27746
+ },
27557
27747
  align: {
27558
27748
  type: String,
27559
27749
  default: function _default() {
@@ -27566,7 +27756,12 @@ function getResetValue(value, resetValue) {
27566
27756
  return conf.form.titleAlign;
27567
27757
  }
27568
27758
  },
27569
- titleWidth: [String, Number],
27759
+ titleWidth: {
27760
+ type: [String, Number],
27761
+ default: function _default() {
27762
+ return conf.form.titleWidth;
27763
+ }
27764
+ },
27570
27765
  titleColon: {
27571
27766
  type: Boolean,
27572
27767
  default: function _default() {
@@ -27887,7 +28082,7 @@ function getResetValue(value, resetValue) {
27887
28082
  errorRules.push(new form_Rule({
27888
28083
  type: 'custom',
27889
28084
  trigger: trigger,
27890
- message: customValid.message,
28085
+ content: customValid.message,
27891
28086
  rule: new form_Rule(rule)
27892
28087
  }));
27893
28088
  } else if (customValid.catch) {
@@ -27896,7 +28091,7 @@ function getResetValue(value, resetValue) {
27896
28091
  errorRules.push(new form_Rule({
27897
28092
  type: 'custom',
27898
28093
  trigger: trigger,
27899
- message: e ? e.message : rule.message,
28094
+ content: e ? e.message : rule.content || rule.message,
27900
28095
  rule: new form_Rule(rule)
27901
28096
  }));
27902
28097
  }));
@@ -28213,7 +28408,7 @@ function getResetValue(value, resetValue) {
28213
28408
  style: errRule.maxWidth ? {
28214
28409
  width: "".concat(errRule.maxWidth, "px")
28215
28410
  } : null
28216
- }, errRule.message));
28411
+ }, errRule.content));
28217
28412
  }
28218
28413
 
28219
28414
  var ons = showTooltip ? {
@@ -28351,6 +28546,7 @@ function getResetValue(value, resetValue) {
28351
28546
 
28352
28547
 
28353
28548
 
28549
+
28354
28550
  var Form = Object.assign(src_form, {
28355
28551
  install: function install(app) {
28356
28552
  dynamicApp.component(src_form.name, src_form);
@@ -28546,6 +28742,7 @@ var formItemProps = {
28546
28742
 
28547
28743
 
28548
28744
 
28745
+
28549
28746
  var FormItem = Object.assign(form_item, {
28550
28747
  install: function install(app) {
28551
28748
  dynamicApp.component(form_item.name, form_item);
@@ -28602,6 +28799,7 @@ var FormItem = Object.assign(form_item, {
28602
28799
 
28603
28800
 
28604
28801
 
28802
+
28605
28803
  var FormGather = Object.assign(form_gather, {
28606
28804
  install: function install(app) {
28607
28805
  dynamicApp.component(form_gather.name, form_gather);
@@ -28613,6 +28811,7 @@ var FormGather = Object.assign(form_gather, {
28613
28811
 
28614
28812
 
28615
28813
 
28814
+
28616
28815
  var Select = Object.assign(src_select, {
28617
28816
  install: function install(app) {
28618
28817
  dynamicApp.component(src_select.name, src_select);
@@ -28624,6 +28823,7 @@ var Select = Object.assign(src_select, {
28624
28823
 
28625
28824
 
28626
28825
 
28826
+
28627
28827
  var optionInfo_OptionInfo = /*#__PURE__*/function () {
28628
28828
  function OptionInfo($xeselect, _vm) {
28629
28829
  _classCallCheck(this, OptionInfo);
@@ -28743,6 +28943,7 @@ function destroyOption($xeselect, option) {
28743
28943
 
28744
28944
 
28745
28945
 
28946
+
28746
28947
  var Optgroup = Object.assign(src_optgroup, {
28747
28948
  install: function install(app) {
28748
28949
  dynamicApp.component(src_optgroup.name, src_optgroup);
@@ -28794,6 +28995,7 @@ var Optgroup = Object.assign(src_optgroup, {
28794
28995
 
28795
28996
 
28796
28997
 
28998
+
28797
28999
  var Option = Object.assign(src_option, {
28798
29000
  install: function install(app) {
28799
29001
  dynamicApp.component(src_option.name, src_option);
@@ -28809,6 +29011,7 @@ var Option = Object.assign(src_option, {
28809
29011
 
28810
29012
 
28811
29013
 
29014
+
28812
29015
  /* harmony default export */ var src_switch = (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["defineComponent"])({
28813
29016
  name: 'VxeSwitch',
28814
29017
  props: {
@@ -28959,6 +29162,7 @@ var Option = Object.assign(src_option, {
28959
29162
 
28960
29163
 
28961
29164
 
29165
+
28962
29166
  var Switch = Object.assign(src_switch, {
28963
29167
  install: function install(app) {
28964
29168
  dynamicApp.component(src_switch.name, src_switch);
@@ -29095,6 +29299,8 @@ function createResizeEvent(callback) {
29095
29299
 
29096
29300
 
29097
29301
 
29302
+
29303
+
29098
29304
  /* harmony default export */ var src_list = (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["defineComponent"])({
29099
29305
  name: 'VxeList',
29100
29306
  props: {
@@ -29494,6 +29700,7 @@ function createResizeEvent(callback) {
29494
29700
 
29495
29701
 
29496
29702
 
29703
+
29497
29704
  var List = Object.assign(src_list, {
29498
29705
  install: function install(app) {
29499
29706
  dynamicApp.component(src_list.name, src_list);
@@ -29511,6 +29718,8 @@ var List = Object.assign(src_list, {
29511
29718
 
29512
29719
 
29513
29720
 
29721
+
29722
+
29514
29723
  /* harmony default export */ var pulldown = (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["defineComponent"])({
29515
29724
  name: 'VxePulldown',
29516
29725
  props: {
@@ -29832,6 +30041,7 @@ var List = Object.assign(src_list, {
29832
30041
 
29833
30042
 
29834
30043
 
30044
+
29835
30045
  var Pulldown = Object.assign(pulldown, {
29836
30046
  install: function install(app) {
29837
30047
  dynamicApp.component(pulldown.name, pulldown);
@@ -29839,15 +30049,6 @@ var Pulldown = Object.assign(pulldown, {
29839
30049
  }
29840
30050
  });
29841
30051
  /* harmony default export */ var packages_pulldown = (Pulldown);
29842
- // EXTERNAL MODULE: ./node_modules/core-js/modules/es.object.assign.js
29843
- var es_object_assign = __webpack_require__("cca6");
29844
-
29845
- // EXTERNAL MODULE: ./node_modules/core-js/modules/es.promise.js
29846
- var es_promise = __webpack_require__("e6cf");
29847
-
29848
- // EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.iterator.js
29849
- var es_array_iterator = __webpack_require__("e260");
29850
-
29851
30052
  // CONCATENATED MODULE: ./packages/table/src/body.ts
29852
30053
 
29853
30054
 
@@ -29864,6 +30065,7 @@ var es_array_iterator = __webpack_require__("e260");
29864
30065
 
29865
30066
 
29866
30067
 
30068
+
29867
30069
  var body_renderType = 'body';
29868
30070
  var lineOffsetSizes = {
29869
30071
  mini: 3,
@@ -29908,7 +30110,8 @@ var lineOffsetSizes = {
29908
30110
  computeRadioOpts = _$xetable$getComputeM.computeRadioOpts,
29909
30111
  computeTreeOpts = _$xetable$getComputeM.computeTreeOpts,
29910
30112
  computeCheckboxOpts = _$xetable$getComputeM.computeCheckboxOpts,
29911
- computeValidOpts = _$xetable$getComputeM.computeValidOpts;
30113
+ computeValidOpts = _$xetable$getComputeM.computeValidOpts,
30114
+ computeRowOpts = _$xetable$getComputeM.computeRowOpts;
29912
30115
 
29913
30116
  var refElem = Object(external_commonjs_vue_commonjs2_vue_root_Vue_["ref"])();
29914
30117
  var refBodyTable = Object(external_commonjs_vue_commonjs2_vue_root_Vue_["ref"])();
@@ -30009,7 +30212,6 @@ var lineOffsetSizes = {
30009
30212
  tooltipConfig = tableProps.tooltipConfig;
30010
30213
  var tableData = tableReactData.tableData,
30011
30214
  overflowX = tableReactData.overflowX,
30012
- scrollXLoad = tableReactData.scrollXLoad,
30013
30215
  scrollYLoad = tableReactData.scrollYLoad,
30014
30216
  currentColumn = tableReactData.currentColumn,
30015
30217
  mergeList = tableReactData.mergeList,
@@ -30021,6 +30223,7 @@ var lineOffsetSizes = {
30021
30223
  var checkboxOpts = computeCheckboxOpts.value;
30022
30224
  var editOpts = computeEditOpts.value;
30023
30225
  var tooltipOpts = computeTooltipOpts.value;
30226
+ var rowOpts = computeRowOpts.value;
30024
30227
  var sYOpts = computeSYOpts.value;
30025
30228
  var type = column.type,
30026
30229
  cellRender = column.cellRender,
@@ -30030,7 +30233,8 @@ var lineOffsetSizes = {
30030
30233
  className = column.className,
30031
30234
  treeNode = column.treeNode;
30032
30235
  var actived = editStore.actived;
30033
- var rHeight = sYOpts.rHeight;
30236
+ var scrollYRHeight = sYOpts.rHeight;
30237
+ var rowHeight = rowOpts.height;
30034
30238
  var showAllTip = tooltipOpts.showAll;
30035
30239
  var columnIndex = $xetable.getColumnIndex(column);
30036
30240
 
@@ -30073,7 +30277,7 @@ var lineOffsetSizes = {
30073
30277
  items: items
30074
30278
  }; // 虚拟滚动不支持动态高度
30075
30279
 
30076
- if ((scrollXLoad || scrollYLoad) && !hasEllipsis) {
30280
+ if (scrollYLoad && !hasEllipsis) {
30077
30281
  showEllipsis = hasEllipsis = true;
30078
30282
  } // hover 进入事件
30079
30283
 
@@ -30194,7 +30398,7 @@ var lineOffsetSizes = {
30194
30398
  'c--ellipsis': showEllipsis
30195
30399
  }],
30196
30400
  style: {
30197
- maxHeight: hasEllipsis && rHeight ? "".concat(rHeight, "px") : ''
30401
+ maxHeight: hasEllipsis && (scrollYRHeight || rowHeight) ? "".concat(scrollYRHeight || rowHeight, "px") : ''
30198
30402
  }
30199
30403
  }));
30200
30404
  } else {
@@ -30206,7 +30410,7 @@ var lineOffsetSizes = {
30206
30410
  'c--ellipsis': showEllipsis
30207
30411
  }],
30208
30412
  style: {
30209
- maxHeight: hasEllipsis && rHeight ? "".concat(rHeight, "px") : ''
30413
+ maxHeight: hasEllipsis && (scrollYRHeight || rowHeight) ? "".concat(scrollYRHeight || rowHeight, "px") : ''
30210
30414
  },
30211
30415
  title: showTitle ? $xetable.getCellLabel(row, column) : null
30212
30416
  }, column.renderCell(params))]));
@@ -30228,12 +30432,12 @@ var lineOffsetSizes = {
30228
30432
  key: columnKey ? column.id : $columnIndex
30229
30433
  }, attrs), {}, {
30230
30434
  style: Object.assign({
30231
- height: hasEllipsis && rHeight ? "".concat(rHeight, "px") : ''
30435
+ height: hasEllipsis && (scrollYRHeight || rowHeight) ? "".concat(scrollYRHeight || rowHeight, "px") : ''
30232
30436
  }, cellStyle ? external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default.a.isFunction(cellStyle) ? cellStyle(params) : cellStyle : null)
30233
30437
  }, tdOns), tdVNs);
30234
30438
  };
30235
30439
 
30236
- var renderRows = function renderRows($seq, rowLevel, fixedType, tableData, tableColumn) {
30440
+ var renderRows = function renderRows($seq, fixedType, tableData, tableColumn) {
30237
30441
  var stripe = tableProps.stripe,
30238
30442
  rowKey = tableProps.rowKey,
30239
30443
  highlightHoverRow = tableProps.highlightHoverRow,
@@ -30249,7 +30453,8 @@ var lineOffsetSizes = {
30249
30453
  rowExpandeds = tableReactData.rowExpandeds,
30250
30454
  expandColumn = tableReactData.expandColumn,
30251
30455
  selectRow = tableReactData.selectRow;
30252
- var scrollYStore = tableInternalData.scrollYStore;
30456
+ var fullAllDataRowIdData = tableInternalData.fullAllDataRowIdData,
30457
+ scrollYStore = tableInternalData.scrollYStore;
30253
30458
  var checkboxOpts = computeCheckboxOpts.value;
30254
30459
  var radioOpts = computeRadioOpts.value;
30255
30460
  var treeOpts = computeTreeOpts.value;
@@ -30291,6 +30496,8 @@ var lineOffsetSizes = {
30291
30496
  }
30292
30497
 
30293
30498
  var rowid = util_getRowid($xetable, row);
30499
+ var rest = fullAllDataRowIdData[rowid];
30500
+ var rowLevel = rest ? rest.level : 0;
30294
30501
  var params = {
30295
30502
  $table: $xetable,
30296
30503
  $seq: $seq,
@@ -30366,11 +30573,11 @@ var lineOffsetSizes = {
30366
30573
  } // 如果是树形表格
30367
30574
 
30368
30575
 
30369
- if (treeConfig && treeExpandeds.length) {
30576
+ if (treeConfig && !scrollYLoad && treeExpandeds.length) {
30370
30577
  var rowChildren = row[treeOpts.children];
30371
30578
 
30372
30579
  if (rowChildren && rowChildren.length && $xetable.findRowIndexOf(treeExpandeds, row) > -1) {
30373
- rows.push.apply(rows, _toConsumableArray(renderRows($seq ? "".concat($seq, ".").concat(seq) : "".concat(seq), rowLevel + 1, fixedType, rowChildren, tableColumn)));
30580
+ rows.push.apply(rows, _toConsumableArray(renderRows($seq ? "".concat($seq, ".").concat(seq) : "".concat(seq), fixedType, rowChildren, tableColumn)));
30374
30581
  }
30375
30582
  }
30376
30583
  });
@@ -30643,7 +30850,6 @@ var lineOffsetSizes = {
30643
30850
  mouseConfig = tableProps.mouseConfig;
30644
30851
  var tableData = tableReactData.tableData,
30645
30852
  mergeList = tableReactData.mergeList,
30646
- scrollXLoad = tableReactData.scrollXLoad,
30647
30853
  scrollYLoad = tableReactData.scrollYLoad,
30648
30854
  isAllOverflow = tableReactData.isAllOverflow;
30649
30855
  var visibleColumn = tableInternalData.visibleColumn;
@@ -30656,7 +30862,7 @@ var lineOffsetSizes = {
30656
30862
  // 如果是使用优化模式
30657
30863
 
30658
30864
  if (fixedType) {
30659
- if (scrollXLoad || scrollYLoad || (allColumnOverflow ? isAllOverflow : allColumnOverflow)) {
30865
+ if (scrollYLoad || (allColumnOverflow ? isAllOverflow : allColumnOverflow)) {
30660
30866
  if (!mergeList.length && !spanMethod && !(keyboardConfig && keyboardOpts.isMerge)) {
30661
30867
  tableColumn = fixedColumn;
30662
30868
  } else {
@@ -30729,7 +30935,7 @@ var lineOffsetSizes = {
30729
30935
  */
30730
30936
  Object(external_commonjs_vue_commonjs2_vue_root_Vue_["h"])('tbody', {
30731
30937
  ref: refBodyTBody
30732
- }, renderRows('', 0, fixedType, tableData, tableColumn))]), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["h"])('div', {
30938
+ }, renderRows('', fixedType, tableData, tableColumn))]), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["h"])('div', {
30733
30939
  class: 'vxe-table--checkbox-range'
30734
30940
  }), mouseConfig && mouseOpts.area ? Object(external_commonjs_vue_commonjs2_vue_root_Vue_["h"])('div', {
30735
30941
  class: 'vxe-table--cell-area'
@@ -31042,6 +31248,7 @@ var visibleStorageKey = 'VXE_TABLE_CUSTOM_COLUMN_VISIBLE';
31042
31248
  treeExpandedReserveRowMap: {},
31043
31249
  // 完整数据、条件处理后
31044
31250
  tableFullData: [],
31251
+ treeFullData: [],
31045
31252
  afterFullData: [],
31046
31253
  tableSynchData: [],
31047
31254
  tableSourceData: [],
@@ -31103,7 +31310,10 @@ var visibleStorageKey = 'VXE_TABLE_CUSTOM_COLUMN_VISIBLE';
31103
31310
  };
31104
31311
  });
31105
31312
  var computeColumnOpts = Object(external_commonjs_vue_commonjs2_vue_root_Vue_["computed"])(function () {
31106
- return Object.assign({}, props.columnConfig);
31313
+ return Object.assign({}, conf.table.columnConfig, props.columnConfig);
31314
+ });
31315
+ var computeRowOpts = Object(external_commonjs_vue_commonjs2_vue_root_Vue_["computed"])(function () {
31316
+ return Object.assign({}, conf.table.rowConfig, props.rowConfig);
31107
31317
  });
31108
31318
  var computeResizableOpts = Object(external_commonjs_vue_commonjs2_vue_root_Vue_["computed"])(function () {
31109
31319
  return Object.assign({}, conf.table.resizableConfig, props.resizableConfig);
@@ -31300,6 +31510,8 @@ var visibleStorageKey = 'VXE_TABLE_CUSTOM_COLUMN_VISIBLE';
31300
31510
  computeValidOpts: computeValidOpts,
31301
31511
  computeSXOpts: computeSXOpts,
31302
31512
  computeSYOpts: computeSYOpts,
31513
+ computeColumnOpts: computeColumnOpts,
31514
+ computeRowOpts: computeRowOpts,
31303
31515
  computeResizableOpts: computeResizableOpts,
31304
31516
  computeSeqOpts: computeSeqOpts,
31305
31517
  computeRadioOpts: computeRadioOpts,
@@ -32047,7 +32259,8 @@ var visibleStorageKey = 'VXE_TABLE_CUSTOM_COLUMN_VISIBLE';
32047
32259
  $index: -1,
32048
32260
  _index: _index,
32049
32261
  items: [],
32050
- parent: null
32262
+ parent: null,
32263
+ level: 0
32051
32264
  };
32052
32265
  }
32053
32266
  });
@@ -32359,7 +32572,7 @@ var visibleStorageKey = 'VXE_TABLE_CUSTOM_COLUMN_VISIBLE';
32359
32572
  var _tWidth = tableWidth; // 如果是使用优化模式
32360
32573
 
32361
32574
  if (fixedType) {
32362
- if (scrollXLoad || scrollYLoad || (allColumnOverflow ? isAllOverflow : allColumnOverflow)) {
32575
+ if (scrollYLoad || (allColumnOverflow ? isAllOverflow : allColumnOverflow)) {
32363
32576
  if (!mergeList.length && !spanMethod && !(keyboardConfig && keyboardOpts.isMerge)) {
32364
32577
  tableColumn = fixedColumn;
32365
32578
  } else {
@@ -32460,16 +32673,10 @@ var visibleStorageKey = 'VXE_TABLE_CUSTOM_COLUMN_VISIBLE';
32460
32673
  var showTitle = cellOverflow === 'title';
32461
32674
  var showTooltip = cellOverflow === true || cellOverflow === 'tooltip';
32462
32675
  var hasEllipsis = showTitle || showTooltip || showEllipsis;
32463
- var _listElem = elemStore["".concat(name, "-").concat(layout, "-list")]; // 滚动的渲染不支持动态行高
32676
+ var _listElem = elemStore["".concat(name, "-").concat(layout, "-list")]; // 纵向虚拟滚动不支持动态行高
32464
32677
 
32465
- if (layout === 'header' || layout === 'footer') {
32466
- if (scrollXLoad && !hasEllipsis) {
32467
- hasEllipsis = true;
32468
- }
32469
- } else {
32470
- if ((scrollXLoad || scrollYLoad) && !hasEllipsis) {
32471
- hasEllipsis = true;
32472
- }
32678
+ if (scrollYLoad && !hasEllipsis) {
32679
+ hasEllipsis = true;
32473
32680
  }
32474
32681
 
32475
32682
  if (_listElem) {
@@ -32794,7 +33001,7 @@ var visibleStorageKey = 'VXE_TABLE_CUSTOM_COLUMN_VISIBLE';
32794
33001
  }
32795
33002
 
32796
33003
  if (childRecords) {
32797
- tableMethods.loadChildren(row, childRecords).then(function (childRows) {
33004
+ tableMethods.loadTreeChildren(row, childRecords).then(function (childRows) {
32798
33005
  if (childRows.length && $xetable.findRowIndexOf(treeExpandeds, row) === -1) {
32799
33006
  treeExpandeds.push(row);
32800
33007
  } // 如果当前节点已选中,则展开后子节点也被选中
@@ -32957,30 +33164,67 @@ var visibleStorageKey = 'VXE_TABLE_CUSTOM_COLUMN_VISIBLE';
32957
33164
  scrollXStore = internalData.scrollXStore,
32958
33165
  lastScrollLeft = internalData.lastScrollLeft,
32959
33166
  lastScrollTop = internalData.lastScrollTop;
32960
- var sYOpts = computeSYOpts.value;
32961
- var tableFullData = datas ? datas.slice(0) : [];
32962
- var scrollYLoad = !treeConfig && !!sYOpts.enabled && sYOpts.gt > -1 && sYOpts.gt < tableFullData.length;
33167
+ var treeOpts = computeTreeOpts.value;
33168
+ var transform = treeOpts.transform;
33169
+ var treeData = [];
33170
+ var fullData = datas ? datas.slice(0) : [];
33171
+
33172
+ if (treeConfig) {
33173
+ if (transform) {
33174
+ // 树结构自动转换
33175
+ if (true) {
33176
+ if (!treeOpts.rowtKey) {
33177
+ errLog('vxe.error.reqProp', ['tree-config.rowtKey']);
33178
+ }
33179
+
33180
+ if (!treeOpts.parentKey) {
33181
+ errLog('vxe.error.reqProp', ['tree-config.parentKey']);
33182
+ }
33183
+
33184
+ if (!treeOpts.children) {
33185
+ errLog('vxe.error.reqProp', ['tree-config.children']);
33186
+ }
33187
+
33188
+ fullData.forEach(function (row) {
33189
+ if (row[treeOpts.children] && row[treeOpts.children].length) {
33190
+ warnLog('vxe.error.errConflicts', ['tree-config.transform', "row.".concat(treeOpts.children)]);
33191
+ }
33192
+ });
33193
+ }
33194
+
33195
+ treeData = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default.a.toArrayTree(fullData, {
33196
+ key: treeOpts.rowtKey,
33197
+ parentKey: treeOpts.parentKey,
33198
+ children: treeOpts.children
33199
+ });
33200
+ fullData = treeData.slice(0);
33201
+ } else {
33202
+ treeData = fullData.slice(0);
33203
+ }
33204
+ }
33205
+
32963
33206
  scrollYStore.startIndex = 0;
32964
33207
  scrollYStore.endIndex = 1;
32965
33208
  scrollXStore.startIndex = 0;
32966
33209
  scrollXStore.endIndex = 1;
32967
33210
  editStore.insertList = [];
32968
- editStore.removeList = []; // 全量数据
33211
+ editStore.removeList = [];
33212
+ var sYLoad = updateScrollYStatus(fullData);
33213
+ reactData.scrollYLoad = sYLoad; // 全量数据
32969
33214
 
32970
- internalData.tableFullData = tableFullData; // 缓存数据
33215
+ internalData.tableFullData = fullData;
33216
+ internalData.treeFullData = treeData; // 缓存数据
32971
33217
 
32972
- tablePrivateMethods.updateCache(true); // 原始数据
33218
+ tablePrivateMethods.cacheRowMap(true); // 原始数据
32973
33219
 
32974
- internalData.tableSynchData = datas;
33220
+ internalData.tableSynchData = datas; // 克隆原数据,用于显示编辑状态,与编辑值做对比
32975
33221
 
32976
33222
  if (keepSource) {
32977
- internalData.tableSourceData = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default.a.clone(tableFullData, true);
33223
+ internalData.tableSourceData = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default.a.clone(fullData, true);
32978
33224
  }
32979
33225
 
32980
- reactData.scrollYLoad = scrollYLoad;
32981
-
32982
33226
  if (true) {
32983
- if (scrollYLoad) {
33227
+ if (sYLoad) {
32984
33228
  if (!(props.height || props.maxHeight)) {
32985
33229
  errLog('vxe.error.reqProp', ['table.height | table.max-height | table.scroll-y={enabled: false}']);
32986
33230
  }
@@ -33010,8 +33254,8 @@ var visibleStorageKey = 'VXE_TABLE_CUSTOM_COLUMN_VISIBLE';
33010
33254
  }).then(function () {
33011
33255
  computeScrollLoad();
33012
33256
  }).then(function () {
33013
- // 是否加载了数据
33014
- if (scrollYLoad) {
33257
+ // 是否启用了虚拟滚动
33258
+ if (sYLoad) {
33015
33259
  scrollYStore.endIndex = scrollYStore.visibleSize;
33016
33260
  }
33017
33261
 
@@ -33022,7 +33266,7 @@ var visibleStorageKey = 'VXE_TABLE_CUSTOM_COLUMN_VISIBLE';
33022
33266
  return tableMethods.recalculate();
33023
33267
  }).then(function () {
33024
33268
  // 是否变更虚拟滚动
33025
- if (oldScrollYLoad === scrollYLoad) {
33269
+ if (oldScrollYLoad === sYLoad) {
33026
33270
  restoreScrollLocation($xetable, lastScrollLeft, lastScrollTop).then(resolve);
33027
33271
  } else {
33028
33272
  setTimeout(function () {
@@ -33291,6 +33535,135 @@ var visibleStorageKey = 'VXE_TABLE_CUSTOM_COLUMN_VISIBLE';
33291
33535
  return tableMethods.recalculate();
33292
33536
  });
33293
33537
  };
33538
+
33539
+ var updateScrollYStatus = function updateScrollYStatus(fullData) {
33540
+ var treeConfig = props.treeConfig;
33541
+ var sYOpts = computeSYOpts.value;
33542
+ var treeOpts = computeTreeOpts.value;
33543
+ var transform = treeOpts.transform;
33544
+ var scrollYLoad = (transform || !treeConfig) && !!sYOpts.enabled && sYOpts.gt > -1 && sYOpts.gt < fullData.length;
33545
+ reactData.scrollYLoad = scrollYLoad;
33546
+ return scrollYLoad;
33547
+ };
33548
+
33549
+ var updateVirtualTreeData = function updateVirtualTreeData() {
33550
+ var oldScrollYLoad = reactData.scrollYLoad,
33551
+ treeExpandeds = reactData.treeExpandeds;
33552
+ var treeFullData = internalData.treeFullData;
33553
+ var treeOpts = computeTreeOpts.value;
33554
+ var fullData = [];
33555
+ external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default.a.eachTree(treeFullData, function (row, index, items, path, parent) {
33556
+ if (!parent || $xetable.findRowIndexOf(treeExpandeds, parent) > -1) {
33557
+ fullData.push(row);
33558
+ }
33559
+ }, treeOpts);
33560
+ var scrollYLoad = updateScrollYStatus(fullData);
33561
+ internalData.tableFullData = scrollYLoad ? fullData : treeFullData;
33562
+
33563
+ if (scrollYLoad || oldScrollYLoad !== scrollYLoad) {
33564
+ return tablePrivateMethods.handleTableData(true).then(function () {
33565
+ return tableMethods.recalculate();
33566
+ });
33567
+ }
33568
+
33569
+ return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["nextTick"])();
33570
+ };
33571
+ /**
33572
+ * 展开与收起树节点
33573
+ * @param rows
33574
+ * @param expanded
33575
+ * @returns
33576
+ */
33577
+
33578
+
33579
+ var handleBaseTreeExpand = function handleBaseTreeExpand(rows, expanded) {
33580
+ var treeExpandeds = reactData.treeExpandeds,
33581
+ treeLazyLoadeds = reactData.treeLazyLoadeds,
33582
+ treeNodeColumn = reactData.treeNodeColumn;
33583
+ var fullAllDataRowIdData = internalData.fullAllDataRowIdData,
33584
+ tableFullData = internalData.tableFullData;
33585
+ var treeOpts = computeTreeOpts.value;
33586
+ var reserve = treeOpts.reserve,
33587
+ lazy = treeOpts.lazy,
33588
+ hasChild = treeOpts.hasChild,
33589
+ children = treeOpts.children,
33590
+ accordion = treeOpts.accordion,
33591
+ toggleMethod = treeOpts.toggleMethod;
33592
+ var result = [];
33593
+ var columnIndex = tableMethods.getColumnIndex(treeNodeColumn);
33594
+ var $columnIndex = tableMethods.getVMColumnIndex(treeNodeColumn);
33595
+ var validRows = toggleMethod ? rows.filter(function (row) {
33596
+ return toggleMethod({
33597
+ $table: $xetable,
33598
+ expanded: expanded,
33599
+ column: treeNodeColumn,
33600
+ columnIndex: columnIndex,
33601
+ $columnIndex: $columnIndex,
33602
+ row: row
33603
+ });
33604
+ }) : rows;
33605
+
33606
+ if (accordion) {
33607
+ validRows = validRows.length ? [validRows[validRows.length - 1]] : []; // 同一级只能展开一个
33608
+
33609
+ var matchObj = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default.a.findTree(tableFullData, function (item) {
33610
+ return item === validRows[0];
33611
+ }, treeOpts);
33612
+
33613
+ if (matchObj) {
33614
+ external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default.a.remove(treeExpandeds, function (item) {
33615
+ return matchObj.items.indexOf(item) > -1;
33616
+ });
33617
+ }
33618
+ }
33619
+
33620
+ if (expanded) {
33621
+ validRows.forEach(function (row) {
33622
+ if ($xetable.findRowIndexOf(treeExpandeds, row) === -1) {
33623
+ var rest = fullAllDataRowIdData[util_getRowid($xetable, row)];
33624
+
33625
+ var isLoad = lazy && row[hasChild] && !rest.treeLoaded && $xetable.findRowIndexOf(treeLazyLoadeds, row) === -1; // 是否使用懒加载
33626
+
33627
+ if (isLoad) {
33628
+ result.push(handleAsyncTreeExpandChilds(row));
33629
+ } else {
33630
+ if (row[children] && row[children].length) {
33631
+ treeExpandeds.push(row);
33632
+ }
33633
+ }
33634
+ }
33635
+ });
33636
+ } else {
33637
+ external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default.a.remove(treeExpandeds, function (row) {
33638
+ return $xetable.findRowIndexOf(validRows, row) > -1;
33639
+ });
33640
+ }
33641
+
33642
+ if (reserve) {
33643
+ validRows.forEach(function (row) {
33644
+ return handleTreeExpandReserve(row, expanded);
33645
+ });
33646
+ }
33647
+
33648
+ return Promise.all(result).then(function () {
33649
+ return tableMethods.recalculate();
33650
+ });
33651
+ };
33652
+ /**
33653
+ * 虚拟树的展开与收起
33654
+ * @param rows
33655
+ * @param expanded
33656
+ * @returns
33657
+ */
33658
+
33659
+
33660
+ var handleVirtualTreeExpand = function handleVirtualTreeExpand(rows, expanded) {
33661
+ return handleBaseTreeExpand(rows, expanded).then(function () {
33662
+ return updateVirtualTreeData();
33663
+ }).then(function () {
33664
+ return tableMethods.recalculate();
33665
+ });
33666
+ };
33294
33667
  /**
33295
33668
  * 纵向 Y 可视渲染处理
33296
33669
  */
@@ -33437,7 +33810,7 @@ var visibleStorageKey = 'VXE_TABLE_CUSTOM_COLUMN_VISIBLE';
33437
33810
  tableSourceData[rowIndex] = record;
33438
33811
  external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default.a.clear(row, undefined);
33439
33812
  Object.assign(row, tablePrivateMethods.defineField(Object.assign({}, record)));
33440
- tablePrivateMethods.updateCache(true);
33813
+ tablePrivateMethods.cacheRowMap(true);
33441
33814
  } else {
33442
33815
  external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default.a.destructuring(oRow, external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default.a.clone(row, true));
33443
33816
  }
@@ -33457,15 +33830,18 @@ var visibleStorageKey = 'VXE_TABLE_CUSTOM_COLUMN_VISIBLE';
33457
33830
  /**
33458
33831
  * 用于树结构,给行数据加载子节点
33459
33832
  */
33460
- loadChildren: function loadChildren(row, childRecords) {
33461
- return tableMethods.createData(childRecords).then(function (rows) {
33462
- var keepSource = props.keepSource;
33463
- var fullDataRowIdData = internalData.fullDataRowIdData,
33464
- fullAllDataRowIdData = internalData.fullAllDataRowIdData;
33465
- var tableSourceData = internalData.tableSourceData;
33466
- var treeOpts = computeTreeOpts.value;
33467
- var children = treeOpts.children;
33833
+ loadTreeChildren: function loadTreeChildren(row, childRecords) {
33834
+ var keepSource = props.keepSource;
33835
+ var tableSourceData = internalData.tableSourceData,
33836
+ fullDataRowIdData = internalData.fullDataRowIdData,
33837
+ fullAllDataRowIdData = internalData.fullAllDataRowIdData;
33838
+ var treeOpts = computeTreeOpts.value;
33839
+ var children = treeOpts.children;
33468
33840
 
33841
+ var rest = fullAllDataRowIdData[util_getRowid($xetable, row)];
33842
+
33843
+ var parentLevel = rest ? rest.level : 0;
33844
+ return tableMethods.createData(childRecords).then(function (rows) {
33469
33845
  if (keepSource) {
33470
33846
  var rowid = util_getRowid($xetable, row);
33471
33847
 
@@ -33478,7 +33854,7 @@ var visibleStorageKey = 'VXE_TABLE_CUSTOM_COLUMN_VISIBLE';
33478
33854
  }
33479
33855
  }
33480
33856
 
33481
- external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default.a.eachTree(rows, function (childRow, index, items, path, parent) {
33857
+ external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default.a.eachTree(rows, function (childRow, index, items, path, parent, nodes) {
33482
33858
  var rowid = util_getRowid($xetable, childRow);
33483
33859
 
33484
33860
  var rest = {
@@ -33488,7 +33864,8 @@ var visibleStorageKey = 'VXE_TABLE_CUSTOM_COLUMN_VISIBLE';
33488
33864
  _index: -1,
33489
33865
  $index: -1,
33490
33866
  items: items,
33491
- parent: parent
33867
+ parent: parent,
33868
+ level: parentLevel + nodes.length
33492
33869
  };
33493
33870
  fullDataRowIdData[rowid] = rest;
33494
33871
  fullAllDataRowIdData[rowid] = rest;
@@ -34766,12 +35143,24 @@ var visibleStorageKey = 'VXE_TABLE_CUSTOM_COLUMN_VISIBLE';
34766
35143
  */
34767
35144
  closeFilter: function closeFilter() {
34768
35145
  var filterStore = reactData.filterStore;
35146
+ var column = filterStore.column,
35147
+ visible = filterStore.visible;
34769
35148
  Object.assign(filterStore, {
34770
35149
  isAllSelected: false,
34771
35150
  isIndeterminate: false,
34772
35151
  options: [],
34773
35152
  visible: false
34774
35153
  });
35154
+
35155
+ if (visible) {
35156
+ $xetable.dispatchEvent('filter-visible', {
35157
+ column: column,
35158
+ property: column.property,
35159
+ filterList: $xetable.getCheckedFilters(),
35160
+ visible: false
35161
+ }, null);
35162
+ }
35163
+
34775
35164
  return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["nextTick"])();
34776
35165
  },
34777
35166
 
@@ -34821,10 +35210,10 @@ var visibleStorageKey = 'VXE_TABLE_CUSTOM_COLUMN_VISIBLE';
34821
35210
  },
34822
35211
 
34823
35212
  /**
34824
- * 重新加载展开行的内容
35213
+ * 重新懒加载展开行,并展开内容
34825
35214
  * @param {Row} row 行对象
34826
35215
  */
34827
- reloadExpandContent: function reloadExpandContent(row) {
35216
+ lazyExpandContent: function lazyExpandContent(row) {
34828
35217
  var expandLazyLoadeds = reactData.expandLazyLoadeds;
34829
35218
  var expandOpts = computeExpandOpts.value;
34830
35219
  var lazy = expandOpts.lazy;
@@ -34838,6 +35227,18 @@ var visibleStorageKey = 'VXE_TABLE_CUSTOM_COLUMN_VISIBLE';
34838
35227
  return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["nextTick"])();
34839
35228
  },
34840
35229
 
35230
+ /**
35231
+ * @deprecated 已废弃,请使用 lazyExpandContent
35232
+ */
35233
+ reloadExpandContent: function reloadExpandContent(row) {
35234
+ if (true) {
35235
+ warnLog('vxe.error.delFunc', ['reloadExpandContent', 'lazyExpandContent']);
35236
+ } // 即将废弃
35237
+
35238
+
35239
+ return tableMethods.lazyExpandContent(row);
35240
+ },
35241
+
34841
35242
  /**
34842
35243
  * 切换展开行
34843
35244
  */
@@ -35005,23 +35406,38 @@ var visibleStorageKey = 'VXE_TABLE_CUSTOM_COLUMN_VISIBLE';
35005
35406
  },
35006
35407
 
35007
35408
  /**
35008
- * 重新加载树的子节点
35409
+ * 重新懒加载树节点,并展开该节点
35009
35410
  * @param {Row} row 行对象
35010
35411
  */
35011
- reloadTreeChilds: function reloadTreeChilds(row) {
35412
+ lazyTreeChildren: function lazyTreeChildren(row) {
35012
35413
  var treeLazyLoadeds = reactData.treeLazyLoadeds;
35013
35414
  var treeOpts = computeTreeOpts.value;
35014
- var lazy = treeOpts.lazy,
35415
+ var transform = treeOpts.transform,
35416
+ lazy = treeOpts.lazy,
35015
35417
  hasChild = treeOpts.hasChild;
35016
35418
 
35017
35419
  if (lazy && row[hasChild] && $xetable.findRowIndexOf(treeLazyLoadeds, row) === -1) {
35018
35420
  tableMethods.clearTreeExpandLoaded(row).then(function () {
35019
35421
  return handleAsyncTreeExpandChilds(row);
35422
+ }).then(function () {
35423
+ if (transform) {
35424
+ return updateVirtualTreeData();
35425
+ }
35426
+ }).then(function () {
35427
+ return tableMethods.recalculate();
35020
35428
  });
35021
35429
  }
35022
35430
 
35023
35431
  return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["nextTick"])();
35024
35432
  },
35433
+ reloadTreeChilds: function reloadTreeChilds(row) {
35434
+ if (true) {
35435
+ warnLog('vxe.error.delFunc', ['reloadTreeChilds', 'lazyTreeChildren']);
35436
+ } // 即将废弃
35437
+
35438
+
35439
+ return tableMethods.lazyTreeChildren(row);
35440
+ },
35025
35441
 
35026
35442
  /**
35027
35443
  * 切换/展开树节点
@@ -35058,21 +35474,8 @@ var visibleStorageKey = 'VXE_TABLE_CUSTOM_COLUMN_VISIBLE';
35058
35474
  * @param {Boolean} expanded 是否展开
35059
35475
  */
35060
35476
  setTreeExpand: function setTreeExpand(rows, expanded) {
35061
- var treeExpandeds = reactData.treeExpandeds,
35062
- treeLazyLoadeds = reactData.treeLazyLoadeds,
35063
- treeNodeColumn = reactData.treeNodeColumn;
35064
- var fullAllDataRowIdData = internalData.fullAllDataRowIdData,
35065
- tableFullData = internalData.tableFullData;
35066
35477
  var treeOpts = computeTreeOpts.value;
35067
- var reserve = treeOpts.reserve,
35068
- lazy = treeOpts.lazy,
35069
- hasChild = treeOpts.hasChild,
35070
- children = treeOpts.children,
35071
- accordion = treeOpts.accordion,
35072
- toggleMethod = treeOpts.toggleMethod;
35073
- var result = [];
35074
- var columnIndex = tableMethods.getColumnIndex(treeNodeColumn);
35075
- var $columnIndex = tableMethods.getVMColumnIndex(treeNodeColumn);
35478
+ var transform = treeOpts.transform;
35076
35479
 
35077
35480
  if (rows) {
35078
35481
  if (!external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default.a.isArray(rows)) {
@@ -35080,62 +35483,12 @@ var visibleStorageKey = 'VXE_TABLE_CUSTOM_COLUMN_VISIBLE';
35080
35483
  }
35081
35484
 
35082
35485
  if (rows.length) {
35083
- var validRows = toggleMethod ? rows.filter(function (row) {
35084
- return toggleMethod({
35085
- $table: $xetable,
35086
- expanded: expanded,
35087
- column: treeNodeColumn,
35088
- columnIndex: columnIndex,
35089
- $columnIndex: $columnIndex,
35090
- row: row
35091
- });
35092
- }) : rows;
35093
-
35094
- if (accordion) {
35095
- validRows = validRows.length ? [validRows[validRows.length - 1]] : []; // 同一级只能展开一个
35096
-
35097
- var matchObj = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default.a.findTree(tableFullData, function (item) {
35098
- return item === validRows[0];
35099
- }, treeOpts);
35100
-
35101
- if (matchObj) {
35102
- external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default.a.remove(treeExpandeds, function (item) {
35103
- return matchObj.items.indexOf(item) > -1;
35104
- });
35105
- }
35106
- }
35107
-
35108
- if (expanded) {
35109
- validRows.forEach(function (row) {
35110
- if ($xetable.findRowIndexOf(treeExpandeds, row) === -1) {
35111
- var rest = fullAllDataRowIdData[util_getRowid($xetable, row)];
35112
-
35113
- var isLoad = lazy && row[hasChild] && !rest.treeLoaded && $xetable.findRowIndexOf(treeLazyLoadeds, row) === -1; // 是否使用懒加载
35114
-
35115
- if (isLoad) {
35116
- result.push(handleAsyncTreeExpandChilds(row));
35117
- } else {
35118
- if (row[children] && row[children].length) {
35119
- treeExpandeds.push(row);
35120
- }
35121
- }
35122
- }
35123
- });
35486
+ // 如果为虚拟树
35487
+ if (transform) {
35488
+ return handleVirtualTreeExpand(rows, expanded);
35124
35489
  } else {
35125
- external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default.a.remove(treeExpandeds, function (row) {
35126
- return $xetable.findRowIndexOf(validRows, row) > -1;
35127
- });
35490
+ return handleBaseTreeExpand(rows, expanded);
35128
35491
  }
35129
-
35130
- if (reserve) {
35131
- validRows.forEach(function (row) {
35132
- return handleTreeExpandReserve(row, expanded);
35133
- });
35134
- }
35135
-
35136
- return Promise.all(result).then(function () {
35137
- return tableMethods.recalculate();
35138
- });
35139
35492
  }
35140
35493
  }
35141
35494
 
@@ -35156,19 +35509,19 @@ var visibleStorageKey = 'VXE_TABLE_CUSTOM_COLUMN_VISIBLE';
35156
35509
  */
35157
35510
  clearTreeExpand: function clearTreeExpand() {
35158
35511
  var treeExpandeds = reactData.treeExpandeds;
35159
- var tableFullData = internalData.tableFullData;
35512
+ var treeFullData = internalData.treeFullData;
35160
35513
  var treeOpts = computeTreeOpts.value;
35161
35514
  var reserve = treeOpts.reserve;
35162
35515
  var isExists = treeExpandeds.length;
35163
35516
  reactData.treeExpandeds = [];
35164
35517
 
35165
35518
  if (reserve) {
35166
- external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default.a.eachTree(tableFullData, function (row) {
35519
+ external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default.a.eachTree(treeFullData, function (row) {
35167
35520
  return handleTreeExpandReserve(row, false);
35168
35521
  }, treeOpts);
35169
35522
  }
35170
35523
 
35171
- return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["nextTick"])().then(function () {
35524
+ return updateVirtualTreeData().then(function () {
35172
35525
  if (isExists) {
35173
35526
  tableMethods.recalculate();
35174
35527
  }
@@ -36157,16 +36510,17 @@ var visibleStorageKey = 'VXE_TABLE_CUSTOM_COLUMN_VISIBLE';
36157
36510
  * 更新数据行的 Map
36158
36511
  * 牺牲数据组装的耗时,用来换取使用过程中的流畅
36159
36512
  */
36160
- updateCache: function updateCache(isSource) {
36513
+ cacheRowMap: function cacheRowMap(isSource) {
36161
36514
  var treeConfig = props.treeConfig;
36162
36515
  var treeOpts = computeTreeOpts.value;
36163
36516
  var fullDataRowIdData = internalData.fullDataRowIdData,
36164
36517
  fullAllDataRowIdData = internalData.fullAllDataRowIdData,
36165
- tableFullData = internalData.tableFullData;
36518
+ tableFullData = internalData.tableFullData,
36519
+ treeFullData = internalData.treeFullData;
36166
36520
  var rowkey = getRowkey($xetable);
36167
36521
  var isLazy = treeConfig && treeOpts.lazy;
36168
36522
 
36169
- var handleCache = function handleCache(row, index, items, path, parent) {
36523
+ var handleCache = function handleCache(row, index, items, path, parent, nodes) {
36170
36524
  var rowid = util_getRowid($xetable, row);
36171
36525
 
36172
36526
  if (eqEmptyValue(rowid)) {
@@ -36185,7 +36539,8 @@ var visibleStorageKey = 'VXE_TABLE_CUSTOM_COLUMN_VISIBLE';
36185
36539
  _index: -1,
36186
36540
  $index: -1,
36187
36541
  items: items,
36188
- parent: parent
36542
+ parent: parent,
36543
+ level: nodes ? nodes.length - 1 : 0
36189
36544
  };
36190
36545
 
36191
36546
  if (isSource) {
@@ -36202,7 +36557,7 @@ var visibleStorageKey = 'VXE_TABLE_CUSTOM_COLUMN_VISIBLE';
36202
36557
  fullAllDataRowIdData = internalData.fullAllDataRowIdData = {};
36203
36558
 
36204
36559
  if (treeConfig) {
36205
- external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default.a.eachTree(tableFullData, handleCache, treeOpts);
36560
+ external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default.a.eachTree(treeFullData, handleCache, treeOpts);
36206
36561
  } else {
36207
36562
  tableFullData.forEach(handleCache);
36208
36563
  }
@@ -36598,10 +36953,10 @@ var visibleStorageKey = 'VXE_TABLE_CUSTOM_COLUMN_VISIBLE';
36598
36953
  var column = params.column;
36599
36954
  var titleHelp = column.titleHelp;
36600
36955
 
36601
- if (titleHelp.message) {
36956
+ if (titleHelp.content || titleHelp.message) {
36602
36957
  var tooltipStore = internalData.tooltipStore;
36603
36958
  var $tooltip = refTooltip.value;
36604
- var content = getFuncText(titleHelp.message);
36959
+ var content = getFuncText(titleHelp.content || titleHelp.message);
36605
36960
  handleTargetEnterEvent();
36606
36961
  tooltipStore.visible = true;
36607
36962
 
@@ -37349,6 +37704,20 @@ var visibleStorageKey = 'VXE_TABLE_CUSTOM_COLUMN_VISIBLE';
37349
37704
  return false;
37350
37705
  }
37351
37706
  };
37707
+
37708
+ if (true) {
37709
+ 'openExport,openPrint,exportData,openImport,importData,saveFile,readFile,importByFile,print'.split(',').forEach(function (name) {
37710
+ $xetable[name] = function () {
37711
+ errLog('vxe.error.reqModule', ['Export']);
37712
+ };
37713
+ });
37714
+ 'clearValidate,fullValidate,validate'.split(',').forEach(function (name) {
37715
+ $xetable[name] = function () {
37716
+ errLog('vxe.error.reqModule', ['Validator']);
37717
+ };
37718
+ });
37719
+ }
37720
+
37352
37721
  Object.assign($xetable, tableMethods, tablePrivateMethods);
37353
37722
  /**
37354
37723
  * 渲染浮固定列
@@ -37610,6 +37979,7 @@ var visibleStorageKey = 'VXE_TABLE_CUSTOM_COLUMN_VISIBLE';
37610
37979
  if (true) {
37611
37980
  var customOpts = computeCustomOpts.value;
37612
37981
  var mouseOpts = computeMouseOpts.value;
37982
+ var rowOpts = computeRowOpts.value;
37613
37983
 
37614
37984
  if (!props.id && props.customConfig && (customOpts.storage === true || customOpts.storage && customOpts.storage.resizable || customOpts.storage && customOpts.storage.visible)) {
37615
37985
  errLog('vxe.error.reqProp', ['id']);
@@ -37619,6 +37989,10 @@ var visibleStorageKey = 'VXE_TABLE_CUSTOM_COLUMN_VISIBLE';
37619
37989
  errLog('vxe.error.noTree', ['checkbox-config.range']);
37620
37990
  }
37621
37991
 
37992
+ if (rowOpts.height && !props.showOverflow) {
37993
+ warnLog('vxe.error.notProp', ['table.show-overflow']);
37994
+ }
37995
+
37622
37996
  if (!$xetable.handleUpdateCellAreas) {
37623
37997
  if (props.clipConfig) {
37624
37998
  warnLog('vxe.error.notProp', ['clip-config']);
@@ -37938,6 +38312,7 @@ var visibleStorageKey = 'VXE_TABLE_CUSTOM_COLUMN_VISIBLE';
37938
38312
 
37939
38313
 
37940
38314
 
38315
+
37941
38316
  var Table = Object.assign(table, {
37942
38317
  install: function install(app) {
37943
38318
  dynamicApp.component(table.name, table);