import React, { useCallback, useEffect, useState } from 'react';
import { TreeSelect } from 'antd';
import { antiAssign } from '../../../../utils/utils';
import s from './index.less';
const TreeNode = TreeSelect.TreeNode;
interface Props {
initDataType?: undefined | 'onfocus' | 'cache'; // 初始化请求方式
request: Function;
list?: any;
value: any;
dropdownStyle?: any;
}
const OrgTreeSelect = (props: Props) => {
const { request } = props;
const selfProps = antiAssign(props, ['initDataType', 'list', 'request', 'mode', 'dropdownStyle']);
const [list, setList] = useState(props.list || []);
useEffect(() => {
getData();
}, []);
const getData = useCallback(async () => {
const res = await request();
if (res) {
setList(res);
}
}, [request]);
const renderTreeNodes = (data: any) => {
return data.map((item: any) => {
if (item.subDepartmentList && item.subDepartmentList.length > 0) {
return (
{renderTreeNodes(item.subDepartmentList)}
);
}
return ;
});
};
return (
{renderTreeNodes(list)}
);
};
export default OrgTreeSelect;