import { __decorate } from "tslib"; import React from 'react'; import { TreeSelect } from 'antd'; import { connect } from 'dva'; import memoizeOne from 'memoize-one'; import { getAllUaers } from './utils'; const TreeNode = TreeSelect.TreeNode; let OrgTreeSelecte = class OrgTreeSelecte extends React.Component { constructor() { super(...arguments); this.state = { value: undefined, }; this.memoizeOneGetData = memoizeOne(getAllUaers); this.getData = () => { if (this.props.departmentsList && this.props.departmentsList.length && this.props.initDataType === 'cache') { return; } this.props.dispatch({ type: 'admin_global/getDepartmentList', }); }; this.renderTreeNodes = (data) => { return data.map((item) => { if (item.subDepartmentList && item.subDepartmentList.length > 0) { return (React.createElement(TreeNode, { key: String(item.departmentId), value: item.departmentId, title: item.departmentName }, this.renderTreeNodes(item.subDepartmentList))); } return React.createElement(TreeNode, { key: String(item.departmentId), value: item.departmentId, title: item.departmentName }); }); }; this.renderTitle = (title) => { return React.createElement("span", null, title); }; this.renderUsersNodes = (data) => { const users = Array.isArray(data) && data.length > 0 ? this.memoizeOneGetData(data) : []; return users.map((item) => { return React.createElement(TreeNode, { key: String(item.userId), isLeaf: true, value: item.userId, title: item.userChsName }); }); }; } componentDidMount() { this.getData(); } render() { const { departmentsList, mode = 'user', dropdownStyle = {} } = this.props; return (React.createElement(TreeSelect, Object.assign({ showSearch: true, // 最大高度为clientHeight dropdownStyle: { maxHeight: '300px', overflow: 'auto', ...dropdownStyle }, allowClear: true, treeDefaultExpandAll: true, treeNodeFilterProp: 'title', labelInValue: true }, this.props), mode === 'org' ? this.renderTreeNodes(departmentsList) : this.renderUsersNodes(departmentsList))); } }; OrgTreeSelecte = __decorate([ connect(({ admin_global, loading }) => ({ departmentsList: admin_global.departmentsList, isloading: loading.effects['admin_global/getDepartmentList'] })) ], OrgTreeSelecte); export default OrgTreeSelecte;