import {ModalForm,ProForm} from '@ant-design/pro-components';import {ProFormSelect} from '@ant-design/pro-components';import {ProFormText} from '@ant-design/pro-components';import {ProFormSwitch} from '@ant-design/pro-components';
import {FormattedMessage, useIntl} from '@umijs/max';
import {postAlgorithmModelGetAlgorithmModelFkSelect} from "@/services/resource/AlgorithmModel";
import {postModelVersionCreateModelVersion} from "@/services/resource/ModelVersion";
import React, {useState} from 'react';
import {Button, Form, message} from 'antd';
export type FormValueType = {
        target?: string;
        template?: string;
        type?: string;
        time?: string;
        frequency?: string;
      } & Partial<API.ModelVersion>;

      export type CreateFormProps = {
        createModalOpen: boolean;
        handleModal: ()=>void;
        values: Partial<API.ModelVersion>;
        reload: any;
      };
const CreateForm: React.FC<CreateFormProps> = (props) => {

    const intl = useIntl();
    const [form] = Form.useForm<API.ModelVersion>();

    return (
      <ModalForm<API.ModelVersion>
        title={intl.formatMessage({
          id: 'common.modal.table.create.title',
          defaultMessage: '$$$',
        })}
        open={props.createModalOpen}
        form={form}
        autoFocusFirstInput
        modalProps={{
          destroyOnClose: true,
          onCancel: () => props.handleModal(),
        }}
        submitTimeout={2000}
        onFinish={async (values) => {
        postModelVersionCreateModelVersion(values).then(()=>{
          message.success(intl.formatMessage({id: 'common.success', defaultMessage: '$$$'}))
          props.reload()
        }).catch(()=>{
          message.error(intl.formatMessage({id: 'common.failure', defaultMessage: '$$$'}))
        })
        props.handleModal();
        return true;
      }}
      >
      
<ProForm.Group>
<ProFormSelect width="md" name="modelFkId" label={<FormattedMessage id="resource.model_version.table.list.modelFkId" defaultMessage="$$$"/>} placeholder={`${intl.formatMessage({id: 'common.please_input', defaultMessage: '$$$'})}${intl.formatMessage({id: 'resource.model_version.table.list.modelFkId', defaultMessage: '$$$'})}`} required={true} showSearch debounceTime={1000} request={async (keyWord)=>{
                            const resp = await postAlgorithmModelGetAlgorithmModelFkSelect({keyword: keyWord?.keyWords || ''})
                            return resp.data.list.map((v: any)=>{
                            return {
                                label: v.name,
                                value: v.id
                            }
                            })
                            }
            }/>
<ProFormText width="md" name="version" label={<FormattedMessage id="resource.model_version.table.list.version" defaultMessage="$$$"/>} placeholder={`${intl.formatMessage({id: 'common.please_input', defaultMessage: '$$$'})}${intl.formatMessage({id: 'resource.model_version.table.list.version', defaultMessage: '$$$'})}`} required={false}/>
<ProFormText width="md" name="path" label={<FormattedMessage id="resource.model_version.table.list.path" defaultMessage="$$$"/>} placeholder={`${intl.formatMessage({id: 'common.please_input', defaultMessage: '$$$'})}${intl.formatMessage({id: 'resource.model_version.table.list.path', defaultMessage: '$$$'})}`} required={true}
                      rules={[
                      {
                        required: true,
                        message: (
                          <FormattedMessage
                            id="resource.model_version.table.rule.required.path"
                            defaultMessage="path is required"
                          />
                        ),
                      },
                    ]}
                  />
<ProFormText width="md" name="startCode" label={<FormattedMessage id="resource.model_version.table.list.startCode" defaultMessage="$$$"/>} placeholder={`${intl.formatMessage({id: 'common.please_input', defaultMessage: '$$$'})}${intl.formatMessage({id: 'resource.model_version.table.list.startCode', defaultMessage: '$$$'})}`} required={false}/>
<ProFormSwitch width="md" name="isEnable" label={<FormattedMessage id="resource.model_version.table.list.isEnable" defaultMessage="$$$"/>} initialValue={true}/>
<ProFormText width="md" name="remark" label={<FormattedMessage id="resource.model_version.table.list.remark" defaultMessage="$$$"/>} placeholder={`${intl.formatMessage({id: 'common.please_input', defaultMessage: '$$$'})}${intl.formatMessage({id: 'resource.model_version.table.list.remark', defaultMessage: '$$$'})}`} required={false}/>
</ProForm.Group>
</ModalForm>)}
export default CreateForm;
