/* * @Author: 赵伟 * @Date: 2024-04-16 13:58:08 * @Description: 创建模型部署 */ import PageTitle from '@/components/PageTitle'; import SubAreaTitle from '@/components/SubAreaTitle'; import { CommonTabKeys } from '@/enums'; import { createMirrorReq } from '@/services/mirror'; import { getComputingResourceReq } from '@/services/pipeline'; import { to } from '@/utils/promise'; import { getSessionItemThenRemove, mirrorNameKey } from '@/utils/sessionStorage'; import { validateUploadFiles } from '@/utils/ui'; import { useNavigate } from '@umijs/max'; import { Button, Col, Form, Input, Row, Select, UploadFile, message, type SelectProps } from 'antd'; import { omit } from 'lodash'; import { useEffect, useState } from 'react'; import styles from './create.less'; type FormData = { name: string; tag: string; description: string; path?: string; upload_type: string; fileList?: UploadFile[]; }; function ModelDeploymentCreate() { const navgite = useNavigate(); const [form] = Form.useForm(); const [nameDisabled, setNameDisabled] = useState(false); const [resourceStandardList, setResourceStandardList] = useState([]); useEffect(() => { const name = getSessionItemThenRemove(mirrorNameKey); if (name) { form.setFieldValue('name', name); setNameDisabled(true); } getComputingResource(); }, []); const getComputingResource = async () => { const params = { page: 0, size: 1000, resource_type: '', }; const [res] = await to(getComputingResourceReq(params)); if (res && res.data && res.data.content) { setResourceStandardList(res.data.content); } }; const filterResourceStandard: SelectProps['filterOption'] = ( input: string, { computing_resource = '' }, ) => { return computing_resource.toLocaleLowerCase().includes(input.toLocaleLowerCase()); }; // 创建公网、本地镜像 const createPublicMirror = async (formData: FormData) => { const upload_type = formData['upload_type']; let params; if (upload_type === CommonTabKeys.Public) { params = { ...omit(formData, ['upload_type']), upload_type: 0, image_type: 0, }; } else { const fileList = formData['fileList'] ?? []; if (validateUploadFiles(fileList)) { const file = fileList[0]; params = { ...omit(formData, ['fileList', 'upload_type']), path: file.response.data.url, file_size: file.response.data.fileSize, upload_type: 1, image_type: 0, }; } } const [res] = await to(createMirrorReq(params)); if (res) { message.success('创建成功'); navgite(-1); } }; // 提交 const handleSubmit = (values: FormData) => { createPublicMirror(values); }; // 取消 const cancel = () => { navgite(-1); }; return (
); } export default ModelDeploymentCreate;