import { CommButton } from '@/components/Button'; import { apiModelHubEdit, apiModelHubSync } from '@/services/business/model'; import { ModalForm, ProForm, ProFormSelect, ProFormText, ProFormTextArea, } from '@ant-design/pro-components'; import { FormattedMessage, useIntl } from '@umijs/max'; import { Form, message } from 'antd'; import React, { useEffect, useState } from 'react'; import { isSuccessApi } from '@/utils/forApi'; import { proFormSmallItemStyleProps, proFormSmallModelWidth, } from '../../../../../config/defaultForm'; export type UpdateFormProps = { updateModalOpen: boolean; values: Record; handleModal: () => void; reload: any; }; const UpdateForm: React.FC = (props) => { const intl = useIntl(); const [openFiles, setOpenFiles] = useState(false); const [form] = Form.useForm(); function resetForm() { form.resetFields(); } useEffect(() => { if (props.updateModalOpen && props.values?.id) { form.setFieldsValue({ ...props.values }); console.log(props.values, 'useEffect_values'); } else { resetForm(); } }, [props.updateModalOpen, props.values]); return ( className="gn_form gn_modal_form" width={proFormSmallModelWidth} title={intl.formatMessage({ id: 'model_runtimeLib.list.table.form.action.edit', defaultMessage: '编辑', })} open={props.updateModalOpen} form={form} autoFocusFirstInput modalProps={{ destroyOnClose: true, onCancel: () => props.handleModal(), }} submitTimeout={2000} onFinish={async (values) => { console.log(values, 'add_finish_values'); let resp = await apiModelHubEdit({ ...values, id: props.values.id }); if (isSuccessApi(resp)) { message.success( intl.formatMessage({ id: 'common.action.success', defaultMessage: '$$$' }), ); props.reload(); props.handleModal(); } else { message.error( resp?.meta?.message || intl.formatMessage({ id: 'common.action.failure', defaultMessage: '$$$' }), ); } return true; }} > } placeholder={`${intl.formatMessage({ id: 'common.please_input', defaultMessage: '$$$', })}${intl.formatMessage({ id: 'model_runtimeLib.list.table.form.name', defaultMessage: '$$$', })}`} required={true} rules={[ { required: true, message: ( ), }, ]} /> } placeholder={`${intl.formatMessage({ id: 'common.please_input', defaultMessage: '$$$', })}${intl.formatMessage({ id: 'model_runtimeLib.list.table.form.IP', defaultMessage: '$$$', })}`} required={true} rules={[ { required: true, message: ( ), }, ]} /> } placeholder={`${intl.formatMessage({ id: 'common.please_input', defaultMessage: '$$$', })}${intl.formatMessage({ id: 'model_runtimeLib.list.table.form.port', defaultMessage: '$$$', })}`} required={true} rules={[ { required: true, message: ( ), }, ]} /> { const { host, port } = form.getFieldsValue(); if (host && port) { setOpenFiles(true); } else { message.error('请填写IP和端口'); } console.log(form.getFieldsValue(), 'searchIP'); }} buttonLabel={} > {openFiles ? ( { const { host, port } = form.getFieldsValue(); const { data } = await apiModelHubSync({ host, port, }); return data?.data?.map((v: Record) => { return { ...v, label: v, value: v }; }); }} rules={[ { required: true, message: ( ), }, ]} /> ) : ( <> )} } placeholder={`${intl.formatMessage({ id: 'common.please_input', defaultMessage: '$$$', })}${intl.formatMessage({ id: 'model_runtimeLib.list.table.form.rule.required.remark', defaultMessage: '$$$', })}`} required={false} disabled={false} /> ); }; export default UpdateForm;