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

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