优化BasicSelectTree

master
LiuJiaNan 2025-12-11 09:06:30 +08:00
parent 325227b0fb
commit c189725deb
1 changed files with 14 additions and 10 deletions

View File

@ -40,22 +40,25 @@ function BasicSelectTree(props) {
if (getDataType(value) === "Array") {
const parentNodes = [];
for (let i = 0; i < value.length; i++) {
const targetId = (restProps.labelInValue || restProps.treeCheckStrictly) ? value[i].value : value[i];
const currentParentNodes = getTreeNodePaths({
data: treeData,
targetId: value[i],
targetId,
idKey,
childrenKey,
isIncludeOneself: onGetNodePathsIsIncludeOneself,
});
parentNodes.push(...currentParentNodes);
}
onGetNodePaths?.(arrayObjectDeduplication(parentNodes, idKey));
onGetLabel?.(label);
const deduplicationParentNodes = arrayObjectDeduplication(parentNodes, idKey);
onGetNodePaths?.(deduplicationParentNodes);
onGetLabel?.((restProps.labelInValue || restProps.treeCheckStrictly) ? value.map(item => item.label) : label);
}
else {
const targetId = (restProps.labelInValue || restProps.treeCheckStrictly) ? value.value : value;
const parentNodes = getTreeNodePaths({
data: treeData,
targetId: value,
targetId,
idKey,
childrenKey,
isIncludeOneself: onGetNodePathsIsIncludeOneself,
@ -68,7 +71,7 @@ function BasicSelectTree(props) {
onGetNodePaths?.([]);
onGetLabel?.("");
}
onChange?.(value, label, extra);
onChange?.((restProps.labelInValue || restProps.treeCheckStrictly) ? value.map(item => item.value) : value, label, extra);
};
useEffect(() => {
@ -88,6 +91,7 @@ function BasicSelectTree(props) {
treeData={processedTreeData}
fieldNames={{ label: nameKey, value: idKey, children: childrenKey }}
treeNodeFilterProp={nameKey}
showCheckedStrategy={TreeSelect.SHOW_ALL}
{...restProps}
/>
);