import { Form, Input, Modal, TreeSelect, message, Checkbox } from 'antd'; import React, { useState, useEffect, useRef, forwardRef, useImperativeHandle, } from 'react'; import * as d3 from 'd3'; import './index.less'; import { HomeOutlined } from '@ant-design/icons'; import './index.less'; const layout = { labelCol: { span: 8 }, wrapperCol: { span: 14 }, }; const CopyDialog = forwardRef(({ open, onCreate, onCancel }, ref) => { const [treeData, setData] = useState([]); const [form] = Form.useForm(); const formRef = useRef(null); useImperativeHandle(ref, () => ({ getTreeData() { form.resetFields(); d3.json('/api/bs/hrmorganization/orgchart/getSubCompanyTree').then( (data) => { data.companyTree.map((item, index) => { item.icon = ; }); setData(data.companyTree); }, ); }, })); /** * 根节点树异步加载 * @param {} parentId * @returns */ const onRootLoadData = (treeNode) => new Promise((resolve) => { const { id } = treeNode.props; setTimeout(() => { d3.json( `/api/bs/hrmorganization/orgchart/getSubCompanyTree?subcompany=${id}`, ).then((data) => { data.companyTree.map((item, index) => { item.icon = ; }); let arr = [...treeData, ...data.companyTree]; setData(arr); }); resolve(undefined); }, 200); }); return ( { form .validateFields() .then((values) => { onCreate(values); }) .catch((info) => { console.log('Validate Failed:', info); }); }} >
); }); export default CopyDialog;