import React, { useEffect, useState } from 'react'; import { Modal, message, Input, Form, Select } from 'antd'; import { request } from '@/utils/http'; import config from '@/utils/config'; const AppModal = ({ app, handleCancel, visible, }: { app?: any; visible: boolean; handleCancel: (needUpdate?: boolean) => void; }) => { const [form] = Form.useForm(); const [loading, setLoading] = useState(false); const handleOk = async (values: any) => { setLoading(true); const method = app ? 'put' : 'post'; const payload = { ...values }; if (app) { payload.id = app.id; } try { const { code, data } = await request[method]( `${config.apiPrefix}apps`, payload, ); if (code === 200) { message.success(app ? '更新应用成功' : '新建应用成功'); handleCancel(data); } setLoading(false); } catch (error) { setLoading(false); } }; useEffect(() => { form.resetFields(); }, [app, visible]); return ( { form .validateFields() .then((values) => { handleOk(values); }) .catch((info) => { console.log('Validate Failed:', info); }); }} onCancel={() => handleCancel()} confirmLoading={loading} >
['system'].includes(value) ? Promise.reject(new Error('名称不能为保留关键字')) : Promise.resolve(), }, ]} >
); }; export default AppModal;