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;