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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/es/style.css +1 -1
  2. package/es/table/module/edit/hook.js +8 -10
  3. package/es/table/module/keyboard/hook.js +10 -0
  4. package/es/table/module/validator/hook.js +2 -2
  5. package/es/table/src/body.js +10 -10
  6. package/es/table/src/cell.js +15 -11
  7. package/es/table/src/table.js +260 -238
  8. package/es/table/src/util.js +2 -2
  9. package/es/ui/index.js +2 -1
  10. package/es/ui/src/log.js +1 -1
  11. package/lib/index.umd.js +142 -121
  12. package/lib/index.umd.min.js +1 -1
  13. package/lib/style.css +1 -1
  14. package/lib/table/module/edit/hook.js +10 -11
  15. package/lib/table/module/edit/hook.min.js +1 -1
  16. package/lib/table/module/keyboard/hook.js +10 -0
  17. package/lib/table/module/keyboard/hook.min.js +1 -1
  18. package/lib/table/module/validator/hook.js +3 -3
  19. package/lib/table/module/validator/hook.min.js +1 -1
  20. package/lib/table/src/body.js +16 -11
  21. package/lib/table/src/body.min.js +1 -1
  22. package/lib/table/src/cell.js +22 -13
  23. package/lib/table/src/cell.min.js +1 -1
  24. package/lib/table/src/table.js +338 -268
  25. package/lib/table/src/table.min.js +1 -1
  26. package/lib/table/src/util.js +2 -2
  27. package/lib/table/src/util.min.js +1 -1
  28. package/lib/ui/index.js +2 -1
  29. package/lib/ui/index.min.js +1 -1
  30. package/lib/ui/src/log.js +1 -1
  31. package/lib/ui/src/log.min.js +1 -1
  32. package/package.json +2 -2
  33. package/packages/table/module/edit/hook.ts +8 -10
  34. package/packages/table/module/keyboard/hook.ts +10 -0
  35. package/packages/table/module/validator/hook.ts +2 -2
  36. package/packages/table/src/body.ts +10 -10
  37. package/packages/table/src/cell.ts +15 -11
  38. package/packages/table/src/table.ts +262 -237
  39. package/packages/table/src/util.ts +2 -2
  40. package/packages/ui/index.ts +1 -0
  41. /package/es/{iconfont.1742353689933.ttf → iconfont.1742525007622.ttf} +0 -0
  42. /package/es/{iconfont.1742353689933.woff → iconfont.1742525007622.woff} +0 -0
  43. /package/es/{iconfont.1742353689933.woff2 → iconfont.1742525007622.woff2} +0 -0
  44. /package/lib/{iconfont.1742353689933.ttf → iconfont.1742525007622.ttf} +0 -0
  45. /package/lib/{iconfont.1742353689933.woff → iconfont.1742525007622.woff} +0 -0
  46. /package/lib/{iconfont.1742353689933.woff2 → iconfont.1742525007622.woff2} +0 -0
@@ -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,
@@ -891,6 +910,7 @@ export default defineComponent({
891
910
  getRefMaps: () => refMaps,
892
911
  getComputeMaps: () => computeMaps,
893
912
 
913
+ xeGrid: $xeGrid,
894
914
  xegrid: $xeGrid
895
915
  } as unknown as VxeTableConstructor & VxeTableMethods & VxeTablePrivateMethods
896
916
 
@@ -1052,12 +1072,13 @@ export default defineComponent({
1052
1072
  toVisibleIndex = Math.floor(startTop / defaultRowHeight) - 1
1053
1073
  visibleSize = Math.ceil(clientHeight / defaultRowHeight) + 1
1054
1074
  } else {
1075
+ const { handleGetRowId } = createHandleGetRowId($xeTable)
1055
1076
  let leftIndex = 0
1056
1077
  let rightIndex = afterFullData.length
1057
1078
  while (leftIndex < rightIndex) {
1058
1079
  const rIndex = Math.floor((leftIndex + rightIndex) / 2)
1059
1080
  const row = afterFullData[rIndex]
1060
- const rowid = getRowid($xeTable, row)
1081
+ const rowid = handleGetRowId(row)
1061
1082
  const rowRest = fullAllDataRowIdData[rowid] || {}
1062
1083
  if (rowRest.oTop <= startTop) {
1063
1084
  leftIndex = rIndex + 1
@@ -1068,7 +1089,7 @@ export default defineComponent({
1068
1089
  toVisibleIndex = Math.max(0, leftIndex < afterFullData.length ? leftIndex - 2 : 0)
1069
1090
  for (let rIndex = toVisibleIndex, rLen = afterFullData.length; rIndex < rLen; rIndex++) {
1070
1091
  const row = afterFullData[rIndex]
1071
- const rowid = getRowid($xeTable, row)
1092
+ const rowid = handleGetRowId(row)
1072
1093
  const rowRest = fullAllDataRowIdData[rowid] || {}
1073
1094
  visibleSize++
1074
1095
  if (rowRest.oTop > endTop || visibleSize >= 100) {
@@ -1586,9 +1607,10 @@ export default defineComponent({
1586
1607
  const defaultRowHeight = computeDefaultRowHeight.value
1587
1608
  const el = refElem.value
1588
1609
  if (!isAllOverflow && scrollYLoad && el) {
1610
+ const { handleGetRowId } = createHandleGetRowId($xeTable)
1589
1611
  el.setAttribute('data-calc-row', 'Y')
1590
1612
  tableData.forEach(row => {
1591
- const rowid = getRowid($xeTable, row)
1613
+ const rowid = handleGetRowId(row)
1592
1614
  const rowRest = fullAllDataRowIdData[rowid]
1593
1615
  if (rowRest) {
1594
1616
  const reHeight = calcCellAutoHeight(rowRest, el)
@@ -1623,9 +1645,10 @@ export default defineComponent({
1623
1645
  const updateAfterListIndex = () => {
1624
1646
  const { treeConfig } = props
1625
1647
  const { afterFullData, fullDataRowIdData, fullAllDataRowIdData } = internalData
1648
+ const { handleGetRowId } = createHandleGetRowId($xeTable)
1626
1649
  const fullMaps: Record<string, any> = {}
1627
1650
  afterFullData.forEach((row, index) => {
1628
- const rowid = getRowid($xeTable, row)
1651
+ const rowid = handleGetRowId(row)
1629
1652
  const rowRest = fullAllDataRowIdData[rowid]
1630
1653
  const seq = index + 1
1631
1654
  if (rowRest) {
@@ -1655,8 +1678,9 @@ export default defineComponent({
1655
1678
  const childrenField = treeOpts.children || treeOpts.childrenField
1656
1679
  const fullMaps: Record<string, any> = {}
1657
1680
  if (treeConfig) {
1681
+ const { handleGetRowId } = createHandleGetRowId($xeTable)
1658
1682
  XEUtils.eachTree(afterTreeFullData, (row, index, items, path) => {
1659
- const rowid = getRowid($xeTable, row)
1683
+ const rowid = handleGetRowId(row)
1660
1684
  const rowRest = fullAllDataRowIdData[rowid]
1661
1685
  const seq = path.map((num, i) => i % 2 === 0 ? (Number(num) + 1) : '.').join('')
1662
1686
  if (rowRest) {
@@ -1682,18 +1706,18 @@ export default defineComponent({
1682
1706
  */
1683
1707
  const handleVirtualTreeToList = () => {
1684
1708
  const { treeConfig } = props
1685
- const { treeExpandedMaps } = reactData
1686
- const { fullAllDataRowIdData } = internalData
1709
+ const { fullAllDataRowIdData, treeExpandedMaps } = internalData
1687
1710
  const treeOpts = computeTreeOpts.value
1688
1711
  const childrenField = treeOpts.children || treeOpts.childrenField
1689
1712
  if (treeConfig && treeOpts.transform) {
1713
+ const { handleGetRowId } = createHandleGetRowId($xeTable)
1690
1714
  const fullData: any[] = []
1691
1715
  const expandMaps: {
1692
1716
  [key: string]: number
1693
1717
  } = {}
1694
1718
  XEUtils.eachTree(internalData.afterTreeFullData, (row, index, items, path, parentRow) => {
1695
- const rowid = getRowid($xeTable, row)
1696
- const parentRowid = getRowid($xeTable, parentRow)
1719
+ const rowid = handleGetRowId(row)
1720
+ const parentRowid = handleGetRowId(parentRow)
1697
1721
  if (!parentRow || (expandMaps[parentRowid] && treeExpandedMaps[parentRowid])) {
1698
1722
  const rowRest = fullAllDataRowIdData[rowid]
1699
1723
  if (rowRest) {
@@ -1722,7 +1746,7 @@ export default defineComponent({
1722
1746
  const treeOpts = computeTreeOpts.value
1723
1747
  const childrenField = treeOpts.children || treeOpts.childrenField
1724
1748
  const { transform, rowField, parentField, mapChildrenField } = treeOpts
1725
- const { remote: allRemoteFilter, filterMethod: allFilterMethod } = filterOpts
1749
+ const { isEvery, remote: allRemoteFilter, filterMethod: allFilterMethod } = filterOpts
1726
1750
  const { remote: allRemoteSort, sortMethod: allSortMethod, multiple: sortMultiple, chronological } = sortOpts
1727
1751
  let tableData: any[] = []
1728
1752
  let tableTree: any[] = []
@@ -1784,7 +1808,7 @@ export default defineComponent({
1784
1808
  // 筛选虚拟树
1785
1809
  tableTree = XEUtils.searchTree(tableFullTreeData, handleFilter, {
1786
1810
  original: true,
1787
- isEvery: true,
1811
+ isEvery,
1788
1812
  children: mapChildrenField,
1789
1813
  mapChildren: childrenField
1790
1814
  })
@@ -1798,7 +1822,7 @@ export default defineComponent({
1798
1822
  // 还原虚拟树
1799
1823
  tableTree = XEUtils.searchTree(tableFullTreeData, () => true, {
1800
1824
  original: true,
1801
- isEvery: true,
1825
+ isEvery,
1802
1826
  children: mapChildrenField,
1803
1827
  mapChildren: childrenField
1804
1828
  })
@@ -1847,7 +1871,7 @@ export default defineComponent({
1847
1871
  // 还原虚拟树
1848
1872
  tableTree = XEUtils.searchTree(tableFullTreeData, () => true, {
1849
1873
  original: true,
1850
- isEvery: true,
1874
+ isEvery,
1851
1875
  children: treeOpts.mapChildrenField,
1852
1876
  mapChildren: childrenField
1853
1877
  })
@@ -2372,8 +2396,7 @@ export default defineComponent({
2372
2396
 
2373
2397
  const handleCheckedAllCheckboxRow = (checked: boolean, isForce?: boolean) => {
2374
2398
  const { treeConfig } = props
2375
- const { selectCheckboxMaps } = reactData
2376
- const { afterFullData, checkboxReserveRowMap } = internalData
2399
+ const { afterFullData, checkboxReserveRowMap, selectCheckboxMaps } = internalData
2377
2400
  const treeOpts = computeTreeOpts.value
2378
2401
  const childrenField = treeOpts.children || treeOpts.childrenField
2379
2402
  const checkboxOpts = computeCheckboxOpts.value
@@ -2391,7 +2414,7 @@ export default defineComponent({
2391
2414
  const checkValFn = (row: any) => {
2392
2415
  if (isForce || (!checkMethod || checkMethod({ row }))) {
2393
2416
  if (checked) {
2394
- selectRowMaps[getRowid($xeTable, row)] = row
2417
+ selectRowMaps[handleGetRowId(row)] = row
2395
2418
  }
2396
2419
  XEUtils.set(row, checkField, checked)
2397
2420
  }
@@ -2483,11 +2506,11 @@ export default defineComponent({
2483
2506
  afterFullData.forEach((row) => handleCheckboxReserveRow(row, false))
2484
2507
  }
2485
2508
  }
2486
- reactData.selectCheckboxMaps = checkField ? {} : selectRowMaps
2509
+ reactData.updateCheckboxFlag++
2510
+ internalData.selectCheckboxMaps = checkField ? {} : selectRowMaps
2487
2511
 
2488
2512
  reactData.isAllSelected = checked
2489
2513
  reactData.isIndeterminate = false
2490
- reactData.treeIndeterminateMaps = {}
2491
2514
  internalData.treeIndeterminateRowMaps = {}
2492
2515
  $xeTable.checkSelectionStatus()
2493
2516
  return nextTick()
@@ -2496,8 +2519,8 @@ export default defineComponent({
2496
2519
  // 还原展开、选中等相关状态
2497
2520
  const handleReserveStatus = () => {
2498
2521
  const { treeConfig } = props
2499
- const { expandColumn, currentRow, selectCheckboxMaps, selectRadioRow, rowExpandedMaps, treeExpandedMaps } = reactData
2500
- const { fullDataRowIdData, fullAllDataRowIdData, radioReserveRow } = internalData
2522
+ const { expandColumn, currentRow, selectRadioRow } = reactData
2523
+ const { fullDataRowIdData, fullAllDataRowIdData, radioReserveRow, selectCheckboxMaps, treeExpandedMaps, rowExpandedMaps } = internalData
2501
2524
  const expandOpts = computeExpandOpts.value
2502
2525
  const treeOpts = computeTreeOpts.value
2503
2526
  const radioOpts = computeRadioOpts.value
@@ -2514,7 +2537,8 @@ export default defineComponent({
2514
2537
  }
2515
2538
  }
2516
2539
  // 复选框
2517
- reactData.selectCheckboxMaps = getRecoverRowMaps(selectCheckboxMaps) // 刷新多选行状态
2540
+ internalData.selectCheckboxMaps = getRecoverRowMaps(selectCheckboxMaps) // 刷新多选行状态
2541
+ reactData.updateCheckboxFlag++
2518
2542
  // 还原保留选中状态
2519
2543
  if (checkboxOpts.reserve) {
2520
2544
  handleCheckedCheckboxRow(handleReserveRow(internalData.checkboxReserveRowMap), true, true)
@@ -2523,13 +2547,15 @@ export default defineComponent({
2523
2547
  reactData.currentRow = null // 刷新当前行状态
2524
2548
  }
2525
2549
  // 行展开
2526
- reactData.rowExpandedMaps = expandColumn ? getRecoverRowMaps(rowExpandedMaps) : {} // 刷新行展开状态
2550
+ internalData.rowExpandedMaps = expandColumn ? getRecoverRowMaps(rowExpandedMaps) : {} // 刷新行展开状态
2551
+ reactData.rowExpandedFlag++
2527
2552
  // 还原保留状态
2528
2553
  if (expandColumn && expandOpts.reserve) {
2529
2554
  $xeTable.setRowExpand(handleReserveRow(internalData.rowExpandedReserveRowMap), true)
2530
2555
  }
2531
2556
  // 树展开
2532
- reactData.treeExpandedMaps = treeConfig ? getRecoverRowMaps(treeExpandedMaps) : {} // 刷新树展开状态
2557
+ internalData.treeExpandedMaps = treeConfig ? getRecoverRowMaps(treeExpandedMaps) : {} // 刷新树展开状态
2558
+ reactData.treeExpandedFlag++
2533
2559
  if (treeConfig && treeOpts.reserve) {
2534
2560
  $xeTable.setTreeExpand(handleReserveRow(internalData.treeExpandedReserveRowMap), true)
2535
2561
  }
@@ -2546,7 +2572,7 @@ export default defineComponent({
2546
2572
  const { expandAll, expandRowKeys } = treeOpts
2547
2573
  const childrenField = treeOpts.children || treeOpts.childrenField
2548
2574
  if (expandAll) {
2549
- tableMethods.setAllTreeExpand(true)
2575
+ $xeTable.setAllTreeExpand(true)
2550
2576
  } else if (expandRowKeys) {
2551
2577
  const defExpandeds: any[] = []
2552
2578
  const rowkey = getRowkey($xeTable)
@@ -2556,7 +2582,7 @@ export default defineComponent({
2556
2582
  defExpandeds.push(matchObj.item)
2557
2583
  }
2558
2584
  })
2559
- tableMethods.setTreeExpand(defExpandeds, true)
2585
+ $xeTable.setTreeExpand(defExpandeds, true)
2560
2586
  }
2561
2587
  }
2562
2588
  }
@@ -2568,8 +2594,7 @@ export default defineComponent({
2568
2594
  const { checkStrictly } = checkboxOpts
2569
2595
  return new Promise<void>(resolve => {
2570
2596
  if (loadMethod) {
2571
- const { treeExpandLazyLoadedMaps } = reactData
2572
- const { fullAllDataRowIdData } = internalData
2597
+ const { fullAllDataRowIdData, treeExpandLazyLoadedMaps } = internalData
2573
2598
  const rowid = getRowid($xeTable, row)
2574
2599
  const rowRest = fullAllDataRowIdData[rowid]
2575
2600
  treeExpandLazyLoadedMaps[rowid] = row
@@ -2586,18 +2611,19 @@ export default defineComponent({
2586
2611
  childRecords = []
2587
2612
  }
2588
2613
  if (childRecords) {
2589
- return tableMethods.loadTreeChildren(row, childRecords).then(childRows => {
2590
- const { treeExpandedMaps } = reactData
2614
+ return $xeTable.loadTreeChildren(row, childRecords).then(childRows => {
2615
+ const { treeExpandedMaps } = internalData
2591
2616
  if (childRows.length && !treeExpandedMaps[rowid]) {
2592
2617
  treeExpandedMaps[rowid] = row
2593
2618
  }
2619
+ reactData.treeExpandedFlag++
2594
2620
  // 如果当前节点已选中,则展开后子节点也被选中
2595
- if (!checkStrictly && tableMethods.isCheckedByCheckboxRow(row)) {
2621
+ if (!checkStrictly && $xeTable.isCheckedByCheckboxRow(row)) {
2596
2622
  handleCheckedCheckboxRow(childRows, true)
2597
2623
  }
2598
2624
  return nextTick().then(() => {
2599
2625
  if (transform) {
2600
- tablePrivateMethods.handleTableData()
2626
+ $xeTable.handleTableData()
2601
2627
  updateAfterDataIndex()
2602
2628
  return nextTick()
2603
2629
  }
@@ -2605,7 +2631,7 @@ export default defineComponent({
2605
2631
  })
2606
2632
  }
2607
2633
  }).catch(() => {
2608
- const { treeExpandLazyLoadedMaps } = reactData
2634
+ const { treeExpandLazyLoadedMaps } = internalData
2609
2635
  if (rowRest) {
2610
2636
  rowRest.treeLoaded = false
2611
2637
  }
@@ -2613,7 +2639,8 @@ export default defineComponent({
2613
2639
  delete treeExpandLazyLoadedMaps[rowid]
2614
2640
  }
2615
2641
  }).finally(() => {
2616
- nextTick().then(() => tableMethods.recalculate()).then(() => resolve())
2642
+ reactData.treeExpandedFlag++
2643
+ nextTick().then(() => $xeTable.recalculate()).then(() => resolve())
2617
2644
  })
2618
2645
  } else {
2619
2646
  resolve()
@@ -2639,29 +2666,27 @@ export default defineComponent({
2639
2666
  const expandOpts = computeExpandOpts.value
2640
2667
  const { loadMethod } = expandOpts
2641
2668
  if (loadMethod) {
2642
- const { fullAllDataRowIdData } = internalData
2643
- const rExpandLazyLoadedMaps = { ...reactData.rowExpandLazyLoadedMaps }
2669
+ const { fullAllDataRowIdData, rowExpandLazyLoadedMaps } = internalData
2644
2670
  const rowid = getRowid($xeTable, row)
2645
2671
  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 }
2672
+ rowExpandLazyLoadedMaps[rowid] = row
2673
+ loadMethod({ $table: $xeTable, row, rowIndex: $xeTable.getRowIndex(row), $rowIndex: $xeTable.getVMRowIndex(row) }).then(() => {
2674
+ const { rowExpandedMaps } = internalData
2650
2675
  if (rowRest) {
2651
2676
  rowRest.expandLoaded = true
2652
2677
  }
2653
- rowTempExpandedMaps[rowid] = row
2654
- reactData.rowExpandedMaps = rowTempExpandedMaps
2678
+ rowExpandedMaps[rowid] = row
2679
+ reactData.rowExpandedFlag++
2655
2680
  }).catch(() => {
2656
2681
  if (rowRest) {
2657
2682
  rowRest.expandLoaded = false
2658
2683
  }
2659
2684
  }).finally(() => {
2660
- const rExpandLazyLoadedMaps = { ...reactData.rowExpandLazyLoadedMaps }
2661
- if (rExpandLazyLoadedMaps[rowid]) {
2662
- delete rExpandLazyLoadedMaps[rowid]
2685
+ const { rowExpandLazyLoadedMaps } = internalData
2686
+ if (rowExpandLazyLoadedMaps[rowid]) {
2687
+ delete rowExpandLazyLoadedMaps[rowid]
2663
2688
  }
2664
- reactData.rowExpandLazyLoadedMaps = rExpandLazyLoadedMaps
2689
+ reactData.rowExpandedFlag++
2665
2690
  nextTick()
2666
2691
  .then(() => $xeTable.recalculate())
2667
2692
  .then(() => $xeTable.updateCellAreas())
@@ -2765,9 +2790,6 @@ export default defineComponent({
2765
2790
  calcCellWidth()
2766
2791
  autoCellWidth()
2767
2792
  updateStyle()
2768
- if (reFull) {
2769
- updateRowOffsetTop()
2770
- }
2771
2793
  updateRowExpandStyle()
2772
2794
  return computeScrollLoad().then(() => {
2773
2795
  if (reFull === true) {
@@ -3210,9 +3232,8 @@ export default defineComponent({
3210
3232
  * @returns
3211
3233
  */
3212
3234
  const handleBaseTreeExpand = (rows: any[], expanded: boolean) => {
3213
- const { treeExpandedMaps, treeExpandLazyLoadedMaps, treeNodeColumn } = reactData
3214
- const treeTempExpandedMaps = { ...treeExpandedMaps }
3215
- const { fullAllDataRowIdData, tableFullData } = internalData
3235
+ const { treeNodeColumn } = reactData
3236
+ const { fullAllDataRowIdData, tableFullData, treeExpandedMaps, treeExpandLazyLoadedMaps } = internalData
3216
3237
  const treeOpts = computeTreeOpts.value
3217
3238
  const { reserve, lazy, accordion, toggleMethod } = treeOpts
3218
3239
  const childrenField = treeOpts.children || treeOpts.childrenField
@@ -3220,6 +3241,7 @@ export default defineComponent({
3220
3241
  const result: any[] = []
3221
3242
  const columnIndex = tableMethods.getColumnIndex(treeNodeColumn)
3222
3243
  const $columnIndex = tableMethods.getVMColumnIndex(treeNodeColumn)
3244
+ const { handleGetRowId } = createHandleGetRowId($xeTable)
3223
3245
  let validRows = toggleMethod ? rows.filter((row: any) => toggleMethod({ $table: $xeTable, expanded, column: treeNodeColumn, columnIndex, $columnIndex, row })) : rows
3224
3246
  if (accordion) {
3225
3247
  validRows = validRows.length ? [validRows[validRows.length - 1]] : []
@@ -3227,17 +3249,17 @@ export default defineComponent({
3227
3249
  const matchObj = XEUtils.findTree(tableFullData, item => item === validRows[0], { children: childrenField })
3228
3250
  if (matchObj) {
3229
3251
  matchObj.items.forEach(item => {
3230
- const rowid = getRowid($xeTable, item)
3231
- if (treeTempExpandedMaps[rowid]) {
3232
- delete treeTempExpandedMaps[rowid]
3252
+ const rowid = handleGetRowId(item)
3253
+ if (treeExpandedMaps[rowid]) {
3254
+ delete treeExpandedMaps[rowid]
3233
3255
  }
3234
3256
  })
3235
3257
  }
3236
3258
  }
3237
3259
  if (expanded) {
3238
3260
  validRows.forEach((row: any) => {
3239
- const rowid = getRowid($xeTable, row)
3240
- if (!treeTempExpandedMaps[rowid]) {
3261
+ const rowid = handleGetRowId(row)
3262
+ if (!treeExpandedMaps[rowid]) {
3241
3263
  const rowRest = fullAllDataRowIdData[rowid]
3242
3264
  if (rowRest) {
3243
3265
  const isLoad = lazy && row[hasChildField] && !rowRest.treeLoaded && !treeExpandLazyLoadedMaps[rowid]
@@ -3246,7 +3268,7 @@ export default defineComponent({
3246
3268
  result.push(handleAsyncTreeExpandChilds(row))
3247
3269
  } else {
3248
3270
  if (row[childrenField] && row[childrenField].length) {
3249
- treeTempExpandedMaps[rowid] = row
3271
+ treeExpandedMaps[rowid] = row
3250
3272
  }
3251
3273
  }
3252
3274
  }
@@ -3254,16 +3276,16 @@ export default defineComponent({
3254
3276
  })
3255
3277
  } else {
3256
3278
  validRows.forEach(item => {
3257
- const rowid = getRowid($xeTable, item)
3258
- if (treeTempExpandedMaps[rowid]) {
3259
- delete treeTempExpandedMaps[rowid]
3279
+ const rowid = handleGetRowId(item)
3280
+ if (treeExpandedMaps[rowid]) {
3281
+ delete treeExpandedMaps[rowid]
3260
3282
  }
3261
3283
  })
3262
3284
  }
3263
3285
  if (reserve) {
3264
3286
  validRows.forEach((row: any) => handleTreeExpandReserve(row, expanded))
3265
3287
  }
3266
- reactData.treeExpandedMaps = treeTempExpandedMaps
3288
+ reactData.treeExpandedFlag++
3267
3289
  return Promise.all(result).then(() => {
3268
3290
  return tableMethods.recalculate()
3269
3291
  })
@@ -3329,10 +3351,11 @@ export default defineComponent({
3329
3351
  }
3330
3352
 
3331
3353
  const createGetRowCacheProp = (prop: 'seq' | 'index' | '_index' | '$index') => {
3354
+ const { handleGetRowId } = createHandleGetRowId($xeTable)
3332
3355
  return function (row: any) {
3333
3356
  const { fullAllDataRowIdData } = internalData
3334
3357
  if (row) {
3335
- const rowid = getRowid($xeTable, row)
3358
+ const rowid = handleGetRowId(row)
3336
3359
  const rowRest = fullAllDataRowIdData[rowid]
3337
3360
  if (rowRest) {
3338
3361
  return rowRest[prop]
@@ -3490,7 +3513,7 @@ export default defineComponent({
3490
3513
 
3491
3514
  const handleUpdateColResize = (evnt: MouseEvent, params: any) => {
3492
3515
  $xeTable.analyColumnWidth()
3493
- $xeTable.recalculate(true).then(() => {
3516
+ $xeTable.recalculate().then(() => {
3494
3517
  $xeTable.saveCustomStore('update:width')
3495
3518
  $xeTable.updateCellAreas()
3496
3519
  $xeTable.dispatchEvent('column-resizable-change', params, evnt)
@@ -3502,7 +3525,7 @@ export default defineComponent({
3502
3525
 
3503
3526
  const handleUpdateRowResize = (evnt: MouseEvent, params: any) => {
3504
3527
  reactData.resizeHeightFlag++
3505
- $xeTable.recalculate(true).then(() => {
3528
+ $xeTable.recalculate().then(() => {
3506
3529
  $xeTable.updateCellAreas()
3507
3530
  $xeTable.dispatchEvent('row-resizable-change', params, evnt)
3508
3531
  setTimeout(() => $xeTable.recalculate(true), 300)
@@ -3522,16 +3545,17 @@ export default defineComponent({
3522
3545
  }
3523
3546
 
3524
3547
  const updateRowOffsetTop = () => {
3525
- const { expandColumn, rowExpandedMaps } = reactData
3526
- const { afterFullData, fullAllDataRowIdData } = internalData
3548
+ const { expandColumn } = reactData
3549
+ const { afterFullData, fullAllDataRowIdData, rowExpandedMaps } = internalData
3527
3550
  const expandOpts = computeExpandOpts.value
3528
3551
  const rowOpts = computeRowOpts.value
3529
3552
  const cellOpts = computeCellOpts.value
3530
3553
  const defaultRowHeight = computeDefaultRowHeight.value
3554
+ const { handleGetRowId } = createHandleGetRowId($xeTable)
3531
3555
  let offsetTop = 0
3532
3556
  for (let rIndex = 0, rLen = afterFullData.length; rIndex < rLen; rIndex++) {
3533
3557
  const row = afterFullData[rIndex]
3534
- const rowid = getRowid($xeTable, row)
3558
+ const rowid = handleGetRowId(row)
3535
3559
  const rowRest = fullAllDataRowIdData[rowid] || {}
3536
3560
  rowRest.oTop = offsetTop
3537
3561
  offsetTop += rowRest.resizeHeight || cellOpts.height || rowOpts.height || rowRest.height || defaultRowHeight
@@ -3916,6 +3940,7 @@ export default defineComponent({
3916
3940
  const removeTempMaps = { ...editStore.removeMaps }
3917
3941
  const treeOpts = computeTreeOpts.value
3918
3942
  const { transform } = treeOpts
3943
+ const { handleGetRowId } = createHandleGetRowId($xeTable)
3919
3944
  if (!keepSource) {
3920
3945
  if (process.env.VUE_APP_VXE_ENV === 'development') {
3921
3946
  errLog('vxe.error.reqProp', ['keep-source'])
@@ -3933,7 +3958,7 @@ export default defineComponent({
3933
3958
  let reDelFlag = false
3934
3959
  if (targetRows.length) {
3935
3960
  targetRows.forEach((item: any) => {
3936
- const rowid = getRowid($xeTable, item)
3961
+ const rowid = handleGetRowId(item)
3937
3962
  const rowRest = fullAllDataRowIdData[rowid]
3938
3963
  if (rowRest) {
3939
3964
  const row = rowRest.row
@@ -4288,8 +4313,7 @@ export default defineComponent({
4288
4313
  */
4289
4314
  getCheckboxRecords (isFull) {
4290
4315
  const { treeConfig } = props
4291
- const { selectCheckboxMaps } = reactData
4292
- const { tableFullData, afterFullData, afterTreeFullData, tableFullTreeData, fullDataRowIdData, afterFullRowMaps } = internalData
4316
+ const { tableFullData, afterFullData, afterTreeFullData, tableFullTreeData, fullDataRowIdData, afterFullRowMaps, selectCheckboxMaps } = internalData
4293
4317
  const treeOpts = computeTreeOpts.value
4294
4318
  const checkboxOpts = computeCheckboxOpts.value
4295
4319
  const { transform, mapChildrenField } = treeOpts
@@ -4617,12 +4641,13 @@ export default defineComponent({
4617
4641
  },
4618
4642
  getRowHeightConf (isFull) {
4619
4643
  const { fullAllDataRowIdData, afterFullData } = internalData
4644
+ const { handleGetRowId } = createHandleGetRowId($xeTable)
4620
4645
  const rowOpts = computeRowOpts.value
4621
4646
  const cellOpts = computeCellOpts.value
4622
4647
  const defaultRowHeight = computeDefaultRowHeight.value
4623
4648
  const rest: Record<string, number> = {}
4624
4649
  afterFullData.forEach(row => {
4625
- const rowid = getRowid($xeTable, row)
4650
+ const rowid = handleGetRowId(row)
4626
4651
  const rowRest = fullAllDataRowIdData[rowid]
4627
4652
  if (rowRest) {
4628
4653
  const resizeHeight = rowRest.resizeHeight
@@ -4646,8 +4671,9 @@ export default defineComponent({
4646
4671
  rHeight = Math.floor(rHeight * bodyHeight)
4647
4672
  }
4648
4673
  if (rHeight) {
4674
+ const { handleGetRowId } = createHandleGetRowId($xeTable)
4649
4675
  rows.forEach(row => {
4650
- const rowid = XEUtils.isString(row) || XEUtils.isNumber(row) ? row : getRowid($xeTable, row)
4676
+ const rowid = XEUtils.isString(row) || XEUtils.isNumber(row) ? row : handleGetRowId(row)
4651
4677
  const rowRest = fullAllDataRowIdData[rowid]
4652
4678
  if (rowRest) {
4653
4679
  rowRest.resizeHeight = rHeight
@@ -4799,12 +4825,11 @@ export default defineComponent({
4799
4825
  */
4800
4826
  getCheckboxIndeterminateRecords (isFull) {
4801
4827
  const { treeConfig } = props
4802
- const { fullDataRowIdData } = internalData
4803
- const { treeIndeterminateMaps } = reactData
4828
+ const { fullDataRowIdData, treeIndeterminateRowMaps } = internalData
4804
4829
  if (treeConfig) {
4805
4830
  const fullRest: any[] = []
4806
4831
  const defRest: any[] = []
4807
- XEUtils.each(treeIndeterminateMaps, (item, rowid) => {
4832
+ XEUtils.each(treeIndeterminateRowMaps, (item, rowid) => {
4808
4833
  if (item) {
4809
4834
  fullRest.push(item)
4810
4835
  if (fullDataRowIdData[rowid]) {
@@ -4845,17 +4870,18 @@ export default defineComponent({
4845
4870
  return handleCheckedCheckboxRow(rows, checked, true)
4846
4871
  },
4847
4872
  isCheckedByCheckboxRow (row) {
4848
- const { selectCheckboxMaps } = reactData
4873
+ const { updateCheckboxFlag } = reactData
4874
+ const { selectCheckboxMaps } = internalData
4849
4875
  const checkboxOpts = computeCheckboxOpts.value
4850
4876
  const { checkField } = checkboxOpts
4851
4877
  if (checkField) {
4852
4878
  return XEUtils.get(row, checkField)
4853
4879
  }
4854
- return !!selectCheckboxMaps[getRowid($xeTable, row)]
4880
+ return !!updateCheckboxFlag && !!selectCheckboxMaps[getRowid($xeTable, row)]
4855
4881
  },
4856
4882
  isCheckedByCheckboxRowKey (rowid: any) {
4857
- const { selectCheckboxMaps } = reactData
4858
- const { fullAllDataRowIdData } = internalData
4883
+ const { updateCheckboxFlag } = reactData
4884
+ const { fullAllDataRowIdData, selectCheckboxMaps } = internalData
4859
4885
  const checkboxOpts = computeCheckboxOpts.value
4860
4886
  const { checkField } = checkboxOpts
4861
4887
  if (checkField) {
@@ -4865,21 +4891,21 @@ export default defineComponent({
4865
4891
  }
4866
4892
  return false
4867
4893
  }
4868
- return !!selectCheckboxMaps[rowid]
4894
+ return !!updateCheckboxFlag && !!selectCheckboxMaps[rowid]
4869
4895
  },
4870
4896
  isIndeterminateByCheckboxRow (row) {
4871
- const { treeIndeterminateMaps } = reactData
4872
- return !!treeIndeterminateMaps[getRowid($xeTable, row)] && !$xeTable.isCheckedByCheckboxRow(row)
4897
+ const { treeIndeterminateRowMaps } = internalData
4898
+ return !!treeIndeterminateRowMaps[getRowid($xeTable, row)] && !$xeTable.isCheckedByCheckboxRow(row)
4873
4899
  },
4874
4900
  isIndeterminateByCheckboxRowKey (rowid: any) {
4875
- const { treeIndeterminateMaps } = reactData
4876
- return !!treeIndeterminateMaps[rowid] && !$xeTable.isCheckedByCheckboxRowKey(rowid)
4901
+ const { treeIndeterminateRowMaps } = internalData
4902
+ return !!treeIndeterminateRowMaps[rowid] && !$xeTable.isCheckedByCheckboxRowKey(rowid)
4877
4903
  },
4878
4904
  /**
4879
4905
  * 多选,切换某一行的选中状态
4880
4906
  */
4881
4907
  toggleCheckboxRow (row) {
4882
- const { selectCheckboxMaps } = reactData
4908
+ const { selectCheckboxMaps } = internalData
4883
4909
  const checkboxOpts = computeCheckboxOpts.value
4884
4910
  const { checkField } = checkboxOpts
4885
4911
  const checked = checkField ? !XEUtils.get(row, checkField) : !selectCheckboxMaps[getRowid($xeTable, row)]
@@ -4940,14 +4966,15 @@ export default defineComponent({
4940
4966
  const childrenField = treeOpts.children || treeOpts.childrenField
4941
4967
  const reserveSelection: any[] = []
4942
4968
  if (checkboxOpts.reserve) {
4969
+ const { handleGetRowId } = createHandleGetRowId($xeTable)
4943
4970
  const afterFullIdMaps: { [key: string]: number } = {}
4944
4971
  if (treeConfig) {
4945
4972
  XEUtils.eachTree(afterFullData, row => {
4946
- afterFullIdMaps[getRowid($xeTable, row)] = 1
4973
+ afterFullIdMaps[handleGetRowId(row)] = 1
4947
4974
  }, { children: childrenField })
4948
4975
  } else {
4949
4976
  afterFullData.forEach(row => {
4950
- afterFullIdMaps[getRowid($xeTable, row)] = 1
4977
+ afterFullIdMaps[handleGetRowId(row)] = 1
4951
4978
  })
4952
4979
  }
4953
4980
  XEUtils.each(checkboxReserveRowMap, (oldRow, oldRowid) => {
@@ -5008,8 +5035,9 @@ export default defineComponent({
5008
5035
  }
5009
5036
  reactData.isAllSelected = false
5010
5037
  reactData.isIndeterminate = false
5011
- reactData.selectCheckboxMaps = {}
5012
- reactData.treeIndeterminateMaps = {}
5038
+ internalData.selectCheckboxMaps = {}
5039
+ internalData.treeIndeterminateRowMaps = {}
5040
+ reactData.updateCheckboxFlag++
5013
5041
  return nextTick()
5014
5042
  },
5015
5043
  /**
@@ -5139,57 +5167,58 @@ export default defineComponent({
5139
5167
  return nextTick()
5140
5168
  },
5141
5169
  setPendingRow (rows: any | any[], status: boolean) {
5142
- const pendingMaps = Object.assign({}, reactData.pendingRowMaps)
5170
+ const { handleGetRowId } = createHandleGetRowId($xeTable)
5171
+ const { pendingRowMaps } = internalData
5143
5172
  if (rows && !XEUtils.isArray(rows)) {
5144
5173
  rows = [rows]
5145
5174
  }
5146
5175
  if (status) {
5147
5176
  rows.forEach((row: any) => {
5148
- const rowid = getRowid($xeTable, row)
5149
- if (rowid && !pendingMaps[rowid]) {
5150
- pendingMaps[rowid] = row
5177
+ const rowid = handleGetRowId(row)
5178
+ if (rowid && !pendingRowMaps[rowid]) {
5179
+ pendingRowMaps[rowid] = row
5151
5180
  }
5152
5181
  })
5153
5182
  } else {
5154
5183
  rows.forEach((row: any) => {
5155
- const rowid = getRowid($xeTable, row)
5156
- if (rowid && pendingMaps[rowid]) {
5157
- delete pendingMaps[rowid]
5184
+ const rowid = handleGetRowId(row)
5185
+ if (rowid && pendingRowMaps[rowid]) {
5186
+ delete pendingRowMaps[rowid]
5158
5187
  }
5159
5188
  })
5160
5189
  }
5161
- reactData.pendingRowMaps = pendingMaps
5190
+ reactData.pendingRowFlag++
5162
5191
  return nextTick()
5163
5192
  },
5164
5193
  togglePendingRow (rows: any | any[]) {
5165
- const pendingMaps = Object.assign({}, reactData.pendingRowMaps)
5194
+ const { handleGetRowId } = createHandleGetRowId($xeTable)
5195
+ const { pendingRowMaps } = internalData
5166
5196
  if (rows && !XEUtils.isArray(rows)) {
5167
5197
  rows = [rows]
5168
5198
  }
5169
5199
  rows.forEach((row: any) => {
5170
- const rowid = getRowid($xeTable, row)
5200
+ const rowid = handleGetRowId(row)
5171
5201
  if (rowid) {
5172
- if (pendingMaps[rowid]) {
5173
- delete pendingMaps[rowid]
5202
+ if (pendingRowMaps[rowid]) {
5203
+ delete pendingRowMaps[rowid]
5174
5204
  } else {
5175
- pendingMaps[rowid] = row
5205
+ pendingRowMaps[rowid] = row
5176
5206
  }
5177
5207
  }
5178
5208
  })
5179
- reactData.pendingRowMaps = pendingMaps
5209
+ reactData.pendingRowFlag++
5180
5210
  return nextTick()
5181
5211
  },
5182
5212
  hasPendingByRow (row) {
5183
5213
  return tableMethods.isPendingByRow(row)
5184
5214
  },
5185
5215
  isPendingByRow (row) {
5186
- const { pendingRowMaps } = reactData
5216
+ const { pendingRowMaps } = internalData
5187
5217
  const rowid = getRowid($xeTable, row)
5188
5218
  return !!pendingRowMaps[rowid]
5189
5219
  },
5190
5220
  getPendingRecords () {
5191
- const { pendingRowMaps } = reactData
5192
- const { fullAllDataRowIdData } = internalData
5221
+ const { fullAllDataRowIdData, pendingRowMaps } = internalData
5193
5222
  const insertRecords: any[] = []
5194
5223
  XEUtils.each(pendingRowMaps, (row, rowid) => {
5195
5224
  if (fullAllDataRowIdData[rowid]) {
@@ -5199,7 +5228,8 @@ export default defineComponent({
5199
5228
  return insertRecords
5200
5229
  },
5201
5230
  clearPendingRow () {
5202
- reactData.pendingRowMaps = {}
5231
+ internalData.pendingRowMaps = {}
5232
+ reactData.pendingRowFlag++
5203
5233
  return nextTick()
5204
5234
  },
5205
5235
  sort (sortConfs: any, sortOrder?: VxeTablePropTypes.SortOrder) {
@@ -5381,17 +5411,16 @@ export default defineComponent({
5381
5411
  return rowRest && !!rowRest.expandLoaded
5382
5412
  },
5383
5413
  clearRowExpandLoaded (row) {
5384
- const rExpandLazyLoadedMaps = { ...reactData.rowExpandLazyLoadedMaps }
5385
- const { fullAllDataRowIdData } = internalData
5414
+ const { fullAllDataRowIdData, rowExpandLazyLoadedMaps } = internalData
5386
5415
  const expandOpts = computeExpandOpts.value
5387
5416
  const { lazy } = expandOpts
5388
5417
  const rowid = getRowid($xeTable, row)
5389
5418
  const rowRest = fullAllDataRowIdData[rowid]
5390
5419
  if (lazy && rowRest) {
5391
5420
  rowRest.expandLoaded = false
5392
- delete rExpandLazyLoadedMaps[rowid]
5421
+ delete rowExpandLazyLoadedMaps[rowid]
5393
5422
  }
5394
- reactData.rowExpandLazyLoadedMaps = rExpandLazyLoadedMaps
5423
+ reactData.rowExpandedFlag++
5395
5424
  return nextTick()
5396
5425
  },
5397
5426
  /**
@@ -5399,12 +5428,12 @@ export default defineComponent({
5399
5428
  * @param {Row} row 行对象
5400
5429
  */
5401
5430
  reloadRowExpand (row) {
5402
- const { rowExpandLazyLoadedMaps } = reactData
5431
+ const { rowExpandLazyLoadedMaps } = internalData
5403
5432
  const expandOpts = computeExpandOpts.value
5404
5433
  const { lazy } = expandOpts
5405
5434
  const rowid = getRowid($xeTable, row)
5406
5435
  if (lazy && !rowExpandLazyLoadedMaps[rowid]) {
5407
- tableMethods.clearRowExpandLoaded(row)
5436
+ $xeTable.clearRowExpandLoaded(row)
5408
5437
  .then(() => handleAsyncRowExpand(row))
5409
5438
  }
5410
5439
  return nextTick()
@@ -5414,13 +5443,13 @@ export default defineComponent({
5414
5443
  warnLog('vxe.error.delFunc', ['reloadExpandContent', 'reloadRowExpand'])
5415
5444
  }
5416
5445
  // 即将废弃
5417
- return tableMethods.reloadRowExpand(row)
5446
+ return $xeTable.reloadRowExpand(row)
5418
5447
  },
5419
5448
  /**
5420
5449
  * 切换展开行
5421
5450
  */
5422
5451
  toggleRowExpand (row) {
5423
- return tableMethods.setRowExpand(row, !tableMethods.isRowExpandByRow(row))
5452
+ return $xeTable.setRowExpand(row, !$xeTable.isRowExpandByRow(row))
5424
5453
  },
5425
5454
  /**
5426
5455
  * 设置所有行的展开与否
@@ -5448,9 +5477,9 @@ export default defineComponent({
5448
5477
  * @param {Boolean} expanded 是否展开
5449
5478
  */
5450
5479
  setRowExpand (rows, expanded) {
5451
- const { rowExpandedMaps, rowExpandLazyLoadedMaps, expandColumn } = reactData
5452
- const { fullAllDataRowIdData } = internalData
5453
- let rExpandedMaps = { ...rowExpandedMaps }
5480
+ const { expandColumn } = reactData
5481
+ let { fullAllDataRowIdData, rowExpandedMaps, rowExpandLazyLoadedMaps } = internalData
5482
+ const { handleGetRowId } = createHandleGetRowId($xeTable)
5454
5483
  const expandOpts = computeExpandOpts.value
5455
5484
  const { reserve, lazy, accordion, toggleMethod } = expandOpts
5456
5485
  const lazyRests: any[] = []
@@ -5462,28 +5491,29 @@ export default defineComponent({
5462
5491
  }
5463
5492
  if (accordion) {
5464
5493
  // 只能同时展开一个
5465
- rExpandedMaps = {}
5494
+ rowExpandedMaps = {}
5495
+ internalData.rowExpandedMaps = rowExpandedMaps
5466
5496
  rows = rows.slice(rows.length - 1, rows.length)
5467
5497
  }
5468
5498
  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
5499
  if (expanded) {
5470
5500
  validRows.forEach((row: any) => {
5471
- const rowid = getRowid($xeTable, row)
5472
- if (!rExpandedMaps[rowid]) {
5501
+ const rowid = handleGetRowId(row)
5502
+ if (!rowExpandedMaps[rowid]) {
5473
5503
  const rowRest = fullAllDataRowIdData[rowid]
5474
5504
  const isLoad = lazy && !rowRest.expandLoaded && !rowExpandLazyLoadedMaps[rowid]
5475
5505
  if (isLoad) {
5476
5506
  lazyRests.push(handleAsyncRowExpand(row))
5477
5507
  } else {
5478
- rExpandedMaps[rowid] = row
5508
+ rowExpandedMaps[rowid] = row
5479
5509
  }
5480
5510
  }
5481
5511
  })
5482
5512
  } else {
5483
5513
  validRows.forEach(item => {
5484
- const rowid = getRowid($xeTable, item)
5485
- if (rExpandedMaps[rowid]) {
5486
- delete rExpandedMaps[rowid]
5514
+ const rowid = handleGetRowId(item)
5515
+ if (rowExpandedMaps[rowid]) {
5516
+ delete rowExpandedMaps[rowid]
5487
5517
  }
5488
5518
  })
5489
5519
  }
@@ -5491,7 +5521,7 @@ export default defineComponent({
5491
5521
  validRows.forEach((row) => handleRowExpandReserve(row, expanded))
5492
5522
  }
5493
5523
  }
5494
- reactData.rowExpandedMaps = rExpandedMaps
5524
+ reactData.rowExpandedFlag++
5495
5525
  return Promise.all(lazyRests)
5496
5526
  .then(() => nextTick())
5497
5527
  .then(() => $xeTable.recalculate(true))
@@ -5507,9 +5537,10 @@ export default defineComponent({
5507
5537
  * @param {Row} row 行对象
5508
5538
  */
5509
5539
  isRowExpandByRow (row) {
5510
- const { rowExpandedMaps } = reactData
5540
+ const { rowExpandedFlag } = reactData
5541
+ const { rowExpandedMaps } = internalData
5511
5542
  const rowid = getRowid($xeTable, row)
5512
- return !!rowExpandedMaps[rowid]
5543
+ return !!rowExpandedFlag && !!rowExpandedMaps[rowid]
5513
5544
  },
5514
5545
  isExpandByRow (row) {
5515
5546
  // 已废弃
@@ -5526,7 +5557,8 @@ export default defineComponent({
5526
5557
  const expandOpts = computeExpandOpts.value
5527
5558
  const { reserve } = expandOpts
5528
5559
  const expList = $xeTable.getRowExpandRecords()
5529
- reactData.rowExpandedMaps = {}
5560
+ internalData.rowExpandedMaps = {}
5561
+ reactData.rowExpandedFlag++
5530
5562
  if (reserve) {
5531
5563
  tableFullData.forEach((row) => handleRowExpandReserve(row, false))
5532
5564
  }
@@ -5547,7 +5579,7 @@ export default defineComponent({
5547
5579
  },
5548
5580
  getRowExpandRecords () {
5549
5581
  const rest: any[] = []
5550
- XEUtils.each(reactData.rowExpandedMaps, item => {
5582
+ XEUtils.each(internalData.rowExpandedMaps, item => {
5551
5583
  if (item) {
5552
5584
  rest.push(item)
5553
5585
  }
@@ -5556,7 +5588,7 @@ export default defineComponent({
5556
5588
  },
5557
5589
  getTreeExpandRecords () {
5558
5590
  const rest: any[] = []
5559
- XEUtils.each(reactData.treeExpandedMaps, item => {
5591
+ XEUtils.each(internalData.treeExpandedMaps, item => {
5560
5592
  if (item) {
5561
5593
  rest.push(item)
5562
5594
  }
@@ -5573,12 +5605,10 @@ export default defineComponent({
5573
5605
  return rowRest && !!rowRest.treeLoaded
5574
5606
  },
5575
5607
  clearTreeExpandLoaded (rows: any) {
5576
- const { fullAllDataRowIdData } = internalData
5608
+ const { fullAllDataRowIdData, treeExpandedMaps } = internalData
5577
5609
  const treeOpts = computeTreeOpts.value
5578
5610
  const { transform } = treeOpts
5579
- let tExpandedMaps: Record<string, any> = {}
5580
5611
  if (rows) {
5581
- tExpandedMaps = { ...reactData.treeExpandedMaps }
5582
5612
  if (!XEUtils.isArray(rows)) {
5583
5613
  rows = [rows]
5584
5614
  }
@@ -5587,8 +5617,8 @@ export default defineComponent({
5587
5617
  const rowRest = fullAllDataRowIdData[rowid]
5588
5618
  if (rowRest) {
5589
5619
  rowRest.treeLoaded = false
5590
- if (tExpandedMaps[rowid]) {
5591
- delete tExpandedMaps[rowid]
5620
+ if (treeExpandedMaps[rowid]) {
5621
+ delete treeExpandedMaps[rowid]
5592
5622
  }
5593
5623
  }
5594
5624
  })
@@ -5597,7 +5627,8 @@ export default defineComponent({
5597
5627
  rowRest.treeLoaded = false
5598
5628
  })
5599
5629
  }
5600
- reactData.treeExpandedMaps = {}
5630
+ internalData.treeExpandedMaps = {}
5631
+ reactData.treeExpandedFlag++
5601
5632
  if (transform) {
5602
5633
  handleVirtualTreeToList()
5603
5634
  return $xeTable.handleTableData()
@@ -5609,7 +5640,7 @@ export default defineComponent({
5609
5640
  * @param {Row} row 行对象
5610
5641
  */
5611
5642
  reloadTreeExpand (row) {
5612
- const { treeExpandLazyLoadedMaps } = reactData
5643
+ const { treeExpandLazyLoadedMaps } = internalData
5613
5644
  const treeOpts = computeTreeOpts.value
5614
5645
  const hasChildField = treeOpts.hasChild || treeOpts.hasChildField
5615
5646
  const { transform, lazy } = treeOpts
@@ -5694,8 +5725,9 @@ export default defineComponent({
5694
5725
  * @param {Row} row 行对象
5695
5726
  */
5696
5727
  isTreeExpandByRow (row) {
5697
- const { treeExpandedMaps } = reactData
5698
- return !!treeExpandedMaps[getRowid($xeTable, row)]
5728
+ const { treeExpandedFlag } = reactData
5729
+ const { treeExpandedMaps } = internalData
5730
+ return !!treeExpandedFlag && !!treeExpandedMaps[getRowid($xeTable, row)]
5699
5731
  },
5700
5732
  /**
5701
5733
  * 手动清空树形节点的展开状态,数据会恢复成未展开的状态
@@ -5705,19 +5737,20 @@ export default defineComponent({
5705
5737
  const treeOpts = computeTreeOpts.value
5706
5738
  const childrenField = treeOpts.children || treeOpts.childrenField
5707
5739
  const { transform, reserve } = treeOpts
5708
- const expList = tableMethods.getTreeExpandRecords()
5709
- reactData.treeExpandedMaps = {}
5740
+ const expList = $xeTable.getTreeExpandRecords()
5741
+ internalData.treeExpandedMaps = {}
5742
+ reactData.treeExpandedFlag++
5710
5743
  if (reserve) {
5711
5744
  XEUtils.eachTree(tableFullTreeData, row => handleTreeExpandReserve(row, false), { children: childrenField })
5712
5745
  }
5713
- return tablePrivateMethods.handleTableData().then(() => {
5746
+ return $xeTable.handleTableData().then(() => {
5714
5747
  if (transform) {
5715
5748
  handleVirtualTreeToList()
5716
- return tablePrivateMethods.handleTableData()
5749
+ return $xeTable.handleTableData()
5717
5750
  }
5718
5751
  }).then(() => {
5719
5752
  if (expList.length) {
5720
- return tableMethods.recalculate()
5753
+ return $xeTable.recalculate()
5721
5754
  }
5722
5755
  })
5723
5756
  },
@@ -6991,15 +7024,13 @@ export default defineComponent({
6991
7024
  */
6992
7025
  cacheRowMap () {
6993
7026
  const { treeConfig } = props
6994
- const { treeExpandedMaps } = reactData
6995
- const { fullAllDataRowIdData, tableFullData, tableFullTreeData } = internalData
7027
+ const { fullAllDataRowIdData, tableFullData, tableFullTreeData, treeExpandedMaps } = internalData
6996
7028
  const treeOpts = computeTreeOpts.value
6997
7029
  const childrenField = treeOpts.children || treeOpts.childrenField
6998
7030
  const hasChildField = treeOpts.hasChild || treeOpts.hasChildField
6999
7031
  const { lazy } = treeOpts
7000
7032
  const fullAllDataRowIdMaps: Record<string, VxeTableDefines.RowCacheItem> = { ...fullAllDataRowIdData } // 存在已删除数据
7001
7033
  const fullDataRowIdMaps: Record<string, VxeTableDefines.RowCacheItem> = {}
7002
- const treeTempExpandedMaps = { ...treeExpandedMaps }
7003
7034
 
7004
7035
  const { handleUpdateRowId } = createHandleUpdateRowId($xeTable)
7005
7036
  const handleRowCache = (row: any, index: number, items: any, currIndex: number, parentRow: any, rowid: string, level: number, seq: string | number) => {
@@ -7027,13 +7058,12 @@ export default defineComponent({
7027
7058
  XEUtils.eachTree(tableFullTreeData, (row, index, items, path, parentRow, nodes) => {
7028
7059
  const rowid = handleUpdateRowId(row)
7029
7060
  if (treeConfig && lazy) {
7030
- const treeExpRest = treeTempExpandedMaps[rowid]
7031
7061
  if (row[hasChildField] && row[childrenField] === undefined) {
7032
7062
  row[childrenField] = null
7033
7063
  }
7034
- if (treeExpRest) {
7064
+ if (treeExpandedMaps[rowid]) {
7035
7065
  if (!row[childrenField] || !row[childrenField].length) {
7036
- delete treeTempExpandedMaps[rowid]
7066
+ delete treeExpandedMaps[rowid]
7037
7067
  }
7038
7068
  }
7039
7069
  }
@@ -7047,7 +7077,7 @@ export default defineComponent({
7047
7077
 
7048
7078
  internalData.fullDataRowIdData = fullDataRowIdMaps
7049
7079
  internalData.fullAllDataRowIdData = fullAllDataRowIdMaps
7050
- reactData.treeExpandedMaps = treeTempExpandedMaps
7080
+ reactData.treeExpandedFlag++
7051
7081
  },
7052
7082
  cacheSourceMap (fullData) {
7053
7083
  const { treeConfig } = props
@@ -7539,9 +7569,7 @@ export default defineComponent({
7539
7569
  },
7540
7570
  updateCheckboxStatus () {
7541
7571
  const { treeConfig } = props
7542
- const { selectCheckboxMaps, treeIndeterminateMaps } = reactData
7543
- const selectRowMaps = Object.assign({}, selectCheckboxMaps)
7544
- const halfRowMaps = Object.assign({}, treeIndeterminateMaps)
7572
+ const { selectCheckboxMaps, treeIndeterminateRowMaps } = internalData
7545
7573
  const treeOpts = computeTreeOpts.value
7546
7574
  const { transform, mapChildrenField } = treeOpts
7547
7575
  const childrenField = treeOpts.children || treeOpts.childrenField
@@ -7575,28 +7603,28 @@ export default defineComponent({
7575
7603
  checkMethod
7576
7604
  ? (item) => {
7577
7605
  const childRowid = handleGetRowId(item)
7578
- const isSelect = checkField ? XEUtils.get(item, checkField) : selectRowMaps[childRowid]
7606
+ const isSelect = checkField ? XEUtils.get(item, checkField) : selectCheckboxMaps[childRowid]
7579
7607
  if (checkMethod({ row: item })) {
7580
7608
  if (isSelect) {
7581
7609
  sLen++
7582
- } else if (halfRowMaps[childRowid]) {
7610
+ } else if (treeIndeterminateRowMaps[childRowid]) {
7583
7611
  hLen++
7584
7612
  }
7585
7613
  vLen++
7586
7614
  } else {
7587
7615
  if (isSelect) {
7588
7616
  sLen++
7589
- } else if (halfRowMaps[childRowid]) {
7617
+ } else if (treeIndeterminateRowMaps[childRowid]) {
7590
7618
  hLen++
7591
7619
  }
7592
7620
  }
7593
7621
  }
7594
7622
  : item => {
7595
7623
  const childRowid = handleGetRowId(item)
7596
- const isSelect = checkField ? XEUtils.get(item, checkField) : selectRowMaps[childRowid]
7624
+ const isSelect = checkField ? XEUtils.get(item, checkField) : selectCheckboxMaps[childRowid]
7597
7625
  if (isSelect) {
7598
7626
  sLen++
7599
- } else if (halfRowMaps[childRowid]) {
7627
+ } else if (treeIndeterminateRowMaps[childRowid]) {
7600
7628
  hLen++
7601
7629
  }
7602
7630
  vLen++
@@ -7609,36 +7637,34 @@ export default defineComponent({
7609
7637
  }
7610
7638
  if (isSelected) {
7611
7639
  if (!checkField) {
7612
- selectRowMaps[rowid] = row
7640
+ selectCheckboxMaps[rowid] = row
7613
7641
  }
7614
- if (halfRowMaps[rowid]) {
7615
- delete halfRowMaps[rowid]
7642
+ if (treeIndeterminateRowMaps[rowid]) {
7643
+ delete treeIndeterminateRowMaps[rowid]
7616
7644
  }
7617
7645
  } else {
7618
7646
  if (!checkField) {
7619
- if (selectRowMaps[rowid]) {
7620
- delete selectRowMaps[rowid]
7647
+ if (selectCheckboxMaps[rowid]) {
7648
+ delete selectCheckboxMaps[rowid]
7621
7649
  }
7622
7650
  }
7623
7651
  if (halfSelect) {
7624
- halfRowMaps[rowid] = row
7652
+ treeIndeterminateRowMaps[rowid] = row
7625
7653
  } else {
7626
- if (halfRowMaps[rowid]) {
7627
- delete halfRowMaps[rowid]
7654
+ if (treeIndeterminateRowMaps[rowid]) {
7655
+ delete treeIndeterminateRowMaps[rowid]
7628
7656
  }
7629
7657
  }
7630
7658
  }
7631
7659
  })
7632
7660
  }
7633
- reactData.selectCheckboxMaps = selectRowMaps
7634
- reactData.treeIndeterminateMaps = halfRowMaps
7661
+ reactData.updateCheckboxFlag++
7635
7662
  },
7636
7663
  updateAllCheckboxStatus () {
7637
7664
  const { treeConfig } = props
7638
- const { selectCheckboxMaps, treeIndeterminateMaps } = reactData
7665
+ const { afterFullData, afterTreeFullData, checkboxReserveRowMap, selectCheckboxMaps, treeIndeterminateRowMaps } = internalData
7639
7666
  const checkboxOpts = computeCheckboxOpts.value
7640
7667
  const { checkField, checkMethod, showReserveStatus } = checkboxOpts
7641
- const { afterFullData, afterTreeFullData, checkboxReserveRowMap } = internalData
7642
7668
  const { handleGetRowId } = createHandleGetRowId($xeTable)
7643
7669
 
7644
7670
  let sLen = 0 // 已选
@@ -7653,14 +7679,14 @@ export default defineComponent({
7653
7679
  if (checkMethod({ row })) {
7654
7680
  if (selected) {
7655
7681
  sLen++
7656
- } else if (treeIndeterminateMaps[childRowid]) {
7682
+ } else if (treeIndeterminateRowMaps[childRowid]) {
7657
7683
  hLen++
7658
7684
  }
7659
7685
  vLen++
7660
7686
  } else {
7661
7687
  if (selected) {
7662
7688
  sLen++
7663
- } else if (treeIndeterminateMaps[childRowid]) {
7689
+ } else if (treeIndeterminateRowMaps[childRowid]) {
7664
7690
  hLen++
7665
7691
  }
7666
7692
  }
@@ -7670,7 +7696,7 @@ export default defineComponent({
7670
7696
  const selected = checkField ? XEUtils.get(row, checkField) : selectCheckboxMaps[childRowid]
7671
7697
  if (selected) {
7672
7698
  sLen++
7673
- } else if (treeIndeterminateMaps[childRowid]) {
7699
+ } else if (treeIndeterminateRowMaps[childRowid]) {
7674
7700
  hLen++
7675
7701
  }
7676
7702
  vLen++
@@ -7697,8 +7723,7 @@ export default defineComponent({
7697
7723
  */
7698
7724
  handleBatchSelectRows (rows, checked, isForce) {
7699
7725
  const { treeConfig } = props
7700
- const { selectCheckboxMaps } = reactData
7701
- const selectRowMaps = Object.assign({}, selectCheckboxMaps)
7726
+ const { selectCheckboxMaps } = internalData
7702
7727
  const treeOpts = computeTreeOpts.value
7703
7728
  const { transform, mapChildrenField } = treeOpts
7704
7729
  const childrenField = treeOpts.children || treeOpts.childrenField
@@ -7720,18 +7745,17 @@ export default defineComponent({
7720
7745
  handleCheckboxReserveRow(row, checked)
7721
7746
  }
7722
7747
  }, { children: transform ? mapChildrenField : childrenField })
7723
- reactData.selectCheckboxMaps = selectRowMaps
7748
+ reactData.updateCheckboxFlag++
7724
7749
  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
7750
  }
7734
- reactData.selectCheckboxMaps = selectRowMaps
7751
+ // 列表
7752
+ rows.forEach(row => {
7753
+ if (isForce || (!checkMethod || checkMethod({ row }))) {
7754
+ XEUtils.set(row, checkField, checked)
7755
+ handleCheckboxReserveRow(row, checked)
7756
+ }
7757
+ })
7758
+ reactData.updateCheckboxFlag++
7735
7759
  return
7736
7760
  }
7737
7761
 
@@ -7742,16 +7766,16 @@ export default defineComponent({
7742
7766
  const rowid = handleGetRowId(row)
7743
7767
  if (isForce || (!checkMethod || checkMethod({ row }))) {
7744
7768
  if (checked) {
7745
- selectRowMaps[rowid] = row
7769
+ selectCheckboxMaps[rowid] = row
7746
7770
  } else {
7747
- if (selectRowMaps[rowid]) {
7748
- delete selectRowMaps[rowid]
7771
+ if (selectCheckboxMaps[rowid]) {
7772
+ delete selectCheckboxMaps[rowid]
7749
7773
  }
7750
7774
  }
7751
7775
  handleCheckboxReserveRow(row, checked)
7752
7776
  }
7753
7777
  }, { children: transform ? mapChildrenField : childrenField })
7754
- reactData.selectCheckboxMaps = selectRowMaps
7778
+ reactData.updateCheckboxFlag++
7755
7779
  return
7756
7780
  }
7757
7781
 
@@ -7760,18 +7784,18 @@ export default defineComponent({
7760
7784
  const rowid = handleGetRowId(row)
7761
7785
  if (isForce || (!checkMethod || checkMethod({ row }))) {
7762
7786
  if (checked) {
7763
- if (!selectRowMaps[rowid]) {
7764
- selectRowMaps[rowid] = row
7787
+ if (!selectCheckboxMaps[rowid]) {
7788
+ selectCheckboxMaps[rowid] = row
7765
7789
  }
7766
7790
  } else {
7767
- if (selectRowMaps[rowid]) {
7768
- delete selectRowMaps[rowid]
7791
+ if (selectCheckboxMaps[rowid]) {
7792
+ delete selectCheckboxMaps[rowid]
7769
7793
  }
7770
7794
  }
7771
7795
  handleCheckboxReserveRow(row, checked)
7796
+ reactData.updateCheckboxFlag++
7772
7797
  }
7773
7798
  })
7774
- reactData.selectCheckboxMaps = selectRowMaps
7775
7799
  },
7776
7800
  /**
7777
7801
  * 即将移除
@@ -8037,7 +8061,7 @@ export default defineComponent({
8037
8061
  dispatchEvent('cell-dblclick', params, evnt)
8038
8062
  },
8039
8063
  handleToggleCheckRowEvent (evnt, params) {
8040
- const { selectCheckboxMaps } = reactData
8064
+ const { selectCheckboxMaps } = internalData
8041
8065
  const checkboxOpts = computeCheckboxOpts.value
8042
8066
  const { checkField, trigger } = checkboxOpts
8043
8067
  const { row } = params
@@ -8051,10 +8075,10 @@ export default defineComponent({
8051
8075
  checked = !selectCheckboxMaps[getRowid($xeTable, row)]
8052
8076
  }
8053
8077
  if (evnt) {
8054
- tablePrivateMethods.triggerCheckRowEvent(evnt, params, checked)
8078
+ $xeTable.triggerCheckRowEvent(evnt, params, checked)
8055
8079
  } else {
8056
- tablePrivateMethods.handleBatchSelectRows([row], checked)
8057
- tablePrivateMethods.checkSelectionStatus()
8080
+ $xeTable.handleBatchSelectRows([row], checked)
8081
+ $xeTable.checkSelectionStatus()
8058
8082
  }
8059
8083
  },
8060
8084
  triggerCheckRowEvent (evnt: MouseEvent, params, checked) {
@@ -8160,7 +8184,8 @@ export default defineComponent({
8160
8184
  * 展开行事件
8161
8185
  */
8162
8186
  triggerRowExpandEvent (evnt, params) {
8163
- const { rowExpandLazyLoadedMaps, expandColumn: column } = reactData
8187
+ const { expandColumn: column } = reactData
8188
+ const { rowExpandLazyLoadedMaps } = internalData
8164
8189
  const expandOpts = computeExpandOpts.value
8165
8190
  const { row } = params
8166
8191
  const { lazy, trigger } = expandOpts
@@ -8170,18 +8195,18 @@ export default defineComponent({
8170
8195
  evnt.stopPropagation()
8171
8196
  const rowid = getRowid($xeTable, row)
8172
8197
  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)
8198
+ const expanded = !$xeTable.isRowExpandByRow(row)
8199
+ const columnIndex = $xeTable.getColumnIndex(column)
8200
+ const $columnIndex = $xeTable.getVMColumnIndex(column)
8201
+ $xeTable.setRowExpand(row, expanded)
8177
8202
  dispatchEvent('toggle-row-expand', {
8178
8203
  expanded,
8179
8204
  column,
8180
8205
  columnIndex,
8181
8206
  $columnIndex,
8182
8207
  row,
8183
- rowIndex: tableMethods.getRowIndex(row),
8184
- $rowIndex: tableMethods.getVMRowIndex(row)
8208
+ rowIndex: $xeTable.getRowIndex(row),
8209
+ $rowIndex: $xeTable.getVMRowIndex(row)
8185
8210
  }, evnt)
8186
8211
  }
8187
8212
  },
@@ -8189,7 +8214,7 @@ export default defineComponent({
8189
8214
  * 展开树节点事件
8190
8215
  */
8191
8216
  triggerTreeExpandEvent (evnt, params) {
8192
- const { treeExpandLazyLoadedMaps } = reactData
8217
+ const { treeExpandLazyLoadedMaps } = internalData
8193
8218
  const treeOpts = computeTreeOpts.value
8194
8219
  const { row, column } = params
8195
8220
  const { lazy, trigger } = treeOpts
@@ -8199,10 +8224,10 @@ export default defineComponent({
8199
8224
  evnt.stopPropagation()
8200
8225
  const rowid = getRowid($xeTable, row)
8201
8226
  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)
8227
+ const expanded = !$xeTable.isTreeExpandByRow(row)
8228
+ const columnIndex = $xeTable.getColumnIndex(column)
8229
+ const $columnIndex = $xeTable.getVMColumnIndex(column)
8230
+ $xeTable.setTreeExpand(row, expanded)
8206
8231
  dispatchEvent('toggle-tree-expand', { expanded, column, columnIndex, $columnIndex, row }, evnt)
8207
8232
  }
8208
8233
  },
@@ -8346,12 +8371,11 @@ export default defineComponent({
8346
8371
  handleRowDragSwapEvent (evnt, isSyncRow, dragRow, prevDragRow, prevDragPos, prevDragToChild) {
8347
8372
  const { treeConfig, dragConfig } = props
8348
8373
  const rowDragOpts = computeRowDragOpts.value
8349
- const { fullAllDataRowIdData } = internalData
8374
+ const { afterFullData, tableFullData, fullAllDataRowIdData } = internalData
8350
8375
  const { isPeerDrag, isCrossDrag, isSelfToChildDrag, dragEndMethod, dragToChildMethod } = rowDragOpts
8351
8376
  const treeOpts = computeTreeOpts.value
8352
8377
  const { transform, rowField, mapChildrenField, parentField } = treeOpts
8353
8378
  const childrenField = treeOpts.children || treeOpts.childrenField
8354
- const { afterFullData, tableFullData } = internalData
8355
8379
  const dEndMethod = dragEndMethod || (dragConfig ? dragConfig.dragEndMethod : null)
8356
8380
  const dragOffsetIndex = prevDragPos === 'bottom' ? 1 : 0
8357
8381
  const errRest = {
@@ -9479,8 +9503,8 @@ export default defineComponent({
9479
9503
  },
9480
9504
  // 更新纵向 Y 可视渲染上下剩余空间大小
9481
9505
  updateScrollYSpace () {
9482
- const { isAllOverflow, scrollYLoad, expandColumn, rowExpandedMaps } = reactData
9483
- const { scrollYStore, elemStore, isResizeCellHeight, afterFullData, fullAllDataRowIdData } = internalData
9506
+ const { isAllOverflow, scrollYLoad, expandColumn } = reactData
9507
+ const { scrollYStore, elemStore, isResizeCellHeight, afterFullData, fullAllDataRowIdData, rowExpandedMaps } = internalData
9484
9508
  const { startIndex } = scrollYStore
9485
9509
  const expandOpts = computeExpandOpts.value
9486
9510
  const rowOpts = computeRowOpts.value
@@ -9829,6 +9853,7 @@ export default defineComponent({
9829
9853
  ]
9830
9854
 
9831
9855
  if (expandColumn) {
9856
+ const { handleGetRowId } = createHandleGetRowId($xeTable)
9832
9857
  tableRowExpandedList.forEach((row) => {
9833
9858
  const expandOpts = computeExpandOpts.value
9834
9859
  const { height: expandHeight, padding } = expandOpts
@@ -9836,7 +9861,7 @@ export default defineComponent({
9836
9861
  const treeOpts = computeTreeOpts.value
9837
9862
  const { transform, seqMode } = treeOpts
9838
9863
  const cellStyle: Record<string, string> = {}
9839
- const rowid = getRowid($xeTable, row)
9864
+ const rowid = handleGetRowId(row)
9840
9865
  const rest = fullAllDataRowIdData[rowid]
9841
9866
  let rowLevel = 0
9842
9867
  let seq: string | number = -1