/* * @Author: 赵伟 * @Date: 2024-04-16 13:58:08 * @Description: 创建推理服务 */ import PageTitle from '@/components/PageTitle'; import SubAreaTitle from '@/components/SubAreaTitle'; import { CommonTabKeys, serviceTypeOptions } from '@/enums'; import { createServiceReq, updateServiceReq } from '@/services/modelDeployment'; import { to } from '@/utils/promise'; import { getSessionStorageItem, removeSessionStorageItem, serviceInfoKey, } from '@/utils/sessionStorage'; import { useNavigate } from '@umijs/max'; import { App, Button, Col, Form, Input, Row, Select } from 'antd'; import { pick } from 'lodash'; import { useEffect, useState } from 'react'; import { ServiceData, ServiceOperationType } from '../types'; import styles from './index.less'; // 表单数据 export type FormData = { service_name: string; // 服务名称 service_type: string; // 服务类型 description: string; // 描述 }; function CreateService() { const navigate = useNavigate(); const [form] = Form.useForm(); const [operationType, setOperationType] = useState(ServiceOperationType.Create); const [serviceInfo, setServiceInfo] = useState(undefined); const { message } = App.useApp(); useEffect(() => { const res = getSessionStorageItem(serviceInfoKey, true); if (res) { setOperationType(res.operationType); setServiceInfo(res); form.setFieldsValue(pick(res, ['service_name', 'service_type', 'description'])); } return () => { removeSessionStorageItem(serviceInfoKey); }; }, []); // 创建、更新服务 const createService = async (formData: FormData) => { const request = operationType === ServiceOperationType.Create ? createServiceReq : updateServiceReq; const params = operationType === ServiceOperationType.Create ? formData : { id: serviceInfo?.id, ...formData, }; const [res] = await to(request(params)); if (res) { message.success('操作成功'); navigate(-1); } }; // 提交 const handleSubmit = (values: FormData) => { createService(values); }; // 取消 const cancel = () => { navigate(-1); }; const disabled = operationType !== ServiceOperationType.Create; const title = operationType === ServiceOperationType.Create ? '创建推理服务' : '更新推理服务'; return (