import React from 'react'; import { TreeSelect } from 'antd'; import memoizeOne from 'memoize-one' import { getAllUaers } from './utils'; const TreeNode = TreeSelect.TreeNode; interface Props { initDataType?: undefined | 'onfocus' | 'cache', //初始化请求方式 dispatch: Function, departmentsList: any, value: any, mode: string // 'user'or 'org dropdownStyle?: any } class OrgTreeSelecte extends React.Component { state = { value: undefined, } memoizeOneGetData = memoizeOne(getAllUaers); componentDidMount() { this.getData(); } getData = () => { if (this.props.departmentsList && this.props.departmentsList.length && this.props.initDataType === 'cache') { return; } } renderTreeNodes = (data: any) => { return data.map((item: any) => { if (item.subDepartmentList && item.subDepartmentList.length > 0) { return ( {this.renderTreeNodes(item.subDepartmentList)} ); } return ; }); } renderTitle = (title: string) => { return {title} } renderUsersNodes = (data: any) => { const users = Array.isArray(data) && data.length > 0 ? this.memoizeOneGetData(data) : []; return users.map((item: any) => { return ; }); } render() { const { departmentsList, mode = 'user', dropdownStyle = {} } = this.props; return ( {mode === 'org' ? this.renderTreeNodes(departmentsList) : this.renderUsersNodes(departmentsList)} ); } } export default OrgTreeSelecte