/* * @Author: 赵伟 * @Date: 2024-04-16 13:58:08 * @Description: 创建开发环境 */ import KFIcon from '@/components/KFIcon'; import KFRadio, { type KFRadioItem } from '@/components/KFRadio'; import PageTitle from '@/components/PageTitle'; import ResourceSelect, { requiredValidator, type ParameterInputObject, } from '@/components/ResourceSelect'; import SubAreaTitle from '@/components/SubAreaTitle'; import { useComputingResource } from '@/hooks/resource'; import { ResourceSelectorType } from '@/pages/Pipeline/components/ResourceSelectorModal'; import { createEditorReq } from '@/services/developmentEnvironment'; import { to } from '@/utils/promise'; import { useNavigate } from '@umijs/max'; import { App, Button, Col, Form, Input, Row, Select } from 'antd'; import { omit, pick } from 'lodash'; import styles from './index.less'; type FormData = { name: string; computing_resource: string; standard: string; image: ParameterInputObject; model: ParameterInputObject; dataset: ParameterInputObject; }; enum ComputingResourceType { GPU = 'GPU', NPU = 'NPU', } const EditorRadioItems: KFRadioItem[] = [ { key: ComputingResourceType.GPU, title: '英伟达GPU', icon: , }, { key: ComputingResourceType.NPU, title: '昇腾NPU', icon: , }, ]; function EditorCreate() { const navgite = useNavigate(); const [form] = Form.useForm(); const { message } = App.useApp(); const [resourceStandardList, filterResourceStandard] = useComputingResource(); // 创建编辑器 const createEditor = async (formData: FormData) => { // 根据后台要求,修改表单数据 const image = formData['image']; const model = formData['model']; const dataset = formData['dataset']; const params = { ...omit(formData, ['image', 'model', 'dataset']), image: image.value, model: pick(model, ['id', 'version', 'path', 'showValue']), dataset: pick(dataset, ['id', 'version', 'path', 'showValue']), }; const [res] = await to(createEditorReq(params)); if (res) { message.success('创建成功'); navgite(-1); } }; // 提交 const handleSubmit = (values: FormData) => { createEditor(values); }; // 取消 const cancel = () => { navgite(-1); }; return (