import { useEffect, useState } from "react"; import { Drawer, Form, Input, DatePicker, Select, Button, Space, Card, App, } from "antd"; import { useTranslation } from "react-i18next"; import { createCodeMapping } from "@/api/mdm/coding-system"; import { CODING_SCOPE_OPTIONS } from "@/types/mdm/coding-system"; interface CodeMappingDrawerProps { open: boolean; onSuccess: () => void; onClose: () => void; } const CodeMappingDrawer: React.FC = ({ open, onSuccess, onClose }) => { const { t } = useTranslation("mdm/coding-system"); const { t: tc } = useTranslation("common"); const { message } = App.useApp(); const [form] = Form.useForm(); const [confirmLoading, setConfirmLoading] = useState(false); useEffect(() => { if (open) form.resetFields(); }, [open, form]); const handleOk = async () => { let values; try { values = await form.validateFields(); } catch { return; } setConfirmLoading(true); try { await createCodeMapping({ ...values, effectDate: values.effectDate.format("YYYY-MM-DD"), expireDate: values.expireDate ? values.expireDate.format("YYYY-MM-DD") : undefined, }); message.success(t("saveSuccess")); onSuccess(); } catch (err) { message.error((err as Error).message || tc("fail")); } finally { setConfirmLoading(false); } }; return ( } >
); }; export default CodeMappingDrawer;