vxe-table 4.12.0-beta.9 → 4.12.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (185) hide show
  1. package/es/grid/src/grid.js +45 -36
  2. package/es/locale/lang/ar-EG.js +7 -1
  3. package/es/locale/lang/de-DE.js +7 -1
  4. package/es/locale/lang/en-US.js +7 -1
  5. package/es/locale/lang/es-ES.js +7 -1
  6. package/es/locale/lang/fr-FR.js +7 -1
  7. package/es/locale/lang/hu-HU.js +7 -1
  8. package/es/locale/lang/hy-AM.js +7 -1
  9. package/es/locale/lang/id-ID.js +7 -1
  10. package/es/locale/lang/it-IT.js +7 -1
  11. package/es/locale/lang/ja-JP.js +7 -1
  12. package/es/locale/lang/ko-KR.js +7 -1
  13. package/es/locale/lang/nb-NO.js +7 -1
  14. package/es/locale/lang/pt-BR.js +7 -1
  15. package/es/locale/lang/ru-RU.js +7 -1
  16. package/es/locale/lang/th-TH.js +7 -1
  17. package/es/locale/lang/ug-CN.js +7 -1
  18. package/es/locale/lang/uk-UA.js +7 -1
  19. package/es/locale/lang/vi-VN.js +7 -1
  20. package/es/locale/lang/zh-CHT.js +7 -1
  21. package/es/locale/lang/zh-CN.js +7 -1
  22. package/es/style.css +1 -1
  23. package/es/table/module/custom/hook.js +1 -1
  24. package/es/table/module/custom/panel.js +4 -2
  25. package/es/table/module/edit/hook.js +29 -33
  26. package/es/table/module/export/export-panel.js +3 -2
  27. package/es/table/module/export/import-panel.js +3 -2
  28. package/es/table/module/filter/panel.js +12 -2
  29. package/es/table/module/keyboard/hook.js +105 -30
  30. package/es/table/module/menu/hook.js +2 -1
  31. package/es/table/module/validator/hook.js +4 -5
  32. package/es/table/render/index.js +3 -3
  33. package/es/table/src/body.js +45 -27
  34. package/es/table/src/cell.js +43 -24
  35. package/es/table/src/columnInfo.js +2 -2
  36. package/es/table/src/footer.js +12 -7
  37. package/es/table/src/header.js +12 -7
  38. package/es/table/src/props.js +4 -0
  39. package/es/table/src/table.js +501 -512
  40. package/es/table/src/util.js +34 -6
  41. package/es/ui/index.js +4 -3
  42. package/es/ui/src/log.js +1 -1
  43. package/helper/vetur/attributes.json +1 -1
  44. package/helper/vetur/tags.json +1 -1
  45. package/lib/grid/src/grid.js +42 -40
  46. package/lib/grid/src/grid.min.js +1 -1
  47. package/lib/index.umd.js +12594 -1185
  48. package/lib/index.umd.min.js +1 -1
  49. package/lib/locale/lang/ar-EG.js +7 -1
  50. package/lib/locale/lang/ar-EG.min.js +1 -1
  51. package/lib/locale/lang/de-DE.js +7 -1
  52. package/lib/locale/lang/de-DE.min.js +1 -1
  53. package/lib/locale/lang/en-US.js +7 -1
  54. package/lib/locale/lang/en-US.min.js +1 -1
  55. package/lib/locale/lang/en-US.umd.js +7 -1
  56. package/lib/locale/lang/es-ES.js +7 -1
  57. package/lib/locale/lang/es-ES.min.js +1 -1
  58. package/lib/locale/lang/es-ES.umd.js +7 -1
  59. package/lib/locale/lang/fr-FR.js +7 -1
  60. package/lib/locale/lang/fr-FR.min.js +1 -1
  61. package/lib/locale/lang/hu-HU.js +7 -1
  62. package/lib/locale/lang/hu-HU.min.js +1 -1
  63. package/lib/locale/lang/hu-HU.umd.js +7 -1
  64. package/lib/locale/lang/hy-AM.js +7 -1
  65. package/lib/locale/lang/hy-AM.min.js +1 -1
  66. package/lib/locale/lang/id-ID.js +7 -1
  67. package/lib/locale/lang/id-ID.min.js +1 -1
  68. package/lib/locale/lang/it-IT.js +7 -1
  69. package/lib/locale/lang/it-IT.min.js +1 -1
  70. package/lib/locale/lang/ja-JP.js +7 -1
  71. package/lib/locale/lang/ja-JP.min.js +1 -1
  72. package/lib/locale/lang/ja-JP.umd.js +7 -1
  73. package/lib/locale/lang/ko-KR.js +7 -1
  74. package/lib/locale/lang/ko-KR.min.js +1 -1
  75. package/lib/locale/lang/ko-KR.umd.js +7 -1
  76. package/lib/locale/lang/nb-NO.js +7 -1
  77. package/lib/locale/lang/nb-NO.min.js +1 -1
  78. package/lib/locale/lang/pt-BR.js +7 -1
  79. package/lib/locale/lang/pt-BR.min.js +1 -1
  80. package/lib/locale/lang/pt-BR.umd.js +7 -1
  81. package/lib/locale/lang/ru-RU.js +7 -1
  82. package/lib/locale/lang/ru-RU.min.js +1 -1
  83. package/lib/locale/lang/ru-RU.umd.js +7 -1
  84. package/lib/locale/lang/th-TH.js +7 -1
  85. package/lib/locale/lang/th-TH.min.js +1 -1
  86. package/lib/locale/lang/ug-CN.js +7 -1
  87. package/lib/locale/lang/ug-CN.min.js +1 -1
  88. package/lib/locale/lang/uk-UA.js +7 -1
  89. package/lib/locale/lang/uk-UA.min.js +1 -1
  90. package/lib/locale/lang/uk-UA.umd.js +7 -1
  91. package/lib/locale/lang/vi-VN.js +7 -1
  92. package/lib/locale/lang/vi-VN.min.js +1 -1
  93. package/lib/locale/lang/zh-CHT.js +7 -1
  94. package/lib/locale/lang/zh-CHT.min.js +1 -1
  95. package/lib/locale/lang/zh-CN.js +7 -1
  96. package/lib/locale/lang/zh-CN.min.js +1 -1
  97. package/lib/locale/lang/zh-CN.umd.js +7 -1
  98. package/lib/style.css +1 -1
  99. package/lib/table/module/custom/hook.js +1 -1
  100. package/lib/table/module/custom/hook.min.js +1 -1
  101. package/lib/table/module/custom/panel.js +4 -2
  102. package/lib/table/module/custom/panel.min.js +1 -1
  103. package/lib/table/module/edit/hook.js +36 -45
  104. package/lib/table/module/edit/hook.min.js +1 -1
  105. package/lib/table/module/export/export-panel.js +3 -2
  106. package/lib/table/module/export/export-panel.min.js +1 -1
  107. package/lib/table/module/export/import-panel.js +3 -2
  108. package/lib/table/module/export/import-panel.min.js +1 -1
  109. package/lib/table/module/filter/panel.js +8 -2
  110. package/lib/table/module/filter/panel.min.js +1 -1
  111. package/lib/table/module/keyboard/hook.js +113 -31
  112. package/lib/table/module/keyboard/hook.min.js +1 -1
  113. package/lib/table/module/menu/hook.js +2 -1
  114. package/lib/table/module/menu/hook.min.js +1 -1
  115. package/lib/table/module/validator/hook.js +6 -10
  116. package/lib/table/module/validator/hook.min.js +1 -1
  117. package/lib/table/render/index.js +4 -3
  118. package/lib/table/render/index.min.js +1 -1
  119. package/lib/table/src/body.js +53 -26
  120. package/lib/table/src/body.min.js +1 -1
  121. package/lib/table/src/cell.js +49 -25
  122. package/lib/table/src/cell.min.js +1 -1
  123. package/lib/table/src/columnInfo.js +2 -4
  124. package/lib/table/src/columnInfo.min.js +1 -1
  125. package/lib/table/src/footer.js +12 -5
  126. package/lib/table/src/footer.min.js +1 -1
  127. package/lib/table/src/header.js +12 -5
  128. package/lib/table/src/header.min.js +1 -1
  129. package/lib/table/src/props.js +4 -0
  130. package/lib/table/src/props.min.js +1 -1
  131. package/lib/table/src/table.js +594 -564
  132. package/lib/table/src/table.min.js +1 -1
  133. package/lib/table/src/util.js +36 -6
  134. package/lib/table/src/util.min.js +1 -1
  135. package/lib/ui/index.js +4 -3
  136. package/lib/ui/index.min.js +1 -1
  137. package/lib/ui/src/log.js +1 -1
  138. package/lib/ui/src/log.min.js +1 -1
  139. package/package.json +2 -2
  140. package/packages/grid/src/grid.ts +49 -42
  141. package/packages/locale/lang/ar-EG.ts +7 -1
  142. package/packages/locale/lang/de-DE.ts +7 -1
  143. package/packages/locale/lang/en-US.ts +7 -1
  144. package/packages/locale/lang/es-ES.ts +7 -1
  145. package/packages/locale/lang/fr-FR.ts +7 -1
  146. package/packages/locale/lang/hu-HU.ts +7 -1
  147. package/packages/locale/lang/hy-AM.ts +7 -1
  148. package/packages/locale/lang/id-ID.ts +7 -1
  149. package/packages/locale/lang/it-IT.ts +7 -1
  150. package/packages/locale/lang/ja-JP.ts +7 -1
  151. package/packages/locale/lang/ko-KR.ts +7 -1
  152. package/packages/locale/lang/nb-NO.ts +7 -1
  153. package/packages/locale/lang/pt-BR.ts +7 -1
  154. package/packages/locale/lang/ru-RU.ts +7 -1
  155. package/packages/locale/lang/th-TH.ts +7 -1
  156. package/packages/locale/lang/ug-CN.ts +7 -1
  157. package/packages/locale/lang/uk-UA.ts +7 -1
  158. package/packages/locale/lang/vi-VN.ts +7 -1
  159. package/packages/locale/lang/zh-CHT.ts +7 -1
  160. package/packages/locale/lang/zh-CN.ts +7 -1
  161. package/packages/table/module/custom/hook.ts +1 -1
  162. package/packages/table/module/custom/panel.ts +6 -2
  163. package/packages/table/module/edit/hook.ts +30 -33
  164. package/packages/table/module/export/export-panel.ts +4 -2
  165. package/packages/table/module/export/import-panel.ts +4 -2
  166. package/packages/table/module/filter/panel.ts +12 -2
  167. package/packages/table/module/keyboard/hook.ts +106 -32
  168. package/packages/table/module/menu/hook.ts +3 -1
  169. package/packages/table/module/validator/hook.ts +5 -5
  170. package/packages/table/render/index.ts +3 -4
  171. package/packages/table/src/body.ts +46 -27
  172. package/packages/table/src/cell.ts +43 -24
  173. package/packages/table/src/columnInfo.ts +3 -2
  174. package/packages/table/src/footer.ts +13 -7
  175. package/packages/table/src/header.ts +13 -7
  176. package/packages/table/src/props.ts +4 -0
  177. package/packages/table/src/table.ts +513 -518
  178. package/packages/table/src/util.ts +39 -6
  179. package/packages/ui/index.ts +3 -2
  180. /package/es/{iconfont.1741337003908.ttf → iconfont.1743045589885.ttf} +0 -0
  181. /package/es/{iconfont.1741337003908.woff → iconfont.1743045589885.woff} +0 -0
  182. /package/es/{iconfont.1741337003908.woff2 → iconfont.1743045589885.woff2} +0 -0
  183. /package/lib/{iconfont.1741337003908.ttf → iconfont.1743045589885.ttf} +0 -0
  184. /package/lib/{iconfont.1741337003908.woff → iconfont.1743045589885.woff} +0 -0
  185. /package/lib/{iconfont.1741337003908.woff2 → iconfont.1743045589885.woff2} +0 -0
@@ -39,6 +39,7 @@ const {
39
39
  useFns,
40
40
  renderEmptyElement
41
41
  } = _ui.VxeUI;
42
+ const supportMaxRow = 5e6;
42
43
  const customStorageKey = 'VXE_CUSTOM_STORE';
43
44
  const maxYHeight = 5e6;
44
45
  const maxXWidth = 5e6;
@@ -93,8 +94,6 @@ var _default = exports.default = (0, _vue.defineComponent)({
93
94
  isAllSelected: false,
94
95
  // 复选框属性,有选中且非全选状态
95
96
  isIndeterminate: false,
96
- // 复选框属性,已选中的行集合
97
- selectCheckboxMaps: {},
98
97
  // 当前行
99
98
  currentRow: null,
100
99
  // 单选框属性,选中列
@@ -108,16 +107,6 @@ var _default = exports.default = (0, _vue.defineComponent)({
108
107
  // 树节点列信息
109
108
  treeNodeColumn: null,
110
109
  hasFixedColumn: false,
111
- // 已展开的行集合
112
- rowExpandedMaps: {},
113
- // 懒加载中的展开行的集合
114
- rowExpandLazyLoadedMaps: {},
115
- // 已展开树节点集合
116
- treeExpandedMaps: {},
117
- // 懒加载中的树节点的集合
118
- treeExpandLazyLoadedMaps: {},
119
- // 树节点不确定状态的集合
120
- treeIndeterminateMaps: {},
121
110
  // 合并单元格的对象集
122
111
  mergeList: [],
123
112
  // 合并表尾数据的对象集
@@ -126,8 +115,6 @@ var _default = exports.default = (0, _vue.defineComponent)({
126
115
  upDataFlag: 0,
127
116
  // 刷新列标识,当列的特定属性被改变时,触发表格刷新列
128
117
  reColumnFlag: 0,
129
- // 已标记的对象集
130
- pendingRowMaps: {},
131
118
  // 初始化标识
132
119
  initStore: {
133
120
  filter: false,
@@ -211,9 +198,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
211
198
  focused: {
212
199
  row: null,
213
200
  column: null
214
- },
215
- insertMaps: {},
216
- removeMaps: {}
201
+ }
217
202
  },
218
203
  // 存放 tooltip 相关信息
219
204
  tooltipStore: {
@@ -271,6 +256,12 @@ var _default = exports.default = (0, _vue.defineComponent)({
271
256
  isHeader: false,
272
257
  isFooter: false
273
258
  },
259
+ rowExpandedFlag: 1,
260
+ treeExpandedFlag: 1,
261
+ updateCheckboxFlag: 1,
262
+ pendingRowFlag: 1,
263
+ insertRowFlag: 1,
264
+ removeRowFlag: 1,
274
265
  rowHeightStore: {
275
266
  default: 48,
276
267
  medium: 44,
@@ -287,6 +278,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
287
278
  rowExpandHeightFlag: 1,
288
279
  calcCellHeightFlag: 1,
289
280
  resizeHeightFlag: 1,
281
+ resizeWidthFlag: 1,
290
282
  isCustomStatus: false,
291
283
  isDragRowMove: false,
292
284
  dragRow: null,
@@ -369,7 +361,22 @@ var _default = exports.default = (0, _vue.defineComponent)({
369
361
  fullDataRowIdData: {},
370
362
  fullColumnIdData: {},
371
363
  fullColumnFieldData: {},
372
- // prevDragRow: null,
364
+ // 已展开的行集合
365
+ rowExpandedMaps: {},
366
+ // 懒加载中的展开行的集合
367
+ rowExpandLazyLoadedMaps: {},
368
+ // 已展开树节点集合
369
+ treeExpandedMaps: {},
370
+ // 懒加载中的树节点的集合
371
+ treeExpandLazyLoadedMaps: {},
372
+ // 复选框属性,已选中的行集合
373
+ selectCheckboxMaps: {},
374
+ // 已标记的对象集
375
+ pendingRowMaps: {},
376
+ // 已新增的临时行
377
+ insertRowMaps: {},
378
+ // 已删除行
379
+ removeRowMaps: {},
373
380
  inited: false,
374
381
  tooltipTimeout: null,
375
382
  initStatus: false,
@@ -445,10 +452,10 @@ var _default = exports.default = (0, _vue.defineComponent)({
445
452
  return virtualXOpts;
446
453
  });
447
454
  const computeScrollXThreshold = (0, _vue.computed)(() => {
448
- const sXOpts = computeSXOpts.value;
455
+ const virtualXOpts = computeVirtualXOpts.value;
449
456
  const {
450
457
  threshold
451
- } = sXOpts;
458
+ } = virtualXOpts;
452
459
  if (threshold) {
453
460
  return _xeUtils.default.toNumber(threshold);
454
461
  }
@@ -479,10 +486,10 @@ var _default = exports.default = (0, _vue.defineComponent)({
479
486
  return !!(scrollbarOpts.y && scrollbarOpts.y.position === 'left');
480
487
  });
481
488
  const computeScrollYThreshold = (0, _vue.computed)(() => {
482
- const sYOpts = computeSYOpts.value;
489
+ const virtualYOpts = computeVirtualYOpts.value;
483
490
  const {
484
491
  threshold
485
- } = sYOpts;
492
+ } = virtualYOpts;
486
493
  if (threshold) {
487
494
  return _xeUtils.default.toNumber(threshold);
488
495
  }
@@ -499,18 +506,36 @@ var _default = exports.default = (0, _vue.defineComponent)({
499
506
  const computeColumnOpts = (0, _vue.computed)(() => {
500
507
  return Object.assign({}, getConfig().table.columnConfig, props.columnConfig);
501
508
  });
509
+ const computeCurrentColumnOpts = (0, _vue.computed)(() => {
510
+ return Object.assign({}, getConfig().table.currentColumnConfig, props.currentColumnConfig);
511
+ });
502
512
  const computeCellOpts = (0, _vue.computed)(() => {
503
- return Object.assign({}, getConfig().table.cellConfig, props.cellConfig);
513
+ const cellOpts = Object.assign({}, getConfig().table.cellConfig, props.cellConfig);
514
+ if (cellOpts.height) {
515
+ cellOpts.height = _xeUtils.default.toNumber(cellOpts.height);
516
+ }
517
+ return cellOpts;
504
518
  });
505
519
  const computeHeaderCellOpts = (0, _vue.computed)(() => {
506
- return Object.assign({}, getConfig().table.headerCellConfig, props.headerCellConfig);
520
+ const headerCellOpts = Object.assign({}, getConfig().table.headerCellConfig, props.headerCellConfig);
521
+ if (headerCellOpts.height) {
522
+ headerCellOpts.height = _xeUtils.default.toNumber(headerCellOpts.height);
523
+ }
524
+ return headerCellOpts;
507
525
  });
508
526
  const computeFooterCellOpts = (0, _vue.computed)(() => {
509
- return Object.assign({}, getConfig().table.footerCellConfig, props.footerCellConfig);
527
+ const footerCellOpts = Object.assign({}, getConfig().table.footerCellConfig, props.footerCellConfig);
528
+ if (footerCellOpts.height) {
529
+ footerCellOpts.height = _xeUtils.default.toNumber(footerCellOpts.height);
530
+ }
531
+ return footerCellOpts;
510
532
  });
511
533
  const computeRowOpts = (0, _vue.computed)(() => {
512
534
  return Object.assign({}, getConfig().table.rowConfig, props.rowConfig);
513
535
  });
536
+ const computeCurrentRowOpts = (0, _vue.computed)(() => {
537
+ return Object.assign({}, getConfig().table.currentRowConfig, props.currentRowConfig);
538
+ });
514
539
  const computeRowDragOpts = (0, _vue.computed)(() => {
515
540
  return Object.assign({}, getConfig().table.rowDragConfig, props.rowDragConfig);
516
541
  });
@@ -668,15 +693,21 @@ var _default = exports.default = (0, _vue.defineComponent)({
668
693
  });
669
694
  const computeTableRowExpandedList = (0, _vue.computed)(() => {
670
695
  const {
671
- rowExpandedMaps,
696
+ rowExpandedFlag,
672
697
  tableData,
673
698
  expandColumn
674
699
  } = reactData;
700
+ const {
701
+ rowExpandedMaps
702
+ } = internalData;
703
+ const {
704
+ handleGetRowId
705
+ } = (0, _util.createHandleGetRowId)($xeTable);
675
706
  const expandList = [];
676
- if (expandColumn) {
707
+ if (expandColumn && rowExpandedFlag) {
677
708
  const rowKeys = {};
678
709
  tableData.forEach(row => {
679
- rowKeys[(0, _util.getRowid)($xeTable, row)] = true;
710
+ rowKeys[handleGetRowId(row)] = true;
680
711
  });
681
712
  _xeUtils.default.each(rowExpandedMaps, (row, rowid) => {
682
713
  if (rowKeys[rowid]) {
@@ -817,13 +848,16 @@ var _default = exports.default = (0, _vue.defineComponent)({
817
848
  computeScrollbarXToTop,
818
849
  computeScrollbarYToLeft,
819
850
  computeColumnOpts,
851
+ computeCurrentColumnOpts,
820
852
  computeScrollXThreshold,
821
853
  computeScrollYThreshold,
854
+ computeRowHeightMaps,
822
855
  computeDefaultRowHeight,
823
856
  computeCellOpts,
824
857
  computeHeaderCellOpts,
825
858
  computeFooterCellOpts,
826
859
  computeRowOpts,
860
+ computeCurrentRowOpts,
827
861
  computeRowDragOpts,
828
862
  computeColumnDragOpts,
829
863
  computeResizeOpts,
@@ -871,6 +905,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
871
905
  internalData,
872
906
  getRefMaps: () => refMaps,
873
907
  getComputeMaps: () => computeMaps,
908
+ xeGrid: $xeGrid,
874
909
  xegrid: $xeGrid
875
910
  };
876
911
  const eqCellValue = (row1, row2, field) => {
@@ -1057,12 +1092,15 @@ var _default = exports.default = (0, _vue.defineComponent)({
1057
1092
  toVisibleIndex = Math.floor(startTop / defaultRowHeight) - 1;
1058
1093
  visibleSize = Math.ceil(clientHeight / defaultRowHeight) + 1;
1059
1094
  } else {
1095
+ const {
1096
+ handleGetRowId
1097
+ } = (0, _util.createHandleGetRowId)($xeTable);
1060
1098
  let leftIndex = 0;
1061
1099
  let rightIndex = afterFullData.length;
1062
1100
  while (leftIndex < rightIndex) {
1063
1101
  const rIndex = Math.floor((leftIndex + rightIndex) / 2);
1064
1102
  const row = afterFullData[rIndex];
1065
- const rowid = (0, _util.getRowid)($xeTable, row);
1103
+ const rowid = handleGetRowId(row);
1066
1104
  const rowRest = fullAllDataRowIdData[rowid] || {};
1067
1105
  if (rowRest.oTop <= startTop) {
1068
1106
  leftIndex = rIndex + 1;
@@ -1073,7 +1111,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
1073
1111
  toVisibleIndex = Math.max(0, leftIndex < afterFullData.length ? leftIndex - 2 : 0);
1074
1112
  for (let rIndex = toVisibleIndex, rLen = afterFullData.length; rIndex < rLen; rIndex++) {
1075
1113
  const row = afterFullData[rIndex];
1076
- const rowid = (0, _util.getRowid)($xeTable, row);
1114
+ const rowid = handleGetRowId(row);
1077
1115
  const rowRest = fullAllDataRowIdData[rowid] || {};
1078
1116
  visibleSize++;
1079
1117
  if (rowRest.oTop > endTop || visibleSize >= 100) {
@@ -1114,18 +1152,16 @@ var _default = exports.default = (0, _vue.defineComponent)({
1114
1152
  };
1115
1153
  const setMerges = (merges, mList, rowList) => {
1116
1154
  if (merges) {
1117
- const {
1118
- treeConfig
1119
- } = props;
1155
+ // const { treeConfig } = props
1120
1156
  const {
1121
1157
  visibleColumn
1122
1158
  } = internalData;
1123
1159
  if (!_xeUtils.default.isArray(merges)) {
1124
1160
  merges = [merges];
1125
1161
  }
1126
- if (treeConfig && merges.length) {
1127
- (0, _log.errLog)('vxe.error.noTree', ['merge-cells | merge-footer-items']);
1128
- }
1162
+ // if (treeConfig && merges.length) {
1163
+ // errLog('vxe.error.noTree', ['merge-cells | merge-footer-items'])
1164
+ // }
1129
1165
  merges.forEach(item => {
1130
1166
  let {
1131
1167
  row,
@@ -1172,18 +1208,16 @@ var _default = exports.default = (0, _vue.defineComponent)({
1172
1208
  const removeMerges = (merges, mList, rowList) => {
1173
1209
  const rest = [];
1174
1210
  if (merges) {
1175
- const {
1176
- treeConfig
1177
- } = props;
1211
+ // const { treeConfig } = props
1178
1212
  const {
1179
1213
  visibleColumn
1180
1214
  } = internalData;
1181
1215
  if (!_xeUtils.default.isArray(merges)) {
1182
1216
  merges = [merges];
1183
1217
  }
1184
- if (treeConfig && merges.length) {
1185
- (0, _log.errLog)('vxe.error.noTree', ['merge-cells | merge-footer-items']);
1186
- }
1218
+ // if (treeConfig && merges.length) {
1219
+ // errLog('vxe.error.noTree', ['merge-cells | merge-footer-items'])
1220
+ // }
1187
1221
  merges.forEach(item => {
1188
1222
  let {
1189
1223
  row,
@@ -1375,7 +1409,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
1375
1409
  fullColumnFieldData[field] = rest;
1376
1410
  } else {
1377
1411
  if (storage && !type || columnOpts.drag && (isCrossDrag || isSelfToChildDrag)) {
1378
- (0, _log.errLog)('vxe.error.reqProp', [`${column.getTitle() || type || ''} -> column.field`]);
1412
+ (0, _log.errLog)('vxe.error.reqProp', [`${column.getTitle() || type || ''} -> column.field=?`]);
1379
1413
  }
1380
1414
  }
1381
1415
  if (!hasFixed && fixed) {
@@ -1632,6 +1666,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
1632
1666
  internalData.headerHeight = headerHeight;
1633
1667
  internalData.footerHeight = footerHeight;
1634
1668
  reactData.overflowX = overflowX;
1669
+ reactData.resizeWidthFlag++;
1635
1670
  updateColumnOffsetLeft();
1636
1671
  updateHeight();
1637
1672
  reactData.parentHeight = Math.max(internalData.headerHeight + footerHeight + 20, $xeTable.getParentHeight());
@@ -1664,9 +1699,12 @@ var _default = exports.default = (0, _vue.defineComponent)({
1664
1699
  const defaultRowHeight = computeDefaultRowHeight.value;
1665
1700
  const el = refElem.value;
1666
1701
  if (!isAllOverflow && scrollYLoad && el) {
1702
+ const {
1703
+ handleGetRowId
1704
+ } = (0, _util.createHandleGetRowId)($xeTable);
1667
1705
  el.setAttribute('data-calc-row', 'Y');
1668
1706
  tableData.forEach(row => {
1669
- const rowid = (0, _util.getRowid)($xeTable, row);
1707
+ const rowid = handleGetRowId(row);
1670
1708
  const rowRest = fullAllDataRowIdData[rowid];
1671
1709
  if (rowRest) {
1672
1710
  const reHeight = calcCellAutoHeight(rowRest, el);
@@ -1711,9 +1749,12 @@ var _default = exports.default = (0, _vue.defineComponent)({
1711
1749
  fullDataRowIdData,
1712
1750
  fullAllDataRowIdData
1713
1751
  } = internalData;
1752
+ const {
1753
+ handleGetRowId
1754
+ } = (0, _util.createHandleGetRowId)($xeTable);
1714
1755
  const fullMaps = {};
1715
1756
  afterFullData.forEach((row, index) => {
1716
- const rowid = (0, _util.getRowid)($xeTable, row);
1757
+ const rowid = handleGetRowId(row);
1717
1758
  const rowRest = fullAllDataRowIdData[rowid];
1718
1759
  const seq = index + 1;
1719
1760
  if (rowRest) {
@@ -1765,8 +1806,11 @@ var _default = exports.default = (0, _vue.defineComponent)({
1765
1806
  const childrenField = treeOpts.children || treeOpts.childrenField;
1766
1807
  const fullMaps = {};
1767
1808
  if (treeConfig) {
1809
+ const {
1810
+ handleGetRowId
1811
+ } = (0, _util.createHandleGetRowId)($xeTable);
1768
1812
  _xeUtils.default.eachTree(afterTreeFullData, (row, index, items, path) => {
1769
- const rowid = (0, _util.getRowid)($xeTable, row);
1813
+ const rowid = handleGetRowId(row);
1770
1814
  const rowRest = fullAllDataRowIdData[rowid];
1771
1815
  const seq = path.map((num, i) => i % 2 === 0 ? Number(num) + 1 : '.').join('');
1772
1816
  if (rowRest) {
@@ -1811,19 +1855,20 @@ var _default = exports.default = (0, _vue.defineComponent)({
1811
1855
  treeConfig
1812
1856
  } = props;
1813
1857
  const {
1858
+ fullAllDataRowIdData,
1814
1859
  treeExpandedMaps
1815
- } = reactData;
1816
- const {
1817
- fullAllDataRowIdData
1818
1860
  } = internalData;
1819
1861
  const treeOpts = computeTreeOpts.value;
1820
1862
  const childrenField = treeOpts.children || treeOpts.childrenField;
1821
1863
  if (treeConfig && treeOpts.transform) {
1864
+ const {
1865
+ handleGetRowId
1866
+ } = (0, _util.createHandleGetRowId)($xeTable);
1822
1867
  const fullData = [];
1823
1868
  const expandMaps = {};
1824
1869
  _xeUtils.default.eachTree(internalData.afterTreeFullData, (row, index, items, path, parentRow) => {
1825
- const rowid = (0, _util.getRowid)($xeTable, row);
1826
- const parentRowid = (0, _util.getRowid)($xeTable, parentRow);
1870
+ const rowid = handleGetRowId(row);
1871
+ const parentRowid = handleGetRowId(parentRow);
1827
1872
  if (!parentRow || expandMaps[parentRowid] && treeExpandedMaps[parentRowid]) {
1828
1873
  const rowRest = fullAllDataRowIdData[rowid];
1829
1874
  if (rowRest) {
@@ -1865,6 +1910,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
1865
1910
  mapChildrenField
1866
1911
  } = treeOpts;
1867
1912
  const {
1913
+ isEvery,
1868
1914
  remote: allRemoteFilter,
1869
1915
  filterMethod: allFilterMethod
1870
1916
  } = filterOpts;
@@ -1977,7 +2023,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
1977
2023
  // 筛选虚拟树
1978
2024
  tableTree = _xeUtils.default.searchTree(tableFullTreeData, handleFilter, {
1979
2025
  original: true,
1980
- isEvery: true,
2026
+ isEvery,
1981
2027
  children: mapChildrenField,
1982
2028
  mapChildren: childrenField
1983
2029
  });
@@ -1991,7 +2037,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
1991
2037
  // 还原虚拟树
1992
2038
  tableTree = _xeUtils.default.searchTree(tableFullTreeData, () => true, {
1993
2039
  original: true,
1994
- isEvery: true,
2040
+ isEvery,
1995
2041
  children: mapChildrenField,
1996
2042
  mapChildren: childrenField
1997
2043
  });
@@ -2050,7 +2096,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
2050
2096
  // 还原虚拟树
2051
2097
  tableTree = _xeUtils.default.searchTree(tableFullTreeData, () => true, {
2052
2098
  original: true,
2053
- isEvery: true,
2099
+ isEvery,
2054
2100
  children: treeOpts.mapChildrenField,
2055
2101
  mapChildren: childrenField
2056
2102
  });
@@ -2066,7 +2112,6 @@ var _default = exports.default = (0, _vue.defineComponent)({
2066
2112
  };
2067
2113
  const updateStyle = () => {
2068
2114
  const {
2069
- border,
2070
2115
  showHeaderOverflow: allColumnHeaderOverflow,
2071
2116
  showFooterOverflow: allColumnFooterOverflow,
2072
2117
  mouseConfig,
@@ -2091,7 +2136,6 @@ var _default = exports.default = (0, _vue.defineComponent)({
2091
2136
  } = reactData;
2092
2137
  const {
2093
2138
  visibleColumn,
2094
- fullColumnIdData,
2095
2139
  tableHeight,
2096
2140
  headerHeight,
2097
2141
  footerHeight,
@@ -2108,7 +2152,6 @@ var _default = exports.default = (0, _vue.defineComponent)({
2108
2152
  const osbWidth = overflowY ? scrollbarWidth : 0;
2109
2153
  const osbHeight = overflowX ? scrollbarHeight : 0;
2110
2154
  const emptyPlaceholderElem = refEmptyPlaceholder.value;
2111
- const cellOffsetWidth = computeCellOffsetWidth.value;
2112
2155
  const mouseOpts = computeMouseOpts.value;
2113
2156
  const expandOpts = computeExpandOpts.value;
2114
2157
  const bodyWrapperElem = (0, _util.getRefElem)(elemStore['main-body-wrapper']);
@@ -2247,36 +2290,6 @@ var _default = exports.default = (0, _vue.defineComponent)({
2247
2290
  if (tableElem) {
2248
2291
  tableElem.style.width = tWidth ? `${tWidth}px` : '';
2249
2292
  }
2250
- const listElem = (0, _util.getRefElem)(elemStore[`${name}-${layout}-list`]);
2251
- if (isGroup && listElem) {
2252
- _xeUtils.default.arrayEach(listElem.querySelectorAll('.col--group'), thElem => {
2253
- const colNode = $xeTable.getColumnNode(thElem);
2254
- if (colNode) {
2255
- const column = colNode.item;
2256
- const {
2257
- showHeaderOverflow
2258
- } = column;
2259
- const cellOverflow = _xeUtils.default.isBoolean(showHeaderOverflow) ? showHeaderOverflow : allColumnHeaderOverflow;
2260
- const showEllipsis = cellOverflow === 'ellipsis';
2261
- const showTitle = cellOverflow === 'title';
2262
- const showTooltip = cellOverflow === true || cellOverflow === 'tooltip';
2263
- const hasEllipsis = showTitle || showTooltip || showEllipsis;
2264
- let childWidth = 0;
2265
- let countChild = 0;
2266
- if (hasEllipsis) {
2267
- _xeUtils.default.eachTree(column.children, item => {
2268
- if (!item.children || !column.children.length) {
2269
- countChild++;
2270
- }
2271
- childWidth += item.renderWidth;
2272
- }, {
2273
- children: 'children'
2274
- });
2275
- }
2276
- thElem.style.width = hasEllipsis ? `${childWidth - countChild - (border ? 2 : 0)}px` : '';
2277
- }
2278
- });
2279
- }
2280
2293
  } else if (layout === 'body') {
2281
2294
  if (currScrollElem) {
2282
2295
  currScrollElem.style.maxHeight = customMaxHeight ? `${bodyMaxHeight}px` : '';
@@ -2370,58 +2383,6 @@ var _default = exports.default = (0, _vue.defineComponent)({
2370
2383
  tableElem.style.width = tWidth ? `${tWidth}px` : '';
2371
2384
  }
2372
2385
  }
2373
- const colgroupElem = (0, _util.getRefElem)(elemStore[`${name}-${layout}-colgroup`]);
2374
- if (colgroupElem) {
2375
- _xeUtils.default.arrayEach(colgroupElem.children, colElem => {
2376
- const colid = colElem.getAttribute('name');
2377
- if (fullColumnIdData[colid]) {
2378
- const colRest = fullColumnIdData[colid];
2379
- const column = colRest.column;
2380
- const {
2381
- showHeaderOverflow,
2382
- showFooterOverflow,
2383
- showOverflow
2384
- } = column;
2385
- let cellOverflow;
2386
- colElem.style.width = `${column.renderWidth}px`;
2387
- if (layout === 'header') {
2388
- cellOverflow = _xeUtils.default.isUndefined(showHeaderOverflow) || _xeUtils.default.isNull(showHeaderOverflow) ? allColumnHeaderOverflow : showHeaderOverflow;
2389
- } else if (layout === 'footer') {
2390
- cellOverflow = _xeUtils.default.isUndefined(showFooterOverflow) || _xeUtils.default.isNull(showFooterOverflow) ? allColumnFooterOverflow : showFooterOverflow;
2391
- } else {
2392
- cellOverflow = _xeUtils.default.isUndefined(showOverflow) || _xeUtils.default.isNull(showOverflow) ? isAllOverflow : showOverflow;
2393
- }
2394
- const showEllipsis = cellOverflow === 'ellipsis';
2395
- const showTitle = cellOverflow === 'title';
2396
- const showTooltip = cellOverflow === true || cellOverflow === 'tooltip';
2397
- let hasEllipsis = showTitle || showTooltip || showEllipsis;
2398
- const listElem = (0, _util.getRefElem)(elemStore[`${name}-${layout}-list`]);
2399
- // 纵向虚拟滚动不支持动态行高
2400
- if (scrollYLoad && !hasEllipsis) {
2401
- hasEllipsis = true;
2402
- }
2403
- if (listElem) {
2404
- _xeUtils.default.arrayEach(listElem.querySelectorAll(`.${column.id}`), elem => {
2405
- const colspan = parseInt(elem.getAttribute('colspan') || 1);
2406
- const cellElem = elem.querySelector('.vxe-cell');
2407
- let colWidth = column.renderWidth;
2408
- if (cellElem) {
2409
- if (colspan > 1) {
2410
- const columnIndex = $xeTable.getColumnIndex(column);
2411
- for (let index = 1; index < colspan; index++) {
2412
- const nextColumn = $xeTable.getColumns(columnIndex + index);
2413
- if (nextColumn) {
2414
- colWidth += nextColumn.renderWidth;
2415
- }
2416
- }
2417
- }
2418
- cellElem.style.width = hasEllipsis ? `${colWidth - cellOffsetWidth * colspan}px` : '';
2419
- }
2420
- });
2421
- }
2422
- }
2423
- });
2424
- }
2425
2386
  });
2426
2387
  });
2427
2388
  if (currentRow) {
@@ -2467,7 +2428,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
2467
2428
  order
2468
2429
  } = item;
2469
2430
  if (field && order) {
2470
- const column = tableMethods.getColumnByField(field);
2431
+ const column = $xeTable.getColumnByField(field);
2471
2432
  if (column && column.sortable) {
2472
2433
  column.order = order;
2473
2434
  column.sortTime = Date.now() + index;
@@ -2475,7 +2436,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
2475
2436
  }
2476
2437
  });
2477
2438
  if (!sortOpts.remote) {
2478
- tablePrivateMethods.handleTableData(true).then(updateStyle);
2439
+ $xeTable.handleTableData(true).then(updateStyle);
2479
2440
  }
2480
2441
  }
2481
2442
  }
@@ -2556,7 +2517,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
2556
2517
  expandRowKeys
2557
2518
  } = expandOpts;
2558
2519
  if (expandAll) {
2559
- tableMethods.setAllRowExpand(true);
2520
+ $xeTable.setAllRowExpand(true);
2560
2521
  } else if (expandRowKeys) {
2561
2522
  const defExpandeds = [];
2562
2523
  expandRowKeys.forEach(rowid => {
@@ -2564,7 +2525,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
2564
2525
  defExpandeds.push(fullDataRowIdData[rowid].row);
2565
2526
  }
2566
2527
  });
2567
- tableMethods.setRowExpand(defExpandeds, true);
2528
+ $xeTable.setRowExpand(defExpandeds, true);
2568
2529
  }
2569
2530
  }
2570
2531
  };
@@ -2613,12 +2574,10 @@ var _default = exports.default = (0, _vue.defineComponent)({
2613
2574
  const {
2614
2575
  treeConfig
2615
2576
  } = props;
2616
- const {
2617
- selectCheckboxMaps
2618
- } = reactData;
2619
2577
  const {
2620
2578
  afterFullData,
2621
- checkboxReserveRowMap
2579
+ checkboxReserveRowMap,
2580
+ selectCheckboxMaps
2622
2581
  } = internalData;
2623
2582
  const treeOpts = computeTreeOpts.value;
2624
2583
  const childrenField = treeOpts.children || treeOpts.childrenField;
@@ -2628,6 +2587,9 @@ var _default = exports.default = (0, _vue.defineComponent)({
2628
2587
  reserve,
2629
2588
  checkMethod
2630
2589
  } = checkboxOpts;
2590
+ const {
2591
+ handleGetRowId
2592
+ } = (0, _util.createHandleGetRowId)($xeTable);
2631
2593
  // indeterminateField 仅支持读取
2632
2594
  const indeterminateField = checkboxOpts.indeterminateField || checkboxOpts.halfField;
2633
2595
  const selectRowMaps = {};
@@ -2641,7 +2603,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
2641
2603
  row
2642
2604
  })) {
2643
2605
  if (checked) {
2644
- selectRowMaps[(0, _util.getRowid)($xeTable, row)] = row;
2606
+ selectRowMaps[handleGetRowId(row)] = row;
2645
2607
  }
2646
2608
  _xeUtils.default.set(row, checkField, checked);
2647
2609
  }
@@ -2673,7 +2635,8 @@ var _default = exports.default = (0, _vue.defineComponent)({
2673
2635
  if (isForce || !checkMethod || checkMethod({
2674
2636
  row
2675
2637
  })) {
2676
- selectRowMaps[(0, _util.getRowid)($xeTable, row)] = row;
2638
+ const rowid = handleGetRowId(row);
2639
+ selectRowMaps[rowid] = row;
2677
2640
  }
2678
2641
  }, {
2679
2642
  children: childrenField
@@ -2685,7 +2648,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
2685
2648
  */
2686
2649
  if (!isForce && checkMethod) {
2687
2650
  _xeUtils.default.eachTree(afterFullData, row => {
2688
- const rowid = (0, _util.getRowid)($xeTable, row);
2651
+ const rowid = handleGetRowId(row);
2689
2652
  if (checkMethod({
2690
2653
  row
2691
2654
  }) ? 0 : selectCheckboxMaps[rowid]) {
@@ -2705,7 +2668,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
2705
2668
  */
2706
2669
  if (!isForce && checkMethod) {
2707
2670
  afterFullData.forEach(row => {
2708
- const rowid = (0, _util.getRowid)($xeTable, row);
2671
+ const rowid = handleGetRowId(row);
2709
2672
  if (selectCheckboxMaps[rowid] || checkMethod({
2710
2673
  row
2711
2674
  })) {
@@ -2714,7 +2677,8 @@ var _default = exports.default = (0, _vue.defineComponent)({
2714
2677
  });
2715
2678
  } else {
2716
2679
  afterFullData.forEach(row => {
2717
- selectRowMaps[(0, _util.getRowid)($xeTable, row)] = row;
2680
+ const rowid = handleGetRowId(row);
2681
+ selectRowMaps[rowid] = row;
2718
2682
  });
2719
2683
  }
2720
2684
  } else {
@@ -2725,7 +2689,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
2725
2689
  */
2726
2690
  if (!isForce && checkMethod) {
2727
2691
  afterFullData.forEach(row => {
2728
- const rowid = (0, _util.getRowid)($xeTable, row);
2692
+ const rowid = handleGetRowId(row);
2729
2693
  if (checkMethod({
2730
2694
  row
2731
2695
  }) ? 0 : selectCheckboxMaps[rowid]) {
@@ -2745,10 +2709,10 @@ var _default = exports.default = (0, _vue.defineComponent)({
2745
2709
  afterFullData.forEach(row => handleCheckboxReserveRow(row, false));
2746
2710
  }
2747
2711
  }
2748
- reactData.selectCheckboxMaps = checkField ? {} : selectRowMaps;
2712
+ reactData.updateCheckboxFlag++;
2713
+ internalData.selectCheckboxMaps = checkField ? {} : selectRowMaps;
2749
2714
  reactData.isAllSelected = checked;
2750
2715
  reactData.isIndeterminate = false;
2751
- reactData.treeIndeterminateMaps = {};
2752
2716
  internalData.treeIndeterminateRowMaps = {};
2753
2717
  $xeTable.checkSelectionStatus();
2754
2718
  return (0, _vue.nextTick)();
@@ -2761,15 +2725,15 @@ var _default = exports.default = (0, _vue.defineComponent)({
2761
2725
  const {
2762
2726
  expandColumn,
2763
2727
  currentRow,
2764
- selectCheckboxMaps,
2765
- selectRadioRow,
2766
- rowExpandedMaps,
2767
- treeExpandedMaps
2728
+ selectRadioRow
2768
2729
  } = reactData;
2769
2730
  const {
2770
2731
  fullDataRowIdData,
2771
2732
  fullAllDataRowIdData,
2772
- radioReserveRow
2733
+ radioReserveRow,
2734
+ selectCheckboxMaps,
2735
+ treeExpandedMaps,
2736
+ rowExpandedMaps
2773
2737
  } = internalData;
2774
2738
  const expandOpts = computeExpandOpts.value;
2775
2739
  const treeOpts = computeTreeOpts.value;
@@ -2787,7 +2751,8 @@ var _default = exports.default = (0, _vue.defineComponent)({
2787
2751
  }
2788
2752
  }
2789
2753
  // 复选框
2790
- reactData.selectCheckboxMaps = getRecoverRowMaps(selectCheckboxMaps); // 刷新多选行状态
2754
+ internalData.selectCheckboxMaps = getRecoverRowMaps(selectCheckboxMaps); // 刷新多选行状态
2755
+ reactData.updateCheckboxFlag++;
2791
2756
  // 还原保留选中状态
2792
2757
  if (checkboxOpts.reserve) {
2793
2758
  handleCheckedCheckboxRow(handleReserveRow(internalData.checkboxReserveRowMap), true, true);
@@ -2796,13 +2761,15 @@ var _default = exports.default = (0, _vue.defineComponent)({
2796
2761
  reactData.currentRow = null; // 刷新当前行状态
2797
2762
  }
2798
2763
  // 行展开
2799
- reactData.rowExpandedMaps = expandColumn ? getRecoverRowMaps(rowExpandedMaps) : {}; // 刷新行展开状态
2764
+ internalData.rowExpandedMaps = expandColumn ? getRecoverRowMaps(rowExpandedMaps) : {}; // 刷新行展开状态
2765
+ reactData.rowExpandedFlag++;
2800
2766
  // 还原保留状态
2801
2767
  if (expandColumn && expandOpts.reserve) {
2802
2768
  $xeTable.setRowExpand(handleReserveRow(internalData.rowExpandedReserveRowMap), true);
2803
2769
  }
2804
2770
  // 树展开
2805
- reactData.treeExpandedMaps = treeConfig ? getRecoverRowMaps(treeExpandedMaps) : {}; // 刷新树展开状态
2771
+ internalData.treeExpandedMaps = treeConfig ? getRecoverRowMaps(treeExpandedMaps) : {}; // 刷新树展开状态
2772
+ reactData.treeExpandedFlag++;
2806
2773
  if (treeConfig && treeOpts.reserve) {
2807
2774
  $xeTable.setTreeExpand(handleReserveRow(internalData.treeExpandedReserveRowMap), true);
2808
2775
  }
@@ -2825,7 +2792,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
2825
2792
  } = treeOpts;
2826
2793
  const childrenField = treeOpts.children || treeOpts.childrenField;
2827
2794
  if (expandAll) {
2828
- tableMethods.setAllTreeExpand(true);
2795
+ $xeTable.setAllTreeExpand(true);
2829
2796
  } else if (expandRowKeys) {
2830
2797
  const defExpandeds = [];
2831
2798
  const rowkey = (0, _util.getRowkey)($xeTable);
@@ -2837,7 +2804,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
2837
2804
  defExpandeds.push(matchObj.item);
2838
2805
  }
2839
2806
  });
2840
- tableMethods.setTreeExpand(defExpandeds, true);
2807
+ $xeTable.setTreeExpand(defExpandeds, true);
2841
2808
  }
2842
2809
  }
2843
2810
  };
@@ -2854,10 +2821,8 @@ var _default = exports.default = (0, _vue.defineComponent)({
2854
2821
  return new Promise(resolve => {
2855
2822
  if (loadMethod) {
2856
2823
  const {
2824
+ fullAllDataRowIdData,
2857
2825
  treeExpandLazyLoadedMaps
2858
- } = reactData;
2859
- const {
2860
- fullAllDataRowIdData
2861
2826
  } = internalData;
2862
2827
  const rowid = (0, _util.getRowid)($xeTable, row);
2863
2828
  const rowRest = fullAllDataRowIdData[rowid];
@@ -2876,20 +2841,21 @@ var _default = exports.default = (0, _vue.defineComponent)({
2876
2841
  childRecords = [];
2877
2842
  }
2878
2843
  if (childRecords) {
2879
- return tableMethods.loadTreeChildren(row, childRecords).then(childRows => {
2844
+ return $xeTable.loadTreeChildren(row, childRecords).then(childRows => {
2880
2845
  const {
2881
2846
  treeExpandedMaps
2882
- } = reactData;
2847
+ } = internalData;
2883
2848
  if (childRows.length && !treeExpandedMaps[rowid]) {
2884
2849
  treeExpandedMaps[rowid] = row;
2885
2850
  }
2851
+ reactData.treeExpandedFlag++;
2886
2852
  // 如果当前节点已选中,则展开后子节点也被选中
2887
- if (!checkStrictly && tableMethods.isCheckedByCheckboxRow(row)) {
2853
+ if (!checkStrictly && $xeTable.isCheckedByCheckboxRow(row)) {
2888
2854
  handleCheckedCheckboxRow(childRows, true);
2889
2855
  }
2890
2856
  return (0, _vue.nextTick)().then(() => {
2891
2857
  if (transform) {
2892
- tablePrivateMethods.handleTableData();
2858
+ $xeTable.handleTableData();
2893
2859
  updateAfterDataIndex();
2894
2860
  return (0, _vue.nextTick)();
2895
2861
  }
@@ -2899,7 +2865,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
2899
2865
  }).catch(() => {
2900
2866
  const {
2901
2867
  treeExpandLazyLoadedMaps
2902
- } = reactData;
2868
+ } = internalData;
2903
2869
  if (rowRest) {
2904
2870
  rowRest.treeLoaded = false;
2905
2871
  }
@@ -2907,7 +2873,8 @@ var _default = exports.default = (0, _vue.defineComponent)({
2907
2873
  delete treeExpandLazyLoadedMaps[rowid];
2908
2874
  }
2909
2875
  }).finally(() => {
2910
- (0, _vue.nextTick)().then(() => tableMethods.recalculate()).then(() => resolve());
2876
+ reactData.treeExpandedFlag++;
2877
+ (0, _vue.nextTick)().then(() => $xeTable.recalculate()).then(() => resolve());
2911
2878
  });
2912
2879
  } else {
2913
2880
  resolve();
@@ -2936,35 +2903,38 @@ var _default = exports.default = (0, _vue.defineComponent)({
2936
2903
  } = expandOpts;
2937
2904
  if (loadMethod) {
2938
2905
  const {
2939
- fullAllDataRowIdData
2906
+ fullAllDataRowIdData,
2907
+ rowExpandLazyLoadedMaps
2940
2908
  } = internalData;
2941
- const rExpandLazyLoadedMaps = Object.assign({}, reactData.rowExpandLazyLoadedMaps);
2942
2909
  const rowid = (0, _util.getRowid)($xeTable, row);
2943
2910
  const rowRest = fullAllDataRowIdData[rowid];
2944
- rExpandLazyLoadedMaps[rowid] = row;
2945
- reactData.rowExpandLazyLoadedMaps = rExpandLazyLoadedMaps;
2911
+ rowExpandLazyLoadedMaps[rowid] = row;
2946
2912
  loadMethod({
2947
2913
  $table: $xeTable,
2948
2914
  row,
2949
- rowIndex: tableMethods.getRowIndex(row),
2950
- $rowIndex: tableMethods.getVMRowIndex(row)
2915
+ rowIndex: $xeTable.getRowIndex(row),
2916
+ $rowIndex: $xeTable.getVMRowIndex(row)
2951
2917
  }).then(() => {
2952
- const rowTempExpandedMaps = Object.assign({}, reactData.rowExpandedMaps);
2918
+ const {
2919
+ rowExpandedMaps
2920
+ } = internalData;
2953
2921
  if (rowRest) {
2954
2922
  rowRest.expandLoaded = true;
2955
2923
  }
2956
- rowTempExpandedMaps[rowid] = row;
2957
- reactData.rowExpandedMaps = rowTempExpandedMaps;
2924
+ rowExpandedMaps[rowid] = row;
2925
+ reactData.rowExpandedFlag++;
2958
2926
  }).catch(() => {
2959
2927
  if (rowRest) {
2960
2928
  rowRest.expandLoaded = false;
2961
2929
  }
2962
2930
  }).finally(() => {
2963
- const rExpandLazyLoadedMaps = Object.assign({}, reactData.rowExpandLazyLoadedMaps);
2964
- if (rExpandLazyLoadedMaps[rowid]) {
2965
- delete rExpandLazyLoadedMaps[rowid];
2931
+ const {
2932
+ rowExpandLazyLoadedMaps
2933
+ } = internalData;
2934
+ if (rowExpandLazyLoadedMaps[rowid]) {
2935
+ delete rowExpandLazyLoadedMaps[rowid];
2966
2936
  }
2967
- reactData.rowExpandLazyLoadedMaps = rExpandLazyLoadedMaps;
2937
+ reactData.rowExpandedFlag++;
2968
2938
  (0, _vue.nextTick)().then(() => $xeTable.recalculate()).then(() => $xeTable.updateCellAreas()).then(() => resolve());
2969
2939
  });
2970
2940
  } else {
@@ -2991,7 +2961,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
2991
2961
  mergeCells
2992
2962
  } = props;
2993
2963
  if (mergeCells) {
2994
- tableMethods.setMergeCells(mergeCells);
2964
+ $xeTable.setMergeCells(mergeCells);
2995
2965
  }
2996
2966
  };
2997
2967
  const handleDefaultMergeFooterItems = () => {
@@ -2999,7 +2969,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
2999
2969
  mergeFooterItems
3000
2970
  } = props;
3001
2971
  if (mergeFooterItems) {
3002
- tableMethods.setMergeFooterItems(mergeFooterItems);
2972
+ $xeTable.setMergeFooterItems(mergeFooterItems);
3003
2973
  }
3004
2974
  };
3005
2975
  // 计算可视渲染相关数据
@@ -3078,9 +3048,6 @@ var _default = exports.default = (0, _vue.defineComponent)({
3078
3048
  calcCellWidth();
3079
3049
  autoCellWidth();
3080
3050
  updateStyle();
3081
- if (reFull) {
3082
- updateRowOffsetTop();
3083
- }
3084
3051
  updateRowExpandStyle();
3085
3052
  return computeScrollLoad().then(() => {
3086
3053
  if (reFull === true) {
@@ -3106,7 +3073,6 @@ var _default = exports.default = (0, _vue.defineComponent)({
3106
3073
  treeConfig
3107
3074
  } = props;
3108
3075
  const {
3109
- editStore,
3110
3076
  scrollYLoad: oldScrollYLoad
3111
3077
  } = reactData;
3112
3078
  const {
@@ -3122,6 +3088,9 @@ var _default = exports.default = (0, _vue.defineComponent)({
3122
3088
  const childrenField = treeOpts.children || treeOpts.childrenField;
3123
3089
  let treeData = [];
3124
3090
  let fullData = (0, _vue.reactive)(datas ? datas.slice(0) : []); // 转为响应式数据
3091
+ if (fullData.length > supportMaxRow) {
3092
+ (0, _log.errLog)('vxe.error.errMaxRow', [supportMaxRow]);
3093
+ }
3125
3094
  if (treeConfig) {
3126
3095
  if (transform) {
3127
3096
  // 树结构自动转换
@@ -3162,8 +3131,8 @@ var _default = exports.default = (0, _vue.defineComponent)({
3162
3131
  scrollXStore.endIndex = 1;
3163
3132
  reactData.isRowLoading = true;
3164
3133
  reactData.scrollVMLoading = false;
3165
- editStore.insertMaps = {};
3166
- editStore.removeMaps = {};
3134
+ internalData.insertRowMaps = {};
3135
+ internalData.removeRowMaps = {};
3167
3136
  const sYLoad = updateScrollYStatus(fullData);
3168
3137
  reactData.isDragColMove = false;
3169
3138
  reactData.isDragRowMove = false;
@@ -3185,10 +3154,10 @@ var _default = exports.default = (0, _vue.defineComponent)({
3185
3154
  $xeTable.clearCellAreas();
3186
3155
  $xeTable.clearCopyCellArea();
3187
3156
  }
3188
- tableMethods.clearMergeCells();
3189
- tableMethods.clearMergeFooterItems();
3190
- tablePrivateMethods.handleTableData(true);
3191
- tableMethods.updateFooter();
3157
+ $xeTable.clearMergeCells();
3158
+ $xeTable.clearMergeFooterItems();
3159
+ $xeTable.handleTableData(true);
3160
+ $xeTable.updateFooter();
3192
3161
  return (0, _vue.nextTick)().then(() => {
3193
3162
  updateHeight();
3194
3163
  updateStyle();
@@ -3219,18 +3188,18 @@ var _default = exports.default = (0, _vue.defineComponent)({
3219
3188
  }
3220
3189
  }
3221
3190
  handleReserveStatus();
3222
- tablePrivateMethods.checkSelectionStatus();
3191
+ $xeTable.checkSelectionStatus();
3223
3192
  return new Promise(resolve => {
3224
- (0, _vue.nextTick)().then(() => tableMethods.recalculate()).then(() => {
3193
+ (0, _vue.nextTick)().then(() => $xeTable.recalculate()).then(() => {
3225
3194
  let targetScrollLeft = lastScrollLeft;
3226
3195
  let targetScrollTop = lastScrollTop;
3227
- const sXOpts = computeSXOpts.value;
3228
- const sYOpts = computeSYOpts.value;
3196
+ const virtualXOpts = computeVirtualXOpts.value;
3197
+ const virtualYOpts = computeVirtualYOpts.value;
3229
3198
  // 是否在更新数据之后自动滚动重置滚动条
3230
- if (sXOpts.scrollToLeftOnChange) {
3199
+ if (virtualXOpts.scrollToLeftOnChange) {
3231
3200
  targetScrollLeft = 0;
3232
3201
  }
3233
- if (sYOpts.scrollToTopOnChange) {
3202
+ if (virtualYOpts.scrollToTopOnChange) {
3234
3203
  targetScrollTop = 0;
3235
3204
  }
3236
3205
  reactData.isRowLoading = false;
@@ -3263,7 +3232,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
3263
3232
  handleDefaultTreeExpand();
3264
3233
  handleDefaultMergeCells();
3265
3234
  handleDefaultMergeFooterItems();
3266
- (0, _vue.nextTick)(() => setTimeout(() => tableMethods.recalculate()));
3235
+ (0, _vue.nextTick)(() => setTimeout(() => $xeTable.recalculate()));
3267
3236
  };
3268
3237
  /**
3269
3238
  * 处理初始化的默认行为
@@ -3346,10 +3315,8 @@ var _default = exports.default = (0, _vue.defineComponent)({
3346
3315
  return result;
3347
3316
  };
3348
3317
  const parseColumns = isReset => {
3349
- const {
3350
- showOverflow
3351
- } = props;
3352
- const rowOpts = computeRowOpts.value;
3318
+ // const { showOverflow } = props
3319
+ // const rowOpts = computeRowOpts.value
3353
3320
  const leftList = [];
3354
3321
  const centerList = [];
3355
3322
  const rightList = [];
@@ -3357,7 +3324,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
3357
3324
  isGroup,
3358
3325
  columnStore
3359
3326
  } = reactData;
3360
- const sXOpts = computeSXOpts.value;
3327
+ const virtualXOpts = computeVirtualXOpts.value;
3361
3328
  const {
3362
3329
  collectColumn,
3363
3330
  tableFullColumn,
@@ -3418,7 +3385,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
3418
3385
  }
3419
3386
  const visibleColumn = leftList.concat(centerList).concat(rightList);
3420
3387
  // 如果gt为0,则总是启用
3421
- const scrollXLoad = !!sXOpts.enabled && sXOpts.gt > -1 && (sXOpts.gt === 0 || sXOpts.gt < tableFullColumn.length);
3388
+ const scrollXLoad = !!virtualXOpts.enabled && virtualXOpts.gt > -1 && (virtualXOpts.gt === 0 || virtualXOpts.gt < tableFullColumn.length);
3422
3389
  reactData.hasFixedColumn = leftList.length > 0 || rightList.length > 0;
3423
3390
  Object.assign(columnStore, {
3424
3391
  leftList,
@@ -3426,28 +3393,28 @@ var _default = exports.default = (0, _vue.defineComponent)({
3426
3393
  rightList
3427
3394
  });
3428
3395
  if (scrollXLoad) {
3429
- if (showOverflow) {
3430
- if (!rowOpts.height) {
3431
- const errColumn = internalData.tableFullColumn.find(column => column.showOverflow === false);
3432
- if (errColumn) {
3433
- (0, _log.errLog)('vxe.error.errProp', [`column[field="${errColumn.field}"].show-overflow=false`, 'show-overflow=true']);
3434
- }
3435
- }
3396
+ // if (showOverflow) {
3397
+ // if (!rowOpts.height) {
3398
+ // const errColumn = internalData.tableFullColumn.find(column => column.showOverflow === false)
3399
+ // if (errColumn) {
3400
+ // errLog('vxe.error.errProp', [`column[field="${errColumn.field}"].show-overflow=false`, 'show-overflow=true'])
3401
+ // }
3402
+ // }
3403
+ // }
3404
+ // if (process.env.NODE_ENV === 'development') {
3405
+ // if (props.showHeader && !props.showHeaderOverflow) {
3406
+ // warnLog('vxe.error.reqProp', ['show-header-overflow'])
3407
+ // }
3408
+ // if (props.showFooter && !props.showFooterOverflow) {
3409
+ // warnLog('vxe.error.reqProp', ['show-footer-overflow'])
3410
+ // }
3411
+ if (props.spanMethod) {
3412
+ (0, _log.warnLog)('vxe.error.scrollErrProp', ['span-method']);
3436
3413
  }
3437
- if (process.env.NODE_ENV === 'development') {
3438
- // if (props.showHeader && !props.showHeaderOverflow) {
3439
- // warnLog('vxe.error.reqProp', ['show-header-overflow'])
3440
- // }
3441
- // if (props.showFooter && !props.showFooterOverflow) {
3442
- // warnLog('vxe.error.reqProp', ['show-footer-overflow'])
3443
- // }
3444
- if (props.spanMethod) {
3445
- (0, _log.warnLog)('vxe.error.scrollErrProp', ['span-method']);
3446
- }
3447
- if (props.footerSpanMethod) {
3448
- (0, _log.warnLog)('vxe.error.scrollErrProp', ['footer-span-method']);
3449
- }
3414
+ if (props.footerSpanMethod) {
3415
+ (0, _log.warnLog)('vxe.error.scrollErrProp', ['footer-span-method']);
3450
3416
  }
3417
+ // }
3451
3418
  if (isReset) {
3452
3419
  const {
3453
3420
  visibleSize
@@ -3541,14 +3508,14 @@ var _default = exports.default = (0, _vue.defineComponent)({
3541
3508
  const {
3542
3509
  treeConfig
3543
3510
  } = props;
3544
- const sYOpts = computeSYOpts.value;
3511
+ const virtualYOpts = computeVirtualYOpts.value;
3545
3512
  const treeOpts = computeTreeOpts.value;
3546
3513
  const {
3547
3514
  transform
3548
3515
  } = treeOpts;
3549
3516
  const allList = fullData || internalData.tableFullData;
3550
3517
  // 如果gt为0,则总是启用
3551
- const scrollYLoad = (transform || !treeConfig) && !!sYOpts.enabled && sYOpts.gt > -1 && (sYOpts.gt === 0 || sYOpts.gt < allList.length);
3518
+ const scrollYLoad = (transform || !treeConfig) && !!virtualYOpts.enabled && virtualYOpts.gt > -1 && (virtualYOpts.gt === 0 || virtualYOpts.gt < allList.length);
3552
3519
  reactData.scrollYLoad = scrollYLoad;
3553
3520
  return scrollYLoad;
3554
3521
  };
@@ -3560,14 +3527,13 @@ var _default = exports.default = (0, _vue.defineComponent)({
3560
3527
  */
3561
3528
  const handleBaseTreeExpand = (rows, expanded) => {
3562
3529
  const {
3563
- treeExpandedMaps,
3564
- treeExpandLazyLoadedMaps,
3565
3530
  treeNodeColumn
3566
3531
  } = reactData;
3567
- const treeTempExpandedMaps = Object.assign({}, treeExpandedMaps);
3568
3532
  const {
3569
3533
  fullAllDataRowIdData,
3570
- tableFullData
3534
+ tableFullData,
3535
+ treeExpandedMaps,
3536
+ treeExpandLazyLoadedMaps
3571
3537
  } = internalData;
3572
3538
  const treeOpts = computeTreeOpts.value;
3573
3539
  const {
@@ -3581,6 +3547,9 @@ var _default = exports.default = (0, _vue.defineComponent)({
3581
3547
  const result = [];
3582
3548
  const columnIndex = tableMethods.getColumnIndex(treeNodeColumn);
3583
3549
  const $columnIndex = tableMethods.getVMColumnIndex(treeNodeColumn);
3550
+ const {
3551
+ handleGetRowId
3552
+ } = (0, _util.createHandleGetRowId)($xeTable);
3584
3553
  let validRows = toggleMethod ? rows.filter(row => toggleMethod({
3585
3554
  $table: $xeTable,
3586
3555
  expanded,
@@ -3597,17 +3566,17 @@ var _default = exports.default = (0, _vue.defineComponent)({
3597
3566
  });
3598
3567
  if (matchObj) {
3599
3568
  matchObj.items.forEach(item => {
3600
- const rowid = (0, _util.getRowid)($xeTable, item);
3601
- if (treeTempExpandedMaps[rowid]) {
3602
- delete treeTempExpandedMaps[rowid];
3569
+ const rowid = handleGetRowId(item);
3570
+ if (treeExpandedMaps[rowid]) {
3571
+ delete treeExpandedMaps[rowid];
3603
3572
  }
3604
3573
  });
3605
3574
  }
3606
3575
  }
3607
3576
  if (expanded) {
3608
3577
  validRows.forEach(row => {
3609
- const rowid = (0, _util.getRowid)($xeTable, row);
3610
- if (!treeTempExpandedMaps[rowid]) {
3578
+ const rowid = handleGetRowId(row);
3579
+ if (!treeExpandedMaps[rowid]) {
3611
3580
  const rowRest = fullAllDataRowIdData[rowid];
3612
3581
  if (rowRest) {
3613
3582
  const isLoad = lazy && row[hasChildField] && !rowRest.treeLoaded && !treeExpandLazyLoadedMaps[rowid];
@@ -3616,7 +3585,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
3616
3585
  result.push(handleAsyncTreeExpandChilds(row));
3617
3586
  } else {
3618
3587
  if (row[childrenField] && row[childrenField].length) {
3619
- treeTempExpandedMaps[rowid] = row;
3588
+ treeExpandedMaps[rowid] = row;
3620
3589
  }
3621
3590
  }
3622
3591
  }
@@ -3624,16 +3593,16 @@ var _default = exports.default = (0, _vue.defineComponent)({
3624
3593
  });
3625
3594
  } else {
3626
3595
  validRows.forEach(item => {
3627
- const rowid = (0, _util.getRowid)($xeTable, item);
3628
- if (treeTempExpandedMaps[rowid]) {
3629
- delete treeTempExpandedMaps[rowid];
3596
+ const rowid = handleGetRowId(item);
3597
+ if (treeExpandedMaps[rowid]) {
3598
+ delete treeExpandedMaps[rowid];
3630
3599
  }
3631
3600
  });
3632
3601
  }
3633
3602
  if (reserve) {
3634
3603
  validRows.forEach(row => handleTreeExpandReserve(row, expanded));
3635
3604
  }
3636
- reactData.treeExpandedMaps = treeTempExpandedMaps;
3605
+ reactData.treeExpandedFlag++;
3637
3606
  return Promise.all(result).then(() => {
3638
3607
  return tableMethods.recalculate();
3639
3608
  });
@@ -3662,9 +3631,9 @@ var _default = exports.default = (0, _vue.defineComponent)({
3662
3631
  handleCheckedAllCheckboxRow(value);
3663
3632
  if (evnt) {
3664
3633
  dispatchEvent('checkbox-all', {
3665
- records: $xeTable.getCheckboxRecords(),
3666
- reserves: $xeTable.getCheckboxReserveRecords(),
3667
- indeterminates: $xeTable.getCheckboxIndeterminateRecords(),
3634
+ records: () => $xeTable.getCheckboxRecords(),
3635
+ reserves: () => $xeTable.getCheckboxReserveRecords(),
3636
+ indeterminates: () => $xeTable.getCheckboxIndeterminateRecords(),
3668
3637
  checked: value
3669
3638
  }, evnt);
3670
3639
  }
@@ -3712,12 +3681,15 @@ var _default = exports.default = (0, _vue.defineComponent)({
3712
3681
  }
3713
3682
  };
3714
3683
  const createGetRowCacheProp = prop => {
3684
+ const {
3685
+ handleGetRowId
3686
+ } = (0, _util.createHandleGetRowId)($xeTable);
3715
3687
  return function (row) {
3716
3688
  const {
3717
3689
  fullAllDataRowIdData
3718
3690
  } = internalData;
3719
3691
  if (row) {
3720
- const rowid = (0, _util.getRowid)($xeTable, row);
3692
+ const rowid = handleGetRowId(row);
3721
3693
  const rowRest = fullAllDataRowIdData[rowid];
3722
3694
  if (rowRest) {
3723
3695
  return rowRest[prop];
@@ -3887,7 +3859,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
3887
3859
  };
3888
3860
  const handleUpdateColResize = (evnt, params) => {
3889
3861
  $xeTable.analyColumnWidth();
3890
- $xeTable.recalculate(true).then(() => {
3862
+ $xeTable.recalculate().then(() => {
3891
3863
  $xeTable.saveCustomStore('update:width');
3892
3864
  $xeTable.updateCellAreas();
3893
3865
  $xeTable.dispatchEvent('column-resizable-change', params, evnt);
@@ -3898,7 +3870,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
3898
3870
  };
3899
3871
  const handleUpdateRowResize = (evnt, params) => {
3900
3872
  reactData.resizeHeightFlag++;
3901
- $xeTable.recalculate(true).then(() => {
3873
+ $xeTable.recalculate().then(() => {
3902
3874
  $xeTable.updateCellAreas();
3903
3875
  $xeTable.dispatchEvent('row-resizable-change', params, evnt);
3904
3876
  setTimeout(() => $xeTable.recalculate(true), 300);
@@ -3920,21 +3892,24 @@ var _default = exports.default = (0, _vue.defineComponent)({
3920
3892
  };
3921
3893
  const updateRowOffsetTop = () => {
3922
3894
  const {
3923
- expandColumn,
3924
- rowExpandedMaps
3895
+ expandColumn
3925
3896
  } = reactData;
3926
3897
  const {
3927
3898
  afterFullData,
3928
- fullAllDataRowIdData
3899
+ fullAllDataRowIdData,
3900
+ rowExpandedMaps
3929
3901
  } = internalData;
3930
3902
  const expandOpts = computeExpandOpts.value;
3931
3903
  const rowOpts = computeRowOpts.value;
3932
3904
  const cellOpts = computeCellOpts.value;
3933
3905
  const defaultRowHeight = computeDefaultRowHeight.value;
3906
+ const {
3907
+ handleGetRowId
3908
+ } = (0, _util.createHandleGetRowId)($xeTable);
3934
3909
  let offsetTop = 0;
3935
3910
  for (let rIndex = 0, rLen = afterFullData.length; rIndex < rLen; rIndex++) {
3936
3911
  const row = afterFullData[rIndex];
3937
- const rowid = (0, _util.getRowid)($xeTable, row);
3912
+ const rowid = handleGetRowId(row);
3938
3913
  const rowRest = fullAllDataRowIdData[rowid] || {};
3939
3914
  rowRest.oTop = offsetTop;
3940
3915
  offsetTop += rowRest.resizeHeight || cellOpts.height || rowOpts.height || rowRest.height || defaultRowHeight;
@@ -4368,22 +4343,22 @@ var _default = exports.default = (0, _vue.defineComponent)({
4368
4343
  keepSource,
4369
4344
  treeConfig
4370
4345
  } = props;
4371
- const {
4372
- editStore
4373
- } = reactData;
4374
4346
  const {
4375
4347
  fullAllDataRowIdData,
4376
4348
  fullDataRowIdData,
4377
4349
  tableSourceData,
4378
4350
  sourceDataRowIdData,
4379
4351
  tableFullData,
4380
- afterFullData
4352
+ afterFullData,
4353
+ removeRowMaps
4381
4354
  } = internalData;
4382
- const removeTempMaps = Object.assign({}, editStore.removeMaps);
4383
4355
  const treeOpts = computeTreeOpts.value;
4384
4356
  const {
4385
4357
  transform
4386
4358
  } = treeOpts;
4359
+ const {
4360
+ handleGetRowId
4361
+ } = (0, _util.createHandleGetRowId)($xeTable);
4387
4362
  if (!keepSource) {
4388
4363
  if (process.env.NODE_ENV === 'development') {
4389
4364
  (0, _log.errLog)('vxe.error.reqProp', ['keep-source']);
@@ -4401,7 +4376,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
4401
4376
  let reDelFlag = false;
4402
4377
  if (targetRows.length) {
4403
4378
  targetRows.forEach(item => {
4404
- const rowid = (0, _util.getRowid)($xeTable, item);
4379
+ const rowid = handleGetRowId(item);
4405
4380
  const rowRest = fullAllDataRowIdData[rowid];
4406
4381
  if (rowRest) {
4407
4382
  const row = rowRest.row;
@@ -4414,7 +4389,9 @@ var _default = exports.default = (0, _vue.defineComponent)({
4414
4389
  _xeUtils.default.destructuring(row, _xeUtils.default.clone(oRow, true));
4415
4390
  }
4416
4391
  if (!fullDataRowIdData[rowid] && $xeTable.isRemoveByRow(row)) {
4417
- delete removeTempMaps[rowid];
4392
+ if (removeRowMaps[rowid]) {
4393
+ delete removeRowMaps[rowid];
4394
+ }
4418
4395
  tableFullData.unshift(row);
4419
4396
  afterFullData.unshift(row);
4420
4397
  reDelFlag = true;
@@ -4426,7 +4403,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
4426
4403
  }
4427
4404
  if (rows) {
4428
4405
  if (reDelFlag) {
4429
- editStore.removeMaps = removeTempMaps;
4406
+ reactData.removeRowFlag++;
4430
4407
  $xeTable.updateFooter();
4431
4408
  $xeTable.cacheRowMap(false);
4432
4409
  $xeTable.handleTableData(treeConfig && transform);
@@ -4570,28 +4547,19 @@ var _default = exports.default = (0, _vue.defineComponent)({
4570
4547
  * @param {Row} row 行对象
4571
4548
  */
4572
4549
  isInsertByRow(row) {
4573
- const {
4574
- editStore
4575
- } = reactData;
4576
4550
  const rowid = (0, _util.getRowid)($xeTable, row);
4577
- return !!editStore.insertMaps[rowid];
4551
+ return !!reactData.insertRowFlag && !!internalData.insertRowMaps[rowid];
4578
4552
  },
4579
4553
  isRemoveByRow(row) {
4580
- const {
4581
- editStore
4582
- } = reactData;
4583
4554
  const rowid = (0, _util.getRowid)($xeTable, row);
4584
- return !!editStore.removeMaps[rowid];
4555
+ return !!reactData.removeRowFlag && !!internalData.removeRowMaps[rowid];
4585
4556
  },
4586
4557
  /**
4587
4558
  * 删除所有新增的临时数据
4588
4559
  * @returns
4589
4560
  */
4590
4561
  removeInsertRow() {
4591
- const {
4592
- editStore
4593
- } = reactData;
4594
- editStore.insertMaps = {};
4562
+ internalData.insertRowMaps = {};
4595
4563
  return $xeTable.remove($xeTable.getInsertRecords());
4596
4564
  },
4597
4565
  /**
@@ -4636,8 +4604,10 @@ var _default = exports.default = (0, _vue.defineComponent)({
4636
4604
  * @param {Number} columnIndex 索引
4637
4605
  */
4638
4606
  getColumns(columnIndex) {
4639
- const columns = internalData.visibleColumn;
4640
- return _xeUtils.default.isUndefined(columnIndex) ? columns.slice(0) : columns[columnIndex];
4607
+ const {
4608
+ visibleColumn
4609
+ } = internalData;
4610
+ return _xeUtils.default.isUndefined(columnIndex) ? visibleColumn.slice(0) : visibleColumn[columnIndex];
4641
4611
  },
4642
4612
  /**
4643
4613
  * 根据列获取列的唯一主键
@@ -4651,7 +4621,9 @@ var _default = exports.default = (0, _vue.defineComponent)({
4651
4621
  * @param {String} colid 列主键
4652
4622
  */
4653
4623
  getColumnById(colid) {
4654
- const fullColumnIdData = internalData.fullColumnIdData;
4624
+ const {
4625
+ fullColumnIdData
4626
+ } = internalData;
4655
4627
  return colid && fullColumnIdData[colid] ? fullColumnIdData[colid].column : null;
4656
4628
  },
4657
4629
  /**
@@ -4663,7 +4635,9 @@ var _default = exports.default = (0, _vue.defineComponent)({
4663
4635
  return field && fullColumnFieldData[field] ? fullColumnFieldData[field].column : null;
4664
4636
  },
4665
4637
  getParentColumn(fieldOrColumn) {
4666
- const fullColumnIdData = internalData.fullColumnIdData;
4638
+ const {
4639
+ fullColumnIdData
4640
+ } = internalData;
4667
4641
  const column = (0, _util.handleFieldOrColumn)($xeTable, fieldOrColumn);
4668
4642
  return column && column.parentId && fullColumnIdData[column.parentId] ? fullColumnIdData[column.parentId].column : null;
4669
4643
  },
@@ -4804,16 +4778,14 @@ var _default = exports.default = (0, _vue.defineComponent)({
4804
4778
  const {
4805
4779
  treeConfig
4806
4780
  } = props;
4807
- const {
4808
- selectCheckboxMaps
4809
- } = reactData;
4810
4781
  const {
4811
4782
  tableFullData,
4812
4783
  afterFullData,
4813
4784
  afterTreeFullData,
4814
4785
  tableFullTreeData,
4815
4786
  fullDataRowIdData,
4816
- afterFullRowMaps
4787
+ afterFullRowMaps,
4788
+ selectCheckboxMaps
4817
4789
  } = internalData;
4818
4790
  const treeOpts = computeTreeOpts.value;
4819
4791
  const checkboxOpts = computeCheckboxOpts.value;
@@ -5189,12 +5161,15 @@ var _default = exports.default = (0, _vue.defineComponent)({
5189
5161
  fullAllDataRowIdData,
5190
5162
  afterFullData
5191
5163
  } = internalData;
5164
+ const {
5165
+ handleGetRowId
5166
+ } = (0, _util.createHandleGetRowId)($xeTable);
5192
5167
  const rowOpts = computeRowOpts.value;
5193
5168
  const cellOpts = computeCellOpts.value;
5194
5169
  const defaultRowHeight = computeDefaultRowHeight.value;
5195
5170
  const rest = {};
5196
5171
  afterFullData.forEach(row => {
5197
- const rowid = (0, _util.getRowid)($xeTable, row);
5172
+ const rowid = handleGetRowId(row);
5198
5173
  const rowRest = fullAllDataRowIdData[rowid];
5199
5174
  if (rowRest) {
5200
5175
  const resizeHeight = rowRest.resizeHeight;
@@ -5220,8 +5195,11 @@ var _default = exports.default = (0, _vue.defineComponent)({
5220
5195
  rHeight = Math.floor(rHeight * bodyHeight);
5221
5196
  }
5222
5197
  if (rHeight) {
5198
+ const {
5199
+ handleGetRowId
5200
+ } = (0, _util.createHandleGetRowId)($xeTable);
5223
5201
  rows.forEach(row => {
5224
- const rowid = _xeUtils.default.isString(row) || _xeUtils.default.isNumber(row) ? row : (0, _util.getRowid)($xeTable, row);
5202
+ const rowid = _xeUtils.default.isString(row) || _xeUtils.default.isNumber(row) ? row : handleGetRowId(row);
5225
5203
  const rowRest = fullAllDataRowIdData[rowid];
5226
5204
  if (rowRest) {
5227
5205
  rowRest.resizeHeight = rHeight;
@@ -5384,15 +5362,13 @@ var _default = exports.default = (0, _vue.defineComponent)({
5384
5362
  treeConfig
5385
5363
  } = props;
5386
5364
  const {
5387
- fullDataRowIdData
5365
+ fullDataRowIdData,
5366
+ treeIndeterminateRowMaps
5388
5367
  } = internalData;
5389
- const {
5390
- treeIndeterminateMaps
5391
- } = reactData;
5392
5368
  if (treeConfig) {
5393
5369
  const fullRest = [];
5394
5370
  const defRest = [];
5395
- _xeUtils.default.each(treeIndeterminateMaps, (item, rowid) => {
5371
+ _xeUtils.default.each(treeIndeterminateRowMaps, (item, rowid) => {
5396
5372
  if (item) {
5397
5373
  fullRest.push(item);
5398
5374
  if (fullDataRowIdData[rowid]) {
@@ -5436,8 +5412,11 @@ var _default = exports.default = (0, _vue.defineComponent)({
5436
5412
  },
5437
5413
  isCheckedByCheckboxRow(row) {
5438
5414
  const {
5439
- selectCheckboxMaps
5415
+ updateCheckboxFlag
5440
5416
  } = reactData;
5417
+ const {
5418
+ selectCheckboxMaps
5419
+ } = internalData;
5441
5420
  const checkboxOpts = computeCheckboxOpts.value;
5442
5421
  const {
5443
5422
  checkField
@@ -5445,14 +5424,15 @@ var _default = exports.default = (0, _vue.defineComponent)({
5445
5424
  if (checkField) {
5446
5425
  return _xeUtils.default.get(row, checkField);
5447
5426
  }
5448
- return !!selectCheckboxMaps[(0, _util.getRowid)($xeTable, row)];
5427
+ return !!updateCheckboxFlag && !!selectCheckboxMaps[(0, _util.getRowid)($xeTable, row)];
5449
5428
  },
5450
5429
  isCheckedByCheckboxRowKey(rowid) {
5451
5430
  const {
5452
- selectCheckboxMaps
5431
+ updateCheckboxFlag
5453
5432
  } = reactData;
5454
5433
  const {
5455
- fullAllDataRowIdData
5434
+ fullAllDataRowIdData,
5435
+ selectCheckboxMaps
5456
5436
  } = internalData;
5457
5437
  const checkboxOpts = computeCheckboxOpts.value;
5458
5438
  const {
@@ -5465,19 +5445,19 @@ var _default = exports.default = (0, _vue.defineComponent)({
5465
5445
  }
5466
5446
  return false;
5467
5447
  }
5468
- return !!selectCheckboxMaps[rowid];
5448
+ return !!updateCheckboxFlag && !!selectCheckboxMaps[rowid];
5469
5449
  },
5470
5450
  isIndeterminateByCheckboxRow(row) {
5471
5451
  const {
5472
- treeIndeterminateMaps
5473
- } = reactData;
5474
- return !!treeIndeterminateMaps[(0, _util.getRowid)($xeTable, row)] && !$xeTable.isCheckedByCheckboxRow(row);
5452
+ treeIndeterminateRowMaps
5453
+ } = internalData;
5454
+ return !!treeIndeterminateRowMaps[(0, _util.getRowid)($xeTable, row)] && !$xeTable.isCheckedByCheckboxRow(row);
5475
5455
  },
5476
5456
  isIndeterminateByCheckboxRowKey(rowid) {
5477
5457
  const {
5478
- treeIndeterminateMaps
5479
- } = reactData;
5480
- return !!treeIndeterminateMaps[rowid] && !$xeTable.isCheckedByCheckboxRowKey(rowid);
5458
+ treeIndeterminateRowMaps
5459
+ } = internalData;
5460
+ return !!treeIndeterminateRowMaps[rowid] && !$xeTable.isCheckedByCheckboxRowKey(rowid);
5481
5461
  },
5482
5462
  /**
5483
5463
  * 多选,切换某一行的选中状态
@@ -5485,7 +5465,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
5485
5465
  toggleCheckboxRow(row) {
5486
5466
  const {
5487
5467
  selectCheckboxMaps
5488
- } = reactData;
5468
+ } = internalData;
5489
5469
  const checkboxOpts = computeCheckboxOpts.value;
5490
5470
  const {
5491
5471
  checkField
@@ -5562,16 +5542,19 @@ var _default = exports.default = (0, _vue.defineComponent)({
5562
5542
  const childrenField = treeOpts.children || treeOpts.childrenField;
5563
5543
  const reserveSelection = [];
5564
5544
  if (checkboxOpts.reserve) {
5545
+ const {
5546
+ handleGetRowId
5547
+ } = (0, _util.createHandleGetRowId)($xeTable);
5565
5548
  const afterFullIdMaps = {};
5566
5549
  if (treeConfig) {
5567
5550
  _xeUtils.default.eachTree(afterFullData, row => {
5568
- afterFullIdMaps[(0, _util.getRowid)($xeTable, row)] = 1;
5551
+ afterFullIdMaps[handleGetRowId(row)] = 1;
5569
5552
  }, {
5570
5553
  children: childrenField
5571
5554
  });
5572
5555
  } else {
5573
5556
  afterFullData.forEach(row => {
5574
- afterFullIdMaps[(0, _util.getRowid)($xeTable, row)] = 1;
5557
+ afterFullIdMaps[handleGetRowId(row)] = 1;
5575
5558
  });
5576
5559
  }
5577
5560
  _xeUtils.default.each(checkboxReserveRowMap, (oldRow, oldRowid) => {
@@ -5641,8 +5624,9 @@ var _default = exports.default = (0, _vue.defineComponent)({
5641
5624
  }
5642
5625
  reactData.isAllSelected = false;
5643
5626
  reactData.isIndeterminate = false;
5644
- reactData.selectCheckboxMaps = {};
5645
- reactData.treeIndeterminateMaps = {};
5627
+ internalData.selectCheckboxMaps = {};
5628
+ internalData.treeIndeterminateRowMaps = {};
5629
+ reactData.updateCheckboxFlag++;
5646
5630
  return (0, _vue.nextTick)();
5647
5631
  },
5648
5632
  /**
@@ -5760,13 +5744,22 @@ var _default = exports.default = (0, _vue.defineComponent)({
5760
5744
  * 用于当前列,设置某列行为高亮状态
5761
5745
  */
5762
5746
  setCurrentColumn(fieldOrColumn) {
5747
+ const {
5748
+ mouseConfig
5749
+ } = props;
5750
+ const mouseOpts = computeMouseOpts.value;
5751
+ const isMouseSelected = mouseConfig && mouseOpts.selected;
5763
5752
  const column = (0, _util.handleFieldOrColumn)($xeTable, fieldOrColumn);
5764
5753
  if (column) {
5765
- // tableMethods.clearCurrentRow()
5766
- tableMethods.clearCurrentColumn();
5754
+ $xeTable.clearCurrentColumn();
5767
5755
  reactData.currentColumn = column;
5768
5756
  }
5769
- return (0, _vue.nextTick)();
5757
+ return (0, _vue.nextTick)().then(() => {
5758
+ // 更新状选中态
5759
+ if (isMouseSelected) {
5760
+ $xeTable.addCellSelectedClass();
5761
+ }
5762
+ });
5770
5763
  },
5771
5764
  /**
5772
5765
  * 用于当前列,手动清空当前高亮的状态
@@ -5776,44 +5769,54 @@ var _default = exports.default = (0, _vue.defineComponent)({
5776
5769
  return (0, _vue.nextTick)();
5777
5770
  },
5778
5771
  setPendingRow(rows, status) {
5779
- const pendingMaps = Object.assign({}, reactData.pendingRowMaps);
5772
+ const {
5773
+ handleGetRowId
5774
+ } = (0, _util.createHandleGetRowId)($xeTable);
5775
+ const {
5776
+ pendingRowMaps
5777
+ } = internalData;
5780
5778
  if (rows && !_xeUtils.default.isArray(rows)) {
5781
5779
  rows = [rows];
5782
5780
  }
5783
5781
  if (status) {
5784
5782
  rows.forEach(row => {
5785
- const rowid = (0, _util.getRowid)($xeTable, row);
5786
- if (rowid && !pendingMaps[rowid]) {
5787
- pendingMaps[rowid] = row;
5783
+ const rowid = handleGetRowId(row);
5784
+ if (rowid && !pendingRowMaps[rowid]) {
5785
+ pendingRowMaps[rowid] = row;
5788
5786
  }
5789
5787
  });
5790
5788
  } else {
5791
5789
  rows.forEach(row => {
5792
- const rowid = (0, _util.getRowid)($xeTable, row);
5793
- if (rowid && pendingMaps[rowid]) {
5794
- delete pendingMaps[rowid];
5790
+ const rowid = handleGetRowId(row);
5791
+ if (rowid && pendingRowMaps[rowid]) {
5792
+ delete pendingRowMaps[rowid];
5795
5793
  }
5796
5794
  });
5797
5795
  }
5798
- reactData.pendingRowMaps = pendingMaps;
5796
+ reactData.pendingRowFlag++;
5799
5797
  return (0, _vue.nextTick)();
5800
5798
  },
5801
5799
  togglePendingRow(rows) {
5802
- const pendingMaps = Object.assign({}, reactData.pendingRowMaps);
5800
+ const {
5801
+ handleGetRowId
5802
+ } = (0, _util.createHandleGetRowId)($xeTable);
5803
+ const {
5804
+ pendingRowMaps
5805
+ } = internalData;
5803
5806
  if (rows && !_xeUtils.default.isArray(rows)) {
5804
5807
  rows = [rows];
5805
5808
  }
5806
5809
  rows.forEach(row => {
5807
- const rowid = (0, _util.getRowid)($xeTable, row);
5810
+ const rowid = handleGetRowId(row);
5808
5811
  if (rowid) {
5809
- if (pendingMaps[rowid]) {
5810
- delete pendingMaps[rowid];
5812
+ if (pendingRowMaps[rowid]) {
5813
+ delete pendingRowMaps[rowid];
5811
5814
  } else {
5812
- pendingMaps[rowid] = row;
5815
+ pendingRowMaps[rowid] = row;
5813
5816
  }
5814
5817
  }
5815
5818
  });
5816
- reactData.pendingRowMaps = pendingMaps;
5819
+ reactData.pendingRowFlag++;
5817
5820
  return (0, _vue.nextTick)();
5818
5821
  },
5819
5822
  hasPendingByRow(row) {
@@ -5822,16 +5825,14 @@ var _default = exports.default = (0, _vue.defineComponent)({
5822
5825
  isPendingByRow(row) {
5823
5826
  const {
5824
5827
  pendingRowMaps
5825
- } = reactData;
5828
+ } = internalData;
5826
5829
  const rowid = (0, _util.getRowid)($xeTable, row);
5827
5830
  return !!pendingRowMaps[rowid];
5828
5831
  },
5829
5832
  getPendingRecords() {
5830
5833
  const {
5834
+ fullAllDataRowIdData,
5831
5835
  pendingRowMaps
5832
- } = reactData;
5833
- const {
5834
- fullAllDataRowIdData
5835
5836
  } = internalData;
5836
5837
  const insertRecords = [];
5837
5838
  _xeUtils.default.each(pendingRowMaps, (row, rowid) => {
@@ -5842,7 +5843,8 @@ var _default = exports.default = (0, _vue.defineComponent)({
5842
5843
  return insertRecords;
5843
5844
  },
5844
5845
  clearPendingRow() {
5845
- reactData.pendingRowMaps = {};
5846
+ internalData.pendingRowMaps = {};
5847
+ reactData.pendingRowFlag++;
5846
5848
  return (0, _vue.nextTick)();
5847
5849
  },
5848
5850
  sort(sortConfs, sortOrder) {
@@ -6028,7 +6030,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
6028
6030
  column,
6029
6031
  property: column.field,
6030
6032
  field: column.field,
6031
- filterList: $xeTable.getCheckedFilters(),
6033
+ filterList: () => $xeTable.getCheckedFilters(),
6032
6034
  visible: false
6033
6035
  }, null);
6034
6036
  }
@@ -6060,9 +6062,9 @@ var _default = exports.default = (0, _vue.defineComponent)({
6060
6062
  return rowRest && !!rowRest.expandLoaded;
6061
6063
  },
6062
6064
  clearRowExpandLoaded(row) {
6063
- const rExpandLazyLoadedMaps = Object.assign({}, reactData.rowExpandLazyLoadedMaps);
6064
6065
  const {
6065
- fullAllDataRowIdData
6066
+ fullAllDataRowIdData,
6067
+ rowExpandLazyLoadedMaps
6066
6068
  } = internalData;
6067
6069
  const expandOpts = computeExpandOpts.value;
6068
6070
  const {
@@ -6072,9 +6074,9 @@ var _default = exports.default = (0, _vue.defineComponent)({
6072
6074
  const rowRest = fullAllDataRowIdData[rowid];
6073
6075
  if (lazy && rowRest) {
6074
6076
  rowRest.expandLoaded = false;
6075
- delete rExpandLazyLoadedMaps[rowid];
6077
+ delete rowExpandLazyLoadedMaps[rowid];
6076
6078
  }
6077
- reactData.rowExpandLazyLoadedMaps = rExpandLazyLoadedMaps;
6079
+ reactData.rowExpandedFlag++;
6078
6080
  return (0, _vue.nextTick)();
6079
6081
  },
6080
6082
  /**
@@ -6084,14 +6086,14 @@ var _default = exports.default = (0, _vue.defineComponent)({
6084
6086
  reloadRowExpand(row) {
6085
6087
  const {
6086
6088
  rowExpandLazyLoadedMaps
6087
- } = reactData;
6089
+ } = internalData;
6088
6090
  const expandOpts = computeExpandOpts.value;
6089
6091
  const {
6090
6092
  lazy
6091
6093
  } = expandOpts;
6092
6094
  const rowid = (0, _util.getRowid)($xeTable, row);
6093
6095
  if (lazy && !rowExpandLazyLoadedMaps[rowid]) {
6094
- tableMethods.clearRowExpandLoaded(row).then(() => handleAsyncRowExpand(row));
6096
+ $xeTable.clearRowExpandLoaded(row).then(() => handleAsyncRowExpand(row));
6095
6097
  }
6096
6098
  return (0, _vue.nextTick)();
6097
6099
  },
@@ -6100,13 +6102,13 @@ var _default = exports.default = (0, _vue.defineComponent)({
6100
6102
  (0, _log.warnLog)('vxe.error.delFunc', ['reloadExpandContent', 'reloadRowExpand']);
6101
6103
  }
6102
6104
  // 即将废弃
6103
- return tableMethods.reloadRowExpand(row);
6105
+ return $xeTable.reloadRowExpand(row);
6104
6106
  },
6105
6107
  /**
6106
6108
  * 切换展开行
6107
6109
  */
6108
6110
  toggleRowExpand(row) {
6109
- return tableMethods.setRowExpand(row, !tableMethods.isRowExpandByRow(row));
6111
+ return $xeTable.setRowExpand(row, !$xeTable.isRowExpandByRow(row));
6110
6112
  },
6111
6113
  /**
6112
6114
  * 设置所有行的展开与否
@@ -6140,14 +6142,16 @@ var _default = exports.default = (0, _vue.defineComponent)({
6140
6142
  */
6141
6143
  setRowExpand(rows, expanded) {
6142
6144
  const {
6143
- rowExpandedMaps,
6144
- rowExpandLazyLoadedMaps,
6145
6145
  expandColumn
6146
6146
  } = reactData;
6147
- const {
6148
- fullAllDataRowIdData
6147
+ let {
6148
+ fullAllDataRowIdData,
6149
+ rowExpandedMaps,
6150
+ rowExpandLazyLoadedMaps
6149
6151
  } = internalData;
6150
- let rExpandedMaps = Object.assign({}, rowExpandedMaps);
6152
+ const {
6153
+ handleGetRowId
6154
+ } = (0, _util.createHandleGetRowId)($xeTable);
6151
6155
  const expandOpts = computeExpandOpts.value;
6152
6156
  const {
6153
6157
  reserve,
@@ -6164,7 +6168,8 @@ var _default = exports.default = (0, _vue.defineComponent)({
6164
6168
  }
6165
6169
  if (accordion) {
6166
6170
  // 只能同时展开一个
6167
- rExpandedMaps = {};
6171
+ rowExpandedMaps = {};
6172
+ internalData.rowExpandedMaps = rowExpandedMaps;
6168
6173
  rows = rows.slice(rows.length - 1, rows.length);
6169
6174
  }
6170
6175
  const validRows = toggleMethod ? rows.filter(row => toggleMethod({
@@ -6179,22 +6184,22 @@ var _default = exports.default = (0, _vue.defineComponent)({
6179
6184
  })) : rows;
6180
6185
  if (expanded) {
6181
6186
  validRows.forEach(row => {
6182
- const rowid = (0, _util.getRowid)($xeTable, row);
6183
- if (!rExpandedMaps[rowid]) {
6187
+ const rowid = handleGetRowId(row);
6188
+ if (!rowExpandedMaps[rowid]) {
6184
6189
  const rowRest = fullAllDataRowIdData[rowid];
6185
6190
  const isLoad = lazy && !rowRest.expandLoaded && !rowExpandLazyLoadedMaps[rowid];
6186
6191
  if (isLoad) {
6187
6192
  lazyRests.push(handleAsyncRowExpand(row));
6188
6193
  } else {
6189
- rExpandedMaps[rowid] = row;
6194
+ rowExpandedMaps[rowid] = row;
6190
6195
  }
6191
6196
  }
6192
6197
  });
6193
6198
  } else {
6194
6199
  validRows.forEach(item => {
6195
- const rowid = (0, _util.getRowid)($xeTable, item);
6196
- if (rExpandedMaps[rowid]) {
6197
- delete rExpandedMaps[rowid];
6200
+ const rowid = handleGetRowId(item);
6201
+ if (rowExpandedMaps[rowid]) {
6202
+ delete rowExpandedMaps[rowid];
6198
6203
  }
6199
6204
  });
6200
6205
  }
@@ -6202,7 +6207,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
6202
6207
  validRows.forEach(row => handleRowExpandReserve(row, expanded));
6203
6208
  }
6204
6209
  }
6205
- reactData.rowExpandedMaps = rExpandedMaps;
6210
+ reactData.rowExpandedFlag++;
6206
6211
  return Promise.all(lazyRests).then(() => (0, _vue.nextTick)()).then(() => $xeTable.recalculate(true)).then(() => {
6207
6212
  updateRowOffsetTop();
6208
6213
  updateRowExpandStyle();
@@ -6216,10 +6221,13 @@ var _default = exports.default = (0, _vue.defineComponent)({
6216
6221
  */
6217
6222
  isRowExpandByRow(row) {
6218
6223
  const {
6219
- rowExpandedMaps
6224
+ rowExpandedFlag
6220
6225
  } = reactData;
6226
+ const {
6227
+ rowExpandedMaps
6228
+ } = internalData;
6221
6229
  const rowid = (0, _util.getRowid)($xeTable, row);
6222
- return !!rowExpandedMaps[rowid];
6230
+ return !!rowExpandedFlag && !!rowExpandedMaps[rowid];
6223
6231
  },
6224
6232
  isExpandByRow(row) {
6225
6233
  // 已废弃
@@ -6240,7 +6248,8 @@ var _default = exports.default = (0, _vue.defineComponent)({
6240
6248
  reserve
6241
6249
  } = expandOpts;
6242
6250
  const expList = $xeTable.getRowExpandRecords();
6243
- reactData.rowExpandedMaps = {};
6251
+ internalData.rowExpandedMaps = {};
6252
+ reactData.rowExpandedFlag++;
6244
6253
  if (reserve) {
6245
6254
  tableFullData.forEach(row => handleRowExpandReserve(row, false));
6246
6255
  }
@@ -6261,7 +6270,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
6261
6270
  },
6262
6271
  getRowExpandRecords() {
6263
6272
  const rest = [];
6264
- _xeUtils.default.each(reactData.rowExpandedMaps, item => {
6273
+ _xeUtils.default.each(internalData.rowExpandedMaps, item => {
6265
6274
  if (item) {
6266
6275
  rest.push(item);
6267
6276
  }
@@ -6270,7 +6279,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
6270
6279
  },
6271
6280
  getTreeExpandRecords() {
6272
6281
  const rest = [];
6273
- _xeUtils.default.each(reactData.treeExpandedMaps, item => {
6282
+ _xeUtils.default.each(internalData.treeExpandedMaps, item => {
6274
6283
  if (item) {
6275
6284
  rest.push(item);
6276
6285
  }
@@ -6290,15 +6299,14 @@ var _default = exports.default = (0, _vue.defineComponent)({
6290
6299
  },
6291
6300
  clearTreeExpandLoaded(rows) {
6292
6301
  const {
6293
- fullAllDataRowIdData
6302
+ fullAllDataRowIdData,
6303
+ treeExpandedMaps
6294
6304
  } = internalData;
6295
6305
  const treeOpts = computeTreeOpts.value;
6296
6306
  const {
6297
6307
  transform
6298
6308
  } = treeOpts;
6299
- let tExpandedMaps = {};
6300
6309
  if (rows) {
6301
- tExpandedMaps = Object.assign({}, reactData.treeExpandedMaps);
6302
6310
  if (!_xeUtils.default.isArray(rows)) {
6303
6311
  rows = [rows];
6304
6312
  }
@@ -6307,8 +6315,8 @@ var _default = exports.default = (0, _vue.defineComponent)({
6307
6315
  const rowRest = fullAllDataRowIdData[rowid];
6308
6316
  if (rowRest) {
6309
6317
  rowRest.treeLoaded = false;
6310
- if (tExpandedMaps[rowid]) {
6311
- delete tExpandedMaps[rowid];
6318
+ if (treeExpandedMaps[rowid]) {
6319
+ delete treeExpandedMaps[rowid];
6312
6320
  }
6313
6321
  }
6314
6322
  });
@@ -6317,7 +6325,8 @@ var _default = exports.default = (0, _vue.defineComponent)({
6317
6325
  rowRest.treeLoaded = false;
6318
6326
  });
6319
6327
  }
6320
- reactData.treeExpandedMaps = {};
6328
+ internalData.treeExpandedMaps = {};
6329
+ reactData.treeExpandedFlag++;
6321
6330
  if (transform) {
6322
6331
  handleVirtualTreeToList();
6323
6332
  return $xeTable.handleTableData();
@@ -6331,7 +6340,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
6331
6340
  reloadTreeExpand(row) {
6332
6341
  const {
6333
6342
  treeExpandLazyLoadedMaps
6334
- } = reactData;
6343
+ } = internalData;
6335
6344
  const treeOpts = computeTreeOpts.value;
6336
6345
  const hasChildField = treeOpts.hasChild || treeOpts.hasChildField;
6337
6346
  const {
@@ -6429,9 +6438,12 @@ var _default = exports.default = (0, _vue.defineComponent)({
6429
6438
  */
6430
6439
  isTreeExpandByRow(row) {
6431
6440
  const {
6432
- treeExpandedMaps
6441
+ treeExpandedFlag
6433
6442
  } = reactData;
6434
- return !!treeExpandedMaps[(0, _util.getRowid)($xeTable, row)];
6443
+ const {
6444
+ treeExpandedMaps
6445
+ } = internalData;
6446
+ return !!treeExpandedFlag && !!treeExpandedMaps[(0, _util.getRowid)($xeTable, row)];
6435
6447
  },
6436
6448
  /**
6437
6449
  * 手动清空树形节点的展开状态,数据会恢复成未展开的状态
@@ -6446,21 +6458,22 @@ var _default = exports.default = (0, _vue.defineComponent)({
6446
6458
  transform,
6447
6459
  reserve
6448
6460
  } = treeOpts;
6449
- const expList = tableMethods.getTreeExpandRecords();
6450
- reactData.treeExpandedMaps = {};
6461
+ const expList = $xeTable.getTreeExpandRecords();
6462
+ internalData.treeExpandedMaps = {};
6463
+ reactData.treeExpandedFlag++;
6451
6464
  if (reserve) {
6452
6465
  _xeUtils.default.eachTree(tableFullTreeData, row => handleTreeExpandReserve(row, false), {
6453
6466
  children: childrenField
6454
6467
  });
6455
6468
  }
6456
- return tablePrivateMethods.handleTableData().then(() => {
6469
+ return $xeTable.handleTableData().then(() => {
6457
6470
  if (transform) {
6458
6471
  handleVirtualTreeToList();
6459
- return tablePrivateMethods.handleTableData();
6472
+ return $xeTable.handleTableData();
6460
6473
  }
6461
6474
  }).then(() => {
6462
6475
  if (expList.length) {
6463
- return tableMethods.recalculate();
6476
+ return $xeTable.recalculate();
6464
6477
  }
6465
6478
  });
6466
6479
  },
@@ -6751,8 +6764,15 @@ var _default = exports.default = (0, _vue.defineComponent)({
6751
6764
  collectColumn
6752
6765
  } = internalData;
6753
6766
  const {
6767
+ storage,
6754
6768
  checkMethod
6755
6769
  } = customOpts;
6770
+ const isAllCustom = storage === true;
6771
+ const storageOpts = isAllCustom ? {} : Object.assign({}, storage || {});
6772
+ const isCustomResizable = isAllCustom || storageOpts.resizable;
6773
+ const isCustomVisible = isAllCustom || storageOpts.visible;
6774
+ const isCustomFixed = isAllCustom || storageOpts.fixed;
6775
+ const isCustomSort = isAllCustom || storageOpts.sort;
6756
6776
  const resizableData = {};
6757
6777
  const sortData = {};
6758
6778
  const visibleData = {};
@@ -6772,45 +6792,35 @@ var _default = exports.default = (0, _vue.defineComponent)({
6772
6792
  let hasFixed = 0;
6773
6793
  let hasVisible = 0;
6774
6794
  _xeUtils.default.eachTree(collectColumn, (column, index, items, path, parentColumn) => {
6795
+ const colKey = column.getKey();
6796
+ if (!colKey) {
6797
+ (0, _log.errLog)('vxe.error.reqProp', [`${column.getTitle() || column.type || ''} -> column.field=?`]);
6798
+ return;
6799
+ }
6775
6800
  // 只支持一级
6776
6801
  if (!parentColumn) {
6777
- collectColumn.forEach(column => {
6778
- const colKey = column.getKey();
6779
- if (colKey) {
6780
- hasSort = 1;
6781
- sortData[colKey] = column.renderSortNumber;
6782
- }
6783
- });
6784
- if (column.fixed !== column.defaultFixed) {
6785
- const colKey = column.getKey();
6786
- if (colKey) {
6787
- hasFixed = 1;
6788
- fixedData[colKey] = column.fixed;
6789
- }
6802
+ if (isCustomSort) {
6803
+ hasSort = 1;
6804
+ sortData[colKey] = column.renderSortNumber;
6790
6805
  }
6791
- }
6792
- if (column.resizeWidth) {
6793
- const colKey = column.getKey();
6794
- if (colKey) {
6795
- hasResizable = 1;
6796
- resizableData[colKey] = column.renderWidth;
6806
+ if (isCustomFixed && column.fixed !== column.defaultFixed) {
6807
+ hasFixed = 1;
6808
+ fixedData[colKey] = column.fixed;
6797
6809
  }
6798
6810
  }
6799
- if (!checkMethod || checkMethod({
6811
+ if (isCustomResizable && column.resizeWidth) {
6812
+ hasResizable = 1;
6813
+ resizableData[colKey] = column.renderWidth;
6814
+ }
6815
+ if (isCustomVisible && (!checkMethod || checkMethod({
6800
6816
  column
6801
- })) {
6817
+ }))) {
6802
6818
  if (!column.visible && column.defaultVisible) {
6803
- const colKey = column.getKey();
6804
- if (colKey) {
6805
- hasVisible = 1;
6806
- visibleData[colKey] = false;
6807
- }
6819
+ hasVisible = 1;
6820
+ visibleData[colKey] = false;
6808
6821
  } else if (column.visible && !column.defaultVisible) {
6809
- const colKey = column.getKey();
6810
- if (colKey) {
6811
- hasVisible = 1;
6812
- visibleData[colKey] = true;
6813
- }
6822
+ hasVisible = 1;
6823
+ visibleData[colKey] = true;
6814
6824
  }
6815
6825
  }
6816
6826
  });
@@ -7195,7 +7205,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
7195
7205
  if (keyboardOpts.enterToTab) {
7196
7206
  $xeTable.moveTabSelected(activeParams, hasShiftKey, evnt);
7197
7207
  } else {
7198
- $xeTable.moveSelected(activeParams, isLeftArrow, true, isRightArrow, false, evnt);
7208
+ $xeTable.moveEnterSelected(activeParams, isLeftArrow, true, isRightArrow, false, evnt);
7199
7209
  }
7200
7210
  } else {
7201
7211
  if (keyboardOpts.enterToTab) {
@@ -7231,7 +7241,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
7231
7241
  return;
7232
7242
  }
7233
7243
  }
7234
- $xeTable.moveSelected(activeParams, isLeftArrow, false, isRightArrow, true, evnt);
7244
+ $xeTable.moveEnterSelected(activeParams, isLeftArrow, false, isRightArrow, true, evnt);
7235
7245
  if (enterMethod) {
7236
7246
  enterMethod(etrParams);
7237
7247
  }
@@ -7258,10 +7268,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
7258
7268
  if (!isEditStatus) {
7259
7269
  // 如果按下了方向键
7260
7270
  if (selected.row && selected.column) {
7261
- $xeTable.moveSelected(selected.args, isLeftArrow, isUpArrow, isRightArrow, isDwArrow, evnt);
7262
- } else if ((isUpArrow || isDwArrow) && (rowOpts.isCurrent || highlightCurrentRow)) {
7263
- // 当前行按键上下移动
7264
- $xeTable.moveCurrentRow(isUpArrow, isDwArrow, evnt);
7271
+ $xeTable.moveArrowSelected(selected.args, isLeftArrow, isUpArrow, isRightArrow, isDwArrow, evnt);
7265
7272
  }
7266
7273
  }
7267
7274
  } else if (isTab && keyboardConfig && keyboardOpts.isTab) {
@@ -7686,8 +7693,9 @@ var _default = exports.default = (0, _vue.defineComponent)({
7686
7693
  * @param {Event} evnt 事件
7687
7694
  * @param {Row} row 行对象
7688
7695
  */
7689
- const handleTooltip = (evnt, tdEl, overflowElem, tipElem, params) => {
7690
- if (!overflowElem) {
7696
+ const handleTooltip = (evnt, tdEl, overflowElem, params) => {
7697
+ const tipOverEl = overflowElem || tdEl;
7698
+ if (!tipOverEl) {
7691
7699
  return (0, _vue.nextTick)();
7692
7700
  }
7693
7701
  params.cell = tdEl;
@@ -7705,9 +7713,8 @@ var _default = exports.default = (0, _vue.defineComponent)({
7705
7713
  } = tooltipOpts;
7706
7714
  const customContent = contentMethod ? contentMethod(params) : null;
7707
7715
  const useCustom = contentMethod && !_xeUtils.default.eqNull(customContent);
7708
- const content = useCustom ? customContent : _xeUtils.default.toString(column.type === 'html' ? overflowElem.innerText : overflowElem.textContent).trim();
7709
- const isCellOverflow = overflowElem.scrollWidth > overflowElem.clientWidth;
7710
- if (content && (showAll || useCustom || isCellOverflow)) {
7716
+ const content = useCustom ? customContent : _xeUtils.default.toString(column.type === 'html' ? tipOverEl.innerText : tipOverEl.textContent).trim();
7717
+ if (content && (showAll || useCustom || tipOverEl.scrollWidth > tipOverEl.clientWidth)) {
7711
7718
  Object.assign(tooltipStore, {
7712
7719
  row,
7713
7720
  column,
@@ -7717,7 +7724,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
7717
7724
  (0, _vue.nextTick)(() => {
7718
7725
  const $tooltip = refTooltip.value;
7719
7726
  if ($tooltip && $tooltip.open) {
7720
- $tooltip.open(isCellOverflow ? overflowElem : tipElem || overflowElem, (0, _utils.formatText)(content));
7727
+ $tooltip.open(tipOverEl, (0, _utils.formatText)(content));
7721
7728
  }
7722
7729
  });
7723
7730
  }
@@ -7875,13 +7882,11 @@ var _default = exports.default = (0, _vue.defineComponent)({
7875
7882
  const {
7876
7883
  treeConfig
7877
7884
  } = props;
7878
- const {
7879
- treeExpandedMaps
7880
- } = reactData;
7881
7885
  const {
7882
7886
  fullAllDataRowIdData,
7883
7887
  tableFullData,
7884
- tableFullTreeData
7888
+ tableFullTreeData,
7889
+ treeExpandedMaps
7885
7890
  } = internalData;
7886
7891
  const treeOpts = computeTreeOpts.value;
7887
7892
  const childrenField = treeOpts.children || treeOpts.childrenField;
@@ -7889,12 +7894,11 @@ var _default = exports.default = (0, _vue.defineComponent)({
7889
7894
  const {
7890
7895
  lazy
7891
7896
  } = treeOpts;
7892
- const rowkey = (0, _util.getRowkey)($xeTable);
7893
- const isDeepKey = rowkey.indexOf('.') > -1;
7894
7897
  const fullAllDataRowIdMaps = Object.assign({}, fullAllDataRowIdData); // 存在已删除数据
7895
7898
  const fullDataRowIdMaps = {};
7896
- const treeTempExpandedMaps = Object.assign({}, treeExpandedMaps);
7897
- const handleRowId = isDeepKey ? _util.updateDeepRowKey : _util.updateFastRowKey;
7899
+ const {
7900
+ handleUpdateRowId
7901
+ } = (0, _util.createHandleUpdateRowId)($xeTable);
7898
7902
  const handleRowCache = (row, index, items, currIndex, parentRow, rowid, level, seq) => {
7899
7903
  let rowRest = fullAllDataRowIdMaps[rowid];
7900
7904
  if (!rowRest) {
@@ -7930,15 +7934,14 @@ var _default = exports.default = (0, _vue.defineComponent)({
7930
7934
  };
7931
7935
  if (treeConfig) {
7932
7936
  _xeUtils.default.eachTree(tableFullTreeData, (row, index, items, path, parentRow, nodes) => {
7933
- const rowid = handleRowId(row, rowkey);
7937
+ const rowid = handleUpdateRowId(row);
7934
7938
  if (treeConfig && lazy) {
7935
- const treeExpRest = treeTempExpandedMaps[rowid];
7936
7939
  if (row[hasChildField] && row[childrenField] === undefined) {
7937
7940
  row[childrenField] = null;
7938
7941
  }
7939
- if (treeExpRest) {
7942
+ if (treeExpandedMaps[rowid]) {
7940
7943
  if (!row[childrenField] || !row[childrenField].length) {
7941
- delete treeTempExpandedMaps[rowid];
7944
+ delete treeExpandedMaps[rowid];
7942
7945
  }
7943
7946
  }
7944
7947
  }
@@ -7948,31 +7951,26 @@ var _default = exports.default = (0, _vue.defineComponent)({
7948
7951
  });
7949
7952
  } else {
7950
7953
  tableFullData.forEach((row, index, items) => {
7951
- handleRowCache(row, index, items, index, null, handleRowId(row, rowkey), 0, index + 1);
7954
+ handleRowCache(row, index, items, index, null, handleUpdateRowId(row), 0, index + 1);
7952
7955
  });
7953
7956
  }
7954
7957
  internalData.fullDataRowIdData = fullDataRowIdMaps;
7955
7958
  internalData.fullAllDataRowIdData = fullAllDataRowIdMaps;
7956
- reactData.treeExpandedMaps = treeTempExpandedMaps;
7959
+ reactData.treeExpandedFlag++;
7957
7960
  },
7958
7961
  cacheSourceMap(fullData) {
7959
7962
  const {
7960
7963
  treeConfig
7961
7964
  } = props;
7962
7965
  const treeOpts = computeTreeOpts.value;
7963
- let {
7964
- sourceDataRowIdData
7965
- } = internalData;
7966
7966
  const sourceData = _xeUtils.default.clone(fullData, true);
7967
- const rowkey = (0, _util.getRowkey)($xeTable);
7968
- sourceDataRowIdData = internalData.sourceDataRowIdData = {};
7967
+ const {
7968
+ handleUpdateRowId
7969
+ } = (0, _util.createHandleUpdateRowId)($xeTable);
7970
+ const sourceRowIdData = {};
7969
7971
  const handleSourceRow = row => {
7970
- let rowid = (0, _util.getRowid)($xeTable, row);
7971
- if ((0, _utils.eqEmptyValue)(rowid)) {
7972
- rowid = (0, _util.getRowUniqueId)();
7973
- _xeUtils.default.set(row, rowkey, rowid);
7974
- }
7975
- sourceDataRowIdData[rowid] = row;
7972
+ const rowid = handleUpdateRowId(row);
7973
+ sourceRowIdData[rowid] = row;
7976
7974
  };
7977
7975
  // 源数据缓存
7978
7976
  if (treeConfig) {
@@ -7983,6 +7981,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
7983
7981
  } else {
7984
7982
  sourceData.forEach(handleSourceRow);
7985
7983
  }
7984
+ internalData.sourceDataRowIdData = sourceRowIdData;
7986
7985
  internalData.tableSourceData = sourceData;
7987
7986
  },
7988
7987
  /**
@@ -8489,12 +8488,25 @@ var _default = exports.default = (0, _vue.defineComponent)({
8489
8488
  }
8490
8489
  }
8491
8490
  // 兼容老版本
8492
- let rest;
8493
- if (!evntList.some(func => func(Object.assign({
8494
- $grid: $xeGrid,
8495
- $table: $xeTable,
8496
- $event: evnt
8497
- }, args)) === false)) {
8491
+ let rest = null;
8492
+ let isStop = false;
8493
+ for (let i = 0; i < evntList.length; i++) {
8494
+ const func = evntList[i];
8495
+ const fnRest = func(Object.assign({
8496
+ $grid: $xeGrid,
8497
+ $table: $xeTable,
8498
+ $event: evnt
8499
+ }, args));
8500
+ if (fnRest === false) {
8501
+ isStop = true;
8502
+ break;
8503
+ } else if (fnRest && fnRest.status === false) {
8504
+ rest = fnRest.result;
8505
+ isStop = true;
8506
+ break;
8507
+ }
8508
+ }
8509
+ if (!isStop) {
8498
8510
  if (next) {
8499
8511
  rest = next();
8500
8512
  }
@@ -8510,10 +8522,8 @@ var _default = exports.default = (0, _vue.defineComponent)({
8510
8522
  } = props;
8511
8523
  const {
8512
8524
  selectCheckboxMaps,
8513
- treeIndeterminateMaps
8514
- } = reactData;
8515
- const selectRowMaps = Object.assign({}, selectCheckboxMaps);
8516
- const halfRowMaps = Object.assign({}, treeIndeterminateMaps);
8525
+ treeIndeterminateRowMaps
8526
+ } = internalData;
8517
8527
  const treeOpts = computeTreeOpts.value;
8518
8528
  const {
8519
8529
  transform,
@@ -8534,10 +8544,13 @@ var _default = exports.default = (0, _vue.defineComponent)({
8534
8544
  }
8535
8545
  // 树结构
8536
8546
  if (treeConfig) {
8547
+ const {
8548
+ handleGetRowId
8549
+ } = (0, _util.createHandleGetRowId)($xeTable);
8537
8550
  const childRowMaps = {};
8538
8551
  const childRowList = [];
8539
8552
  _xeUtils.default.eachTree(afterTreeFullData, row => {
8540
- const rowid = (0, _util.getRowid)($xeTable, row);
8553
+ const rowid = handleGetRowId(row);
8541
8554
  const childList = row[transform ? mapChildrenField : childrenField];
8542
8555
  if (childList && childList.length && !childRowMaps[rowid]) {
8543
8556
  childRowMaps[rowid] = 1;
@@ -8554,30 +8567,30 @@ var _default = exports.default = (0, _vue.defineComponent)({
8554
8567
  let hLen = 0; // 半选
8555
8568
  let vLen = 0; // 有效行
8556
8569
  childList.forEach(checkMethod ? item => {
8557
- const childRowid = (0, _util.getRowid)($xeTable, item);
8558
- const isSelect = checkField ? _xeUtils.default.get(item, checkField) : selectRowMaps[childRowid];
8570
+ const childRowid = handleGetRowId(item);
8571
+ const isSelect = checkField ? _xeUtils.default.get(item, checkField) : selectCheckboxMaps[childRowid];
8559
8572
  if (checkMethod({
8560
8573
  row: item
8561
8574
  })) {
8562
8575
  if (isSelect) {
8563
8576
  sLen++;
8564
- } else if (halfRowMaps[childRowid]) {
8577
+ } else if (treeIndeterminateRowMaps[childRowid]) {
8565
8578
  hLen++;
8566
8579
  }
8567
8580
  vLen++;
8568
8581
  } else {
8569
8582
  if (isSelect) {
8570
8583
  sLen++;
8571
- } else if (halfRowMaps[childRowid]) {
8584
+ } else if (treeIndeterminateRowMaps[childRowid]) {
8572
8585
  hLen++;
8573
8586
  }
8574
8587
  }
8575
8588
  } : item => {
8576
- const childRowid = (0, _util.getRowid)($xeTable, item);
8577
- const isSelect = checkField ? _xeUtils.default.get(item, checkField) : selectRowMaps[childRowid];
8589
+ const childRowid = handleGetRowId(item);
8590
+ const isSelect = checkField ? _xeUtils.default.get(item, checkField) : selectCheckboxMaps[childRowid];
8578
8591
  if (isSelect) {
8579
8592
  sLen++;
8580
- } else if (halfRowMaps[childRowid]) {
8593
+ } else if (treeIndeterminateRowMaps[childRowid]) {
8581
8594
  hLen++;
8582
8595
  }
8583
8596
  vLen++;
@@ -8589,38 +8602,40 @@ var _default = exports.default = (0, _vue.defineComponent)({
8589
8602
  }
8590
8603
  if (isSelected) {
8591
8604
  if (!checkField) {
8592
- selectRowMaps[rowid] = row;
8605
+ selectCheckboxMaps[rowid] = row;
8593
8606
  }
8594
- if (halfRowMaps[rowid]) {
8595
- delete halfRowMaps[rowid];
8607
+ if (treeIndeterminateRowMaps[rowid]) {
8608
+ delete treeIndeterminateRowMaps[rowid];
8596
8609
  }
8597
8610
  } else {
8598
8611
  if (!checkField) {
8599
- if (selectRowMaps[rowid]) {
8600
- delete selectRowMaps[rowid];
8612
+ if (selectCheckboxMaps[rowid]) {
8613
+ delete selectCheckboxMaps[rowid];
8601
8614
  }
8602
8615
  }
8603
8616
  if (halfSelect) {
8604
- halfRowMaps[rowid] = row;
8617
+ treeIndeterminateRowMaps[rowid] = row;
8605
8618
  } else {
8606
- if (halfRowMaps[rowid]) {
8607
- delete halfRowMaps[rowid];
8619
+ if (treeIndeterminateRowMaps[rowid]) {
8620
+ delete treeIndeterminateRowMaps[rowid];
8608
8621
  }
8609
8622
  }
8610
8623
  }
8611
8624
  });
8612
8625
  }
8613
- reactData.selectCheckboxMaps = selectRowMaps;
8614
- reactData.treeIndeterminateMaps = halfRowMaps;
8626
+ reactData.updateCheckboxFlag++;
8615
8627
  },
8616
8628
  updateAllCheckboxStatus() {
8617
8629
  const {
8618
8630
  treeConfig
8619
8631
  } = props;
8620
8632
  const {
8633
+ afterFullData,
8634
+ afterTreeFullData,
8635
+ checkboxReserveRowMap,
8621
8636
  selectCheckboxMaps,
8622
- treeIndeterminateMaps
8623
- } = reactData;
8637
+ treeIndeterminateRowMaps
8638
+ } = internalData;
8624
8639
  const checkboxOpts = computeCheckboxOpts.value;
8625
8640
  const {
8626
8641
  checkField,
@@ -8628,39 +8643,37 @@ var _default = exports.default = (0, _vue.defineComponent)({
8628
8643
  showReserveStatus
8629
8644
  } = checkboxOpts;
8630
8645
  const {
8631
- afterFullData,
8632
- afterTreeFullData,
8633
- checkboxReserveRowMap
8634
- } = internalData;
8646
+ handleGetRowId
8647
+ } = (0, _util.createHandleGetRowId)($xeTable);
8635
8648
  let sLen = 0; // 已选
8636
8649
  let hLen = 0; // 半选
8637
8650
  let vLen = 0; // 有效行
8638
8651
  const rootList = treeConfig ? afterTreeFullData : afterFullData;
8639
8652
  rootList.forEach(checkMethod ? row => {
8640
- const childRowid = (0, _util.getRowid)($xeTable, row);
8653
+ const childRowid = handleGetRowId(row);
8641
8654
  const selected = checkField ? _xeUtils.default.get(row, checkField) : selectCheckboxMaps[childRowid];
8642
8655
  if (checkMethod({
8643
8656
  row
8644
8657
  })) {
8645
8658
  if (selected) {
8646
8659
  sLen++;
8647
- } else if (treeIndeterminateMaps[childRowid]) {
8660
+ } else if (treeIndeterminateRowMaps[childRowid]) {
8648
8661
  hLen++;
8649
8662
  }
8650
8663
  vLen++;
8651
8664
  } else {
8652
8665
  if (selected) {
8653
8666
  sLen++;
8654
- } else if (treeIndeterminateMaps[childRowid]) {
8667
+ } else if (treeIndeterminateRowMaps[childRowid]) {
8655
8668
  hLen++;
8656
8669
  }
8657
8670
  }
8658
8671
  } : row => {
8659
- const childRowid = (0, _util.getRowid)($xeTable, row);
8672
+ const childRowid = handleGetRowId(row);
8660
8673
  const selected = checkField ? _xeUtils.default.get(row, checkField) : selectCheckboxMaps[childRowid];
8661
8674
  if (selected) {
8662
8675
  sLen++;
8663
- } else if (treeIndeterminateMaps[childRowid]) {
8676
+ } else if (treeIndeterminateRowMaps[childRowid]) {
8664
8677
  hLen++;
8665
8678
  }
8666
8679
  vLen++;
@@ -8688,8 +8701,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
8688
8701
  } = props;
8689
8702
  const {
8690
8703
  selectCheckboxMaps
8691
- } = reactData;
8692
- const selectRowMaps = Object.assign({}, selectCheckboxMaps);
8704
+ } = internalData;
8693
8705
  const treeOpts = computeTreeOpts.value;
8694
8706
  const {
8695
8707
  transform,
@@ -8702,6 +8714,9 @@ var _default = exports.default = (0, _vue.defineComponent)({
8702
8714
  checkStrictly,
8703
8715
  checkMethod
8704
8716
  } = checkboxOpts;
8717
+ const {
8718
+ handleGetRowId
8719
+ } = (0, _util.createHandleGetRowId)($xeTable);
8705
8720
  // indeterminateField 仅支持读取
8706
8721
  const indeterminateField = checkboxOpts.indeterminateField || checkboxOpts.halfField;
8707
8722
  if (checkField) {
@@ -8721,35 +8736,34 @@ var _default = exports.default = (0, _vue.defineComponent)({
8721
8736
  }, {
8722
8737
  children: transform ? mapChildrenField : childrenField
8723
8738
  });
8724
- reactData.selectCheckboxMaps = selectRowMaps;
8739
+ reactData.updateCheckboxFlag++;
8725
8740
  return;
8726
- } else {
8727
- // 列表
8728
- rows.forEach(row => {
8729
- if (isForce || !checkMethod || checkMethod({
8730
- row
8731
- })) {
8732
- _xeUtils.default.set(row, checkField, checked);
8733
- handleCheckboxReserveRow(row, checked);
8734
- }
8735
- });
8736
8741
  }
8737
- reactData.selectCheckboxMaps = selectRowMaps;
8742
+ // 列表
8743
+ rows.forEach(row => {
8744
+ if (isForce || !checkMethod || checkMethod({
8745
+ row
8746
+ })) {
8747
+ _xeUtils.default.set(row, checkField, checked);
8748
+ handleCheckboxReserveRow(row, checked);
8749
+ }
8750
+ });
8751
+ reactData.updateCheckboxFlag++;
8738
8752
  return;
8739
8753
  }
8740
8754
  // 树结构
8741
8755
  if (treeConfig && !checkStrictly) {
8742
8756
  // 更新子节点状态
8743
8757
  _xeUtils.default.eachTree(rows, row => {
8744
- const rowid = (0, _util.getRowid)($xeTable, row);
8758
+ const rowid = handleGetRowId(row);
8745
8759
  if (isForce || !checkMethod || checkMethod({
8746
8760
  row
8747
8761
  })) {
8748
8762
  if (checked) {
8749
- selectRowMaps[rowid] = row;
8763
+ selectCheckboxMaps[rowid] = row;
8750
8764
  } else {
8751
- if (selectRowMaps[rowid]) {
8752
- delete selectRowMaps[rowid];
8765
+ if (selectCheckboxMaps[rowid]) {
8766
+ delete selectCheckboxMaps[rowid];
8753
8767
  }
8754
8768
  }
8755
8769
  handleCheckboxReserveRow(row, checked);
@@ -8757,28 +8771,28 @@ var _default = exports.default = (0, _vue.defineComponent)({
8757
8771
  }, {
8758
8772
  children: transform ? mapChildrenField : childrenField
8759
8773
  });
8760
- reactData.selectCheckboxMaps = selectRowMaps;
8774
+ reactData.updateCheckboxFlag++;
8761
8775
  return;
8762
8776
  }
8763
8777
  // 列表
8764
8778
  rows.forEach(row => {
8765
- const rowid = (0, _util.getRowid)($xeTable, row);
8779
+ const rowid = handleGetRowId(row);
8766
8780
  if (isForce || !checkMethod || checkMethod({
8767
8781
  row
8768
8782
  })) {
8769
8783
  if (checked) {
8770
- if (!selectRowMaps[rowid]) {
8771
- selectRowMaps[rowid] = row;
8784
+ if (!selectCheckboxMaps[rowid]) {
8785
+ selectCheckboxMaps[rowid] = row;
8772
8786
  }
8773
8787
  } else {
8774
- if (selectRowMaps[rowid]) {
8775
- delete selectRowMaps[rowid];
8788
+ if (selectCheckboxMaps[rowid]) {
8789
+ delete selectCheckboxMaps[rowid];
8776
8790
  }
8777
8791
  }
8778
8792
  handleCheckboxReserveRow(row, checked);
8793
+ reactData.updateCheckboxFlag++;
8779
8794
  }
8780
8795
  });
8781
- reactData.selectCheckboxMaps = selectRowMaps;
8782
8796
  },
8783
8797
  /**
8784
8798
  * 即将移除
@@ -8836,7 +8850,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
8836
8850
  return;
8837
8851
  }
8838
8852
  if (tooltipStore.column !== column || !tooltipStore.visible) {
8839
- handleTooltip(evnt, thEl, cellEl, null, params);
8853
+ handleTooltip(evnt, thEl, thEl.querySelector('.vxe-cell--title') || cellEl, params);
8840
8854
  }
8841
8855
  },
8842
8856
  /**
@@ -8874,7 +8888,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
8874
8888
  }
8875
8889
  }
8876
8890
  if (tooltipStore.column !== column || tooltipStore.row !== row || !tooltipStore.visible) {
8877
- handleTooltip(evnt, tdEl, tdEl.querySelector('.vxe-cell--wrapper'), null, params);
8891
+ handleTooltip(evnt, tdEl, tdEl.querySelector('.vxe-cell--label') || tdEl.querySelector('.vxe-cell--wrapper'), params);
8878
8892
  }
8879
8893
  },
8880
8894
  /**
@@ -8887,10 +8901,10 @@ var _default = exports.default = (0, _vue.defineComponent)({
8887
8901
  const {
8888
8902
  tooltipStore
8889
8903
  } = reactData;
8890
- const cell = evnt.currentTarget;
8904
+ const tdEl = evnt.currentTarget;
8891
8905
  handleTargetEnterEvent(tooltipStore.column !== column || !!tooltipStore.row);
8892
8906
  if (tooltipStore.column !== column || !tooltipStore.visible) {
8893
- handleTooltip(evnt, cell, cell.querySelector('.vxe-cell--wrapper') || cell.children[0], null, params);
8907
+ handleTooltip(evnt, tdEl, tdEl.querySelector('.vxe-cell--label') || tdEl.querySelector('.vxe-cell--wrapper'), params);
8894
8908
  }
8895
8909
  },
8896
8910
  handleTargetLeaveEvent() {
@@ -8916,6 +8930,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
8916
8930
  } = internalData;
8917
8931
  const sortOpts = computeSortOpts.value;
8918
8932
  const columnOpts = computeColumnOpts.value;
8933
+ const currentColumnOpts = computeCurrentColumnOpts.value;
8919
8934
  const {
8920
8935
  column
8921
8936
  } = params;
@@ -8924,7 +8939,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
8924
8939
  const triggerSort = (0, _dom.getEventTargetNode)(evnt, cell, 'vxe-cell--sort').flag;
8925
8940
  const triggerFilter = (0, _dom.getEventTargetNode)(evnt, cell, 'vxe-cell--filter').flag;
8926
8941
  if (sortOpts.trigger === 'cell' && !(triggerResizable || triggerSort || triggerFilter)) {
8927
- tablePrivateMethods.triggerSortEvent(evnt, column, getNextSortOrder(column));
8942
+ $xeTable.triggerSortEvent(evnt, column, getNextSortOrder(column));
8928
8943
  }
8929
8944
  dispatchEvent('header-cell-click', Object.assign({
8930
8945
  triggerResizable,
@@ -8932,8 +8947,8 @@ var _default = exports.default = (0, _vue.defineComponent)({
8932
8947
  triggerFilter,
8933
8948
  cell
8934
8949
  }, params), evnt);
8935
- if (columnOpts.isCurrent || props.highlightCurrentColumn) {
8936
- tablePrivateMethods.triggerCurrentColumnEvent(evnt, params);
8950
+ if ((columnOpts.isCurrent || props.highlightCurrentColumn) && (!currentColumnOpts.trigger || ['header', 'default'].includes(currentColumnOpts.trigger))) {
8951
+ $xeTable.triggerCurrentColumnEvent(evnt, params);
8937
8952
  }
8938
8953
  },
8939
8954
  triggerHeaderCellDblclickEvent(evnt, params) {
@@ -8949,6 +8964,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
8949
8964
  triggerCellClickEvent(evnt, params) {
8950
8965
  const {
8951
8966
  highlightCurrentRow,
8967
+ highlightCurrentColumn,
8952
8968
  editConfig
8953
8969
  } = props;
8954
8970
  const {
@@ -8965,6 +8981,8 @@ var _default = exports.default = (0, _vue.defineComponent)({
8965
8981
  const checkboxOpts = computeCheckboxOpts.value;
8966
8982
  const keyboardOpts = computeKeyboardOpts.value;
8967
8983
  const rowOpts = computeRowOpts.value;
8984
+ const columnOpts = computeColumnOpts.value;
8985
+ const currentColumnOpts = computeCurrentColumnOpts.value;
8968
8986
  const {
8969
8987
  actived,
8970
8988
  focused
@@ -8995,29 +9013,35 @@ var _default = exports.default = (0, _vue.defineComponent)({
8995
9013
  if (!triggerCheckbox && !triggerRadio) {
8996
9014
  // 如果是展开行
8997
9015
  if (!triggerExpandNode && (expandOpts.trigger === 'row' || isExpandType && expandOpts.trigger === 'cell')) {
8998
- tablePrivateMethods.triggerRowExpandEvent(evnt, params);
9016
+ $xeTable.triggerRowExpandEvent(evnt, params);
8999
9017
  }
9000
9018
  // 如果是树形表格
9001
9019
  if (treeOpts.trigger === 'row' || treeNode && treeOpts.trigger === 'cell') {
9002
- tablePrivateMethods.triggerTreeExpandEvent(evnt, params);
9020
+ $xeTable.triggerTreeExpandEvent(evnt, params);
9003
9021
  }
9004
9022
  }
9005
9023
  // 如果点击了树节点
9006
9024
  if (!triggerTreeNode) {
9007
9025
  if (!triggerExpandNode) {
9008
- // 如果是高亮行
9026
+ // 如果是当前行
9009
9027
  if (rowOpts.isCurrent || highlightCurrentRow) {
9010
9028
  if (!triggerCheckbox && !triggerRadio) {
9011
- tablePrivateMethods.triggerCurrentRowEvent(evnt, params);
9029
+ $xeTable.triggerCurrentRowEvent(evnt, params);
9030
+ }
9031
+ }
9032
+ // 如果是当前列
9033
+ if ((columnOpts.isCurrent || highlightCurrentColumn) && (!currentColumnOpts.trigger || ['cell', 'default'].includes(currentColumnOpts.trigger))) {
9034
+ if (!triggerCheckbox && !triggerRadio) {
9035
+ $xeTable.triggerCurrentColumnEvent(evnt, params);
9012
9036
  }
9013
9037
  }
9014
9038
  // 如果是单选框
9015
9039
  if (!triggerRadio && (radioOpts.trigger === 'row' || isRadioType && radioOpts.trigger === 'cell')) {
9016
- tablePrivateMethods.triggerRadioRowEvent(evnt, params);
9040
+ $xeTable.triggerRadioRowEvent(evnt, params);
9017
9041
  }
9018
9042
  // 如果是复选框
9019
9043
  if (!triggerCheckbox && (checkboxOpts.trigger === 'row' || isCheckboxType && checkboxOpts.trigger === 'cell')) {
9020
- tablePrivateMethods.handleToggleCheckRowEvent(evnt, params);
9044
+ $xeTable.handleToggleCheckRowEvent(evnt, params);
9021
9045
  }
9022
9046
  }
9023
9047
  // 如果设置了单元格选中功能,则不会使用点击事件去处理(只能支持双击模式)
@@ -9097,7 +9121,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
9097
9121
  handleToggleCheckRowEvent(evnt, params) {
9098
9122
  const {
9099
9123
  selectCheckboxMaps
9100
- } = reactData;
9124
+ } = internalData;
9101
9125
  const checkboxOpts = computeCheckboxOpts.value;
9102
9126
  const {
9103
9127
  checkField,
@@ -9116,20 +9140,20 @@ var _default = exports.default = (0, _vue.defineComponent)({
9116
9140
  checked = !selectCheckboxMaps[(0, _util.getRowid)($xeTable, row)];
9117
9141
  }
9118
9142
  if (evnt) {
9119
- tablePrivateMethods.triggerCheckRowEvent(evnt, params, checked);
9143
+ $xeTable.triggerCheckRowEvent(evnt, params, checked);
9120
9144
  } else {
9121
- tablePrivateMethods.handleBatchSelectRows([row], checked);
9122
- tablePrivateMethods.checkSelectionStatus();
9145
+ $xeTable.handleBatchSelectRows([row], checked);
9146
+ $xeTable.checkSelectionStatus();
9123
9147
  }
9124
9148
  },
9125
9149
  triggerCheckRowEvent(evnt, params, checked) {
9126
- const checkboxOpts = computeCheckboxOpts.value;
9127
9150
  const {
9128
9151
  row
9129
9152
  } = params;
9130
9153
  const {
9131
9154
  afterFullData
9132
9155
  } = internalData;
9156
+ const checkboxOpts = computeCheckboxOpts.value;
9133
9157
  const {
9134
9158
  checkMethod,
9135
9159
  trigger
@@ -9139,15 +9163,17 @@ var _default = exports.default = (0, _vue.defineComponent)({
9139
9163
  }
9140
9164
  evnt.stopPropagation();
9141
9165
  if (checkboxOpts.isShiftKey && evnt.shiftKey && !props.treeConfig) {
9142
- const checkboxRecords = tableMethods.getCheckboxRecords();
9166
+ const checkboxRecords = $xeTable.getCheckboxRecords();
9143
9167
  if (checkboxRecords.length) {
9144
9168
  const firstRow = checkboxRecords[0];
9145
- const _rowIndex = tableMethods.getVTRowIndex(row);
9146
- const _firstRowIndex = tableMethods.getVTRowIndex(firstRow);
9169
+ const _rowIndex = $xeTable.getVTRowIndex(row);
9170
+ const _firstRowIndex = $xeTable.getVTRowIndex(firstRow);
9147
9171
  if (_rowIndex !== _firstRowIndex) {
9148
- tableMethods.setAllCheckboxRow(false);
9172
+ $xeTable.setAllCheckboxRow(false);
9149
9173
  const rangeRows = _rowIndex < _firstRowIndex ? afterFullData.slice(_rowIndex, _firstRowIndex + 1) : afterFullData.slice(_firstRowIndex, _rowIndex + 1);
9150
- handleCheckedCheckboxRow(rangeRows, true, false);
9174
+ (0, _vue.nextTick)(() => {
9175
+ handleCheckedCheckboxRow(rangeRows, true, false);
9176
+ });
9151
9177
  dispatchEvent('checkbox-range-select', Object.assign({
9152
9178
  rangeRecords: rangeRows
9153
9179
  }, params), evnt);
@@ -9158,12 +9184,12 @@ var _default = exports.default = (0, _vue.defineComponent)({
9158
9184
  if (!checkMethod || checkMethod({
9159
9185
  row
9160
9186
  })) {
9161
- tablePrivateMethods.handleBatchSelectRows([row], checked);
9162
- tablePrivateMethods.checkSelectionStatus();
9187
+ $xeTable.handleBatchSelectRows([row], checked);
9188
+ $xeTable.checkSelectionStatus();
9163
9189
  dispatchEvent('checkbox-change', Object.assign({
9164
- records: tableMethods.getCheckboxRecords(),
9165
- reserves: tableMethods.getCheckboxReserveRecords(),
9166
- indeterminates: tableMethods.getCheckboxIndeterminateRecords(),
9190
+ records: () => $xeTable.getCheckboxRecords(),
9191
+ reserves: () => $xeTable.getCheckboxReserveRecords(),
9192
+ indeterminates: () => $xeTable.getCheckboxIndeterminateRecords(),
9167
9193
  checked
9168
9194
  }, params), evnt);
9169
9195
  }
@@ -9263,9 +9289,11 @@ var _default = exports.default = (0, _vue.defineComponent)({
9263
9289
  */
9264
9290
  triggerRowExpandEvent(evnt, params) {
9265
9291
  const {
9266
- rowExpandLazyLoadedMaps,
9267
9292
  expandColumn: column
9268
9293
  } = reactData;
9294
+ const {
9295
+ rowExpandLazyLoadedMaps
9296
+ } = internalData;
9269
9297
  const expandOpts = computeExpandOpts.value;
9270
9298
  const {
9271
9299
  row
@@ -9280,18 +9308,18 @@ var _default = exports.default = (0, _vue.defineComponent)({
9280
9308
  evnt.stopPropagation();
9281
9309
  const rowid = (0, _util.getRowid)($xeTable, row);
9282
9310
  if (!lazy || !rowExpandLazyLoadedMaps[rowid]) {
9283
- const expanded = !tableMethods.isRowExpandByRow(row);
9284
- const columnIndex = tableMethods.getColumnIndex(column);
9285
- const $columnIndex = tableMethods.getVMColumnIndex(column);
9286
- tableMethods.setRowExpand(row, expanded);
9311
+ const expanded = !$xeTable.isRowExpandByRow(row);
9312
+ const columnIndex = $xeTable.getColumnIndex(column);
9313
+ const $columnIndex = $xeTable.getVMColumnIndex(column);
9314
+ $xeTable.setRowExpand(row, expanded);
9287
9315
  dispatchEvent('toggle-row-expand', {
9288
9316
  expanded,
9289
9317
  column,
9290
9318
  columnIndex,
9291
9319
  $columnIndex,
9292
9320
  row,
9293
- rowIndex: tableMethods.getRowIndex(row),
9294
- $rowIndex: tableMethods.getVMRowIndex(row)
9321
+ rowIndex: $xeTable.getRowIndex(row),
9322
+ $rowIndex: $xeTable.getVMRowIndex(row)
9295
9323
  }, evnt);
9296
9324
  }
9297
9325
  },
@@ -9301,7 +9329,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
9301
9329
  triggerTreeExpandEvent(evnt, params) {
9302
9330
  const {
9303
9331
  treeExpandLazyLoadedMaps
9304
- } = reactData;
9332
+ } = internalData;
9305
9333
  const treeOpts = computeTreeOpts.value;
9306
9334
  const {
9307
9335
  row,
@@ -9317,10 +9345,10 @@ var _default = exports.default = (0, _vue.defineComponent)({
9317
9345
  evnt.stopPropagation();
9318
9346
  const rowid = (0, _util.getRowid)($xeTable, row);
9319
9347
  if (!lazy || !treeExpandLazyLoadedMaps[rowid]) {
9320
- const expanded = !tableMethods.isTreeExpandByRow(row);
9321
- const columnIndex = tableMethods.getColumnIndex(column);
9322
- const $columnIndex = tableMethods.getVMColumnIndex(column);
9323
- tableMethods.setTreeExpand(row, expanded);
9348
+ const expanded = !$xeTable.isTreeExpandByRow(row);
9349
+ const columnIndex = $xeTable.getColumnIndex(column);
9350
+ const $columnIndex = $xeTable.getVMColumnIndex(column);
9351
+ $xeTable.setTreeExpand(row, expanded);
9324
9352
  dispatchEvent('toggle-tree-expand', {
9325
9353
  expanded,
9326
9354
  column,
@@ -9530,6 +9558,8 @@ var _default = exports.default = (0, _vue.defineComponent)({
9530
9558
  } = props;
9531
9559
  const rowDragOpts = computeRowDragOpts.value;
9532
9560
  const {
9561
+ afterFullData,
9562
+ tableFullData,
9533
9563
  fullAllDataRowIdData
9534
9564
  } = internalData;
9535
9565
  const {
@@ -9547,10 +9577,6 @@ var _default = exports.default = (0, _vue.defineComponent)({
9547
9577
  parentField
9548
9578
  } = treeOpts;
9549
9579
  const childrenField = treeOpts.children || treeOpts.childrenField;
9550
- const {
9551
- afterFullData,
9552
- tableFullData
9553
- } = internalData;
9554
9580
  const dEndMethod = dragEndMethod || (dragConfig ? dragConfig.dragEndMethod : null);
9555
9581
  const dragOffsetIndex = prevDragPos === 'bottom' ? 1 : 0;
9556
9582
  const errRest = {
@@ -10293,8 +10319,8 @@ var _default = exports.default = (0, _vue.defineComponent)({
10293
10319
  * 横向 X 可视渲染事件处理
10294
10320
  */
10295
10321
  triggerScrollXEvent() {
10296
- const sXOpts = computeSXOpts.value;
10297
- if (sXOpts.immediate) {
10322
+ const virtualXOpts = computeVirtualXOpts.value;
10323
+ if (virtualXOpts.immediate) {
10298
10324
  loadScrollXData();
10299
10325
  } else {
10300
10326
  lazyScrollXData();
@@ -10304,8 +10330,8 @@ var _default = exports.default = (0, _vue.defineComponent)({
10304
10330
  * 纵向 Y 可视渲染事件处理
10305
10331
  */
10306
10332
  triggerScrollYEvent() {
10307
- const sYOpts = computeSYOpts.value;
10308
- if (sYOpts.immediate) {
10333
+ const virtualYOpts = computeVirtualYOpts.value;
10334
+ if (virtualYOpts.immediate) {
10309
10335
  loadScrollYData();
10310
10336
  } else {
10311
10337
  lazyScrollYData();
@@ -10511,11 +10537,12 @@ var _default = exports.default = (0, _vue.defineComponent)({
10511
10537
  } = _props.default;
10512
10538
  const {
10513
10539
  scrollXLoad,
10514
- scrollYLoad
10540
+ scrollYLoad,
10541
+ expandColumn
10515
10542
  } = reactData;
10516
10543
  const leftFixedWidth = computeLeftFixedWidth.value;
10517
10544
  const rightFixedWidth = computeRightFixedWidth.value;
10518
- if (!(scrollYLoad || leftFixedWidth || rightFixedWidth)) {
10545
+ if (!(leftFixedWidth || rightFixedWidth || expandColumn)) {
10519
10546
  return;
10520
10547
  }
10521
10548
  const {
@@ -10542,8 +10569,8 @@ var _default = exports.default = (0, _vue.defineComponent)({
10542
10569
  return;
10543
10570
  }
10544
10571
  const wheelSpeed = getWheelSpeed(reactData.lastScrollTime);
10545
- const deltaTop = Math.ceil((shiftKey ? deltaX : deltaY) * wheelSpeed);
10546
- const deltaLeft = Math.ceil((shiftKey ? deltaY : deltaX) * wheelSpeed);
10572
+ const deltaTop = shiftKey ? 0 : Math.ceil(deltaY * wheelSpeed);
10573
+ const deltaLeft = shiftKey ? Math.ceil((shiftKey ? deltaY || deltaX : deltaX) * wheelSpeed) : 0;
10547
10574
  const isTopWheel = deltaTop < 0;
10548
10575
  const currScrollTop = bodyScrollElem.scrollTop;
10549
10576
  // 如果滚动位置已经是顶部或底部,则不需要触发
@@ -10562,6 +10589,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
10562
10589
  evnt.preventDefault();
10563
10590
  internalData.inWheelScroll = true;
10564
10591
  wheelScrollLeftTo(scrollLeft, offsetLeft => {
10592
+ internalData.inWheelScroll = true;
10565
10593
  const currLeftNum = offsetLeft;
10566
10594
  (0, _dom.setScrollLeft)(xHandleEl, currLeftNum);
10567
10595
  (0, _dom.setScrollLeft)(bodyScrollElem, currLeftNum);
@@ -10578,9 +10606,10 @@ var _default = exports.default = (0, _vue.defineComponent)({
10578
10606
  }
10579
10607
  if (isRollY) {
10580
10608
  evnt.preventDefault();
10609
+ internalData.inWheelScroll = true;
10581
10610
  wheelScrollTopTo(scrollTop - currScrollTop, offsetTop => {
10582
- const currTopNum = bodyScrollElem.scrollTop + offsetTop;
10583
10611
  internalData.inWheelScroll = true;
10612
+ const currTopNum = bodyScrollElem.scrollTop + offsetTop;
10584
10613
  (0, _dom.setScrollTop)(yHandleEl, currTopNum);
10585
10614
  (0, _dom.setScrollTop)(bodyScrollElem, currTopNum);
10586
10615
  (0, _dom.setScrollTop)(leftScrollElem, currTopNum);
@@ -10801,15 +10830,15 @@ var _default = exports.default = (0, _vue.defineComponent)({
10801
10830
  const {
10802
10831
  isAllOverflow,
10803
10832
  scrollYLoad,
10804
- expandColumn,
10805
- rowExpandedMaps
10833
+ expandColumn
10806
10834
  } = reactData;
10807
10835
  const {
10808
10836
  scrollYStore,
10809
10837
  elemStore,
10810
10838
  isResizeCellHeight,
10811
10839
  afterFullData,
10812
- fullAllDataRowIdData
10840
+ fullAllDataRowIdData,
10841
+ rowExpandedMaps
10813
10842
  } = internalData;
10814
10843
  const {
10815
10844
  startIndex
@@ -11161,6 +11190,9 @@ var _default = exports.default = (0, _vue.defineComponent)({
11161
11190
  ref: refRowExpandYSpaceElem
11162
11191
  })];
11163
11192
  if (expandColumn) {
11193
+ const {
11194
+ handleGetRowId
11195
+ } = (0, _util.createHandleGetRowId)($xeTable);
11164
11196
  tableRowExpandedList.forEach(row => {
11165
11197
  const expandOpts = computeExpandOpts.value;
11166
11198
  const {
@@ -11176,7 +11208,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
11176
11208
  seqMode
11177
11209
  } = treeOpts;
11178
11210
  const cellStyle = {};
11179
- const rowid = (0, _util.getRowid)($xeTable, row);
11211
+ const rowid = handleGetRowId(row);
11180
11212
  const rest = fullAllDataRowIdData[rowid];
11181
11213
  let rowLevel = 0;
11182
11214
  let seq = -1;
@@ -11782,7 +11814,6 @@ var _default = exports.default = (0, _vue.defineComponent)({
11782
11814
  scrollXStore,
11783
11815
  scrollYStore
11784
11816
  } = internalData;
11785
- const sYOpts = computeSYOpts.value;
11786
11817
  const editOpts = computeEditOpts.value;
11787
11818
  const treeOpts = computeTreeOpts.value;
11788
11819
  const radioOpts = computeRadioOpts.value;
@@ -11908,8 +11939,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
11908
11939
  Object.assign(scrollYStore, {
11909
11940
  startIndex: 0,
11910
11941
  endIndex: 0,
11911
- visibleSize: 0,
11912
- adaptive: sYOpts.adaptive !== false
11942
+ visibleSize: 0
11913
11943
  });
11914
11944
  Object.assign(scrollXStore, {
11915
11945
  startIndex: 0,