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.
- package/es/style.css +1 -1
- package/es/table/module/edit/hook.js +8 -10
- package/es/table/module/validator/hook.js +2 -2
- package/es/table/src/body.js +10 -10
- package/es/table/src/cell.js +15 -11
- package/es/table/src/table.js +255 -234
- package/es/table/src/util.js +2 -2
- package/es/ui/index.js +1 -1
- package/es/ui/src/log.js +1 -1
- package/lib/index.umd.js +127 -117
- package/lib/index.umd.min.js +1 -1
- package/lib/style.css +1 -1
- package/lib/table/module/edit/hook.js +10 -11
- package/lib/table/module/edit/hook.min.js +1 -1
- package/lib/table/module/validator/hook.js +3 -3
- package/lib/table/module/validator/hook.min.js +1 -1
- package/lib/table/src/body.js +16 -11
- package/lib/table/src/body.min.js +1 -1
- package/lib/table/src/cell.js +22 -13
- package/lib/table/src/cell.min.js +1 -1
- package/lib/table/src/table.js +333 -265
- package/lib/table/src/table.min.js +1 -1
- package/lib/table/src/util.js +2 -2
- package/lib/table/src/util.min.js +1 -1
- package/lib/ui/index.js +1 -1
- package/lib/ui/index.min.js +1 -1
- package/lib/ui/src/log.js +1 -1
- package/lib/ui/src/log.min.js +1 -1
- package/package.json +2 -2
- package/packages/table/module/edit/hook.ts +8 -10
- package/packages/table/module/validator/hook.ts +2 -2
- package/packages/table/src/body.ts +10 -10
- package/packages/table/src/cell.ts +15 -11
- package/packages/table/src/table.ts +257 -233
- package/packages/table/src/util.ts +2 -2
- /package/es/{iconfont.1742353689933.ttf → iconfont.1742437957812.ttf} +0 -0
- /package/es/{iconfont.1742353689933.woff → iconfont.1742437957812.woff} +0 -0
- /package/es/{iconfont.1742353689933.woff2 → iconfont.1742437957812.woff2} +0 -0
- /package/lib/{iconfont.1742353689933.ttf → iconfont.1742437957812.ttf} +0 -0
- /package/lib/{iconfont.1742353689933.woff → iconfont.1742437957812.woff} +0 -0
- /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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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 {
|
|
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[
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 } =
|
|
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 =
|
|
1696
|
-
const parentRowid =
|
|
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 } =
|
|
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[
|
|
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.
|
|
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,
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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 } =
|
|
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
|
|
2590
|
-
const { treeExpandedMaps } =
|
|
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 &&
|
|
2620
|
+
if (!checkStrictly && $xeTable.isCheckedByCheckboxRow(row)) {
|
|
2596
2621
|
handleCheckedCheckboxRow(childRows, true)
|
|
2597
2622
|
}
|
|
2598
2623
|
return nextTick().then(() => {
|
|
2599
2624
|
if (transform) {
|
|
2600
|
-
|
|
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 } =
|
|
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
|
-
|
|
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
|
-
|
|
2647
|
-
|
|
2648
|
-
|
|
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
|
-
|
|
2654
|
-
reactData.
|
|
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
|
|
2661
|
-
if (
|
|
2662
|
-
delete
|
|
2684
|
+
const { rowExpandLazyLoadedMaps } = internalData
|
|
2685
|
+
if (rowExpandLazyLoadedMaps[rowid]) {
|
|
2686
|
+
delete rowExpandLazyLoadedMaps[rowid]
|
|
2663
2687
|
}
|
|
2664
|
-
reactData.
|
|
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 {
|
|
3214
|
-
const
|
|
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 =
|
|
3231
|
-
if (
|
|
3232
|
-
delete
|
|
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 =
|
|
3240
|
-
if (!
|
|
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
|
-
|
|
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 =
|
|
3258
|
-
if (
|
|
3259
|
-
delete
|
|
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.
|
|
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 =
|
|
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(
|
|
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(
|
|
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
|
|
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 =
|
|
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 =
|
|
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 } =
|
|
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 =
|
|
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 :
|
|
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(
|
|
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 {
|
|
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 {
|
|
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 {
|
|
4872
|
-
return !!
|
|
4896
|
+
const { treeIndeterminateRowMaps } = internalData
|
|
4897
|
+
return !!treeIndeterminateRowMaps[getRowid($xeTable, row)] && !$xeTable.isCheckedByCheckboxRow(row)
|
|
4873
4898
|
},
|
|
4874
4899
|
isIndeterminateByCheckboxRowKey (rowid: any) {
|
|
4875
|
-
const {
|
|
4876
|
-
return !!
|
|
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 } =
|
|
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[
|
|
4972
|
+
afterFullIdMaps[handleGetRowId(row)] = 1
|
|
4947
4973
|
}, { children: childrenField })
|
|
4948
4974
|
} else {
|
|
4949
4975
|
afterFullData.forEach(row => {
|
|
4950
|
-
afterFullIdMaps[
|
|
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
|
-
|
|
5012
|
-
|
|
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
|
|
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 =
|
|
5149
|
-
if (rowid && !
|
|
5150
|
-
|
|
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 =
|
|
5156
|
-
if (rowid &&
|
|
5157
|
-
delete
|
|
5183
|
+
const rowid = handleGetRowId(row)
|
|
5184
|
+
if (rowid && pendingRowMaps[rowid]) {
|
|
5185
|
+
delete pendingRowMaps[rowid]
|
|
5158
5186
|
}
|
|
5159
5187
|
})
|
|
5160
5188
|
}
|
|
5161
|
-
reactData.
|
|
5189
|
+
reactData.pendingRowFlag++
|
|
5162
5190
|
return nextTick()
|
|
5163
5191
|
},
|
|
5164
5192
|
togglePendingRow (rows: any | any[]) {
|
|
5165
|
-
const
|
|
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 =
|
|
5199
|
+
const rowid = handleGetRowId(row)
|
|
5171
5200
|
if (rowid) {
|
|
5172
|
-
if (
|
|
5173
|
-
delete
|
|
5201
|
+
if (pendingRowMaps[rowid]) {
|
|
5202
|
+
delete pendingRowMaps[rowid]
|
|
5174
5203
|
} else {
|
|
5175
|
-
|
|
5204
|
+
pendingRowMaps[rowid] = row
|
|
5176
5205
|
}
|
|
5177
5206
|
}
|
|
5178
5207
|
})
|
|
5179
|
-
reactData.
|
|
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 } =
|
|
5215
|
+
const { pendingRowMaps } = internalData
|
|
5187
5216
|
const rowid = getRowid($xeTable, row)
|
|
5188
5217
|
return !!pendingRowMaps[rowid]
|
|
5189
5218
|
},
|
|
5190
5219
|
getPendingRecords () {
|
|
5191
|
-
const { pendingRowMaps } =
|
|
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
|
-
|
|
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
|
|
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
|
|
5420
|
+
delete rowExpandLazyLoadedMaps[rowid]
|
|
5393
5421
|
}
|
|
5394
|
-
reactData.
|
|
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 } =
|
|
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
|
-
|
|
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
|
|
5445
|
+
return $xeTable.reloadRowExpand(row)
|
|
5418
5446
|
},
|
|
5419
5447
|
/**
|
|
5420
5448
|
* 切换展开行
|
|
5421
5449
|
*/
|
|
5422
5450
|
toggleRowExpand (row) {
|
|
5423
|
-
return
|
|
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 {
|
|
5452
|
-
|
|
5453
|
-
|
|
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
|
-
|
|
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 =
|
|
5472
|
-
if (!
|
|
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
|
-
|
|
5507
|
+
rowExpandedMaps[rowid] = row
|
|
5479
5508
|
}
|
|
5480
5509
|
}
|
|
5481
5510
|
})
|
|
5482
5511
|
} else {
|
|
5483
5512
|
validRows.forEach(item => {
|
|
5484
|
-
const rowid =
|
|
5485
|
-
if (
|
|
5486
|
-
delete
|
|
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.
|
|
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 {
|
|
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
|
-
|
|
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(
|
|
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(
|
|
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 (
|
|
5591
|
-
delete
|
|
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
|
-
|
|
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 } =
|
|
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 {
|
|
5698
|
-
|
|
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 =
|
|
5709
|
-
|
|
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
|
|
5745
|
+
return $xeTable.handleTableData().then(() => {
|
|
5714
5746
|
if (transform) {
|
|
5715
5747
|
handleVirtualTreeToList()
|
|
5716
|
-
return
|
|
5748
|
+
return $xeTable.handleTableData()
|
|
5717
5749
|
}
|
|
5718
5750
|
}).then(() => {
|
|
5719
5751
|
if (expList.length) {
|
|
5720
|
-
return
|
|
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 } =
|
|
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 (
|
|
7063
|
+
if (treeExpandedMaps[rowid]) {
|
|
7035
7064
|
if (!row[childrenField] || !row[childrenField].length) {
|
|
7036
|
-
delete
|
|
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.
|
|
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,
|
|
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) :
|
|
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 (
|
|
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 (
|
|
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) :
|
|
7623
|
+
const isSelect = checkField ? XEUtils.get(item, checkField) : selectCheckboxMaps[childRowid]
|
|
7597
7624
|
if (isSelect) {
|
|
7598
7625
|
sLen++
|
|
7599
|
-
} else if (
|
|
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
|
-
|
|
7639
|
+
selectCheckboxMaps[rowid] = row
|
|
7613
7640
|
}
|
|
7614
|
-
if (
|
|
7615
|
-
delete
|
|
7641
|
+
if (treeIndeterminateRowMaps[rowid]) {
|
|
7642
|
+
delete treeIndeterminateRowMaps[rowid]
|
|
7616
7643
|
}
|
|
7617
7644
|
} else {
|
|
7618
7645
|
if (!checkField) {
|
|
7619
|
-
if (
|
|
7620
|
-
delete
|
|
7646
|
+
if (selectCheckboxMaps[rowid]) {
|
|
7647
|
+
delete selectCheckboxMaps[rowid]
|
|
7621
7648
|
}
|
|
7622
7649
|
}
|
|
7623
7650
|
if (halfSelect) {
|
|
7624
|
-
|
|
7651
|
+
treeIndeterminateRowMaps[rowid] = row
|
|
7625
7652
|
} else {
|
|
7626
|
-
if (
|
|
7627
|
-
delete
|
|
7653
|
+
if (treeIndeterminateRowMaps[rowid]) {
|
|
7654
|
+
delete treeIndeterminateRowMaps[rowid]
|
|
7628
7655
|
}
|
|
7629
7656
|
}
|
|
7630
7657
|
}
|
|
7631
7658
|
})
|
|
7632
7659
|
}
|
|
7633
|
-
reactData.
|
|
7634
|
-
reactData.treeIndeterminateMaps = halfRowMaps
|
|
7660
|
+
reactData.updateCheckboxFlag++
|
|
7635
7661
|
},
|
|
7636
7662
|
updateAllCheckboxStatus () {
|
|
7637
7663
|
const { treeConfig } = props
|
|
7638
|
-
const { selectCheckboxMaps,
|
|
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 (
|
|
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 (
|
|
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 (
|
|
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 } =
|
|
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.
|
|
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
|
-
|
|
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
|
-
|
|
7768
|
+
selectCheckboxMaps[rowid] = row
|
|
7746
7769
|
} else {
|
|
7747
|
-
if (
|
|
7748
|
-
delete
|
|
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.
|
|
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 (!
|
|
7764
|
-
|
|
7786
|
+
if (!selectCheckboxMaps[rowid]) {
|
|
7787
|
+
selectCheckboxMaps[rowid] = row
|
|
7765
7788
|
}
|
|
7766
7789
|
} else {
|
|
7767
|
-
if (
|
|
7768
|
-
delete
|
|
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 } =
|
|
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
|
-
|
|
8077
|
+
$xeTable.triggerCheckRowEvent(evnt, params, checked)
|
|
8055
8078
|
} else {
|
|
8056
|
-
|
|
8057
|
-
|
|
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 {
|
|
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 =
|
|
8174
|
-
const columnIndex =
|
|
8175
|
-
const $columnIndex =
|
|
8176
|
-
|
|
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:
|
|
8184
|
-
$rowIndex:
|
|
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 } =
|
|
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 =
|
|
8203
|
-
const columnIndex =
|
|
8204
|
-
const $columnIndex =
|
|
8205
|
-
|
|
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
|
|
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 =
|
|
9863
|
+
const rowid = handleGetRowId(row)
|
|
9840
9864
|
const rest = fullAllDataRowIdData[rowid]
|
|
9841
9865
|
let rowLevel = 0
|
|
9842
9866
|
let seq: string | number = -1
|