vxe-table 3.20.0-beta.8 → 3.20.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (194) hide show
  1. package/es/grid/src/grid.js +23 -18
  2. package/es/index.css +1 -1
  3. package/es/index.min.css +1 -1
  4. package/es/locale/lang/ar-EG.js +6 -0
  5. package/es/locale/lang/de-DE.js +6 -0
  6. package/es/locale/lang/en-US.js +6 -0
  7. package/es/locale/lang/es-ES.js +6 -0
  8. package/es/locale/lang/fr-FR.js +6 -0
  9. package/es/locale/lang/hu-HU.js +6 -0
  10. package/es/locale/lang/hy-AM.js +6 -0
  11. package/es/locale/lang/id-ID.js +6 -0
  12. package/es/locale/lang/it-IT.js +6 -0
  13. package/es/locale/lang/ja-JP.js +6 -0
  14. package/es/locale/lang/ko-KR.js +6 -0
  15. package/es/locale/lang/ms-MY.js +6 -0
  16. package/es/locale/lang/nb-NO.js +6 -0
  17. package/es/locale/lang/pt-BR.js +6 -0
  18. package/es/locale/lang/ru-RU.js +6 -0
  19. package/es/locale/lang/th-TH.js +6 -0
  20. package/es/locale/lang/ug-CN.js +6 -0
  21. package/es/locale/lang/uk-UA.js +6 -0
  22. package/es/locale/lang/uz-UZ.js +6 -0
  23. package/es/locale/lang/vi-VN.js +6 -0
  24. package/es/locale/lang/zh-CHT.js +6 -0
  25. package/es/locale/lang/zh-CN.js +6 -0
  26. package/es/style.css +1 -1
  27. package/es/style.min.css +1 -1
  28. package/es/table/module/export/mixin.js +15 -1
  29. package/es/table/module/keyboard/mixin.js +18 -8
  30. package/es/table/module/validator/mixin.js +7 -6
  31. package/es/table/render/index.js +11 -0
  32. package/es/table/src/body.js +12 -5
  33. package/es/table/src/columnInfo.js +2 -0
  34. package/es/table/src/methods.js +199 -73
  35. package/es/table/src/props.js +4 -0
  36. package/es/table/src/table.js +68 -7
  37. package/es/table/src/util.js +38 -20
  38. package/es/table/style.css +11 -17
  39. package/es/table/style.min.css +1 -1
  40. package/es/toolbar/src/toolbar.js +10 -5
  41. package/es/ui/index.js +7 -1
  42. package/es/ui/src/log.js +1 -1
  43. package/es/vxe-table/style.css +11 -17
  44. package/es/vxe-table/style.min.css +1 -1
  45. package/lib/grid/src/grid.js +23 -18
  46. package/lib/grid/src/grid.min.js +1 -1
  47. package/lib/index.css +1 -1
  48. package/lib/index.min.css +1 -1
  49. package/lib/index.umd.js +275 -100
  50. package/lib/index.umd.min.js +1 -1
  51. package/lib/locale/lang/ar-EG.js +6 -0
  52. package/lib/locale/lang/ar-EG.min.js +1 -1
  53. package/lib/locale/lang/ar-EG.umd.js +6 -0
  54. package/lib/locale/lang/de-DE.js +6 -0
  55. package/lib/locale/lang/de-DE.min.js +1 -1
  56. package/lib/locale/lang/de-DE.umd.js +6 -0
  57. package/lib/locale/lang/en-US.js +6 -0
  58. package/lib/locale/lang/en-US.min.js +1 -1
  59. package/lib/locale/lang/en-US.umd.js +6 -0
  60. package/lib/locale/lang/es-ES.js +6 -0
  61. package/lib/locale/lang/es-ES.min.js +1 -1
  62. package/lib/locale/lang/es-ES.umd.js +6 -0
  63. package/lib/locale/lang/fr-FR.js +6 -0
  64. package/lib/locale/lang/fr-FR.min.js +1 -1
  65. package/lib/locale/lang/fr-FR.umd.js +6 -0
  66. package/lib/locale/lang/hu-HU.js +6 -0
  67. package/lib/locale/lang/hu-HU.min.js +1 -1
  68. package/lib/locale/lang/hu-HU.umd.js +6 -0
  69. package/lib/locale/lang/hy-AM.js +6 -0
  70. package/lib/locale/lang/hy-AM.min.js +1 -1
  71. package/lib/locale/lang/hy-AM.umd.js +6 -0
  72. package/lib/locale/lang/id-ID.js +6 -0
  73. package/lib/locale/lang/id-ID.min.js +1 -1
  74. package/lib/locale/lang/id-ID.umd.js +6 -0
  75. package/lib/locale/lang/it-IT.js +6 -0
  76. package/lib/locale/lang/it-IT.min.js +1 -1
  77. package/lib/locale/lang/it-IT.umd.js +6 -0
  78. package/lib/locale/lang/ja-JP.js +6 -0
  79. package/lib/locale/lang/ja-JP.min.js +1 -1
  80. package/lib/locale/lang/ja-JP.umd.js +6 -0
  81. package/lib/locale/lang/ko-KR.js +6 -0
  82. package/lib/locale/lang/ko-KR.min.js +1 -1
  83. package/lib/locale/lang/ko-KR.umd.js +6 -0
  84. package/lib/locale/lang/ms-MY.js +6 -0
  85. package/lib/locale/lang/ms-MY.min.js +1 -1
  86. package/lib/locale/lang/ms-MY.umd.js +6 -0
  87. package/lib/locale/lang/nb-NO.js +6 -0
  88. package/lib/locale/lang/nb-NO.min.js +1 -1
  89. package/lib/locale/lang/nb-NO.umd.js +6 -0
  90. package/lib/locale/lang/pt-BR.js +6 -0
  91. package/lib/locale/lang/pt-BR.min.js +1 -1
  92. package/lib/locale/lang/pt-BR.umd.js +6 -0
  93. package/lib/locale/lang/ru-RU.js +6 -0
  94. package/lib/locale/lang/ru-RU.min.js +1 -1
  95. package/lib/locale/lang/ru-RU.umd.js +6 -0
  96. package/lib/locale/lang/th-TH.js +6 -0
  97. package/lib/locale/lang/th-TH.min.js +1 -1
  98. package/lib/locale/lang/th-TH.umd.js +6 -0
  99. package/lib/locale/lang/ug-CN.js +6 -0
  100. package/lib/locale/lang/ug-CN.min.js +1 -1
  101. package/lib/locale/lang/ug-CN.umd.js +6 -0
  102. package/lib/locale/lang/uk-UA.js +6 -0
  103. package/lib/locale/lang/uk-UA.min.js +1 -1
  104. package/lib/locale/lang/uk-UA.umd.js +6 -0
  105. package/lib/locale/lang/uz-UZ.js +6 -0
  106. package/lib/locale/lang/uz-UZ.min.js +1 -1
  107. package/lib/locale/lang/uz-UZ.umd.js +6 -0
  108. package/lib/locale/lang/vi-VN.js +6 -0
  109. package/lib/locale/lang/vi-VN.min.js +1 -1
  110. package/lib/locale/lang/vi-VN.umd.js +6 -0
  111. package/lib/locale/lang/zh-CHT.js +6 -0
  112. package/lib/locale/lang/zh-CHT.min.js +1 -1
  113. package/lib/locale/lang/zh-CHT.umd.js +6 -0
  114. package/lib/locale/lang/zh-CN.js +6 -0
  115. package/lib/locale/lang/zh-CN.min.js +1 -1
  116. package/lib/locale/lang/zh-CN.umd.js +6 -0
  117. package/lib/style.css +1 -1
  118. package/lib/style.min.css +1 -1
  119. package/lib/table/module/export/mixin.js +18 -6
  120. package/lib/table/module/export/mixin.min.js +1 -1
  121. package/lib/table/module/keyboard/mixin.js +18 -4
  122. package/lib/table/module/keyboard/mixin.min.js +1 -1
  123. package/lib/table/module/validator/mixin.js +8 -6
  124. package/lib/table/module/validator/mixin.min.js +1 -1
  125. package/lib/table/render/index.js +15 -0
  126. package/lib/table/render/index.min.js +1 -1
  127. package/lib/table/src/body.js +13 -4
  128. package/lib/table/src/body.min.js +1 -1
  129. package/lib/table/src/columnInfo.js +2 -0
  130. package/lib/table/src/columnInfo.min.js +1 -1
  131. package/lib/table/src/methods.js +806 -14157
  132. package/lib/table/src/methods.min.js +1 -1
  133. package/lib/table/src/props.js +4 -0
  134. package/lib/table/src/props.min.js +1 -1
  135. package/lib/table/src/table.js +78 -6
  136. package/lib/table/src/table.min.js +1 -1
  137. package/lib/table/src/util.js +41 -21
  138. package/lib/table/src/util.min.js +1 -1
  139. package/lib/table/style/style.css +11 -17
  140. package/lib/table/style/style.min.css +1 -1
  141. package/lib/toolbar/src/toolbar.js +10 -5
  142. package/lib/toolbar/src/toolbar.min.js +1 -1
  143. package/lib/ui/index.js +7 -1
  144. package/lib/ui/index.min.js +1 -1
  145. package/lib/ui/src/log.js +1 -1
  146. package/lib/ui/src/log.min.js +1 -1
  147. package/lib/vxe-table/style/style.css +11 -17
  148. package/lib/vxe-table/style/style.min.css +1 -1
  149. package/package.json +2 -2
  150. package/packages/grid/src/grid.ts +23 -18
  151. package/packages/locale/lang/ar-EG.ts +6 -0
  152. package/packages/locale/lang/de-DE.ts +6 -0
  153. package/packages/locale/lang/en-US.ts +6 -0
  154. package/packages/locale/lang/es-ES.ts +6 -0
  155. package/packages/locale/lang/fr-FR.ts +6 -0
  156. package/packages/locale/lang/hu-HU.ts +6 -0
  157. package/packages/locale/lang/hy-AM.ts +6 -0
  158. package/packages/locale/lang/id-ID.ts +6 -0
  159. package/packages/locale/lang/it-IT.ts +6 -0
  160. package/packages/locale/lang/ja-JP.ts +6 -0
  161. package/packages/locale/lang/ko-KR.ts +6 -0
  162. package/packages/locale/lang/ms-MY.ts +6 -0
  163. package/packages/locale/lang/nb-NO.ts +6 -0
  164. package/packages/locale/lang/pt-BR.ts +6 -0
  165. package/packages/locale/lang/ru-RU.ts +6 -0
  166. package/packages/locale/lang/th-TH.ts +6 -0
  167. package/packages/locale/lang/ug-CN.ts +6 -0
  168. package/packages/locale/lang/uk-UA.ts +6 -0
  169. package/packages/locale/lang/uz-UZ.ts +6 -0
  170. package/packages/locale/lang/vi-VN.ts +6 -0
  171. package/packages/locale/lang/zh-CHT.ts +6 -0
  172. package/packages/locale/lang/zh-CN.ts +6 -0
  173. package/packages/table/module/export/mixin.ts +13 -1
  174. package/packages/table/module/keyboard/mixin.ts +21 -12
  175. package/packages/table/module/validator/mixin.ts +7 -6
  176. package/packages/table/render/index.ts +12 -0
  177. package/packages/table/src/body.ts +12 -5
  178. package/packages/table/src/columnInfo.ts +2 -0
  179. package/packages/table/src/methods.ts +192 -72
  180. package/packages/table/src/props.ts +4 -0
  181. package/packages/table/src/table.ts +75 -8
  182. package/packages/table/src/util.ts +43 -19
  183. package/packages/toolbar/src/toolbar.ts +11 -5
  184. package/packages/ui/index.ts +6 -0
  185. package/styles/components/table-module/filter.scss +1 -1
  186. package/styles/components/table-module/menu.scss +4 -9
  187. package/styles/components/table.scss +8 -2
  188. package/styles/theme/base.scss +0 -1
  189. /package/es/{iconfont.1768463274097.ttf → iconfont.1773027250443.ttf} +0 -0
  190. /package/es/{iconfont.1768463274097.woff → iconfont.1773027250443.woff} +0 -0
  191. /package/es/{iconfont.1768463274097.woff2 → iconfont.1773027250443.woff2} +0 -0
  192. /package/lib/{iconfont.1768463274097.ttf → iconfont.1773027250443.ttf} +0 -0
  193. /package/lib/{iconfont.1768463274097.woff → iconfont.1773027250443.woff} +0 -0
  194. /package/lib/{iconfont.1768463274097.woff2 → iconfont.1773027250443.woff2} +0 -0
package/lib/index.umd.js CHANGED
@@ -2005,7 +2005,7 @@ function getClass(property, params) {
2005
2005
  ;// CONCATENATED MODULE: ./packages/ui/index.ts
2006
2006
 
2007
2007
 
2008
- const version = "3.20.0-beta.8";
2008
+ const version = "3.20.0";
2009
2009
  core_.VxeUI.version = version;
2010
2010
  core_.VxeUI.tableVersion = version;
2011
2011
  core_.VxeUI.setConfig({
@@ -2045,6 +2045,12 @@ core_.VxeUI.setConfig({
2045
2045
  isSyncAutoWidth: true,
2046
2046
  minHeight: 18
2047
2047
  },
2048
+ currentRowConfig: {
2049
+ strict: true
2050
+ },
2051
+ currentColumnConfig: {
2052
+ strict: true
2053
+ },
2048
2054
  radioConfig: {
2049
2055
  // trigger: 'default'
2050
2056
  strict: true
@@ -2739,7 +2745,7 @@ function scrollTopTo(diffNum, cb) {
2739
2745
  const {
2740
2746
  log: log_log
2741
2747
  } = core_.VxeUI;
2742
- const log_version = `table v${"3.20.0-beta.8"}`;
2748
+ const log_version = `table v${"3.20.0"}`;
2743
2749
  const warnLog = log_log.create('warn', log_version);
2744
2750
  const errLog = log_log.create('error', log_version);
2745
2751
  ;// CONCATENATED MODULE: ./packages/table/src/columnInfo.ts
@@ -2915,6 +2921,8 @@ class ColumnInfo {
2915
2921
  sortNumber: 0,
2916
2922
  renderSortNumber: 0,
2917
2923
  renderAggFn: '',
2924
+ renderAggDigits: null,
2925
+ renderAggFormat: null,
2918
2926
  renderFixed: '',
2919
2927
  renderVisible: false,
2920
2928
  renderWidth: 0,
@@ -3049,6 +3057,7 @@ function createInternalData() {
3049
3057
  fullDataRowIdData: {},
3050
3058
  // 数据集(仅可视)
3051
3059
  visibleDataRowIdData: {},
3060
+ keepUpdateFieldMaps: {},
3052
3061
  footerFullDataRowData: {},
3053
3062
  // 渲染中缓存数据
3054
3063
  sourceDataRowIdData: {},
@@ -3104,6 +3113,7 @@ function createInternalData() {
3104
3113
  }
3105
3114
  function createReactData() {
3106
3115
  return {
3116
+ updateColFlag: 0,
3107
3117
  // 低性能的静态列
3108
3118
  staticColumns: [],
3109
3119
  // 渲染的列分组
@@ -3485,11 +3495,23 @@ function restoreScrollLocation($xeTable, scrollLeft, scrollTop) {
3485
3495
  function toTreePathSeq(path) {
3486
3496
  return path.map((num, i) => i % 2 === 0 ? Number(num) + 1 : '.').join('');
3487
3497
  }
3498
+ function getRowUniqueId() {
3499
+ return external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().uniqueId('row_');
3500
+ }
3488
3501
  /**
3489
3502
  * 生成行的唯一主键
3490
3503
  */
3491
- function getRowUniqueId() {
3492
- return external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().uniqueId('row_');
3504
+ function createRowId(rowOpts, row, keyField) {
3505
+ const {
3506
+ createKeyMethod
3507
+ } = rowOpts;
3508
+ if (createKeyMethod) {
3509
+ return '' + createKeyMethod({
3510
+ row,
3511
+ keyField
3512
+ });
3513
+ }
3514
+ return getRowUniqueId();
3493
3515
  }
3494
3516
  function hasDeepKey(rowKey) {
3495
3517
  return rowKey.indexOf('.') > -1;
@@ -3517,11 +3539,12 @@ function createHandleUpdateRowId($xeTable) {
3517
3539
  isCurrDeepKey,
3518
3540
  currKeyField
3519
3541
  } = internalData;
3542
+ const rowOpts = $xeTable.computeRowOpts;
3520
3543
  const updateRId = isCurrDeepKey ? updateDeepRowKey : updateFastRowKey;
3521
3544
  return {
3522
3545
  rowKey: currKeyField,
3523
3546
  handleUpdateRowId(row) {
3524
- return row ? updateRId(row, currKeyField) : '';
3547
+ return row ? updateRId(rowOpts, row, currKeyField) : '';
3525
3548
  }
3526
3549
  };
3527
3550
  }
@@ -3546,10 +3569,11 @@ function encodeRowid(rowVal) {
3546
3569
  function getDeepRowIdByKey(row, rowKey) {
3547
3570
  return external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(row, rowKey);
3548
3571
  }
3549
- function updateDeepRowKey(row, rowKey) {
3572
+ function updateDeepRowKey(rowOpts, row, rowKey) {
3550
3573
  let rowid = encodeRowid(getDeepRowIdByKey(row, rowKey));
3551
3574
  if (eqEmptyValue(rowid)) {
3552
- rowid = getRowUniqueId();
3575
+ const newRowid = createRowId(rowOpts, row, rowKey);
3576
+ rowid = '' + newRowid;
3553
3577
  external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().set(row, rowKey, rowid);
3554
3578
  }
3555
3579
  return rowid;
@@ -3557,11 +3581,12 @@ function updateDeepRowKey(row, rowKey) {
3557
3581
  function getFastRowIdByKey(row, rowKey) {
3558
3582
  return row[rowKey];
3559
3583
  }
3560
- function updateFastRowKey(row, rowKey) {
3584
+ function updateFastRowKey(rowOpts, row, rowKey) {
3561
3585
  let rowid = encodeRowid(getFastRowIdByKey(row, rowKey));
3562
3586
  if (eqEmptyValue(rowid)) {
3563
- rowid = getRowUniqueId();
3564
- row[rowKey] = rowid;
3587
+ const newRowid = createRowId(rowOpts, row, rowKey);
3588
+ rowid = '' + newRowid;
3589
+ row[rowKey] = newRowid;
3565
3590
  }
3566
3591
  return rowid;
3567
3592
  }
@@ -3878,7 +3903,7 @@ function rowToVisible($xeTable, row) {
3878
3903
  }
3879
3904
  return Promise.resolve();
3880
3905
  }
3881
- function colToVisible($xeTable, column, row) {
3906
+ function colToVisible($xeTable, isForce, column, row) {
3882
3907
  const reactData = $xeTable;
3883
3908
  const internalData = $xeTable;
3884
3909
  const {
@@ -3910,27 +3935,31 @@ function colToVisible($xeTable, column, row) {
3910
3935
  const tdOffsetLeft = tdElem.offsetLeft + (scrollXLoad ? scrollXLeft : 0);
3911
3936
  const cellWidth = tdElem.clientWidth;
3912
3937
  // 检测是否在可视区中
3913
- if (tdOffsetLeft < bodyScrollLeft + leftFixedWidth) {
3914
- return $xeTable.scrollTo(tdOffsetLeft - leftFixedWidth - 1);
3915
- } else if (tdOffsetLeft + cellWidth - bodyScrollLeft > bodyWidth - rightFixedWidth) {
3916
- return $xeTable.scrollTo(tdOffsetLeft + cellWidth - (bodyWidth - rightFixedWidth - 1));
3938
+ if (isForce || !(tdOffsetLeft <= bodyScrollLeft + leftFixedWidth && tdOffsetLeft + cellWidth > bodyScrollLeft + leftFixedWidth) && !(tdOffsetLeft >= bodyScrollLeft + leftFixedWidth && tdOffsetLeft < bodyScrollLeft + bodyWidth - rightFixedWidth)) {
3939
+ if (tdOffsetLeft < bodyScrollLeft + leftFixedWidth) {
3940
+ return $xeTable.scrollTo(tdOffsetLeft - leftFixedWidth - 1);
3941
+ } else if (tdOffsetLeft + cellWidth - bodyScrollLeft > bodyWidth - rightFixedWidth) {
3942
+ return $xeTable.scrollTo(tdOffsetLeft + cellWidth - (bodyWidth - rightFixedWidth - 1));
3943
+ }
3917
3944
  }
3918
3945
  } else {
3919
- // 检测是否在虚拟渲染可视区中
3920
3946
  if (scrollXLoad) {
3921
- let scrollLeft = 0;
3947
+ let tdOffsetLeft = 0;
3922
3948
  const cellWidth = column.renderWidth;
3923
3949
  for (let i = 0; i < visibleColumn.length; i++) {
3924
3950
  const currCol = visibleColumn[i];
3925
3951
  if (currCol === column || currCol.id === column.id) {
3926
3952
  break;
3927
3953
  }
3928
- scrollLeft += currCol.renderWidth;
3954
+ tdOffsetLeft += currCol.renderWidth;
3929
3955
  }
3930
- if (scrollLeft < bodyScrollLeft) {
3931
- return $xeTable.scrollTo(scrollLeft - leftFixedWidth - 1);
3956
+ // 检测是否在可视区中
3957
+ if (isForce || !(tdOffsetLeft <= bodyScrollLeft + leftFixedWidth && tdOffsetLeft + cellWidth > bodyScrollLeft + leftFixedWidth) && !(tdOffsetLeft >= bodyScrollLeft + leftFixedWidth && tdOffsetLeft < bodyScrollLeft + bodyWidth - rightFixedWidth)) {
3958
+ if (tdOffsetLeft < bodyScrollLeft) {
3959
+ return $xeTable.scrollTo(tdOffsetLeft - leftFixedWidth - 1);
3960
+ }
3961
+ return $xeTable.scrollTo(tdOffsetLeft + cellWidth - (bodyWidth - rightFixedWidth - 1));
3932
3962
  }
3933
- return $xeTable.scrollTo(scrollLeft + cellWidth - (bodyWidth - rightFixedWidth - 1));
3934
3963
  }
3935
3964
  }
3936
3965
  }
@@ -6041,6 +6070,8 @@ const tableProps = {
6041
6070
  rowConfig: Object,
6042
6071
  // 数据聚合配置项
6043
6072
  aggregateConfig: Object,
6073
+ // 聚合函数计算精度配置项
6074
+ aggregateAccuracyConfig: Object,
6044
6075
  /**
6045
6076
  * 已废弃,被 aggregateConfig 替换
6046
6077
  * @deprecated
@@ -6106,6 +6137,8 @@ const tableProps = {
6106
6137
  fnrConfig: Object,
6107
6138
  // 编辑配置项
6108
6139
  editConfig: [Boolean, Object],
6140
+ // 数据状态监听配置项
6141
+ editDirtyConfig: Object,
6109
6142
  // 校验配置项
6110
6143
  validConfig: Object,
6111
6144
  // 校验规则配置项
@@ -6208,12 +6241,12 @@ const{getConfig: methods_getConfig,getI18n: methods_getI18n,renderer: methods_re
6208
6241
  if(isCustomResizable&&resizableData||isCustomSort&&sortData||isCustomVisible&&visibleData||isCustomFixed&&fixedData||isCustomAggGroup&&aggGroupData||isCustomAggFunc&&aggFuncData){const sortColMaps={};if(isCustomSort&&sortData){// 转换兼容老版本数据,即将废弃兼容
6209
6242
  if(!external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isArray(sortData)){const sortRests=[];external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().each(sortData,(index,colKey)=>{sortRests.push({key:colKey,index});});sortData=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().orderBy(sortRests,{field:'index',order:'asc'}).map(item=>({k:item.key}));}let colNum=1;external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree(sortData,(sObj,index,sOjs,path,pSObj)=>{sortColMaps[sObj.k]={key:sObj.k,sNum:colNum++,pKey:pSObj?pSObj.k:null};},{children:'c'});}const colKeyMaps={};const allCols=[];const aggGroupConfs=[];external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree(collectColumn,(column,index,items,path,parentColumn)=>{const colKey=column.getKey();// 支持一级
6210
6243
  if(!parentColumn){if(isCustomFixed&&fixedData&&fixedData[colKey]!==undefined){column.fixed=fixedData[colKey];}}if(isCustomResizable&&resizableData&&external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isNumber(resizableData[colKey])){column.resizeWidth=resizableData[colKey];}if(isCustomVisible&&visibleData&&external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isBoolean(visibleData[colKey])){column.visible=visibleData[colKey];}if(isCustomAggFunc&&aggFuncData&&(aggregateConfig||rowGroupConfig)&&aggFuncData[colKey]){column.aggFunc=aggFuncData[colKey];}if(isCustomAggGroup&&aggGroupData&&aggGroupData[colKey]){aggGroupConfs.push({field:column.field});}colKeyMaps[colKey]=column;allCols.push(column);});if((aggregateConfig||rowGroupConfig)&&aggGroupConfs.length){const groupRest=handleGroupData($xeTable,internalData.tableFullData,aggGroupConfs);internalData.tableFullTreeData=[];internalData.tableFullGroupData=groupRest.treeData;reactData.isRowGroupStatus=true;reactData.rowGroupList=aggGroupConfs;$xeTable.cacheRowMap(false);}// 如果自定义了顺序
6211
- if(isCustomSort&&sortData){allCols.forEach(column=>{const colKey=column.getKey();const scItem=sortColMaps[colKey];if(scItem){const parentColumn=scItem.pKey?colKeyMaps[scItem.pKey]:null;column.parentId=parentColumn?parentColumn.id:null;column.renderSortNumber=scItem.sNum;}});const newCollectCols=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toArrayTree(external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().orderBy(allCols,'renderSortNumber'),{key:'id',parentKey:'parentId',children:'children'});internalData.collectColumn=newCollectCols;internalData.tableFullColumn=getColumnList(newCollectCols);}reactData.isCustomStatus=true;}else{reactData.isCustomStatus=false;}}/**
6244
+ if(isCustomSort&&sortData){allCols.forEach(column=>{const colKey=column.getKey();const scItem=sortColMaps[colKey];if(scItem){const parentColumn=scItem.pKey?colKeyMaps[scItem.pKey]:null;column.parentId=parentColumn?parentColumn.id:null;column.renderSortNumber=scItem.sNum;}});const newCollectCols=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toArrayTree(external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().orderBy(allCols,'renderSortNumber'),{key:'id',parentKey:'parentId',children:'children'});internalData.collectColumn=newCollectCols;internalData.tableFullColumn=getColumnList(newCollectCols);reactData.updateColFlag++;}reactData.isCustomStatus=true;}else{reactData.isCustomStatus=false;}}/**
6212
6245
  * 还原自定义列操作状态
6213
6246
  */function restoreCustomStorage($xeTable){const props=$xeTable;const{customConfig}=props;const tableId=$xeTable.computeTableId;const customOpts=$xeTable.computeCustomOpts;const{storage,restoreStore,storeOptions}=customOpts;const isAllCustom=storage===true;const storageOpts=Object.assign({},isAllCustom?{}:storage||{},storeOptions);const isCustomResizable=hangleStorageDefaultValue(storageOpts.resizable,isAllCustom);const isCustomVisible=hangleStorageDefaultValue(storageOpts.visible,isAllCustom);const isCustomFixed=hangleStorageDefaultValue(storageOpts.fixed,isAllCustom);const isCustomSort=hangleStorageDefaultValue(storageOpts.sort,isAllCustom);const isCustomAggFunc=hangleStorageDefaultValue(storageOpts.aggFunc,isAllCustom);if(storage&&(customConfig?isEnableConf(customOpts):customOpts.enabled)&&(isCustomResizable||isCustomVisible||isCustomFixed||isCustomSort||isCustomAggFunc)){if(!tableId){errLog('vxe.error.reqProp',['id']);return;}const storeData=getCustomStorageMap(tableId);if(restoreStore){return Promise.resolve(restoreStore({$table:$xeTable,id:tableId,type:'restore',storeData})).then(storeData=>{if(!storeData){return;}return handleCustomRestore($xeTable,storeData);}).catch(e=>e);}else{return handleCustomRestore($xeTable,storeData);}}}/**
6214
6247
  * 更新数据列的 Map
6215
6248
  * 牺牲数据组装的耗时,用来换取使用过程中的流畅
6216
- */function cacheColumnMap($xeTable){const props=$xeTable;const reactData=$xeTable;const internalData=$xeTable;const{treeConfig,showOverflow}=props;const{tableFullColumn,collectColumn}=internalData;const fullColIdData=internalData.fullColumnIdData={};const fullColFieldData=internalData.fullColumnFieldData={};const mouseOpts=$xeTable.computeMouseOpts;const expandOpts=$xeTable.computeExpandOpts;const columnOpts=$xeTable.computeColumnOpts;const columnDragOpts=$xeTable.computeColumnDragOpts;const virtualYOpts=$xeTable.computeVirtualYOpts;const{isCrossDrag,isSelfToChildDrag}=columnDragOpts;const customOpts=$xeTable.computeCustomOpts;const treeOpts=$xeTable.computeTreeOpts;const{storage}=customOpts;const rowOpts=$xeTable.computeRowOpts;const isGroup=collectColumn.some(hasChildrenList);let isAllOverflow=!!showOverflow;let rowGroupColumn;let expandColumn;let treeNodeColumn;let checkboxColumn;let radioColumn;let htmlColumn;let hasFixed;const handleFunc=(column,index,items,path,parentColumn)=>{const{id:colid,field,fixed,type,treeNode,rowGroupNode}=column;const rest={$index:-1,_index:-1,column,colid,index,items,parent:parentColumn||null,width:0,oLeft:0};if(field){if(fullColFieldData[field]){errLog('vxe.error.colRepet',['field',field]);}fullColFieldData[field]=rest;}else{if(storage&&!type){errLog('vxe.error.reqSupportProp',['storage',`[${type?`type=${type}`:`title=${column.getTitle()}`}]field=?`]);}if(columnOpts.drag&&(isCrossDrag||isSelfToChildDrag)){errLog('vxe.error.reqSupportProp',['column-drag-config.isCrossDrag | column-drag-config.isSelfToChildDrag',`${column.getTitle()||type||''} -> field=?`]);}}if(!hasFixed&&fixed){hasFixed=fixed;}if(!htmlColumn&&type==='html'){htmlColumn=column;}if(treeNode){if(treeNodeColumn){warnLog('vxe.error.colRepet',['tree-node',treeNode]);}if(!treeNodeColumn){treeNodeColumn=column;}}if(rowGroupNode){if(treeNodeColumn){warnLog('vxe.error.colRepet',['row-group-node',rowGroupNode]);}if(!rowGroupColumn){rowGroupColumn=column;}}if(type==='expand'){if(expandColumn){warnLog('vxe.error.colRepet',['type',type]);}if(!expandColumn){expandColumn=column;}}if(type==='checkbox'){if(checkboxColumn){warnLog('vxe.error.colRepet',['type',type]);}if(!checkboxColumn){checkboxColumn=column;}}else if(type==='radio'){if(radioColumn){warnLog('vxe.error.colRepet',['type',type]);}if(!radioColumn){radioColumn=column;}}if(isAllOverflow&&column.showOverflow===false){isAllOverflow=false;}if(fullColIdData[colid]){errLog('vxe.error.colRepet',['colId',colid]);}fullColIdData[colid]=rest;};if(isGroup){external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree(collectColumn,(column,index,items,path,parentColumn,nodes)=>{column.level=nodes.length;handleFunc(column,index,items,path,parentColumn);});}else{tableFullColumn.forEach(handleFunc);}if(expandColumn&&expandOpts.mode!=='fixed'&&virtualYOpts.enabled){warnLog('vxe.error.notConflictProp',['column.type="expand','virtual-y-config.enabled=false']);}if(expandColumn&&expandOpts.mode!=='fixed'&&mouseOpts.area){errLog('vxe.error.errConflicts',['mouse-config.area','column.type=expand']);}if(expandColumn&&expandOpts.mode!=='inside'&&treeConfig&&!treeOpts.transform){errLog('vxe.error.notConflictProp',['tree-config.transform=false','expand-config.mode=fixed']);}if(htmlColumn){if(!columnOpts.useKey){errLog('vxe.error.notSupportProp',['column.type=html','column-config.useKey=false','column-config.useKey=true']);}if(!rowOpts.useKey){errLog('vxe.error.notSupportProp',['column.type=html','row-config.useKey=false','row-config.useKey=true']);}}reactData.isGroup=isGroup;reactData.rowGroupColumn=rowGroupColumn;reactData.treeNodeColumn=treeNodeColumn;reactData.expandColumn=expandColumn;reactData.checkboxColumn=checkboxColumn;reactData.radioColumn=radioColumn;reactData.isAllOverflow=isAllOverflow;}function updateScrollXStatus($xeTable,fullColumn){const reactData=$xeTable;const internalData=$xeTable;const virtualXOpts=$xeTable.computeVirtualXOpts;const allCols=fullColumn||internalData.tableFullColumn;// 如果gt为0,则总是启用
6249
+ */function cacheColumnMap($xeTable){const props=$xeTable;const reactData=$xeTable;const internalData=$xeTable;const{treeConfig,showOverflow}=props;const{tableFullColumn,collectColumn}=internalData;const fullColIdData=internalData.fullColumnIdData={};const fullColFieldData=internalData.fullColumnFieldData={};const mouseOpts=$xeTable.computeMouseOpts;const expandOpts=$xeTable.computeExpandOpts;const columnOpts=$xeTable.computeColumnOpts;const columnDragOpts=$xeTable.computeColumnDragOpts;const virtualYOpts=$xeTable.computeVirtualYOpts;const{isCrossDrag,isSelfToChildDrag}=columnDragOpts;const customOpts=$xeTable.computeCustomOpts;const treeOpts=$xeTable.computeTreeOpts;const{storage}=customOpts;const rowOpts=$xeTable.computeRowOpts;const isGroup=collectColumn.some(hasChildrenList);let isAllOverflow=!!showOverflow;let rowGroupColumn;let expandColumn;let treeNodeColumn;let checkboxColumn;let radioColumn;let htmlColumn;let hasFixed;const handleFunc=(column,index,items,path,parentColumn)=>{const{id:colid,field,fixed,type,treeNode,rowGroupNode}=column;const rest={$index:-1,_index:-1,column,colid,index,items,parent:parentColumn||null,width:0,oLeft:0};if(field){if(fullColFieldData[field]){errLog('vxe.error.colRepet',['field',field]);}fullColFieldData[field]=rest;}else{if(storage&&!type){errLog('vxe.error.reqSupportProp',['storage',`[${type?`type=${type}`:`title=${column.getTitle()}`}]field=?`]);}if(columnOpts.drag&&(isCrossDrag||isSelfToChildDrag)){errLog('vxe.error.reqSupportProp',['column-drag-config.isCrossDrag | column-drag-config.isSelfToChildDrag',`${column.getTitle()||type||''} -> field=?`]);}}if(!hasFixed&&fixed){hasFixed=fixed;}if(!htmlColumn&&type==='html'){htmlColumn=column;}if(treeNode){if(treeNodeColumn){warnLog('vxe.error.colRepet',['tree-node',treeNode]);}if(!treeNodeColumn){treeNodeColumn=column;}}if(rowGroupNode){if(treeNodeColumn){warnLog('vxe.error.colRepet',['row-group-node',rowGroupNode]);}if(!rowGroupColumn){rowGroupColumn=column;}}if(type==='expand'){if(expandColumn){warnLog('vxe.error.colRepet',['type',type]);}if(!expandColumn){expandColumn=column;}}if(type==='checkbox'){if(checkboxColumn){warnLog('vxe.error.colRepet',['type',type]);}if(!checkboxColumn){checkboxColumn=column;}}else if(type==='radio'){if(radioColumn){warnLog('vxe.error.colRepet',['type',type]);}if(!radioColumn){radioColumn=column;}}if(isAllOverflow&&column.showOverflow===false){isAllOverflow=false;}if(fullColIdData[colid]){errLog('vxe.error.colRepet',['colId',colid]);}fullColIdData[colid]=rest;};if(isGroup){external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree(collectColumn,(column,index,items,path,parentColumn,nodes)=>{column.level=nodes.length;handleFunc(column,index,items,path,parentColumn);});}else{tableFullColumn.forEach(handleFunc);}if(expandColumn){if(expandOpts.mode!=='fixed'&&virtualYOpts.enabled){warnLog('vxe.error.notConflictProp',['column.type="expand','virtual-y-config.enabled=false']);}if(expandOpts.mode!=='fixed'&&mouseOpts.area){errLog('vxe.error.errConflicts',['mouse-config.area','column.type=expand']);}if(expandOpts.mode!=='inside'&&treeConfig&&!treeOpts.transform){errLog('vxe.error.notConflictProp',['tree-config.transform=false','expand-config.mode=fixed']);}if(props.spanMethod){warnLog('vxe.error.notSupportProp',['column.type=expand','span-method','span-method=null']);}}if(htmlColumn){if(!columnOpts.useKey){errLog('vxe.error.notSupportProp',['column.type=html','column-config.useKey=false','column-config.useKey=true']);}if(!rowOpts.useKey){errLog('vxe.error.notSupportProp',['column.type=html','row-config.useKey=false','row-config.useKey=true']);}}reactData.isGroup=isGroup;reactData.rowGroupColumn=rowGroupColumn;reactData.treeNodeColumn=treeNodeColumn;reactData.expandColumn=expandColumn;reactData.checkboxColumn=checkboxColumn;reactData.radioColumn=radioColumn;reactData.isAllOverflow=isAllOverflow;}function updateScrollXStatus($xeTable,fullColumn){const reactData=$xeTable;const internalData=$xeTable;const virtualXOpts=$xeTable.computeVirtualXOpts;const allCols=fullColumn||internalData.tableFullColumn;// 如果gt为0,则总是启用
6217
6250
  const scrollXLoad=!!virtualXOpts.enabled&&virtualXOpts.gt>-1&&(virtualXOpts.gt===0||virtualXOpts.gt<allCols.length);reactData.scrollXLoad=scrollXLoad;return scrollXLoad;}function updateScrollYStatus($xeTable,fullData){const props=$xeTable;const reactData=$xeTable;const internalData=$xeTable;const{treeConfig}=props;const $xeGanttView=internalData.xeGanttView;const virtualYOpts=$xeTable.computeVirtualYOpts;const treeOpts=$xeTable.computeTreeOpts;const{transform}=treeOpts;const allList=fullData||internalData.tableFullData;// 如果gt为0,则总是启用
6218
6251
  const scrollYLoad=(transform||!treeConfig)&&!!virtualYOpts.enabled&&virtualYOpts.gt>-1&&(virtualYOpts.gt===0||virtualYOpts.gt<allList.length);reactData.scrollYLoad=scrollYLoad;if($xeGanttView&&$xeGanttView.handleUpdateSYStatus){$xeGanttView.handleUpdateSYStatus(scrollYLoad);}return scrollYLoad;}/**
6219
6252
  * 展开与收起树节点
@@ -6354,7 +6387,7 @@ remainList.forEach(column=>{const width=Math.max(meanWidth,minCellWidth);column.
6354
6387
  * 处理显示 tooltip
6355
6388
  * @param {Event} evnt 事件
6356
6389
  * @param {Row} row 行对象
6357
- */function handleTooltip($xeTable,evnt,tipOpts,type,tdEl,overflowElem,tipElem,params){const reactData=$xeTable;const tipOverEl=overflowElem||tdEl;if(!tipOverEl){return $xeTable.$nextTick();}params.cell=tdEl;const{tooltipStore}=reactData;const{column,row}=params;const{showAll,contentMethod}=tipOpts;const customContent=contentMethod?contentMethod(params):null;const useCustom=contentMethod&&!external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eqNull(customContent);const content=useCustom?customContent:external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toString(column.type==='html'?tipOverEl.innerText:tipOverEl.textContent).trim();const isOver=tipOverEl.scrollWidth>tipOverEl.clientWidth;if(content&&(showAll||useCustom||isOver)){const tipContent=formatText(content);Object.assign(tooltipStore,{row,column,visible:true,content:tipContent,type,currOpts:tipOpts});$xeTable.$nextTick(()=>{const $tooltip=$xeTable.$refs.refTooltip;if($tooltip&&$tooltip.open){$tooltip.open(isOver?tipOverEl:tipElem,tipContent);}});}return $xeTable.$nextTick();}function handleScrollToRowColumn($xeTable,fieldOrColumn,row){const internalData=$xeTable;const{fullColumnIdData}=internalData;const column=handleFieldOrColumn($xeTable,fieldOrColumn);if(column&&fullColumnIdData[column.id]){return colToVisible($xeTable,column,row);}return $xeTable.$nextTick();}function handleRowExpandReserve($xeTable,row,expanded){const internalData=$xeTable;const{rowExpandedReserveRowMap}=internalData;const expandOpts=$xeTable.computeExpandOpts;if(expandOpts.reserve){const rowid=getRowid($xeTable,row);if(expanded){rowExpandedReserveRowMap[rowid]=row;}else if(rowExpandedReserveRowMap[rowid]){delete rowExpandedReserveRowMap[rowid];}}}function handleDefaultMergeCells($xeTable){const props=$xeTable;const{mergeCells}=props;if(mergeCells){$xeTable.setMergeCells(mergeCells);}}function handleDefaultMergeHeaderItems($xeTable){const props=$xeTable;const{mergeHeaderCells}=props;if(mergeHeaderCells){$xeTable.setMergeHeaderCells(mergeHeaderCells);}}function handleDefaultMergeFooterItems($xeTable){const props=$xeTable;const{mergeFooterCells,mergeFooterItems}=props;const mFooterCells=mergeFooterCells||mergeFooterItems;if(mFooterCells){$xeTable.setMergeFooterCells(mFooterCells);}}// 计算可视渲染相关数据
6390
+ */function handleTooltip($xeTable,evnt,tipOpts,type,tdEl,overflowElem,tipElem,params){const reactData=$xeTable;const tipOverEl=overflowElem||tdEl;if(!tipOverEl){return $xeTable.$nextTick();}params.cell=tdEl;const{tooltipStore}=reactData;const{column,row}=params;const{showAll,contentMethod}=tipOpts;const customContent=contentMethod?contentMethod(params):null;const useCustom=contentMethod&&!external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eqNull(customContent);const content=useCustom?customContent:external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toString(column.type==='html'?tipOverEl.innerText:tipOverEl.textContent).trim();const isOver=tipOverEl.scrollWidth>tipOverEl.clientWidth;if(content&&(showAll||useCustom||isOver)){const tipContent=formatText(content);Object.assign(tooltipStore,{row,column,visible:true,content:tipContent,type,currOpts:tipOpts});$xeTable.$nextTick(()=>{const $tooltip=$xeTable.$refs.refTooltip;if($tooltip&&$tooltip.open){$tooltip.open(isOver?tipOverEl:tipElem,tipContent);}});}return $xeTable.$nextTick();}function handleScrollToRowColumn($xeTable,fieldOrColumn,row,options){const internalData=$xeTable;const{fullColumnIdData}=internalData;const column=handleFieldOrColumn($xeTable,fieldOrColumn);if(column&&fullColumnIdData[column.id]){return colToVisible($xeTable,options?options.colAlign!==false:true,column,row);}return $xeTable.$nextTick();}function handleRowExpandReserve($xeTable,row,expanded){const internalData=$xeTable;const{rowExpandedReserveRowMap}=internalData;const expandOpts=$xeTable.computeExpandOpts;if(expandOpts.reserve){const rowid=getRowid($xeTable,row);if(expanded){rowExpandedReserveRowMap[rowid]=row;}else if(rowExpandedReserveRowMap[rowid]){delete rowExpandedReserveRowMap[rowid];}}}function handleDefaultMergeCells($xeTable){const props=$xeTable;const{mergeCells}=props;if(mergeCells){$xeTable.setMergeCells(mergeCells);}}function handleDefaultMergeHeaderItems($xeTable){const props=$xeTable;const{mergeHeaderCells}=props;if(mergeHeaderCells){$xeTable.setMergeHeaderCells(mergeHeaderCells);}}function handleDefaultMergeFooterItems($xeTable){const props=$xeTable;const{mergeFooterCells,mergeFooterItems}=props;const mFooterCells=mergeFooterCells||mergeFooterItems;if(mFooterCells){$xeTable.setMergeFooterCells(mFooterCells);}}// 计算可视渲染相关数据
6358
6391
  function computeScrollLoad($xeTable){const reactData=$xeTable;const internalData=$xeTable;return $xeTable.$nextTick().then(()=>{const{scrollXLoad,scrollYLoad}=reactData;const{scrollXStore,scrollYStore}=internalData;const virtualYOpts=$xeTable.computeVirtualYOpts;const virtualXOpts=$xeTable.computeVirtualXOpts;// 计算 X 逻辑
6359
6392
  if(scrollXLoad){const{toVisibleIndex:toXVisibleIndex,visibleSize:visibleXSize}=handleVirtualXVisible($xeTable);const offsetXSize=Math.max(0,virtualXOpts.oSize?external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toNumber(virtualXOpts.oSize):0);scrollXStore.preloadSize=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toNumber(virtualXOpts.preSize);scrollXStore.offsetSize=offsetXSize;scrollXStore.visibleSize=visibleXSize;scrollXStore.endIndex=Math.max(scrollXStore.startIndex+scrollXStore.visibleSize+offsetXSize,scrollXStore.endIndex);scrollXStore.visibleStartIndex=Math.max(scrollXStore.startIndex,toXVisibleIndex);scrollXStore.visibleEndIndex=Math.min(scrollXStore.endIndex,toXVisibleIndex+visibleXSize);$xeTable.updateScrollXData().then(()=>{loadScrollXData($xeTable);});}else{$xeTable.updateScrollXSpace();}// 计算 Y 逻辑
6360
6393
  const rowHeight=computeRowHeight($xeTable);scrollYStore.rowHeight=rowHeight;// 已废弃
@@ -6366,7 +6399,7 @@ if(reWidth){calcCellWidth($xeTable);}if(reFull){autoCellWidth($xeTable);}if(reHe
6366
6399
  * 已废弃
6367
6400
  * @deprecated
6368
6401
  */totalValue:childCount};let aggVal=0;// 如果下层同时也是分组
6369
- if(childList.length&&childList[0].isAggregate){external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().each(childList,row=>{if(row.isAggregate){const currAggData=row.aggData[field];if(currAggData){aggVal+=currAggData.value;}}});}else{aggVal=aggCalcMethod?aggCalcMethod(ctParams):aggRow.childCount;}aggDtObj[field]={type:'count',value:aggVal,label:aggVal};});aggRow.aggData=aggDtObj;});}}}function updateGroupData($xeTable){const props=$xeTable;const reactData=$xeTable;const internalData=$xeTable;const{aggregateConfig,rowGroupConfig}=props;const{isRowGroupStatus}=reactData;const{tableFullGroupData}=internalData;const aggregateOpts=$xeTable.computeAggregateOpts;const{mapChildrenField}=aggregateOpts;if((aggregateConfig||rowGroupConfig)&&isRowGroupStatus){const aggList=[];external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree(tableFullGroupData,row=>{if(row.isAggregate){aggList.push(row);}},{children:mapChildrenField});handleeGroupSummary($xeTable,aggList);}}function handleGroupData($xeTable,list,rowGroups){let fullData=list;let treeData=list;if(rowGroups){const aggregateOpts=$xeTable.computeAggregateOpts;const{rowField,parentField,childrenField,mapChildrenField}=aggregateOpts;const checkboxOpts=$xeTable.computeCheckboxOpts;const{checkField}=checkboxOpts;const indeterminateField=checkboxOpts.indeterminateField||checkboxOpts.halfField;const rgItem=rowGroups[0];if(rgItem&&rowField&&parentField&&childrenField&&mapChildrenField){fullData=[];treeData=[];const groupField=rgItem.field;const groupColumn=$xeTable.getColumnByField(groupField);const groupMaps={};const aggList=[];const rowkey=getRowkey($xeTable);list.forEach(row=>{const cellValue=groupColumn?$xeTable.getCellLabel(row,groupColumn):external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(row,groupField);const groupValue=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eqNull(cellValue)?'':cellValue;let childList=groupMaps[groupValue];if(!childList){childList=[];groupMaps[groupValue]=childList;}if(row.isAggregate){row.isAggregate=undefined;}childList.push(row);});external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().objectEach(groupMaps,(childList,groupValue)=>{const{fullData:childFullData,treeData:childTreeData}=handleGroupData($xeTable,childList,rowGroups.slice(1));const aggRow={isAggregate:true,aggData:{},groupContent:groupValue,groupField,childCount:0,[rowField]:getRowUniqueId(),[parentField]:null,[rowkey]:getRowUniqueId(),[childrenField]:childTreeData,[mapChildrenField]:childTreeData};if(checkField){aggRow[checkField]=false;}if(indeterminateField){aggRow[indeterminateField]=false;}aggList.push(aggRow);treeData.push(aggRow);fullData.push(aggRow);if(childFullData.length){fullData.push(...childFullData);}});handleeGroupSummary($xeTable,aggList);}}return{treeData,fullData};}/**
6402
+ if(childList.length&&childList[0].isAggregate){external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().each(childList,row=>{if(row.isAggregate){const currAggData=row.aggData[field];if(currAggData){aggVal+=currAggData.value;}}});}else{aggVal=aggCalcMethod?aggCalcMethod(ctParams):aggRow.childCount;}aggDtObj[field]={type:'count',value:aggVal,label:aggVal};});aggRow.aggData=aggDtObj;});}}}function updateGroupData($xeTable){const props=$xeTable;const reactData=$xeTable;const internalData=$xeTable;const{aggregateConfig,rowGroupConfig}=props;const{isRowGroupStatus}=reactData;const{tableFullGroupData}=internalData;const aggregateOpts=$xeTable.computeAggregateOpts;const{mapChildrenField}=aggregateOpts;if((aggregateConfig||rowGroupConfig)&&isRowGroupStatus){const aggList=[];external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree(tableFullGroupData,row=>{if(row.isAggregate){aggList.push(row);}},{children:mapChildrenField});handleeGroupSummary($xeTable,aggList);}}function handleGroupData($xeTable,list,rowGroups){let fullData=list;let treeData=list;if(rowGroups){const aggregateOpts=$xeTable.computeAggregateOpts;const{rowField,parentField,childrenField,mapChildrenField}=aggregateOpts;const rowOpts=$xeTable.computeRowOpts;const checkboxOpts=$xeTable.computeCheckboxOpts;const{checkField}=checkboxOpts;const indeterminateField=checkboxOpts.indeterminateField||checkboxOpts.halfField;const rgItem=rowGroups[0];if(rgItem&&rowField&&parentField&&childrenField&&mapChildrenField){fullData=[];treeData=[];const groupField=rgItem.field;const groupColumn=$xeTable.getColumnByField(groupField);const groupMaps={};const aggList=[];const rowkey=getRowkey($xeTable);list.forEach(row=>{const cellValue=groupColumn?$xeTable.getCellLabel(row,groupColumn):external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(row,groupField);const groupValue=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eqNull(cellValue)?'':cellValue;let childList=groupMaps[groupValue];if(!childList){childList=[];groupMaps[groupValue]=childList;}if(row.isAggregate){row.isAggregate=undefined;}childList.push(row);});external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().objectEach(groupMaps,(childList,groupValue)=>{const{fullData:childFullData,treeData:childTreeData}=handleGroupData($xeTable,childList,rowGroups.slice(1));const aggRow={isAggregate:true,aggData:{},groupContent:groupValue,groupField,childCount:0,[rowField]:getRowUniqueId(),[parentField]:null,[childrenField]:childTreeData,[mapChildrenField]:childTreeData};aggRow[rowkey]=createRowId(rowOpts,aggRow,rowkey);if(checkField){aggRow[checkField]=false;}if(indeterminateField){aggRow[indeterminateField]=false;}aggList.push(aggRow);treeData.push(aggRow);fullData.push(aggRow);if(childFullData.length){fullData.push(...childFullData);}});handleeGroupSummary($xeTable,aggList);}}return{treeData,fullData};}/**
6370
6403
  * 加载表格数据
6371
6404
  * @param {Array} datas 数据
6372
6405
  */function loadTableData($xeTable,datas,isReload,isReset){const props=$xeTable;const reactData=$xeTable;const internalData=$xeTable;const{keepSource,treeConfig,aggregateConfig,rowGroupConfig}=props;const{rowGroupList,scrollYLoad:oldScrollYLoad}=reactData;const{initStatus,scrollYStore,scrollXStore,lastScrollLeft,lastScrollTop}=internalData;const rowOpts=$xeTable.computeRowOpts;const treeOpts=$xeTable.computeTreeOpts;const expandOpts=$xeTable.computeExpandOpts;const{transform}=treeOpts;const childrenField=treeOpts.children||treeOpts.childrenField;let treeData=[];let fullData=datas?datas.slice(0):[];// 转为响应式数据
@@ -6404,7 +6437,7 @@ if(oldScrollYLoad===sYLoad){restoreScrollLocation($xeTable,targetScrollLeft,targ
6404
6437
  */function handleLoadDefaults($xeTable){handleDefaultSelectionChecked($xeTable);handleDefaultRadioChecked($xeTable);handleDefaultRowExpand($xeTable);handleDefaultTreeExpand($xeTable);handleDefaultRowGroupExpand($xeTable);handleDefaultMergeCells($xeTable);handleDefaultMergeHeaderItems($xeTable);handleDefaultMergeFooterItems($xeTable);$xeTable.$nextTick(()=>{const internalData=$xeTable;$xeTable.dispatchEvent('init-rendered',{visibleColumn:internalData.visibleColumn,visibleData:internalData.afterFullData},null);setTimeout(()=>$xeTable.recalculate());});}/**
6405
6438
  * 处理初始化的默认行为
6406
6439
  * 只会执行一次
6407
- */function handleInitDefaults($xeTable){handleDefaultSort($xeTable);}function handleTableColumn($xeTable){const reactData=$xeTable;const internalData=$xeTable;const{scrollXLoad}=reactData;const{visibleColumn,scrollXStore,fullColumnIdData}=internalData;const tableColumn=scrollXLoad?visibleColumn.slice(scrollXStore.startIndex,scrollXStore.endIndex):visibleColumn.slice(0);tableColumn.forEach((column,$index)=>{const colid=column.id;const colRest=fullColumnIdData[colid];if(colRest){colRest.$index=$index;}});reactData.tableColumn=tableColumn;}function handleUpdateColumn($xeTable){const internalData=$xeTable;const columnList=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().orderBy(internalData.collectColumn,'renderSortNumber');internalData.collectColumn=columnList;const tableFullColumn=getColumnList(columnList);internalData.tableFullColumn=tableFullColumn;cacheColumnMap($xeTable);}function loadScrollXData($xeTable){const reactData=$xeTable;const internalData=$xeTable;const{isScrollXBig}=reactData;const{mergeBodyList,mergeFooterList,scrollXStore}=internalData;const{preloadSize,startIndex,endIndex,offsetSize}=scrollXStore;const{toVisibleIndex,visibleSize}=handleVirtualXVisible($xeTable);const offsetItem={startIndex:Math.max(0,isScrollXBig?toVisibleIndex-1:toVisibleIndex-1-offsetSize-preloadSize),endIndex:isScrollXBig?toVisibleIndex+visibleSize:toVisibleIndex+visibleSize+offsetSize+preloadSize};scrollXStore.visibleStartIndex=toVisibleIndex-1;scrollXStore.visibleEndIndex=toVisibleIndex+visibleSize+1;calculateMergerOffsetIndex(mergeBodyList.concat(mergeFooterList),offsetItem,'col');const{startIndex:offsetStartIndex,endIndex:offsetEndIndex}=offsetItem;if(toVisibleIndex<=startIndex||toVisibleIndex>=endIndex-visibleSize-1){if(startIndex!==offsetStartIndex||endIndex!==offsetEndIndex){scrollXStore.startIndex=offsetStartIndex;scrollXStore.endIndex=offsetEndIndex;$xeTable.updateScrollXData();}}$xeTable.closeTooltip();}function parseColumns($xeTable,isReset){const props=$xeTable;const reactData=$xeTable;const internalData=$xeTable;// const { showOverflow } = props
6440
+ */function handleInitDefaults($xeTable){handleDefaultSort($xeTable);}function handleTableColumn($xeTable){const reactData=$xeTable;const internalData=$xeTable;const{scrollXLoad}=reactData;const{visibleColumn,scrollXStore,fullColumnIdData}=internalData;const tableColumn=scrollXLoad?visibleColumn.slice(scrollXStore.startIndex,scrollXStore.endIndex):visibleColumn.slice(0);tableColumn.forEach((column,$index)=>{const colid=column.id;const colRest=fullColumnIdData[colid];if(colRest){colRest.$index=$index;}});reactData.tableColumn=tableColumn;}function handleUpdateColumn($xeTable){const reactData=$xeTable;const internalData=$xeTable;const columnList=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().orderBy(internalData.collectColumn,'renderSortNumber');internalData.collectColumn=columnList;const tFullColumn=getColumnList(columnList);internalData.tableFullColumn=tFullColumn;reactData.updateColFlag++;cacheColumnMap($xeTable);}function loadScrollXData($xeTable){const reactData=$xeTable;const internalData=$xeTable;const{isScrollXBig}=reactData;const{mergeBodyList,mergeFooterList,scrollXStore}=internalData;const{preloadSize,startIndex,endIndex,offsetSize}=scrollXStore;const{toVisibleIndex,visibleSize}=handleVirtualXVisible($xeTable);const offsetItem={startIndex:Math.max(0,isScrollXBig?toVisibleIndex-1:toVisibleIndex-1-offsetSize-preloadSize),endIndex:isScrollXBig?toVisibleIndex+visibleSize:toVisibleIndex+visibleSize+offsetSize+preloadSize};scrollXStore.visibleStartIndex=toVisibleIndex-1;scrollXStore.visibleEndIndex=toVisibleIndex+visibleSize+1;calculateMergerOffsetIndex(mergeBodyList.concat(mergeFooterList),offsetItem,'col');const{startIndex:offsetStartIndex,endIndex:offsetEndIndex}=offsetItem;if(toVisibleIndex<=startIndex||toVisibleIndex>=endIndex-visibleSize-1){if(startIndex!==offsetStartIndex||endIndex!==offsetEndIndex){scrollXStore.startIndex=offsetStartIndex;scrollXStore.endIndex=offsetEndIndex;$xeTable.updateScrollXData();}}$xeTable.closeTooltip();}function parseColumns($xeTable,isReset){const props=$xeTable;const reactData=$xeTable;const internalData=$xeTable;// const { showOverflow } = props
6408
6441
  // const rowOpts = $xeTable.computeRowOpts
6409
6442
  const leftList=[];const centerList=[];const rightList=[];const{isGroup,columnStore}=reactData;const{collectColumn,tableFullColumn,scrollXStore,fullColumnIdData}=internalData;// 如果是分组表头,如果子列全部被隐藏,则根列也隐藏
6410
6443
  if(isGroup){const leftGroupList=[];const centerGroupList=[];const rightGroupList=[];external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree(collectColumn,(column,index,items,path,parentColumn)=>{const isColGroup=hasChildrenList(column);// 如果是分组,必须按组设置固定列,不允许给子列设置固定
@@ -6425,7 +6458,7 @@ tableFullColumn.forEach(column=>{if(column.visible){if(column.fixed==='left'){le
6425
6458
  // }
6426
6459
  if(props.spanMethod){warnLog('vxe.error.scrollErrProp',['span-method']);}if(props.footerSpanMethod){warnLog('vxe.error.scrollErrProp',['footer-span-method']);}if(isReset){const{visibleSize}=handleVirtualXVisible($xeTable);scrollXStore.startIndex=0;scrollXStore.endIndex=visibleSize;scrollXStore.visibleSize=visibleSize;scrollXStore.visibleStartIndex=0;scrollXStore.visibleEndIndex=visibleSize;}}// 如果列被显示/隐藏,则清除合并状态
6427
6460
  // 如果列被设置为固定,则清除合并状态
6428
- if(visibleColumn.length!==internalData.visibleColumn.length||!internalData.visibleColumn.every((column,index)=>column===visibleColumn[index])){$xeTable.clearMergeCells();$xeTable.clearMergeFooterItems();}visibleColumn.forEach((column,index)=>{const colid=column.id;const colRest=fullColumnIdData[colid];if(colRest){colRest._index=index;}});handleTableColumn($xeTable);handleUpdateAggValues($xeTable);if(isReset){return $xeTable.updateFooter().then(()=>{return $xeTable.recalculate();}).then(()=>{$xeTable.updateCellAreas();return $xeTable.recalculate();});}return $xeTable.updateFooter();}function initColumnHierarchy($xeTable){const internalData=$xeTable;const{collectColumn}=internalData;const fullColIdData={};const fullColFieldData={};let sortIndex=1;external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree(collectColumn,(column,index,items,path,parentColumn)=>{const{id:colid,field}=column;const parentId=parentColumn?parentColumn.id:null;const rest={$index:-1,_index:-1,column,colid,index,items,parent:parentColumn||null,width:0,oLeft:0};column.parentId=parentId;column.defaultParentId=parentId;column.sortNumber=sortIndex;column.renderSortNumber=sortIndex;sortIndex++;if(field){if(fullColFieldData[field]){errLog('vxe.error.colRepet',['field',field]);}fullColFieldData[field]=rest;}fullColIdData[colid]=rest;});internalData.fullColumnIdData=fullColIdData;internalData.fullColumnFieldData=fullColFieldData;}function handleInitColumn($xeTable,collectColumn){const props=$xeTable;const $xeToolbar=$xeTable.$refs.$xeToolbar;const reactData=$xeTable;const internalData=$xeTable;const expandOpts=$xeTable.computeExpandOpts;internalData.collectColumn=collectColumn;const tableFullColumn=getColumnList(collectColumn);internalData.tableFullColumn=tableFullColumn;reactData.isColLoading=true;initColumnHierarchy($xeTable);return Promise.resolve(restoreCustomStorage($xeTable)).then(()=>{const{scrollXLoad,scrollYLoad,expandColumn}=reactData;cacheColumnMap($xeTable);parseColumns($xeTable,true).then(()=>{if(reactData.scrollXLoad){loadScrollXData($xeTable);}});$xeTable.clearMergeCells();$xeTable.clearMergeFooterItems();$xeTable.handleTableData(true);$xeTable.handleAggregateSummaryData();if((scrollXLoad||scrollYLoad)&&expandColumn&&expandOpts.mode!=='fixed'){warnLog('vxe.error.scrollErrProp',['column.type=expand']);}return $xeTable.$nextTick().then(()=>{if($xeToolbar){$xeToolbar.syncUpdate({collectColumn:internalData.collectColumn,$table:$xeTable});}if($xeTable.handleUpdateCustomColumn){$xeTable.handleUpdateCustomColumn();}const columnOpts=$xeTable.computeColumnOpts;if(props.showCustomHeader&&reactData.isGroup&&(columnOpts.resizable||props.resizable)){warnLog('vxe.error.notConflictProp',['show-custom-header & colgroup','column-config.resizable=false']);}reactData.isColLoading=false;return handleLazyRecalculate($xeTable,false,true,true);});});}/**
6461
+ if(visibleColumn.length!==internalData.visibleColumn.length||!internalData.visibleColumn.every((column,index)=>column===visibleColumn[index])){$xeTable.clearMergeCells();$xeTable.clearMergeFooterItems();}visibleColumn.forEach((column,index)=>{const colid=column.id;const colRest=fullColumnIdData[colid];if(colRest){colRest._index=index;}});handleTableColumn($xeTable);handleUpdateAggValues($xeTable);if(isReset){return $xeTable.updateFooter().then(()=>{return $xeTable.recalculate();}).then(()=>{$xeTable.updateCellAreas();return $xeTable.recalculate();});}return $xeTable.updateFooter();}function initColumnHierarchy($xeTable){const internalData=$xeTable;const{collectColumn}=internalData;const fullColIdData={};const fullColFieldData={};let sortIndex=1;external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree(collectColumn,(column,index,items,path,parentColumn)=>{const{id:colid,field}=column;const parentId=parentColumn?parentColumn.id:null;const rest={$index:-1,_index:-1,column,colid,index,items,parent:parentColumn||null,width:0,oLeft:0};column.parentId=parentId;column.defaultParentId=parentId;column.sortNumber=sortIndex;column.renderSortNumber=sortIndex;sortIndex++;if(field){if(fullColFieldData[field]){errLog('vxe.error.colRepet',['field',field]);}fullColFieldData[field]=rest;}fullColIdData[colid]=rest;});internalData.fullColumnIdData=fullColIdData;internalData.fullColumnFieldData=fullColFieldData;}function handleInitColumn($xeTable,collectColumn){const props=$xeTable;const $xeToolbar=$xeTable.$refs.$xeToolbar;const reactData=$xeTable;const internalData=$xeTable;const expandOpts=$xeTable.computeExpandOpts;internalData.collectColumn=collectColumn;const tFullColumn=getColumnList(collectColumn);internalData.tableFullColumn=tFullColumn;reactData.updateColFlag++;reactData.isColLoading=true;initColumnHierarchy($xeTable);return Promise.resolve(restoreCustomStorage($xeTable)).then(()=>{const{scrollXLoad,scrollYLoad,expandColumn}=reactData;cacheColumnMap($xeTable);parseColumns($xeTable,true).then(()=>{if(reactData.scrollXLoad){loadScrollXData($xeTable);}});$xeTable.clearMergeCells();$xeTable.clearMergeFooterItems();$xeTable.handleTableData(true);$xeTable.handleAggregateSummaryData();if((scrollXLoad||scrollYLoad)&&expandColumn&&expandOpts.mode!=='fixed'){warnLog('vxe.error.scrollErrProp',['column.type=expand']);}return $xeTable.$nextTick().then(()=>{if($xeToolbar){$xeToolbar.syncUpdate({collectColumn:internalData.collectColumn,$table:$xeTable});}if($xeTable.handleUpdateCustomColumn){$xeTable.handleUpdateCustomColumn();}const columnOpts=$xeTable.computeColumnOpts;if(props.showCustomHeader&&reactData.isGroup&&(columnOpts.resizable||props.resizable)){warnLog('vxe.error.notConflictProp',['show-custom-header & colgroup','column-config.resizable=false']);}reactData.isColLoading=false;return handleLazyRecalculate($xeTable,false,true,true);});});}/**
6429
6462
  * 纵向 Y 可视渲染处理
6430
6463
  */function loadScrollYData($xeTable){const reactData=$xeTable;const internalData=$xeTable;const{isAllOverflow,isScrollYBig}=reactData;const{mergeBodyList,scrollYStore}=internalData;const{preloadSize,startIndex,endIndex,offsetSize}=scrollYStore;const autoOffsetYSize=isAllOverflow?offsetSize:offsetSize+1;const{toVisibleIndex,visibleSize}=handleVirtualYVisible($xeTable);const offsetItem={startIndex:Math.max(0,isScrollYBig?toVisibleIndex-1:toVisibleIndex-1-offsetSize-preloadSize),endIndex:isScrollYBig?toVisibleIndex+visibleSize:toVisibleIndex+visibleSize+autoOffsetYSize+preloadSize};scrollYStore.visibleStartIndex=toVisibleIndex-1;scrollYStore.visibleEndIndex=toVisibleIndex+visibleSize+1;calculateMergerOffsetIndex(mergeBodyList,offsetItem,'row');const{startIndex:offsetStartIndex,endIndex:offsetEndIndex}=offsetItem;if(toVisibleIndex<=startIndex||toVisibleIndex>=endIndex-visibleSize-1){if(startIndex!==offsetStartIndex||endIndex!==offsetEndIndex){scrollYStore.startIndex=offsetStartIndex;scrollYStore.endIndex=offsetEndIndex;$xeTable.updateScrollYData();}}}const createGetRowCacheProp=prop=>{return function(row){const $xeTable=this;const internalData=$xeTable;const{fullAllDataRowIdData}=internalData;if(row){const rowid=getRowid($xeTable,row);const rowRest=fullAllDataRowIdData[rowid];if(rowRest){return rowRest[prop];}}return-1;};};const createGetColumnCacheProp=prop=>{return function(column){const $xeTable=this;const internalData=$xeTable;const{fullColumnIdData}=internalData;if(column){const colRest=fullColumnIdData[column.id];if(colRest){return colRest[prop];}}return-1;};};function lazyScrollXData($xeTable){const internalData=$xeTable;const{lxTimeout,lxRunTime,scrollXStore}=internalData;const{visibleSize}=scrollXStore;const fpsTime=visibleSize>26?26:visibleSize>16?14:6;if(lxTimeout){clearTimeout(lxTimeout);}if(!lxRunTime||lxRunTime+fpsTime<Date.now()){internalData.lxRunTime=Date.now();loadScrollXData($xeTable);}internalData.lxTimeout=setTimeout(()=>{internalData.lxTimeout=undefined;internalData.lxRunTime=undefined;loadScrollXData($xeTable);},fpsTime);}function lazyScrollYData($xeTable){const internalData=$xeTable;const{lyTimeout,lyRunTime,scrollYStore}=internalData;const{visibleSize}=scrollYStore;const fpsTime=visibleSize>30?32:visibleSize>20?18:8;if(lyTimeout){clearTimeout(lyTimeout);}if(!lyRunTime||lyRunTime+fpsTime<Date.now()){internalData.lyRunTime=Date.now();loadScrollYData($xeTable);}internalData.lyTimeout=setTimeout(()=>{internalData.lyTimeout=undefined;internalData.lyRunTime=undefined;loadScrollYData($xeTable);},fpsTime);}function handleSyncScroll($xeTable,isRollX,isRollY){const reactData=$xeTable;const internalData=$xeTable;const{scrollXLoad,scrollYLoad,isAllOverflow}=reactData;internalData.lcsRunTime=Date.now();internalData.lcsTimeout=undefined;internalData.intoRunScroll=false;internalData.inVirtualScroll=false;internalData.inWheelScroll=false;internalData.inHeaderScroll=false;internalData.inBodyScroll=false;internalData.inFooterScroll=false;reactData.lazScrollLoading=false;internalData.scrollRenderType='';let xRest=null;let yRest=null;if(!isAllOverflow){calcCellHeight($xeTable);updateRowOffsetTop($xeTable);}if(isRollX&&scrollXLoad){xRest=$xeTable.updateScrollXData();}if(isRollY&&scrollYLoad){yRest=$xeTable.updateScrollYData().then(()=>{if(!isAllOverflow){calcCellHeight($xeTable);updateRowOffsetTop($xeTable);}return $xeTable.updateScrollYSpace();});}updateRowExpandStyle($xeTable);return Promise.all([xRest,yRest,$xeTable.updateCellAreas()]);}function checkLastSyncScroll($xeTable,isRollX,isRollY){const reactData=$xeTable;const internalData=$xeTable;const{lcsTimeout}=internalData;reactData.lazScrollLoading=true;if(lcsTimeout){clearTimeout(lcsTimeout);}internalData.lcsTimeout=setTimeout(()=>{handleSyncScroll($xeTable,isRollX,isRollY).then(()=>{if(reactData.scrollXLoad||reactData.scrollYLoad){$xeTable.$nextTick(()=>{updateRowExpandStyle($xeTable);if(!internalData.lcsTimeout){handleSyncScroll($xeTable,isRollX,isRollY);}});}});},200);}const getWheelSpeed=lastScrollTime=>{let multiple=1;const currTime=Date.now();if(lastScrollTime+25>currTime){multiple=1.18;}else if(lastScrollTime+30>currTime){multiple=1.15;}else if(lastScrollTime+40>currTime){multiple=1.12;}else if(lastScrollTime+55>currTime){multiple=1.09;}else if(lastScrollTime+75>currTime){multiple=1.06;}else if(lastScrollTime+100>currTime){multiple=1.03;}return multiple;};const wheelScrollLeftTo=(scrollLeft,cb)=>{requestAnimationFrame(()=>{cb(scrollLeft);});};const syncGanttScrollTop=($xeTable,scrollTop)=>{const internalData=$xeTable;const $xeGanttView=internalData.xeGanttView;if($xeGanttView){const ganttInternalData=$xeGanttView.internalData;const{elemStore:ganttElemStore}=ganttInternalData;const ganttBodyScrollElem=getRefElem(ganttElemStore['main-body-scroll']);if(ganttBodyScrollElem){ganttBodyScrollElem.scrollTop=scrollTop;}}};function updateHeight($xeTable){const reactData=$xeTable;const internalData=$xeTable;internalData.customHeight=calcTableHeight($xeTable,'height');internalData.customMinHeight=calcTableHeight($xeTable,'minHeight');internalData.customMaxHeight=calcTableHeight($xeTable,'maxHeight');// 如果启用虚拟滚动,纠正高度
6431
6464
  if(reactData.scrollYLoad&&!(internalData.customHeight||internalData.customMinHeight||internalData.customMaxHeight)){internalData.customHeight=300;}}/**
@@ -6436,7 +6469,7 @@ if(reactData.scrollYLoad&&!(internalData.customHeight||internalData.customMinHei
6436
6469
  $xeTable.dispatchEvent('resizable-change',params,evnt);setTimeout(()=>$xeTable.recalculate(true),300);});}function handleUpdateRowResize($xeTable,evnt,params){const reactData=$xeTable;reactData.resizeHeightFlag++;$xeTable.recalculate().then(()=>{$xeTable.refreshScroll().then(()=>{$xeTable.updateCellAreas();});$xeTable.dispatchEvent('row-resizable-change',params,evnt);setTimeout(()=>$xeTable.recalculate(true),300);});}function updateColumnOffsetLeft($xeTable){const internalData=$xeTable;const{visibleColumn,fullColumnIdData}=internalData;let offsetLeft=0;for(let cIndex=0,rLen=visibleColumn.length;cIndex<rLen;cIndex++){const column=visibleColumn[cIndex];const colid=column.id;const colRest=fullColumnIdData[colid];if(colRest){colRest.oLeft=offsetLeft;}offsetLeft+=column.renderWidth;}}function updateRowOffsetTop($xeTable){const reactData=$xeTable;const internalData=$xeTable;const{expandColumn}=reactData;const{afterFullData,fullAllDataRowIdData,rowExpandedMaps}=internalData;const expandOpts=$xeTable.computeExpandOpts;const rowOpts=$xeTable.computeRowOpts;const cellOpts=$xeTable.computeCellOpts;const defaultRowHeight=$xeTable.computeDefaultRowHeight;const{handleGetRowId}=createHandleGetRowId($xeTable);let offsetTop=0;for(let rIndex=0,rLen=afterFullData.length;rIndex<rLen;rIndex++){const row=afterFullData[rIndex];const rowid=handleGetRowId(row);const rowRest=fullAllDataRowIdData[rowid]||{};rowRest.oTop=offsetTop;offsetTop+=rowRest.resizeHeight||cellOpts.height||rowOpts.height||rowRest.height||defaultRowHeight;// 是否展开行
6437
6470
  if(expandColumn&&rowExpandedMaps[rowid]){offsetTop+=rowRest.expandHeight||expandOpts.height||0;}}}/**
6438
6471
  * 更新展开行样式
6439
- */function updateRowExpandStyle($xeTable){const reactData=$xeTable;const internalData=$xeTable;const{expandColumn,scrollYLoad,scrollYTop,isScrollYBig}=reactData;const expandOpts=$xeTable.computeExpandOpts;const rowOpts=$xeTable.computeRowOpts;const cellOpts=$xeTable.computeCellOpts;const defaultRowHeight=$xeTable.computeDefaultRowHeight;const{mode}=expandOpts;if(expandColumn&&mode==='fixed'){const{elemStore,fullAllDataRowIdData}=internalData;const rowExpandEl=$xeTable.$refs.refRowExpandElem;const bodyScrollElem=getRefElem(elemStore['main-body-scroll']);if(rowExpandEl&&bodyScrollElem){let isUpdateHeight=false;external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().arrayEach(rowExpandEl.children,reEl=>{const expandEl=reEl;const rowid=expandEl.getAttribute('rowid')||'';const rowRest=fullAllDataRowIdData[rowid];if(rowRest){const expandHeight=expandEl.offsetHeight+1;const trEl=bodyScrollElem.querySelector(`.vxe-body--row[rowid="${rowid}"]`);let offsetTop=0;if(scrollYLoad){if(isScrollYBig&&trEl){offsetTop=trEl.offsetTop+trEl.offsetHeight;}else{offsetTop=rowRest.oTop+(rowRest.resizeHeight||cellOpts.height||rowOpts.height||rowRest.height||defaultRowHeight);}}else{if(trEl){offsetTop=trEl.offsetTop+trEl.offsetHeight;}}if(isScrollYBig){offsetTop+=scrollYTop;}expandEl.style.top=toCssUnit(offsetTop);if(!isUpdateHeight){if(rowRest.expandHeight!==expandHeight){isUpdateHeight=true;}}rowRest.expandHeight=expandHeight;}});if(isUpdateHeight){reactData.rowExpandHeightFlag++;$xeTable.$nextTick(()=>{updateRowOffsetTop($xeTable);});}}}}/**
6472
+ */function updateRowExpandStyle($xeTable){const reactData=$xeTable;const internalData=$xeTable;const{expandColumn,scrollYLoad,scrollYTop,isScrollYBig}=reactData;const expandOpts=$xeTable.computeExpandOpts;const rowOpts=$xeTable.computeRowOpts;const cellOpts=$xeTable.computeCellOpts;const defaultRowHeight=$xeTable.computeDefaultRowHeight;const{mode}=expandOpts;if(expandColumn&&mode==='fixed'){const{elemStore,fullAllDataRowIdData}=internalData;const rowExpandEl=$xeTable.$refs.refRowExpandElem;const bodyScrollElem=getRefElem(elemStore['main-body-scroll']);if(rowExpandEl&&bodyScrollElem){let isUpdateHeight=false;external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().arrayEach(rowExpandEl.children,reEl=>{const expandEl=reEl;const rowid=expandEl.getAttribute('rowid')||'';const rowRest=fullAllDataRowIdData[rowid];if(rowRest){const expandHeight=expandEl.offsetHeight;const trEl=bodyScrollElem.querySelector(`.vxe-body--row[rowid="${rowid}"]`);let offsetTop=0;if(scrollYLoad){if(isScrollYBig&&trEl){offsetTop=trEl.offsetTop+trEl.offsetHeight;}else{offsetTop=rowRest.oTop+(rowRest.resizeHeight||cellOpts.height||rowOpts.height||rowRest.height||defaultRowHeight);}}else{if(trEl){offsetTop=trEl.offsetTop+trEl.offsetHeight;}}if(isScrollYBig){offsetTop+=scrollYTop;}expandEl.style.top=toCssUnit(offsetTop);if(!isUpdateHeight){if(rowRest.expandHeight!==expandHeight){isUpdateHeight=true;}}rowRest.expandHeight=expandHeight;}});if(isUpdateHeight){reactData.rowExpandHeightFlag++;$xeTable.$nextTick(()=>{updateRowOffsetTop($xeTable);});}}}}/**
6440
6473
  * 更新树连接线样式
6441
6474
  */function updateTreeLineStyle($xeTable){const props=$xeTable;const reactData=$xeTable;const internalData=$xeTable;const{treeConfig}=props;if(!treeConfig){return;}const{tableData}=reactData;const{fullAllDataRowIdData,treeExpandedMaps}=internalData;const cellOpts=$xeTable.computeCellOpts;const rowOpts=$xeTable.computeRowOpts;const defaultRowHeight=$xeTable.computeDefaultRowHeight;const treeOpts=$xeTable.computeTreeOpts;const{transform,mapChildrenField}=treeOpts;const childrenField=treeOpts.children||treeOpts.childrenField;const{handleGetRowId}=createHandleGetRowId($xeTable);const expParentList=[];const handleNodeRow=(row,rIndex,rows)=>{const rowid=handleGetRowId(row);const rowRest=fullAllDataRowIdData[rowid]||{};const childList=row[transform?mapChildrenField:childrenField];const prevRow=rows[rIndex-1]||null;const nextRow=rows[rIndex+1]||null;if(childList&&childList.length&&treeExpandedMaps[rowid]){expParentList.push({row,prevRow,nextRow});childList.forEach((childRow,crIndex)=>{const childRowid=handleGetRowId(childRow);if(treeExpandedMaps[childRowid]){handleNodeRow(childRow,crIndex,childList);}});}else{if(nextRow){const nextRowid=handleGetRowId(nextRow);const nextRowRest=fullAllDataRowIdData[nextRowid]||{};const currCellHeight=getCellRestHeight(rowRest,cellOpts,rowOpts,defaultRowHeight);const nextCellHeight=getCellRestHeight(nextRowRest,cellOpts,rowOpts,defaultRowHeight);rowRest.oHeight=currCellHeight;rowRest.lineHeight=Math.floor(currCellHeight/2+nextCellHeight/2);}else{rowRest.oHeight=0;rowRest.lineHeight=0;}}};tableData.forEach((row,rIndex)=>{handleNodeRow(row,rIndex,tableData);});external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().lastArrayEach(expParentList,({row,nextRow})=>{const rowid=handleGetRowId(row);const childList=row[transform?mapChildrenField:childrenField];const rowRest=fullAllDataRowIdData[rowid];if(rowRest){const currCellHeight=getCellRestHeight(rowRest,cellOpts,rowOpts,defaultRowHeight);let countOffsetHeight=currCellHeight;let countLineHeight=0;childList.forEach(childRow=>{const childRowid=handleGetRowId(childRow);const childRowRest=fullAllDataRowIdData[childRowid]||{};const childList=childRow[transform?mapChildrenField:childrenField];if(treeExpandedMaps[childRowid]&&childList&&childList.length){countOffsetHeight+=childRowRest.oHeight||0;countLineHeight+=childRowRest.oHeight||0;}else{const cellHeight=getCellRestHeight(childRowRest,cellOpts,rowOpts,defaultRowHeight);childRowRest.oHeight=cellHeight;childRowRest.lineHeight=cellHeight;countOffsetHeight+=cellHeight;countLineHeight+=cellHeight;}});if(nextRow){const nextRowid=handleGetRowId(nextRow);const nextRowRest=fullAllDataRowIdData[nextRowid]||{};const currCellHeight=getCellRestHeight(rowRest,cellOpts,rowOpts,defaultRowHeight);const nextCellHeight=getCellRestHeight(nextRowRest,cellOpts,rowOpts,defaultRowHeight);countOffsetHeight+=currCellHeight;countLineHeight+=Math.floor(currCellHeight/2+nextCellHeight/2);}rowRest.lineHeight=countLineHeight;rowRest.oHeight=countOffsetHeight;}});}function handleRowExpandScroll($xeTable){const internalData=$xeTable;const{elemStore}=internalData;const rowExpandEl=$xeTable.$refs.refRowExpandElem;const bodyScrollElem=getRefElem(elemStore['main-body-scroll']);if(rowExpandEl&&bodyScrollElem){rowExpandEl.scrollTop=bodyScrollElem.scrollTop;}}function handleColumnVisible(visible){return function(fieldOrColumn){const $xeTable=this;let status=false;const cols=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isArray(fieldOrColumn)?fieldOrColumn:[fieldOrColumn];cols.forEach(item=>{const column=handleFieldOrColumn($xeTable,item);if(column){if(column.children&&column.children.length){external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree([column],item=>{item.visible=visible;item.renderVisible=visible;});}else{column.visible=visible;column.renderVisible=visible;}if(!status){status=true;}}});if(status){return $xeTable.handleCustom();}return $xeTable.$nextTick();};}const tableMethods={callSlot(slotFunc,params,h,vNodes){const $xeTable=this;// const slots = $xeTable.$scopedSlots
6442
6475
  const $xeGrid=$xeTable.$xeGrid;const $xeGantt=$xeTable.$xeGantt;const $xeGGWrapper=$xeGrid||$xeGantt;if(slotFunc){if($xeGGWrapper){return $xeGGWrapper.callSlot(slotFunc,params,h);}// if (XEUtils.isString(slotFunc)) {
@@ -6531,8 +6564,8 @@ $getColumnIndex(column){warnLog('vxe.error.delFunc',['$getColumnIndex','getVMCol
6531
6564
  */isSeqColumn(column){return column&&column.type==='seq';},/**
6532
6565
  * 定义行数据中的列属性,如果不存在则定义
6533
6566
  * @param {Row} records 行数据
6534
- */defineField(records){const $xeTable=this;const props=$xeTable;const internalData=$xeTable;const{treeConfig}=props;const expandOpts=$xeTable.computeExpandOpts;const treeOpts=$xeTable.computeTreeOpts;const radioOpts=$xeTable.computeRadioOpts;const checkboxOpts=$xeTable.computeCheckboxOpts;const childrenField=treeOpts.children||treeOpts.childrenField;const rowkey=getRowkey($xeTable);if(!external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isArray(records)){records=[records||{}];}return records.map(record=>{internalData.tableFullColumn.forEach(column=>{const{field,editRender}=column;if(field&&!external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().has(record,field)){let cellValue=null;if(editRender){const{defaultValue}=editRender;if(external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isFunction(defaultValue)){cellValue=defaultValue({column});}else if(!external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isUndefined(defaultValue)){cellValue=defaultValue;}}external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().set(record,field,cellValue);}});const otherFields=[radioOpts.labelField,checkboxOpts.checkField,checkboxOpts.labelField,expandOpts.labelField];otherFields.forEach(key=>{if(key&&eqEmptyValue(external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(record,key))){external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().set(record,key,null);}});if(treeConfig&&treeOpts.lazy&&external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isUndefined(record[childrenField])){record[childrenField]=null;}// 必须有行数据的唯一主键,可以自行设置;也可以默认生成一个随机数
6535
- if(eqEmptyValue(external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(record,rowkey))){external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().set(record,rowkey,getRowUniqueId());}return record;});},/**
6567
+ */defineField(records){const $xeTable=this;const props=$xeTable;const internalData=$xeTable;const{treeConfig}=props;const expandOpts=$xeTable.computeExpandOpts;const treeOpts=$xeTable.computeTreeOpts;const radioOpts=$xeTable.computeRadioOpts;const rowOpts=$xeTable.computeRowOpts;const checkboxOpts=$xeTable.computeCheckboxOpts;const childrenField=treeOpts.children||treeOpts.childrenField;const rowkey=getRowkey($xeTable);if(!external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isArray(records)){records=[records||{}];}return records.map(record=>{internalData.tableFullColumn.forEach(column=>{const{field,editRender}=column;if(field&&!external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().has(record,field)){let cellValue=null;if(editRender){const{defaultValue}=editRender;if(external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isFunction(defaultValue)){cellValue=defaultValue({column});}else if(!external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isUndefined(defaultValue)){cellValue=defaultValue;}}external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().set(record,field,cellValue);}});const otherFields=[radioOpts.labelField,checkboxOpts.checkField,checkboxOpts.labelField,expandOpts.labelField];otherFields.forEach(key=>{if(key&&eqEmptyValue(external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(record,key))){external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().set(record,key,null);}});if(treeConfig&&treeOpts.lazy&&external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isUndefined(record[childrenField])){record[childrenField]=null;}// 必须有行数据的唯一主键,可以自行设置;也可以默认生成一个随机数
6568
+ if(eqEmptyValue(external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(record,rowkey))){external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().set(record,rowkey,createRowId(rowOpts,record,rowkey));}return record;});},/**
6536
6569
  * 创建 data 对象
6537
6570
  * 对于某些特殊场景可能会用到,会自动对数据的字段名进行检测,如果不存在就自动定义
6538
6571
  * @param {Array} records 新数据
@@ -6562,8 +6595,8 @@ if(external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_defau
6562
6595
  * 删除所有新增的临时数据
6563
6596
  */removeInsertRow(){const $xeTable=this;const internalData=$xeTable;const{insertRowMaps}=internalData;return $xeTable.remove(external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().values(insertRowMaps));},/**
6564
6597
  * 检查行或列数据是否发生改变
6565
- */isUpdateByRow(rowOrId,field){const $xeTable=this;const props=$xeTable;const internalData=$xeTable;const{keepSource}=props;const{tableFullColumn,fullDataRowIdData,sourceDataRowIdData}=internalData;if(keepSource){const rowid=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isString(rowOrId)||external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isNumber(rowOrId)?rowOrId:getRowid($xeTable,rowOrId);const rowRest=fullDataRowIdData[rowid];// 新增的数据不需要检测
6566
- if(!rowRest){return false;}const row=rowRest.row;const oRow=sourceDataRowIdData[rowid];if(oRow){if(arguments.length>1){return!eqCellValue(oRow,row,field);}for(let index=0,len=tableFullColumn.length;index<len;index++){const property=tableFullColumn[index].field;if(property&&!eqCellValue(oRow,row,property)){return true;}}}}return false;},/**
6598
+ */isUpdateByRow(rowOrId,field){const $xeTable=this;const props=$xeTable;const internalData=$xeTable;const{keepSource,editConfig}=props;const{fullDataRowIdData,sourceDataRowIdData}=internalData;const keepFields=$xeTable.computeKeepFields;if(keepSource&&editConfig){const rowid=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isString(rowOrId)||external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isNumber(rowOrId)?rowOrId:getRowid($xeTable,rowOrId);const rowRest=fullDataRowIdData[rowid];// 新增的数据不需要检测
6599
+ if(!rowRest){return false;}const row=rowRest.row;const oRow=sourceDataRowIdData[rowid];if(oRow){if(arguments.length>1){return!eqCellValue(oRow,row,field);}for(let i=0;i<keepFields.length;i++){if(!eqCellValue(oRow,row,keepFields[i])){return true;}}}}return false;},/**
6567
6600
  * 获取表格的可视列,也可以指定索引获取列
6568
6601
  * @param {Number} columnIndex 索引
6569
6602
  */getColumns(columnIndex){const $xeTable=this;const internalData=$xeTable;const{visibleColumn}=internalData;return external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isUndefined(columnIndex)?visibleColumn.slice(0):visibleColumn[columnIndex];},/**
@@ -6677,9 +6710,9 @@ if(!isClear){isClear=getEventTargetNode(evnt,el,'vxe-footer--row').flag;}// 如
6677
6710
  if(!isClear&&props.height&&!reactData.overflowY){const bodyWrapperElem=evnt.target;if(hasClass(bodyWrapperElem,'vxe-table--body-wrapper')){isClear=evnt.offsetY<bodyWrapperElem.clientHeight;}}if(isClear||// 如果点击了当前表格之外
6678
6711
  !getEventTargetNode(evnt,el).flag){setTimeout(()=>{$xeTable.handleClearEdit(evnt).then(()=>{// 如果存在校验,点击了表格之外则清除
6679
6712
  if(!internalData.isActivated&&editRules&&validOpts.autoClear){reactData.validErrorMaps={};}});});}});}}}}}else if(mouseConfig){if(!getEventTargetNode(evnt,el).flag&&!($xeGGWrapper&&getEventTargetNode(evnt,$xeGGWrapper.$el).flag)&&!(tableMenu&&getEventTargetNode(evnt,tableMenu.$el).flag)&&!(this.$toolbar&&getEventTargetNode(evnt,this.$toolbar.$el).flag)){if($xeTable.clearSelected){$xeTable.clearSelected();}if(areaOpts.autoClear){if($xeTable.getCellAreas){const cellAreas=$xeTable.getCellAreas();if(cellAreas&&cellAreas.length&&!getEventTargetNode(evnt,document.body,'vxe-table--ignore-areas-clear').flag){$xeTable.preventEvent(evnt,'event.clearAreas',{},()=>{$xeTable.clearCellAreas();$xeTable.clearCopyCellArea();$xeTable.dispatchEvent('clear-cell-area-selection',{cellAreas},evnt);});}}}}}// 如果配置了快捷菜单且,点击了其他地方则关闭
6680
- if(ctxMenuStore.visible&&tableMenu&&!getEventTargetNode(evnt,tableMenu.$el).flag){$xeTable.closeMenu();}const isActivated=getEventTargetNode(evnt,($xeGGWrapper||$xeTable).$el).flag;// 如果存在校验,点击了表格之外则清除
6713
+ if(ctxMenuStore.visible&&tableMenu&&!getEventTargetNode(evnt,tableMenu.$el).flag){$xeTable.closeMenu();}if(!(actived.row&&getEventTargetNode(evnt,document.body,'vxe-table--ignore-clear').flag)){const isActivated=getEventTargetNode(evnt,($xeGGWrapper||$xeTable).$el).flag;// 如果存在校验,点击了表格之外则清除
6681
6714
  if(!isActivated&&editRules&&validOpts.autoClear){reactData.validErrorMaps={};}// 最后激活的表格
6682
- internalData.isActivated=isActivated;},/**
6715
+ internalData.isActivated=isActivated;}},/**
6683
6716
  * 窗口失焦事件处理
6684
6717
  */handleGlobalBlurEvent(){const $xeTable=this;$xeTable.closeFilter();$xeTable.closeMenu();},/**
6685
6718
  * 全局滚动事件
@@ -6691,24 +6724,26 @@ if(actived.row){const params=actived.args;this.handleClearEdit(evnt);// 如果
6691
6724
  if(mouseConfig&&mouseOpts.selected){this.$nextTick(()=>this.handleSelected(params,evnt));}}}}$xeTable.dispatchEvent('keydown',{},evnt);$xeTable.dispatchEvent('keydown-end',{},evnt);});}},contextMenuEvent(evnt){const $xeTable=this;$xeTable.dispatchEvent('context-menu',{},evnt);},/**
6692
6725
  * 全局键盘事件
6693
6726
  */handleGlobalKeydownEvent(evnt){const $xeTable=this;const props=$xeTable;const internalData=$xeTable;const reactData=$xeTable;const $xeGrid=$xeTable.$xeGrid;const $xeGantt=$xeTable.$xeGantt;// 该行为只对当前激活的表格有效
6694
- if(internalData.isActivated){$xeTable.preventEvent(evnt,'event.keydown',null,()=>{const{mouseConfig,keyboardConfig,treeConfig,editConfig,highlightCurrentRow,highlightCurrentColumn}=props;const{ctxMenuStore,editStore,currentRow}=reactData;const{afterFullData}=internalData;const isContentMenu=$xeTable.computeIsContentMenu;const bodyMenu=$xeTable.computeBodyMenu;const keyboardOpts=$xeTable.computeKeyboardOpts;const mouseOpts=$xeTable.computeMouseOpts;const editOpts=$xeTable.computeEditOpts;const treeOpts=$xeTable.computeTreeOpts;const menuList=$xeTable.computeMenuList;const rowOpts=$xeTable.computeRowOpts;const columnOpts=$xeTable.computeColumnOpts;const{selected,actived}=editStore;const{keyCode}=evnt;const hasBackspaceKey=keyCode===8;const isTab=keyCode===9;const isEnter=keyCode===13;const isEsc=keyCode===27;const isSpacebar=keyCode===32;const isLeftArrow=keyCode===37;const isUpArrow=keyCode===38;const isRightArrow=keyCode===39;const isDwArrow=keyCode===40;const hasDeleteKey=keyCode===46;const isF2=keyCode===113;const isContextMenu=keyCode===93;const isControlKey=hasControlKey(evnt);const hasShiftKey=evnt.shiftKey;const hasAltKey=evnt.altKey;const operArrow=isLeftArrow||isUpArrow||isRightArrow||isDwArrow;const operCtxMenu=isContentMenu&&ctxMenuStore.visible&&(isEnter||isSpacebar||operArrow);const isEditStatus=isEnableConf(editConfig)&&actived.column&&actived.row;const childrenField=treeOpts.children||treeOpts.childrenField;const beforeEditMethod=editOpts.beforeEditMethod||editOpts.activeMethod;if(operCtxMenu){// 如果配置了右键菜单; 支持方向键操作、回车
6727
+ if(internalData.isActivated){$xeTable.preventEvent(evnt,'event.keydown',null,()=>{const{mouseConfig,keyboardConfig,treeConfig,editConfig,highlightCurrentRow,highlightCurrentColumn}=props;const{ctxMenuStore,editStore,currentRow}=reactData;const{afterFullData,visibleColumn}=internalData;const isContentMenu=$xeTable.computeIsContentMenu;const bodyMenu=$xeTable.computeBodyMenu;const keyboardOpts=$xeTable.computeKeyboardOpts;const mouseOpts=$xeTable.computeMouseOpts;const editOpts=$xeTable.computeEditOpts;const treeOpts=$xeTable.computeTreeOpts;const menuList=$xeTable.computeMenuList;const rowOpts=$xeTable.computeRowOpts;const columnOpts=$xeTable.computeColumnOpts;const{isLastEnterAppendRow,beforeEnterMethod,enterMethod,isLastTabAppendRow,beforeTabMethod,tabMethod}=keyboardOpts;const{selected,actived}=editStore;const{keyCode}=evnt;const hasBackspaceKey=keyCode===8;const isTab=keyCode===9;const isEnter=keyCode===13;const isEsc=keyCode===27;const isSpacebar=keyCode===32;const isLeftArrow=keyCode===37;const isUpArrow=keyCode===38;const isRightArrow=keyCode===39;const isDwArrow=keyCode===40;const hasDeleteKey=keyCode===46;const isF2=keyCode===113;const isContextMenu=keyCode===93;const isControlKey=hasControlKey(evnt);const hasShiftKey=evnt.shiftKey;const hasAltKey=evnt.altKey;const operArrow=isLeftArrow||isUpArrow||isRightArrow||isDwArrow;const operCtxMenu=isContentMenu&&ctxMenuStore.visible&&(isEnter||isSpacebar||operArrow);const isEditStatus=isEnableConf(editConfig)&&actived.column&&actived.row;const childrenField=treeOpts.children||treeOpts.childrenField;const beforeEditMethod=editOpts.beforeEditMethod||editOpts.activeMethod;if(operCtxMenu){// 如果配置了右键菜单; 支持方向键操作、回车
6695
6728
  evnt.preventDefault();if(ctxMenuStore.showChild&&hasChildrenList(ctxMenuStore.selected)){$xeTable.moveCtxMenu(evnt,ctxMenuStore,'selectChild',isLeftArrow,false,ctxMenuStore.selected.children);}else{$xeTable.moveCtxMenu(evnt,ctxMenuStore,'selected',isRightArrow,true,menuList);}}else if(keyboardConfig&&mouseConfig&&mouseOpts.area&&$xeTable.handleKeyboardCellAreaEvent){$xeTable.handleKeyboardCellAreaEvent(evnt);}else if(isEsc){// 如果按下了 Esc 键,关闭快捷菜单、筛选
6696
6729
  if($xeTable.closeMenu){$xeTable.closeMenu();}$xeTable.closeFilter();if(keyboardConfig&&keyboardOpts.isEsc){// 如果是激活编辑状态,则取消编辑
6697
6730
  if(actived.row){const params=actived.args;$xeTable.handleClearEdit(evnt);// 如果配置了选中功能,则为选中状态
6698
6731
  if(mouseOpts.selected){$xeTable.$nextTick(()=>$xeTable.handleSelected(params,evnt));}}}}else if(keyboardConfig&&isSpacebar&&keyboardOpts.isChecked&&selected.row&&selected.column&&(selected.column.type==='checkbox'||selected.column.type==='radio')){// 空格键支持选中复选框
6699
6732
  evnt.preventDefault();if(selected.column.type==='checkbox'){$xeTable.handleToggleCheckRowEvent(evnt,selected.args);}else{$xeTable.triggerRadioRowEvent(evnt,selected.args);}}else if(isF2&&isEnableConf(editConfig)){if(!isEditStatus){// 如果按下了 F2 键
6700
6733
  if(selected.row&&selected.column){evnt.stopPropagation();evnt.preventDefault();$xeTable.handleEdit(selected.args,evnt);}}}else if(isContextMenu){// 如果按下上下文键
6701
- internalData._keyCtx=selected.row&&selected.column&&bodyMenu.length;clearTimeout(internalData.keyCtxTimeout);internalData.keyCtxTimeout=setTimeout(()=>{internalData._keyCtx=false;},1000);}else if(isEnter&&!hasAltKey&&keyboardConfig&&keyboardOpts.isEnter&&(selected.row||actived.row||treeConfig&&(rowOpts.isCurrent||highlightCurrentRow)&&currentRow)){const{isLastEnterAppendRow,beforeEnterMethod,enterMethod}=keyboardOpts;// 退出选中
6734
+ internalData._keyCtx=selected.row&&selected.column&&bodyMenu.length;clearTimeout(internalData.keyCtxTimeout);internalData.keyCtxTimeout=setTimeout(()=>{internalData._keyCtx=false;},1000);}else if(isEnter&&!hasAltKey&&keyboardConfig&&keyboardOpts.isEnter&&(selected.row||actived.row||treeConfig&&(rowOpts.isCurrent||highlightCurrentRow)&&currentRow)){// 退出选中
6702
6735
  if(isControlKey){// 如果是激活编辑状态,则取消编辑
6703
6736
  if(actived.row){const params=actived.args;$xeTable.handleClearEdit(evnt);// 如果配置了选中功能,则为选中状态
6704
6737
  if(mouseConfig&&mouseOpts.selected){$xeTable.$nextTick(()=>$xeTable.handleSelected(params,evnt));}}}else{// 如果是激活状态,退则出到上一行/下一行
6705
- if(selected.row||actived.row){const activeParams=selected.row?selected.args:actived.args;if(hasShiftKey){if(keyboardOpts.enterToTab){$xeTable.moveTabSelected(activeParams,hasShiftKey,evnt);}else{$xeTable.moveEnterSelected(activeParams,isLeftArrow,true,isRightArrow,false,evnt);}}else{if(keyboardOpts.enterToTab){$xeTable.moveTabSelected(activeParams,hasShiftKey,evnt);}else{const activeRow=selected.row||actived.row;const activeColumn=selected.column||actived.column;const _rowIndex=$xeTable.getVTRowIndex(activeRow);const etrParams={row:activeRow,rowIndex:$xeTable.getRowIndex(activeRow),$rowIndex:$xeTable.getVMRowIndex(activeRow),_rowIndex,column:activeColumn,columnIndex:$xeTable.getColumnIndex(activeColumn),$columnIndex:$xeTable.getVMColumnIndex(activeColumn),_columnIndex:$xeTable.getVTColumnIndex(activeColumn),$table:$xeTable};if(!beforeEnterMethod||beforeEnterMethod(etrParams)!==false){// 最后一行按下回车键,自动追加一行
6706
- if(isLastEnterAppendRow){if(_rowIndex>=afterFullData.length-1){$xeTable.insertAt({},-1).then(({row:newRow})=>{$xeTable.scrollToRow(newRow,selected.column);$xeTable.handleSelected({...activeParams,row:newRow},evnt);});$xeTable.dispatchEvent('enter-append-row',etrParams,evnt);return;}}$xeTable.moveEnterSelected(activeParams,isLeftArrow,false,isRightArrow,true,evnt);if(enterMethod){enterMethod(etrParams);}}}}}else if(treeConfig&&(rowOpts.isCurrent||highlightCurrentRow)&&currentRow){// 如果是树形表格当前行回车移动到子节点
6738
+ if(selected.row||actived.row){const activeRow=selected.row||actived.row;const activeColumn=selected.column||actived.column;const activeParams=selected.row?selected.args:actived.args;if(hasShiftKey){if(keyboardOpts.enterToTab){$xeTable.moveTabSelected(activeParams,hasShiftKey,evnt);}else{$xeTable.moveEnterSelected(activeParams,isLeftArrow,true,isRightArrow,false,evnt);}}else{const _rowIndex=$xeTable.getVTRowIndex(activeRow);const _columnIndex=$xeTable.getVTColumnIndex(activeColumn);if(keyboardOpts.enterToTab){const ttrParams={row:activeRow,rowIndex:$xeTable.getRowIndex(activeRow),$rowIndex:$xeTable.getVMRowIndex(activeRow),_rowIndex,column:activeColumn,columnIndex:$xeTable.getColumnIndex(activeColumn),$columnIndex:$xeTable.getVMColumnIndex(activeColumn),_columnIndex,$table:$xeTable};if(!beforeTabMethod||beforeTabMethod(ttrParams)!==false){evnt.preventDefault();// 最后一行按下Tab键,自动追加一行
6739
+ if(isLastTabAppendRow){const newColumn=visibleColumn[0];if(_rowIndex>=afterFullData.length-1&&_columnIndex>=visibleColumn.length-1){if(actived.row){$xeTable.handleClearEdit(evnt);}$xeTable.insertAt({},-1).then(({row:newRow})=>{$xeTable.scrollToRow(newRow,newColumn);$xeTable.handleSelected({...activeParams,row:newRow,column:newColumn},evnt);});$xeTable.dispatchEvent('tab-append-row',ttrParams,evnt);return;}}if(tabMethod){tabMethod(ttrParams);}else{$xeTable.moveTabSelected(activeParams,hasShiftKey,evnt);}}}else{const etrParams={row:activeRow,rowIndex:$xeTable.getRowIndex(activeRow),$rowIndex:$xeTable.getVMRowIndex(activeRow),_rowIndex,column:activeColumn,columnIndex:$xeTable.getColumnIndex(activeColumn),$columnIndex:$xeTable.getVMColumnIndex(activeColumn),_columnIndex,$table:$xeTable};if(!beforeEnterMethod||beforeEnterMethod(etrParams)!==false){evnt.preventDefault();// 最后一行按下回车键,自动追加一行
6740
+ if(isLastEnterAppendRow){if(_rowIndex>=afterFullData.length-1){$xeTable.insertAt({},-1).then(({row:newRow})=>{$xeTable.scrollToRow(newRow,selected.column);$xeTable.handleSelected({...activeParams,row:newRow},evnt);});$xeTable.dispatchEvent('enter-append-row',etrParams,evnt);return;}}if(enterMethod){enterMethod(etrParams);}else{if(actived.row){$xeTable.handleClearEdit(evnt);}$xeTable.moveEnterSelected(activeParams,isLeftArrow,false,isRightArrow,true,evnt);}}}}}else if(treeConfig&&(rowOpts.isCurrent||highlightCurrentRow)&&currentRow){// 如果是树形表格当前行回车移动到子节点
6707
6741
  const childrens=currentRow[childrenField];if(childrens&&childrens.length){evnt.preventDefault();const targetRow=childrens[0];const params={$table:$xeTable,row:targetRow,rowIndex:$xeTable.getRowIndex(targetRow),$rowIndex:$xeTable.getVMRowIndex(targetRow)};$xeTable.setTreeExpand(currentRow,true).then(()=>$xeTable.scrollToRow(targetRow)).then(()=>$xeTable.triggerCurrentRowEvent(evnt,params));}}}}else if(operArrow&&keyboardConfig&&keyboardOpts.isArrow){if(!isEditStatus){// 如果按下了方向键
6708
6742
  if(mouseOpts.selected&&selected.row&&selected.column){$xeTable.moveArrowSelected(selected.args,isLeftArrow,isUpArrow,isRightArrow,isDwArrow,evnt);}else{// 当前行按键上下移动
6709
6743
  if((isUpArrow||isDwArrow)&&(rowOpts.isCurrent||highlightCurrentRow)){$xeTable.moveCurrentRow(isUpArrow,isDwArrow,evnt);}// 当前行按键左右移动
6710
6744
  if((isLeftArrow||isRightArrow)&&(columnOpts.isCurrent||highlightCurrentColumn)){$xeTable.moveCurrentColumn(isLeftArrow,isRightArrow,evnt);}}}}else if(isTab&&keyboardConfig&&keyboardOpts.isTab){// 如果按下了 Tab 键切换
6711
- if(selected.row||selected.column){$xeTable.moveTabSelected(selected.args,hasShiftKey,evnt);}else if(actived.row||actived.column){$xeTable.moveTabSelected(actived.args,hasShiftKey,evnt);}}else if(keyboardConfig&&keyboardOpts.isDel&&hasDeleteKey&&isEnableConf(editConfig)&&(selected.row||selected.column)){// 如果是删除键
6745
+ if(selected.row||actived.row){const activeRow=selected.row||actived.row;const activeColumn=selected.column||actived.column;const activeParams=selected.row?selected.args:actived.args;const _rowIndex=$xeTable.getVTRowIndex(activeRow);const _columnIndex=$xeTable.getVTColumnIndex(activeColumn);const ttrParams={row:activeRow,rowIndex:$xeTable.getRowIndex(activeRow),$rowIndex:$xeTable.getVMRowIndex(activeRow),_rowIndex,column:activeColumn,columnIndex:$xeTable.getColumnIndex(activeColumn),$columnIndex:$xeTable.getVMColumnIndex(activeColumn),_columnIndex,$table:$xeTable};if(!beforeTabMethod||beforeTabMethod(ttrParams)!==false){evnt.preventDefault();// 最后一行按下Tab键,自动追加一行
6746
+ if(isLastTabAppendRow){const newColumn=visibleColumn[0];if(_rowIndex>=afterFullData.length-1&&_columnIndex>=visibleColumn.length-1){if(actived.row){$xeTable.handleClearEdit(evnt);}$xeTable.insertAt({},-1).then(({row:newRow})=>{$xeTable.scrollToRow(newRow,newColumn);$xeTable.handleSelected({...activeParams,row:newRow,column:newColumn},evnt);});$xeTable.dispatchEvent('tab-append-row',ttrParams,evnt);return;}}if(tabMethod){tabMethod(ttrParams);}else{if(actived.row){$xeTable.handleClearEdit(evnt);}$xeTable.moveTabSelected(activeParams,hasShiftKey,evnt);}}}}else if(keyboardConfig&&keyboardOpts.isDel&&hasDeleteKey&&isEnableConf(editConfig)&&(selected.row||selected.column)){// 如果是删除键
6712
6747
  if(!isEditStatus){const{delMethod}=keyboardOpts;const params={row:selected.row,rowIndex:$xeTable.getRowIndex(selected.row),column:selected.column,columnIndex:$xeTable.getColumnIndex(selected.column),$table:$xeTable,$grid:$xeGrid,$gantt:$xeGantt};// 是否被禁用
6713
6748
  if(!beforeEditMethod||beforeEditMethod(params)){if(delMethod){delMethod(params);}else{setCellValue(selected.row,selected.column,null);}// 如果按下 del 键,更新表尾数据
6714
6749
  $xeTable.updateFooter();$xeTable.dispatchEvent('cell-delete-value',params,evnt);}}}else if(hasBackspaceKey&&keyboardConfig&&keyboardOpts.isBack&&isEnableConf(editConfig)&&(selected.row||selected.column)){if(!isEditStatus){const{editMode,backMethod}=keyboardOpts;// 如果是删除键
@@ -6790,7 +6825,7 @@ if(!isSelected&&!halfSelect&&showReserveStatus){halfSelect=!external_root_XEUtil
6790
6825
  */clearCheckboxRow(){const $xeTable=this;const props=$xeTable;const reactData=$xeTable;const internalData=$xeTable;const{treeConfig}=props;const{tableFullData}=internalData;const treeOpts=$xeTable.computeTreeOpts;const childrenField=treeOpts.children||treeOpts.childrenField;const checkboxOpts=$xeTable.computeCheckboxOpts;const{checkField,reserve}=checkboxOpts;// indeterminateField 仅支持读取
6791
6826
  const indeterminateField=checkboxOpts.indeterminateField||checkboxOpts.halfField;if(checkField){const handleClearChecked=item=>{if(treeConfig&&indeterminateField){external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().set(item,indeterminateField,false);}external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().set(item,checkField,false);};if(treeConfig){external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree(tableFullData,handleClearChecked,{children:childrenField});}else{tableFullData.forEach(handleClearChecked);}}if(reserve){tableFullData.forEach(row=>this.handleCheckboxReserveRow(row,false));}reactData.isAllSelected=false;reactData.isIndeterminate=false;internalData.selectCheckboxMaps={};internalData.treeIndeterminateRowMaps={};reactData.updateCheckboxFlag++;return this.$nextTick();},/**
6792
6827
  * 单选,行选中事件
6793
- */triggerRadioRowEvent(evnt,params){const $xeTable=this;const reactData=$xeTable;const{selectRadioRow:oldValue}=reactData;const{row}=params;const radioOpts=$xeTable.computeRadioOpts;const{trigger,checkMethod}=radioOpts;if(trigger==='manual'){return;}evnt.stopPropagation();if(!checkMethod||checkMethod({$table:$xeTable,row})){let newValue=row;let isChange=oldValue!==newValue;if(isChange){handleCheckedRadioRow($xeTable,newValue);}else if(!radioOpts.strict){isChange=oldValue===newValue;if(isChange){newValue=null;$xeTable.clearRadioRow();}}if(isChange){$xeTable.dispatchEvent('radio-change',{oldValue,newValue,...params},evnt);}}},triggerCurrentColumnEvent(evnt,params){const $xeTable=this;const reactData=$xeTable;const{currentColumn:oldValue}=reactData;const columnOpts=$xeTable.computeColumnOpts;const currentColumnOpts=$xeTable.computeCurrentColumnOpts;const beforeRowMethod=currentColumnOpts.beforeSelectMethod||columnOpts.currentMethod;const{column:newValue}=params;const{trigger}=currentColumnOpts;if(trigger==='manual'){return;}const isChange=oldValue!==newValue;if(!beforeRowMethod||beforeRowMethod({column:newValue,$table:$xeTable})){$xeTable.setCurrentColumn(newValue);if(isChange){$xeTable.dispatchEvent('current-column-change',{oldValue,newValue,...params},evnt);}}else{$xeTable.dispatchEvent('current-column-disabled',params,evnt);}},triggerCurrentRowEvent(evnt,params){const $xeTable=this;const reactData=$xeTable;const{currentRow:oldValue}=reactData;const rowOpts=$xeTable.computeRowOpts;const currentRowOpts=$xeTable.computeCurrentRowOpts;const beforeRowMethod=currentRowOpts.beforeSelectMethod||rowOpts.currentMethod;const{row:newValue}=params;const{trigger}=currentRowOpts;if(trigger==='manual'){return;}const isChange=oldValue!==newValue;if(!beforeRowMethod||beforeRowMethod({row:newValue,$table:$xeTable})){$xeTable.setCurrentRow(newValue);if(isChange){$xeTable.dispatchEvent('current-row-change',{oldValue,newValue,...params},evnt);// 已废弃
6828
+ */triggerRadioRowEvent(evnt,params){const $xeTable=this;const reactData=$xeTable;const{selectRadioRow:oldValue}=reactData;const{row}=params;const radioOpts=$xeTable.computeRadioOpts;const{trigger,strict,checkMethod}=radioOpts;if(trigger==='manual'){return;}evnt.stopPropagation();if(!checkMethod||checkMethod({$table:$xeTable,row})){let newValue=row;let isChange=oldValue!==newValue;if(isChange){handleCheckedRadioRow($xeTable,newValue);}else if(!strict){isChange=oldValue===newValue;if(isChange){newValue=null;$xeTable.clearRadioRow();}}if(isChange){$xeTable.dispatchEvent('radio-change',{oldValue,newValue,...params},evnt);}}},triggerCurrentColumnEvent(evnt,params){const $xeTable=this;const reactData=$xeTable;const{currentColumn:oldValue}=reactData;const columnOpts=$xeTable.computeColumnOpts;const currentColumnOpts=$xeTable.computeCurrentColumnOpts;const beforeRowMethod=currentColumnOpts.beforeSelectMethod||columnOpts.currentMethod;const{column:newValue}=params;const{trigger,strict}=currentColumnOpts;if(trigger==='manual'){return;}let isChange=oldValue!==newValue;const selected=!isChange;if(!beforeRowMethod||beforeRowMethod({column:newValue,selected,$table:$xeTable})){if(strict){$xeTable.setCurrentColumn(newValue);}else{isChange=true;if(selected){$xeTable.clearCurrentColumn();}else{$xeTable.setCurrentColumn(newValue);}}if(isChange){$xeTable.dispatchEvent('current-column-change',{oldValue,newValue,...params},evnt);}}else{$xeTable.dispatchEvent('current-column-disabled',params,evnt);}},triggerCurrentRowEvent(evnt,params){const $xeTable=this;const reactData=$xeTable;const{currentRow:oldValue}=reactData;const rowOpts=$xeTable.computeRowOpts;const currentRowOpts=$xeTable.computeCurrentRowOpts;const beforeRowMethod=currentRowOpts.beforeSelectMethod||rowOpts.currentMethod;const{row:newValue}=params;const{trigger,strict}=currentRowOpts;if(trigger==='manual'){return;}let isChange=oldValue!==newValue;const selected=!isChange;if(!beforeRowMethod||beforeRowMethod({row:newValue,selected,$table:$xeTable})){if(strict){$xeTable.setCurrentRow(newValue);}else{isChange=true;if(selected){$xeTable.clearCurrentRow();}else{$xeTable.setCurrentRow(newValue);}}if(isChange){$xeTable.dispatchEvent('current-row-change',{oldValue,newValue,...params},evnt);// 已废弃
6794
6829
  $xeTable.dispatchEvent('current-change',{oldValue,newValue,...params},evnt);}}else{$xeTable.dispatchEvent('current-row-disabled',params,evnt);}},/**
6795
6830
  * 用于当前行,设置某一行为高亮状态
6796
6831
  * @param {Row} row 行对象
@@ -6847,12 +6882,12 @@ if(isEnableConf(editConfig)&&editOpts.trigger==='dblclick'){if(actived.row&&acti
6847
6882
  if(prevDragRow!==dragRow){const dragParams={oldRow:dragRow,newRow:prevDragRow,dragRow,dragPos:prevDragPos,dragToChild:!!prevDragToChild,offsetIndex:dragOffsetIndex};const dragRowid=getRowid($xeTable,dragRow);const dragRowRest=fullAllDataRowIdData[dragRowid]||{};const _dragRowIndex=dragRowRest._index;let dragRowHeight=0;let dragOffsetTop=-1;if(animation){dragRowHeight=getCellRestHeight(dragRowRest,cellOpts,rowOpts,defaultRowHeight);const oldTrEl=el.querySelector(`.vxe-body--row[rowid="${dragRowid}"]`);if(oldTrEl){dragOffsetTop=oldTrEl.offsetTop;}}let oafIndex=-1;let nafIndex=-1;const oldRest=dragRowRest;const newRowid=getRowid($xeTable,prevDragRow);const newRest=fullAllDataRowIdData[newRowid];const oldAllMaps={};let isSelfToChildStatus=false;// 如果为树结构
6848
6883
  if(treeConfig){if(transform){if(oldRest&&newRest){const{level:oldLevel}=oldRest;const{level:newLevel}=newRest;external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree([dragRow],item=>{oldAllMaps[getRowid($xeTable,item)]=item;},{children:mapChildrenField});if(oldLevel&&newLevel){// 子到子
6849
6884
  if(isPeerDrag&&!isCrossDrag){if(oldRest.row[parentField]!==newRest.row[parentField]){// 非同级
6850
- return errRest;}}else{if(!isCrossDrag){return errRest;}if(oldAllMaps[newRowid]){isSelfToChildStatus=true;if(!(isCrossDrag&&isSelfToChildDrag)){if(core_.VxeUI.modal){core_.VxeUI.modal.message({status:'error',content:methods_getI18n('vxe.error.treeDragChild')});}return errRest;}}}}else if(oldLevel){// 子到根
6851
- if(!isCrossDrag){return errRest;}}else if(newLevel){// 根到子
6852
- if(!isCrossDrag){return errRest;}if(oldAllMaps[newRowid]){isSelfToChildStatus=true;if(!(isCrossDrag&&isSelfToChildDrag)){if(core_.VxeUI.modal){core_.VxeUI.modal.message({status:'error',content:methods_getI18n('vxe.error.treeDragChild')});}return errRest;}}}else{// 根到根
6885
+ handleRowDragEndClearStatus($xeTable);return Promise.resolve(errRest);}}else{if(!isCrossDrag){handleRowDragEndClearStatus($xeTable);return Promise.resolve(errRest);}if(oldAllMaps[newRowid]){isSelfToChildStatus=true;if(!(isCrossDrag&&isSelfToChildDrag)){if(core_.VxeUI.modal){core_.VxeUI.modal.message({status:'error',content:methods_getI18n('vxe.error.treeDragChild')});}handleRowDragEndClearStatus($xeTable);return Promise.resolve(errRest);}}}}else if(oldLevel){// 子到根
6886
+ if(!isCrossDrag){handleRowDragEndClearStatus($xeTable);return Promise.resolve(errRest);}}else if(newLevel){// 根到子
6887
+ if(!isCrossDrag){handleRowDragEndClearStatus($xeTable);return Promise.resolve(errRest);}if(oldAllMaps[newRowid]){isSelfToChildStatus=true;if(!(isCrossDrag&&isSelfToChildDrag)){if(core_.VxeUI.modal){core_.VxeUI.modal.message({status:'error',content:methods_getI18n('vxe.error.treeDragChild')});}handleRowDragEndClearStatus($xeTable);return Promise.resolve(errRest);}}}else{// 根到根
6853
6888
  }}}}const isDragToChildFlag=isSelfToChildDrag&&dragToChildMethod?dragToChildMethod(dragParams):prevDragToChild;return Promise.resolve(dEndMethod?dEndMethod(dragParams):true).then(status=>{if(!status){return errRest;}// 如果为树结构
6854
6889
  if(treeConfig){if(transform){// 移出源位置
6855
- if(oldRest&&newRest){const fullList=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toTreeArray(internalData.afterTreeFullData,{key:rowField,parentKey:parentField,children:mapChildrenField});// 移出
6890
+ if(oldRest&&newRest){const fullList=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toTreeArray(internalData.afterTreeFullData,{updated:false,key:rowField,parentKey:parentField,children:mapChildrenField});// 移出
6856
6891
  const otfIndex=$xeTable.findRowIndexOf(fullList,dragRow);fullList.splice(otfIndex,1);// 插入
6857
6892
  const ptfIndex=$xeTable.findRowIndexOf(fullList,prevDragRow);const ntfIndex=ptfIndex+dragOffsetIndex;fullList.splice(ntfIndex,0,dragRow);// 改变层级
6858
6893
  if(isSelfToChildStatus&&isCrossDrag&&isSelfToChildDrag){external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().each(dragRow[childrenField],childRow=>{childRow[parentField]=dragRow[parentField];});}dragRow[parentField]=isDragToChildFlag?prevDragRow[rowField]:prevDragRow[parentField];internalData.tableFullTreeData=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toArrayTree(fullList,{key:rowField,parentKey:parentField,children:childrenField,mapChildren:mapChildrenField});}}}else{// 移出
@@ -6933,7 +6968,7 @@ return this.isRowExpandByRow(row);},/**
6933
6968
  */getTreeStatus(){if(this.treeConfig){return{config:this.treeOpts,rowExpandeds:this.getTreeExpandRecords()};}return null;},/**
6934
6969
  * 判断树节点是否懒加载完成
6935
6970
  * @param {Row} row 行对象
6936
- */isTreeExpandLoaded(row){const $xeTable=this;const{fullAllDataRowIdData}=this;const rowRest=fullAllDataRowIdData[getRowid($xeTable,row)];return rowRest&&!!rowRest.treeLoaded;},clearTreeExpandLoaded(rows){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;const{fullAllDataRowIdData,treeExpandedMaps}=internalData;const treeOpts=$xeTable.computeTreeOpts;const{transform}=treeOpts;if(rows){if(!external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isArray(rows)){rows=[rows];}rows.forEach(row=>{const rowid=getRowid($xeTable,row);const rowRest=fullAllDataRowIdData[rowid];if(rowRest){rowRest.treeLoaded=false;if(treeExpandedMaps[rowid]){delete treeExpandedMaps[rowid];}}});}else{external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().each(fullAllDataRowIdData,rowRest=>{rowRest.treeLoaded=false;});}internalData.treeExpandedMaps={};if(transform){handleVirtualTreeToList($xeTable);$xeTable.handleTableData();}reactData.treeExpandedFlag++;return $xeTable.$nextTick();},/**
6971
+ */isTreeExpandLoaded(row){const $xeTable=this;const{fullAllDataRowIdData}=this;const rowRest=fullAllDataRowIdData[getRowid($xeTable,row)];return rowRest&&!!rowRest.treeLoaded;},clearTreeExpandLoaded(rows){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;const{fullAllDataRowIdData,treeExpandedMaps}=internalData;const treeOpts=$xeTable.computeTreeOpts;const{transform}=treeOpts;if(rows){if(!external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isArray(rows)){rows=[rows];}rows.forEach(row=>{const rowid=getRowid($xeTable,row);const rowRest=fullAllDataRowIdData[rowid];if(rowRest){rowRest.treeLoaded=false;if(treeExpandedMaps[rowid]){delete treeExpandedMaps[rowid];}}});}else{external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().each(fullAllDataRowIdData,rowRest=>{rowRest.treeLoaded=false;});internalData.treeExpandedMaps={};}if(transform){handleVirtualTreeToList($xeTable);$xeTable.handleTableData();}reactData.treeExpandedFlag++;return $xeTable.$nextTick();},/**
6937
6972
  * 重新懒加载树节点,并展开该节点
6938
6973
  * @param {Row} row 行对象
6939
6974
  */reloadTreeExpand(row){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;const{treeExpandLazyLoadedMaps}=internalData;const treeOpts=$xeTable.computeTreeOpts;const{transform,lazy}=treeOpts;const hasChildField=treeOpts.hasChild||treeOpts.hasChildField;const rowid=getRowid($xeTable,row);if(lazy&&row[hasChildField]&&!treeExpandLazyLoadedMaps[rowid]){return $xeTable.clearTreeExpandLoaded(row).then(()=>{return handleAsyncTreeExpandChilds($xeTable,row);}).then(()=>{if(transform){handleVirtualTreeToList($xeTable);$xeTable.handleTableData();}reactData.treeExpandedFlag++;}).then(()=>{return $xeTable.recalculate();});}return $xeTable.$nextTick();},reloadTreeChilds(row){const $xeTable=this;warnLog('vxe.error.delFunc',['reloadTreeChilds','reloadTreeExpand']);// 即将废弃
@@ -6987,18 +7022,18 @@ if(bodyScrollElem&&bodyTableElem&&bodyScrollElem.scrollTop+clientHeight>=maxYHei
6987
7022
  * 如果有滚动条,则滚动到对应的行
6988
7023
  * @param {Row} row 行对象
6989
7024
  * @param {ColumnInfo} column 列配置
6990
- */scrollToRow(row,fieldOrColumn){const $xeTable=this;const props=$xeTable;const reactData=$xeTable;const{isAllOverflow,scrollYLoad,scrollXLoad}=reactData;const rest=[];if(row){if(props.treeConfig){rest.push($xeTable.scrollToTreeRow(row));}else{rest.push(rowToVisible($xeTable,row));}}if(fieldOrColumn){rest.push(handleScrollToRowColumn($xeTable,fieldOrColumn,row));}return Promise.all(rest).then(()=>{if(row){if(!isAllOverflow&&(scrollYLoad||scrollXLoad)){calcCellHeight($xeTable);calcCellWidth($xeTable);}return $xeTable.$nextTick();}});},/**
7025
+ */scrollToRow(row,fieldOrColumn,options){const $xeTable=this;const props=$xeTable;const reactData=$xeTable;const{isAllOverflow,scrollYLoad,scrollXLoad}=reactData;const rest=[];if(row){if(props.treeConfig){rest.push($xeTable.scrollToTreeRow(row));}else{rest.push(rowToVisible($xeTable,row));}}if(fieldOrColumn){rest.push(handleScrollToRowColumn($xeTable,fieldOrColumn,row,options));}return Promise.all(rest).then(()=>{if(row){if(!isAllOverflow&&(scrollYLoad||scrollXLoad)){calcCellHeight($xeTable);calcCellWidth($xeTable);}return $xeTable.$nextTick();}});},/**
6991
7026
  * 如果有滚动条,则滚动到第一行
6992
- */scrollToStartRow(fieldOrColumn){const $xeTable=this;const internalData=$xeTable;const{afterFullData}=internalData;return $xeTable.scrollToRow(afterFullData[0],fieldOrColumn);},/**
7027
+ */scrollToStartRow(fieldOrColumn,options){const $xeTable=this;const internalData=$xeTable;const{afterFullData}=internalData;return $xeTable.scrollToRow(afterFullData[0],fieldOrColumn,options);},/**
6993
7028
  * 如果有滚动条,则滚动到最后一行
6994
- */scrollToEndRow(fieldOrColumn){const $xeTable=this;const internalData=$xeTable;const{afterFullData}=internalData;return $xeTable.scrollToRow(afterFullData[afterFullData.length-1],fieldOrColumn);},/**
7029
+ */scrollToEndRow(fieldOrColumn,options){const $xeTable=this;const internalData=$xeTable;const{afterFullData}=internalData;return $xeTable.scrollToRow(afterFullData[afterFullData.length-1],fieldOrColumn,options);},/**
6995
7030
  * 如果有滚动条,则滚动到对应的列
6996
7031
  * @param {ColumnInfo} column 列配置
6997
- */scrollToColumn(fieldOrColumn){const $xeTable=this;return handleScrollToRowColumn($xeTable,fieldOrColumn);},/**
7032
+ */scrollToColumn(fieldOrColumn,options){const $xeTable=this;return handleScrollToRowColumn($xeTable,null,fieldOrColumn,options);},/**
6998
7033
  * 如果有滚动条,则滚动到第一列
6999
- */scrollToStartColumn(){const $xeTable=this;const internalData=$xeTable;const{visibleColumn}=internalData;return $xeTable.scrollToColumn(visibleColumn[0]);},/**
7034
+ */scrollToStartColumn(options){const $xeTable=this;const internalData=$xeTable;const{visibleColumn}=internalData;return $xeTable.scrollToColumn(visibleColumn[0],options);},/**
7000
7035
  * 如果有滚动条,则滚动到最后一列
7001
- */scrollToEndColumn(){const $xeTable=this;const internalData=$xeTable;const{visibleColumn}=internalData;return $xeTable.scrollToColumn(visibleColumn[visibleColumn.length-1]);},/**
7036
+ */scrollToEndColumn(options){const $xeTable=this;const internalData=$xeTable;const{visibleColumn}=internalData;return $xeTable.scrollToColumn(visibleColumn[visibleColumn.length-1],options);},/**
7002
7037
  * 对于树形结构中,可以直接滚动到指定深层节点中
7003
7038
  * 对于某些特定的场景可能会用到,比如定位到某一节点
7004
7039
  * @param {Row} row 行对象
@@ -7010,7 +7045,7 @@ if(bodyScrollElem&&bodyTableElem&&bodyScrollElem.scrollTop+clientHeight>=maxYHei
7010
7045
  * 更新列状态 updateStatus({ row, column }, cellValue)
7011
7046
  * 如果组件值 v-model 发生 change 时,调用改函数用于更新某一列编辑状态
7012
7047
  * 如果单元格配置了校验规则,则会进行校验
7013
- */updateStatus(slotParams,cellValue){const $xeTable=this;const props=$xeTable;return this.$nextTick().then(()=>{const{editRules}=props;if(slotParams&&editRules){return $xeTable.handleCellRuleUpdateStatus('change',slotParams,cellValue);}});},/**
7048
+ */updateStatus(slotParams,cellValue){const $xeTable=this;const props=$xeTable;const internalData=$xeTable;return this.$nextTick().then(()=>{const{editRules}=props;const{isActivated}=internalData;if(isActivated&&slotParams&&editRules){return $xeTable.handleCellRuleUpdateStatus('change',slotParams,cellValue);}});},/**
7014
7049
  * 设置合并单元格 [{ row: Row|number, column: ColumnInfo|number, rowspan: number, colspan: number }]
7015
7050
  */setMergeCells(merges){const $xeTable=this;const props=$xeTable;const reactData=$xeTable;const internalData=$xeTable;if(props.spanMethod){errLog('vxe.error.errConflicts',['merge-cells','span-method']);}handleBodyMerge($xeTable,merges);$xeTable.handleUpdateBodyMerge();return $xeTable.$nextTick().then(()=>{const{expandColumn}=reactData;const{mergeBodyList}=internalData;if(expandColumn&&mergeBodyList.length){warnLog('vxe.error.errConflicts',['type=expand','merge-cells | span-method']);}$xeTable.updateCellAreas();return updateStyle($xeTable);});},/**
7016
7051
  * 移除单元格合并 [{row:Row|number, col:ColumnInfo|number}]
@@ -7198,7 +7233,8 @@ function renderTdColumn(h, $xeTable, seq, rowid, fixedType, isOptimizeMode, rowL
7198
7233
  afterFullData,
7199
7234
  mergeBodyList,
7200
7235
  scrollXStore,
7201
- scrollYStore
7236
+ scrollYStore,
7237
+ keepUpdateFieldMaps
7202
7238
  } = tableInternalData;
7203
7239
  const cellOpts = $xeTable.computeCellOpts;
7204
7240
  const validOpts = $xeTable.computeValidOpts;
@@ -7228,6 +7264,7 @@ function renderTdColumn(h, $xeTable, seq, rowid, fixedType, isOptimizeMode, rowL
7228
7264
  selectCellToRow
7229
7265
  } = areaOpts;
7230
7266
  const {
7267
+ field,
7231
7268
  type,
7232
7269
  cellRender,
7233
7270
  editRender,
@@ -7408,8 +7445,8 @@ function renderTdColumn(h, $xeTable, seq, rowid, fixedType, isOptimizeMode, rowL
7408
7445
  }
7409
7446
  }
7410
7447
  // 如果编辑列开启显示状态
7411
- if (!fixedHiddenColumn && editConfig && (editRender || cellRender) && (editOpts.showStatus || editOpts.showUpdateStatus)) {
7412
- isDirty = $xeTable.isUpdateByRow(row, column.field);
7448
+ if (!fixedHiddenColumn && editConfig && (editOpts.showStatus || editOpts.showUpdateStatus) && keepUpdateFieldMaps[field]) {
7449
+ isDirty = $xeTable.isUpdateByRow(row, field);
7413
7450
  }
7414
7451
  const isVNAutoHeight = !hasEllipsis && (scrollYLoad || scrollXLoad);
7415
7452
  let cellHeight = getCellRestHeight(rowRest, cellOpts, rowOpts, defaultRowHeight);
@@ -7715,6 +7752,13 @@ function renderRows(h, _vm, fixedType, isOptimizeMode, tableData, tableColumn) {
7715
7752
  mode: expandMode
7716
7753
  } = expandOpts;
7717
7754
  if (expandMode === 'fixed') {
7755
+ const currExpHeight = rowRest.expandHeight;
7756
+ let expHeight = 0;
7757
+ if (rowExpandHeightFlag) {
7758
+ if (currExpHeight || expandHeight) {
7759
+ expHeight = (currExpHeight || expandHeight || 0) + 1;
7760
+ }
7761
+ }
7718
7762
  rows.push(h('tr', {
7719
7763
  class: 'vxe-body--row-expanded-place',
7720
7764
  key: `expand_${rowid}`,
@@ -7727,7 +7771,7 @@ function renderRows(h, _vm, fixedType, isOptimizeMode, tableData, tableColumn) {
7727
7771
  colspan: tableColumn.length
7728
7772
  },
7729
7773
  style: {
7730
- height: `${rowExpandHeightFlag ? rowRest.expandHeight || expandHeight : 0}px`
7774
+ height: `${expHeight}px`
7731
7775
  }
7732
7776
  })]));
7733
7777
  } else {
@@ -15754,12 +15798,24 @@ const convertToRows = originColumns => {
15754
15798
  };
15755
15799
  return Promise.resolve((beforeQueryAll || ajaxMethods)(params)).then(rest => {
15756
15800
  const listProp = resConfigs.list;
15757
- handleOptions.data = (listProp ? external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isFunction(listProp) ? listProp({
15758
- data: rest,
15759
- $table: $xeTable,
15760
- $grid: $xeGrid,
15761
- $gantt: $xeGantt
15762
- }) : external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(rest, listProp) : rest) || [];
15801
+ let tdData = [];
15802
+ if (listProp) {
15803
+ if (external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isFunction(listProp)) {
15804
+ tdData = listProp({
15805
+ data: rest,
15806
+ $table: $xeTable,
15807
+ $grid: $xeGrid,
15808
+ $gantt: $xeGantt
15809
+ });
15810
+ } else {
15811
+ tdData = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isArray(rest) ? rest : external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(rest, listProp);
15812
+ }
15813
+ } else {
15814
+ if (external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isArray(rest)) {
15815
+ tdData = rest;
15816
+ }
15817
+ }
15818
+ handleOptions.data = tdData;
15763
15819
  if (afterQueryAll) {
15764
15820
  afterQueryAll(params);
15765
15821
  }
@@ -16144,9 +16200,21 @@ function handleMoveSelected($xeTable, evnt, args, isLeftArrow, isUpArrow, isRigh
16144
16200
  visibleColumn
16145
16201
  } = internalData;
16146
16202
  const params = Object.assign({}, args);
16147
- const _rowIndex = $xeTable.getVTRowIndex(params.row);
16148
- const _columnIndex = $xeTable.getVTColumnIndex(params.column);
16149
- evnt.preventDefault();
16203
+ const {
16204
+ row,
16205
+ column
16206
+ } = params;
16207
+ const _rowIndex = $xeTable.getVTRowIndex(row);
16208
+ const _columnIndex = $xeTable.getVTColumnIndex(column);
16209
+ const refTableBody = $xeTable.$refs.refTableBody;
16210
+ const tableBodyElem = refTableBody ? refTableBody.$el : null;
16211
+ const tableWidth = tableBodyElem ? tableBodyElem.clientWidth : 0;
16212
+ let colAlign = isLeftArrow || isRightArrow || column.renderWidth < tableWidth;
16213
+ if (isLeftArrow && _columnIndex >= 0 || isRightArrow && _columnIndex <= visibleColumn.length - 1) {
16214
+ colAlign = false;
16215
+ } else {
16216
+ evnt.preventDefault();
16217
+ }
16150
16218
  if (isUpArrow && _rowIndex > 0) {
16151
16219
  // 移动到上一行
16152
16220
  params.rowIndex = _rowIndex - 1;
@@ -16164,7 +16232,9 @@ function handleMoveSelected($xeTable, evnt, args, isLeftArrow, isUpArrow, isRigh
16164
16232
  params.columnIndex = _columnIndex + 1;
16165
16233
  params.column = visibleColumn[params.columnIndex];
16166
16234
  }
16167
- $xeTable.scrollToRow(params.row, params.column).then(() => {
16235
+ $xeTable.scrollToRow(params.row, params.column, {
16236
+ colAlign
16237
+ }).then(() => {
16168
16238
  params.cell = $xeTable.getCellElement(params.row, params.column);
16169
16239
  $xeTable.handleSelected(params, evnt);
16170
16240
  });
@@ -16766,21 +16836,23 @@ function validRuleValue(rule, val, required) {
16766
16836
  }
16767
16837
  return true;
16768
16838
  }
16769
- function checkRuleStatus(rule, val) {
16839
+ function checkRuleStatus(rule, row, val) {
16770
16840
  const {
16771
- required
16841
+ required,
16842
+ field
16772
16843
  } = rule;
16773
- const isEmptyVal = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isArray(val) ? !val.length : eqEmptyValue(val);
16844
+ const currVal = field ? external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(row, field) : val;
16845
+ const isEmptyVal = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isArray(currVal) ? !currVal.length : eqEmptyValue(currVal);
16774
16846
  if (required) {
16775
16847
  if (isEmptyVal) {
16776
16848
  return false;
16777
16849
  }
16778
- if (!validRuleValue(rule, val, required)) {
16850
+ if (!validRuleValue(rule, currVal, required)) {
16779
16851
  return false;
16780
16852
  }
16781
16853
  } else {
16782
16854
  if (!isEmptyVal) {
16783
- if (!validRuleValue(rule, val, required)) {
16855
+ if (!validRuleValue(rule, currVal, required)) {
16784
16856
  return false;
16785
16857
  }
16786
16858
  }
@@ -17134,7 +17206,7 @@ function beginValidate($xeTable, rows, cols, cb, isFull) {
17134
17206
  }
17135
17207
  }
17136
17208
  } else {
17137
- if (!checkRuleStatus(rule, cellValue)) {
17209
+ if (!checkRuleStatus(rule, row, cellValue)) {
17138
17210
  internalData.validRuleErr = true;
17139
17211
  errorRules.push(new Rule(rule));
17140
17212
  }
@@ -18106,7 +18178,9 @@ function renderRowExpandedVNs(h, $xeTable) {
18106
18178
  rowid
18107
18179
  },
18108
18180
  style: cellStyle
18109
- }, expandColumn.renderData(h, expandParams)));
18181
+ }, [h('div', {
18182
+ class: 'vxe-body--row-expanded-content'
18183
+ }, expandColumn.renderData(h, expandParams))]));
18110
18184
  });
18111
18185
  }
18112
18186
  return h('div', {
@@ -18280,6 +18354,7 @@ function renderBody(h, $xeTable) {
18280
18354
  reScrollFlag: 0,
18281
18355
  reLayoutFlag: 0,
18282
18356
  footFlag: 0,
18357
+ kfFlag: 0,
18283
18358
  mergeFooteCellFlag: 0,
18284
18359
  crossTableDragRowInfo: crossTableDragRowGlobal
18285
18360
  };
@@ -18508,6 +18583,11 @@ function renderBody(h, $xeTable) {
18508
18583
  const props = $xeTable;
18509
18584
  return Object.assign({}, table_getConfig().table.aggregateConfig || table_getConfig().table.rowGroupConfig, props.aggregateConfig || props.rowGroupConfig);
18510
18585
  },
18586
+ computeAggregateAccuracyOpts() {
18587
+ const $xeTable = this;
18588
+ const props = $xeTable;
18589
+ return Object.assign({}, table_getConfig().table.aggregateAccuracyConfig, props.aggregateAccuracyConfig);
18590
+ },
18511
18591
  computeRowGroupOpts() {
18512
18592
  const $xeTable = this;
18513
18593
  return $xeTable.computeAggregateOpts;
@@ -18615,7 +18695,14 @@ function renderBody(h, $xeTable) {
18615
18695
  return this.computeEditOpts;
18616
18696
  },
18617
18697
  computeEditOpts() {
18618
- return Object.assign({}, table_getConfig().table.editConfig, this.editConfig);
18698
+ const $xeTable = this;
18699
+ const props = $xeTable;
18700
+ return Object.assign({}, table_getConfig().table.editConfig, props.editConfig);
18701
+ },
18702
+ computeEditDirtyOpts() {
18703
+ const $xeTable = this;
18704
+ const props = $xeTable;
18705
+ return Object.assign({}, table_getConfig().table.editDirtyConfig, props.editDirtyConfig);
18619
18706
  },
18620
18707
  sortOpts() {
18621
18708
  return this.computeSortOpts;
@@ -19031,6 +19118,47 @@ function renderBody(h, $xeTable) {
19031
19118
  }
19032
19119
  return false;
19033
19120
  },
19121
+ computeKeepFields() {
19122
+ const $xeTable = this;
19123
+ const reactData = $xeTable;
19124
+ const internalData = $xeTable;
19125
+ const {
19126
+ tableFullColumn
19127
+ } = internalData;
19128
+ const {
19129
+ updateColFlag
19130
+ } = reactData;
19131
+ const editDirtyOpts = $xeTable.computeEditDirtyOpts;
19132
+ const {
19133
+ includeFields,
19134
+ excludeFields
19135
+ } = editDirtyOpts;
19136
+ const kpFields = [];
19137
+ if (updateColFlag) {
19138
+ if (includeFields && includeFields.length) {
19139
+ return includeFields;
19140
+ }
19141
+ const exfMaps = {};
19142
+ if (excludeFields && excludeFields.length) {
19143
+ excludeFields.forEach(field => {
19144
+ exfMaps[field] = 1;
19145
+ });
19146
+ }
19147
+ for (let i = 0; i < tableFullColumn.length; i++) {
19148
+ const column = tableFullColumn[i];
19149
+ const {
19150
+ field,
19151
+ type,
19152
+ editRender,
19153
+ cellRender
19154
+ } = column;
19155
+ if (field && !type && (editRender || cellRender) && !exfMaps[field]) {
19156
+ kpFields.push(field);
19157
+ }
19158
+ }
19159
+ }
19160
+ return kpFields;
19161
+ },
19034
19162
  computeTableBorder() {
19035
19163
  const $xeTable = this;
19036
19164
  const props = $xeTable;
@@ -19248,6 +19376,22 @@ function renderBody(h, $xeTable) {
19248
19376
  internalData.footerFullDataRowData = {};
19249
19377
  $xeTable.updateFooter();
19250
19378
  },
19379
+ updateColFlag() {
19380
+ this.kfFlag++;
19381
+ },
19382
+ computeKeepFields() {
19383
+ this.kfFlag++;
19384
+ },
19385
+ kfFlag() {
19386
+ const $xeTable = this;
19387
+ const internalData = $xeTable;
19388
+ const keepFields = $xeTable.computeKeepFields;
19389
+ const kpfMaps = {};
19390
+ keepFields.forEach(field => {
19391
+ kpfMaps[field] = 1;
19392
+ });
19393
+ internalData.keepUpdateFieldMaps = kpfMaps;
19394
+ },
19251
19395
  syncResize(value) {
19252
19396
  const $xeTable = this;
19253
19397
  if (value) {
@@ -19710,6 +19854,7 @@ function renderBody(h, $xeTable) {
19710
19854
  beforeDestroy() {
19711
19855
  const $xeTable = this;
19712
19856
  const reactData = $xeTable;
19857
+ const internalData = $xeTable;
19713
19858
  const teleportWrapperEl = $xeTable.$refs.refTeleportWrapper;
19714
19859
  if (teleportWrapperEl && teleportWrapperEl.parentElement) {
19715
19860
  teleportWrapperEl.parentElement.removeChild(teleportWrapperEl);
@@ -19737,14 +19882,13 @@ function renderBody(h, $xeTable) {
19737
19882
  table_globalEvents.off($xeTable, 'keydown');
19738
19883
  table_globalEvents.off($xeTable, 'resize');
19739
19884
  table_globalEvents.off($xeTable, 'contextmenu');
19740
- this.preventEvent(null, 'beforeDestroy');
19885
+ $xeTable.preventEvent(null, 'beforeDestroy');
19741
19886
  external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().assign(reactData, createReactData());
19887
+ external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().assign(internalData, createInternalData());
19742
19888
  },
19743
19889
  destroyed() {
19744
19890
  const $xeTable = this;
19745
- const internalData = $xeTable;
19746
- this.preventEvent(null, 'destroyed');
19747
- external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().assign(internalData, createInternalData());
19891
+ $xeTable.preventEvent(null, 'destroyed');
19748
19892
  },
19749
19893
  render(h) {
19750
19894
  // 使用已安装的组件,如果未安装则不渲染
@@ -20149,6 +20293,13 @@ const {
20149
20293
  globalMixins: toolbar_globalMixins,
20150
20294
  renderEmptyElement: toolbar_renderEmptyElement
20151
20295
  } = core_.VxeUI;
20296
+ function toolbar_createReactData() {
20297
+ return {
20298
+ isRefresh: false,
20299
+ connectFlag: 0,
20300
+ columns: []
20301
+ };
20302
+ }
20152
20303
  function toolbar_createInternalData() {
20153
20304
  return {
20154
20305
  connectTable: null
@@ -20199,11 +20350,7 @@ function toolbar_createInternalData() {
20199
20350
  },
20200
20351
  data() {
20201
20352
  const xID = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().uniqueId();
20202
- const reactData = {
20203
- isRefresh: false,
20204
- connectFlag: 0,
20205
- columns: []
20206
- };
20353
+ const reactData = toolbar_createReactData();
20207
20354
  const internalData = toolbar_createInternalData();
20208
20355
  return {
20209
20356
  xID,
@@ -21007,7 +21154,9 @@ function toolbar_createInternalData() {
21007
21154
  },
21008
21155
  destroyed() {
21009
21156
  const $xeToolbar = this;
21157
+ const reactData = $xeToolbar.reactData;
21010
21158
  const internalData = $xeToolbar.internalData;
21159
+ external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().assign(reactData, toolbar_createReactData());
21011
21160
  external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().assign(internalData, toolbar_createInternalData());
21012
21161
  },
21013
21162
  render(h) {
@@ -21070,6 +21219,24 @@ external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default(
21070
21219
  return $xeTable && $xeTable[name](...args);
21071
21220
  };
21072
21221
  });
21222
+ function grid_createReactData() {
21223
+ return {
21224
+ tableLoading: false,
21225
+ proxyInited: false,
21226
+ isZMax: false,
21227
+ tableData: [],
21228
+ filterData: [],
21229
+ formData: {},
21230
+ sortData: [],
21231
+ footerData: [],
21232
+ tZindex: 0,
21233
+ tablePage: {
21234
+ total: 0,
21235
+ pageSize: grid_getConfig().pager?.pageSize || 10,
21236
+ currentPage: 1
21237
+ }
21238
+ };
21239
+ }
21073
21240
  function grid_createInternalData() {
21074
21241
  return {
21075
21242
  uFoot: false
@@ -21102,22 +21269,7 @@ function grid_createInternalData() {
21102
21269
  },
21103
21270
  data() {
21104
21271
  const xID = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().uniqueId();
21105
- const reactData = {
21106
- tableLoading: false,
21107
- proxyInited: false,
21108
- isZMax: false,
21109
- tableData: [],
21110
- filterData: [],
21111
- formData: {},
21112
- sortData: [],
21113
- footerData: [],
21114
- tZindex: 0,
21115
- tablePage: {
21116
- total: 0,
21117
- pageSize: grid_getConfig().pager?.pageSize || 10,
21118
- currentPage: 1
21119
- }
21120
- };
21272
+ const reactData = grid_createReactData();
21121
21273
  const internalData = grid_createInternalData();
21122
21274
  return {
21123
21275
  xID,
@@ -23048,10 +23200,12 @@ function grid_createInternalData() {
23048
23200
  $xeGrid.initToolbar();
23049
23201
  $xeGrid.initProxy();
23050
23202
  },
23051
- destroyed() {
23203
+ beforeDestroy() {
23052
23204
  const $xeGrid = this;
23205
+ const reactData = $xeGrid.reactData;
23053
23206
  const internalData = $xeGrid.internalData;
23054
23207
  grid_globalEvents.off($xeGrid, 'keydown');
23208
+ external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().assign(reactData, grid_createReactData());
23055
23209
  external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().assign(internalData, grid_createInternalData());
23056
23210
  },
23057
23211
  render(h) {
@@ -23953,6 +24107,20 @@ function handleNumberCell(h, renderOpts, params) {
23953
24107
  class: 'is--negative'
23954
24108
  } : {});
23955
24109
  }
24110
+ function handleFormatDatePicker(renderOpts, params) {
24111
+ const {
24112
+ props = {}
24113
+ } = renderOpts;
24114
+ const {
24115
+ cellValue
24116
+ } = params;
24117
+ if (cellValue) {
24118
+ if (props.type !== 'time') {
24119
+ return getLabelFormatDate(cellValue, props);
24120
+ }
24121
+ }
24122
+ return cellValue;
24123
+ }
23956
24124
  function handleFormatSelect(renderOpts, params) {
23957
24125
  const {
23958
24126
  cellValue
@@ -24230,6 +24398,7 @@ render_renderer.mixin({
24230
24398
  }
24231
24399
  return getCellLabelVNs(h, renderOpts, params, cellValue);
24232
24400
  },
24401
+ tableCellFormatter: handleFormatDatePicker,
24233
24402
  renderTableDefault: defaultEditRender,
24234
24403
  createTableFilterOptions: defaultFilterOptions,
24235
24404
  renderTableFilter: defaultFilterRender,
@@ -25175,6 +25344,8 @@ const Toolbar = VxeToolbar;
25175
25344
  uploadErr: '上传失败',
25176
25345
  uploadSuccess: '上传成功',
25177
25346
  moreBtnText: '更多({0})',
25347
+ moreImgBtnText: '图片({0})',
25348
+ moreFileBtnText: '文件({0})',
25178
25349
  viewItemTitle: '点击查看',
25179
25350
  morePopup: {
25180
25351
  readTitle: '查看列表',
@@ -25394,6 +25565,8 @@ const Toolbar = VxeToolbar;
25394
25565
  },
25395
25566
  fnr: {
25396
25567
  title: '查找和替换',
25568
+ titleFd: '查找',
25569
+ titleRe: '替换',
25397
25570
  findLabel: '查找',
25398
25571
  replaceLabel: '替换',
25399
25572
  findTitle: '查找内容:',
@@ -25543,6 +25716,8 @@ const Toolbar = VxeToolbar;
25543
25716
  },
25544
25717
  fnr: {
25545
25718
  title: '查找和替换',
25719
+ titleFd: '查找',
25720
+ titleRe: '替换',
25546
25721
  findLabel: '查找',
25547
25722
  replaceLabel: '替换',
25548
25723
  findTitle: '查找内容:',