vxe-table 3.13.4 → 3.13.6

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 (139) hide show
  1. package/es/index.css +1 -1
  2. package/es/index.min.css +1 -1
  3. package/es/locale/lang/ar-EG.js +2 -1
  4. package/es/locale/lang/de-DE.js +2 -1
  5. package/es/locale/lang/en-US.js +2 -1
  6. package/es/locale/lang/es-ES.js +2 -1
  7. package/es/locale/lang/fr-FR.js +2 -1
  8. package/es/locale/lang/hu-HU.js +2 -1
  9. package/es/locale/lang/hy-AM.js +2 -1
  10. package/es/locale/lang/id-ID.js +2 -1
  11. package/es/locale/lang/it-IT.js +2 -1
  12. package/es/locale/lang/ja-JP.js +2 -1
  13. package/es/locale/lang/ko-KR.js +2 -1
  14. package/es/locale/lang/nb-NO.js +2 -1
  15. package/es/locale/lang/pt-BR.js +2 -1
  16. package/es/locale/lang/ru-RU.js +2 -1
  17. package/es/locale/lang/th-TH.js +2 -1
  18. package/es/locale/lang/ug-CN.js +2 -1
  19. package/es/locale/lang/uk-UA.js +2 -1
  20. package/es/locale/lang/vi-VN.js +2 -1
  21. package/es/locale/lang/zh-CHT.js +2 -1
  22. package/es/locale/lang/zh-CN.js +2 -1
  23. package/es/style.css +1 -1
  24. package/es/style.min.css +1 -1
  25. package/es/table/module/export/export-panel.js +7 -4
  26. package/es/table/module/export/mixin.js +2 -2
  27. package/es/table/src/methods.js +287 -252
  28. package/es/table/src/table.js +1 -1
  29. package/es/table/style.css +1 -1
  30. package/es/table/style.min.css +1 -1
  31. package/es/ui/index.js +1 -1
  32. package/es/ui/src/log.js +1 -1
  33. package/es/vxe-table/style.css +1 -1
  34. package/es/vxe-table/style.min.css +1 -1
  35. package/lib/index.css +1 -1
  36. package/lib/index.min.css +1 -1
  37. package/lib/index.umd.js +340 -313
  38. package/lib/index.umd.min.js +1 -1
  39. package/lib/locale/lang/ar-EG.js +2 -1
  40. package/lib/locale/lang/ar-EG.min.js +1 -1
  41. package/lib/locale/lang/de-DE.js +2 -1
  42. package/lib/locale/lang/de-DE.min.js +1 -1
  43. package/lib/locale/lang/en-US.js +2 -1
  44. package/lib/locale/lang/en-US.min.js +1 -1
  45. package/lib/locale/lang/en-US.umd.js +2 -1
  46. package/lib/locale/lang/es-ES.js +2 -1
  47. package/lib/locale/lang/es-ES.min.js +1 -1
  48. package/lib/locale/lang/es-ES.umd.js +2 -1
  49. package/lib/locale/lang/fr-FR.js +2 -1
  50. package/lib/locale/lang/fr-FR.min.js +1 -1
  51. package/lib/locale/lang/hu-HU.js +2 -1
  52. package/lib/locale/lang/hu-HU.min.js +1 -1
  53. package/lib/locale/lang/hu-HU.umd.js +2 -1
  54. package/lib/locale/lang/hy-AM.js +2 -1
  55. package/lib/locale/lang/hy-AM.min.js +1 -1
  56. package/lib/locale/lang/id-ID.js +2 -1
  57. package/lib/locale/lang/id-ID.min.js +1 -1
  58. package/lib/locale/lang/it-IT.js +2 -1
  59. package/lib/locale/lang/it-IT.min.js +1 -1
  60. package/lib/locale/lang/ja-JP.js +2 -1
  61. package/lib/locale/lang/ja-JP.min.js +1 -1
  62. package/lib/locale/lang/ja-JP.umd.js +2 -1
  63. package/lib/locale/lang/ko-KR.js +2 -1
  64. package/lib/locale/lang/ko-KR.min.js +1 -1
  65. package/lib/locale/lang/ko-KR.umd.js +2 -1
  66. package/lib/locale/lang/nb-NO.js +2 -1
  67. package/lib/locale/lang/nb-NO.min.js +1 -1
  68. package/lib/locale/lang/pt-BR.js +2 -1
  69. package/lib/locale/lang/pt-BR.min.js +1 -1
  70. package/lib/locale/lang/pt-BR.umd.js +2 -1
  71. package/lib/locale/lang/ru-RU.js +2 -1
  72. package/lib/locale/lang/ru-RU.min.js +1 -1
  73. package/lib/locale/lang/ru-RU.umd.js +2 -1
  74. package/lib/locale/lang/th-TH.js +2 -1
  75. package/lib/locale/lang/th-TH.min.js +1 -1
  76. package/lib/locale/lang/ug-CN.js +2 -1
  77. package/lib/locale/lang/ug-CN.min.js +1 -1
  78. package/lib/locale/lang/uk-UA.js +2 -1
  79. package/lib/locale/lang/uk-UA.min.js +1 -1
  80. package/lib/locale/lang/uk-UA.umd.js +2 -1
  81. package/lib/locale/lang/vi-VN.js +2 -1
  82. package/lib/locale/lang/vi-VN.min.js +1 -1
  83. package/lib/locale/lang/zh-CHT.js +2 -1
  84. package/lib/locale/lang/zh-CHT.min.js +1 -1
  85. package/lib/locale/lang/zh-CHT.umd.js +2 -1
  86. package/lib/locale/lang/zh-CN.js +2 -1
  87. package/lib/locale/lang/zh-CN.min.js +1 -1
  88. package/lib/locale/lang/zh-CN.umd.js +2 -1
  89. package/lib/style.css +1 -1
  90. package/lib/style.min.css +1 -1
  91. package/lib/table/module/export/export-panel.js +7 -4
  92. package/lib/table/module/export/export-panel.min.js +1 -1
  93. package/lib/table/module/export/mixin.js +2 -2
  94. package/lib/table/module/export/mixin.min.js +1 -1
  95. package/lib/table/src/methods.js +324 -301
  96. package/lib/table/src/methods.min.js +1 -1
  97. package/lib/table/src/table.js +1 -1
  98. package/lib/table/src/table.min.js +1 -1
  99. package/lib/table/style/style.css +1 -1
  100. package/lib/table/style/style.min.css +1 -1
  101. package/lib/ui/index.js +1 -1
  102. package/lib/ui/index.min.js +1 -1
  103. package/lib/ui/src/log.js +1 -1
  104. package/lib/ui/src/log.min.js +1 -1
  105. package/lib/vxe-table/style/style.css +1 -1
  106. package/lib/vxe-table/style/style.min.css +1 -1
  107. package/package.json +2 -2
  108. package/packages/locale/lang/ar-EG.ts +2 -1
  109. package/packages/locale/lang/de-DE.ts +2 -1
  110. package/packages/locale/lang/en-US.ts +2 -1
  111. package/packages/locale/lang/es-ES.ts +2 -1
  112. package/packages/locale/lang/fr-FR.ts +2 -1
  113. package/packages/locale/lang/hu-HU.ts +2 -1
  114. package/packages/locale/lang/hy-AM.ts +2 -1
  115. package/packages/locale/lang/id-ID.ts +2 -1
  116. package/packages/locale/lang/it-IT.ts +2 -1
  117. package/packages/locale/lang/ja-JP.ts +2 -1
  118. package/packages/locale/lang/ko-KR.ts +2 -1
  119. package/packages/locale/lang/nb-NO.ts +2 -1
  120. package/packages/locale/lang/pt-BR.ts +2 -1
  121. package/packages/locale/lang/ru-RU.ts +2 -1
  122. package/packages/locale/lang/th-TH.ts +2 -1
  123. package/packages/locale/lang/ug-CN.ts +2 -1
  124. package/packages/locale/lang/uk-UA.ts +2 -1
  125. package/packages/locale/lang/vi-VN.ts +2 -1
  126. package/packages/locale/lang/zh-CHT.ts +2 -1
  127. package/packages/locale/lang/zh-CN.ts +2 -1
  128. package/packages/table/module/export/export-panel.ts +7 -4
  129. package/packages/table/module/export/mixin.ts +2 -2
  130. package/packages/table/src/methods.ts +306 -255
  131. package/packages/table/src/table.ts +1 -1
  132. package/styles/components/table.scss +1 -1
  133. package/styles/theme/base.scss +1 -1
  134. /package/es/{iconfont.1740013687420.ttf → iconfont.1740103990490.ttf} +0 -0
  135. /package/es/{iconfont.1740013687420.woff → iconfont.1740103990490.woff} +0 -0
  136. /package/es/{iconfont.1740013687420.woff2 → iconfont.1740103990490.woff2} +0 -0
  137. /package/lib/{iconfont.1740013687420.ttf → iconfont.1740103990490.ttf} +0 -0
  138. /package/lib/{iconfont.1740013687420.woff → iconfont.1740103990490.woff} +0 -0
  139. /package/lib/{iconfont.1740013687420.woff2 → iconfont.1740103990490.woff2} +0 -0
package/lib/index.umd.js CHANGED
@@ -2220,7 +2220,7 @@ function getClass(property, params) {
2220
2220
  ;// CONCATENATED MODULE: ./packages/ui/index.ts
2221
2221
 
2222
2222
 
2223
- const version = "3.13.4";
2223
+ const version = "3.13.6";
2224
2224
  core_.VxeUI.version = version;
2225
2225
  core_.VxeUI.tableVersion = version;
2226
2226
  core_.VxeUI.setConfig({
@@ -2843,7 +2843,7 @@ function isNodeElement(elem) {
2843
2843
  const {
2844
2844
  log: log_log
2845
2845
  } = core_.VxeUI;
2846
- const log_version = `table v${"3.13.4"}`;
2846
+ const log_version = `table v${"3.13.6"}`;
2847
2847
  const warnLog = log_log.create('warn', log_version);
2848
2848
  const errLog = log_log.create('error', log_version);
2849
2849
  ;// CONCATENATED MODULE: ./packages/table/src/columnInfo.ts
@@ -5124,10 +5124,11 @@ const setCustomStorageMap = (id, data) => {
5124
5124
  maps._v = version;
5125
5125
  localStorage.setItem(customStorageKey, external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toJSONString(maps));
5126
5126
  };
5127
- const getRecoverRowMaps = (_vm, keyMaps) => {
5127
+ const getRecoverRowMaps = ($xeTable, keyMaps) => {
5128
+ const internalData = $xeTable;
5128
5129
  const {
5129
5130
  fullAllDataRowIdData
5130
- } = _vm;
5131
+ } = internalData;
5131
5132
  const restKeys = {};
5132
5133
  external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().each(keyMaps, (row, rowid) => {
5133
5134
  if (fullAllDataRowIdData[rowid]) {
@@ -5136,10 +5137,11 @@ const getRecoverRowMaps = (_vm, keyMaps) => {
5136
5137
  });
5137
5138
  return restKeys;
5138
5139
  };
5139
- function handleReserveRow(_vm, reserveRowMap) {
5140
+ function handleReserveRow($xeTable, reserveRowMap) {
5141
+ const internalData = $xeTable;
5140
5142
  const {
5141
5143
  fullDataRowIdData
5142
- } = _vm;
5144
+ } = internalData;
5143
5145
  const reserveList = [];
5144
5146
  external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().each(reserveRowMap, (item, rowid) => {
5145
5147
  if (fullDataRowIdData[rowid] && reserveList.indexOf(fullDataRowIdData[rowid].row) === -1) {
@@ -5929,6 +5931,253 @@ function updateStyle($xeTable) {
5929
5931
  }
5930
5932
  return $xeTable.$nextTick();
5931
5933
  }
5934
+ function handleRadioReserveRow($xeTable, row) {
5935
+ const internalData = $xeTable;
5936
+ const radioOpts = $xeTable.computeRadioOpts;
5937
+ if (radioOpts.reserve) {
5938
+ internalData.radioReserveRow = row;
5939
+ }
5940
+ }
5941
+ function handleCheckboxReserveRow($xeTable, row, checked) {
5942
+ const internalData = $xeTable;
5943
+ const {
5944
+ checkboxReserveRowMap
5945
+ } = internalData;
5946
+ const checkboxOpts = $xeTable.computeCheckboxOpts;
5947
+ if (checkboxOpts.reserve) {
5948
+ const rowid = getRowid($xeTable, row);
5949
+ if (checked) {
5950
+ checkboxReserveRowMap[rowid] = row;
5951
+ } else if (checkboxReserveRowMap[rowid]) {
5952
+ delete checkboxReserveRowMap[rowid];
5953
+ }
5954
+ }
5955
+ }
5956
+ function handleCheckedRadioRow($xeTable, row, isForce) {
5957
+ const reactData = $xeTable;
5958
+ const radioOpts = $xeTable.computeRadioOpts;
5959
+ const {
5960
+ checkMethod
5961
+ } = radioOpts;
5962
+ if (row && (isForce || !checkMethod || checkMethod({
5963
+ row
5964
+ }))) {
5965
+ reactData.selectRadioRow = row;
5966
+ handleRadioReserveRow($xeTable, row);
5967
+ }
5968
+ return $xeTable.$nextTick();
5969
+ }
5970
+ function handleCheckedCheckboxRow($xeTable, rows, value, isForce) {
5971
+ if (rows && !external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isArray(rows)) {
5972
+ rows = [rows];
5973
+ }
5974
+ $xeTable.handleBatchSelectRows(rows, !!value, isForce);
5975
+ $xeTable.checkSelectionStatus();
5976
+ return $xeTable.$nextTick();
5977
+ }
5978
+ function handleCheckedAllCheckboxRow($xeTable, checked, isForce) {
5979
+ const props = $xeTable;
5980
+ const reactData = $xeTable;
5981
+ const internalData = $xeTable;
5982
+ const {
5983
+ treeConfig
5984
+ } = props;
5985
+ const {
5986
+ selectCheckboxMaps
5987
+ } = reactData;
5988
+ const {
5989
+ afterFullData,
5990
+ checkboxReserveRowMap
5991
+ } = internalData;
5992
+ const treeOpts = $xeTable.computeTreeOpts;
5993
+ const childrenField = treeOpts.children || treeOpts.childrenField;
5994
+ const checkboxOpts = $xeTable.computeCheckboxOpts;
5995
+ const {
5996
+ checkField,
5997
+ reserve,
5998
+ checkMethod
5999
+ } = checkboxOpts;
6000
+ const indeterminateField = checkboxOpts.indeterminateField || checkboxOpts.halfField;
6001
+ const selectRowMaps = {};
6002
+ /**
6003
+ * 绑定属性方式(高性能,有污染)
6004
+ * 必须在行数据存在对应的属性,否则将不响应
6005
+ */
6006
+ if (checkField) {
6007
+ const checkValFn = row => {
6008
+ if (isForce || !checkMethod || checkMethod({
6009
+ row
6010
+ })) {
6011
+ if (checked) {
6012
+ selectRowMaps[getRowid($xeTable, row)] = row;
6013
+ }
6014
+ external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().set(row, checkField, checked);
6015
+ }
6016
+ if (treeConfig && indeterminateField) {
6017
+ external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().set(row, indeterminateField, false);
6018
+ }
6019
+ };
6020
+ // 如果存在选中方法
6021
+ // 如果方法成立,则更新值,否则忽略该数据
6022
+ if (treeConfig) {
6023
+ external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree(afterFullData, checkValFn, {
6024
+ children: childrenField
6025
+ });
6026
+ } else {
6027
+ afterFullData.forEach(checkValFn);
6028
+ }
6029
+ } else {
6030
+ /**
6031
+ * 默认方式(低性能,无污染)
6032
+ * 无需任何属性,直接绑定
6033
+ */
6034
+ if (treeConfig) {
6035
+ if (checked) {
6036
+ /**
6037
+ * 如果是树勾选
6038
+ * 如果方法成立,则添加到临时集合中
6039
+ */
6040
+ external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree(afterFullData, row => {
6041
+ if (isForce || !checkMethod || checkMethod({
6042
+ row
6043
+ })) {
6044
+ selectRowMaps[getRowid($xeTable, row)] = row;
6045
+ }
6046
+ }, {
6047
+ children: childrenField
6048
+ });
6049
+ } else {
6050
+ /**
6051
+ * 如果是树取消
6052
+ * 如果方法成立,则不添加到临时集合中
6053
+ */
6054
+ if (!isForce && checkMethod) {
6055
+ external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree(afterFullData, row => {
6056
+ const rowid = getRowid($xeTable, row);
6057
+ if (checkMethod({
6058
+ row
6059
+ }) ? 0 : selectCheckboxMaps[rowid]) {
6060
+ selectRowMaps[rowid] = row;
6061
+ }
6062
+ }, {
6063
+ children: childrenField
6064
+ });
6065
+ }
6066
+ }
6067
+ } else {
6068
+ if (checked) {
6069
+ /**
6070
+ * 如果是行勾选
6071
+ * 如果存在选中方法且成立或者本身已勾选,则添加到临时集合中
6072
+ * 如果不存在选中方法,则添加所有数据到临时集合中
6073
+ */
6074
+ if (!isForce && checkMethod) {
6075
+ afterFullData.forEach(row => {
6076
+ const rowid = getRowid($xeTable, row);
6077
+ if (selectCheckboxMaps[rowid] || checkMethod({
6078
+ row
6079
+ })) {
6080
+ selectRowMaps[rowid] = row;
6081
+ }
6082
+ });
6083
+ } else {
6084
+ afterFullData.forEach(row => {
6085
+ selectRowMaps[getRowid($xeTable, row)] = row;
6086
+ });
6087
+ }
6088
+ } else {
6089
+ /**
6090
+ * 如果是行取消
6091
+ * 如果方法成立,则不添加到临时集合中;如果方法不成立则判断当前是否已勾选,如果已被勾选则添加到新集合中
6092
+ * 如果不存在选中方法,无需处理,临时集合默认为空
6093
+ */
6094
+ if (!isForce && checkMethod) {
6095
+ afterFullData.forEach(row => {
6096
+ const rowid = getRowid($xeTable, row);
6097
+ if (checkMethod({
6098
+ row
6099
+ }) ? 0 : selectCheckboxMaps[rowid]) {
6100
+ selectRowMaps[rowid] = row;
6101
+ }
6102
+ });
6103
+ }
6104
+ }
6105
+ }
6106
+ }
6107
+ if (reserve) {
6108
+ if (checked) {
6109
+ external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().each(selectRowMaps, (row, rowid) => {
6110
+ checkboxReserveRowMap[rowid] = row;
6111
+ });
6112
+ } else {
6113
+ afterFullData.forEach(row => handleCheckboxReserveRow($xeTable, row, false));
6114
+ }
6115
+ }
6116
+ reactData.selectCheckboxMaps = checkField ? {} : selectRowMaps;
6117
+ reactData.isAllSelected = checked;
6118
+ reactData.isIndeterminate = false;
6119
+ reactData.treeIndeterminateMaps = {};
6120
+ internalData.treeIndeterminateRowMaps = {};
6121
+ $xeTable.checkSelectionStatus();
6122
+ return $xeTable.$nextTick();
6123
+ }
6124
+ // 还原展开、选中等相关状态
6125
+ function handleReserveStatus($xeTable) {
6126
+ const props = $xeTable;
6127
+ const reactData = $xeTable;
6128
+ const internalData = $xeTable;
6129
+ const {
6130
+ treeConfig
6131
+ } = props;
6132
+ const {
6133
+ expandColumn,
6134
+ currentRow,
6135
+ selectCheckboxMaps,
6136
+ selectRadioRow,
6137
+ rowExpandedMaps,
6138
+ treeExpandedMaps
6139
+ } = reactData;
6140
+ const {
6141
+ fullDataRowIdData,
6142
+ fullAllDataRowIdData,
6143
+ radioReserveRow
6144
+ } = internalData;
6145
+ const expandOpts = $xeTable.computeExpandOpts;
6146
+ const treeOpts = $xeTable.computeTreeOpts;
6147
+ const radioOpts = $xeTable.computeRadioOpts;
6148
+ const checkboxOpts = $xeTable.computeCheckboxOpts;
6149
+ // 单选框
6150
+ if (selectRadioRow && !fullAllDataRowIdData[getRowid($xeTable, selectRadioRow)]) {
6151
+ reactData.selectRadioRow = null; // 刷新单选行状态
6152
+ }
6153
+ // 还原保留选中状态
6154
+ if (radioOpts.reserve && radioReserveRow) {
6155
+ const rowid = getRowid($xeTable, radioReserveRow);
6156
+ if (fullDataRowIdData[rowid]) {
6157
+ handleCheckedRadioRow($xeTable, fullDataRowIdData[rowid].row, true);
6158
+ }
6159
+ }
6160
+ // 复选框
6161
+ reactData.selectCheckboxMaps = getRecoverRowMaps($xeTable, selectCheckboxMaps); // 刷新多选行状态
6162
+ // 还原保留选中状态
6163
+ if (checkboxOpts.reserve) {
6164
+ handleCheckedCheckboxRow($xeTable, handleReserveRow($xeTable, internalData.checkboxReserveRowMap), true, true);
6165
+ }
6166
+ if (currentRow && !fullAllDataRowIdData[getRowid($xeTable, currentRow)]) {
6167
+ reactData.currentRow = null; // 刷新当前行状态
6168
+ }
6169
+ // 行展开
6170
+ reactData.rowExpandedMaps = expandColumn ? getRecoverRowMaps($xeTable, rowExpandedMaps) : {}; // 刷新行展开状态
6171
+ // 还原保留状态
6172
+ if (expandColumn && expandOpts.reserve) {
6173
+ $xeTable.setRowExpand(handleReserveRow($xeTable, internalData.rowExpandedReserveRowMap), true);
6174
+ }
6175
+ // 树展开
6176
+ reactData.treeExpandedMaps = treeConfig ? getRecoverRowMaps($xeTable, treeExpandedMaps) : {}; // 刷新树展开状态
6177
+ if (treeConfig && treeOpts.reserve) {
6178
+ $xeTable.setTreeExpand(handleReserveRow($xeTable, internalData.treeExpandedReserveRowMap), true);
6179
+ }
6180
+ }
5932
6181
  function calcVarRowHeightConfig($xeTable, sizeKey, sizeEl) {
5933
6182
  const reactData = $xeTable;
5934
6183
  const {
@@ -7523,15 +7772,11 @@ const Methods = {
7523
7772
  internalData.tableFullData = fullData;
7524
7773
  internalData.tableFullTreeData = treeData;
7525
7774
  // 缓存数据
7526
- $xeTable.cacheRowMap(true, isReset);
7775
+ $xeTable.cacheRowMap(true);
7527
7776
  // 原始数据
7528
7777
  internalData.tableSynchData = datas;
7529
7778
  if (isReset) {
7530
7779
  internalData.isResizeCellHeight = false;
7531
- reactData.rowExpandedMaps = {};
7532
- reactData.rowExpandLazyLoadedMaps = {};
7533
- reactData.treeExpandedMaps = {};
7534
- reactData.treeExpandLazyLoadedMaps = {};
7535
7780
  }
7536
7781
  // 克隆原数据,用于显示编辑状态,与编辑值做对比
7537
7782
  if (keepSource) {
@@ -7576,7 +7821,7 @@ const Methods = {
7576
7821
  }
7577
7822
  }
7578
7823
  }
7579
- this.handleReserveStatus();
7824
+ handleReserveStatus($xeTable);
7580
7825
  this.checkSelectionStatus();
7581
7826
  return new Promise(resolve => {
7582
7827
  this.$nextTick().then(() => this.recalculate()).then(() => {
@@ -7716,22 +7961,27 @@ const Methods = {
7716
7961
  /**
7717
7962
  * 更新数据行的 Map
7718
7963
  */
7719
- cacheRowMap(isReset, isSource) {
7964
+ cacheRowMap() {
7965
+ const $xeTable = this;
7966
+ const props = $xeTable;
7967
+ const internalData = $xeTable;
7968
+ const {
7969
+ treeConfig
7970
+ } = props;
7971
+ const treeOpts = $xeTable.computeTreeOpts;
7720
7972
  const {
7721
- treeConfig,
7722
- treeOpts,
7723
- tableFullData,
7724
7973
  fullAllDataRowIdData,
7974
+ tableFullData,
7725
7975
  tableFullTreeData
7726
- } = this;
7976
+ } = internalData;
7727
7977
  const childrenField = treeOpts.children || treeOpts.childrenField;
7728
7978
  const hasChildField = treeOpts.hasChild || treeOpts.hasChildField;
7729
- const rowkey = getRowkey(this);
7979
+ const rowkey = getRowkey($xeTable);
7730
7980
  const isLazy = treeConfig && treeOpts.lazy;
7731
7981
  const fullAllDataRowIdMaps = {};
7732
7982
  const fullDataRowIdMaps = {};
7733
- const handleCache = (row, index, items, path, parentRow, nodes) => {
7734
- let rowid = getRowid(this, row);
7983
+ const handleRow = (row, index, items, path, parentRow, nodes) => {
7984
+ let rowid = getRowid($xeTable, row);
7735
7985
  const seq = treeConfig && path ? toTreePathSeq(path) : index + 1;
7736
7986
  const level = nodes ? nodes.length - 1 : 0;
7737
7987
  if (eqEmptyValue(rowid)) {
@@ -7741,9 +7991,9 @@ const Methods = {
7741
7991
  if (isLazy && row[hasChildField] && external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isUndefined(row[childrenField])) {
7742
7992
  row[childrenField] = null;
7743
7993
  }
7744
- let cacheItem = fullAllDataRowIdData[rowid];
7745
- if (isReset || !cacheItem) {
7746
- cacheItem = {
7994
+ let rowRest = fullAllDataRowIdData[rowid];
7995
+ if (!rowRest) {
7996
+ rowRest = {
7747
7997
  row,
7748
7998
  rowid,
7749
7999
  seq,
@@ -7760,26 +8010,22 @@ const Methods = {
7760
8010
  expandHeight: 0
7761
8011
  };
7762
8012
  }
7763
- cacheItem.row = row;
7764
- cacheItem.items = items;
7765
- cacheItem.parent = parentRow;
7766
- cacheItem.level = level;
7767
- cacheItem.index = treeConfig && parentRow ? -1 : index;
7768
- if (isSource) {
7769
- fullDataRowIdMaps[rowid] = cacheItem;
7770
- }
7771
- fullAllDataRowIdMaps[rowid] = cacheItem;
8013
+ rowRest.row = row;
8014
+ rowRest.items = items;
8015
+ rowRest.parent = parentRow;
8016
+ rowRest.level = level;
8017
+ rowRest.index = treeConfig && parentRow ? -1 : index;
8018
+ fullDataRowIdMaps[rowid] = rowRest;
8019
+ fullAllDataRowIdMaps[rowid] = rowRest;
7772
8020
  };
7773
- if (isSource) {
7774
- this.fullDataRowIdData = fullDataRowIdMaps;
7775
- }
7776
- this.fullAllDataRowIdData = fullAllDataRowIdMaps;
8021
+ internalData.fullDataRowIdData = fullDataRowIdMaps;
8022
+ internalData.fullAllDataRowIdData = fullAllDataRowIdMaps;
7777
8023
  if (treeConfig) {
7778
- external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree(tableFullTreeData, handleCache, {
8024
+ external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree(tableFullTreeData, handleRow, {
7779
8025
  children: childrenField
7780
8026
  });
7781
8027
  } else {
7782
- tableFullData.forEach(handleCache);
8028
+ tableFullData.forEach(handleRow);
7783
8029
  }
7784
8030
  },
7785
8031
  cacheSourceMap(fullData) {
@@ -8784,7 +9030,7 @@ const Methods = {
8784
9030
  treeConfig
8785
9031
  } = props;
8786
9032
  const {
8787
- fullDataRowIdData
9033
+ fullAllDataRowIdData
8788
9034
  } = internalData;
8789
9035
  const treeOpts = $xeTable.computeTreeOpts;
8790
9036
  const {
@@ -8800,7 +9046,7 @@ const Methods = {
8800
9046
  rowid = getRowid($xeTable, rowOrRowid);
8801
9047
  }
8802
9048
  if (rowid) {
8803
- const rest = fullDataRowIdData[rowid];
9049
+ const rest = fullAllDataRowIdData[rowid];
8804
9050
  const row = rest ? rest.row : null;
8805
9051
  if (row) {
8806
9052
  return row[transform ? mapChildrenField : childrenField] || [];
@@ -8820,7 +9066,7 @@ const Methods = {
8820
9066
  treeConfig
8821
9067
  } = props;
8822
9068
  const {
8823
- fullDataRowIdData
9069
+ fullAllDataRowIdData
8824
9070
  } = internalData;
8825
9071
  if (rowOrRowid && treeConfig) {
8826
9072
  let rowid;
@@ -8830,7 +9076,7 @@ const Methods = {
8830
9076
  rowid = getRowid($xeTable, rowOrRowid);
8831
9077
  }
8832
9078
  if (rowid) {
8833
- const rest = fullDataRowIdData[rowid];
9079
+ const rest = fullAllDataRowIdData[rowid];
8834
9080
  return rest ? rest.parent : null;
8835
9081
  }
8836
9082
  }
@@ -8849,10 +9095,10 @@ const Methods = {
8849
9095
  const $xeTable = this;
8850
9096
  const internalData = $xeTable;
8851
9097
  const {
8852
- fullDataRowIdData
9098
+ fullAllDataRowIdData
8853
9099
  } = internalData;
8854
9100
  const rowid = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eqNull(cellValue) ? '' : encodeURIComponent(cellValue);
8855
- return fullDataRowIdData[rowid] ? fullDataRowIdData[rowid].row : null;
9101
+ return fullAllDataRowIdData[rowid] ? fullAllDataRowIdData[rowid].row : null;
8856
9102
  },
8857
9103
  /**
8858
9104
  * 根据行获取行的唯一主键
@@ -10849,6 +11095,7 @@ const Methods = {
10849
11095
  * 处理默认勾选
10850
11096
  */
10851
11097
  handleDefaultSelectionChecked() {
11098
+ const $xeTable = this;
10852
11099
  const {
10853
11100
  fullDataRowIdData,
10854
11101
  checkboxOpts
@@ -10858,7 +11105,7 @@ const Methods = {
10858
11105
  checkRowKeys
10859
11106
  } = checkboxOpts;
10860
11107
  if (checkAll) {
10861
- this.handleCheckedAllCheckboxRow(true, true);
11108
+ handleCheckedAllCheckboxRow($xeTable, true, true);
10862
11109
  } else if (checkRowKeys) {
10863
11110
  const defSelection = [];
10864
11111
  checkRowKeys.forEach(rowid => {
@@ -10866,17 +11113,12 @@ const Methods = {
10866
11113
  defSelection.push(fullDataRowIdData[rowid].row);
10867
11114
  }
10868
11115
  });
10869
- this.handleCheckedCheckboxRow(defSelection, true, true);
11116
+ handleCheckedCheckboxRow($xeTable, defSelection, true, true);
10870
11117
  }
10871
11118
  },
10872
11119
  handleCheckedCheckboxRow(rows, value, isForce) {
10873
11120
  const $xeTable = this;
10874
- if (rows && !external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isArray(rows)) {
10875
- rows = [rows];
10876
- }
10877
- $xeTable.handleBatchSelectRows(rows, !!value, isForce);
10878
- $xeTable.checkSelectionStatus();
10879
- return this.$nextTick();
11121
+ return handleCheckedCheckboxRow($xeTable, rows, value, isForce);
10880
11122
  },
10881
11123
  /**
10882
11124
  * 用于多选行,设置行为选中状态,第二个参数为选中与否
@@ -10888,7 +11130,7 @@ const Methods = {
10888
11130
  if (rows && !external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isArray(rows)) {
10889
11131
  rows = [rows];
10890
11132
  }
10891
- return $xeTable.handleCheckedCheckboxRow(rows, checked, true);
11133
+ return handleCheckedCheckboxRow($xeTable, rows, checked, true);
10892
11134
  },
10893
11135
  setCheckboxRowKey(keys, checked) {
10894
11136
  const $xeTable = this;
@@ -10906,7 +11148,7 @@ const Methods = {
10906
11148
  rows.push(rowRest.row);
10907
11149
  }
10908
11150
  });
10909
- return $xeTable.handleCheckedCheckboxRow(rows, checked, true);
11151
+ return handleCheckedCheckboxRow($xeTable, rows, checked, true);
10910
11152
  },
10911
11153
  isCheckedByCheckboxRow(row) {
10912
11154
  const $xeTable = this;
@@ -11002,7 +11244,7 @@ const Methods = {
11002
11244
  if (indeterminateField) {
11003
11245
  external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().set(row, indeterminateField, false);
11004
11246
  }
11005
- $xeTable.handleCheckboxReserveRow(row, checked);
11247
+ handleCheckboxReserveRow($xeTable, row, checked);
11006
11248
  }
11007
11249
  }, {
11008
11250
  children: transform ? mapChildrenField : childrenField
@@ -11016,7 +11258,7 @@ const Methods = {
11016
11258
  row
11017
11259
  })) {
11018
11260
  external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().set(row, checkField, checked);
11019
- $xeTable.handleCheckboxReserveRow(row, checked);
11261
+ handleCheckboxReserveRow($xeTable, row, checked);
11020
11262
  }
11021
11263
  });
11022
11264
  }
@@ -11038,7 +11280,7 @@ const Methods = {
11038
11280
  delete selectRowMaps[rowid];
11039
11281
  }
11040
11282
  }
11041
- $xeTable.handleCheckboxReserveRow(row, checked);
11283
+ handleCheckboxReserveRow($xeTable, row, checked);
11042
11284
  }
11043
11285
  }, {
11044
11286
  children: transform ? mapChildrenField : childrenField
@@ -11061,7 +11303,7 @@ const Methods = {
11061
11303
  delete selectRowMaps[rowid];
11062
11304
  }
11063
11305
  }
11064
- $xeTable.handleCheckboxReserveRow(row, checked);
11306
+ handleCheckboxReserveRow($xeTable, row, checked);
11065
11307
  }
11066
11308
  });
11067
11309
  reactData.selectCheckboxMaps = selectRowMaps;
@@ -11105,6 +11347,7 @@ const Methods = {
11105
11347
  }
11106
11348
  },
11107
11349
  triggerCheckRowEvent(evnt, params, checked) {
11350
+ const $xeTable = this;
11108
11351
  const {
11109
11352
  checkboxOpts,
11110
11353
  afterFullData
@@ -11129,7 +11372,7 @@ const Methods = {
11129
11372
  if (_rowIndex !== _firstRowIndex) {
11130
11373
  this.setAllCheckboxRow(false);
11131
11374
  const rangeRows = _rowIndex < _firstRowIndex ? afterFullData.slice(_rowIndex, _firstRowIndex + 1) : afterFullData.slice(_firstRowIndex, _rowIndex + 1);
11132
- this.handleCheckedCheckboxRow(rangeRows, true, false);
11375
+ handleCheckedCheckboxRow($xeTable, rangeRows, true, false);
11133
11376
  this.emitEvent('checkbox-range-select', Object.assign({
11134
11377
  rangeRecords: rangeRows
11135
11378
  }, params), evnt);
@@ -11167,168 +11410,13 @@ const Methods = {
11167
11410
  $xeTable.checkSelectionStatus();
11168
11411
  return $xeTable.$nextTick();
11169
11412
  },
11170
- handleCheckedAllCheckboxRow(checked, isForce) {
11171
- const $xeTable = this;
11172
- const reactData = $xeTable;
11173
- const {
11174
- afterFullData,
11175
- treeConfig,
11176
- treeOpts,
11177
- selectCheckboxMaps,
11178
- checkboxReserveRowMap,
11179
- checkboxOpts,
11180
- afterFullRowMaps
11181
- } = this;
11182
- const {
11183
- checkField,
11184
- reserve,
11185
- checkStrictly,
11186
- checkMethod
11187
- } = checkboxOpts;
11188
- const indeterminateField = checkboxOpts.indeterminateField || checkboxOpts.halfField;
11189
- const childrenField = treeOpts.children || treeOpts.childrenField;
11190
- const selectRowMaps = {};
11191
- // 疑惑!
11192
- if (!treeConfig) {
11193
- external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().each(selectCheckboxMaps, (row, rowid) => {
11194
- if (!afterFullRowMaps[rowid]) {
11195
- selectRowMaps[rowid] = row;
11196
- }
11197
- });
11198
- }
11199
- // 疑惑!
11200
- if (checkStrictly) {
11201
- this.isAllSelected = checked;
11202
- } else {
11203
- /**
11204
- * 绑定属性方式(高性能,有污染)
11205
- * 必须在行数据存在对应的属性,否则将不响应
11206
- */
11207
- if (checkField) {
11208
- const checkValFn = row => {
11209
- if (isForce || !checkMethod || checkMethod({
11210
- row
11211
- })) {
11212
- if (checked) {
11213
- selectRowMaps[getRowid(this, row)] = row;
11214
- }
11215
- external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().set(row, checkField, checked);
11216
- }
11217
- if (treeConfig && indeterminateField) {
11218
- external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().set(row, indeterminateField, false);
11219
- }
11220
- };
11221
- // 如果存在选中方法
11222
- // 如果方法成立,则更新值,否则忽略该数据
11223
- if (treeConfig) {
11224
- external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree(afterFullData, checkValFn, {
11225
- children: childrenField
11226
- });
11227
- } else {
11228
- afterFullData.forEach(checkValFn);
11229
- }
11230
- } else {
11231
- /**
11232
- * 默认方式(低性能,无污染)
11233
- * 无需任何属性,直接绑定
11234
- */
11235
- if (treeConfig) {
11236
- if (checked) {
11237
- /**
11238
- * 如果是树勾选
11239
- * 如果方法成立,则添加到临时集合中
11240
- */
11241
- external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree(afterFullData, row => {
11242
- if (isForce || !checkMethod || checkMethod({
11243
- row
11244
- })) {
11245
- selectRowMaps[getRowid(this, row)] = row;
11246
- }
11247
- }, {
11248
- children: childrenField
11249
- });
11250
- } else {
11251
- /**
11252
- * 如果是树取消
11253
- * 如果方法成立,则不添加到临时集合中
11254
- */
11255
- if (!isForce && checkMethod) {
11256
- external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree(afterFullData, row => {
11257
- const rowid = getRowid(this, row);
11258
- if (checkMethod({
11259
- row
11260
- }) ? 0 : selectCheckboxMaps[rowid]) {
11261
- selectRowMaps[rowid] = row;
11262
- }
11263
- }, {
11264
- children: childrenField
11265
- });
11266
- }
11267
- }
11268
- } else {
11269
- if (checked) {
11270
- /**
11271
- * 如果是行勾选
11272
- * 如果存在选中方法且成立或者本身已勾选,则添加到临时集合中
11273
- * 如果不存在选中方法,则添加所有数据到临时集合中
11274
- */
11275
- if (!isForce && checkMethod) {
11276
- afterFullData.forEach(row => {
11277
- const rowid = getRowid(this, row);
11278
- if (selectCheckboxMaps[rowid] || checkMethod({
11279
- row
11280
- })) {
11281
- selectRowMaps[rowid] = row;
11282
- }
11283
- });
11284
- } else {
11285
- afterFullData.forEach(row => {
11286
- selectRowMaps[getRowid(this, row)] = row;
11287
- });
11288
- }
11289
- } else {
11290
- /**
11291
- * 如果是行取消
11292
- * 如果方法成立,则不添加到临时集合中;如果方法不成立则判断当前是否已勾选,如果已被勾选则添加到新集合中
11293
- * 如果不存在选中方法,无需处理,临时集合默认为空
11294
- */
11295
- if (!isForce && checkMethod) {
11296
- afterFullData.forEach(row => {
11297
- const rowid = getRowid(this, row);
11298
- if (checkMethod({
11299
- row
11300
- }) ? 0 : selectCheckboxMaps[rowid]) {
11301
- selectRowMaps[rowid] = row;
11302
- }
11303
- });
11304
- }
11305
- }
11306
- }
11307
- }
11308
- if (reserve) {
11309
- if (checked) {
11310
- external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().each(selectRowMaps, (row, rowid) => {
11311
- checkboxReserveRowMap[rowid] = row;
11312
- });
11313
- } else {
11314
- afterFullData.forEach(row => this.handleCheckboxReserveRow(row, false));
11315
- }
11316
- }
11317
- this.selectCheckboxMaps = checkField ? {} : selectRowMaps;
11318
- }
11319
- reactData.isAllSelected = checked;
11320
- reactData.isIndeterminate = false;
11321
- this.treeIndeterminateMaps = {};
11322
- this.treeIndeterminateRowMaps = {};
11323
- this.checkSelectionStatus();
11324
- return this.$nextTick();
11325
- },
11326
11413
  /**
11327
11414
  * 用于多选行,设置所有行的选中状态
11328
11415
  * @param {Boolean} value 是否选中
11329
11416
  */
11330
11417
  setAllCheckboxRow(value) {
11331
- return this.handleCheckedAllCheckboxRow(value, true);
11418
+ const $xeTable = this;
11419
+ return handleCheckedAllCheckboxRow($xeTable, value, true);
11332
11420
  },
11333
11421
  updateCheckboxStatus() {
11334
11422
  const $xeTable = this;
@@ -11507,57 +11595,6 @@ const Methods = {
11507
11595
  $xeTable.updateCheckboxStatus();
11508
11596
  $xeTable.updateAllCheckboxStatus();
11509
11597
  },
11510
- // 还原展开、选中等相关状态
11511
- handleReserveStatus() {
11512
- const $xeTable = this;
11513
- const {
11514
- expandColumn,
11515
- treeOpts,
11516
- treeConfig,
11517
- fullDataRowIdData,
11518
- fullAllDataRowIdData,
11519
- currentRow,
11520
- selectRadioRow,
11521
- radioReserveRow,
11522
- radioOpts,
11523
- checkboxOpts,
11524
- selectCheckboxMaps,
11525
- rowExpandedMaps,
11526
- treeExpandedMaps,
11527
- expandOpts
11528
- } = this;
11529
- // 单选框
11530
- if (selectRadioRow && !fullAllDataRowIdData[getRowid($xeTable, selectRadioRow)]) {
11531
- this.selectRadioRow = null; // 刷新单选行状态
11532
- }
11533
- // 还原保留选中状态
11534
- if (radioOpts.reserve && radioReserveRow) {
11535
- const rowid = getRowid(this, radioReserveRow);
11536
- if (fullDataRowIdData[rowid]) {
11537
- this.handleCheckedRadioRow(fullDataRowIdData[rowid].row, true);
11538
- }
11539
- }
11540
- // 复选框
11541
- this.selectCheckboxMaps = getRecoverRowMaps(this, selectCheckboxMaps); // 刷新多选行状态
11542
- // 还原保留选中状态
11543
- if (checkboxOpts.reserve) {
11544
- this.handleCheckedCheckboxRow(handleReserveRow(this, this.checkboxReserveRowMap), true, true);
11545
- }
11546
- if (currentRow && !this.fullAllDataRowIdData[getRowid($xeTable, currentRow)]) {
11547
- this.currentRow = null; // 刷新当前行状态
11548
- }
11549
- // 行展开
11550
- this.rowExpandedMaps = expandColumn ? getRecoverRowMaps(this, rowExpandedMaps) : []; // 刷新行展开状态
11551
- // 还原保留状态
11552
- if (expandColumn && expandOpts.reserve) {
11553
- this.setRowExpand(handleReserveRow(this, this.rowExpandedReserveRowMap), true);
11554
- }
11555
- // 树展开
11556
- this.treeExpandedMaps = treeConfig ? getRecoverRowMaps(this, treeExpandedMaps) : []; // 刷新树展开状态
11557
- if (treeConfig && treeOpts.reserve) {
11558
- this.setTreeExpand(handleReserveRow(this, this.treeExpandedReserveRowMap), true);
11559
- }
11560
- },
11561
11598
  /**
11562
11599
  * 获取单选框保留选中的行
11563
11600
  */
@@ -11599,14 +11636,6 @@ const Methods = {
11599
11636
  this.radioReserveRow = null;
11600
11637
  return this.$nextTick();
11601
11638
  },
11602
- handleRadioReserveRow(row) {
11603
- const {
11604
- radioOpts
11605
- } = this;
11606
- if (radioOpts.reserve) {
11607
- this.radioReserveRow = row;
11608
- }
11609
- },
11610
11639
  /**
11611
11640
  * 获取复选框保留选中的行
11612
11641
  */
@@ -11669,12 +11698,13 @@ const Methods = {
11669
11698
  }
11670
11699
  },
11671
11700
  handleCheckAllEvent(evnt, value) {
11672
- this.handleCheckedAllCheckboxRow(value);
11701
+ const $xeTable = this;
11702
+ handleCheckedAllCheckboxRow($xeTable, value);
11673
11703
  if (evnt) {
11674
- this.emitEvent('checkbox-all', {
11675
- records: this.getCheckboxRecords(),
11676
- reserves: this.getCheckboxReserveRecords(),
11677
- indeterminates: this.getCheckboxIndeterminateRecords(),
11704
+ $xeTable.dispatchEvent('checkbox-all', {
11705
+ records: $xeTable.getCheckboxRecords(),
11706
+ reserves: $xeTable.getCheckboxReserveRecords(),
11707
+ indeterminates: $xeTable.getCheckboxIndeterminateRecords(),
11678
11708
  checked: value
11679
11709
  }, evnt);
11680
11710
  }
@@ -11683,6 +11713,7 @@ const Methods = {
11683
11713
  * 多选,选中所有事件
11684
11714
  */
11685
11715
  triggerCheckAllEvent(evnt, value) {
11716
+ const $xeTable = this;
11686
11717
  const {
11687
11718
  checkboxOpts
11688
11719
  } = this;
@@ -11695,7 +11726,7 @@ const Methods = {
11695
11726
  if (evnt) {
11696
11727
  evnt.stopPropagation();
11697
11728
  }
11698
- this.handleCheckAllEvent(evnt, value);
11729
+ $xeTable.handleCheckAllEvent(evnt, value);
11699
11730
  },
11700
11731
  /**
11701
11732
  * 多选,切换所有行的选中状态
@@ -11749,6 +11780,7 @@ const Methods = {
11749
11780
  * 处理单选框默认勾选
11750
11781
  */
11751
11782
  handleDefaultRadioChecked() {
11783
+ const $xeTable = this;
11752
11784
  const {
11753
11785
  radioOpts,
11754
11786
  fullDataRowIdData
@@ -11759,7 +11791,7 @@ const Methods = {
11759
11791
  } = radioOpts;
11760
11792
  if (rowid) {
11761
11793
  if (fullDataRowIdData[rowid]) {
11762
- this.handleCheckedRadioRow(fullDataRowIdData[rowid].row, true);
11794
+ handleCheckedRadioRow($xeTable, fullDataRowIdData[rowid].row, true);
11763
11795
  }
11764
11796
  if (reserve) {
11765
11797
  const rowkey = getRowkey(this);
@@ -11773,6 +11805,7 @@ const Methods = {
11773
11805
  * 单选,行选中事件
11774
11806
  */
11775
11807
  triggerRadioRowEvent(evnt, params) {
11808
+ const $xeTable = this;
11776
11809
  const {
11777
11810
  selectRadioRow: oldValue,
11778
11811
  radioOpts
@@ -11790,7 +11823,7 @@ const Methods = {
11790
11823
  let newValue = row;
11791
11824
  let isChange = oldValue !== newValue;
11792
11825
  if (isChange) {
11793
- this.handleCheckedRadioRow(newValue);
11826
+ handleCheckedRadioRow($xeTable, newValue);
11794
11827
  } else if (!radioOpts.strict) {
11795
11828
  isChange = oldValue === newValue;
11796
11829
  if (isChange) {
@@ -11889,28 +11922,13 @@ const Methods = {
11889
11922
  }
11890
11923
  return false;
11891
11924
  },
11892
- handleCheckedRadioRow(row, isForce) {
11893
- const {
11894
- radioOpts
11895
- } = this;
11896
- const {
11897
- checkMethod
11898
- } = radioOpts;
11899
- if (row && (isForce || !checkMethod || checkMethod({
11900
- row
11901
- }))) {
11902
- this.selectRadioRow = row;
11903
- this.handleRadioReserveRow(row);
11904
- }
11905
- return this.$nextTick();
11906
- },
11907
11925
  /**
11908
11926
  * 用于单选行,设置某一行为选中状态
11909
11927
  * @param {Row} row 行对象
11910
11928
  */
11911
11929
  setRadioRow(row) {
11912
11930
  const $xeTable = this;
11913
- return $xeTable.handleCheckedRadioRow(row, true);
11931
+ return handleCheckedRadioRow($xeTable, row, true);
11914
11932
  },
11915
11933
  /**
11916
11934
  * 用于单选行,设置某一行为选中状态
@@ -11924,7 +11942,7 @@ const Methods = {
11924
11942
  } = internalData;
11925
11943
  const rowRest = fullAllDataRowIdData[rowid];
11926
11944
  if (rowRest) {
11927
- return $xeTable.handleCheckedRadioRow(rowRest.row, true);
11945
+ return handleCheckedRadioRow($xeTable, rowRest.row, true);
11928
11946
  }
11929
11947
  return $xeTable.$nextTick();
11930
11948
  },
@@ -13830,9 +13848,6 @@ const Methods = {
13830
13848
  const $xeTable = this;
13831
13849
  const reactData = $xeTable;
13832
13850
  const internalData = $xeTable;
13833
- const tExpandedMaps = {
13834
- ...reactData.treeExpandedMaps
13835
- };
13836
13851
  const {
13837
13852
  fullAllDataRowIdData
13838
13853
  } = internalData;
@@ -13840,7 +13855,11 @@ const Methods = {
13840
13855
  const {
13841
13856
  transform
13842
13857
  } = treeOpts;
13858
+ let tExpandedMaps = {};
13843
13859
  if (rows) {
13860
+ tExpandedMaps = {
13861
+ ...reactData.treeExpandedMaps
13862
+ };
13844
13863
  if (!external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isArray(rows)) {
13845
13864
  rows = [rows];
13846
13865
  }
@@ -13854,8 +13873,12 @@ const Methods = {
13854
13873
  }
13855
13874
  }
13856
13875
  });
13876
+ } else {
13877
+ external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().each(fullAllDataRowIdData, rowRest => {
13878
+ rowRest.treeLoaded = false;
13879
+ });
13857
13880
  }
13858
- reactData.treeExpandedMaps = tExpandedMaps;
13881
+ reactData.treeExpandedMaps = {};
13859
13882
  if (transform) {
13860
13883
  handleVirtualTreeToList($xeTable);
13861
13884
  return $xeTable.handleTableData();
@@ -14017,7 +14040,7 @@ const Methods = {
14017
14040
  }
14018
14041
  // 如果当前节点已选中,则展开后子节点也被选中
14019
14042
  if (!checkStrictly && this.isCheckedByCheckboxRow(row)) {
14020
- this.handleCheckedCheckboxRow(childRows, true);
14043
+ handleCheckedCheckboxRow($xeTable, childRows, true);
14021
14044
  }
14022
14045
  return this.$nextTick().then(() => {
14023
14046
  if (transform) {
@@ -19355,6 +19378,7 @@ const {
19355
19378
  columns,
19356
19379
  params: defaultOptions.params
19357
19380
  };
19381
+ const hasEmptyData = defaultOptions.mode === 'empty';
19358
19382
  return h('div', {
19359
19383
  class: 'vxe-table-export--panel'
19360
19384
  }, [topSlot ? h('div', {
@@ -19441,7 +19465,8 @@ const {
19441
19465
  class: 'vxe-table-export--panel-option-row'
19442
19466
  }, [h('vxe-checkbox', {
19443
19467
  props: {
19444
- value: isHeader,
19468
+ value: hasEmptyData || isHeader,
19469
+ disabled: hasEmptyData,
19445
19470
  title: export_panel_getI18n('vxe.export.expHeaderTitle'),
19446
19471
  content: export_panel_getI18n('vxe.export.expOptHeader')
19447
19472
  },
@@ -19464,7 +19489,8 @@ const {
19464
19489
  }
19465
19490
  }), h('vxe-checkbox', {
19466
19491
  props: {
19467
- value: defaultOptions.original,
19492
+ value: hasEmptyData ? false : defaultOptions.original,
19493
+ disabled: hasEmptyData,
19468
19494
  title: export_panel_getI18n('vxe.export.expOriginalTitle'),
19469
19495
  content: export_panel_getI18n('vxe.export.expOptOriginal')
19470
19496
  },
@@ -19492,7 +19518,7 @@ const {
19492
19518
  }), h('vxe-checkbox', {
19493
19519
  props: {
19494
19520
  value: hasMerge && supportMerge && checkedAll ? defaultOptions.isMerge : false,
19495
- disabled: !hasMerge || !supportMerge || !checkedAll,
19521
+ disabled: hasEmptyData || !hasMerge || !supportMerge || !checkedAll,
19496
19522
  title: export_panel_getI18n('vxe.export.expMergeTitle'),
19497
19523
  content: export_panel_getI18n('vxe.export.expOptMerge')
19498
19524
  },
@@ -19516,7 +19542,7 @@ const {
19516
19542
  }), h('vxe-checkbox', {
19517
19543
  props: {
19518
19544
  value: hasTree ? defaultOptions.isAllExpand : false,
19519
- disabled: !hasTree,
19545
+ disabled: hasEmptyData || !hasTree,
19520
19546
  title: export_panel_getI18n('vxe.export.expAllExpandTitle'),
19521
19547
  content: export_panel_getI18n('vxe.export.expOptAllExpand')
19522
19548
  },
@@ -22995,7 +23021,7 @@ function handleExportAndPrint($xeTable, options, isPrint) {
22995
23021
  isMerge: hasMerge,
22996
23022
  useStyle: true,
22997
23023
  current: 'current',
22998
- modes: ['current', 'selected'].concat(proxyOpts.ajax && proxyOpts.ajax.queryAll ? ['all'] : [])
23024
+ modes: ['current', 'selected', 'empty'].concat(proxyOpts.ajax && proxyOpts.ajax.queryAll ? ['all'] : [])
22999
23025
  }, options);
23000
23026
  const types = defOpts.types || external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().keys(exportOpts._typeMaps);
23001
23027
  const modes = defOpts.modes || [];
@@ -23187,7 +23213,7 @@ const convertToRows = originColumns => {
23187
23213
  isMerge: hasMerge,
23188
23214
  useStyle: true,
23189
23215
  current: 'current',
23190
- modes: ['current', 'selected'].concat(proxyOpts.ajax && proxyOpts.ajax.queryAll ? ['all'] : []),
23216
+ modes: ['current', 'selected', 'empty'].concat(proxyOpts.ajax && proxyOpts.ajax.queryAll ? ['all'] : []),
23191
23217
  download: true,
23192
23218
  type: 'csv'
23193
23219
  // filename: '',
@@ -26276,7 +26302,7 @@ function renderBody(h, $xeTable) {
26276
26302
  if (value && value.length >= 50000) {
26277
26303
  warnLog('vxe.error.errLargeData', ['loadData(data), reloadData(data)']);
26278
26304
  }
26279
- this.loadTableData(value || [], true).then(() => {
26305
+ this.loadTableData(value || [], false).then(() => {
26280
26306
  const {
26281
26307
  scrollXLoad,
26282
26308
  scrollYLoad,
@@ -30740,7 +30766,7 @@ const Toolbar = VxeToolbar;
30740
30766
  treeNotImp: '树表格不支持导入',
30741
30767
  treeCrossDrag: '只能拖拽第一层级',
30742
30768
  treeDragChild: '父级不能拖拽到自己的子级中',
30743
- reqPlugin: '可选扩展插件 "{1}" https://vxeui.com/other{0}/#/{1}/install'
30769
+ reqPlugin: '扩展插件未安装 "{1}" https://vxeui.com/other{0}/#/{1}/install'
30744
30770
  },
30745
30771
  table: {
30746
30772
  emptyText: '暂无数据',
@@ -30860,6 +30886,7 @@ const Toolbar = VxeToolbar;
30860
30886
  pdf: 'PDF (*.pdf)'
30861
30887
  },
30862
30888
  modes: {
30889
+ empty: '空数据',
30863
30890
  current: '当前数据(当前页的数据)',
30864
30891
  selected: '选中数据(当前页选中的数据)',
30865
30892
  all: '全量数据(包括所有分页的数据)'