Commit bd35585f authored by 武广's avatar 武广

fix: 添加key

parent 7d9070cb
......@@ -252,35 +252,41 @@ const CustomTree = forwardRef(props => {
}
};
const initTreeData = (arr = [], level) =>
arr.map(item => {
const json = {
value: item.value || [],
level,
visibleChildren: false,
checked: false,
indeterminate: false,
label: item[props.labelName || 'label'],
key: item[props.keyName || 'key'],
isLeaf: true,
isLoading: false,
};
getIsChecked(item.key, json);
if (item.children) {
json.children = initTreeData(item.children, level + 1);
}
return json;
});
// const initTreeData = (arr = [], values = [], level) =>
// arr.map(item => {
// const valueObj = values.find(val => val.key === item.key) || {};
// console.log('valueObj.children :>> ', valueObj.children);
// const json = {
// value: valueObj.children || item.value || [],
// level,
// visibleChildren: false,
// checked: false,
// indeterminate: false,
// label: item[props.labelName || 'label'],
// key: item[props.keyName || 'key'],
// isLeaf: true,
// isLoading: false,
// };
// getIsChecked(item.key, json);
// if (item.children) {
// json.children = initTreeData(item.children, valueObj.children, level + 1);
// }
// return json;
// });
const initTreeValue = (arr = [], values = [], parentChecked) =>
const initTreeValue = (arr = [], values = [], parentChecked, level = 1) =>
arr.forEach(item => {
const valueObj = values.find(val => val.key === item.key) || {};
item.checked =
(typeof parentChecked === 'boolean' && parentChecked) || valueObj.checked || false;
item.indeterminate = valueObj.indeterminate || false;
item.value = valueObj.children || [];
item.isLeaf = typeof item.isLeaf === 'boolean' ? item.isLeaf : true;
item.isLoading = false;
item.visibleChildren = item.visibleChildren || false;
item.level = level;
if (item.children && item.children.length) {
initTreeValue(item.children, valueObj.children, item.checked);
initTreeValue(item.children, valueObj.children, item.checked, level + 1);
}
});
......@@ -291,8 +297,9 @@ const CustomTree = forwardRef(props => {
}, [props.value]);
useEffect(() => {
const arr = initTreeData(props.treeData, 1);
setTreeData(arr);
const datas = [...props.treeData];
initTreeValue(datas, props.value);
setTreeData(datas);
}, [props.treeData]);
// 委托 - 点击别的地方关闭子层
......@@ -318,9 +325,12 @@ const CustomTree = forwardRef(props => {
treeData={item}
></CTreeNode>
{(item.visibleChildren && childrenList && childrenList.length && (
<div className={styles['tree-children-box']}>
<div className={styles['tree-children-box']} key="childrens">
{childrenList.map(arr => (
<div className={styles['tree-children-wrapper']}>
<div
className={styles['tree-children-wrapper']}
key={`children${arr[0].key}`}
>
{renderTreeNodes(arr) || ''}
</div>
))}
......
......@@ -48,22 +48,22 @@ const AddAreaModal = props => {
const handleOk = () => {
validateFields(async (error, fieldsValue) => {
const newData = [];
const getValues = list => {
const getValues = (list, level) => {
list.forEach(itemData => {
if (itemData.checked) {
newData.push({
addressId: itemData.key,
addressLevel: itemData.level,
addressLevel: itemData.level || level,
addressName: itemData.label,
});
} else if (itemData.children && itemData.children.length) {
getValues(itemData.children);
getValues(itemData.children, level + 1);
}
});
};
if (!error) {
console.log('fieldsValue :>> ', fieldsValue);
getValues(fieldsValue.list);
getValues(fieldsValue.list, 1);
if (props.templateData.status) {
const data = await forbiddenAddress({
templateId: props.templateData.id,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment