OrgTree.jsx 1.3KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. import React, { useState, useEffect } from 'react';
  2. import {
  3. Card,
  4. Tree,
  5. } from 'antd';
  6. import { getCooperativeList } from '@/services/cooperative';
  7. export default (props) => {
  8. const { setOrgId, setCooperativeList } = props
  9. const [data, setData] = useState([]);
  10. // 动态生成树
  11. const handelNode = (item) => {
  12. let node = (
  13. <div
  14. key={item.orgId}
  15. style={{
  16. justifyContent: 'space-between',
  17. display: 'flex',
  18. padding: '8px 0',
  19. }}
  20. >
  21. <span>{item.title}</span>
  22. </div>
  23. );
  24. return node;
  25. };
  26. const onSelect = (checkedKeys, info) => {
  27. if (info.selected) {
  28. setOrgId(info.node.key);
  29. } else {
  30. setOrgId();
  31. }
  32. };
  33. useEffect(() => {
  34. getCooperativeList({ pageSize: 500 })
  35. .then((res) => {
  36. setCooperativeList(res.records);
  37. const list = res.records?.map((item) => {
  38. return { title: item.name, key: item.orgId };
  39. });
  40. setData(list);
  41. })
  42. .catch((err) => {
  43. console.log(err.message);
  44. });
  45. }, [])
  46. return (
  47. <Card title="合作社列表">
  48. <Tree
  49. onSelect={onSelect}
  50. className="treeClass"
  51. titleRender={(data) => handelNode(data)}
  52. treeData={data}
  53. />
  54. </Card>
  55. )
  56. }