hy-virtual-tree 1.1.51 → 1.1.52
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/CHANGELOG.md +7 -0
- package/dist/index.js +49 -7
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
package/dist/index.js
CHANGED
|
@@ -1503,6 +1503,51 @@ function useCheck(props, tree) {
|
|
|
1503
1503
|
updateCheckedKeys();
|
|
1504
1504
|
}
|
|
1505
1505
|
}
|
|
1506
|
+
// 获取切换选中后的值
|
|
1507
|
+
function getSwitchCheckedValue(node) {
|
|
1508
|
+
if (!isIndeterminate(node) || props.rowSelection.checkStrictly || !node.children?.length)
|
|
1509
|
+
return !isChecked(node);
|
|
1510
|
+
const { isAllSelect } = getNodeCheckInfo(node.children || []);
|
|
1511
|
+
console.log('isAllSelect', isAllSelect);
|
|
1512
|
+
return !isAllSelect;
|
|
1513
|
+
}
|
|
1514
|
+
// 获取当前项选中信息
|
|
1515
|
+
function getNodeCheckInfo(children) {
|
|
1516
|
+
const { checkStrictly } = props.rowSelection;
|
|
1517
|
+
let isAllDisabled = true;
|
|
1518
|
+
let isCanAllSelect = true;
|
|
1519
|
+
let isAllSelect = true;
|
|
1520
|
+
for (const node of children) {
|
|
1521
|
+
if (isChecked(node))
|
|
1522
|
+
continue;
|
|
1523
|
+
// 严格模式 或 非严格模式下没有子元素
|
|
1524
|
+
if (checkStrictly || (!checkStrictly && !node.children?.length)) {
|
|
1525
|
+
if (getDisabled(props, node)) {
|
|
1526
|
+
isCanAllSelect = false;
|
|
1527
|
+
}
|
|
1528
|
+
else if (!isChecked(node)) {
|
|
1529
|
+
isAllSelect = false;
|
|
1530
|
+
isAllDisabled = false;
|
|
1531
|
+
}
|
|
1532
|
+
if (!isAllDisabled && !isCanAllSelect && !isAllSelect) {
|
|
1533
|
+
break;
|
|
1534
|
+
}
|
|
1535
|
+
}
|
|
1536
|
+
// 递归子元素
|
|
1537
|
+
if (node.children?.length) {
|
|
1538
|
+
const checkInfo = getNodeCheckInfo(node.children);
|
|
1539
|
+
if (!checkStrictly) {
|
|
1540
|
+
isAllDisabled = checkInfo.isAllDisabled && isAllDisabled;
|
|
1541
|
+
isCanAllSelect = checkInfo.isCanAllSelect && isCanAllSelect;
|
|
1542
|
+
isAllSelect = checkInfo.isAllSelect && isAllSelect;
|
|
1543
|
+
}
|
|
1544
|
+
}
|
|
1545
|
+
if (!isAllDisabled && !isCanAllSelect && !isAllSelect) {
|
|
1546
|
+
break;
|
|
1547
|
+
}
|
|
1548
|
+
}
|
|
1549
|
+
return { isAllDisabled, isCanAllSelect, isAllSelect };
|
|
1550
|
+
}
|
|
1506
1551
|
return {
|
|
1507
1552
|
checkedKeys,
|
|
1508
1553
|
updateCheckedKeys,
|
|
@@ -1518,7 +1563,8 @@ function useCheck(props, tree) {
|
|
|
1518
1563
|
getHalfCheckedNodes,
|
|
1519
1564
|
setChecked,
|
|
1520
1565
|
setCheckedKeys,
|
|
1521
|
-
setCheckedNodes
|
|
1566
|
+
setCheckedNodes,
|
|
1567
|
+
getSwitchCheckedValue,
|
|
1522
1568
|
};
|
|
1523
1569
|
}
|
|
1524
1570
|
|
|
@@ -9091,7 +9137,7 @@ class VirtualTree {
|
|
|
9091
9137
|
getCheckedKeys, getCheckedNodes,
|
|
9092
9138
|
// getHalfCheckedKeys,
|
|
9093
9139
|
// getHalfCheckedNodes,
|
|
9094
|
-
setChecked, setCheckedKeys, setCheckedNodes } = useCheck(config, this._tree);
|
|
9140
|
+
setChecked, setCheckedKeys, setCheckedNodes, getSwitchCheckedValue, } = useCheck(config, this._tree);
|
|
9095
9141
|
this._updateCheckedKeys = updateCheckedKeys;
|
|
9096
9142
|
this.getChecked = getChecked;
|
|
9097
9143
|
this.getCheckedKeys = getCheckedKeys;
|
|
@@ -9230,11 +9276,7 @@ class VirtualTree {
|
|
|
9230
9276
|
onClick: () => {
|
|
9231
9277
|
if (getDisabled(config, item))
|
|
9232
9278
|
return;
|
|
9233
|
-
item
|
|
9234
|
-
toggleCheckbox(item, item.checkedMark, true, true, false, this._hiddenNodeKeySet);
|
|
9235
|
-
if (isChecked(item) || isIndeterminate(item)) {
|
|
9236
|
-
item.checkedMark = true;
|
|
9237
|
-
}
|
|
9279
|
+
toggleCheckbox(item, getSwitchCheckedValue(item), true, true, false, this._hiddenNodeKeySet);
|
|
9238
9280
|
this.refresh();
|
|
9239
9281
|
}
|
|
9240
9282
|
}).mount(el);
|