import { getAccessToken } from '@/access'; import KFIcon from '@/components/KFIcon'; import KFModal from '@/components/KFModal'; import { CategoryData, DataSource, ResourceType, resourceConfig } from '@/pages/Dataset/config'; import { addModel } from '@/services/dataset/index.js'; import { to } from '@/utils/promise'; import { getFileListFromEvent, removeUploadedFile, validateUploadFiles } from '@/utils/ui'; import { Button, Form, Input, Radio, Select, Upload, UploadFile, message, type ModalProps, type UploadProps, } from 'antd'; import { omit } from 'lodash'; import { useState } from 'react'; import styles from '../AddDatasetModal/index.less'; interface AddModelModalProps extends Omit { typeList: CategoryData[]; tagList: CategoryData[]; onOk: () => void; } function AddModelModal({ typeList, tagList, onOk, ...rest }: AddModelModalProps) { const [uuid] = useState(Date.now()); // 上传组件参数 const uploadProps: UploadProps = { action: resourceConfig[ResourceType.Model].uploadAction, headers: { Authorization: getAccessToken() || '', }, defaultFileList: [], onRemove: removeUploadedFile, }; // 上传请求 const createModel = async (params: any) => { const [res] = await to(addModel(params)); if (res) { message.success('创建成功'); onOk?.(); } }; // 提交 const onFinish = (formData: any) => { const fileList: UploadFile[] = formData['fileList'] ?? []; if (validateUploadFiles(fileList)) { const params = { ...omit(formData, ['fileList']), model_source: DataSource.Create, model_version_vos: fileList.map((item) => { const data = item.response?.data?.[0] ?? {}; return { file_name: data.fileName, file_size: data.fileSize, url: data.url, }; }), }; createModel(params); } }; return (
{ if (value === 'master') { return Promise.reject(`版本不能为 master`); } return Promise.resolve(); }, }, ]} > 私有 公开
); } export default AddModelModal;