vxe-table 4.12.0-beta.20 → 4.12.0-beta.22

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 (46) hide show
  1. package/es/style.css +1 -1
  2. package/es/table/module/edit/hook.js +8 -10
  3. package/es/table/module/keyboard/hook.js +10 -0
  4. package/es/table/module/validator/hook.js +2 -2
  5. package/es/table/src/body.js +10 -10
  6. package/es/table/src/cell.js +15 -11
  7. package/es/table/src/table.js +260 -238
  8. package/es/table/src/util.js +2 -2
  9. package/es/ui/index.js +2 -1
  10. package/es/ui/src/log.js +1 -1
  11. package/lib/index.umd.js +142 -121
  12. package/lib/index.umd.min.js +1 -1
  13. package/lib/style.css +1 -1
  14. package/lib/table/module/edit/hook.js +10 -11
  15. package/lib/table/module/edit/hook.min.js +1 -1
  16. package/lib/table/module/keyboard/hook.js +10 -0
  17. package/lib/table/module/keyboard/hook.min.js +1 -1
  18. package/lib/table/module/validator/hook.js +3 -3
  19. package/lib/table/module/validator/hook.min.js +1 -1
  20. package/lib/table/src/body.js +16 -11
  21. package/lib/table/src/body.min.js +1 -1
  22. package/lib/table/src/cell.js +22 -13
  23. package/lib/table/src/cell.min.js +1 -1
  24. package/lib/table/src/table.js +338 -268
  25. package/lib/table/src/table.min.js +1 -1
  26. package/lib/table/src/util.js +2 -2
  27. package/lib/table/src/util.min.js +1 -1
  28. package/lib/ui/index.js +2 -1
  29. package/lib/ui/index.min.js +1 -1
  30. package/lib/ui/src/log.js +1 -1
  31. package/lib/ui/src/log.min.js +1 -1
  32. package/package.json +2 -2
  33. package/packages/table/module/edit/hook.ts +8 -10
  34. package/packages/table/module/keyboard/hook.ts +10 -0
  35. package/packages/table/module/validator/hook.ts +2 -2
  36. package/packages/table/src/body.ts +10 -10
  37. package/packages/table/src/cell.ts +15 -11
  38. package/packages/table/src/table.ts +262 -237
  39. package/packages/table/src/util.ts +2 -2
  40. package/packages/ui/index.ts +1 -0
  41. /package/es/{iconfont.1742353689933.ttf → iconfont.1742525007622.ttf} +0 -0
  42. /package/es/{iconfont.1742353689933.woff → iconfont.1742525007622.woff} +0 -0
  43. /package/es/{iconfont.1742353689933.woff2 → iconfont.1742525007622.woff2} +0 -0
  44. /package/lib/{iconfont.1742353689933.ttf → iconfont.1742525007622.ttf} +0 -0
  45. /package/lib/{iconfont.1742353689933.woff → iconfont.1742525007622.woff} +0 -0
  46. /package/lib/{iconfont.1742353689933.woff2 → iconfont.1742525007622.woff2} +0 -0
@@ -68,8 +68,6 @@ export default defineComponent({
68
68
  isAllSelected: false,
69
69
  // 复选框属性,有选中且非全选状态
70
70
  isIndeterminate: false,
71
- // 复选框属性,已选中的行集合
72
- selectCheckboxMaps: {},
73
71
  // 当前行
74
72
  currentRow: null,
75
73
  // 单选框属性,选中列
@@ -83,16 +81,6 @@ export default defineComponent({
83
81
  // 树节点列信息
84
82
  treeNodeColumn: null,
85
83
  hasFixedColumn: false,
86
- // 已展开的行集合
87
- rowExpandedMaps: {},
88
- // 懒加载中的展开行的集合
89
- rowExpandLazyLoadedMaps: {},
90
- // 已展开树节点集合
91
- treeExpandedMaps: {},
92
- // 懒加载中的树节点的集合
93
- treeExpandLazyLoadedMaps: {},
94
- // 树节点不确定状态的集合
95
- treeIndeterminateMaps: {},
96
84
  // 合并单元格的对象集
97
85
  mergeList: [],
98
86
  // 合并表尾数据的对象集
@@ -101,8 +89,6 @@ export default defineComponent({
101
89
  upDataFlag: 0,
102
90
  // 刷新列标识,当列的特定属性被改变时,触发表格刷新列
103
91
  reColumnFlag: 0,
104
- // 已标记的对象集
105
- pendingRowMaps: {},
106
92
  // 初始化标识
107
93
  initStore: {
108
94
  filter: false,
@@ -246,6 +232,10 @@ export default defineComponent({
246
232
  isHeader: false,
247
233
  isFooter: false
248
234
  },
235
+ rowExpandedFlag: 1,
236
+ treeExpandedFlag: 1,
237
+ updateCheckboxFlag: 1,
238
+ pendingRowFlag: 1,
249
239
  rowHeightStore: {
250
240
  default: 48,
251
241
  medium: 44,
@@ -345,6 +335,18 @@ export default defineComponent({
345
335
  fullColumnIdData: {},
346
336
  fullColumnFieldData: {},
347
337
  // prevDragRow: null,
338
+ // 已展开的行集合
339
+ rowExpandedMaps: {},
340
+ // 懒加载中的展开行的集合
341
+ rowExpandLazyLoadedMaps: {},
342
+ // 已展开树节点集合
343
+ treeExpandedMaps: {},
344
+ // 懒加载中的树节点的集合
345
+ treeExpandLazyLoadedMaps: {},
346
+ // 复选框属性,已选中的行集合
347
+ selectCheckboxMaps: {},
348
+ // 已标记的对象集
349
+ pendingRowMaps: {},
348
350
  inited: false,
349
351
  tooltipTimeout: null,
350
352
  initStatus: false,
@@ -469,13 +471,25 @@ export default defineComponent({
469
471
  return Object.assign({}, getConfig().table.currentColumnConfig, props.currentColumnConfig);
470
472
  });
471
473
  const computeCellOpts = computed(() => {
472
- return Object.assign({}, getConfig().table.cellConfig, props.cellConfig);
474
+ const cellOpts = Object.assign({}, getConfig().table.cellConfig, props.cellConfig);
475
+ if (cellOpts.height) {
476
+ cellOpts.height = XEUtils.toNumber(cellOpts.height);
477
+ }
478
+ return cellOpts;
473
479
  });
474
480
  const computeHeaderCellOpts = computed(() => {
475
- return Object.assign({}, getConfig().table.headerCellConfig, props.headerCellConfig);
481
+ const headerCellOpts = Object.assign({}, getConfig().table.headerCellConfig, props.headerCellConfig);
482
+ if (headerCellOpts.height) {
483
+ headerCellOpts.height = XEUtils.toNumber(headerCellOpts.height);
484
+ }
485
+ return headerCellOpts;
476
486
  });
477
487
  const computeFooterCellOpts = computed(() => {
478
- return Object.assign({}, getConfig().table.footerCellConfig, props.footerCellConfig);
488
+ const footerCellOpts = Object.assign({}, getConfig().table.footerCellConfig, props.footerCellConfig);
489
+ if (footerCellOpts.height) {
490
+ footerCellOpts.height = XEUtils.toNumber(footerCellOpts.height);
491
+ }
492
+ return footerCellOpts;
479
493
  });
480
494
  const computeRowOpts = computed(() => {
481
495
  return Object.assign({}, getConfig().table.rowConfig, props.rowConfig);
@@ -623,12 +637,14 @@ export default defineComponent({
623
637
  return Object.assign({}, getConfig().table.customConfig, props.customConfig);
624
638
  });
625
639
  const computeTableRowExpandedList = computed(() => {
626
- const { rowExpandedMaps, tableData, expandColumn } = reactData;
640
+ const { rowExpandedFlag, tableData, expandColumn } = reactData;
641
+ const { rowExpandedMaps } = internalData;
642
+ const { handleGetRowId } = createHandleGetRowId($xeTable);
627
643
  const expandList = [];
628
- if (expandColumn) {
644
+ if (expandColumn && rowExpandedFlag) {
629
645
  const rowKeys = {};
630
646
  tableData.forEach(row => {
631
- rowKeys[getRowid($xeTable, row)] = true;
647
+ rowKeys[handleGetRowId(row)] = true;
632
648
  });
633
649
  XEUtils.each(rowExpandedMaps, (row, rowid) => {
634
650
  if (rowKeys[rowid]) {
@@ -744,6 +760,7 @@ export default defineComponent({
744
760
  computeCurrentColumnOpts,
745
761
  computeScrollXThreshold,
746
762
  computeScrollYThreshold,
763
+ computeRowHeightMaps,
747
764
  computeDefaultRowHeight,
748
765
  computeCellOpts,
749
766
  computeHeaderCellOpts,
@@ -797,6 +814,7 @@ export default defineComponent({
797
814
  internalData,
798
815
  getRefMaps: () => refMaps,
799
816
  getComputeMaps: () => computeMaps,
817
+ xeGrid: $xeGrid,
800
818
  xegrid: $xeGrid
801
819
  };
802
820
  const eqCellValue = (row1, row2, field) => {
@@ -951,12 +969,13 @@ export default defineComponent({
951
969
  visibleSize = Math.ceil(clientHeight / defaultRowHeight) + 1;
952
970
  }
953
971
  else {
972
+ const { handleGetRowId } = createHandleGetRowId($xeTable);
954
973
  let leftIndex = 0;
955
974
  let rightIndex = afterFullData.length;
956
975
  while (leftIndex < rightIndex) {
957
976
  const rIndex = Math.floor((leftIndex + rightIndex) / 2);
958
977
  const row = afterFullData[rIndex];
959
- const rowid = getRowid($xeTable, row);
978
+ const rowid = handleGetRowId(row);
960
979
  const rowRest = fullAllDataRowIdData[rowid] || {};
961
980
  if (rowRest.oTop <= startTop) {
962
981
  leftIndex = rIndex + 1;
@@ -968,7 +987,7 @@ export default defineComponent({
968
987
  toVisibleIndex = Math.max(0, leftIndex < afterFullData.length ? leftIndex - 2 : 0);
969
988
  for (let rIndex = toVisibleIndex, rLen = afterFullData.length; rIndex < rLen; rIndex++) {
970
989
  const row = afterFullData[rIndex];
971
- const rowid = getRowid($xeTable, row);
990
+ const rowid = handleGetRowId(row);
972
991
  const rowRest = fullAllDataRowIdData[rowid] || {};
973
992
  visibleSize++;
974
993
  if (rowRest.oTop > endTop || visibleSize >= 100) {
@@ -1476,9 +1495,10 @@ export default defineComponent({
1476
1495
  const defaultRowHeight = computeDefaultRowHeight.value;
1477
1496
  const el = refElem.value;
1478
1497
  if (!isAllOverflow && scrollYLoad && el) {
1498
+ const { handleGetRowId } = createHandleGetRowId($xeTable);
1479
1499
  el.setAttribute('data-calc-row', 'Y');
1480
1500
  tableData.forEach(row => {
1481
- const rowid = getRowid($xeTable, row);
1501
+ const rowid = handleGetRowId(row);
1482
1502
  const rowRest = fullAllDataRowIdData[rowid];
1483
1503
  if (rowRest) {
1484
1504
  const reHeight = calcCellAutoHeight(rowRest, el);
@@ -1514,9 +1534,10 @@ export default defineComponent({
1514
1534
  const updateAfterListIndex = () => {
1515
1535
  const { treeConfig } = props;
1516
1536
  const { afterFullData, fullDataRowIdData, fullAllDataRowIdData } = internalData;
1537
+ const { handleGetRowId } = createHandleGetRowId($xeTable);
1517
1538
  const fullMaps = {};
1518
1539
  afterFullData.forEach((row, index) => {
1519
- const rowid = getRowid($xeTable, row);
1540
+ const rowid = handleGetRowId(row);
1520
1541
  const rowRest = fullAllDataRowIdData[rowid];
1521
1542
  const seq = index + 1;
1522
1543
  if (rowRest) {
@@ -1546,8 +1567,9 @@ export default defineComponent({
1546
1567
  const childrenField = treeOpts.children || treeOpts.childrenField;
1547
1568
  const fullMaps = {};
1548
1569
  if (treeConfig) {
1570
+ const { handleGetRowId } = createHandleGetRowId($xeTable);
1549
1571
  XEUtils.eachTree(afterTreeFullData, (row, index, items, path) => {
1550
- const rowid = getRowid($xeTable, row);
1572
+ const rowid = handleGetRowId(row);
1551
1573
  const rowRest = fullAllDataRowIdData[rowid];
1552
1574
  const seq = path.map((num, i) => i % 2 === 0 ? (Number(num) + 1) : '.').join('');
1553
1575
  if (rowRest) {
@@ -1574,16 +1596,16 @@ export default defineComponent({
1574
1596
  */
1575
1597
  const handleVirtualTreeToList = () => {
1576
1598
  const { treeConfig } = props;
1577
- const { treeExpandedMaps } = reactData;
1578
- const { fullAllDataRowIdData } = internalData;
1599
+ const { fullAllDataRowIdData, treeExpandedMaps } = internalData;
1579
1600
  const treeOpts = computeTreeOpts.value;
1580
1601
  const childrenField = treeOpts.children || treeOpts.childrenField;
1581
1602
  if (treeConfig && treeOpts.transform) {
1603
+ const { handleGetRowId } = createHandleGetRowId($xeTable);
1582
1604
  const fullData = [];
1583
1605
  const expandMaps = {};
1584
1606
  XEUtils.eachTree(internalData.afterTreeFullData, (row, index, items, path, parentRow) => {
1585
- const rowid = getRowid($xeTable, row);
1586
- const parentRowid = getRowid($xeTable, parentRow);
1607
+ const rowid = handleGetRowId(row);
1608
+ const parentRowid = handleGetRowId(parentRow);
1587
1609
  if (!parentRow || (expandMaps[parentRowid] && treeExpandedMaps[parentRowid])) {
1588
1610
  const rowRest = fullAllDataRowIdData[rowid];
1589
1611
  if (rowRest) {
@@ -1611,7 +1633,7 @@ export default defineComponent({
1611
1633
  const treeOpts = computeTreeOpts.value;
1612
1634
  const childrenField = treeOpts.children || treeOpts.childrenField;
1613
1635
  const { transform, rowField, parentField, mapChildrenField } = treeOpts;
1614
- const { remote: allRemoteFilter, filterMethod: allFilterMethod } = filterOpts;
1636
+ const { isEvery, remote: allRemoteFilter, filterMethod: allFilterMethod } = filterOpts;
1615
1637
  const { remote: allRemoteSort, sortMethod: allSortMethod, multiple: sortMultiple, chronological } = sortOpts;
1616
1638
  let tableData = [];
1617
1639
  let tableTree = [];
@@ -1670,7 +1692,7 @@ export default defineComponent({
1670
1692
  // 筛选虚拟树
1671
1693
  tableTree = XEUtils.searchTree(tableFullTreeData, handleFilter, {
1672
1694
  original: true,
1673
- isEvery: true,
1695
+ isEvery,
1674
1696
  children: mapChildrenField,
1675
1697
  mapChildren: childrenField
1676
1698
  });
@@ -1686,7 +1708,7 @@ export default defineComponent({
1686
1708
  // 还原虚拟树
1687
1709
  tableTree = XEUtils.searchTree(tableFullTreeData, () => true, {
1688
1710
  original: true,
1689
- isEvery: true,
1711
+ isEvery,
1690
1712
  children: mapChildrenField,
1691
1713
  mapChildren: childrenField
1692
1714
  });
@@ -1736,7 +1758,7 @@ export default defineComponent({
1736
1758
  // 还原虚拟树
1737
1759
  tableTree = XEUtils.searchTree(tableFullTreeData, () => true, {
1738
1760
  original: true,
1739
- isEvery: true,
1761
+ isEvery,
1740
1762
  children: treeOpts.mapChildrenField,
1741
1763
  mapChildren: childrenField
1742
1764
  });
@@ -2241,8 +2263,7 @@ export default defineComponent({
2241
2263
  };
2242
2264
  const handleCheckedAllCheckboxRow = (checked, isForce) => {
2243
2265
  const { treeConfig } = props;
2244
- const { selectCheckboxMaps } = reactData;
2245
- const { afterFullData, checkboxReserveRowMap } = internalData;
2266
+ const { afterFullData, checkboxReserveRowMap, selectCheckboxMaps } = internalData;
2246
2267
  const treeOpts = computeTreeOpts.value;
2247
2268
  const childrenField = treeOpts.children || treeOpts.childrenField;
2248
2269
  const checkboxOpts = computeCheckboxOpts.value;
@@ -2259,7 +2280,7 @@ export default defineComponent({
2259
2280
  const checkValFn = (row) => {
2260
2281
  if (isForce || (!checkMethod || checkMethod({ row }))) {
2261
2282
  if (checked) {
2262
- selectRowMaps[getRowid($xeTable, row)] = row;
2283
+ selectRowMaps[handleGetRowId(row)] = row;
2263
2284
  }
2264
2285
  XEUtils.set(row, checkField, checked);
2265
2286
  }
@@ -2358,10 +2379,10 @@ export default defineComponent({
2358
2379
  afterFullData.forEach((row) => handleCheckboxReserveRow(row, false));
2359
2380
  }
2360
2381
  }
2361
- reactData.selectCheckboxMaps = checkField ? {} : selectRowMaps;
2382
+ reactData.updateCheckboxFlag++;
2383
+ internalData.selectCheckboxMaps = checkField ? {} : selectRowMaps;
2362
2384
  reactData.isAllSelected = checked;
2363
2385
  reactData.isIndeterminate = false;
2364
- reactData.treeIndeterminateMaps = {};
2365
2386
  internalData.treeIndeterminateRowMaps = {};
2366
2387
  $xeTable.checkSelectionStatus();
2367
2388
  return nextTick();
@@ -2369,8 +2390,8 @@ export default defineComponent({
2369
2390
  // 还原展开、选中等相关状态
2370
2391
  const handleReserveStatus = () => {
2371
2392
  const { treeConfig } = props;
2372
- const { expandColumn, currentRow, selectCheckboxMaps, selectRadioRow, rowExpandedMaps, treeExpandedMaps } = reactData;
2373
- const { fullDataRowIdData, fullAllDataRowIdData, radioReserveRow } = internalData;
2393
+ const { expandColumn, currentRow, selectRadioRow } = reactData;
2394
+ const { fullDataRowIdData, fullAllDataRowIdData, radioReserveRow, selectCheckboxMaps, treeExpandedMaps, rowExpandedMaps } = internalData;
2374
2395
  const expandOpts = computeExpandOpts.value;
2375
2396
  const treeOpts = computeTreeOpts.value;
2376
2397
  const radioOpts = computeRadioOpts.value;
@@ -2387,7 +2408,8 @@ export default defineComponent({
2387
2408
  }
2388
2409
  }
2389
2410
  // 复选框
2390
- reactData.selectCheckboxMaps = getRecoverRowMaps(selectCheckboxMaps); // 刷新多选行状态
2411
+ internalData.selectCheckboxMaps = getRecoverRowMaps(selectCheckboxMaps); // 刷新多选行状态
2412
+ reactData.updateCheckboxFlag++;
2391
2413
  // 还原保留选中状态
2392
2414
  if (checkboxOpts.reserve) {
2393
2415
  handleCheckedCheckboxRow(handleReserveRow(internalData.checkboxReserveRowMap), true, true);
@@ -2396,13 +2418,15 @@ export default defineComponent({
2396
2418
  reactData.currentRow = null; // 刷新当前行状态
2397
2419
  }
2398
2420
  // 行展开
2399
- reactData.rowExpandedMaps = expandColumn ? getRecoverRowMaps(rowExpandedMaps) : {}; // 刷新行展开状态
2421
+ internalData.rowExpandedMaps = expandColumn ? getRecoverRowMaps(rowExpandedMaps) : {}; // 刷新行展开状态
2422
+ reactData.rowExpandedFlag++;
2400
2423
  // 还原保留状态
2401
2424
  if (expandColumn && expandOpts.reserve) {
2402
2425
  $xeTable.setRowExpand(handleReserveRow(internalData.rowExpandedReserveRowMap), true);
2403
2426
  }
2404
2427
  // 树展开
2405
- reactData.treeExpandedMaps = treeConfig ? getRecoverRowMaps(treeExpandedMaps) : {}; // 刷新树展开状态
2428
+ internalData.treeExpandedMaps = treeConfig ? getRecoverRowMaps(treeExpandedMaps) : {}; // 刷新树展开状态
2429
+ reactData.treeExpandedFlag++;
2406
2430
  if (treeConfig && treeOpts.reserve) {
2407
2431
  $xeTable.setTreeExpand(handleReserveRow(internalData.treeExpandedReserveRowMap), true);
2408
2432
  }
@@ -2418,7 +2442,7 @@ export default defineComponent({
2418
2442
  const { expandAll, expandRowKeys } = treeOpts;
2419
2443
  const childrenField = treeOpts.children || treeOpts.childrenField;
2420
2444
  if (expandAll) {
2421
- tableMethods.setAllTreeExpand(true);
2445
+ $xeTable.setAllTreeExpand(true);
2422
2446
  }
2423
2447
  else if (expandRowKeys) {
2424
2448
  const defExpandeds = [];
@@ -2429,7 +2453,7 @@ export default defineComponent({
2429
2453
  defExpandeds.push(matchObj.item);
2430
2454
  }
2431
2455
  });
2432
- tableMethods.setTreeExpand(defExpandeds, true);
2456
+ $xeTable.setTreeExpand(defExpandeds, true);
2433
2457
  }
2434
2458
  }
2435
2459
  };
@@ -2440,8 +2464,7 @@ export default defineComponent({
2440
2464
  const { checkStrictly } = checkboxOpts;
2441
2465
  return new Promise(resolve => {
2442
2466
  if (loadMethod) {
2443
- const { treeExpandLazyLoadedMaps } = reactData;
2444
- const { fullAllDataRowIdData } = internalData;
2467
+ const { fullAllDataRowIdData, treeExpandLazyLoadedMaps } = internalData;
2445
2468
  const rowid = getRowid($xeTable, row);
2446
2469
  const rowRest = fullAllDataRowIdData[rowid];
2447
2470
  treeExpandLazyLoadedMaps[rowid] = row;
@@ -2456,18 +2479,19 @@ export default defineComponent({
2456
2479
  childRecords = [];
2457
2480
  }
2458
2481
  if (childRecords) {
2459
- return tableMethods.loadTreeChildren(row, childRecords).then(childRows => {
2460
- const { treeExpandedMaps } = reactData;
2482
+ return $xeTable.loadTreeChildren(row, childRecords).then(childRows => {
2483
+ const { treeExpandedMaps } = internalData;
2461
2484
  if (childRows.length && !treeExpandedMaps[rowid]) {
2462
2485
  treeExpandedMaps[rowid] = row;
2463
2486
  }
2487
+ reactData.treeExpandedFlag++;
2464
2488
  // 如果当前节点已选中,则展开后子节点也被选中
2465
- if (!checkStrictly && tableMethods.isCheckedByCheckboxRow(row)) {
2489
+ if (!checkStrictly && $xeTable.isCheckedByCheckboxRow(row)) {
2466
2490
  handleCheckedCheckboxRow(childRows, true);
2467
2491
  }
2468
2492
  return nextTick().then(() => {
2469
2493
  if (transform) {
2470
- tablePrivateMethods.handleTableData();
2494
+ $xeTable.handleTableData();
2471
2495
  updateAfterDataIndex();
2472
2496
  return nextTick();
2473
2497
  }
@@ -2475,7 +2499,7 @@ export default defineComponent({
2475
2499
  });
2476
2500
  }
2477
2501
  }).catch(() => {
2478
- const { treeExpandLazyLoadedMaps } = reactData;
2502
+ const { treeExpandLazyLoadedMaps } = internalData;
2479
2503
  if (rowRest) {
2480
2504
  rowRest.treeLoaded = false;
2481
2505
  }
@@ -2483,7 +2507,8 @@ export default defineComponent({
2483
2507
  delete treeExpandLazyLoadedMaps[rowid];
2484
2508
  }
2485
2509
  }).finally(() => {
2486
- nextTick().then(() => tableMethods.recalculate()).then(() => resolve());
2510
+ reactData.treeExpandedFlag++;
2511
+ nextTick().then(() => $xeTable.recalculate()).then(() => resolve());
2487
2512
  });
2488
2513
  }
2489
2514
  else {
@@ -2509,29 +2534,27 @@ export default defineComponent({
2509
2534
  const expandOpts = computeExpandOpts.value;
2510
2535
  const { loadMethod } = expandOpts;
2511
2536
  if (loadMethod) {
2512
- const { fullAllDataRowIdData } = internalData;
2513
- const rExpandLazyLoadedMaps = Object.assign({}, reactData.rowExpandLazyLoadedMaps);
2537
+ const { fullAllDataRowIdData, rowExpandLazyLoadedMaps } = internalData;
2514
2538
  const rowid = getRowid($xeTable, row);
2515
2539
  const rowRest = fullAllDataRowIdData[rowid];
2516
- rExpandLazyLoadedMaps[rowid] = row;
2517
- reactData.rowExpandLazyLoadedMaps = rExpandLazyLoadedMaps;
2518
- loadMethod({ $table: $xeTable, row, rowIndex: tableMethods.getRowIndex(row), $rowIndex: tableMethods.getVMRowIndex(row) }).then(() => {
2519
- const rowTempExpandedMaps = Object.assign({}, reactData.rowExpandedMaps);
2540
+ rowExpandLazyLoadedMaps[rowid] = row;
2541
+ loadMethod({ $table: $xeTable, row, rowIndex: $xeTable.getRowIndex(row), $rowIndex: $xeTable.getVMRowIndex(row) }).then(() => {
2542
+ const { rowExpandedMaps } = internalData;
2520
2543
  if (rowRest) {
2521
2544
  rowRest.expandLoaded = true;
2522
2545
  }
2523
- rowTempExpandedMaps[rowid] = row;
2524
- reactData.rowExpandedMaps = rowTempExpandedMaps;
2546
+ rowExpandedMaps[rowid] = row;
2547
+ reactData.rowExpandedFlag++;
2525
2548
  }).catch(() => {
2526
2549
  if (rowRest) {
2527
2550
  rowRest.expandLoaded = false;
2528
2551
  }
2529
2552
  }).finally(() => {
2530
- const rExpandLazyLoadedMaps = Object.assign({}, reactData.rowExpandLazyLoadedMaps);
2531
- if (rExpandLazyLoadedMaps[rowid]) {
2532
- delete rExpandLazyLoadedMaps[rowid];
2553
+ const { rowExpandLazyLoadedMaps } = internalData;
2554
+ if (rowExpandLazyLoadedMaps[rowid]) {
2555
+ delete rowExpandLazyLoadedMaps[rowid];
2533
2556
  }
2534
- reactData.rowExpandLazyLoadedMaps = rExpandLazyLoadedMaps;
2557
+ reactData.rowExpandedFlag++;
2535
2558
  nextTick()
2536
2559
  .then(() => $xeTable.recalculate())
2537
2560
  .then(() => $xeTable.updateCellAreas())
@@ -2634,9 +2657,6 @@ export default defineComponent({
2634
2657
  calcCellWidth();
2635
2658
  autoCellWidth();
2636
2659
  updateStyle();
2637
- if (reFull) {
2638
- updateRowOffsetTop();
2639
- }
2640
2660
  updateRowExpandStyle();
2641
2661
  return computeScrollLoad().then(() => {
2642
2662
  if (reFull === true) {
@@ -3070,9 +3090,8 @@ export default defineComponent({
3070
3090
  * @returns
3071
3091
  */
3072
3092
  const handleBaseTreeExpand = (rows, expanded) => {
3073
- const { treeExpandedMaps, treeExpandLazyLoadedMaps, treeNodeColumn } = reactData;
3074
- const treeTempExpandedMaps = Object.assign({}, treeExpandedMaps);
3075
- const { fullAllDataRowIdData, tableFullData } = internalData;
3093
+ const { treeNodeColumn } = reactData;
3094
+ const { fullAllDataRowIdData, tableFullData, treeExpandedMaps, treeExpandLazyLoadedMaps } = internalData;
3076
3095
  const treeOpts = computeTreeOpts.value;
3077
3096
  const { reserve, lazy, accordion, toggleMethod } = treeOpts;
3078
3097
  const childrenField = treeOpts.children || treeOpts.childrenField;
@@ -3080,6 +3099,7 @@ export default defineComponent({
3080
3099
  const result = [];
3081
3100
  const columnIndex = tableMethods.getColumnIndex(treeNodeColumn);
3082
3101
  const $columnIndex = tableMethods.getVMColumnIndex(treeNodeColumn);
3102
+ const { handleGetRowId } = createHandleGetRowId($xeTable);
3083
3103
  let validRows = toggleMethod ? rows.filter((row) => toggleMethod({ $table: $xeTable, expanded, column: treeNodeColumn, columnIndex, $columnIndex, row })) : rows;
3084
3104
  if (accordion) {
3085
3105
  validRows = validRows.length ? [validRows[validRows.length - 1]] : [];
@@ -3087,17 +3107,17 @@ export default defineComponent({
3087
3107
  const matchObj = XEUtils.findTree(tableFullData, item => item === validRows[0], { children: childrenField });
3088
3108
  if (matchObj) {
3089
3109
  matchObj.items.forEach(item => {
3090
- const rowid = getRowid($xeTable, item);
3091
- if (treeTempExpandedMaps[rowid]) {
3092
- delete treeTempExpandedMaps[rowid];
3110
+ const rowid = handleGetRowId(item);
3111
+ if (treeExpandedMaps[rowid]) {
3112
+ delete treeExpandedMaps[rowid];
3093
3113
  }
3094
3114
  });
3095
3115
  }
3096
3116
  }
3097
3117
  if (expanded) {
3098
3118
  validRows.forEach((row) => {
3099
- const rowid = getRowid($xeTable, row);
3100
- if (!treeTempExpandedMaps[rowid]) {
3119
+ const rowid = handleGetRowId(row);
3120
+ if (!treeExpandedMaps[rowid]) {
3101
3121
  const rowRest = fullAllDataRowIdData[rowid];
3102
3122
  if (rowRest) {
3103
3123
  const isLoad = lazy && row[hasChildField] && !rowRest.treeLoaded && !treeExpandLazyLoadedMaps[rowid];
@@ -3107,7 +3127,7 @@ export default defineComponent({
3107
3127
  }
3108
3128
  else {
3109
3129
  if (row[childrenField] && row[childrenField].length) {
3110
- treeTempExpandedMaps[rowid] = row;
3130
+ treeExpandedMaps[rowid] = row;
3111
3131
  }
3112
3132
  }
3113
3133
  }
@@ -3116,16 +3136,16 @@ export default defineComponent({
3116
3136
  }
3117
3137
  else {
3118
3138
  validRows.forEach(item => {
3119
- const rowid = getRowid($xeTable, item);
3120
- if (treeTempExpandedMaps[rowid]) {
3121
- delete treeTempExpandedMaps[rowid];
3139
+ const rowid = handleGetRowId(item);
3140
+ if (treeExpandedMaps[rowid]) {
3141
+ delete treeExpandedMaps[rowid];
3122
3142
  }
3123
3143
  });
3124
3144
  }
3125
3145
  if (reserve) {
3126
3146
  validRows.forEach((row) => handleTreeExpandReserve(row, expanded));
3127
3147
  }
3128
- reactData.treeExpandedMaps = treeTempExpandedMaps;
3148
+ reactData.treeExpandedFlag++;
3129
3149
  return Promise.all(result).then(() => {
3130
3150
  return tableMethods.recalculate();
3131
3151
  });
@@ -3187,10 +3207,11 @@ export default defineComponent({
3187
3207
  }
3188
3208
  };
3189
3209
  const createGetRowCacheProp = (prop) => {
3210
+ const { handleGetRowId } = createHandleGetRowId($xeTable);
3190
3211
  return function (row) {
3191
3212
  const { fullAllDataRowIdData } = internalData;
3192
3213
  if (row) {
3193
- const rowid = getRowid($xeTable, row);
3214
+ const rowid = handleGetRowId(row);
3194
3215
  const rowRest = fullAllDataRowIdData[rowid];
3195
3216
  if (rowRest) {
3196
3217
  return rowRest[prop];
@@ -3341,7 +3362,7 @@ export default defineComponent({
3341
3362
  };
3342
3363
  const handleUpdateColResize = (evnt, params) => {
3343
3364
  $xeTable.analyColumnWidth();
3344
- $xeTable.recalculate(true).then(() => {
3365
+ $xeTable.recalculate().then(() => {
3345
3366
  $xeTable.saveCustomStore('update:width');
3346
3367
  $xeTable.updateCellAreas();
3347
3368
  $xeTable.dispatchEvent('column-resizable-change', params, evnt);
@@ -3352,7 +3373,7 @@ export default defineComponent({
3352
3373
  };
3353
3374
  const handleUpdateRowResize = (evnt, params) => {
3354
3375
  reactData.resizeHeightFlag++;
3355
- $xeTable.recalculate(true).then(() => {
3376
+ $xeTable.recalculate().then(() => {
3356
3377
  $xeTable.updateCellAreas();
3357
3378
  $xeTable.dispatchEvent('row-resizable-change', params, evnt);
3358
3379
  setTimeout(() => $xeTable.recalculate(true), 300);
@@ -3370,16 +3391,17 @@ export default defineComponent({
3370
3391
  }
3371
3392
  };
3372
3393
  const updateRowOffsetTop = () => {
3373
- const { expandColumn, rowExpandedMaps } = reactData;
3374
- const { afterFullData, fullAllDataRowIdData } = internalData;
3394
+ const { expandColumn } = reactData;
3395
+ const { afterFullData, fullAllDataRowIdData, rowExpandedMaps } = internalData;
3375
3396
  const expandOpts = computeExpandOpts.value;
3376
3397
  const rowOpts = computeRowOpts.value;
3377
3398
  const cellOpts = computeCellOpts.value;
3378
3399
  const defaultRowHeight = computeDefaultRowHeight.value;
3400
+ const { handleGetRowId } = createHandleGetRowId($xeTable);
3379
3401
  let offsetTop = 0;
3380
3402
  for (let rIndex = 0, rLen = afterFullData.length; rIndex < rLen; rIndex++) {
3381
3403
  const row = afterFullData[rIndex];
3382
- const rowid = getRowid($xeTable, row);
3404
+ const rowid = handleGetRowId(row);
3383
3405
  const rowRest = fullAllDataRowIdData[rowid] || {};
3384
3406
  rowRest.oTop = offsetTop;
3385
3407
  offsetTop += rowRest.resizeHeight || cellOpts.height || rowOpts.height || rowRest.height || defaultRowHeight;
@@ -3764,6 +3786,7 @@ export default defineComponent({
3764
3786
  const removeTempMaps = Object.assign({}, editStore.removeMaps);
3765
3787
  const treeOpts = computeTreeOpts.value;
3766
3788
  const { transform } = treeOpts;
3789
+ const { handleGetRowId } = createHandleGetRowId($xeTable);
3767
3790
  if (!keepSource) {
3768
3791
  if (process.env.NODE_ENV === 'development') {
3769
3792
  errLog('vxe.error.reqProp', ['keep-source']);
@@ -3782,7 +3805,7 @@ export default defineComponent({
3782
3805
  let reDelFlag = false;
3783
3806
  if (targetRows.length) {
3784
3807
  targetRows.forEach((item) => {
3785
- const rowid = getRowid($xeTable, item);
3808
+ const rowid = handleGetRowId(item);
3786
3809
  const rowRest = fullAllDataRowIdData[rowid];
3787
3810
  if (rowRest) {
3788
3811
  const row = rowRest.row;
@@ -4145,8 +4168,7 @@ export default defineComponent({
4145
4168
  */
4146
4169
  getCheckboxRecords(isFull) {
4147
4170
  const { treeConfig } = props;
4148
- const { selectCheckboxMaps } = reactData;
4149
- const { tableFullData, afterFullData, afterTreeFullData, tableFullTreeData, fullDataRowIdData, afterFullRowMaps } = internalData;
4171
+ const { tableFullData, afterFullData, afterTreeFullData, tableFullTreeData, fullDataRowIdData, afterFullRowMaps, selectCheckboxMaps } = internalData;
4150
4172
  const treeOpts = computeTreeOpts.value;
4151
4173
  const checkboxOpts = computeCheckboxOpts.value;
4152
4174
  const { transform, mapChildrenField } = treeOpts;
@@ -4476,12 +4498,13 @@ export default defineComponent({
4476
4498
  },
4477
4499
  getRowHeightConf(isFull) {
4478
4500
  const { fullAllDataRowIdData, afterFullData } = internalData;
4501
+ const { handleGetRowId } = createHandleGetRowId($xeTable);
4479
4502
  const rowOpts = computeRowOpts.value;
4480
4503
  const cellOpts = computeCellOpts.value;
4481
4504
  const defaultRowHeight = computeDefaultRowHeight.value;
4482
4505
  const rest = {};
4483
4506
  afterFullData.forEach(row => {
4484
- const rowid = getRowid($xeTable, row);
4507
+ const rowid = handleGetRowId(row);
4485
4508
  const rowRest = fullAllDataRowIdData[rowid];
4486
4509
  if (rowRest) {
4487
4510
  const resizeHeight = rowRest.resizeHeight;
@@ -4505,8 +4528,9 @@ export default defineComponent({
4505
4528
  rHeight = Math.floor(rHeight * bodyHeight);
4506
4529
  }
4507
4530
  if (rHeight) {
4531
+ const { handleGetRowId } = createHandleGetRowId($xeTable);
4508
4532
  rows.forEach(row => {
4509
- const rowid = XEUtils.isString(row) || XEUtils.isNumber(row) ? row : getRowid($xeTable, row);
4533
+ const rowid = XEUtils.isString(row) || XEUtils.isNumber(row) ? row : handleGetRowId(row);
4510
4534
  const rowRest = fullAllDataRowIdData[rowid];
4511
4535
  if (rowRest) {
4512
4536
  rowRest.resizeHeight = rHeight;
@@ -4655,12 +4679,11 @@ export default defineComponent({
4655
4679
  */
4656
4680
  getCheckboxIndeterminateRecords(isFull) {
4657
4681
  const { treeConfig } = props;
4658
- const { fullDataRowIdData } = internalData;
4659
- const { treeIndeterminateMaps } = reactData;
4682
+ const { fullDataRowIdData, treeIndeterminateRowMaps } = internalData;
4660
4683
  if (treeConfig) {
4661
4684
  const fullRest = [];
4662
4685
  const defRest = [];
4663
- XEUtils.each(treeIndeterminateMaps, (item, rowid) => {
4686
+ XEUtils.each(treeIndeterminateRowMaps, (item, rowid) => {
4664
4687
  if (item) {
4665
4688
  fullRest.push(item);
4666
4689
  if (fullDataRowIdData[rowid]) {
@@ -4701,17 +4724,18 @@ export default defineComponent({
4701
4724
  return handleCheckedCheckboxRow(rows, checked, true);
4702
4725
  },
4703
4726
  isCheckedByCheckboxRow(row) {
4704
- const { selectCheckboxMaps } = reactData;
4727
+ const { updateCheckboxFlag } = reactData;
4728
+ const { selectCheckboxMaps } = internalData;
4705
4729
  const checkboxOpts = computeCheckboxOpts.value;
4706
4730
  const { checkField } = checkboxOpts;
4707
4731
  if (checkField) {
4708
4732
  return XEUtils.get(row, checkField);
4709
4733
  }
4710
- return !!selectCheckboxMaps[getRowid($xeTable, row)];
4734
+ return !!updateCheckboxFlag && !!selectCheckboxMaps[getRowid($xeTable, row)];
4711
4735
  },
4712
4736
  isCheckedByCheckboxRowKey(rowid) {
4713
- const { selectCheckboxMaps } = reactData;
4714
- const { fullAllDataRowIdData } = internalData;
4737
+ const { updateCheckboxFlag } = reactData;
4738
+ const { fullAllDataRowIdData, selectCheckboxMaps } = internalData;
4715
4739
  const checkboxOpts = computeCheckboxOpts.value;
4716
4740
  const { checkField } = checkboxOpts;
4717
4741
  if (checkField) {
@@ -4721,21 +4745,21 @@ export default defineComponent({
4721
4745
  }
4722
4746
  return false;
4723
4747
  }
4724
- return !!selectCheckboxMaps[rowid];
4748
+ return !!updateCheckboxFlag && !!selectCheckboxMaps[rowid];
4725
4749
  },
4726
4750
  isIndeterminateByCheckboxRow(row) {
4727
- const { treeIndeterminateMaps } = reactData;
4728
- return !!treeIndeterminateMaps[getRowid($xeTable, row)] && !$xeTable.isCheckedByCheckboxRow(row);
4751
+ const { treeIndeterminateRowMaps } = internalData;
4752
+ return !!treeIndeterminateRowMaps[getRowid($xeTable, row)] && !$xeTable.isCheckedByCheckboxRow(row);
4729
4753
  },
4730
4754
  isIndeterminateByCheckboxRowKey(rowid) {
4731
- const { treeIndeterminateMaps } = reactData;
4732
- return !!treeIndeterminateMaps[rowid] && !$xeTable.isCheckedByCheckboxRowKey(rowid);
4755
+ const { treeIndeterminateRowMaps } = internalData;
4756
+ return !!treeIndeterminateRowMaps[rowid] && !$xeTable.isCheckedByCheckboxRowKey(rowid);
4733
4757
  },
4734
4758
  /**
4735
4759
  * 多选,切换某一行的选中状态
4736
4760
  */
4737
4761
  toggleCheckboxRow(row) {
4738
- const { selectCheckboxMaps } = reactData;
4762
+ const { selectCheckboxMaps } = internalData;
4739
4763
  const checkboxOpts = computeCheckboxOpts.value;
4740
4764
  const { checkField } = checkboxOpts;
4741
4765
  const checked = checkField ? !XEUtils.get(row, checkField) : !selectCheckboxMaps[getRowid($xeTable, row)];
@@ -4798,15 +4822,16 @@ export default defineComponent({
4798
4822
  const childrenField = treeOpts.children || treeOpts.childrenField;
4799
4823
  const reserveSelection = [];
4800
4824
  if (checkboxOpts.reserve) {
4825
+ const { handleGetRowId } = createHandleGetRowId($xeTable);
4801
4826
  const afterFullIdMaps = {};
4802
4827
  if (treeConfig) {
4803
4828
  XEUtils.eachTree(afterFullData, row => {
4804
- afterFullIdMaps[getRowid($xeTable, row)] = 1;
4829
+ afterFullIdMaps[handleGetRowId(row)] = 1;
4805
4830
  }, { children: childrenField });
4806
4831
  }
4807
4832
  else {
4808
4833
  afterFullData.forEach(row => {
4809
- afterFullIdMaps[getRowid($xeTable, row)] = 1;
4834
+ afterFullIdMaps[handleGetRowId(row)] = 1;
4810
4835
  });
4811
4836
  }
4812
4837
  XEUtils.each(checkboxReserveRowMap, (oldRow, oldRowid) => {
@@ -4869,8 +4894,9 @@ export default defineComponent({
4869
4894
  }
4870
4895
  reactData.isAllSelected = false;
4871
4896
  reactData.isIndeterminate = false;
4872
- reactData.selectCheckboxMaps = {};
4873
- reactData.treeIndeterminateMaps = {};
4897
+ internalData.selectCheckboxMaps = {};
4898
+ internalData.treeIndeterminateRowMaps = {};
4899
+ reactData.updateCheckboxFlag++;
4874
4900
  return nextTick();
4875
4901
  },
4876
4902
  /**
@@ -5001,59 +5027,60 @@ export default defineComponent({
5001
5027
  return nextTick();
5002
5028
  },
5003
5029
  setPendingRow(rows, status) {
5004
- const pendingMaps = Object.assign({}, reactData.pendingRowMaps);
5030
+ const { handleGetRowId } = createHandleGetRowId($xeTable);
5031
+ const { pendingRowMaps } = internalData;
5005
5032
  if (rows && !XEUtils.isArray(rows)) {
5006
5033
  rows = [rows];
5007
5034
  }
5008
5035
  if (status) {
5009
5036
  rows.forEach((row) => {
5010
- const rowid = getRowid($xeTable, row);
5011
- if (rowid && !pendingMaps[rowid]) {
5012
- pendingMaps[rowid] = row;
5037
+ const rowid = handleGetRowId(row);
5038
+ if (rowid && !pendingRowMaps[rowid]) {
5039
+ pendingRowMaps[rowid] = row;
5013
5040
  }
5014
5041
  });
5015
5042
  }
5016
5043
  else {
5017
5044
  rows.forEach((row) => {
5018
- const rowid = getRowid($xeTable, row);
5019
- if (rowid && pendingMaps[rowid]) {
5020
- delete pendingMaps[rowid];
5045
+ const rowid = handleGetRowId(row);
5046
+ if (rowid && pendingRowMaps[rowid]) {
5047
+ delete pendingRowMaps[rowid];
5021
5048
  }
5022
5049
  });
5023
5050
  }
5024
- reactData.pendingRowMaps = pendingMaps;
5051
+ reactData.pendingRowFlag++;
5025
5052
  return nextTick();
5026
5053
  },
5027
5054
  togglePendingRow(rows) {
5028
- const pendingMaps = Object.assign({}, reactData.pendingRowMaps);
5055
+ const { handleGetRowId } = createHandleGetRowId($xeTable);
5056
+ const { pendingRowMaps } = internalData;
5029
5057
  if (rows && !XEUtils.isArray(rows)) {
5030
5058
  rows = [rows];
5031
5059
  }
5032
5060
  rows.forEach((row) => {
5033
- const rowid = getRowid($xeTable, row);
5061
+ const rowid = handleGetRowId(row);
5034
5062
  if (rowid) {
5035
- if (pendingMaps[rowid]) {
5036
- delete pendingMaps[rowid];
5063
+ if (pendingRowMaps[rowid]) {
5064
+ delete pendingRowMaps[rowid];
5037
5065
  }
5038
5066
  else {
5039
- pendingMaps[rowid] = row;
5067
+ pendingRowMaps[rowid] = row;
5040
5068
  }
5041
5069
  }
5042
5070
  });
5043
- reactData.pendingRowMaps = pendingMaps;
5071
+ reactData.pendingRowFlag++;
5044
5072
  return nextTick();
5045
5073
  },
5046
5074
  hasPendingByRow(row) {
5047
5075
  return tableMethods.isPendingByRow(row);
5048
5076
  },
5049
5077
  isPendingByRow(row) {
5050
- const { pendingRowMaps } = reactData;
5078
+ const { pendingRowMaps } = internalData;
5051
5079
  const rowid = getRowid($xeTable, row);
5052
5080
  return !!pendingRowMaps[rowid];
5053
5081
  },
5054
5082
  getPendingRecords() {
5055
- const { pendingRowMaps } = reactData;
5056
- const { fullAllDataRowIdData } = internalData;
5083
+ const { fullAllDataRowIdData, pendingRowMaps } = internalData;
5057
5084
  const insertRecords = [];
5058
5085
  XEUtils.each(pendingRowMaps, (row, rowid) => {
5059
5086
  if (fullAllDataRowIdData[rowid]) {
@@ -5063,7 +5090,8 @@ export default defineComponent({
5063
5090
  return insertRecords;
5064
5091
  },
5065
5092
  clearPendingRow() {
5066
- reactData.pendingRowMaps = {};
5093
+ internalData.pendingRowMaps = {};
5094
+ reactData.pendingRowFlag++;
5067
5095
  return nextTick();
5068
5096
  },
5069
5097
  sort(sortConfs, sortOrder) {
@@ -5246,17 +5274,16 @@ export default defineComponent({
5246
5274
  return rowRest && !!rowRest.expandLoaded;
5247
5275
  },
5248
5276
  clearRowExpandLoaded(row) {
5249
- const rExpandLazyLoadedMaps = Object.assign({}, reactData.rowExpandLazyLoadedMaps);
5250
- const { fullAllDataRowIdData } = internalData;
5277
+ const { fullAllDataRowIdData, rowExpandLazyLoadedMaps } = internalData;
5251
5278
  const expandOpts = computeExpandOpts.value;
5252
5279
  const { lazy } = expandOpts;
5253
5280
  const rowid = getRowid($xeTable, row);
5254
5281
  const rowRest = fullAllDataRowIdData[rowid];
5255
5282
  if (lazy && rowRest) {
5256
5283
  rowRest.expandLoaded = false;
5257
- delete rExpandLazyLoadedMaps[rowid];
5284
+ delete rowExpandLazyLoadedMaps[rowid];
5258
5285
  }
5259
- reactData.rowExpandLazyLoadedMaps = rExpandLazyLoadedMaps;
5286
+ reactData.rowExpandedFlag++;
5260
5287
  return nextTick();
5261
5288
  },
5262
5289
  /**
@@ -5264,12 +5291,12 @@ export default defineComponent({
5264
5291
  * @param {Row} row 行对象
5265
5292
  */
5266
5293
  reloadRowExpand(row) {
5267
- const { rowExpandLazyLoadedMaps } = reactData;
5294
+ const { rowExpandLazyLoadedMaps } = internalData;
5268
5295
  const expandOpts = computeExpandOpts.value;
5269
5296
  const { lazy } = expandOpts;
5270
5297
  const rowid = getRowid($xeTable, row);
5271
5298
  if (lazy && !rowExpandLazyLoadedMaps[rowid]) {
5272
- tableMethods.clearRowExpandLoaded(row)
5299
+ $xeTable.clearRowExpandLoaded(row)
5273
5300
  .then(() => handleAsyncRowExpand(row));
5274
5301
  }
5275
5302
  return nextTick();
@@ -5279,13 +5306,13 @@ export default defineComponent({
5279
5306
  warnLog('vxe.error.delFunc', ['reloadExpandContent', 'reloadRowExpand']);
5280
5307
  }
5281
5308
  // 即将废弃
5282
- return tableMethods.reloadRowExpand(row);
5309
+ return $xeTable.reloadRowExpand(row);
5283
5310
  },
5284
5311
  /**
5285
5312
  * 切换展开行
5286
5313
  */
5287
5314
  toggleRowExpand(row) {
5288
- return tableMethods.setRowExpand(row, !tableMethods.isRowExpandByRow(row));
5315
+ return $xeTable.setRowExpand(row, !$xeTable.isRowExpandByRow(row));
5289
5316
  },
5290
5317
  /**
5291
5318
  * 设置所有行的展开与否
@@ -5314,9 +5341,9 @@ export default defineComponent({
5314
5341
  * @param {Boolean} expanded 是否展开
5315
5342
  */
5316
5343
  setRowExpand(rows, expanded) {
5317
- const { rowExpandedMaps, rowExpandLazyLoadedMaps, expandColumn } = reactData;
5318
- const { fullAllDataRowIdData } = internalData;
5319
- let rExpandedMaps = Object.assign({}, rowExpandedMaps);
5344
+ const { expandColumn } = reactData;
5345
+ let { fullAllDataRowIdData, rowExpandedMaps, rowExpandLazyLoadedMaps } = internalData;
5346
+ const { handleGetRowId } = createHandleGetRowId($xeTable);
5320
5347
  const expandOpts = computeExpandOpts.value;
5321
5348
  const { reserve, lazy, accordion, toggleMethod } = expandOpts;
5322
5349
  const lazyRests = [];
@@ -5328,30 +5355,31 @@ export default defineComponent({
5328
5355
  }
5329
5356
  if (accordion) {
5330
5357
  // 只能同时展开一个
5331
- rExpandedMaps = {};
5358
+ rowExpandedMaps = {};
5359
+ internalData.rowExpandedMaps = rowExpandedMaps;
5332
5360
  rows = rows.slice(rows.length - 1, rows.length);
5333
5361
  }
5334
5362
  const validRows = toggleMethod ? rows.filter((row) => toggleMethod({ $table: $xeTable, expanded, column: expandColumn, columnIndex, $columnIndex, row, rowIndex: tableMethods.getRowIndex(row), $rowIndex: tableMethods.getVMRowIndex(row) })) : rows;
5335
5363
  if (expanded) {
5336
5364
  validRows.forEach((row) => {
5337
- const rowid = getRowid($xeTable, row);
5338
- if (!rExpandedMaps[rowid]) {
5365
+ const rowid = handleGetRowId(row);
5366
+ if (!rowExpandedMaps[rowid]) {
5339
5367
  const rowRest = fullAllDataRowIdData[rowid];
5340
5368
  const isLoad = lazy && !rowRest.expandLoaded && !rowExpandLazyLoadedMaps[rowid];
5341
5369
  if (isLoad) {
5342
5370
  lazyRests.push(handleAsyncRowExpand(row));
5343
5371
  }
5344
5372
  else {
5345
- rExpandedMaps[rowid] = row;
5373
+ rowExpandedMaps[rowid] = row;
5346
5374
  }
5347
5375
  }
5348
5376
  });
5349
5377
  }
5350
5378
  else {
5351
5379
  validRows.forEach(item => {
5352
- const rowid = getRowid($xeTable, item);
5353
- if (rExpandedMaps[rowid]) {
5354
- delete rExpandedMaps[rowid];
5380
+ const rowid = handleGetRowId(item);
5381
+ if (rowExpandedMaps[rowid]) {
5382
+ delete rowExpandedMaps[rowid];
5355
5383
  }
5356
5384
  });
5357
5385
  }
@@ -5359,7 +5387,7 @@ export default defineComponent({
5359
5387
  validRows.forEach((row) => handleRowExpandReserve(row, expanded));
5360
5388
  }
5361
5389
  }
5362
- reactData.rowExpandedMaps = rExpandedMaps;
5390
+ reactData.rowExpandedFlag++;
5363
5391
  return Promise.all(lazyRests)
5364
5392
  .then(() => nextTick())
5365
5393
  .then(() => $xeTable.recalculate(true))
@@ -5375,9 +5403,10 @@ export default defineComponent({
5375
5403
  * @param {Row} row 行对象
5376
5404
  */
5377
5405
  isRowExpandByRow(row) {
5378
- const { rowExpandedMaps } = reactData;
5406
+ const { rowExpandedFlag } = reactData;
5407
+ const { rowExpandedMaps } = internalData;
5379
5408
  const rowid = getRowid($xeTable, row);
5380
- return !!rowExpandedMaps[rowid];
5409
+ return !!rowExpandedFlag && !!rowExpandedMaps[rowid];
5381
5410
  },
5382
5411
  isExpandByRow(row) {
5383
5412
  // 已废弃
@@ -5394,7 +5423,8 @@ export default defineComponent({
5394
5423
  const expandOpts = computeExpandOpts.value;
5395
5424
  const { reserve } = expandOpts;
5396
5425
  const expList = $xeTable.getRowExpandRecords();
5397
- reactData.rowExpandedMaps = {};
5426
+ internalData.rowExpandedMaps = {};
5427
+ reactData.rowExpandedFlag++;
5398
5428
  if (reserve) {
5399
5429
  tableFullData.forEach((row) => handleRowExpandReserve(row, false));
5400
5430
  }
@@ -5415,7 +5445,7 @@ export default defineComponent({
5415
5445
  },
5416
5446
  getRowExpandRecords() {
5417
5447
  const rest = [];
5418
- XEUtils.each(reactData.rowExpandedMaps, item => {
5448
+ XEUtils.each(internalData.rowExpandedMaps, item => {
5419
5449
  if (item) {
5420
5450
  rest.push(item);
5421
5451
  }
@@ -5424,7 +5454,7 @@ export default defineComponent({
5424
5454
  },
5425
5455
  getTreeExpandRecords() {
5426
5456
  const rest = [];
5427
- XEUtils.each(reactData.treeExpandedMaps, item => {
5457
+ XEUtils.each(internalData.treeExpandedMaps, item => {
5428
5458
  if (item) {
5429
5459
  rest.push(item);
5430
5460
  }
@@ -5441,12 +5471,10 @@ export default defineComponent({
5441
5471
  return rowRest && !!rowRest.treeLoaded;
5442
5472
  },
5443
5473
  clearTreeExpandLoaded(rows) {
5444
- const { fullAllDataRowIdData } = internalData;
5474
+ const { fullAllDataRowIdData, treeExpandedMaps } = internalData;
5445
5475
  const treeOpts = computeTreeOpts.value;
5446
5476
  const { transform } = treeOpts;
5447
- let tExpandedMaps = {};
5448
5477
  if (rows) {
5449
- tExpandedMaps = Object.assign({}, reactData.treeExpandedMaps);
5450
5478
  if (!XEUtils.isArray(rows)) {
5451
5479
  rows = [rows];
5452
5480
  }
@@ -5455,8 +5483,8 @@ export default defineComponent({
5455
5483
  const rowRest = fullAllDataRowIdData[rowid];
5456
5484
  if (rowRest) {
5457
5485
  rowRest.treeLoaded = false;
5458
- if (tExpandedMaps[rowid]) {
5459
- delete tExpandedMaps[rowid];
5486
+ if (treeExpandedMaps[rowid]) {
5487
+ delete treeExpandedMaps[rowid];
5460
5488
  }
5461
5489
  }
5462
5490
  });
@@ -5466,7 +5494,8 @@ export default defineComponent({
5466
5494
  rowRest.treeLoaded = false;
5467
5495
  });
5468
5496
  }
5469
- reactData.treeExpandedMaps = {};
5497
+ internalData.treeExpandedMaps = {};
5498
+ reactData.treeExpandedFlag++;
5470
5499
  if (transform) {
5471
5500
  handleVirtualTreeToList();
5472
5501
  return $xeTable.handleTableData();
@@ -5478,7 +5507,7 @@ export default defineComponent({
5478
5507
  * @param {Row} row 行对象
5479
5508
  */
5480
5509
  reloadTreeExpand(row) {
5481
- const { treeExpandLazyLoadedMaps } = reactData;
5510
+ const { treeExpandLazyLoadedMaps } = internalData;
5482
5511
  const treeOpts = computeTreeOpts.value;
5483
5512
  const hasChildField = treeOpts.hasChild || treeOpts.hasChildField;
5484
5513
  const { transform, lazy } = treeOpts;
@@ -5564,8 +5593,9 @@ export default defineComponent({
5564
5593
  * @param {Row} row 行对象
5565
5594
  */
5566
5595
  isTreeExpandByRow(row) {
5567
- const { treeExpandedMaps } = reactData;
5568
- return !!treeExpandedMaps[getRowid($xeTable, row)];
5596
+ const { treeExpandedFlag } = reactData;
5597
+ const { treeExpandedMaps } = internalData;
5598
+ return !!treeExpandedFlag && !!treeExpandedMaps[getRowid($xeTable, row)];
5569
5599
  },
5570
5600
  /**
5571
5601
  * 手动清空树形节点的展开状态,数据会恢复成未展开的状态
@@ -5575,19 +5605,20 @@ export default defineComponent({
5575
5605
  const treeOpts = computeTreeOpts.value;
5576
5606
  const childrenField = treeOpts.children || treeOpts.childrenField;
5577
5607
  const { transform, reserve } = treeOpts;
5578
- const expList = tableMethods.getTreeExpandRecords();
5579
- reactData.treeExpandedMaps = {};
5608
+ const expList = $xeTable.getTreeExpandRecords();
5609
+ internalData.treeExpandedMaps = {};
5610
+ reactData.treeExpandedFlag++;
5580
5611
  if (reserve) {
5581
5612
  XEUtils.eachTree(tableFullTreeData, row => handleTreeExpandReserve(row, false), { children: childrenField });
5582
5613
  }
5583
- return tablePrivateMethods.handleTableData().then(() => {
5614
+ return $xeTable.handleTableData().then(() => {
5584
5615
  if (transform) {
5585
5616
  handleVirtualTreeToList();
5586
- return tablePrivateMethods.handleTableData();
5617
+ return $xeTable.handleTableData();
5587
5618
  }
5588
5619
  }).then(() => {
5589
5620
  if (expList.length) {
5590
- return tableMethods.recalculate();
5621
+ return $xeTable.recalculate();
5591
5622
  }
5592
5623
  });
5593
5624
  },
@@ -6874,15 +6905,13 @@ export default defineComponent({
6874
6905
  */
6875
6906
  cacheRowMap() {
6876
6907
  const { treeConfig } = props;
6877
- const { treeExpandedMaps } = reactData;
6878
- const { fullAllDataRowIdData, tableFullData, tableFullTreeData } = internalData;
6908
+ const { fullAllDataRowIdData, tableFullData, tableFullTreeData, treeExpandedMaps } = internalData;
6879
6909
  const treeOpts = computeTreeOpts.value;
6880
6910
  const childrenField = treeOpts.children || treeOpts.childrenField;
6881
6911
  const hasChildField = treeOpts.hasChild || treeOpts.hasChildField;
6882
6912
  const { lazy } = treeOpts;
6883
6913
  const fullAllDataRowIdMaps = Object.assign({}, fullAllDataRowIdData); // 存在已删除数据
6884
6914
  const fullDataRowIdMaps = {};
6885
- const treeTempExpandedMaps = Object.assign({}, treeExpandedMaps);
6886
6915
  const { handleUpdateRowId } = createHandleUpdateRowId($xeTable);
6887
6916
  const handleRowCache = (row, index, items, currIndex, parentRow, rowid, level, seq) => {
6888
6917
  let rowRest = fullAllDataRowIdMaps[rowid];
@@ -6906,13 +6935,12 @@ export default defineComponent({
6906
6935
  XEUtils.eachTree(tableFullTreeData, (row, index, items, path, parentRow, nodes) => {
6907
6936
  const rowid = handleUpdateRowId(row);
6908
6937
  if (treeConfig && lazy) {
6909
- const treeExpRest = treeTempExpandedMaps[rowid];
6910
6938
  if (row[hasChildField] && row[childrenField] === undefined) {
6911
6939
  row[childrenField] = null;
6912
6940
  }
6913
- if (treeExpRest) {
6941
+ if (treeExpandedMaps[rowid]) {
6914
6942
  if (!row[childrenField] || !row[childrenField].length) {
6915
- delete treeTempExpandedMaps[rowid];
6943
+ delete treeExpandedMaps[rowid];
6916
6944
  }
6917
6945
  }
6918
6946
  }
@@ -6926,7 +6954,7 @@ export default defineComponent({
6926
6954
  }
6927
6955
  internalData.fullDataRowIdData = fullDataRowIdMaps;
6928
6956
  internalData.fullAllDataRowIdData = fullAllDataRowIdMaps;
6929
- reactData.treeExpandedMaps = treeTempExpandedMaps;
6957
+ reactData.treeExpandedFlag++;
6930
6958
  },
6931
6959
  cacheSourceMap(fullData) {
6932
6960
  const { treeConfig } = props;
@@ -7425,9 +7453,7 @@ export default defineComponent({
7425
7453
  },
7426
7454
  updateCheckboxStatus() {
7427
7455
  const { treeConfig } = props;
7428
- const { selectCheckboxMaps, treeIndeterminateMaps } = reactData;
7429
- const selectRowMaps = Object.assign({}, selectCheckboxMaps);
7430
- const halfRowMaps = Object.assign({}, treeIndeterminateMaps);
7456
+ const { selectCheckboxMaps, treeIndeterminateRowMaps } = internalData;
7431
7457
  const treeOpts = computeTreeOpts.value;
7432
7458
  const { transform, mapChildrenField } = treeOpts;
7433
7459
  const childrenField = treeOpts.children || treeOpts.childrenField;
@@ -7460,12 +7486,12 @@ export default defineComponent({
7460
7486
  childList.forEach(checkMethod
7461
7487
  ? (item) => {
7462
7488
  const childRowid = handleGetRowId(item);
7463
- const isSelect = checkField ? XEUtils.get(item, checkField) : selectRowMaps[childRowid];
7489
+ const isSelect = checkField ? XEUtils.get(item, checkField) : selectCheckboxMaps[childRowid];
7464
7490
  if (checkMethod({ row: item })) {
7465
7491
  if (isSelect) {
7466
7492
  sLen++;
7467
7493
  }
7468
- else if (halfRowMaps[childRowid]) {
7494
+ else if (treeIndeterminateRowMaps[childRowid]) {
7469
7495
  hLen++;
7470
7496
  }
7471
7497
  vLen++;
@@ -7474,18 +7500,18 @@ export default defineComponent({
7474
7500
  if (isSelect) {
7475
7501
  sLen++;
7476
7502
  }
7477
- else if (halfRowMaps[childRowid]) {
7503
+ else if (treeIndeterminateRowMaps[childRowid]) {
7478
7504
  hLen++;
7479
7505
  }
7480
7506
  }
7481
7507
  }
7482
7508
  : item => {
7483
7509
  const childRowid = handleGetRowId(item);
7484
- const isSelect = checkField ? XEUtils.get(item, checkField) : selectRowMaps[childRowid];
7510
+ const isSelect = checkField ? XEUtils.get(item, checkField) : selectCheckboxMaps[childRowid];
7485
7511
  if (isSelect) {
7486
7512
  sLen++;
7487
7513
  }
7488
- else if (halfRowMaps[childRowid]) {
7514
+ else if (treeIndeterminateRowMaps[childRowid]) {
7489
7515
  hLen++;
7490
7516
  }
7491
7517
  vLen++;
@@ -7497,38 +7523,36 @@ export default defineComponent({
7497
7523
  }
7498
7524
  if (isSelected) {
7499
7525
  if (!checkField) {
7500
- selectRowMaps[rowid] = row;
7526
+ selectCheckboxMaps[rowid] = row;
7501
7527
  }
7502
- if (halfRowMaps[rowid]) {
7503
- delete halfRowMaps[rowid];
7528
+ if (treeIndeterminateRowMaps[rowid]) {
7529
+ delete treeIndeterminateRowMaps[rowid];
7504
7530
  }
7505
7531
  }
7506
7532
  else {
7507
7533
  if (!checkField) {
7508
- if (selectRowMaps[rowid]) {
7509
- delete selectRowMaps[rowid];
7534
+ if (selectCheckboxMaps[rowid]) {
7535
+ delete selectCheckboxMaps[rowid];
7510
7536
  }
7511
7537
  }
7512
7538
  if (halfSelect) {
7513
- halfRowMaps[rowid] = row;
7539
+ treeIndeterminateRowMaps[rowid] = row;
7514
7540
  }
7515
7541
  else {
7516
- if (halfRowMaps[rowid]) {
7517
- delete halfRowMaps[rowid];
7542
+ if (treeIndeterminateRowMaps[rowid]) {
7543
+ delete treeIndeterminateRowMaps[rowid];
7518
7544
  }
7519
7545
  }
7520
7546
  }
7521
7547
  });
7522
7548
  }
7523
- reactData.selectCheckboxMaps = selectRowMaps;
7524
- reactData.treeIndeterminateMaps = halfRowMaps;
7549
+ reactData.updateCheckboxFlag++;
7525
7550
  },
7526
7551
  updateAllCheckboxStatus() {
7527
7552
  const { treeConfig } = props;
7528
- const { selectCheckboxMaps, treeIndeterminateMaps } = reactData;
7553
+ const { afterFullData, afterTreeFullData, checkboxReserveRowMap, selectCheckboxMaps, treeIndeterminateRowMaps } = internalData;
7529
7554
  const checkboxOpts = computeCheckboxOpts.value;
7530
7555
  const { checkField, checkMethod, showReserveStatus } = checkboxOpts;
7531
- const { afterFullData, afterTreeFullData, checkboxReserveRowMap } = internalData;
7532
7556
  const { handleGetRowId } = createHandleGetRowId($xeTable);
7533
7557
  let sLen = 0; // 已选
7534
7558
  let hLen = 0; // 半选
@@ -7542,7 +7566,7 @@ export default defineComponent({
7542
7566
  if (selected) {
7543
7567
  sLen++;
7544
7568
  }
7545
- else if (treeIndeterminateMaps[childRowid]) {
7569
+ else if (treeIndeterminateRowMaps[childRowid]) {
7546
7570
  hLen++;
7547
7571
  }
7548
7572
  vLen++;
@@ -7551,7 +7575,7 @@ export default defineComponent({
7551
7575
  if (selected) {
7552
7576
  sLen++;
7553
7577
  }
7554
- else if (treeIndeterminateMaps[childRowid]) {
7578
+ else if (treeIndeterminateRowMaps[childRowid]) {
7555
7579
  hLen++;
7556
7580
  }
7557
7581
  }
@@ -7562,7 +7586,7 @@ export default defineComponent({
7562
7586
  if (selected) {
7563
7587
  sLen++;
7564
7588
  }
7565
- else if (treeIndeterminateMaps[childRowid]) {
7589
+ else if (treeIndeterminateRowMaps[childRowid]) {
7566
7590
  hLen++;
7567
7591
  }
7568
7592
  vLen++;
@@ -7586,8 +7610,7 @@ export default defineComponent({
7586
7610
  */
7587
7611
  handleBatchSelectRows(rows, checked, isForce) {
7588
7612
  const { treeConfig } = props;
7589
- const { selectCheckboxMaps } = reactData;
7590
- const selectRowMaps = Object.assign({}, selectCheckboxMaps);
7613
+ const { selectCheckboxMaps } = internalData;
7591
7614
  const treeOpts = computeTreeOpts.value;
7592
7615
  const { transform, mapChildrenField } = treeOpts;
7593
7616
  const childrenField = treeOpts.children || treeOpts.childrenField;
@@ -7609,19 +7632,17 @@ export default defineComponent({
7609
7632
  handleCheckboxReserveRow(row, checked);
7610
7633
  }
7611
7634
  }, { children: transform ? mapChildrenField : childrenField });
7612
- reactData.selectCheckboxMaps = selectRowMaps;
7635
+ reactData.updateCheckboxFlag++;
7613
7636
  return;
7614
7637
  }
7615
- else {
7616
- // 列表
7617
- rows.forEach(row => {
7618
- if (isForce || (!checkMethod || checkMethod({ row }))) {
7619
- XEUtils.set(row, checkField, checked);
7620
- handleCheckboxReserveRow(row, checked);
7621
- }
7622
- });
7623
- }
7624
- reactData.selectCheckboxMaps = selectRowMaps;
7638
+ // 列表
7639
+ rows.forEach(row => {
7640
+ if (isForce || (!checkMethod || checkMethod({ row }))) {
7641
+ XEUtils.set(row, checkField, checked);
7642
+ handleCheckboxReserveRow(row, checked);
7643
+ }
7644
+ });
7645
+ reactData.updateCheckboxFlag++;
7625
7646
  return;
7626
7647
  }
7627
7648
  // 树结构
@@ -7631,17 +7652,17 @@ export default defineComponent({
7631
7652
  const rowid = handleGetRowId(row);
7632
7653
  if (isForce || (!checkMethod || checkMethod({ row }))) {
7633
7654
  if (checked) {
7634
- selectRowMaps[rowid] = row;
7655
+ selectCheckboxMaps[rowid] = row;
7635
7656
  }
7636
7657
  else {
7637
- if (selectRowMaps[rowid]) {
7638
- delete selectRowMaps[rowid];
7658
+ if (selectCheckboxMaps[rowid]) {
7659
+ delete selectCheckboxMaps[rowid];
7639
7660
  }
7640
7661
  }
7641
7662
  handleCheckboxReserveRow(row, checked);
7642
7663
  }
7643
7664
  }, { children: transform ? mapChildrenField : childrenField });
7644
- reactData.selectCheckboxMaps = selectRowMaps;
7665
+ reactData.updateCheckboxFlag++;
7645
7666
  return;
7646
7667
  }
7647
7668
  // 列表
@@ -7649,19 +7670,19 @@ export default defineComponent({
7649
7670
  const rowid = handleGetRowId(row);
7650
7671
  if (isForce || (!checkMethod || checkMethod({ row }))) {
7651
7672
  if (checked) {
7652
- if (!selectRowMaps[rowid]) {
7653
- selectRowMaps[rowid] = row;
7673
+ if (!selectCheckboxMaps[rowid]) {
7674
+ selectCheckboxMaps[rowid] = row;
7654
7675
  }
7655
7676
  }
7656
7677
  else {
7657
- if (selectRowMaps[rowid]) {
7658
- delete selectRowMaps[rowid];
7678
+ if (selectCheckboxMaps[rowid]) {
7679
+ delete selectCheckboxMaps[rowid];
7659
7680
  }
7660
7681
  }
7661
7682
  handleCheckboxReserveRow(row, checked);
7683
+ reactData.updateCheckboxFlag++;
7662
7684
  }
7663
7685
  });
7664
- reactData.selectCheckboxMaps = selectRowMaps;
7665
7686
  },
7666
7687
  /**
7667
7688
  * 即将移除
@@ -7932,7 +7953,7 @@ export default defineComponent({
7932
7953
  dispatchEvent('cell-dblclick', params, evnt);
7933
7954
  },
7934
7955
  handleToggleCheckRowEvent(evnt, params) {
7935
- const { selectCheckboxMaps } = reactData;
7956
+ const { selectCheckboxMaps } = internalData;
7936
7957
  const checkboxOpts = computeCheckboxOpts.value;
7937
7958
  const { checkField, trigger } = checkboxOpts;
7938
7959
  const { row } = params;
@@ -7947,11 +7968,11 @@ export default defineComponent({
7947
7968
  checked = !selectCheckboxMaps[getRowid($xeTable, row)];
7948
7969
  }
7949
7970
  if (evnt) {
7950
- tablePrivateMethods.triggerCheckRowEvent(evnt, params, checked);
7971
+ $xeTable.triggerCheckRowEvent(evnt, params, checked);
7951
7972
  }
7952
7973
  else {
7953
- tablePrivateMethods.handleBatchSelectRows([row], checked);
7954
- tablePrivateMethods.checkSelectionStatus();
7974
+ $xeTable.handleBatchSelectRows([row], checked);
7975
+ $xeTable.checkSelectionStatus();
7955
7976
  }
7956
7977
  },
7957
7978
  triggerCheckRowEvent(evnt, params, checked) {
@@ -8058,7 +8079,8 @@ export default defineComponent({
8058
8079
  * 展开行事件
8059
8080
  */
8060
8081
  triggerRowExpandEvent(evnt, params) {
8061
- const { rowExpandLazyLoadedMaps, expandColumn: column } = reactData;
8082
+ const { expandColumn: column } = reactData;
8083
+ const { rowExpandLazyLoadedMaps } = internalData;
8062
8084
  const expandOpts = computeExpandOpts.value;
8063
8085
  const { row } = params;
8064
8086
  const { lazy, trigger } = expandOpts;
@@ -8068,18 +8090,18 @@ export default defineComponent({
8068
8090
  evnt.stopPropagation();
8069
8091
  const rowid = getRowid($xeTable, row);
8070
8092
  if (!lazy || !rowExpandLazyLoadedMaps[rowid]) {
8071
- const expanded = !tableMethods.isRowExpandByRow(row);
8072
- const columnIndex = tableMethods.getColumnIndex(column);
8073
- const $columnIndex = tableMethods.getVMColumnIndex(column);
8074
- tableMethods.setRowExpand(row, expanded);
8093
+ const expanded = !$xeTable.isRowExpandByRow(row);
8094
+ const columnIndex = $xeTable.getColumnIndex(column);
8095
+ const $columnIndex = $xeTable.getVMColumnIndex(column);
8096
+ $xeTable.setRowExpand(row, expanded);
8075
8097
  dispatchEvent('toggle-row-expand', {
8076
8098
  expanded,
8077
8099
  column,
8078
8100
  columnIndex,
8079
8101
  $columnIndex,
8080
8102
  row,
8081
- rowIndex: tableMethods.getRowIndex(row),
8082
- $rowIndex: tableMethods.getVMRowIndex(row)
8103
+ rowIndex: $xeTable.getRowIndex(row),
8104
+ $rowIndex: $xeTable.getVMRowIndex(row)
8083
8105
  }, evnt);
8084
8106
  }
8085
8107
  },
@@ -8087,7 +8109,7 @@ export default defineComponent({
8087
8109
  * 展开树节点事件
8088
8110
  */
8089
8111
  triggerTreeExpandEvent(evnt, params) {
8090
- const { treeExpandLazyLoadedMaps } = reactData;
8112
+ const { treeExpandLazyLoadedMaps } = internalData;
8091
8113
  const treeOpts = computeTreeOpts.value;
8092
8114
  const { row, column } = params;
8093
8115
  const { lazy, trigger } = treeOpts;
@@ -8097,10 +8119,10 @@ export default defineComponent({
8097
8119
  evnt.stopPropagation();
8098
8120
  const rowid = getRowid($xeTable, row);
8099
8121
  if (!lazy || !treeExpandLazyLoadedMaps[rowid]) {
8100
- const expanded = !tableMethods.isTreeExpandByRow(row);
8101
- const columnIndex = tableMethods.getColumnIndex(column);
8102
- const $columnIndex = tableMethods.getVMColumnIndex(column);
8103
- tableMethods.setTreeExpand(row, expanded);
8122
+ const expanded = !$xeTable.isTreeExpandByRow(row);
8123
+ const columnIndex = $xeTable.getColumnIndex(column);
8124
+ const $columnIndex = $xeTable.getVMColumnIndex(column);
8125
+ $xeTable.setTreeExpand(row, expanded);
8104
8126
  dispatchEvent('toggle-tree-expand', { expanded, column, columnIndex, $columnIndex, row }, evnt);
8105
8127
  }
8106
8128
  },
@@ -8245,12 +8267,11 @@ export default defineComponent({
8245
8267
  handleRowDragSwapEvent(evnt, isSyncRow, dragRow, prevDragRow, prevDragPos, prevDragToChild) {
8246
8268
  const { treeConfig, dragConfig } = props;
8247
8269
  const rowDragOpts = computeRowDragOpts.value;
8248
- const { fullAllDataRowIdData } = internalData;
8270
+ const { afterFullData, tableFullData, fullAllDataRowIdData } = internalData;
8249
8271
  const { isPeerDrag, isCrossDrag, isSelfToChildDrag, dragEndMethod, dragToChildMethod } = rowDragOpts;
8250
8272
  const treeOpts = computeTreeOpts.value;
8251
8273
  const { transform, rowField, mapChildrenField, parentField } = treeOpts;
8252
8274
  const childrenField = treeOpts.children || treeOpts.childrenField;
8253
- const { afterFullData, tableFullData } = internalData;
8254
8275
  const dEndMethod = dragEndMethod || (dragConfig ? dragConfig.dragEndMethod : null);
8255
8276
  const dragOffsetIndex = prevDragPos === 'bottom' ? 1 : 0;
8256
8277
  const errRest = {
@@ -9349,8 +9370,8 @@ export default defineComponent({
9349
9370
  },
9350
9371
  // 更新纵向 Y 可视渲染上下剩余空间大小
9351
9372
  updateScrollYSpace() {
9352
- const { isAllOverflow, scrollYLoad, expandColumn, rowExpandedMaps } = reactData;
9353
- const { scrollYStore, elemStore, isResizeCellHeight, afterFullData, fullAllDataRowIdData } = internalData;
9373
+ const { isAllOverflow, scrollYLoad, expandColumn } = reactData;
9374
+ const { scrollYStore, elemStore, isResizeCellHeight, afterFullData, fullAllDataRowIdData, rowExpandedMaps } = internalData;
9354
9375
  const { startIndex } = scrollYStore;
9355
9376
  const expandOpts = computeExpandOpts.value;
9356
9377
  const rowOpts = computeRowOpts.value;
@@ -9695,6 +9716,7 @@ export default defineComponent({
9695
9716
  })
9696
9717
  ];
9697
9718
  if (expandColumn) {
9719
+ const { handleGetRowId } = createHandleGetRowId($xeTable);
9698
9720
  tableRowExpandedList.forEach((row) => {
9699
9721
  const expandOpts = computeExpandOpts.value;
9700
9722
  const { height: expandHeight, padding } = expandOpts;
@@ -9702,7 +9724,7 @@ export default defineComponent({
9702
9724
  const treeOpts = computeTreeOpts.value;
9703
9725
  const { transform, seqMode } = treeOpts;
9704
9726
  const cellStyle = {};
9705
- const rowid = getRowid($xeTable, row);
9727
+ const rowid = handleGetRowId(row);
9706
9728
  const rest = fullAllDataRowIdData[rowid];
9707
9729
  let rowLevel = 0;
9708
9730
  let seq = -1;