import { FC, Key, useState } from "react"; import { Form, Modal, ModalProps, Tree } from "antd"; import style from "./index.module.scss"; import { getAssIndexTreeApi } from "@/api"; import { AssIndexTreeItemType, ASS_INDEX_TYPE } from "@/types"; import { useParams } from "react-router-dom"; import { DageLoading } from "@dage/pc-components"; export interface AddIndexModalProps extends Omit { onCancel?: () => void; onOk?: (keys: string[]) => void; // onOk?: (keys: Key[], items: AssIndexTreeItemType[]) => void; } export const AddIndexModal: FC = ({ open, onOk, onCancel, ...rest }) => { const params = useParams(); const [form] = Form.useForm(); const [_checkedKeys, setCheckedKeys] = useState([]); const [treeData, setTreeData] = useState([]); const [loading, setLoading] = useState(false); const getAssIndexTree = async () => { try { setLoading(true); const data = await getAssIndexTreeApi(params.type as ASS_INDEX_TYPE); setTreeData(data); } finally { setLoading(false); } }; const handleCancel = () => { onCancel?.(); form.resetFields(); setCheckedKeys([]); }; const handleConfirm = () => { form.submit(); }; const handleSubmit = async (values: any) => { onOk?.(values.checkedKeys.map((i: number) => String(i))); // onOk?.(values.checkedKeys, getSelectedNodes(values.checkedKeys, treeData)); handleCancel(); }; const handleAfterOpenChange = (open: boolean) => { if (open && !treeData.length) getAssIndexTree(); }; return (
{ setCheckedKeys(checkedKeys as Key[]); form.setFieldsValue({ checkedKeys, }); }} />
{loading && }
); };