vxe-table 4.12.0-beta.8 → 4.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (185) hide show
  1. package/es/grid/src/grid.js +58 -44
  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 +11 -12
  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 -3
  32. package/es/table/render/index.js +3 -3
  33. package/es/table/src/body.js +40 -21
  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 +444 -423
  40. package/es/table/src/util.js +34 -6
  41. package/es/ui/index.js +2 -1
  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 +55 -48
  46. package/lib/grid/src/grid.min.js +1 -1
  47. package/lib/index.umd.js +515 -302
  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 +13 -13
  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 +5 -4
  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 +48 -20
  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 +534 -459
  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 +2 -1
  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 +62 -50
  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 +12 -12
  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 -3
  170. package/packages/table/render/index.ts +3 -4
  171. package/packages/table/src/body.ts +41 -21
  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 +451 -421
  178. package/packages/table/src/util.ts +39 -6
  179. package/packages/ui/index.ts +1 -0
  180. /package/es/{iconfont.1741333670965.ttf → iconfont.1742955995631.ttf} +0 -0
  181. /package/es/{iconfont.1741333670965.woff → iconfont.1742955995631.woff} +0 -0
  182. /package/es/{iconfont.1741333670965.woff2 → iconfont.1742955995631.woff2} +0 -0
  183. /package/lib/{iconfont.1741333670965.ttf → iconfont.1742955995631.ttf} +0 -0
  184. /package/lib/{iconfont.1741333670965.woff → iconfont.1742955995631.woff} +0 -0
  185. /package/lib/{iconfont.1741333670965.woff2 → iconfont.1742955995631.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,
@@ -271,6 +258,10 @@ var _default = exports.default = (0, _vue.defineComponent)({
271
258
  isHeader: false,
272
259
  isFooter: false
273
260
  },
261
+ rowExpandedFlag: 1,
262
+ treeExpandedFlag: 1,
263
+ updateCheckboxFlag: 1,
264
+ pendingRowFlag: 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,
@@ -370,6 +362,18 @@ var _default = exports.default = (0, _vue.defineComponent)({
370
362
  fullColumnIdData: {},
371
363
  fullColumnFieldData: {},
372
364
  // prevDragRow: null,
365
+ // 已展开的行集合
366
+ rowExpandedMaps: {},
367
+ // 懒加载中的展开行的集合
368
+ rowExpandLazyLoadedMaps: {},
369
+ // 已展开树节点集合
370
+ treeExpandedMaps: {},
371
+ // 懒加载中的树节点的集合
372
+ treeExpandLazyLoadedMaps: {},
373
+ // 复选框属性,已选中的行集合
374
+ selectCheckboxMaps: {},
375
+ // 已标记的对象集
376
+ pendingRowMaps: {},
373
377
  inited: false,
374
378
  tooltipTimeout: null,
375
379
  initStatus: false,
@@ -499,18 +503,36 @@ var _default = exports.default = (0, _vue.defineComponent)({
499
503
  const computeColumnOpts = (0, _vue.computed)(() => {
500
504
  return Object.assign({}, getConfig().table.columnConfig, props.columnConfig);
501
505
  });
506
+ const computeCurrentColumnOpts = (0, _vue.computed)(() => {
507
+ return Object.assign({}, getConfig().table.currentColumnConfig, props.currentColumnConfig);
508
+ });
502
509
  const computeCellOpts = (0, _vue.computed)(() => {
503
- return Object.assign({}, getConfig().table.cellConfig, props.cellConfig);
510
+ const cellOpts = Object.assign({}, getConfig().table.cellConfig, props.cellConfig);
511
+ if (cellOpts.height) {
512
+ cellOpts.height = _xeUtils.default.toNumber(cellOpts.height);
513
+ }
514
+ return cellOpts;
504
515
  });
505
516
  const computeHeaderCellOpts = (0, _vue.computed)(() => {
506
- return Object.assign({}, getConfig().table.headerCellConfig, props.headerCellConfig);
517
+ const headerCellOpts = Object.assign({}, getConfig().table.headerCellConfig, props.headerCellConfig);
518
+ if (headerCellOpts.height) {
519
+ headerCellOpts.height = _xeUtils.default.toNumber(headerCellOpts.height);
520
+ }
521
+ return headerCellOpts;
507
522
  });
508
523
  const computeFooterCellOpts = (0, _vue.computed)(() => {
509
- return Object.assign({}, getConfig().table.footerCellConfig, props.footerCellConfig);
524
+ const footerCellOpts = Object.assign({}, getConfig().table.footerCellConfig, props.footerCellConfig);
525
+ if (footerCellOpts.height) {
526
+ footerCellOpts.height = _xeUtils.default.toNumber(footerCellOpts.height);
527
+ }
528
+ return footerCellOpts;
510
529
  });
511
530
  const computeRowOpts = (0, _vue.computed)(() => {
512
531
  return Object.assign({}, getConfig().table.rowConfig, props.rowConfig);
513
532
  });
533
+ const computeCurrentRowOpts = (0, _vue.computed)(() => {
534
+ return Object.assign({}, getConfig().table.currentRowConfig, props.currentRowConfig);
535
+ });
514
536
  const computeRowDragOpts = (0, _vue.computed)(() => {
515
537
  return Object.assign({}, getConfig().table.rowDragConfig, props.rowDragConfig);
516
538
  });
@@ -668,15 +690,21 @@ var _default = exports.default = (0, _vue.defineComponent)({
668
690
  });
669
691
  const computeTableRowExpandedList = (0, _vue.computed)(() => {
670
692
  const {
671
- rowExpandedMaps,
693
+ rowExpandedFlag,
672
694
  tableData,
673
695
  expandColumn
674
696
  } = reactData;
697
+ const {
698
+ rowExpandedMaps
699
+ } = internalData;
700
+ const {
701
+ handleGetRowId
702
+ } = (0, _util.createHandleGetRowId)($xeTable);
675
703
  const expandList = [];
676
- if (expandColumn) {
704
+ if (expandColumn && rowExpandedFlag) {
677
705
  const rowKeys = {};
678
706
  tableData.forEach(row => {
679
- rowKeys[(0, _util.getRowid)($xeTable, row)] = true;
707
+ rowKeys[handleGetRowId(row)] = true;
680
708
  });
681
709
  _xeUtils.default.each(rowExpandedMaps, (row, rowid) => {
682
710
  if (rowKeys[rowid]) {
@@ -817,13 +845,16 @@ var _default = exports.default = (0, _vue.defineComponent)({
817
845
  computeScrollbarXToTop,
818
846
  computeScrollbarYToLeft,
819
847
  computeColumnOpts,
848
+ computeCurrentColumnOpts,
820
849
  computeScrollXThreshold,
821
850
  computeScrollYThreshold,
851
+ computeRowHeightMaps,
822
852
  computeDefaultRowHeight,
823
853
  computeCellOpts,
824
854
  computeHeaderCellOpts,
825
855
  computeFooterCellOpts,
826
856
  computeRowOpts,
857
+ computeCurrentRowOpts,
827
858
  computeRowDragOpts,
828
859
  computeColumnDragOpts,
829
860
  computeResizeOpts,
@@ -871,6 +902,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
871
902
  internalData,
872
903
  getRefMaps: () => refMaps,
873
904
  getComputeMaps: () => computeMaps,
905
+ xeGrid: $xeGrid,
874
906
  xegrid: $xeGrid
875
907
  };
876
908
  const eqCellValue = (row1, row2, field) => {
@@ -1057,12 +1089,15 @@ var _default = exports.default = (0, _vue.defineComponent)({
1057
1089
  toVisibleIndex = Math.floor(startTop / defaultRowHeight) - 1;
1058
1090
  visibleSize = Math.ceil(clientHeight / defaultRowHeight) + 1;
1059
1091
  } else {
1092
+ const {
1093
+ handleGetRowId
1094
+ } = (0, _util.createHandleGetRowId)($xeTable);
1060
1095
  let leftIndex = 0;
1061
1096
  let rightIndex = afterFullData.length;
1062
1097
  while (leftIndex < rightIndex) {
1063
1098
  const rIndex = Math.floor((leftIndex + rightIndex) / 2);
1064
1099
  const row = afterFullData[rIndex];
1065
- const rowid = (0, _util.getRowid)($xeTable, row);
1100
+ const rowid = handleGetRowId(row);
1066
1101
  const rowRest = fullAllDataRowIdData[rowid] || {};
1067
1102
  if (rowRest.oTop <= startTop) {
1068
1103
  leftIndex = rIndex + 1;
@@ -1073,7 +1108,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
1073
1108
  toVisibleIndex = Math.max(0, leftIndex < afterFullData.length ? leftIndex - 2 : 0);
1074
1109
  for (let rIndex = toVisibleIndex, rLen = afterFullData.length; rIndex < rLen; rIndex++) {
1075
1110
  const row = afterFullData[rIndex];
1076
- const rowid = (0, _util.getRowid)($xeTable, row);
1111
+ const rowid = handleGetRowId(row);
1077
1112
  const rowRest = fullAllDataRowIdData[rowid] || {};
1078
1113
  visibleSize++;
1079
1114
  if (rowRest.oTop > endTop || visibleSize >= 100) {
@@ -1375,7 +1410,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
1375
1410
  fullColumnFieldData[field] = rest;
1376
1411
  } else {
1377
1412
  if (storage && !type || columnOpts.drag && (isCrossDrag || isSelfToChildDrag)) {
1378
- (0, _log.errLog)('vxe.error.reqProp', [`${column.getTitle() || type || ''} -> column.field`]);
1413
+ (0, _log.errLog)('vxe.error.reqProp', [`${column.getTitle() || type || ''} -> column.field=?`]);
1379
1414
  }
1380
1415
  }
1381
1416
  if (!hasFixed && fixed) {
@@ -1632,6 +1667,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
1632
1667
  internalData.headerHeight = headerHeight;
1633
1668
  internalData.footerHeight = footerHeight;
1634
1669
  reactData.overflowX = overflowX;
1670
+ reactData.resizeWidthFlag++;
1635
1671
  updateColumnOffsetLeft();
1636
1672
  updateHeight();
1637
1673
  reactData.parentHeight = Math.max(internalData.headerHeight + footerHeight + 20, $xeTable.getParentHeight());
@@ -1664,9 +1700,12 @@ var _default = exports.default = (0, _vue.defineComponent)({
1664
1700
  const defaultRowHeight = computeDefaultRowHeight.value;
1665
1701
  const el = refElem.value;
1666
1702
  if (!isAllOverflow && scrollYLoad && el) {
1703
+ const {
1704
+ handleGetRowId
1705
+ } = (0, _util.createHandleGetRowId)($xeTable);
1667
1706
  el.setAttribute('data-calc-row', 'Y');
1668
1707
  tableData.forEach(row => {
1669
- const rowid = (0, _util.getRowid)($xeTable, row);
1708
+ const rowid = handleGetRowId(row);
1670
1709
  const rowRest = fullAllDataRowIdData[rowid];
1671
1710
  if (rowRest) {
1672
1711
  const reHeight = calcCellAutoHeight(rowRest, el);
@@ -1711,9 +1750,12 @@ var _default = exports.default = (0, _vue.defineComponent)({
1711
1750
  fullDataRowIdData,
1712
1751
  fullAllDataRowIdData
1713
1752
  } = internalData;
1753
+ const {
1754
+ handleGetRowId
1755
+ } = (0, _util.createHandleGetRowId)($xeTable);
1714
1756
  const fullMaps = {};
1715
1757
  afterFullData.forEach((row, index) => {
1716
- const rowid = (0, _util.getRowid)($xeTable, row);
1758
+ const rowid = handleGetRowId(row);
1717
1759
  const rowRest = fullAllDataRowIdData[rowid];
1718
1760
  const seq = index + 1;
1719
1761
  if (rowRest) {
@@ -1765,8 +1807,11 @@ var _default = exports.default = (0, _vue.defineComponent)({
1765
1807
  const childrenField = treeOpts.children || treeOpts.childrenField;
1766
1808
  const fullMaps = {};
1767
1809
  if (treeConfig) {
1810
+ const {
1811
+ handleGetRowId
1812
+ } = (0, _util.createHandleGetRowId)($xeTable);
1768
1813
  _xeUtils.default.eachTree(afterTreeFullData, (row, index, items, path) => {
1769
- const rowid = (0, _util.getRowid)($xeTable, row);
1814
+ const rowid = handleGetRowId(row);
1770
1815
  const rowRest = fullAllDataRowIdData[rowid];
1771
1816
  const seq = path.map((num, i) => i % 2 === 0 ? Number(num) + 1 : '.').join('');
1772
1817
  if (rowRest) {
@@ -1811,19 +1856,20 @@ var _default = exports.default = (0, _vue.defineComponent)({
1811
1856
  treeConfig
1812
1857
  } = props;
1813
1858
  const {
1859
+ fullAllDataRowIdData,
1814
1860
  treeExpandedMaps
1815
- } = reactData;
1816
- const {
1817
- fullAllDataRowIdData
1818
1861
  } = internalData;
1819
1862
  const treeOpts = computeTreeOpts.value;
1820
1863
  const childrenField = treeOpts.children || treeOpts.childrenField;
1821
1864
  if (treeConfig && treeOpts.transform) {
1865
+ const {
1866
+ handleGetRowId
1867
+ } = (0, _util.createHandleGetRowId)($xeTable);
1822
1868
  const fullData = [];
1823
1869
  const expandMaps = {};
1824
1870
  _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);
1871
+ const rowid = handleGetRowId(row);
1872
+ const parentRowid = handleGetRowId(parentRow);
1827
1873
  if (!parentRow || expandMaps[parentRowid] && treeExpandedMaps[parentRowid]) {
1828
1874
  const rowRest = fullAllDataRowIdData[rowid];
1829
1875
  if (rowRest) {
@@ -1865,6 +1911,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
1865
1911
  mapChildrenField
1866
1912
  } = treeOpts;
1867
1913
  const {
1914
+ isEvery,
1868
1915
  remote: allRemoteFilter,
1869
1916
  filterMethod: allFilterMethod
1870
1917
  } = filterOpts;
@@ -1977,7 +2024,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
1977
2024
  // 筛选虚拟树
1978
2025
  tableTree = _xeUtils.default.searchTree(tableFullTreeData, handleFilter, {
1979
2026
  original: true,
1980
- isEvery: true,
2027
+ isEvery,
1981
2028
  children: mapChildrenField,
1982
2029
  mapChildren: childrenField
1983
2030
  });
@@ -1991,7 +2038,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
1991
2038
  // 还原虚拟树
1992
2039
  tableTree = _xeUtils.default.searchTree(tableFullTreeData, () => true, {
1993
2040
  original: true,
1994
- isEvery: true,
2041
+ isEvery,
1995
2042
  children: mapChildrenField,
1996
2043
  mapChildren: childrenField
1997
2044
  });
@@ -2050,7 +2097,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
2050
2097
  // 还原虚拟树
2051
2098
  tableTree = _xeUtils.default.searchTree(tableFullTreeData, () => true, {
2052
2099
  original: true,
2053
- isEvery: true,
2100
+ isEvery,
2054
2101
  children: treeOpts.mapChildrenField,
2055
2102
  mapChildren: childrenField
2056
2103
  });
@@ -2091,7 +2138,6 @@ var _default = exports.default = (0, _vue.defineComponent)({
2091
2138
  } = reactData;
2092
2139
  const {
2093
2140
  visibleColumn,
2094
- fullColumnIdData,
2095
2141
  tableHeight,
2096
2142
  headerHeight,
2097
2143
  footerHeight,
@@ -2108,7 +2154,6 @@ var _default = exports.default = (0, _vue.defineComponent)({
2108
2154
  const osbWidth = overflowY ? scrollbarWidth : 0;
2109
2155
  const osbHeight = overflowX ? scrollbarHeight : 0;
2110
2156
  const emptyPlaceholderElem = refEmptyPlaceholder.value;
2111
- const cellOffsetWidth = computeCellOffsetWidth.value;
2112
2157
  const mouseOpts = computeMouseOpts.value;
2113
2158
  const expandOpts = computeExpandOpts.value;
2114
2159
  const bodyWrapperElem = (0, _util.getRefElem)(elemStore['main-body-wrapper']);
@@ -2370,58 +2415,6 @@ var _default = exports.default = (0, _vue.defineComponent)({
2370
2415
  tableElem.style.width = tWidth ? `${tWidth}px` : '';
2371
2416
  }
2372
2417
  }
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
2418
  });
2426
2419
  });
2427
2420
  if (currentRow) {
@@ -2613,12 +2606,10 @@ var _default = exports.default = (0, _vue.defineComponent)({
2613
2606
  const {
2614
2607
  treeConfig
2615
2608
  } = props;
2616
- const {
2617
- selectCheckboxMaps
2618
- } = reactData;
2619
2609
  const {
2620
2610
  afterFullData,
2621
- checkboxReserveRowMap
2611
+ checkboxReserveRowMap,
2612
+ selectCheckboxMaps
2622
2613
  } = internalData;
2623
2614
  const treeOpts = computeTreeOpts.value;
2624
2615
  const childrenField = treeOpts.children || treeOpts.childrenField;
@@ -2628,6 +2619,9 @@ var _default = exports.default = (0, _vue.defineComponent)({
2628
2619
  reserve,
2629
2620
  checkMethod
2630
2621
  } = checkboxOpts;
2622
+ const {
2623
+ handleGetRowId
2624
+ } = (0, _util.createHandleGetRowId)($xeTable);
2631
2625
  // indeterminateField 仅支持读取
2632
2626
  const indeterminateField = checkboxOpts.indeterminateField || checkboxOpts.halfField;
2633
2627
  const selectRowMaps = {};
@@ -2641,7 +2635,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
2641
2635
  row
2642
2636
  })) {
2643
2637
  if (checked) {
2644
- selectRowMaps[(0, _util.getRowid)($xeTable, row)] = row;
2638
+ selectRowMaps[handleGetRowId(row)] = row;
2645
2639
  }
2646
2640
  _xeUtils.default.set(row, checkField, checked);
2647
2641
  }
@@ -2673,7 +2667,8 @@ var _default = exports.default = (0, _vue.defineComponent)({
2673
2667
  if (isForce || !checkMethod || checkMethod({
2674
2668
  row
2675
2669
  })) {
2676
- selectRowMaps[(0, _util.getRowid)($xeTable, row)] = row;
2670
+ const rowid = handleGetRowId(row);
2671
+ selectRowMaps[rowid] = row;
2677
2672
  }
2678
2673
  }, {
2679
2674
  children: childrenField
@@ -2685,7 +2680,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
2685
2680
  */
2686
2681
  if (!isForce && checkMethod) {
2687
2682
  _xeUtils.default.eachTree(afterFullData, row => {
2688
- const rowid = (0, _util.getRowid)($xeTable, row);
2683
+ const rowid = handleGetRowId(row);
2689
2684
  if (checkMethod({
2690
2685
  row
2691
2686
  }) ? 0 : selectCheckboxMaps[rowid]) {
@@ -2705,7 +2700,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
2705
2700
  */
2706
2701
  if (!isForce && checkMethod) {
2707
2702
  afterFullData.forEach(row => {
2708
- const rowid = (0, _util.getRowid)($xeTable, row);
2703
+ const rowid = handleGetRowId(row);
2709
2704
  if (selectCheckboxMaps[rowid] || checkMethod({
2710
2705
  row
2711
2706
  })) {
@@ -2714,7 +2709,8 @@ var _default = exports.default = (0, _vue.defineComponent)({
2714
2709
  });
2715
2710
  } else {
2716
2711
  afterFullData.forEach(row => {
2717
- selectRowMaps[(0, _util.getRowid)($xeTable, row)] = row;
2712
+ const rowid = handleGetRowId(row);
2713
+ selectRowMaps[rowid] = row;
2718
2714
  });
2719
2715
  }
2720
2716
  } else {
@@ -2725,7 +2721,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
2725
2721
  */
2726
2722
  if (!isForce && checkMethod) {
2727
2723
  afterFullData.forEach(row => {
2728
- const rowid = (0, _util.getRowid)($xeTable, row);
2724
+ const rowid = handleGetRowId(row);
2729
2725
  if (checkMethod({
2730
2726
  row
2731
2727
  }) ? 0 : selectCheckboxMaps[rowid]) {
@@ -2745,10 +2741,10 @@ var _default = exports.default = (0, _vue.defineComponent)({
2745
2741
  afterFullData.forEach(row => handleCheckboxReserveRow(row, false));
2746
2742
  }
2747
2743
  }
2748
- reactData.selectCheckboxMaps = checkField ? {} : selectRowMaps;
2744
+ reactData.updateCheckboxFlag++;
2745
+ internalData.selectCheckboxMaps = checkField ? {} : selectRowMaps;
2749
2746
  reactData.isAllSelected = checked;
2750
2747
  reactData.isIndeterminate = false;
2751
- reactData.treeIndeterminateMaps = {};
2752
2748
  internalData.treeIndeterminateRowMaps = {};
2753
2749
  $xeTable.checkSelectionStatus();
2754
2750
  return (0, _vue.nextTick)();
@@ -2761,15 +2757,15 @@ var _default = exports.default = (0, _vue.defineComponent)({
2761
2757
  const {
2762
2758
  expandColumn,
2763
2759
  currentRow,
2764
- selectCheckboxMaps,
2765
- selectRadioRow,
2766
- rowExpandedMaps,
2767
- treeExpandedMaps
2760
+ selectRadioRow
2768
2761
  } = reactData;
2769
2762
  const {
2770
2763
  fullDataRowIdData,
2771
2764
  fullAllDataRowIdData,
2772
- radioReserveRow
2765
+ radioReserveRow,
2766
+ selectCheckboxMaps,
2767
+ treeExpandedMaps,
2768
+ rowExpandedMaps
2773
2769
  } = internalData;
2774
2770
  const expandOpts = computeExpandOpts.value;
2775
2771
  const treeOpts = computeTreeOpts.value;
@@ -2787,7 +2783,8 @@ var _default = exports.default = (0, _vue.defineComponent)({
2787
2783
  }
2788
2784
  }
2789
2785
  // 复选框
2790
- reactData.selectCheckboxMaps = getRecoverRowMaps(selectCheckboxMaps); // 刷新多选行状态
2786
+ internalData.selectCheckboxMaps = getRecoverRowMaps(selectCheckboxMaps); // 刷新多选行状态
2787
+ reactData.updateCheckboxFlag++;
2791
2788
  // 还原保留选中状态
2792
2789
  if (checkboxOpts.reserve) {
2793
2790
  handleCheckedCheckboxRow(handleReserveRow(internalData.checkboxReserveRowMap), true, true);
@@ -2796,13 +2793,15 @@ var _default = exports.default = (0, _vue.defineComponent)({
2796
2793
  reactData.currentRow = null; // 刷新当前行状态
2797
2794
  }
2798
2795
  // 行展开
2799
- reactData.rowExpandedMaps = expandColumn ? getRecoverRowMaps(rowExpandedMaps) : {}; // 刷新行展开状态
2796
+ internalData.rowExpandedMaps = expandColumn ? getRecoverRowMaps(rowExpandedMaps) : {}; // 刷新行展开状态
2797
+ reactData.rowExpandedFlag++;
2800
2798
  // 还原保留状态
2801
2799
  if (expandColumn && expandOpts.reserve) {
2802
2800
  $xeTable.setRowExpand(handleReserveRow(internalData.rowExpandedReserveRowMap), true);
2803
2801
  }
2804
2802
  // 树展开
2805
- reactData.treeExpandedMaps = treeConfig ? getRecoverRowMaps(treeExpandedMaps) : {}; // 刷新树展开状态
2803
+ internalData.treeExpandedMaps = treeConfig ? getRecoverRowMaps(treeExpandedMaps) : {}; // 刷新树展开状态
2804
+ reactData.treeExpandedFlag++;
2806
2805
  if (treeConfig && treeOpts.reserve) {
2807
2806
  $xeTable.setTreeExpand(handleReserveRow(internalData.treeExpandedReserveRowMap), true);
2808
2807
  }
@@ -2825,7 +2824,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
2825
2824
  } = treeOpts;
2826
2825
  const childrenField = treeOpts.children || treeOpts.childrenField;
2827
2826
  if (expandAll) {
2828
- tableMethods.setAllTreeExpand(true);
2827
+ $xeTable.setAllTreeExpand(true);
2829
2828
  } else if (expandRowKeys) {
2830
2829
  const defExpandeds = [];
2831
2830
  const rowkey = (0, _util.getRowkey)($xeTable);
@@ -2837,7 +2836,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
2837
2836
  defExpandeds.push(matchObj.item);
2838
2837
  }
2839
2838
  });
2840
- tableMethods.setTreeExpand(defExpandeds, true);
2839
+ $xeTable.setTreeExpand(defExpandeds, true);
2841
2840
  }
2842
2841
  }
2843
2842
  };
@@ -2854,10 +2853,8 @@ var _default = exports.default = (0, _vue.defineComponent)({
2854
2853
  return new Promise(resolve => {
2855
2854
  if (loadMethod) {
2856
2855
  const {
2856
+ fullAllDataRowIdData,
2857
2857
  treeExpandLazyLoadedMaps
2858
- } = reactData;
2859
- const {
2860
- fullAllDataRowIdData
2861
2858
  } = internalData;
2862
2859
  const rowid = (0, _util.getRowid)($xeTable, row);
2863
2860
  const rowRest = fullAllDataRowIdData[rowid];
@@ -2876,20 +2873,21 @@ var _default = exports.default = (0, _vue.defineComponent)({
2876
2873
  childRecords = [];
2877
2874
  }
2878
2875
  if (childRecords) {
2879
- return tableMethods.loadTreeChildren(row, childRecords).then(childRows => {
2876
+ return $xeTable.loadTreeChildren(row, childRecords).then(childRows => {
2880
2877
  const {
2881
2878
  treeExpandedMaps
2882
- } = reactData;
2879
+ } = internalData;
2883
2880
  if (childRows.length && !treeExpandedMaps[rowid]) {
2884
2881
  treeExpandedMaps[rowid] = row;
2885
2882
  }
2883
+ reactData.treeExpandedFlag++;
2886
2884
  // 如果当前节点已选中,则展开后子节点也被选中
2887
- if (!checkStrictly && tableMethods.isCheckedByCheckboxRow(row)) {
2885
+ if (!checkStrictly && $xeTable.isCheckedByCheckboxRow(row)) {
2888
2886
  handleCheckedCheckboxRow(childRows, true);
2889
2887
  }
2890
2888
  return (0, _vue.nextTick)().then(() => {
2891
2889
  if (transform) {
2892
- tablePrivateMethods.handleTableData();
2890
+ $xeTable.handleTableData();
2893
2891
  updateAfterDataIndex();
2894
2892
  return (0, _vue.nextTick)();
2895
2893
  }
@@ -2899,7 +2897,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
2899
2897
  }).catch(() => {
2900
2898
  const {
2901
2899
  treeExpandLazyLoadedMaps
2902
- } = reactData;
2900
+ } = internalData;
2903
2901
  if (rowRest) {
2904
2902
  rowRest.treeLoaded = false;
2905
2903
  }
@@ -2907,7 +2905,8 @@ var _default = exports.default = (0, _vue.defineComponent)({
2907
2905
  delete treeExpandLazyLoadedMaps[rowid];
2908
2906
  }
2909
2907
  }).finally(() => {
2910
- (0, _vue.nextTick)().then(() => tableMethods.recalculate()).then(() => resolve());
2908
+ reactData.treeExpandedFlag++;
2909
+ (0, _vue.nextTick)().then(() => $xeTable.recalculate()).then(() => resolve());
2911
2910
  });
2912
2911
  } else {
2913
2912
  resolve();
@@ -2936,35 +2935,38 @@ var _default = exports.default = (0, _vue.defineComponent)({
2936
2935
  } = expandOpts;
2937
2936
  if (loadMethod) {
2938
2937
  const {
2939
- fullAllDataRowIdData
2938
+ fullAllDataRowIdData,
2939
+ rowExpandLazyLoadedMaps
2940
2940
  } = internalData;
2941
- const rExpandLazyLoadedMaps = Object.assign({}, reactData.rowExpandLazyLoadedMaps);
2942
2941
  const rowid = (0, _util.getRowid)($xeTable, row);
2943
2942
  const rowRest = fullAllDataRowIdData[rowid];
2944
- rExpandLazyLoadedMaps[rowid] = row;
2945
- reactData.rowExpandLazyLoadedMaps = rExpandLazyLoadedMaps;
2943
+ rowExpandLazyLoadedMaps[rowid] = row;
2946
2944
  loadMethod({
2947
2945
  $table: $xeTable,
2948
2946
  row,
2949
- rowIndex: tableMethods.getRowIndex(row),
2950
- $rowIndex: tableMethods.getVMRowIndex(row)
2947
+ rowIndex: $xeTable.getRowIndex(row),
2948
+ $rowIndex: $xeTable.getVMRowIndex(row)
2951
2949
  }).then(() => {
2952
- const rowTempExpandedMaps = Object.assign({}, reactData.rowExpandedMaps);
2950
+ const {
2951
+ rowExpandedMaps
2952
+ } = internalData;
2953
2953
  if (rowRest) {
2954
2954
  rowRest.expandLoaded = true;
2955
2955
  }
2956
- rowTempExpandedMaps[rowid] = row;
2957
- reactData.rowExpandedMaps = rowTempExpandedMaps;
2956
+ rowExpandedMaps[rowid] = row;
2957
+ reactData.rowExpandedFlag++;
2958
2958
  }).catch(() => {
2959
2959
  if (rowRest) {
2960
2960
  rowRest.expandLoaded = false;
2961
2961
  }
2962
2962
  }).finally(() => {
2963
- const rExpandLazyLoadedMaps = Object.assign({}, reactData.rowExpandLazyLoadedMaps);
2964
- if (rExpandLazyLoadedMaps[rowid]) {
2965
- delete rExpandLazyLoadedMaps[rowid];
2963
+ const {
2964
+ rowExpandLazyLoadedMaps
2965
+ } = internalData;
2966
+ if (rowExpandLazyLoadedMaps[rowid]) {
2967
+ delete rowExpandLazyLoadedMaps[rowid];
2966
2968
  }
2967
- reactData.rowExpandLazyLoadedMaps = rExpandLazyLoadedMaps;
2969
+ reactData.rowExpandedFlag++;
2968
2970
  (0, _vue.nextTick)().then(() => $xeTable.recalculate()).then(() => $xeTable.updateCellAreas()).then(() => resolve());
2969
2971
  });
2970
2972
  } else {
@@ -3078,9 +3080,6 @@ var _default = exports.default = (0, _vue.defineComponent)({
3078
3080
  calcCellWidth();
3079
3081
  autoCellWidth();
3080
3082
  updateStyle();
3081
- if (reFull) {
3082
- updateRowOffsetTop();
3083
- }
3084
3083
  updateRowExpandStyle();
3085
3084
  return computeScrollLoad().then(() => {
3086
3085
  if (reFull === true) {
@@ -3122,6 +3121,9 @@ var _default = exports.default = (0, _vue.defineComponent)({
3122
3121
  const childrenField = treeOpts.children || treeOpts.childrenField;
3123
3122
  let treeData = [];
3124
3123
  let fullData = (0, _vue.reactive)(datas ? datas.slice(0) : []); // 转为响应式数据
3124
+ if (fullData.length > supportMaxRow) {
3125
+ (0, _log.errLog)('vxe.error.errMaxRow', [supportMaxRow]);
3126
+ }
3125
3127
  if (treeConfig) {
3126
3128
  if (transform) {
3127
3129
  // 树结构自动转换
@@ -3346,10 +3348,8 @@ var _default = exports.default = (0, _vue.defineComponent)({
3346
3348
  return result;
3347
3349
  };
3348
3350
  const parseColumns = isReset => {
3349
- const {
3350
- showOverflow
3351
- } = props;
3352
- const rowOpts = computeRowOpts.value;
3351
+ // const { showOverflow } = props
3352
+ // const rowOpts = computeRowOpts.value
3353
3353
  const leftList = [];
3354
3354
  const centerList = [];
3355
3355
  const rightList = [];
@@ -3426,28 +3426,28 @@ var _default = exports.default = (0, _vue.defineComponent)({
3426
3426
  rightList
3427
3427
  });
3428
3428
  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
- }
3429
+ // if (showOverflow) {
3430
+ // if (!rowOpts.height) {
3431
+ // const errColumn = internalData.tableFullColumn.find(column => column.showOverflow === false)
3432
+ // if (errColumn) {
3433
+ // errLog('vxe.error.errProp', [`column[field="${errColumn.field}"].show-overflow=false`, 'show-overflow=true'])
3434
+ // }
3435
+ // }
3436
+ // }
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']);
3436
3446
  }
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
- }
3447
+ if (props.footerSpanMethod) {
3448
+ (0, _log.warnLog)('vxe.error.scrollErrProp', ['footer-span-method']);
3450
3449
  }
3450
+ // }
3451
3451
  if (isReset) {
3452
3452
  const {
3453
3453
  visibleSize
@@ -3560,14 +3560,13 @@ var _default = exports.default = (0, _vue.defineComponent)({
3560
3560
  */
3561
3561
  const handleBaseTreeExpand = (rows, expanded) => {
3562
3562
  const {
3563
- treeExpandedMaps,
3564
- treeExpandLazyLoadedMaps,
3565
3563
  treeNodeColumn
3566
3564
  } = reactData;
3567
- const treeTempExpandedMaps = Object.assign({}, treeExpandedMaps);
3568
3565
  const {
3569
3566
  fullAllDataRowIdData,
3570
- tableFullData
3567
+ tableFullData,
3568
+ treeExpandedMaps,
3569
+ treeExpandLazyLoadedMaps
3571
3570
  } = internalData;
3572
3571
  const treeOpts = computeTreeOpts.value;
3573
3572
  const {
@@ -3581,6 +3580,9 @@ var _default = exports.default = (0, _vue.defineComponent)({
3581
3580
  const result = [];
3582
3581
  const columnIndex = tableMethods.getColumnIndex(treeNodeColumn);
3583
3582
  const $columnIndex = tableMethods.getVMColumnIndex(treeNodeColumn);
3583
+ const {
3584
+ handleGetRowId
3585
+ } = (0, _util.createHandleGetRowId)($xeTable);
3584
3586
  let validRows = toggleMethod ? rows.filter(row => toggleMethod({
3585
3587
  $table: $xeTable,
3586
3588
  expanded,
@@ -3597,17 +3599,17 @@ var _default = exports.default = (0, _vue.defineComponent)({
3597
3599
  });
3598
3600
  if (matchObj) {
3599
3601
  matchObj.items.forEach(item => {
3600
- const rowid = (0, _util.getRowid)($xeTable, item);
3601
- if (treeTempExpandedMaps[rowid]) {
3602
- delete treeTempExpandedMaps[rowid];
3602
+ const rowid = handleGetRowId(item);
3603
+ if (treeExpandedMaps[rowid]) {
3604
+ delete treeExpandedMaps[rowid];
3603
3605
  }
3604
3606
  });
3605
3607
  }
3606
3608
  }
3607
3609
  if (expanded) {
3608
3610
  validRows.forEach(row => {
3609
- const rowid = (0, _util.getRowid)($xeTable, row);
3610
- if (!treeTempExpandedMaps[rowid]) {
3611
+ const rowid = handleGetRowId(row);
3612
+ if (!treeExpandedMaps[rowid]) {
3611
3613
  const rowRest = fullAllDataRowIdData[rowid];
3612
3614
  if (rowRest) {
3613
3615
  const isLoad = lazy && row[hasChildField] && !rowRest.treeLoaded && !treeExpandLazyLoadedMaps[rowid];
@@ -3616,7 +3618,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
3616
3618
  result.push(handleAsyncTreeExpandChilds(row));
3617
3619
  } else {
3618
3620
  if (row[childrenField] && row[childrenField].length) {
3619
- treeTempExpandedMaps[rowid] = row;
3621
+ treeExpandedMaps[rowid] = row;
3620
3622
  }
3621
3623
  }
3622
3624
  }
@@ -3624,16 +3626,16 @@ var _default = exports.default = (0, _vue.defineComponent)({
3624
3626
  });
3625
3627
  } else {
3626
3628
  validRows.forEach(item => {
3627
- const rowid = (0, _util.getRowid)($xeTable, item);
3628
- if (treeTempExpandedMaps[rowid]) {
3629
- delete treeTempExpandedMaps[rowid];
3629
+ const rowid = handleGetRowId(item);
3630
+ if (treeExpandedMaps[rowid]) {
3631
+ delete treeExpandedMaps[rowid];
3630
3632
  }
3631
3633
  });
3632
3634
  }
3633
3635
  if (reserve) {
3634
3636
  validRows.forEach(row => handleTreeExpandReserve(row, expanded));
3635
3637
  }
3636
- reactData.treeExpandedMaps = treeTempExpandedMaps;
3638
+ reactData.treeExpandedFlag++;
3637
3639
  return Promise.all(result).then(() => {
3638
3640
  return tableMethods.recalculate();
3639
3641
  });
@@ -3662,9 +3664,9 @@ var _default = exports.default = (0, _vue.defineComponent)({
3662
3664
  handleCheckedAllCheckboxRow(value);
3663
3665
  if (evnt) {
3664
3666
  dispatchEvent('checkbox-all', {
3665
- records: $xeTable.getCheckboxRecords(),
3666
- reserves: $xeTable.getCheckboxReserveRecords(),
3667
- indeterminates: $xeTable.getCheckboxIndeterminateRecords(),
3667
+ records: () => $xeTable.getCheckboxRecords(),
3668
+ reserves: () => $xeTable.getCheckboxReserveRecords(),
3669
+ indeterminates: () => $xeTable.getCheckboxIndeterminateRecords(),
3668
3670
  checked: value
3669
3671
  }, evnt);
3670
3672
  }
@@ -3712,12 +3714,15 @@ var _default = exports.default = (0, _vue.defineComponent)({
3712
3714
  }
3713
3715
  };
3714
3716
  const createGetRowCacheProp = prop => {
3717
+ const {
3718
+ handleGetRowId
3719
+ } = (0, _util.createHandleGetRowId)($xeTable);
3715
3720
  return function (row) {
3716
3721
  const {
3717
3722
  fullAllDataRowIdData
3718
3723
  } = internalData;
3719
3724
  if (row) {
3720
- const rowid = (0, _util.getRowid)($xeTable, row);
3725
+ const rowid = handleGetRowId(row);
3721
3726
  const rowRest = fullAllDataRowIdData[rowid];
3722
3727
  if (rowRest) {
3723
3728
  return rowRest[prop];
@@ -3887,7 +3892,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
3887
3892
  };
3888
3893
  const handleUpdateColResize = (evnt, params) => {
3889
3894
  $xeTable.analyColumnWidth();
3890
- $xeTable.recalculate(true).then(() => {
3895
+ $xeTable.recalculate().then(() => {
3891
3896
  $xeTable.saveCustomStore('update:width');
3892
3897
  $xeTable.updateCellAreas();
3893
3898
  $xeTable.dispatchEvent('column-resizable-change', params, evnt);
@@ -3898,7 +3903,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
3898
3903
  };
3899
3904
  const handleUpdateRowResize = (evnt, params) => {
3900
3905
  reactData.resizeHeightFlag++;
3901
- $xeTable.recalculate(true).then(() => {
3906
+ $xeTable.recalculate().then(() => {
3902
3907
  $xeTable.updateCellAreas();
3903
3908
  $xeTable.dispatchEvent('row-resizable-change', params, evnt);
3904
3909
  setTimeout(() => $xeTable.recalculate(true), 300);
@@ -3920,21 +3925,24 @@ var _default = exports.default = (0, _vue.defineComponent)({
3920
3925
  };
3921
3926
  const updateRowOffsetTop = () => {
3922
3927
  const {
3923
- expandColumn,
3924
- rowExpandedMaps
3928
+ expandColumn
3925
3929
  } = reactData;
3926
3930
  const {
3927
3931
  afterFullData,
3928
- fullAllDataRowIdData
3932
+ fullAllDataRowIdData,
3933
+ rowExpandedMaps
3929
3934
  } = internalData;
3930
3935
  const expandOpts = computeExpandOpts.value;
3931
3936
  const rowOpts = computeRowOpts.value;
3932
3937
  const cellOpts = computeCellOpts.value;
3933
3938
  const defaultRowHeight = computeDefaultRowHeight.value;
3939
+ const {
3940
+ handleGetRowId
3941
+ } = (0, _util.createHandleGetRowId)($xeTable);
3934
3942
  let offsetTop = 0;
3935
3943
  for (let rIndex = 0, rLen = afterFullData.length; rIndex < rLen; rIndex++) {
3936
3944
  const row = afterFullData[rIndex];
3937
- const rowid = (0, _util.getRowid)($xeTable, row);
3945
+ const rowid = handleGetRowId(row);
3938
3946
  const rowRest = fullAllDataRowIdData[rowid] || {};
3939
3947
  rowRest.oTop = offsetTop;
3940
3948
  offsetTop += rowRest.resizeHeight || cellOpts.height || rowOpts.height || rowRest.height || defaultRowHeight;
@@ -4368,6 +4376,9 @@ var _default = exports.default = (0, _vue.defineComponent)({
4368
4376
  keepSource,
4369
4377
  treeConfig
4370
4378
  } = props;
4379
+ const {
4380
+ editStore
4381
+ } = reactData;
4371
4382
  const {
4372
4383
  fullAllDataRowIdData,
4373
4384
  fullDataRowIdData,
@@ -4376,10 +4387,14 @@ var _default = exports.default = (0, _vue.defineComponent)({
4376
4387
  tableFullData,
4377
4388
  afterFullData
4378
4389
  } = internalData;
4390
+ const removeTempMaps = Object.assign({}, editStore.removeMaps);
4379
4391
  const treeOpts = computeTreeOpts.value;
4380
4392
  const {
4381
4393
  transform
4382
4394
  } = treeOpts;
4395
+ const {
4396
+ handleGetRowId
4397
+ } = (0, _util.createHandleGetRowId)($xeTable);
4383
4398
  if (!keepSource) {
4384
4399
  if (process.env.NODE_ENV === 'development') {
4385
4400
  (0, _log.errLog)('vxe.error.reqProp', ['keep-source']);
@@ -4397,7 +4412,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
4397
4412
  let reDelFlag = false;
4398
4413
  if (targetRows.length) {
4399
4414
  targetRows.forEach(item => {
4400
- const rowid = (0, _util.getRowid)($xeTable, item);
4415
+ const rowid = handleGetRowId(item);
4401
4416
  const rowRest = fullAllDataRowIdData[rowid];
4402
4417
  if (rowRest) {
4403
4418
  const row = rowRest.row;
@@ -4410,6 +4425,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
4410
4425
  _xeUtils.default.destructuring(row, _xeUtils.default.clone(oRow, true));
4411
4426
  }
4412
4427
  if (!fullDataRowIdData[rowid] && $xeTable.isRemoveByRow(row)) {
4428
+ delete removeTempMaps[rowid];
4413
4429
  tableFullData.unshift(row);
4414
4430
  afterFullData.unshift(row);
4415
4431
  reDelFlag = true;
@@ -4421,6 +4437,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
4421
4437
  }
4422
4438
  if (rows) {
4423
4439
  if (reDelFlag) {
4440
+ editStore.removeMaps = removeTempMaps;
4424
4441
  $xeTable.updateFooter();
4425
4442
  $xeTable.cacheRowMap(false);
4426
4443
  $xeTable.handleTableData(treeConfig && transform);
@@ -4590,10 +4607,10 @@ var _default = exports.default = (0, _vue.defineComponent)({
4590
4607
  },
4591
4608
  /**
4592
4609
  * 检查行或列数据是否发生改变
4593
- * @param {Row} rowOrId 行对象、行主键
4610
+ * @param {Row} rowidOrRow 行对象、行主键
4594
4611
  * @param {String} field 字段名
4595
4612
  */
4596
- isUpdateByRow(rowOrId, field) {
4613
+ isUpdateByRow(rowidOrRow, field) {
4597
4614
  const {
4598
4615
  keepSource
4599
4616
  } = props;
@@ -4603,7 +4620,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
4603
4620
  sourceDataRowIdData
4604
4621
  } = internalData;
4605
4622
  if (keepSource) {
4606
- const rowid = _xeUtils.default.isString(rowOrId) || _xeUtils.default.isNumber(rowOrId) ? rowOrId : (0, _util.getRowid)($xeTable, rowOrId);
4623
+ const rowid = _xeUtils.default.isString(rowidOrRow) || _xeUtils.default.isNumber(rowidOrRow) ? rowidOrRow : (0, _util.getRowid)($xeTable, rowidOrRow);
4607
4624
  const rowRest = fullDataRowIdData[rowid];
4608
4625
  // 新增的数据不需要检测
4609
4626
  if (!rowRest) {
@@ -4798,16 +4815,14 @@ var _default = exports.default = (0, _vue.defineComponent)({
4798
4815
  const {
4799
4816
  treeConfig
4800
4817
  } = props;
4801
- const {
4802
- selectCheckboxMaps
4803
- } = reactData;
4804
4818
  const {
4805
4819
  tableFullData,
4806
4820
  afterFullData,
4807
4821
  afterTreeFullData,
4808
4822
  tableFullTreeData,
4809
4823
  fullDataRowIdData,
4810
- afterFullRowMaps
4824
+ afterFullRowMaps,
4825
+ selectCheckboxMaps
4811
4826
  } = internalData;
4812
4827
  const treeOpts = computeTreeOpts.value;
4813
4828
  const checkboxOpts = computeCheckboxOpts.value;
@@ -5183,12 +5198,15 @@ var _default = exports.default = (0, _vue.defineComponent)({
5183
5198
  fullAllDataRowIdData,
5184
5199
  afterFullData
5185
5200
  } = internalData;
5201
+ const {
5202
+ handleGetRowId
5203
+ } = (0, _util.createHandleGetRowId)($xeTable);
5186
5204
  const rowOpts = computeRowOpts.value;
5187
5205
  const cellOpts = computeCellOpts.value;
5188
5206
  const defaultRowHeight = computeDefaultRowHeight.value;
5189
5207
  const rest = {};
5190
5208
  afterFullData.forEach(row => {
5191
- const rowid = (0, _util.getRowid)($xeTable, row);
5209
+ const rowid = handleGetRowId(row);
5192
5210
  const rowRest = fullAllDataRowIdData[rowid];
5193
5211
  if (rowRest) {
5194
5212
  const resizeHeight = rowRest.resizeHeight;
@@ -5214,8 +5232,11 @@ var _default = exports.default = (0, _vue.defineComponent)({
5214
5232
  rHeight = Math.floor(rHeight * bodyHeight);
5215
5233
  }
5216
5234
  if (rHeight) {
5235
+ const {
5236
+ handleGetRowId
5237
+ } = (0, _util.createHandleGetRowId)($xeTable);
5217
5238
  rows.forEach(row => {
5218
- const rowid = _xeUtils.default.isString(row) || _xeUtils.default.isNumber(row) ? row : (0, _util.getRowid)($xeTable, row);
5239
+ const rowid = _xeUtils.default.isString(row) || _xeUtils.default.isNumber(row) ? row : handleGetRowId(row);
5219
5240
  const rowRest = fullAllDataRowIdData[rowid];
5220
5241
  if (rowRest) {
5221
5242
  rowRest.resizeHeight = rHeight;
@@ -5378,15 +5399,13 @@ var _default = exports.default = (0, _vue.defineComponent)({
5378
5399
  treeConfig
5379
5400
  } = props;
5380
5401
  const {
5381
- fullDataRowIdData
5402
+ fullDataRowIdData,
5403
+ treeIndeterminateRowMaps
5382
5404
  } = internalData;
5383
- const {
5384
- treeIndeterminateMaps
5385
- } = reactData;
5386
5405
  if (treeConfig) {
5387
5406
  const fullRest = [];
5388
5407
  const defRest = [];
5389
- _xeUtils.default.each(treeIndeterminateMaps, (item, rowid) => {
5408
+ _xeUtils.default.each(treeIndeterminateRowMaps, (item, rowid) => {
5390
5409
  if (item) {
5391
5410
  fullRest.push(item);
5392
5411
  if (fullDataRowIdData[rowid]) {
@@ -5430,8 +5449,11 @@ var _default = exports.default = (0, _vue.defineComponent)({
5430
5449
  },
5431
5450
  isCheckedByCheckboxRow(row) {
5432
5451
  const {
5433
- selectCheckboxMaps
5452
+ updateCheckboxFlag
5434
5453
  } = reactData;
5454
+ const {
5455
+ selectCheckboxMaps
5456
+ } = internalData;
5435
5457
  const checkboxOpts = computeCheckboxOpts.value;
5436
5458
  const {
5437
5459
  checkField
@@ -5439,14 +5461,15 @@ var _default = exports.default = (0, _vue.defineComponent)({
5439
5461
  if (checkField) {
5440
5462
  return _xeUtils.default.get(row, checkField);
5441
5463
  }
5442
- return !!selectCheckboxMaps[(0, _util.getRowid)($xeTable, row)];
5464
+ return !!updateCheckboxFlag && !!selectCheckboxMaps[(0, _util.getRowid)($xeTable, row)];
5443
5465
  },
5444
5466
  isCheckedByCheckboxRowKey(rowid) {
5445
5467
  const {
5446
- selectCheckboxMaps
5468
+ updateCheckboxFlag
5447
5469
  } = reactData;
5448
5470
  const {
5449
- fullAllDataRowIdData
5471
+ fullAllDataRowIdData,
5472
+ selectCheckboxMaps
5450
5473
  } = internalData;
5451
5474
  const checkboxOpts = computeCheckboxOpts.value;
5452
5475
  const {
@@ -5459,19 +5482,19 @@ var _default = exports.default = (0, _vue.defineComponent)({
5459
5482
  }
5460
5483
  return false;
5461
5484
  }
5462
- return !!selectCheckboxMaps[rowid];
5485
+ return !!updateCheckboxFlag && !!selectCheckboxMaps[rowid];
5463
5486
  },
5464
5487
  isIndeterminateByCheckboxRow(row) {
5465
5488
  const {
5466
- treeIndeterminateMaps
5467
- } = reactData;
5468
- return !!treeIndeterminateMaps[(0, _util.getRowid)($xeTable, row)] && !$xeTable.isCheckedByCheckboxRow(row);
5489
+ treeIndeterminateRowMaps
5490
+ } = internalData;
5491
+ return !!treeIndeterminateRowMaps[(0, _util.getRowid)($xeTable, row)] && !$xeTable.isCheckedByCheckboxRow(row);
5469
5492
  },
5470
5493
  isIndeterminateByCheckboxRowKey(rowid) {
5471
5494
  const {
5472
- treeIndeterminateMaps
5473
- } = reactData;
5474
- return !!treeIndeterminateMaps[rowid] && !$xeTable.isCheckedByCheckboxRowKey(rowid);
5495
+ treeIndeterminateRowMaps
5496
+ } = internalData;
5497
+ return !!treeIndeterminateRowMaps[rowid] && !$xeTable.isCheckedByCheckboxRowKey(rowid);
5475
5498
  },
5476
5499
  /**
5477
5500
  * 多选,切换某一行的选中状态
@@ -5479,7 +5502,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
5479
5502
  toggleCheckboxRow(row) {
5480
5503
  const {
5481
5504
  selectCheckboxMaps
5482
- } = reactData;
5505
+ } = internalData;
5483
5506
  const checkboxOpts = computeCheckboxOpts.value;
5484
5507
  const {
5485
5508
  checkField
@@ -5556,16 +5579,19 @@ var _default = exports.default = (0, _vue.defineComponent)({
5556
5579
  const childrenField = treeOpts.children || treeOpts.childrenField;
5557
5580
  const reserveSelection = [];
5558
5581
  if (checkboxOpts.reserve) {
5582
+ const {
5583
+ handleGetRowId
5584
+ } = (0, _util.createHandleGetRowId)($xeTable);
5559
5585
  const afterFullIdMaps = {};
5560
5586
  if (treeConfig) {
5561
5587
  _xeUtils.default.eachTree(afterFullData, row => {
5562
- afterFullIdMaps[(0, _util.getRowid)($xeTable, row)] = 1;
5588
+ afterFullIdMaps[handleGetRowId(row)] = 1;
5563
5589
  }, {
5564
5590
  children: childrenField
5565
5591
  });
5566
5592
  } else {
5567
5593
  afterFullData.forEach(row => {
5568
- afterFullIdMaps[(0, _util.getRowid)($xeTable, row)] = 1;
5594
+ afterFullIdMaps[handleGetRowId(row)] = 1;
5569
5595
  });
5570
5596
  }
5571
5597
  _xeUtils.default.each(checkboxReserveRowMap, (oldRow, oldRowid) => {
@@ -5635,8 +5661,9 @@ var _default = exports.default = (0, _vue.defineComponent)({
5635
5661
  }
5636
5662
  reactData.isAllSelected = false;
5637
5663
  reactData.isIndeterminate = false;
5638
- reactData.selectCheckboxMaps = {};
5639
- reactData.treeIndeterminateMaps = {};
5664
+ internalData.selectCheckboxMaps = {};
5665
+ internalData.treeIndeterminateRowMaps = {};
5666
+ reactData.updateCheckboxFlag++;
5640
5667
  return (0, _vue.nextTick)();
5641
5668
  },
5642
5669
  /**
@@ -5754,13 +5781,22 @@ var _default = exports.default = (0, _vue.defineComponent)({
5754
5781
  * 用于当前列,设置某列行为高亮状态
5755
5782
  */
5756
5783
  setCurrentColumn(fieldOrColumn) {
5784
+ const {
5785
+ mouseConfig
5786
+ } = props;
5787
+ const mouseOpts = computeMouseOpts.value;
5788
+ const isMouseSelected = mouseConfig && mouseOpts.selected;
5757
5789
  const column = (0, _util.handleFieldOrColumn)($xeTable, fieldOrColumn);
5758
5790
  if (column) {
5759
- // tableMethods.clearCurrentRow()
5760
- tableMethods.clearCurrentColumn();
5791
+ $xeTable.clearCurrentColumn();
5761
5792
  reactData.currentColumn = column;
5762
5793
  }
5763
- return (0, _vue.nextTick)();
5794
+ return (0, _vue.nextTick)().then(() => {
5795
+ // 更新状选中态
5796
+ if (isMouseSelected) {
5797
+ $xeTable.addCellSelectedClass();
5798
+ }
5799
+ });
5764
5800
  },
5765
5801
  /**
5766
5802
  * 用于当前列,手动清空当前高亮的状态
@@ -5770,44 +5806,54 @@ var _default = exports.default = (0, _vue.defineComponent)({
5770
5806
  return (0, _vue.nextTick)();
5771
5807
  },
5772
5808
  setPendingRow(rows, status) {
5773
- const pendingMaps = Object.assign({}, reactData.pendingRowMaps);
5809
+ const {
5810
+ handleGetRowId
5811
+ } = (0, _util.createHandleGetRowId)($xeTable);
5812
+ const {
5813
+ pendingRowMaps
5814
+ } = internalData;
5774
5815
  if (rows && !_xeUtils.default.isArray(rows)) {
5775
5816
  rows = [rows];
5776
5817
  }
5777
5818
  if (status) {
5778
5819
  rows.forEach(row => {
5779
- const rowid = (0, _util.getRowid)($xeTable, row);
5780
- if (rowid && !pendingMaps[rowid]) {
5781
- pendingMaps[rowid] = row;
5820
+ const rowid = handleGetRowId(row);
5821
+ if (rowid && !pendingRowMaps[rowid]) {
5822
+ pendingRowMaps[rowid] = row;
5782
5823
  }
5783
5824
  });
5784
5825
  } else {
5785
5826
  rows.forEach(row => {
5786
- const rowid = (0, _util.getRowid)($xeTable, row);
5787
- if (rowid && pendingMaps[rowid]) {
5788
- delete pendingMaps[rowid];
5827
+ const rowid = handleGetRowId(row);
5828
+ if (rowid && pendingRowMaps[rowid]) {
5829
+ delete pendingRowMaps[rowid];
5789
5830
  }
5790
5831
  });
5791
5832
  }
5792
- reactData.pendingRowMaps = pendingMaps;
5833
+ reactData.pendingRowFlag++;
5793
5834
  return (0, _vue.nextTick)();
5794
5835
  },
5795
5836
  togglePendingRow(rows) {
5796
- const pendingMaps = Object.assign({}, reactData.pendingRowMaps);
5837
+ const {
5838
+ handleGetRowId
5839
+ } = (0, _util.createHandleGetRowId)($xeTable);
5840
+ const {
5841
+ pendingRowMaps
5842
+ } = internalData;
5797
5843
  if (rows && !_xeUtils.default.isArray(rows)) {
5798
5844
  rows = [rows];
5799
5845
  }
5800
5846
  rows.forEach(row => {
5801
- const rowid = (0, _util.getRowid)($xeTable, row);
5847
+ const rowid = handleGetRowId(row);
5802
5848
  if (rowid) {
5803
- if (pendingMaps[rowid]) {
5804
- delete pendingMaps[rowid];
5849
+ if (pendingRowMaps[rowid]) {
5850
+ delete pendingRowMaps[rowid];
5805
5851
  } else {
5806
- pendingMaps[rowid] = row;
5852
+ pendingRowMaps[rowid] = row;
5807
5853
  }
5808
5854
  }
5809
5855
  });
5810
- reactData.pendingRowMaps = pendingMaps;
5856
+ reactData.pendingRowFlag++;
5811
5857
  return (0, _vue.nextTick)();
5812
5858
  },
5813
5859
  hasPendingByRow(row) {
@@ -5816,16 +5862,14 @@ var _default = exports.default = (0, _vue.defineComponent)({
5816
5862
  isPendingByRow(row) {
5817
5863
  const {
5818
5864
  pendingRowMaps
5819
- } = reactData;
5865
+ } = internalData;
5820
5866
  const rowid = (0, _util.getRowid)($xeTable, row);
5821
5867
  return !!pendingRowMaps[rowid];
5822
5868
  },
5823
5869
  getPendingRecords() {
5824
5870
  const {
5871
+ fullAllDataRowIdData,
5825
5872
  pendingRowMaps
5826
- } = reactData;
5827
- const {
5828
- fullAllDataRowIdData
5829
5873
  } = internalData;
5830
5874
  const insertRecords = [];
5831
5875
  _xeUtils.default.each(pendingRowMaps, (row, rowid) => {
@@ -5836,7 +5880,8 @@ var _default = exports.default = (0, _vue.defineComponent)({
5836
5880
  return insertRecords;
5837
5881
  },
5838
5882
  clearPendingRow() {
5839
- reactData.pendingRowMaps = {};
5883
+ internalData.pendingRowMaps = {};
5884
+ reactData.pendingRowFlag++;
5840
5885
  return (0, _vue.nextTick)();
5841
5886
  },
5842
5887
  sort(sortConfs, sortOrder) {
@@ -6022,7 +6067,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
6022
6067
  column,
6023
6068
  property: column.field,
6024
6069
  field: column.field,
6025
- filterList: $xeTable.getCheckedFilters(),
6070
+ filterList: () => $xeTable.getCheckedFilters(),
6026
6071
  visible: false
6027
6072
  }, null);
6028
6073
  }
@@ -6054,9 +6099,9 @@ var _default = exports.default = (0, _vue.defineComponent)({
6054
6099
  return rowRest && !!rowRest.expandLoaded;
6055
6100
  },
6056
6101
  clearRowExpandLoaded(row) {
6057
- const rExpandLazyLoadedMaps = Object.assign({}, reactData.rowExpandLazyLoadedMaps);
6058
6102
  const {
6059
- fullAllDataRowIdData
6103
+ fullAllDataRowIdData,
6104
+ rowExpandLazyLoadedMaps
6060
6105
  } = internalData;
6061
6106
  const expandOpts = computeExpandOpts.value;
6062
6107
  const {
@@ -6066,9 +6111,9 @@ var _default = exports.default = (0, _vue.defineComponent)({
6066
6111
  const rowRest = fullAllDataRowIdData[rowid];
6067
6112
  if (lazy && rowRest) {
6068
6113
  rowRest.expandLoaded = false;
6069
- delete rExpandLazyLoadedMaps[rowid];
6114
+ delete rowExpandLazyLoadedMaps[rowid];
6070
6115
  }
6071
- reactData.rowExpandLazyLoadedMaps = rExpandLazyLoadedMaps;
6116
+ reactData.rowExpandedFlag++;
6072
6117
  return (0, _vue.nextTick)();
6073
6118
  },
6074
6119
  /**
@@ -6078,14 +6123,14 @@ var _default = exports.default = (0, _vue.defineComponent)({
6078
6123
  reloadRowExpand(row) {
6079
6124
  const {
6080
6125
  rowExpandLazyLoadedMaps
6081
- } = reactData;
6126
+ } = internalData;
6082
6127
  const expandOpts = computeExpandOpts.value;
6083
6128
  const {
6084
6129
  lazy
6085
6130
  } = expandOpts;
6086
6131
  const rowid = (0, _util.getRowid)($xeTable, row);
6087
6132
  if (lazy && !rowExpandLazyLoadedMaps[rowid]) {
6088
- tableMethods.clearRowExpandLoaded(row).then(() => handleAsyncRowExpand(row));
6133
+ $xeTable.clearRowExpandLoaded(row).then(() => handleAsyncRowExpand(row));
6089
6134
  }
6090
6135
  return (0, _vue.nextTick)();
6091
6136
  },
@@ -6094,13 +6139,13 @@ var _default = exports.default = (0, _vue.defineComponent)({
6094
6139
  (0, _log.warnLog)('vxe.error.delFunc', ['reloadExpandContent', 'reloadRowExpand']);
6095
6140
  }
6096
6141
  // 即将废弃
6097
- return tableMethods.reloadRowExpand(row);
6142
+ return $xeTable.reloadRowExpand(row);
6098
6143
  },
6099
6144
  /**
6100
6145
  * 切换展开行
6101
6146
  */
6102
6147
  toggleRowExpand(row) {
6103
- return tableMethods.setRowExpand(row, !tableMethods.isRowExpandByRow(row));
6148
+ return $xeTable.setRowExpand(row, !$xeTable.isRowExpandByRow(row));
6104
6149
  },
6105
6150
  /**
6106
6151
  * 设置所有行的展开与否
@@ -6134,14 +6179,16 @@ var _default = exports.default = (0, _vue.defineComponent)({
6134
6179
  */
6135
6180
  setRowExpand(rows, expanded) {
6136
6181
  const {
6137
- rowExpandedMaps,
6138
- rowExpandLazyLoadedMaps,
6139
6182
  expandColumn
6140
6183
  } = reactData;
6141
- const {
6142
- fullAllDataRowIdData
6184
+ let {
6185
+ fullAllDataRowIdData,
6186
+ rowExpandedMaps,
6187
+ rowExpandLazyLoadedMaps
6143
6188
  } = internalData;
6144
- let rExpandedMaps = Object.assign({}, rowExpandedMaps);
6189
+ const {
6190
+ handleGetRowId
6191
+ } = (0, _util.createHandleGetRowId)($xeTable);
6145
6192
  const expandOpts = computeExpandOpts.value;
6146
6193
  const {
6147
6194
  reserve,
@@ -6158,7 +6205,8 @@ var _default = exports.default = (0, _vue.defineComponent)({
6158
6205
  }
6159
6206
  if (accordion) {
6160
6207
  // 只能同时展开一个
6161
- rExpandedMaps = {};
6208
+ rowExpandedMaps = {};
6209
+ internalData.rowExpandedMaps = rowExpandedMaps;
6162
6210
  rows = rows.slice(rows.length - 1, rows.length);
6163
6211
  }
6164
6212
  const validRows = toggleMethod ? rows.filter(row => toggleMethod({
@@ -6173,22 +6221,22 @@ var _default = exports.default = (0, _vue.defineComponent)({
6173
6221
  })) : rows;
6174
6222
  if (expanded) {
6175
6223
  validRows.forEach(row => {
6176
- const rowid = (0, _util.getRowid)($xeTable, row);
6177
- if (!rExpandedMaps[rowid]) {
6224
+ const rowid = handleGetRowId(row);
6225
+ if (!rowExpandedMaps[rowid]) {
6178
6226
  const rowRest = fullAllDataRowIdData[rowid];
6179
6227
  const isLoad = lazy && !rowRest.expandLoaded && !rowExpandLazyLoadedMaps[rowid];
6180
6228
  if (isLoad) {
6181
6229
  lazyRests.push(handleAsyncRowExpand(row));
6182
6230
  } else {
6183
- rExpandedMaps[rowid] = row;
6231
+ rowExpandedMaps[rowid] = row;
6184
6232
  }
6185
6233
  }
6186
6234
  });
6187
6235
  } else {
6188
6236
  validRows.forEach(item => {
6189
- const rowid = (0, _util.getRowid)($xeTable, item);
6190
- if (rExpandedMaps[rowid]) {
6191
- delete rExpandedMaps[rowid];
6237
+ const rowid = handleGetRowId(item);
6238
+ if (rowExpandedMaps[rowid]) {
6239
+ delete rowExpandedMaps[rowid];
6192
6240
  }
6193
6241
  });
6194
6242
  }
@@ -6196,7 +6244,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
6196
6244
  validRows.forEach(row => handleRowExpandReserve(row, expanded));
6197
6245
  }
6198
6246
  }
6199
- reactData.rowExpandedMaps = rExpandedMaps;
6247
+ reactData.rowExpandedFlag++;
6200
6248
  return Promise.all(lazyRests).then(() => (0, _vue.nextTick)()).then(() => $xeTable.recalculate(true)).then(() => {
6201
6249
  updateRowOffsetTop();
6202
6250
  updateRowExpandStyle();
@@ -6210,10 +6258,13 @@ var _default = exports.default = (0, _vue.defineComponent)({
6210
6258
  */
6211
6259
  isRowExpandByRow(row) {
6212
6260
  const {
6213
- rowExpandedMaps
6261
+ rowExpandedFlag
6214
6262
  } = reactData;
6263
+ const {
6264
+ rowExpandedMaps
6265
+ } = internalData;
6215
6266
  const rowid = (0, _util.getRowid)($xeTable, row);
6216
- return !!rowExpandedMaps[rowid];
6267
+ return !!rowExpandedFlag && !!rowExpandedMaps[rowid];
6217
6268
  },
6218
6269
  isExpandByRow(row) {
6219
6270
  // 已废弃
@@ -6234,7 +6285,8 @@ var _default = exports.default = (0, _vue.defineComponent)({
6234
6285
  reserve
6235
6286
  } = expandOpts;
6236
6287
  const expList = $xeTable.getRowExpandRecords();
6237
- reactData.rowExpandedMaps = {};
6288
+ internalData.rowExpandedMaps = {};
6289
+ reactData.rowExpandedFlag++;
6238
6290
  if (reserve) {
6239
6291
  tableFullData.forEach(row => handleRowExpandReserve(row, false));
6240
6292
  }
@@ -6255,7 +6307,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
6255
6307
  },
6256
6308
  getRowExpandRecords() {
6257
6309
  const rest = [];
6258
- _xeUtils.default.each(reactData.rowExpandedMaps, item => {
6310
+ _xeUtils.default.each(internalData.rowExpandedMaps, item => {
6259
6311
  if (item) {
6260
6312
  rest.push(item);
6261
6313
  }
@@ -6264,7 +6316,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
6264
6316
  },
6265
6317
  getTreeExpandRecords() {
6266
6318
  const rest = [];
6267
- _xeUtils.default.each(reactData.treeExpandedMaps, item => {
6319
+ _xeUtils.default.each(internalData.treeExpandedMaps, item => {
6268
6320
  if (item) {
6269
6321
  rest.push(item);
6270
6322
  }
@@ -6284,15 +6336,14 @@ var _default = exports.default = (0, _vue.defineComponent)({
6284
6336
  },
6285
6337
  clearTreeExpandLoaded(rows) {
6286
6338
  const {
6287
- fullAllDataRowIdData
6339
+ fullAllDataRowIdData,
6340
+ treeExpandedMaps
6288
6341
  } = internalData;
6289
6342
  const treeOpts = computeTreeOpts.value;
6290
6343
  const {
6291
6344
  transform
6292
6345
  } = treeOpts;
6293
- let tExpandedMaps = {};
6294
6346
  if (rows) {
6295
- tExpandedMaps = Object.assign({}, reactData.treeExpandedMaps);
6296
6347
  if (!_xeUtils.default.isArray(rows)) {
6297
6348
  rows = [rows];
6298
6349
  }
@@ -6301,8 +6352,8 @@ var _default = exports.default = (0, _vue.defineComponent)({
6301
6352
  const rowRest = fullAllDataRowIdData[rowid];
6302
6353
  if (rowRest) {
6303
6354
  rowRest.treeLoaded = false;
6304
- if (tExpandedMaps[rowid]) {
6305
- delete tExpandedMaps[rowid];
6355
+ if (treeExpandedMaps[rowid]) {
6356
+ delete treeExpandedMaps[rowid];
6306
6357
  }
6307
6358
  }
6308
6359
  });
@@ -6311,7 +6362,8 @@ var _default = exports.default = (0, _vue.defineComponent)({
6311
6362
  rowRest.treeLoaded = false;
6312
6363
  });
6313
6364
  }
6314
- reactData.treeExpandedMaps = {};
6365
+ internalData.treeExpandedMaps = {};
6366
+ reactData.treeExpandedFlag++;
6315
6367
  if (transform) {
6316
6368
  handleVirtualTreeToList();
6317
6369
  return $xeTable.handleTableData();
@@ -6325,7 +6377,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
6325
6377
  reloadTreeExpand(row) {
6326
6378
  const {
6327
6379
  treeExpandLazyLoadedMaps
6328
- } = reactData;
6380
+ } = internalData;
6329
6381
  const treeOpts = computeTreeOpts.value;
6330
6382
  const hasChildField = treeOpts.hasChild || treeOpts.hasChildField;
6331
6383
  const {
@@ -6423,9 +6475,12 @@ var _default = exports.default = (0, _vue.defineComponent)({
6423
6475
  */
6424
6476
  isTreeExpandByRow(row) {
6425
6477
  const {
6426
- treeExpandedMaps
6478
+ treeExpandedFlag
6427
6479
  } = reactData;
6428
- return !!treeExpandedMaps[(0, _util.getRowid)($xeTable, row)];
6480
+ const {
6481
+ treeExpandedMaps
6482
+ } = internalData;
6483
+ return !!treeExpandedFlag && !!treeExpandedMaps[(0, _util.getRowid)($xeTable, row)];
6429
6484
  },
6430
6485
  /**
6431
6486
  * 手动清空树形节点的展开状态,数据会恢复成未展开的状态
@@ -6440,21 +6495,22 @@ var _default = exports.default = (0, _vue.defineComponent)({
6440
6495
  transform,
6441
6496
  reserve
6442
6497
  } = treeOpts;
6443
- const expList = tableMethods.getTreeExpandRecords();
6444
- reactData.treeExpandedMaps = {};
6498
+ const expList = $xeTable.getTreeExpandRecords();
6499
+ internalData.treeExpandedMaps = {};
6500
+ reactData.treeExpandedFlag++;
6445
6501
  if (reserve) {
6446
6502
  _xeUtils.default.eachTree(tableFullTreeData, row => handleTreeExpandReserve(row, false), {
6447
6503
  children: childrenField
6448
6504
  });
6449
6505
  }
6450
- return tablePrivateMethods.handleTableData().then(() => {
6506
+ return $xeTable.handleTableData().then(() => {
6451
6507
  if (transform) {
6452
6508
  handleVirtualTreeToList();
6453
- return tablePrivateMethods.handleTableData();
6509
+ return $xeTable.handleTableData();
6454
6510
  }
6455
6511
  }).then(() => {
6456
6512
  if (expList.length) {
6457
- return tableMethods.recalculate();
6513
+ return $xeTable.recalculate();
6458
6514
  }
6459
6515
  });
6460
6516
  },
@@ -6745,8 +6801,15 @@ var _default = exports.default = (0, _vue.defineComponent)({
6745
6801
  collectColumn
6746
6802
  } = internalData;
6747
6803
  const {
6804
+ storage,
6748
6805
  checkMethod
6749
6806
  } = customOpts;
6807
+ const isAllCustom = storage === true;
6808
+ const storageOpts = isAllCustom ? {} : Object.assign({}, storage || {});
6809
+ const isCustomResizable = isAllCustom || storageOpts.resizable;
6810
+ const isCustomVisible = isAllCustom || storageOpts.visible;
6811
+ const isCustomFixed = isAllCustom || storageOpts.fixed;
6812
+ const isCustomSort = isAllCustom || storageOpts.sort;
6750
6813
  const resizableData = {};
6751
6814
  const sortData = {};
6752
6815
  const visibleData = {};
@@ -6766,45 +6829,35 @@ var _default = exports.default = (0, _vue.defineComponent)({
6766
6829
  let hasFixed = 0;
6767
6830
  let hasVisible = 0;
6768
6831
  _xeUtils.default.eachTree(collectColumn, (column, index, items, path, parentColumn) => {
6832
+ const colKey = column.getKey();
6833
+ if (!colKey) {
6834
+ (0, _log.errLog)('vxe.error.reqProp', [`${column.getTitle() || column.type || ''} -> column.field=?`]);
6835
+ return;
6836
+ }
6769
6837
  // 只支持一级
6770
6838
  if (!parentColumn) {
6771
- collectColumn.forEach(column => {
6772
- const colKey = column.getKey();
6773
- if (colKey) {
6774
- hasSort = 1;
6775
- sortData[colKey] = column.renderSortNumber;
6776
- }
6777
- });
6778
- if (column.fixed !== column.defaultFixed) {
6779
- const colKey = column.getKey();
6780
- if (colKey) {
6781
- hasFixed = 1;
6782
- fixedData[colKey] = column.fixed;
6783
- }
6839
+ if (isCustomSort) {
6840
+ hasSort = 1;
6841
+ sortData[colKey] = column.renderSortNumber;
6784
6842
  }
6785
- }
6786
- if (column.resizeWidth) {
6787
- const colKey = column.getKey();
6788
- if (colKey) {
6789
- hasResizable = 1;
6790
- resizableData[colKey] = column.renderWidth;
6843
+ if (isCustomFixed && column.fixed !== column.defaultFixed) {
6844
+ hasFixed = 1;
6845
+ fixedData[colKey] = column.fixed;
6791
6846
  }
6792
6847
  }
6793
- if (!checkMethod || checkMethod({
6848
+ if (isCustomResizable && column.resizeWidth) {
6849
+ hasResizable = 1;
6850
+ resizableData[colKey] = column.renderWidth;
6851
+ }
6852
+ if (isCustomVisible && (!checkMethod || checkMethod({
6794
6853
  column
6795
- })) {
6854
+ }))) {
6796
6855
  if (!column.visible && column.defaultVisible) {
6797
- const colKey = column.getKey();
6798
- if (colKey) {
6799
- hasVisible = 1;
6800
- visibleData[colKey] = false;
6801
- }
6856
+ hasVisible = 1;
6857
+ visibleData[colKey] = false;
6802
6858
  } else if (column.visible && !column.defaultVisible) {
6803
- const colKey = column.getKey();
6804
- if (colKey) {
6805
- hasVisible = 1;
6806
- visibleData[colKey] = true;
6807
- }
6859
+ hasVisible = 1;
6860
+ visibleData[colKey] = true;
6808
6861
  }
6809
6862
  }
6810
6863
  });
@@ -7189,7 +7242,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
7189
7242
  if (keyboardOpts.enterToTab) {
7190
7243
  $xeTable.moveTabSelected(activeParams, hasShiftKey, evnt);
7191
7244
  } else {
7192
- $xeTable.moveSelected(activeParams, isLeftArrow, true, isRightArrow, false, evnt);
7245
+ $xeTable.moveEnterSelected(activeParams, isLeftArrow, true, isRightArrow, false, evnt);
7193
7246
  }
7194
7247
  } else {
7195
7248
  if (keyboardOpts.enterToTab) {
@@ -7225,7 +7278,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
7225
7278
  return;
7226
7279
  }
7227
7280
  }
7228
- $xeTable.moveSelected(activeParams, isLeftArrow, false, isRightArrow, true, evnt);
7281
+ $xeTable.moveEnterSelected(activeParams, isLeftArrow, false, isRightArrow, true, evnt);
7229
7282
  if (enterMethod) {
7230
7283
  enterMethod(etrParams);
7231
7284
  }
@@ -7252,10 +7305,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
7252
7305
  if (!isEditStatus) {
7253
7306
  // 如果按下了方向键
7254
7307
  if (selected.row && selected.column) {
7255
- $xeTable.moveSelected(selected.args, isLeftArrow, isUpArrow, isRightArrow, isDwArrow, evnt);
7256
- } else if ((isUpArrow || isDwArrow) && (rowOpts.isCurrent || highlightCurrentRow)) {
7257
- // 当前行按键上下移动
7258
- $xeTable.moveCurrentRow(isUpArrow, isDwArrow, evnt);
7308
+ $xeTable.moveArrowSelected(selected.args, isLeftArrow, isUpArrow, isRightArrow, isDwArrow, evnt);
7259
7309
  }
7260
7310
  }
7261
7311
  } else if (isTab && keyboardConfig && keyboardOpts.isTab) {
@@ -7680,8 +7730,9 @@ var _default = exports.default = (0, _vue.defineComponent)({
7680
7730
  * @param {Event} evnt 事件
7681
7731
  * @param {Row} row 行对象
7682
7732
  */
7683
- const handleTooltip = (evnt, tdEl, overflowElem, tipElem, params) => {
7684
- if (!overflowElem) {
7733
+ const handleTooltip = (evnt, tdEl, overflowElem, params) => {
7734
+ const tipOverEl = overflowElem || tdEl;
7735
+ if (!tipOverEl) {
7685
7736
  return (0, _vue.nextTick)();
7686
7737
  }
7687
7738
  params.cell = tdEl;
@@ -7699,9 +7750,8 @@ var _default = exports.default = (0, _vue.defineComponent)({
7699
7750
  } = tooltipOpts;
7700
7751
  const customContent = contentMethod ? contentMethod(params) : null;
7701
7752
  const useCustom = contentMethod && !_xeUtils.default.eqNull(customContent);
7702
- const content = useCustom ? customContent : _xeUtils.default.toString(column.type === 'html' ? overflowElem.innerText : overflowElem.textContent).trim();
7703
- const isCellOverflow = overflowElem.scrollWidth > overflowElem.clientWidth;
7704
- if (content && (showAll || useCustom || isCellOverflow)) {
7753
+ const content = useCustom ? customContent : _xeUtils.default.toString(column.type === 'html' ? tipOverEl.innerText : tipOverEl.textContent).trim();
7754
+ if (content && (showAll || useCustom || tipOverEl.scrollWidth > tipOverEl.clientWidth)) {
7705
7755
  Object.assign(tooltipStore, {
7706
7756
  row,
7707
7757
  column,
@@ -7711,7 +7761,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
7711
7761
  (0, _vue.nextTick)(() => {
7712
7762
  const $tooltip = refTooltip.value;
7713
7763
  if ($tooltip && $tooltip.open) {
7714
- $tooltip.open(isCellOverflow ? overflowElem : tipElem || overflowElem, (0, _utils.formatText)(content));
7764
+ $tooltip.open(tipOverEl, (0, _utils.formatText)(content));
7715
7765
  }
7716
7766
  });
7717
7767
  }
@@ -7869,13 +7919,11 @@ var _default = exports.default = (0, _vue.defineComponent)({
7869
7919
  const {
7870
7920
  treeConfig
7871
7921
  } = props;
7872
- const {
7873
- treeExpandedMaps
7874
- } = reactData;
7875
7922
  const {
7876
7923
  fullAllDataRowIdData,
7877
7924
  tableFullData,
7878
- tableFullTreeData
7925
+ tableFullTreeData,
7926
+ treeExpandedMaps
7879
7927
  } = internalData;
7880
7928
  const treeOpts = computeTreeOpts.value;
7881
7929
  const childrenField = treeOpts.children || treeOpts.childrenField;
@@ -7883,12 +7931,11 @@ var _default = exports.default = (0, _vue.defineComponent)({
7883
7931
  const {
7884
7932
  lazy
7885
7933
  } = treeOpts;
7886
- const rowkey = (0, _util.getRowkey)($xeTable);
7887
- const isDeepKey = rowkey.indexOf('.') > -1;
7888
7934
  const fullAllDataRowIdMaps = Object.assign({}, fullAllDataRowIdData); // 存在已删除数据
7889
7935
  const fullDataRowIdMaps = {};
7890
- const treeTempExpandedMaps = Object.assign({}, treeExpandedMaps);
7891
- const handleRowId = isDeepKey ? _util.updateDeepRowKey : _util.updateFastRowKey;
7936
+ const {
7937
+ handleUpdateRowId
7938
+ } = (0, _util.createHandleUpdateRowId)($xeTable);
7892
7939
  const handleRowCache = (row, index, items, currIndex, parentRow, rowid, level, seq) => {
7893
7940
  let rowRest = fullAllDataRowIdMaps[rowid];
7894
7941
  if (!rowRest) {
@@ -7919,18 +7966,19 @@ var _default = exports.default = (0, _vue.defineComponent)({
7919
7966
  rowRest.level = level;
7920
7967
  rowRest.index = currIndex;
7921
7968
  rowRest.treeIndex = index;
7969
+ fullDataRowIdMaps[rowid] = rowRest;
7970
+ fullAllDataRowIdMaps[rowid] = rowRest;
7922
7971
  };
7923
7972
  if (treeConfig) {
7924
7973
  _xeUtils.default.eachTree(tableFullTreeData, (row, index, items, path, parentRow, nodes) => {
7925
- const rowid = handleRowId(row, rowkey);
7974
+ const rowid = handleUpdateRowId(row);
7926
7975
  if (treeConfig && lazy) {
7927
- const treeExpRest = treeTempExpandedMaps[rowid];
7928
7976
  if (row[hasChildField] && row[childrenField] === undefined) {
7929
7977
  row[childrenField] = null;
7930
7978
  }
7931
- if (treeExpRest) {
7979
+ if (treeExpandedMaps[rowid]) {
7932
7980
  if (!row[childrenField] || !row[childrenField].length) {
7933
- delete treeTempExpandedMaps[rowid];
7981
+ delete treeExpandedMaps[rowid];
7934
7982
  }
7935
7983
  }
7936
7984
  }
@@ -7940,31 +7988,26 @@ var _default = exports.default = (0, _vue.defineComponent)({
7940
7988
  });
7941
7989
  } else {
7942
7990
  tableFullData.forEach((row, index, items) => {
7943
- handleRowCache(row, index, items, index, null, handleRowId(row, rowkey), 0, index + 1);
7991
+ handleRowCache(row, index, items, index, null, handleUpdateRowId(row), 0, index + 1);
7944
7992
  });
7945
7993
  }
7946
7994
  internalData.fullDataRowIdData = fullDataRowIdMaps;
7947
7995
  internalData.fullAllDataRowIdData = fullAllDataRowIdMaps;
7948
- reactData.treeExpandedMaps = treeTempExpandedMaps;
7996
+ reactData.treeExpandedFlag++;
7949
7997
  },
7950
7998
  cacheSourceMap(fullData) {
7951
7999
  const {
7952
8000
  treeConfig
7953
8001
  } = props;
7954
8002
  const treeOpts = computeTreeOpts.value;
7955
- let {
7956
- sourceDataRowIdData
7957
- } = internalData;
7958
8003
  const sourceData = _xeUtils.default.clone(fullData, true);
7959
- const rowkey = (0, _util.getRowkey)($xeTable);
7960
- sourceDataRowIdData = internalData.sourceDataRowIdData = {};
8004
+ const {
8005
+ handleUpdateRowId
8006
+ } = (0, _util.createHandleUpdateRowId)($xeTable);
8007
+ const sourceRowIdData = {};
7961
8008
  const handleSourceRow = row => {
7962
- let rowid = (0, _util.getRowid)($xeTable, row);
7963
- if ((0, _utils.eqEmptyValue)(rowid)) {
7964
- rowid = (0, _util.getRowUniqueId)();
7965
- _xeUtils.default.set(row, rowkey, rowid);
7966
- }
7967
- sourceDataRowIdData[rowid] = row;
8009
+ const rowid = handleUpdateRowId(row);
8010
+ sourceRowIdData[rowid] = row;
7968
8011
  };
7969
8012
  // 源数据缓存
7970
8013
  if (treeConfig) {
@@ -7975,6 +8018,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
7975
8018
  } else {
7976
8019
  sourceData.forEach(handleSourceRow);
7977
8020
  }
8021
+ internalData.sourceDataRowIdData = sourceRowIdData;
7978
8022
  internalData.tableSourceData = sourceData;
7979
8023
  },
7980
8024
  /**
@@ -8481,12 +8525,25 @@ var _default = exports.default = (0, _vue.defineComponent)({
8481
8525
  }
8482
8526
  }
8483
8527
  // 兼容老版本
8484
- let rest;
8485
- if (!evntList.some(func => func(Object.assign({
8486
- $grid: $xeGrid,
8487
- $table: $xeTable,
8488
- $event: evnt
8489
- }, args)) === false)) {
8528
+ let rest = null;
8529
+ let isStop = false;
8530
+ for (let i = 0; i < evntList.length; i++) {
8531
+ const func = evntList[i];
8532
+ const fnRest = func(Object.assign({
8533
+ $grid: $xeGrid,
8534
+ $table: $xeTable,
8535
+ $event: evnt
8536
+ }, args));
8537
+ if (fnRest === false) {
8538
+ isStop = true;
8539
+ break;
8540
+ } else if (fnRest && fnRest.status === false) {
8541
+ rest = fnRest.result;
8542
+ isStop = true;
8543
+ break;
8544
+ }
8545
+ }
8546
+ if (!isStop) {
8490
8547
  if (next) {
8491
8548
  rest = next();
8492
8549
  }
@@ -8502,10 +8559,8 @@ var _default = exports.default = (0, _vue.defineComponent)({
8502
8559
  } = props;
8503
8560
  const {
8504
8561
  selectCheckboxMaps,
8505
- treeIndeterminateMaps
8506
- } = reactData;
8507
- const selectRowMaps = Object.assign({}, selectCheckboxMaps);
8508
- const halfRowMaps = Object.assign({}, treeIndeterminateMaps);
8562
+ treeIndeterminateRowMaps
8563
+ } = internalData;
8509
8564
  const treeOpts = computeTreeOpts.value;
8510
8565
  const {
8511
8566
  transform,
@@ -8526,10 +8581,13 @@ var _default = exports.default = (0, _vue.defineComponent)({
8526
8581
  }
8527
8582
  // 树结构
8528
8583
  if (treeConfig) {
8584
+ const {
8585
+ handleGetRowId
8586
+ } = (0, _util.createHandleGetRowId)($xeTable);
8529
8587
  const childRowMaps = {};
8530
8588
  const childRowList = [];
8531
8589
  _xeUtils.default.eachTree(afterTreeFullData, row => {
8532
- const rowid = (0, _util.getRowid)($xeTable, row);
8590
+ const rowid = handleGetRowId(row);
8533
8591
  const childList = row[transform ? mapChildrenField : childrenField];
8534
8592
  if (childList && childList.length && !childRowMaps[rowid]) {
8535
8593
  childRowMaps[rowid] = 1;
@@ -8546,30 +8604,30 @@ var _default = exports.default = (0, _vue.defineComponent)({
8546
8604
  let hLen = 0; // 半选
8547
8605
  let vLen = 0; // 有效行
8548
8606
  childList.forEach(checkMethod ? item => {
8549
- const childRowid = (0, _util.getRowid)($xeTable, item);
8550
- const isSelect = checkField ? _xeUtils.default.get(item, checkField) : selectRowMaps[childRowid];
8607
+ const childRowid = handleGetRowId(item);
8608
+ const isSelect = checkField ? _xeUtils.default.get(item, checkField) : selectCheckboxMaps[childRowid];
8551
8609
  if (checkMethod({
8552
8610
  row: item
8553
8611
  })) {
8554
8612
  if (isSelect) {
8555
8613
  sLen++;
8556
- } else if (halfRowMaps[childRowid]) {
8614
+ } else if (treeIndeterminateRowMaps[childRowid]) {
8557
8615
  hLen++;
8558
8616
  }
8559
8617
  vLen++;
8560
8618
  } else {
8561
8619
  if (isSelect) {
8562
8620
  sLen++;
8563
- } else if (halfRowMaps[childRowid]) {
8621
+ } else if (treeIndeterminateRowMaps[childRowid]) {
8564
8622
  hLen++;
8565
8623
  }
8566
8624
  }
8567
8625
  } : item => {
8568
- const childRowid = (0, _util.getRowid)($xeTable, item);
8569
- const isSelect = checkField ? _xeUtils.default.get(item, checkField) : selectRowMaps[childRowid];
8626
+ const childRowid = handleGetRowId(item);
8627
+ const isSelect = checkField ? _xeUtils.default.get(item, checkField) : selectCheckboxMaps[childRowid];
8570
8628
  if (isSelect) {
8571
8629
  sLen++;
8572
- } else if (halfRowMaps[childRowid]) {
8630
+ } else if (treeIndeterminateRowMaps[childRowid]) {
8573
8631
  hLen++;
8574
8632
  }
8575
8633
  vLen++;
@@ -8581,38 +8639,40 @@ var _default = exports.default = (0, _vue.defineComponent)({
8581
8639
  }
8582
8640
  if (isSelected) {
8583
8641
  if (!checkField) {
8584
- selectRowMaps[rowid] = row;
8642
+ selectCheckboxMaps[rowid] = row;
8585
8643
  }
8586
- if (halfRowMaps[rowid]) {
8587
- delete halfRowMaps[rowid];
8644
+ if (treeIndeterminateRowMaps[rowid]) {
8645
+ delete treeIndeterminateRowMaps[rowid];
8588
8646
  }
8589
8647
  } else {
8590
8648
  if (!checkField) {
8591
- if (selectRowMaps[rowid]) {
8592
- delete selectRowMaps[rowid];
8649
+ if (selectCheckboxMaps[rowid]) {
8650
+ delete selectCheckboxMaps[rowid];
8593
8651
  }
8594
8652
  }
8595
8653
  if (halfSelect) {
8596
- halfRowMaps[rowid] = row;
8654
+ treeIndeterminateRowMaps[rowid] = row;
8597
8655
  } else {
8598
- if (halfRowMaps[rowid]) {
8599
- delete halfRowMaps[rowid];
8656
+ if (treeIndeterminateRowMaps[rowid]) {
8657
+ delete treeIndeterminateRowMaps[rowid];
8600
8658
  }
8601
8659
  }
8602
8660
  }
8603
8661
  });
8604
8662
  }
8605
- reactData.selectCheckboxMaps = selectRowMaps;
8606
- reactData.treeIndeterminateMaps = halfRowMaps;
8663
+ reactData.updateCheckboxFlag++;
8607
8664
  },
8608
8665
  updateAllCheckboxStatus() {
8609
8666
  const {
8610
8667
  treeConfig
8611
8668
  } = props;
8612
8669
  const {
8670
+ afterFullData,
8671
+ afterTreeFullData,
8672
+ checkboxReserveRowMap,
8613
8673
  selectCheckboxMaps,
8614
- treeIndeterminateMaps
8615
- } = reactData;
8674
+ treeIndeterminateRowMaps
8675
+ } = internalData;
8616
8676
  const checkboxOpts = computeCheckboxOpts.value;
8617
8677
  const {
8618
8678
  checkField,
@@ -8620,39 +8680,37 @@ var _default = exports.default = (0, _vue.defineComponent)({
8620
8680
  showReserveStatus
8621
8681
  } = checkboxOpts;
8622
8682
  const {
8623
- afterFullData,
8624
- afterTreeFullData,
8625
- checkboxReserveRowMap
8626
- } = internalData;
8683
+ handleGetRowId
8684
+ } = (0, _util.createHandleGetRowId)($xeTable);
8627
8685
  let sLen = 0; // 已选
8628
8686
  let hLen = 0; // 半选
8629
8687
  let vLen = 0; // 有效行
8630
8688
  const rootList = treeConfig ? afterTreeFullData : afterFullData;
8631
8689
  rootList.forEach(checkMethod ? row => {
8632
- const childRowid = (0, _util.getRowid)($xeTable, row);
8690
+ const childRowid = handleGetRowId(row);
8633
8691
  const selected = checkField ? _xeUtils.default.get(row, checkField) : selectCheckboxMaps[childRowid];
8634
8692
  if (checkMethod({
8635
8693
  row
8636
8694
  })) {
8637
8695
  if (selected) {
8638
8696
  sLen++;
8639
- } else if (treeIndeterminateMaps[childRowid]) {
8697
+ } else if (treeIndeterminateRowMaps[childRowid]) {
8640
8698
  hLen++;
8641
8699
  }
8642
8700
  vLen++;
8643
8701
  } else {
8644
8702
  if (selected) {
8645
8703
  sLen++;
8646
- } else if (treeIndeterminateMaps[childRowid]) {
8704
+ } else if (treeIndeterminateRowMaps[childRowid]) {
8647
8705
  hLen++;
8648
8706
  }
8649
8707
  }
8650
8708
  } : row => {
8651
- const childRowid = (0, _util.getRowid)($xeTable, row);
8709
+ const childRowid = handleGetRowId(row);
8652
8710
  const selected = checkField ? _xeUtils.default.get(row, checkField) : selectCheckboxMaps[childRowid];
8653
8711
  if (selected) {
8654
8712
  sLen++;
8655
- } else if (treeIndeterminateMaps[childRowid]) {
8713
+ } else if (treeIndeterminateRowMaps[childRowid]) {
8656
8714
  hLen++;
8657
8715
  }
8658
8716
  vLen++;
@@ -8680,8 +8738,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
8680
8738
  } = props;
8681
8739
  const {
8682
8740
  selectCheckboxMaps
8683
- } = reactData;
8684
- const selectRowMaps = Object.assign({}, selectCheckboxMaps);
8741
+ } = internalData;
8685
8742
  const treeOpts = computeTreeOpts.value;
8686
8743
  const {
8687
8744
  transform,
@@ -8694,6 +8751,9 @@ var _default = exports.default = (0, _vue.defineComponent)({
8694
8751
  checkStrictly,
8695
8752
  checkMethod
8696
8753
  } = checkboxOpts;
8754
+ const {
8755
+ handleGetRowId
8756
+ } = (0, _util.createHandleGetRowId)($xeTable);
8697
8757
  // indeterminateField 仅支持读取
8698
8758
  const indeterminateField = checkboxOpts.indeterminateField || checkboxOpts.halfField;
8699
8759
  if (checkField) {
@@ -8713,35 +8773,34 @@ var _default = exports.default = (0, _vue.defineComponent)({
8713
8773
  }, {
8714
8774
  children: transform ? mapChildrenField : childrenField
8715
8775
  });
8716
- reactData.selectCheckboxMaps = selectRowMaps;
8776
+ reactData.updateCheckboxFlag++;
8717
8777
  return;
8718
- } else {
8719
- // 列表
8720
- rows.forEach(row => {
8721
- if (isForce || !checkMethod || checkMethod({
8722
- row
8723
- })) {
8724
- _xeUtils.default.set(row, checkField, checked);
8725
- handleCheckboxReserveRow(row, checked);
8726
- }
8727
- });
8728
8778
  }
8729
- reactData.selectCheckboxMaps = selectRowMaps;
8779
+ // 列表
8780
+ rows.forEach(row => {
8781
+ if (isForce || !checkMethod || checkMethod({
8782
+ row
8783
+ })) {
8784
+ _xeUtils.default.set(row, checkField, checked);
8785
+ handleCheckboxReserveRow(row, checked);
8786
+ }
8787
+ });
8788
+ reactData.updateCheckboxFlag++;
8730
8789
  return;
8731
8790
  }
8732
8791
  // 树结构
8733
8792
  if (treeConfig && !checkStrictly) {
8734
8793
  // 更新子节点状态
8735
8794
  _xeUtils.default.eachTree(rows, row => {
8736
- const rowid = (0, _util.getRowid)($xeTable, row);
8795
+ const rowid = handleGetRowId(row);
8737
8796
  if (isForce || !checkMethod || checkMethod({
8738
8797
  row
8739
8798
  })) {
8740
8799
  if (checked) {
8741
- selectRowMaps[rowid] = row;
8800
+ selectCheckboxMaps[rowid] = row;
8742
8801
  } else {
8743
- if (selectRowMaps[rowid]) {
8744
- delete selectRowMaps[rowid];
8802
+ if (selectCheckboxMaps[rowid]) {
8803
+ delete selectCheckboxMaps[rowid];
8745
8804
  }
8746
8805
  }
8747
8806
  handleCheckboxReserveRow(row, checked);
@@ -8749,28 +8808,28 @@ var _default = exports.default = (0, _vue.defineComponent)({
8749
8808
  }, {
8750
8809
  children: transform ? mapChildrenField : childrenField
8751
8810
  });
8752
- reactData.selectCheckboxMaps = selectRowMaps;
8811
+ reactData.updateCheckboxFlag++;
8753
8812
  return;
8754
8813
  }
8755
8814
  // 列表
8756
8815
  rows.forEach(row => {
8757
- const rowid = (0, _util.getRowid)($xeTable, row);
8816
+ const rowid = handleGetRowId(row);
8758
8817
  if (isForce || !checkMethod || checkMethod({
8759
8818
  row
8760
8819
  })) {
8761
8820
  if (checked) {
8762
- if (!selectRowMaps[rowid]) {
8763
- selectRowMaps[rowid] = row;
8821
+ if (!selectCheckboxMaps[rowid]) {
8822
+ selectCheckboxMaps[rowid] = row;
8764
8823
  }
8765
8824
  } else {
8766
- if (selectRowMaps[rowid]) {
8767
- delete selectRowMaps[rowid];
8825
+ if (selectCheckboxMaps[rowid]) {
8826
+ delete selectCheckboxMaps[rowid];
8768
8827
  }
8769
8828
  }
8770
8829
  handleCheckboxReserveRow(row, checked);
8830
+ reactData.updateCheckboxFlag++;
8771
8831
  }
8772
8832
  });
8773
- reactData.selectCheckboxMaps = selectRowMaps;
8774
8833
  },
8775
8834
  /**
8776
8835
  * 即将移除
@@ -8828,7 +8887,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
8828
8887
  return;
8829
8888
  }
8830
8889
  if (tooltipStore.column !== column || !tooltipStore.visible) {
8831
- handleTooltip(evnt, thEl, cellEl, null, params);
8890
+ handleTooltip(evnt, thEl, thEl.querySelector('.vxe-cell--title') || cellEl, params);
8832
8891
  }
8833
8892
  },
8834
8893
  /**
@@ -8866,7 +8925,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
8866
8925
  }
8867
8926
  }
8868
8927
  if (tooltipStore.column !== column || tooltipStore.row !== row || !tooltipStore.visible) {
8869
- handleTooltip(evnt, tdEl, tdEl.querySelector('.vxe-cell--wrapper'), null, params);
8928
+ handleTooltip(evnt, tdEl, tdEl.querySelector('.vxe-cell--label') || tdEl.querySelector('.vxe-cell--wrapper'), params);
8870
8929
  }
8871
8930
  },
8872
8931
  /**
@@ -8879,10 +8938,10 @@ var _default = exports.default = (0, _vue.defineComponent)({
8879
8938
  const {
8880
8939
  tooltipStore
8881
8940
  } = reactData;
8882
- const cell = evnt.currentTarget;
8941
+ const tdEl = evnt.currentTarget;
8883
8942
  handleTargetEnterEvent(tooltipStore.column !== column || !!tooltipStore.row);
8884
8943
  if (tooltipStore.column !== column || !tooltipStore.visible) {
8885
- handleTooltip(evnt, cell, cell.querySelector('.vxe-cell--wrapper') || cell.children[0], null, params);
8944
+ handleTooltip(evnt, tdEl, tdEl.querySelector('.vxe-cell--label') || tdEl.querySelector('.vxe-cell--wrapper'), params);
8886
8945
  }
8887
8946
  },
8888
8947
  handleTargetLeaveEvent() {
@@ -8908,6 +8967,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
8908
8967
  } = internalData;
8909
8968
  const sortOpts = computeSortOpts.value;
8910
8969
  const columnOpts = computeColumnOpts.value;
8970
+ const currentColumnOpts = computeCurrentColumnOpts.value;
8911
8971
  const {
8912
8972
  column
8913
8973
  } = params;
@@ -8916,7 +8976,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
8916
8976
  const triggerSort = (0, _dom.getEventTargetNode)(evnt, cell, 'vxe-cell--sort').flag;
8917
8977
  const triggerFilter = (0, _dom.getEventTargetNode)(evnt, cell, 'vxe-cell--filter').flag;
8918
8978
  if (sortOpts.trigger === 'cell' && !(triggerResizable || triggerSort || triggerFilter)) {
8919
- tablePrivateMethods.triggerSortEvent(evnt, column, getNextSortOrder(column));
8979
+ $xeTable.triggerSortEvent(evnt, column, getNextSortOrder(column));
8920
8980
  }
8921
8981
  dispatchEvent('header-cell-click', Object.assign({
8922
8982
  triggerResizable,
@@ -8924,8 +8984,8 @@ var _default = exports.default = (0, _vue.defineComponent)({
8924
8984
  triggerFilter,
8925
8985
  cell
8926
8986
  }, params), evnt);
8927
- if (columnOpts.isCurrent || props.highlightCurrentColumn) {
8928
- tablePrivateMethods.triggerCurrentColumnEvent(evnt, params);
8987
+ if ((columnOpts.isCurrent || props.highlightCurrentColumn) && (!currentColumnOpts.trigger || ['header', 'default'].includes(currentColumnOpts.trigger))) {
8988
+ $xeTable.triggerCurrentColumnEvent(evnt, params);
8929
8989
  }
8930
8990
  },
8931
8991
  triggerHeaderCellDblclickEvent(evnt, params) {
@@ -8941,6 +9001,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
8941
9001
  triggerCellClickEvent(evnt, params) {
8942
9002
  const {
8943
9003
  highlightCurrentRow,
9004
+ highlightCurrentColumn,
8944
9005
  editConfig
8945
9006
  } = props;
8946
9007
  const {
@@ -8957,6 +9018,8 @@ var _default = exports.default = (0, _vue.defineComponent)({
8957
9018
  const checkboxOpts = computeCheckboxOpts.value;
8958
9019
  const keyboardOpts = computeKeyboardOpts.value;
8959
9020
  const rowOpts = computeRowOpts.value;
9021
+ const columnOpts = computeColumnOpts.value;
9022
+ const currentColumnOpts = computeCurrentColumnOpts.value;
8960
9023
  const {
8961
9024
  actived,
8962
9025
  focused
@@ -8987,29 +9050,35 @@ var _default = exports.default = (0, _vue.defineComponent)({
8987
9050
  if (!triggerCheckbox && !triggerRadio) {
8988
9051
  // 如果是展开行
8989
9052
  if (!triggerExpandNode && (expandOpts.trigger === 'row' || isExpandType && expandOpts.trigger === 'cell')) {
8990
- tablePrivateMethods.triggerRowExpandEvent(evnt, params);
9053
+ $xeTable.triggerRowExpandEvent(evnt, params);
8991
9054
  }
8992
9055
  // 如果是树形表格
8993
9056
  if (treeOpts.trigger === 'row' || treeNode && treeOpts.trigger === 'cell') {
8994
- tablePrivateMethods.triggerTreeExpandEvent(evnt, params);
9057
+ $xeTable.triggerTreeExpandEvent(evnt, params);
8995
9058
  }
8996
9059
  }
8997
9060
  // 如果点击了树节点
8998
9061
  if (!triggerTreeNode) {
8999
9062
  if (!triggerExpandNode) {
9000
- // 如果是高亮行
9063
+ // 如果是当前行
9001
9064
  if (rowOpts.isCurrent || highlightCurrentRow) {
9002
9065
  if (!triggerCheckbox && !triggerRadio) {
9003
- tablePrivateMethods.triggerCurrentRowEvent(evnt, params);
9066
+ $xeTable.triggerCurrentRowEvent(evnt, params);
9067
+ }
9068
+ }
9069
+ // 如果是当前列
9070
+ if ((columnOpts.isCurrent || highlightCurrentColumn) && (!currentColumnOpts.trigger || ['cell', 'default'].includes(currentColumnOpts.trigger))) {
9071
+ if (!triggerCheckbox && !triggerRadio) {
9072
+ $xeTable.triggerCurrentColumnEvent(evnt, params);
9004
9073
  }
9005
9074
  }
9006
9075
  // 如果是单选框
9007
9076
  if (!triggerRadio && (radioOpts.trigger === 'row' || isRadioType && radioOpts.trigger === 'cell')) {
9008
- tablePrivateMethods.triggerRadioRowEvent(evnt, params);
9077
+ $xeTable.triggerRadioRowEvent(evnt, params);
9009
9078
  }
9010
9079
  // 如果是复选框
9011
9080
  if (!triggerCheckbox && (checkboxOpts.trigger === 'row' || isCheckboxType && checkboxOpts.trigger === 'cell')) {
9012
- tablePrivateMethods.handleToggleCheckRowEvent(evnt, params);
9081
+ $xeTable.handleToggleCheckRowEvent(evnt, params);
9013
9082
  }
9014
9083
  }
9015
9084
  // 如果设置了单元格选中功能,则不会使用点击事件去处理(只能支持双击模式)
@@ -9089,7 +9158,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
9089
9158
  handleToggleCheckRowEvent(evnt, params) {
9090
9159
  const {
9091
9160
  selectCheckboxMaps
9092
- } = reactData;
9161
+ } = internalData;
9093
9162
  const checkboxOpts = computeCheckboxOpts.value;
9094
9163
  const {
9095
9164
  checkField,
@@ -9108,20 +9177,20 @@ var _default = exports.default = (0, _vue.defineComponent)({
9108
9177
  checked = !selectCheckboxMaps[(0, _util.getRowid)($xeTable, row)];
9109
9178
  }
9110
9179
  if (evnt) {
9111
- tablePrivateMethods.triggerCheckRowEvent(evnt, params, checked);
9180
+ $xeTable.triggerCheckRowEvent(evnt, params, checked);
9112
9181
  } else {
9113
- tablePrivateMethods.handleBatchSelectRows([row], checked);
9114
- tablePrivateMethods.checkSelectionStatus();
9182
+ $xeTable.handleBatchSelectRows([row], checked);
9183
+ $xeTable.checkSelectionStatus();
9115
9184
  }
9116
9185
  },
9117
9186
  triggerCheckRowEvent(evnt, params, checked) {
9118
- const checkboxOpts = computeCheckboxOpts.value;
9119
9187
  const {
9120
9188
  row
9121
9189
  } = params;
9122
9190
  const {
9123
9191
  afterFullData
9124
9192
  } = internalData;
9193
+ const checkboxOpts = computeCheckboxOpts.value;
9125
9194
  const {
9126
9195
  checkMethod,
9127
9196
  trigger
@@ -9131,15 +9200,17 @@ var _default = exports.default = (0, _vue.defineComponent)({
9131
9200
  }
9132
9201
  evnt.stopPropagation();
9133
9202
  if (checkboxOpts.isShiftKey && evnt.shiftKey && !props.treeConfig) {
9134
- const checkboxRecords = tableMethods.getCheckboxRecords();
9203
+ const checkboxRecords = $xeTable.getCheckboxRecords();
9135
9204
  if (checkboxRecords.length) {
9136
9205
  const firstRow = checkboxRecords[0];
9137
- const _rowIndex = tableMethods.getVTRowIndex(row);
9138
- const _firstRowIndex = tableMethods.getVTRowIndex(firstRow);
9206
+ const _rowIndex = $xeTable.getVTRowIndex(row);
9207
+ const _firstRowIndex = $xeTable.getVTRowIndex(firstRow);
9139
9208
  if (_rowIndex !== _firstRowIndex) {
9140
- tableMethods.setAllCheckboxRow(false);
9209
+ $xeTable.setAllCheckboxRow(false);
9141
9210
  const rangeRows = _rowIndex < _firstRowIndex ? afterFullData.slice(_rowIndex, _firstRowIndex + 1) : afterFullData.slice(_firstRowIndex, _rowIndex + 1);
9142
- handleCheckedCheckboxRow(rangeRows, true, false);
9211
+ (0, _vue.nextTick)(() => {
9212
+ handleCheckedCheckboxRow(rangeRows, true, false);
9213
+ });
9143
9214
  dispatchEvent('checkbox-range-select', Object.assign({
9144
9215
  rangeRecords: rangeRows
9145
9216
  }, params), evnt);
@@ -9150,12 +9221,12 @@ var _default = exports.default = (0, _vue.defineComponent)({
9150
9221
  if (!checkMethod || checkMethod({
9151
9222
  row
9152
9223
  })) {
9153
- tablePrivateMethods.handleBatchSelectRows([row], checked);
9154
- tablePrivateMethods.checkSelectionStatus();
9224
+ $xeTable.handleBatchSelectRows([row], checked);
9225
+ $xeTable.checkSelectionStatus();
9155
9226
  dispatchEvent('checkbox-change', Object.assign({
9156
- records: tableMethods.getCheckboxRecords(),
9157
- reserves: tableMethods.getCheckboxReserveRecords(),
9158
- indeterminates: tableMethods.getCheckboxIndeterminateRecords(),
9227
+ records: () => $xeTable.getCheckboxRecords(),
9228
+ reserves: () => $xeTable.getCheckboxReserveRecords(),
9229
+ indeterminates: () => $xeTable.getCheckboxIndeterminateRecords(),
9159
9230
  checked
9160
9231
  }, params), evnt);
9161
9232
  }
@@ -9255,9 +9326,11 @@ var _default = exports.default = (0, _vue.defineComponent)({
9255
9326
  */
9256
9327
  triggerRowExpandEvent(evnt, params) {
9257
9328
  const {
9258
- rowExpandLazyLoadedMaps,
9259
9329
  expandColumn: column
9260
9330
  } = reactData;
9331
+ const {
9332
+ rowExpandLazyLoadedMaps
9333
+ } = internalData;
9261
9334
  const expandOpts = computeExpandOpts.value;
9262
9335
  const {
9263
9336
  row
@@ -9272,18 +9345,18 @@ var _default = exports.default = (0, _vue.defineComponent)({
9272
9345
  evnt.stopPropagation();
9273
9346
  const rowid = (0, _util.getRowid)($xeTable, row);
9274
9347
  if (!lazy || !rowExpandLazyLoadedMaps[rowid]) {
9275
- const expanded = !tableMethods.isRowExpandByRow(row);
9276
- const columnIndex = tableMethods.getColumnIndex(column);
9277
- const $columnIndex = tableMethods.getVMColumnIndex(column);
9278
- tableMethods.setRowExpand(row, expanded);
9348
+ const expanded = !$xeTable.isRowExpandByRow(row);
9349
+ const columnIndex = $xeTable.getColumnIndex(column);
9350
+ const $columnIndex = $xeTable.getVMColumnIndex(column);
9351
+ $xeTable.setRowExpand(row, expanded);
9279
9352
  dispatchEvent('toggle-row-expand', {
9280
9353
  expanded,
9281
9354
  column,
9282
9355
  columnIndex,
9283
9356
  $columnIndex,
9284
9357
  row,
9285
- rowIndex: tableMethods.getRowIndex(row),
9286
- $rowIndex: tableMethods.getVMRowIndex(row)
9358
+ rowIndex: $xeTable.getRowIndex(row),
9359
+ $rowIndex: $xeTable.getVMRowIndex(row)
9287
9360
  }, evnt);
9288
9361
  }
9289
9362
  },
@@ -9293,7 +9366,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
9293
9366
  triggerTreeExpandEvent(evnt, params) {
9294
9367
  const {
9295
9368
  treeExpandLazyLoadedMaps
9296
- } = reactData;
9369
+ } = internalData;
9297
9370
  const treeOpts = computeTreeOpts.value;
9298
9371
  const {
9299
9372
  row,
@@ -9309,10 +9382,10 @@ var _default = exports.default = (0, _vue.defineComponent)({
9309
9382
  evnt.stopPropagation();
9310
9383
  const rowid = (0, _util.getRowid)($xeTable, row);
9311
9384
  if (!lazy || !treeExpandLazyLoadedMaps[rowid]) {
9312
- const expanded = !tableMethods.isTreeExpandByRow(row);
9313
- const columnIndex = tableMethods.getColumnIndex(column);
9314
- const $columnIndex = tableMethods.getVMColumnIndex(column);
9315
- tableMethods.setTreeExpand(row, expanded);
9385
+ const expanded = !$xeTable.isTreeExpandByRow(row);
9386
+ const columnIndex = $xeTable.getColumnIndex(column);
9387
+ const $columnIndex = $xeTable.getVMColumnIndex(column);
9388
+ $xeTable.setTreeExpand(row, expanded);
9316
9389
  dispatchEvent('toggle-tree-expand', {
9317
9390
  expanded,
9318
9391
  column,
@@ -9522,6 +9595,8 @@ var _default = exports.default = (0, _vue.defineComponent)({
9522
9595
  } = props;
9523
9596
  const rowDragOpts = computeRowDragOpts.value;
9524
9597
  const {
9598
+ afterFullData,
9599
+ tableFullData,
9525
9600
  fullAllDataRowIdData
9526
9601
  } = internalData;
9527
9602
  const {
@@ -9539,10 +9614,6 @@ var _default = exports.default = (0, _vue.defineComponent)({
9539
9614
  parentField
9540
9615
  } = treeOpts;
9541
9616
  const childrenField = treeOpts.children || treeOpts.childrenField;
9542
- const {
9543
- afterFullData,
9544
- tableFullData
9545
- } = internalData;
9546
9617
  const dEndMethod = dragEndMethod || (dragConfig ? dragConfig.dragEndMethod : null);
9547
9618
  const dragOffsetIndex = prevDragPos === 'bottom' ? 1 : 0;
9548
9619
  const errRest = {
@@ -10503,11 +10574,12 @@ var _default = exports.default = (0, _vue.defineComponent)({
10503
10574
  } = _props.default;
10504
10575
  const {
10505
10576
  scrollXLoad,
10506
- scrollYLoad
10577
+ scrollYLoad,
10578
+ expandColumn
10507
10579
  } = reactData;
10508
10580
  const leftFixedWidth = computeLeftFixedWidth.value;
10509
10581
  const rightFixedWidth = computeRightFixedWidth.value;
10510
- if (!(scrollYLoad || leftFixedWidth || rightFixedWidth)) {
10582
+ if (!(leftFixedWidth || rightFixedWidth || expandColumn)) {
10511
10583
  return;
10512
10584
  }
10513
10585
  const {
@@ -10793,15 +10865,15 @@ var _default = exports.default = (0, _vue.defineComponent)({
10793
10865
  const {
10794
10866
  isAllOverflow,
10795
10867
  scrollYLoad,
10796
- expandColumn,
10797
- rowExpandedMaps
10868
+ expandColumn
10798
10869
  } = reactData;
10799
10870
  const {
10800
10871
  scrollYStore,
10801
10872
  elemStore,
10802
10873
  isResizeCellHeight,
10803
10874
  afterFullData,
10804
- fullAllDataRowIdData
10875
+ fullAllDataRowIdData,
10876
+ rowExpandedMaps
10805
10877
  } = internalData;
10806
10878
  const {
10807
10879
  startIndex
@@ -11153,6 +11225,9 @@ var _default = exports.default = (0, _vue.defineComponent)({
11153
11225
  ref: refRowExpandYSpaceElem
11154
11226
  })];
11155
11227
  if (expandColumn) {
11228
+ const {
11229
+ handleGetRowId
11230
+ } = (0, _util.createHandleGetRowId)($xeTable);
11156
11231
  tableRowExpandedList.forEach(row => {
11157
11232
  const expandOpts = computeExpandOpts.value;
11158
11233
  const {
@@ -11168,7 +11243,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
11168
11243
  seqMode
11169
11244
  } = treeOpts;
11170
11245
  const cellStyle = {};
11171
- const rowid = (0, _util.getRowid)($xeTable, row);
11246
+ const rowid = handleGetRowId(row);
11172
11247
  const rest = fullAllDataRowIdData[rowid];
11173
11248
  let rowLevel = 0;
11174
11249
  let seq = -1;