index.js 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. import { TreeSelect } from 'antd';
  2. import React, { useState, useEffect } from 'react';
  3. import { queryDDdepList } from '@/services/boom';
  4. import { connect } from 'dva';
  5. function DepartmentField(props) {
  6. const { value = [], onChange, depUserTree } = props;
  7. const [treeData, setTreeData] = useState([]);
  8. const genTreeNode = dep => {
  9. return {
  10. id: dep.dept_id,
  11. pId: dep.parent_id,
  12. value: dep.dept_id,
  13. title: dep.name,
  14. isLeaf: false,
  15. };
  16. };
  17. const onLoadData = async ({ id }) => {
  18. let depList = await queryDDdepList({ dept_id: id });
  19. console.log(depList);
  20. if (depList.length > 0) {
  21. let nodes = depList.map(genTreeNode);
  22. setTreeData([...treeData, ...nodes]);
  23. }
  24. };
  25. const onChangeValue = newValue => {
  26. onChange(newValue);
  27. };
  28. return (
  29. <TreeSelect
  30. showSearch
  31. multiple
  32. allowClear
  33. defaultValue={value}
  34. dropdownStyle={{
  35. maxHeight: 400,
  36. overflow: 'auto',
  37. }}
  38. style={{ width: '100%' }}
  39. placeholder="请选择部门"
  40. treeData={depUserTree}
  41. onChange={onChangeValue}
  42. />
  43. );
  44. }
  45. export default connect(({ user }) => ({ depUserTree: user.depUserTree }))(DepartmentField);