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
@@ -79,8 +79,6 @@ export default defineComponent({
79
79
  isAllSelected: false,
80
80
  // 复选框属性,有选中且非全选状态
81
81
  isIndeterminate: false,
82
- // 复选框属性,已选中的行集合
83
- selectCheckboxMaps: {},
84
82
  // 当前行
85
83
  currentRow: null,
86
84
  // 单选框属性,选中列
@@ -94,16 +92,6 @@ export default defineComponent({
94
92
  // 树节点列信息
95
93
  treeNodeColumn: null,
96
94
  hasFixedColumn: false,
97
- // 已展开的行集合
98
- rowExpandedMaps: {},
99
- // 懒加载中的展开行的集合
100
- rowExpandLazyLoadedMaps: {},
101
- // 已展开树节点集合
102
- treeExpandedMaps: {},
103
- // 懒加载中的树节点的集合
104
- treeExpandLazyLoadedMaps: {},
105
- // 树节点不确定状态的集合
106
- treeIndeterminateMaps: {},
107
95
  // 合并单元格的对象集
108
96
  mergeList: [],
109
97
  // 合并表尾数据的对象集
@@ -112,8 +100,6 @@ export default defineComponent({
112
100
  upDataFlag: 0,
113
101
  // 刷新列标识,当列的特定属性被改变时,触发表格刷新列
114
102
  reColumnFlag: 0,
115
- // 已标记的对象集
116
- pendingRowMaps: {},
117
103
  // 初始化标识
118
104
  initStore: {
119
105
  filter: false,
@@ -258,6 +244,11 @@ export default defineComponent({
258
244
  isFooter: false
259
245
  },
260
246
 
247
+ rowExpandedFlag: 1,
248
+ treeExpandedFlag: 1,
249
+ updateCheckboxFlag: 1,
250
+ pendingRowFlag: 1,
251
+
261
252
  rowHeightStore: {
262
253
  default: 48,
263
254
  medium: 44,
@@ -364,6 +355,19 @@ export default defineComponent({
364
355
  fullColumnFieldData: {},
365
356
  // prevDragRow: null,
366
357
 
358
+ // 已展开的行集合
359
+ rowExpandedMaps: {},
360
+ // 懒加载中的展开行的集合
361
+ rowExpandLazyLoadedMaps: {},
362
+ // 已展开树节点集合
363
+ treeExpandedMaps: {},
364
+ // 懒加载中的树节点的集合
365
+ treeExpandLazyLoadedMaps: {},
366
+ // 复选框属性,已选中的行集合
367
+ selectCheckboxMaps: {},
368
+ // 已标记的对象集
369
+ pendingRowMaps: {},
370
+
367
371
  inited: false,
368
372
  tooltipTimeout: null,
369
373
  initStatus: false,
@@ -512,15 +516,27 @@ export default defineComponent({
512
516
  })
513
517
 
514
518
  const computeCellOpts = computed(() => {
515
- return Object.assign({}, getConfig().table.cellConfig, props.cellConfig)
519
+ const cellOpts = Object.assign({}, getConfig().table.cellConfig, props.cellConfig)
520
+ if (cellOpts.height) {
521
+ cellOpts.height = XEUtils.toNumber(cellOpts.height)
522
+ }
523
+ return cellOpts
516
524
  })
517
525
 
518
526
  const computeHeaderCellOpts = computed(() => {
519
- return Object.assign({}, getConfig().table.headerCellConfig, props.headerCellConfig)
527
+ const headerCellOpts = Object.assign({}, getConfig().table.headerCellConfig, props.headerCellConfig)
528
+ if (headerCellOpts.height) {
529
+ headerCellOpts.height = XEUtils.toNumber(headerCellOpts.height)
530
+ }
531
+ return headerCellOpts
520
532
  })
521
533
 
522
534
  const computeFooterCellOpts = computed(() => {
523
- return Object.assign({}, getConfig().table.footerCellConfig, props.footerCellConfig)
535
+ const footerCellOpts = Object.assign({}, getConfig().table.footerCellConfig, props.footerCellConfig)
536
+ if (footerCellOpts.height) {
537
+ footerCellOpts.height = XEUtils.toNumber(footerCellOpts.height)
538
+ }
539
+ return footerCellOpts
524
540
  })
525
541
 
526
542
  const computeRowOpts = computed(() => {
@@ -706,12 +722,14 @@ export default defineComponent({
706
722
  })
707
723
 
708
724
  const computeTableRowExpandedList = computed(() => {
709
- const { rowExpandedMaps, tableData, expandColumn } = reactData
725
+ const { rowExpandedFlag, tableData, expandColumn } = reactData
726
+ const { rowExpandedMaps } = internalData
727
+ const { handleGetRowId } = createHandleGetRowId($xeTable)
710
728
  const expandList: any[] = []
711
- if (expandColumn) {
729
+ if (expandColumn && rowExpandedFlag) {
712
730
  const rowKeys: Record<string, boolean> = {}
713
731
  tableData.forEach(row => {
714
- rowKeys[getRowid($xeTable, row)] = true
732
+ rowKeys[handleGetRowId(row)] = true
715
733
  })
716
734
  XEUtils.each(rowExpandedMaps, (row, rowid) => {
717
735
  if (rowKeys[rowid]) {
@@ -835,6 +853,7 @@ export default defineComponent({
835
853
  computeCurrentColumnOpts,
836
854
  computeScrollXThreshold,
837
855
  computeScrollYThreshold,
856
+ computeRowHeightMaps,
838
857
  computeDefaultRowHeight,
839
858
  computeCellOpts,
840
859
  computeHeaderCellOpts,
@@ -1052,12 +1071,13 @@ export default defineComponent({
1052
1071
  toVisibleIndex = Math.floor(startTop / defaultRowHeight) - 1
1053
1072
  visibleSize = Math.ceil(clientHeight / defaultRowHeight) + 1
1054
1073
  } else {
1074
+ const { handleGetRowId } = createHandleGetRowId($xeTable)
1055
1075
  let leftIndex = 0
1056
1076
  let rightIndex = afterFullData.length
1057
1077
  while (leftIndex < rightIndex) {
1058
1078
  const rIndex = Math.floor((leftIndex + rightIndex) / 2)
1059
1079
  const row = afterFullData[rIndex]
1060
- const rowid = getRowid($xeTable, row)
1080
+ const rowid = handleGetRowId(row)
1061
1081
  const rowRest = fullAllDataRowIdData[rowid] || {}
1062
1082
  if (rowRest.oTop <= startTop) {
1063
1083
  leftIndex = rIndex + 1
@@ -1068,7 +1088,7 @@ export default defineComponent({
1068
1088
  toVisibleIndex = Math.max(0, leftIndex < afterFullData.length ? leftIndex - 2 : 0)
1069
1089
  for (let rIndex = toVisibleIndex, rLen = afterFullData.length; rIndex < rLen; rIndex++) {
1070
1090
  const row = afterFullData[rIndex]
1071
- const rowid = getRowid($xeTable, row)
1091
+ const rowid = handleGetRowId(row)
1072
1092
  const rowRest = fullAllDataRowIdData[rowid] || {}
1073
1093
  visibleSize++
1074
1094
  if (rowRest.oTop > endTop || visibleSize >= 100) {
@@ -1586,9 +1606,10 @@ export default defineComponent({
1586
1606
  const defaultRowHeight = computeDefaultRowHeight.value
1587
1607
  const el = refElem.value
1588
1608
  if (!isAllOverflow && scrollYLoad && el) {
1609
+ const { handleGetRowId } = createHandleGetRowId($xeTable)
1589
1610
  el.setAttribute('data-calc-row', 'Y')
1590
1611
  tableData.forEach(row => {
1591
- const rowid = getRowid($xeTable, row)
1612
+ const rowid = handleGetRowId(row)
1592
1613
  const rowRest = fullAllDataRowIdData[rowid]
1593
1614
  if (rowRest) {
1594
1615
  const reHeight = calcCellAutoHeight(rowRest, el)
@@ -1623,9 +1644,10 @@ export default defineComponent({
1623
1644
  const updateAfterListIndex = () => {
1624
1645
  const { treeConfig } = props
1625
1646
  const { afterFullData, fullDataRowIdData, fullAllDataRowIdData } = internalData
1647
+ const { handleGetRowId } = createHandleGetRowId($xeTable)
1626
1648
  const fullMaps: Record<string, any> = {}
1627
1649
  afterFullData.forEach((row, index) => {
1628
- const rowid = getRowid($xeTable, row)
1650
+ const rowid = handleGetRowId(row)
1629
1651
  const rowRest = fullAllDataRowIdData[rowid]
1630
1652
  const seq = index + 1
1631
1653
  if (rowRest) {
@@ -1655,8 +1677,9 @@ export default defineComponent({
1655
1677
  const childrenField = treeOpts.children || treeOpts.childrenField
1656
1678
  const fullMaps: Record<string, any> = {}
1657
1679
  if (treeConfig) {
1680
+ const { handleGetRowId } = createHandleGetRowId($xeTable)
1658
1681
  XEUtils.eachTree(afterTreeFullData, (row, index, items, path) => {
1659
- const rowid = getRowid($xeTable, row)
1682
+ const rowid = handleGetRowId(row)
1660
1683
  const rowRest = fullAllDataRowIdData[rowid]
1661
1684
  const seq = path.map((num, i) => i % 2 === 0 ? (Number(num) + 1) : '.').join('')
1662
1685
  if (rowRest) {
@@ -1682,18 +1705,18 @@ export default defineComponent({
1682
1705
  */
1683
1706
  const handleVirtualTreeToList = () => {
1684
1707
  const { treeConfig } = props
1685
- const { treeExpandedMaps } = reactData
1686
- const { fullAllDataRowIdData } = internalData
1708
+ const { fullAllDataRowIdData, treeExpandedMaps } = internalData
1687
1709
  const treeOpts = computeTreeOpts.value
1688
1710
  const childrenField = treeOpts.children || treeOpts.childrenField
1689
1711
  if (treeConfig && treeOpts.transform) {
1712
+ const { handleGetRowId } = createHandleGetRowId($xeTable)
1690
1713
  const fullData: any[] = []
1691
1714
  const expandMaps: {
1692
1715
  [key: string]: number
1693
1716
  } = {}
1694
1717
  XEUtils.eachTree(internalData.afterTreeFullData, (row, index, items, path, parentRow) => {
1695
- const rowid = getRowid($xeTable, row)
1696
- const parentRowid = getRowid($xeTable, parentRow)
1718
+ const rowid = handleGetRowId(row)
1719
+ const parentRowid = handleGetRowId(parentRow)
1697
1720
  if (!parentRow || (expandMaps[parentRowid] && treeExpandedMaps[parentRowid])) {
1698
1721
  const rowRest = fullAllDataRowIdData[rowid]
1699
1722
  if (rowRest) {
@@ -2372,8 +2395,7 @@ export default defineComponent({
2372
2395
 
2373
2396
  const handleCheckedAllCheckboxRow = (checked: boolean, isForce?: boolean) => {
2374
2397
  const { treeConfig } = props
2375
- const { selectCheckboxMaps } = reactData
2376
- const { afterFullData, checkboxReserveRowMap } = internalData
2398
+ const { afterFullData, checkboxReserveRowMap, selectCheckboxMaps } = internalData
2377
2399
  const treeOpts = computeTreeOpts.value
2378
2400
  const childrenField = treeOpts.children || treeOpts.childrenField
2379
2401
  const checkboxOpts = computeCheckboxOpts.value
@@ -2391,7 +2413,7 @@ export default defineComponent({
2391
2413
  const checkValFn = (row: any) => {
2392
2414
  if (isForce || (!checkMethod || checkMethod({ row }))) {
2393
2415
  if (checked) {
2394
- selectRowMaps[getRowid($xeTable, row)] = row
2416
+ selectRowMaps[handleGetRowId(row)] = row
2395
2417
  }
2396
2418
  XEUtils.set(row, checkField, checked)
2397
2419
  }
@@ -2483,11 +2505,11 @@ export default defineComponent({
2483
2505
  afterFullData.forEach((row) => handleCheckboxReserveRow(row, false))
2484
2506
  }
2485
2507
  }
2486
- reactData.selectCheckboxMaps = checkField ? {} : selectRowMaps
2508
+ reactData.updateCheckboxFlag++
2509
+ internalData.selectCheckboxMaps = checkField ? {} : selectRowMaps
2487
2510
 
2488
2511
  reactData.isAllSelected = checked
2489
2512
  reactData.isIndeterminate = false
2490
- reactData.treeIndeterminateMaps = {}
2491
2513
  internalData.treeIndeterminateRowMaps = {}
2492
2514
  $xeTable.checkSelectionStatus()
2493
2515
  return nextTick()
@@ -2496,8 +2518,8 @@ export default defineComponent({
2496
2518
  // 还原展开、选中等相关状态
2497
2519
  const handleReserveStatus = () => {
2498
2520
  const { treeConfig } = props
2499
- const { expandColumn, currentRow, selectCheckboxMaps, selectRadioRow, rowExpandedMaps, treeExpandedMaps } = reactData
2500
- const { fullDataRowIdData, fullAllDataRowIdData, radioReserveRow } = internalData
2521
+ const { expandColumn, currentRow, selectRadioRow } = reactData
2522
+ const { fullDataRowIdData, fullAllDataRowIdData, radioReserveRow, selectCheckboxMaps, treeExpandedMaps, rowExpandedMaps } = internalData
2501
2523
  const expandOpts = computeExpandOpts.value
2502
2524
  const treeOpts = computeTreeOpts.value
2503
2525
  const radioOpts = computeRadioOpts.value
@@ -2514,7 +2536,8 @@ export default defineComponent({
2514
2536
  }
2515
2537
  }
2516
2538
  // 复选框
2517
- reactData.selectCheckboxMaps = getRecoverRowMaps(selectCheckboxMaps) // 刷新多选行状态
2539
+ internalData.selectCheckboxMaps = getRecoverRowMaps(selectCheckboxMaps) // 刷新多选行状态
2540
+ reactData.updateCheckboxFlag++
2518
2541
  // 还原保留选中状态
2519
2542
  if (checkboxOpts.reserve) {
2520
2543
  handleCheckedCheckboxRow(handleReserveRow(internalData.checkboxReserveRowMap), true, true)
@@ -2523,13 +2546,15 @@ export default defineComponent({
2523
2546
  reactData.currentRow = null // 刷新当前行状态
2524
2547
  }
2525
2548
  // 行展开
2526
- reactData.rowExpandedMaps = expandColumn ? getRecoverRowMaps(rowExpandedMaps) : {} // 刷新行展开状态
2549
+ internalData.rowExpandedMaps = expandColumn ? getRecoverRowMaps(rowExpandedMaps) : {} // 刷新行展开状态
2550
+ reactData.rowExpandedFlag++
2527
2551
  // 还原保留状态
2528
2552
  if (expandColumn && expandOpts.reserve) {
2529
2553
  $xeTable.setRowExpand(handleReserveRow(internalData.rowExpandedReserveRowMap), true)
2530
2554
  }
2531
2555
  // 树展开
2532
- reactData.treeExpandedMaps = treeConfig ? getRecoverRowMaps(treeExpandedMaps) : {} // 刷新树展开状态
2556
+ internalData.treeExpandedMaps = treeConfig ? getRecoverRowMaps(treeExpandedMaps) : {} // 刷新树展开状态
2557
+ reactData.treeExpandedFlag++
2533
2558
  if (treeConfig && treeOpts.reserve) {
2534
2559
  $xeTable.setTreeExpand(handleReserveRow(internalData.treeExpandedReserveRowMap), true)
2535
2560
  }
@@ -2546,7 +2571,7 @@ export default defineComponent({
2546
2571
  const { expandAll, expandRowKeys } = treeOpts
2547
2572
  const childrenField = treeOpts.children || treeOpts.childrenField
2548
2573
  if (expandAll) {
2549
- tableMethods.setAllTreeExpand(true)
2574
+ $xeTable.setAllTreeExpand(true)
2550
2575
  } else if (expandRowKeys) {
2551
2576
  const defExpandeds: any[] = []
2552
2577
  const rowkey = getRowkey($xeTable)
@@ -2556,7 +2581,7 @@ export default defineComponent({
2556
2581
  defExpandeds.push(matchObj.item)
2557
2582
  }
2558
2583
  })
2559
- tableMethods.setTreeExpand(defExpandeds, true)
2584
+ $xeTable.setTreeExpand(defExpandeds, true)
2560
2585
  }
2561
2586
  }
2562
2587
  }
@@ -2568,8 +2593,7 @@ export default defineComponent({
2568
2593
  const { checkStrictly } = checkboxOpts
2569
2594
  return new Promise<void>(resolve => {
2570
2595
  if (loadMethod) {
2571
- const { treeExpandLazyLoadedMaps } = reactData
2572
- const { fullAllDataRowIdData } = internalData
2596
+ const { fullAllDataRowIdData, treeExpandLazyLoadedMaps } = internalData
2573
2597
  const rowid = getRowid($xeTable, row)
2574
2598
  const rowRest = fullAllDataRowIdData[rowid]
2575
2599
  treeExpandLazyLoadedMaps[rowid] = row
@@ -2586,18 +2610,19 @@ export default defineComponent({
2586
2610
  childRecords = []
2587
2611
  }
2588
2612
  if (childRecords) {
2589
- return tableMethods.loadTreeChildren(row, childRecords).then(childRows => {
2590
- const { treeExpandedMaps } = reactData
2613
+ return $xeTable.loadTreeChildren(row, childRecords).then(childRows => {
2614
+ const { treeExpandedMaps } = internalData
2591
2615
  if (childRows.length && !treeExpandedMaps[rowid]) {
2592
2616
  treeExpandedMaps[rowid] = row
2593
2617
  }
2618
+ reactData.treeExpandedFlag++
2594
2619
  // 如果当前节点已选中,则展开后子节点也被选中
2595
- if (!checkStrictly && tableMethods.isCheckedByCheckboxRow(row)) {
2620
+ if (!checkStrictly && $xeTable.isCheckedByCheckboxRow(row)) {
2596
2621
  handleCheckedCheckboxRow(childRows, true)
2597
2622
  }
2598
2623
  return nextTick().then(() => {
2599
2624
  if (transform) {
2600
- tablePrivateMethods.handleTableData()
2625
+ $xeTable.handleTableData()
2601
2626
  updateAfterDataIndex()
2602
2627
  return nextTick()
2603
2628
  }
@@ -2605,7 +2630,7 @@ export default defineComponent({
2605
2630
  })
2606
2631
  }
2607
2632
  }).catch(() => {
2608
- const { treeExpandLazyLoadedMaps } = reactData
2633
+ const { treeExpandLazyLoadedMaps } = internalData
2609
2634
  if (rowRest) {
2610
2635
  rowRest.treeLoaded = false
2611
2636
  }
@@ -2613,7 +2638,8 @@ export default defineComponent({
2613
2638
  delete treeExpandLazyLoadedMaps[rowid]
2614
2639
  }
2615
2640
  }).finally(() => {
2616
- nextTick().then(() => tableMethods.recalculate()).then(() => resolve())
2641
+ reactData.treeExpandedFlag++
2642
+ nextTick().then(() => $xeTable.recalculate()).then(() => resolve())
2617
2643
  })
2618
2644
  } else {
2619
2645
  resolve()
@@ -2639,29 +2665,27 @@ export default defineComponent({
2639
2665
  const expandOpts = computeExpandOpts.value
2640
2666
  const { loadMethod } = expandOpts
2641
2667
  if (loadMethod) {
2642
- const { fullAllDataRowIdData } = internalData
2643
- const rExpandLazyLoadedMaps = { ...reactData.rowExpandLazyLoadedMaps }
2668
+ const { fullAllDataRowIdData, rowExpandLazyLoadedMaps } = internalData
2644
2669
  const rowid = getRowid($xeTable, row)
2645
2670
  const rowRest = fullAllDataRowIdData[rowid]
2646
- rExpandLazyLoadedMaps[rowid] = row
2647
- reactData.rowExpandLazyLoadedMaps = rExpandLazyLoadedMaps
2648
- loadMethod({ $table: $xeTable, row, rowIndex: tableMethods.getRowIndex(row), $rowIndex: tableMethods.getVMRowIndex(row) }).then(() => {
2649
- const rowTempExpandedMaps = { ...reactData.rowExpandedMaps }
2671
+ rowExpandLazyLoadedMaps[rowid] = row
2672
+ loadMethod({ $table: $xeTable, row, rowIndex: $xeTable.getRowIndex(row), $rowIndex: $xeTable.getVMRowIndex(row) }).then(() => {
2673
+ const { rowExpandedMaps } = internalData
2650
2674
  if (rowRest) {
2651
2675
  rowRest.expandLoaded = true
2652
2676
  }
2653
- rowTempExpandedMaps[rowid] = row
2654
- reactData.rowExpandedMaps = rowTempExpandedMaps
2677
+ rowExpandedMaps[rowid] = row
2678
+ reactData.rowExpandedFlag++
2655
2679
  }).catch(() => {
2656
2680
  if (rowRest) {
2657
2681
  rowRest.expandLoaded = false
2658
2682
  }
2659
2683
  }).finally(() => {
2660
- const rExpandLazyLoadedMaps = { ...reactData.rowExpandLazyLoadedMaps }
2661
- if (rExpandLazyLoadedMaps[rowid]) {
2662
- delete rExpandLazyLoadedMaps[rowid]
2684
+ const { rowExpandLazyLoadedMaps } = internalData
2685
+ if (rowExpandLazyLoadedMaps[rowid]) {
2686
+ delete rowExpandLazyLoadedMaps[rowid]
2663
2687
  }
2664
- reactData.rowExpandLazyLoadedMaps = rExpandLazyLoadedMaps
2688
+ reactData.rowExpandedFlag++
2665
2689
  nextTick()
2666
2690
  .then(() => $xeTable.recalculate())
2667
2691
  .then(() => $xeTable.updateCellAreas())
@@ -2765,9 +2789,6 @@ export default defineComponent({
2765
2789
  calcCellWidth()
2766
2790
  autoCellWidth()
2767
2791
  updateStyle()
2768
- if (reFull) {
2769
- updateRowOffsetTop()
2770
- }
2771
2792
  updateRowExpandStyle()
2772
2793
  return computeScrollLoad().then(() => {
2773
2794
  if (reFull === true) {
@@ -3210,9 +3231,8 @@ export default defineComponent({
3210
3231
  * @returns
3211
3232
  */
3212
3233
  const handleBaseTreeExpand = (rows: any[], expanded: boolean) => {
3213
- const { treeExpandedMaps, treeExpandLazyLoadedMaps, treeNodeColumn } = reactData
3214
- const treeTempExpandedMaps = { ...treeExpandedMaps }
3215
- const { fullAllDataRowIdData, tableFullData } = internalData
3234
+ const { treeNodeColumn } = reactData
3235
+ const { fullAllDataRowIdData, tableFullData, treeExpandedMaps, treeExpandLazyLoadedMaps } = internalData
3216
3236
  const treeOpts = computeTreeOpts.value
3217
3237
  const { reserve, lazy, accordion, toggleMethod } = treeOpts
3218
3238
  const childrenField = treeOpts.children || treeOpts.childrenField
@@ -3220,6 +3240,7 @@ export default defineComponent({
3220
3240
  const result: any[] = []
3221
3241
  const columnIndex = tableMethods.getColumnIndex(treeNodeColumn)
3222
3242
  const $columnIndex = tableMethods.getVMColumnIndex(treeNodeColumn)
3243
+ const { handleGetRowId } = createHandleGetRowId($xeTable)
3223
3244
  let validRows = toggleMethod ? rows.filter((row: any) => toggleMethod({ $table: $xeTable, expanded, column: treeNodeColumn, columnIndex, $columnIndex, row })) : rows
3224
3245
  if (accordion) {
3225
3246
  validRows = validRows.length ? [validRows[validRows.length - 1]] : []
@@ -3227,17 +3248,17 @@ export default defineComponent({
3227
3248
  const matchObj = XEUtils.findTree(tableFullData, item => item === validRows[0], { children: childrenField })
3228
3249
  if (matchObj) {
3229
3250
  matchObj.items.forEach(item => {
3230
- const rowid = getRowid($xeTable, item)
3231
- if (treeTempExpandedMaps[rowid]) {
3232
- delete treeTempExpandedMaps[rowid]
3251
+ const rowid = handleGetRowId(item)
3252
+ if (treeExpandedMaps[rowid]) {
3253
+ delete treeExpandedMaps[rowid]
3233
3254
  }
3234
3255
  })
3235
3256
  }
3236
3257
  }
3237
3258
  if (expanded) {
3238
3259
  validRows.forEach((row: any) => {
3239
- const rowid = getRowid($xeTable, row)
3240
- if (!treeTempExpandedMaps[rowid]) {
3260
+ const rowid = handleGetRowId(row)
3261
+ if (!treeExpandedMaps[rowid]) {
3241
3262
  const rowRest = fullAllDataRowIdData[rowid]
3242
3263
  if (rowRest) {
3243
3264
  const isLoad = lazy && row[hasChildField] && !rowRest.treeLoaded && !treeExpandLazyLoadedMaps[rowid]
@@ -3246,7 +3267,7 @@ export default defineComponent({
3246
3267
  result.push(handleAsyncTreeExpandChilds(row))
3247
3268
  } else {
3248
3269
  if (row[childrenField] && row[childrenField].length) {
3249
- treeTempExpandedMaps[rowid] = row
3270
+ treeExpandedMaps[rowid] = row
3250
3271
  }
3251
3272
  }
3252
3273
  }
@@ -3254,16 +3275,16 @@ export default defineComponent({
3254
3275
  })
3255
3276
  } else {
3256
3277
  validRows.forEach(item => {
3257
- const rowid = getRowid($xeTable, item)
3258
- if (treeTempExpandedMaps[rowid]) {
3259
- delete treeTempExpandedMaps[rowid]
3278
+ const rowid = handleGetRowId(item)
3279
+ if (treeExpandedMaps[rowid]) {
3280
+ delete treeExpandedMaps[rowid]
3260
3281
  }
3261
3282
  })
3262
3283
  }
3263
3284
  if (reserve) {
3264
3285
  validRows.forEach((row: any) => handleTreeExpandReserve(row, expanded))
3265
3286
  }
3266
- reactData.treeExpandedMaps = treeTempExpandedMaps
3287
+ reactData.treeExpandedFlag++
3267
3288
  return Promise.all(result).then(() => {
3268
3289
  return tableMethods.recalculate()
3269
3290
  })
@@ -3329,10 +3350,11 @@ export default defineComponent({
3329
3350
  }
3330
3351
 
3331
3352
  const createGetRowCacheProp = (prop: 'seq' | 'index' | '_index' | '$index') => {
3353
+ const { handleGetRowId } = createHandleGetRowId($xeTable)
3332
3354
  return function (row: any) {
3333
3355
  const { fullAllDataRowIdData } = internalData
3334
3356
  if (row) {
3335
- const rowid = getRowid($xeTable, row)
3357
+ const rowid = handleGetRowId(row)
3336
3358
  const rowRest = fullAllDataRowIdData[rowid]
3337
3359
  if (rowRest) {
3338
3360
  return rowRest[prop]
@@ -3490,7 +3512,7 @@ export default defineComponent({
3490
3512
 
3491
3513
  const handleUpdateColResize = (evnt: MouseEvent, params: any) => {
3492
3514
  $xeTable.analyColumnWidth()
3493
- $xeTable.recalculate(true).then(() => {
3515
+ $xeTable.recalculate().then(() => {
3494
3516
  $xeTable.saveCustomStore('update:width')
3495
3517
  $xeTable.updateCellAreas()
3496
3518
  $xeTable.dispatchEvent('column-resizable-change', params, evnt)
@@ -3502,7 +3524,7 @@ export default defineComponent({
3502
3524
 
3503
3525
  const handleUpdateRowResize = (evnt: MouseEvent, params: any) => {
3504
3526
  reactData.resizeHeightFlag++
3505
- $xeTable.recalculate(true).then(() => {
3527
+ $xeTable.recalculate().then(() => {
3506
3528
  $xeTable.updateCellAreas()
3507
3529
  $xeTable.dispatchEvent('row-resizable-change', params, evnt)
3508
3530
  setTimeout(() => $xeTable.recalculate(true), 300)
@@ -3522,16 +3544,17 @@ export default defineComponent({
3522
3544
  }
3523
3545
 
3524
3546
  const updateRowOffsetTop = () => {
3525
- const { expandColumn, rowExpandedMaps } = reactData
3526
- const { afterFullData, fullAllDataRowIdData } = internalData
3547
+ const { expandColumn } = reactData
3548
+ const { afterFullData, fullAllDataRowIdData, rowExpandedMaps } = internalData
3527
3549
  const expandOpts = computeExpandOpts.value
3528
3550
  const rowOpts = computeRowOpts.value
3529
3551
  const cellOpts = computeCellOpts.value
3530
3552
  const defaultRowHeight = computeDefaultRowHeight.value
3553
+ const { handleGetRowId } = createHandleGetRowId($xeTable)
3531
3554
  let offsetTop = 0
3532
3555
  for (let rIndex = 0, rLen = afterFullData.length; rIndex < rLen; rIndex++) {
3533
3556
  const row = afterFullData[rIndex]
3534
- const rowid = getRowid($xeTable, row)
3557
+ const rowid = handleGetRowId(row)
3535
3558
  const rowRest = fullAllDataRowIdData[rowid] || {}
3536
3559
  rowRest.oTop = offsetTop
3537
3560
  offsetTop += rowRest.resizeHeight || cellOpts.height || rowOpts.height || rowRest.height || defaultRowHeight
@@ -3916,6 +3939,7 @@ export default defineComponent({
3916
3939
  const removeTempMaps = { ...editStore.removeMaps }
3917
3940
  const treeOpts = computeTreeOpts.value
3918
3941
  const { transform } = treeOpts
3942
+ const { handleGetRowId } = createHandleGetRowId($xeTable)
3919
3943
  if (!keepSource) {
3920
3944
  if (process.env.VUE_APP_VXE_ENV === 'development') {
3921
3945
  errLog('vxe.error.reqProp', ['keep-source'])
@@ -3933,7 +3957,7 @@ export default defineComponent({
3933
3957
  let reDelFlag = false
3934
3958
  if (targetRows.length) {
3935
3959
  targetRows.forEach((item: any) => {
3936
- const rowid = getRowid($xeTable, item)
3960
+ const rowid = handleGetRowId(item)
3937
3961
  const rowRest = fullAllDataRowIdData[rowid]
3938
3962
  if (rowRest) {
3939
3963
  const row = rowRest.row
@@ -4288,8 +4312,7 @@ export default defineComponent({
4288
4312
  */
4289
4313
  getCheckboxRecords (isFull) {
4290
4314
  const { treeConfig } = props
4291
- const { selectCheckboxMaps } = reactData
4292
- const { tableFullData, afterFullData, afterTreeFullData, tableFullTreeData, fullDataRowIdData, afterFullRowMaps } = internalData
4315
+ const { tableFullData, afterFullData, afterTreeFullData, tableFullTreeData, fullDataRowIdData, afterFullRowMaps, selectCheckboxMaps } = internalData
4293
4316
  const treeOpts = computeTreeOpts.value
4294
4317
  const checkboxOpts = computeCheckboxOpts.value
4295
4318
  const { transform, mapChildrenField } = treeOpts
@@ -4617,12 +4640,13 @@ export default defineComponent({
4617
4640
  },
4618
4641
  getRowHeightConf (isFull) {
4619
4642
  const { fullAllDataRowIdData, afterFullData } = internalData
4643
+ const { handleGetRowId } = createHandleGetRowId($xeTable)
4620
4644
  const rowOpts = computeRowOpts.value
4621
4645
  const cellOpts = computeCellOpts.value
4622
4646
  const defaultRowHeight = computeDefaultRowHeight.value
4623
4647
  const rest: Record<string, number> = {}
4624
4648
  afterFullData.forEach(row => {
4625
- const rowid = getRowid($xeTable, row)
4649
+ const rowid = handleGetRowId(row)
4626
4650
  const rowRest = fullAllDataRowIdData[rowid]
4627
4651
  if (rowRest) {
4628
4652
  const resizeHeight = rowRest.resizeHeight
@@ -4646,8 +4670,9 @@ export default defineComponent({
4646
4670
  rHeight = Math.floor(rHeight * bodyHeight)
4647
4671
  }
4648
4672
  if (rHeight) {
4673
+ const { handleGetRowId } = createHandleGetRowId($xeTable)
4649
4674
  rows.forEach(row => {
4650
- const rowid = XEUtils.isString(row) || XEUtils.isNumber(row) ? row : getRowid($xeTable, row)
4675
+ const rowid = XEUtils.isString(row) || XEUtils.isNumber(row) ? row : handleGetRowId(row)
4651
4676
  const rowRest = fullAllDataRowIdData[rowid]
4652
4677
  if (rowRest) {
4653
4678
  rowRest.resizeHeight = rHeight
@@ -4799,12 +4824,11 @@ export default defineComponent({
4799
4824
  */
4800
4825
  getCheckboxIndeterminateRecords (isFull) {
4801
4826
  const { treeConfig } = props
4802
- const { fullDataRowIdData } = internalData
4803
- const { treeIndeterminateMaps } = reactData
4827
+ const { fullDataRowIdData, treeIndeterminateRowMaps } = internalData
4804
4828
  if (treeConfig) {
4805
4829
  const fullRest: any[] = []
4806
4830
  const defRest: any[] = []
4807
- XEUtils.each(treeIndeterminateMaps, (item, rowid) => {
4831
+ XEUtils.each(treeIndeterminateRowMaps, (item, rowid) => {
4808
4832
  if (item) {
4809
4833
  fullRest.push(item)
4810
4834
  if (fullDataRowIdData[rowid]) {
@@ -4845,17 +4869,18 @@ export default defineComponent({
4845
4869
  return handleCheckedCheckboxRow(rows, checked, true)
4846
4870
  },
4847
4871
  isCheckedByCheckboxRow (row) {
4848
- const { selectCheckboxMaps } = reactData
4872
+ const { updateCheckboxFlag } = reactData
4873
+ const { selectCheckboxMaps } = internalData
4849
4874
  const checkboxOpts = computeCheckboxOpts.value
4850
4875
  const { checkField } = checkboxOpts
4851
4876
  if (checkField) {
4852
4877
  return XEUtils.get(row, checkField)
4853
4878
  }
4854
- return !!selectCheckboxMaps[getRowid($xeTable, row)]
4879
+ return !!updateCheckboxFlag && !!selectCheckboxMaps[getRowid($xeTable, row)]
4855
4880
  },
4856
4881
  isCheckedByCheckboxRowKey (rowid: any) {
4857
- const { selectCheckboxMaps } = reactData
4858
- const { fullAllDataRowIdData } = internalData
4882
+ const { updateCheckboxFlag } = reactData
4883
+ const { fullAllDataRowIdData, selectCheckboxMaps } = internalData
4859
4884
  const checkboxOpts = computeCheckboxOpts.value
4860
4885
  const { checkField } = checkboxOpts
4861
4886
  if (checkField) {
@@ -4865,21 +4890,21 @@ export default defineComponent({
4865
4890
  }
4866
4891
  return false
4867
4892
  }
4868
- return !!selectCheckboxMaps[rowid]
4893
+ return !!updateCheckboxFlag && !!selectCheckboxMaps[rowid]
4869
4894
  },
4870
4895
  isIndeterminateByCheckboxRow (row) {
4871
- const { treeIndeterminateMaps } = reactData
4872
- return !!treeIndeterminateMaps[getRowid($xeTable, row)] && !$xeTable.isCheckedByCheckboxRow(row)
4896
+ const { treeIndeterminateRowMaps } = internalData
4897
+ return !!treeIndeterminateRowMaps[getRowid($xeTable, row)] && !$xeTable.isCheckedByCheckboxRow(row)
4873
4898
  },
4874
4899
  isIndeterminateByCheckboxRowKey (rowid: any) {
4875
- const { treeIndeterminateMaps } = reactData
4876
- return !!treeIndeterminateMaps[rowid] && !$xeTable.isCheckedByCheckboxRowKey(rowid)
4900
+ const { treeIndeterminateRowMaps } = internalData
4901
+ return !!treeIndeterminateRowMaps[rowid] && !$xeTable.isCheckedByCheckboxRowKey(rowid)
4877
4902
  },
4878
4903
  /**
4879
4904
  * 多选,切换某一行的选中状态
4880
4905
  */
4881
4906
  toggleCheckboxRow (row) {
4882
- const { selectCheckboxMaps } = reactData
4907
+ const { selectCheckboxMaps } = internalData
4883
4908
  const checkboxOpts = computeCheckboxOpts.value
4884
4909
  const { checkField } = checkboxOpts
4885
4910
  const checked = checkField ? !XEUtils.get(row, checkField) : !selectCheckboxMaps[getRowid($xeTable, row)]
@@ -4940,14 +4965,15 @@ export default defineComponent({
4940
4965
  const childrenField = treeOpts.children || treeOpts.childrenField
4941
4966
  const reserveSelection: any[] = []
4942
4967
  if (checkboxOpts.reserve) {
4968
+ const { handleGetRowId } = createHandleGetRowId($xeTable)
4943
4969
  const afterFullIdMaps: { [key: string]: number } = {}
4944
4970
  if (treeConfig) {
4945
4971
  XEUtils.eachTree(afterFullData, row => {
4946
- afterFullIdMaps[getRowid($xeTable, row)] = 1
4972
+ afterFullIdMaps[handleGetRowId(row)] = 1
4947
4973
  }, { children: childrenField })
4948
4974
  } else {
4949
4975
  afterFullData.forEach(row => {
4950
- afterFullIdMaps[getRowid($xeTable, row)] = 1
4976
+ afterFullIdMaps[handleGetRowId(row)] = 1
4951
4977
  })
4952
4978
  }
4953
4979
  XEUtils.each(checkboxReserveRowMap, (oldRow, oldRowid) => {
@@ -5008,8 +5034,9 @@ export default defineComponent({
5008
5034
  }
5009
5035
  reactData.isAllSelected = false
5010
5036
  reactData.isIndeterminate = false
5011
- reactData.selectCheckboxMaps = {}
5012
- reactData.treeIndeterminateMaps = {}
5037
+ internalData.selectCheckboxMaps = {}
5038
+ internalData.treeIndeterminateRowMaps = {}
5039
+ reactData.updateCheckboxFlag++
5013
5040
  return nextTick()
5014
5041
  },
5015
5042
  /**
@@ -5139,57 +5166,58 @@ export default defineComponent({
5139
5166
  return nextTick()
5140
5167
  },
5141
5168
  setPendingRow (rows: any | any[], status: boolean) {
5142
- const pendingMaps = Object.assign({}, reactData.pendingRowMaps)
5169
+ const { handleGetRowId } = createHandleGetRowId($xeTable)
5170
+ const { pendingRowMaps } = internalData
5143
5171
  if (rows && !XEUtils.isArray(rows)) {
5144
5172
  rows = [rows]
5145
5173
  }
5146
5174
  if (status) {
5147
5175
  rows.forEach((row: any) => {
5148
- const rowid = getRowid($xeTable, row)
5149
- if (rowid && !pendingMaps[rowid]) {
5150
- pendingMaps[rowid] = row
5176
+ const rowid = handleGetRowId(row)
5177
+ if (rowid && !pendingRowMaps[rowid]) {
5178
+ pendingRowMaps[rowid] = row
5151
5179
  }
5152
5180
  })
5153
5181
  } else {
5154
5182
  rows.forEach((row: any) => {
5155
- const rowid = getRowid($xeTable, row)
5156
- if (rowid && pendingMaps[rowid]) {
5157
- delete pendingMaps[rowid]
5183
+ const rowid = handleGetRowId(row)
5184
+ if (rowid && pendingRowMaps[rowid]) {
5185
+ delete pendingRowMaps[rowid]
5158
5186
  }
5159
5187
  })
5160
5188
  }
5161
- reactData.pendingRowMaps = pendingMaps
5189
+ reactData.pendingRowFlag++
5162
5190
  return nextTick()
5163
5191
  },
5164
5192
  togglePendingRow (rows: any | any[]) {
5165
- const pendingMaps = Object.assign({}, reactData.pendingRowMaps)
5193
+ const { handleGetRowId } = createHandleGetRowId($xeTable)
5194
+ const { pendingRowMaps } = internalData
5166
5195
  if (rows && !XEUtils.isArray(rows)) {
5167
5196
  rows = [rows]
5168
5197
  }
5169
5198
  rows.forEach((row: any) => {
5170
- const rowid = getRowid($xeTable, row)
5199
+ const rowid = handleGetRowId(row)
5171
5200
  if (rowid) {
5172
- if (pendingMaps[rowid]) {
5173
- delete pendingMaps[rowid]
5201
+ if (pendingRowMaps[rowid]) {
5202
+ delete pendingRowMaps[rowid]
5174
5203
  } else {
5175
- pendingMaps[rowid] = row
5204
+ pendingRowMaps[rowid] = row
5176
5205
  }
5177
5206
  }
5178
5207
  })
5179
- reactData.pendingRowMaps = pendingMaps
5208
+ reactData.pendingRowFlag++
5180
5209
  return nextTick()
5181
5210
  },
5182
5211
  hasPendingByRow (row) {
5183
5212
  return tableMethods.isPendingByRow(row)
5184
5213
  },
5185
5214
  isPendingByRow (row) {
5186
- const { pendingRowMaps } = reactData
5215
+ const { pendingRowMaps } = internalData
5187
5216
  const rowid = getRowid($xeTable, row)
5188
5217
  return !!pendingRowMaps[rowid]
5189
5218
  },
5190
5219
  getPendingRecords () {
5191
- const { pendingRowMaps } = reactData
5192
- const { fullAllDataRowIdData } = internalData
5220
+ const { fullAllDataRowIdData, pendingRowMaps } = internalData
5193
5221
  const insertRecords: any[] = []
5194
5222
  XEUtils.each(pendingRowMaps, (row, rowid) => {
5195
5223
  if (fullAllDataRowIdData[rowid]) {
@@ -5199,7 +5227,8 @@ export default defineComponent({
5199
5227
  return insertRecords
5200
5228
  },
5201
5229
  clearPendingRow () {
5202
- reactData.pendingRowMaps = {}
5230
+ internalData.pendingRowMaps = {}
5231
+ reactData.pendingRowFlag++
5203
5232
  return nextTick()
5204
5233
  },
5205
5234
  sort (sortConfs: any, sortOrder?: VxeTablePropTypes.SortOrder) {
@@ -5381,17 +5410,16 @@ export default defineComponent({
5381
5410
  return rowRest && !!rowRest.expandLoaded
5382
5411
  },
5383
5412
  clearRowExpandLoaded (row) {
5384
- const rExpandLazyLoadedMaps = { ...reactData.rowExpandLazyLoadedMaps }
5385
- const { fullAllDataRowIdData } = internalData
5413
+ const { fullAllDataRowIdData, rowExpandLazyLoadedMaps } = internalData
5386
5414
  const expandOpts = computeExpandOpts.value
5387
5415
  const { lazy } = expandOpts
5388
5416
  const rowid = getRowid($xeTable, row)
5389
5417
  const rowRest = fullAllDataRowIdData[rowid]
5390
5418
  if (lazy && rowRest) {
5391
5419
  rowRest.expandLoaded = false
5392
- delete rExpandLazyLoadedMaps[rowid]
5420
+ delete rowExpandLazyLoadedMaps[rowid]
5393
5421
  }
5394
- reactData.rowExpandLazyLoadedMaps = rExpandLazyLoadedMaps
5422
+ reactData.rowExpandedFlag++
5395
5423
  return nextTick()
5396
5424
  },
5397
5425
  /**
@@ -5399,12 +5427,12 @@ export default defineComponent({
5399
5427
  * @param {Row} row 行对象
5400
5428
  */
5401
5429
  reloadRowExpand (row) {
5402
- const { rowExpandLazyLoadedMaps } = reactData
5430
+ const { rowExpandLazyLoadedMaps } = internalData
5403
5431
  const expandOpts = computeExpandOpts.value
5404
5432
  const { lazy } = expandOpts
5405
5433
  const rowid = getRowid($xeTable, row)
5406
5434
  if (lazy && !rowExpandLazyLoadedMaps[rowid]) {
5407
- tableMethods.clearRowExpandLoaded(row)
5435
+ $xeTable.clearRowExpandLoaded(row)
5408
5436
  .then(() => handleAsyncRowExpand(row))
5409
5437
  }
5410
5438
  return nextTick()
@@ -5414,13 +5442,13 @@ export default defineComponent({
5414
5442
  warnLog('vxe.error.delFunc', ['reloadExpandContent', 'reloadRowExpand'])
5415
5443
  }
5416
5444
  // 即将废弃
5417
- return tableMethods.reloadRowExpand(row)
5445
+ return $xeTable.reloadRowExpand(row)
5418
5446
  },
5419
5447
  /**
5420
5448
  * 切换展开行
5421
5449
  */
5422
5450
  toggleRowExpand (row) {
5423
- return tableMethods.setRowExpand(row, !tableMethods.isRowExpandByRow(row))
5451
+ return $xeTable.setRowExpand(row, !$xeTable.isRowExpandByRow(row))
5424
5452
  },
5425
5453
  /**
5426
5454
  * 设置所有行的展开与否
@@ -5448,9 +5476,9 @@ export default defineComponent({
5448
5476
  * @param {Boolean} expanded 是否展开
5449
5477
  */
5450
5478
  setRowExpand (rows, expanded) {
5451
- const { rowExpandedMaps, rowExpandLazyLoadedMaps, expandColumn } = reactData
5452
- const { fullAllDataRowIdData } = internalData
5453
- let rExpandedMaps = { ...rowExpandedMaps }
5479
+ const { expandColumn } = reactData
5480
+ let { fullAllDataRowIdData, rowExpandedMaps, rowExpandLazyLoadedMaps } = internalData
5481
+ const { handleGetRowId } = createHandleGetRowId($xeTable)
5454
5482
  const expandOpts = computeExpandOpts.value
5455
5483
  const { reserve, lazy, accordion, toggleMethod } = expandOpts
5456
5484
  const lazyRests: any[] = []
@@ -5462,28 +5490,29 @@ export default defineComponent({
5462
5490
  }
5463
5491
  if (accordion) {
5464
5492
  // 只能同时展开一个
5465
- rExpandedMaps = {}
5493
+ rowExpandedMaps = {}
5494
+ internalData.rowExpandedMaps = rowExpandedMaps
5466
5495
  rows = rows.slice(rows.length - 1, rows.length)
5467
5496
  }
5468
5497
  const validRows: any[] = toggleMethod ? rows.filter((row: any) => toggleMethod({ $table: $xeTable, expanded, column: expandColumn, columnIndex, $columnIndex, row, rowIndex: tableMethods.getRowIndex(row), $rowIndex: tableMethods.getVMRowIndex(row) })) : rows
5469
5498
  if (expanded) {
5470
5499
  validRows.forEach((row: any) => {
5471
- const rowid = getRowid($xeTable, row)
5472
- if (!rExpandedMaps[rowid]) {
5500
+ const rowid = handleGetRowId(row)
5501
+ if (!rowExpandedMaps[rowid]) {
5473
5502
  const rowRest = fullAllDataRowIdData[rowid]
5474
5503
  const isLoad = lazy && !rowRest.expandLoaded && !rowExpandLazyLoadedMaps[rowid]
5475
5504
  if (isLoad) {
5476
5505
  lazyRests.push(handleAsyncRowExpand(row))
5477
5506
  } else {
5478
- rExpandedMaps[rowid] = row
5507
+ rowExpandedMaps[rowid] = row
5479
5508
  }
5480
5509
  }
5481
5510
  })
5482
5511
  } else {
5483
5512
  validRows.forEach(item => {
5484
- const rowid = getRowid($xeTable, item)
5485
- if (rExpandedMaps[rowid]) {
5486
- delete rExpandedMaps[rowid]
5513
+ const rowid = handleGetRowId(item)
5514
+ if (rowExpandedMaps[rowid]) {
5515
+ delete rowExpandedMaps[rowid]
5487
5516
  }
5488
5517
  })
5489
5518
  }
@@ -5491,7 +5520,7 @@ export default defineComponent({
5491
5520
  validRows.forEach((row) => handleRowExpandReserve(row, expanded))
5492
5521
  }
5493
5522
  }
5494
- reactData.rowExpandedMaps = rExpandedMaps
5523
+ reactData.rowExpandedFlag++
5495
5524
  return Promise.all(lazyRests)
5496
5525
  .then(() => nextTick())
5497
5526
  .then(() => $xeTable.recalculate(true))
@@ -5507,9 +5536,10 @@ export default defineComponent({
5507
5536
  * @param {Row} row 行对象
5508
5537
  */
5509
5538
  isRowExpandByRow (row) {
5510
- const { rowExpandedMaps } = reactData
5539
+ const { rowExpandedFlag } = reactData
5540
+ const { rowExpandedMaps } = internalData
5511
5541
  const rowid = getRowid($xeTable, row)
5512
- return !!rowExpandedMaps[rowid]
5542
+ return !!rowExpandedFlag && !!rowExpandedMaps[rowid]
5513
5543
  },
5514
5544
  isExpandByRow (row) {
5515
5545
  // 已废弃
@@ -5526,7 +5556,8 @@ export default defineComponent({
5526
5556
  const expandOpts = computeExpandOpts.value
5527
5557
  const { reserve } = expandOpts
5528
5558
  const expList = $xeTable.getRowExpandRecords()
5529
- reactData.rowExpandedMaps = {}
5559
+ internalData.rowExpandedMaps = {}
5560
+ reactData.rowExpandedFlag++
5530
5561
  if (reserve) {
5531
5562
  tableFullData.forEach((row) => handleRowExpandReserve(row, false))
5532
5563
  }
@@ -5547,7 +5578,7 @@ export default defineComponent({
5547
5578
  },
5548
5579
  getRowExpandRecords () {
5549
5580
  const rest: any[] = []
5550
- XEUtils.each(reactData.rowExpandedMaps, item => {
5581
+ XEUtils.each(internalData.rowExpandedMaps, item => {
5551
5582
  if (item) {
5552
5583
  rest.push(item)
5553
5584
  }
@@ -5556,7 +5587,7 @@ export default defineComponent({
5556
5587
  },
5557
5588
  getTreeExpandRecords () {
5558
5589
  const rest: any[] = []
5559
- XEUtils.each(reactData.treeExpandedMaps, item => {
5590
+ XEUtils.each(internalData.treeExpandedMaps, item => {
5560
5591
  if (item) {
5561
5592
  rest.push(item)
5562
5593
  }
@@ -5573,12 +5604,10 @@ export default defineComponent({
5573
5604
  return rowRest && !!rowRest.treeLoaded
5574
5605
  },
5575
5606
  clearTreeExpandLoaded (rows: any) {
5576
- const { fullAllDataRowIdData } = internalData
5607
+ const { fullAllDataRowIdData, treeExpandedMaps } = internalData
5577
5608
  const treeOpts = computeTreeOpts.value
5578
5609
  const { transform } = treeOpts
5579
- let tExpandedMaps: Record<string, any> = {}
5580
5610
  if (rows) {
5581
- tExpandedMaps = { ...reactData.treeExpandedMaps }
5582
5611
  if (!XEUtils.isArray(rows)) {
5583
5612
  rows = [rows]
5584
5613
  }
@@ -5587,8 +5616,8 @@ export default defineComponent({
5587
5616
  const rowRest = fullAllDataRowIdData[rowid]
5588
5617
  if (rowRest) {
5589
5618
  rowRest.treeLoaded = false
5590
- if (tExpandedMaps[rowid]) {
5591
- delete tExpandedMaps[rowid]
5619
+ if (treeExpandedMaps[rowid]) {
5620
+ delete treeExpandedMaps[rowid]
5592
5621
  }
5593
5622
  }
5594
5623
  })
@@ -5597,7 +5626,8 @@ export default defineComponent({
5597
5626
  rowRest.treeLoaded = false
5598
5627
  })
5599
5628
  }
5600
- reactData.treeExpandedMaps = {}
5629
+ internalData.treeExpandedMaps = {}
5630
+ reactData.treeExpandedFlag++
5601
5631
  if (transform) {
5602
5632
  handleVirtualTreeToList()
5603
5633
  return $xeTable.handleTableData()
@@ -5609,7 +5639,7 @@ export default defineComponent({
5609
5639
  * @param {Row} row 行对象
5610
5640
  */
5611
5641
  reloadTreeExpand (row) {
5612
- const { treeExpandLazyLoadedMaps } = reactData
5642
+ const { treeExpandLazyLoadedMaps } = internalData
5613
5643
  const treeOpts = computeTreeOpts.value
5614
5644
  const hasChildField = treeOpts.hasChild || treeOpts.hasChildField
5615
5645
  const { transform, lazy } = treeOpts
@@ -5694,8 +5724,9 @@ export default defineComponent({
5694
5724
  * @param {Row} row 行对象
5695
5725
  */
5696
5726
  isTreeExpandByRow (row) {
5697
- const { treeExpandedMaps } = reactData
5698
- return !!treeExpandedMaps[getRowid($xeTable, row)]
5727
+ const { treeExpandedFlag } = reactData
5728
+ const { treeExpandedMaps } = internalData
5729
+ return !!treeExpandedFlag && !!treeExpandedMaps[getRowid($xeTable, row)]
5699
5730
  },
5700
5731
  /**
5701
5732
  * 手动清空树形节点的展开状态,数据会恢复成未展开的状态
@@ -5705,19 +5736,20 @@ export default defineComponent({
5705
5736
  const treeOpts = computeTreeOpts.value
5706
5737
  const childrenField = treeOpts.children || treeOpts.childrenField
5707
5738
  const { transform, reserve } = treeOpts
5708
- const expList = tableMethods.getTreeExpandRecords()
5709
- reactData.treeExpandedMaps = {}
5739
+ const expList = $xeTable.getTreeExpandRecords()
5740
+ internalData.treeExpandedMaps = {}
5741
+ reactData.treeExpandedFlag++
5710
5742
  if (reserve) {
5711
5743
  XEUtils.eachTree(tableFullTreeData, row => handleTreeExpandReserve(row, false), { children: childrenField })
5712
5744
  }
5713
- return tablePrivateMethods.handleTableData().then(() => {
5745
+ return $xeTable.handleTableData().then(() => {
5714
5746
  if (transform) {
5715
5747
  handleVirtualTreeToList()
5716
- return tablePrivateMethods.handleTableData()
5748
+ return $xeTable.handleTableData()
5717
5749
  }
5718
5750
  }).then(() => {
5719
5751
  if (expList.length) {
5720
- return tableMethods.recalculate()
5752
+ return $xeTable.recalculate()
5721
5753
  }
5722
5754
  })
5723
5755
  },
@@ -6991,15 +7023,13 @@ export default defineComponent({
6991
7023
  */
6992
7024
  cacheRowMap () {
6993
7025
  const { treeConfig } = props
6994
- const { treeExpandedMaps } = reactData
6995
- const { fullAllDataRowIdData, tableFullData, tableFullTreeData } = internalData
7026
+ const { fullAllDataRowIdData, tableFullData, tableFullTreeData, treeExpandedMaps } = internalData
6996
7027
  const treeOpts = computeTreeOpts.value
6997
7028
  const childrenField = treeOpts.children || treeOpts.childrenField
6998
7029
  const hasChildField = treeOpts.hasChild || treeOpts.hasChildField
6999
7030
  const { lazy } = treeOpts
7000
7031
  const fullAllDataRowIdMaps: Record<string, VxeTableDefines.RowCacheItem> = { ...fullAllDataRowIdData } // 存在已删除数据
7001
7032
  const fullDataRowIdMaps: Record<string, VxeTableDefines.RowCacheItem> = {}
7002
- const treeTempExpandedMaps = { ...treeExpandedMaps }
7003
7033
 
7004
7034
  const { handleUpdateRowId } = createHandleUpdateRowId($xeTable)
7005
7035
  const handleRowCache = (row: any, index: number, items: any, currIndex: number, parentRow: any, rowid: string, level: number, seq: string | number) => {
@@ -7027,13 +7057,12 @@ export default defineComponent({
7027
7057
  XEUtils.eachTree(tableFullTreeData, (row, index, items, path, parentRow, nodes) => {
7028
7058
  const rowid = handleUpdateRowId(row)
7029
7059
  if (treeConfig && lazy) {
7030
- const treeExpRest = treeTempExpandedMaps[rowid]
7031
7060
  if (row[hasChildField] && row[childrenField] === undefined) {
7032
7061
  row[childrenField] = null
7033
7062
  }
7034
- if (treeExpRest) {
7063
+ if (treeExpandedMaps[rowid]) {
7035
7064
  if (!row[childrenField] || !row[childrenField].length) {
7036
- delete treeTempExpandedMaps[rowid]
7065
+ delete treeExpandedMaps[rowid]
7037
7066
  }
7038
7067
  }
7039
7068
  }
@@ -7047,7 +7076,7 @@ export default defineComponent({
7047
7076
 
7048
7077
  internalData.fullDataRowIdData = fullDataRowIdMaps
7049
7078
  internalData.fullAllDataRowIdData = fullAllDataRowIdMaps
7050
- reactData.treeExpandedMaps = treeTempExpandedMaps
7079
+ reactData.treeExpandedFlag++
7051
7080
  },
7052
7081
  cacheSourceMap (fullData) {
7053
7082
  const { treeConfig } = props
@@ -7539,9 +7568,7 @@ export default defineComponent({
7539
7568
  },
7540
7569
  updateCheckboxStatus () {
7541
7570
  const { treeConfig } = props
7542
- const { selectCheckboxMaps, treeIndeterminateMaps } = reactData
7543
- const selectRowMaps = Object.assign({}, selectCheckboxMaps)
7544
- const halfRowMaps = Object.assign({}, treeIndeterminateMaps)
7571
+ const { selectCheckboxMaps, treeIndeterminateRowMaps } = internalData
7545
7572
  const treeOpts = computeTreeOpts.value
7546
7573
  const { transform, mapChildrenField } = treeOpts
7547
7574
  const childrenField = treeOpts.children || treeOpts.childrenField
@@ -7575,28 +7602,28 @@ export default defineComponent({
7575
7602
  checkMethod
7576
7603
  ? (item) => {
7577
7604
  const childRowid = handleGetRowId(item)
7578
- const isSelect = checkField ? XEUtils.get(item, checkField) : selectRowMaps[childRowid]
7605
+ const isSelect = checkField ? XEUtils.get(item, checkField) : selectCheckboxMaps[childRowid]
7579
7606
  if (checkMethod({ row: item })) {
7580
7607
  if (isSelect) {
7581
7608
  sLen++
7582
- } else if (halfRowMaps[childRowid]) {
7609
+ } else if (treeIndeterminateRowMaps[childRowid]) {
7583
7610
  hLen++
7584
7611
  }
7585
7612
  vLen++
7586
7613
  } else {
7587
7614
  if (isSelect) {
7588
7615
  sLen++
7589
- } else if (halfRowMaps[childRowid]) {
7616
+ } else if (treeIndeterminateRowMaps[childRowid]) {
7590
7617
  hLen++
7591
7618
  }
7592
7619
  }
7593
7620
  }
7594
7621
  : item => {
7595
7622
  const childRowid = handleGetRowId(item)
7596
- const isSelect = checkField ? XEUtils.get(item, checkField) : selectRowMaps[childRowid]
7623
+ const isSelect = checkField ? XEUtils.get(item, checkField) : selectCheckboxMaps[childRowid]
7597
7624
  if (isSelect) {
7598
7625
  sLen++
7599
- } else if (halfRowMaps[childRowid]) {
7626
+ } else if (treeIndeterminateRowMaps[childRowid]) {
7600
7627
  hLen++
7601
7628
  }
7602
7629
  vLen++
@@ -7609,36 +7636,34 @@ export default defineComponent({
7609
7636
  }
7610
7637
  if (isSelected) {
7611
7638
  if (!checkField) {
7612
- selectRowMaps[rowid] = row
7639
+ selectCheckboxMaps[rowid] = row
7613
7640
  }
7614
- if (halfRowMaps[rowid]) {
7615
- delete halfRowMaps[rowid]
7641
+ if (treeIndeterminateRowMaps[rowid]) {
7642
+ delete treeIndeterminateRowMaps[rowid]
7616
7643
  }
7617
7644
  } else {
7618
7645
  if (!checkField) {
7619
- if (selectRowMaps[rowid]) {
7620
- delete selectRowMaps[rowid]
7646
+ if (selectCheckboxMaps[rowid]) {
7647
+ delete selectCheckboxMaps[rowid]
7621
7648
  }
7622
7649
  }
7623
7650
  if (halfSelect) {
7624
- halfRowMaps[rowid] = row
7651
+ treeIndeterminateRowMaps[rowid] = row
7625
7652
  } else {
7626
- if (halfRowMaps[rowid]) {
7627
- delete halfRowMaps[rowid]
7653
+ if (treeIndeterminateRowMaps[rowid]) {
7654
+ delete treeIndeterminateRowMaps[rowid]
7628
7655
  }
7629
7656
  }
7630
7657
  }
7631
7658
  })
7632
7659
  }
7633
- reactData.selectCheckboxMaps = selectRowMaps
7634
- reactData.treeIndeterminateMaps = halfRowMaps
7660
+ reactData.updateCheckboxFlag++
7635
7661
  },
7636
7662
  updateAllCheckboxStatus () {
7637
7663
  const { treeConfig } = props
7638
- const { selectCheckboxMaps, treeIndeterminateMaps } = reactData
7664
+ const { afterFullData, afterTreeFullData, checkboxReserveRowMap, selectCheckboxMaps, treeIndeterminateRowMaps } = internalData
7639
7665
  const checkboxOpts = computeCheckboxOpts.value
7640
7666
  const { checkField, checkMethod, showReserveStatus } = checkboxOpts
7641
- const { afterFullData, afterTreeFullData, checkboxReserveRowMap } = internalData
7642
7667
  const { handleGetRowId } = createHandleGetRowId($xeTable)
7643
7668
 
7644
7669
  let sLen = 0 // 已选
@@ -7653,14 +7678,14 @@ export default defineComponent({
7653
7678
  if (checkMethod({ row })) {
7654
7679
  if (selected) {
7655
7680
  sLen++
7656
- } else if (treeIndeterminateMaps[childRowid]) {
7681
+ } else if (treeIndeterminateRowMaps[childRowid]) {
7657
7682
  hLen++
7658
7683
  }
7659
7684
  vLen++
7660
7685
  } else {
7661
7686
  if (selected) {
7662
7687
  sLen++
7663
- } else if (treeIndeterminateMaps[childRowid]) {
7688
+ } else if (treeIndeterminateRowMaps[childRowid]) {
7664
7689
  hLen++
7665
7690
  }
7666
7691
  }
@@ -7670,7 +7695,7 @@ export default defineComponent({
7670
7695
  const selected = checkField ? XEUtils.get(row, checkField) : selectCheckboxMaps[childRowid]
7671
7696
  if (selected) {
7672
7697
  sLen++
7673
- } else if (treeIndeterminateMaps[childRowid]) {
7698
+ } else if (treeIndeterminateRowMaps[childRowid]) {
7674
7699
  hLen++
7675
7700
  }
7676
7701
  vLen++
@@ -7697,8 +7722,7 @@ export default defineComponent({
7697
7722
  */
7698
7723
  handleBatchSelectRows (rows, checked, isForce) {
7699
7724
  const { treeConfig } = props
7700
- const { selectCheckboxMaps } = reactData
7701
- const selectRowMaps = Object.assign({}, selectCheckboxMaps)
7725
+ const { selectCheckboxMaps } = internalData
7702
7726
  const treeOpts = computeTreeOpts.value
7703
7727
  const { transform, mapChildrenField } = treeOpts
7704
7728
  const childrenField = treeOpts.children || treeOpts.childrenField
@@ -7720,18 +7744,17 @@ export default defineComponent({
7720
7744
  handleCheckboxReserveRow(row, checked)
7721
7745
  }
7722
7746
  }, { children: transform ? mapChildrenField : childrenField })
7723
- reactData.selectCheckboxMaps = selectRowMaps
7747
+ reactData.updateCheckboxFlag++
7724
7748
  return
7725
- } else {
7726
- // 列表
7727
- rows.forEach(row => {
7728
- if (isForce || (!checkMethod || checkMethod({ row }))) {
7729
- XEUtils.set(row, checkField, checked)
7730
- handleCheckboxReserveRow(row, checked)
7731
- }
7732
- })
7733
7749
  }
7734
- reactData.selectCheckboxMaps = selectRowMaps
7750
+ // 列表
7751
+ rows.forEach(row => {
7752
+ if (isForce || (!checkMethod || checkMethod({ row }))) {
7753
+ XEUtils.set(row, checkField, checked)
7754
+ handleCheckboxReserveRow(row, checked)
7755
+ }
7756
+ })
7757
+ reactData.updateCheckboxFlag++
7735
7758
  return
7736
7759
  }
7737
7760
 
@@ -7742,16 +7765,16 @@ export default defineComponent({
7742
7765
  const rowid = handleGetRowId(row)
7743
7766
  if (isForce || (!checkMethod || checkMethod({ row }))) {
7744
7767
  if (checked) {
7745
- selectRowMaps[rowid] = row
7768
+ selectCheckboxMaps[rowid] = row
7746
7769
  } else {
7747
- if (selectRowMaps[rowid]) {
7748
- delete selectRowMaps[rowid]
7770
+ if (selectCheckboxMaps[rowid]) {
7771
+ delete selectCheckboxMaps[rowid]
7749
7772
  }
7750
7773
  }
7751
7774
  handleCheckboxReserveRow(row, checked)
7752
7775
  }
7753
7776
  }, { children: transform ? mapChildrenField : childrenField })
7754
- reactData.selectCheckboxMaps = selectRowMaps
7777
+ reactData.updateCheckboxFlag++
7755
7778
  return
7756
7779
  }
7757
7780
 
@@ -7760,18 +7783,18 @@ export default defineComponent({
7760
7783
  const rowid = handleGetRowId(row)
7761
7784
  if (isForce || (!checkMethod || checkMethod({ row }))) {
7762
7785
  if (checked) {
7763
- if (!selectRowMaps[rowid]) {
7764
- selectRowMaps[rowid] = row
7786
+ if (!selectCheckboxMaps[rowid]) {
7787
+ selectCheckboxMaps[rowid] = row
7765
7788
  }
7766
7789
  } else {
7767
- if (selectRowMaps[rowid]) {
7768
- delete selectRowMaps[rowid]
7790
+ if (selectCheckboxMaps[rowid]) {
7791
+ delete selectCheckboxMaps[rowid]
7769
7792
  }
7770
7793
  }
7771
7794
  handleCheckboxReserveRow(row, checked)
7795
+ reactData.updateCheckboxFlag++
7772
7796
  }
7773
7797
  })
7774
- reactData.selectCheckboxMaps = selectRowMaps
7775
7798
  },
7776
7799
  /**
7777
7800
  * 即将移除
@@ -8037,7 +8060,7 @@ export default defineComponent({
8037
8060
  dispatchEvent('cell-dblclick', params, evnt)
8038
8061
  },
8039
8062
  handleToggleCheckRowEvent (evnt, params) {
8040
- const { selectCheckboxMaps } = reactData
8063
+ const { selectCheckboxMaps } = internalData
8041
8064
  const checkboxOpts = computeCheckboxOpts.value
8042
8065
  const { checkField, trigger } = checkboxOpts
8043
8066
  const { row } = params
@@ -8051,10 +8074,10 @@ export default defineComponent({
8051
8074
  checked = !selectCheckboxMaps[getRowid($xeTable, row)]
8052
8075
  }
8053
8076
  if (evnt) {
8054
- tablePrivateMethods.triggerCheckRowEvent(evnt, params, checked)
8077
+ $xeTable.triggerCheckRowEvent(evnt, params, checked)
8055
8078
  } else {
8056
- tablePrivateMethods.handleBatchSelectRows([row], checked)
8057
- tablePrivateMethods.checkSelectionStatus()
8079
+ $xeTable.handleBatchSelectRows([row], checked)
8080
+ $xeTable.checkSelectionStatus()
8058
8081
  }
8059
8082
  },
8060
8083
  triggerCheckRowEvent (evnt: MouseEvent, params, checked) {
@@ -8160,7 +8183,8 @@ export default defineComponent({
8160
8183
  * 展开行事件
8161
8184
  */
8162
8185
  triggerRowExpandEvent (evnt, params) {
8163
- const { rowExpandLazyLoadedMaps, expandColumn: column } = reactData
8186
+ const { expandColumn: column } = reactData
8187
+ const { rowExpandLazyLoadedMaps } = internalData
8164
8188
  const expandOpts = computeExpandOpts.value
8165
8189
  const { row } = params
8166
8190
  const { lazy, trigger } = expandOpts
@@ -8170,18 +8194,18 @@ export default defineComponent({
8170
8194
  evnt.stopPropagation()
8171
8195
  const rowid = getRowid($xeTable, row)
8172
8196
  if (!lazy || !rowExpandLazyLoadedMaps[rowid]) {
8173
- const expanded = !tableMethods.isRowExpandByRow(row)
8174
- const columnIndex = tableMethods.getColumnIndex(column)
8175
- const $columnIndex = tableMethods.getVMColumnIndex(column)
8176
- tableMethods.setRowExpand(row, expanded)
8197
+ const expanded = !$xeTable.isRowExpandByRow(row)
8198
+ const columnIndex = $xeTable.getColumnIndex(column)
8199
+ const $columnIndex = $xeTable.getVMColumnIndex(column)
8200
+ $xeTable.setRowExpand(row, expanded)
8177
8201
  dispatchEvent('toggle-row-expand', {
8178
8202
  expanded,
8179
8203
  column,
8180
8204
  columnIndex,
8181
8205
  $columnIndex,
8182
8206
  row,
8183
- rowIndex: tableMethods.getRowIndex(row),
8184
- $rowIndex: tableMethods.getVMRowIndex(row)
8207
+ rowIndex: $xeTable.getRowIndex(row),
8208
+ $rowIndex: $xeTable.getVMRowIndex(row)
8185
8209
  }, evnt)
8186
8210
  }
8187
8211
  },
@@ -8189,7 +8213,7 @@ export default defineComponent({
8189
8213
  * 展开树节点事件
8190
8214
  */
8191
8215
  triggerTreeExpandEvent (evnt, params) {
8192
- const { treeExpandLazyLoadedMaps } = reactData
8216
+ const { treeExpandLazyLoadedMaps } = internalData
8193
8217
  const treeOpts = computeTreeOpts.value
8194
8218
  const { row, column } = params
8195
8219
  const { lazy, trigger } = treeOpts
@@ -8199,10 +8223,10 @@ export default defineComponent({
8199
8223
  evnt.stopPropagation()
8200
8224
  const rowid = getRowid($xeTable, row)
8201
8225
  if (!lazy || !treeExpandLazyLoadedMaps[rowid]) {
8202
- const expanded = !tableMethods.isTreeExpandByRow(row)
8203
- const columnIndex = tableMethods.getColumnIndex(column)
8204
- const $columnIndex = tableMethods.getVMColumnIndex(column)
8205
- tableMethods.setTreeExpand(row, expanded)
8226
+ const expanded = !$xeTable.isTreeExpandByRow(row)
8227
+ const columnIndex = $xeTable.getColumnIndex(column)
8228
+ const $columnIndex = $xeTable.getVMColumnIndex(column)
8229
+ $xeTable.setTreeExpand(row, expanded)
8206
8230
  dispatchEvent('toggle-tree-expand', { expanded, column, columnIndex, $columnIndex, row }, evnt)
8207
8231
  }
8208
8232
  },
@@ -8346,12 +8370,11 @@ export default defineComponent({
8346
8370
  handleRowDragSwapEvent (evnt, isSyncRow, dragRow, prevDragRow, prevDragPos, prevDragToChild) {
8347
8371
  const { treeConfig, dragConfig } = props
8348
8372
  const rowDragOpts = computeRowDragOpts.value
8349
- const { fullAllDataRowIdData } = internalData
8373
+ const { afterFullData, tableFullData, fullAllDataRowIdData } = internalData
8350
8374
  const { isPeerDrag, isCrossDrag, isSelfToChildDrag, dragEndMethod, dragToChildMethod } = rowDragOpts
8351
8375
  const treeOpts = computeTreeOpts.value
8352
8376
  const { transform, rowField, mapChildrenField, parentField } = treeOpts
8353
8377
  const childrenField = treeOpts.children || treeOpts.childrenField
8354
- const { afterFullData, tableFullData } = internalData
8355
8378
  const dEndMethod = dragEndMethod || (dragConfig ? dragConfig.dragEndMethod : null)
8356
8379
  const dragOffsetIndex = prevDragPos === 'bottom' ? 1 : 0
8357
8380
  const errRest = {
@@ -9479,8 +9502,8 @@ export default defineComponent({
9479
9502
  },
9480
9503
  // 更新纵向 Y 可视渲染上下剩余空间大小
9481
9504
  updateScrollYSpace () {
9482
- const { isAllOverflow, scrollYLoad, expandColumn, rowExpandedMaps } = reactData
9483
- const { scrollYStore, elemStore, isResizeCellHeight, afterFullData, fullAllDataRowIdData } = internalData
9505
+ const { isAllOverflow, scrollYLoad, expandColumn } = reactData
9506
+ const { scrollYStore, elemStore, isResizeCellHeight, afterFullData, fullAllDataRowIdData, rowExpandedMaps } = internalData
9484
9507
  const { startIndex } = scrollYStore
9485
9508
  const expandOpts = computeExpandOpts.value
9486
9509
  const rowOpts = computeRowOpts.value
@@ -9829,6 +9852,7 @@ export default defineComponent({
9829
9852
  ]
9830
9853
 
9831
9854
  if (expandColumn) {
9855
+ const { handleGetRowId } = createHandleGetRowId($xeTable)
9832
9856
  tableRowExpandedList.forEach((row) => {
9833
9857
  const expandOpts = computeExpandOpts.value
9834
9858
  const { height: expandHeight, padding } = expandOpts
@@ -9836,7 +9860,7 @@ export default defineComponent({
9836
9860
  const treeOpts = computeTreeOpts.value
9837
9861
  const { transform, seqMode } = treeOpts
9838
9862
  const cellStyle: Record<string, string> = {}
9839
- const rowid = getRowid($xeTable, row)
9863
+ const rowid = handleGetRowId(row)
9840
9864
  const rest = fullAllDataRowIdData[rowid]
9841
9865
  let rowLevel = 0
9842
9866
  let seq: string | number = -1