import React, { useEffect, useState } from 'react'; import { Modal, message, Input, Form, Radio } from 'antd'; import { request } from '@/utils/http'; import config from '@/utils/config'; const EnvModal = ({ env, handleCancel, visible, }: { env?: any; visible: boolean; handleCancel: (cks?: any[]) => void; }) => { const [form] = Form.useForm(); const [loading, setLoading] = useState(false); const handleOk = async (values: any) => { setLoading(true); const { value, split, name, remarks } = values; const method = env ? 'put' : 'post'; let payload; if (!env) { if (split === '1') { const symbol = value.includes('&') ? '&' : '\n'; payload = value.split(symbol).map((x: any) => { return { name: name, value: x, remarks: remarks, }; }); } else { payload = [{ value, name, remarks }]; } } else { payload = { ...values, _id: env._id }; } const { code, data } = await request[method](`${config.apiPrefix}envs`, { data: payload, }); if (code === 200) { message.success(env ? '更新变量成功' : '新建变量成功'); } else { message.error(data); } setLoading(false); handleCancel(data); }; useEffect(() => { form.resetFields(); }, [env, visible]); return ( { form .validateFields() .then((values) => { handleOk(values); }) .catch((info) => { console.log('Validate Failed:', info); }); }} onCancel={() => handleCancel()} confirmLoading={loading} >
{!env && ( )}
); }; export default EnvModal;