feat: 样本管理

This commit is contained in:
2025-10-13 16:50:21 +08:00
parent 4e9ebc76f7
commit 9eb4f52f0e
25 changed files with 3066 additions and 344 deletions

View File

@@ -6,7 +6,7 @@ import {
import { message, Upload } from 'antd';
import type { RcFile, UploadFile, UploadProps } from 'antd/lib/upload';
import React, { useState } from 'react';
import { createSample, getSample } from '@/services/ai/sample';
import { createSample } from '@/services/ai/sample';
import styles from './index.module.less';
const { Dragger } = Upload;
@@ -65,15 +65,11 @@ const AudioUploader: React.FC<AudioUploaderProps> = ({
// 实际的后端接口上传
const uploadToServer = async (file: File) => {
const formData = new FormData();
formData.append('file', file);
// formData.append("type", "audio"); // 可以添加额外参数
formData.append('files', file);
const response = await createSample(formData);
if (!response.ok) {
throw new Error(`HTTP error! status: ${response.status}`);
}
return response.json();
message.success('上传成功!');
return response;
};
const customRequest: UploadProps['customRequest'] = async (options) => {
@@ -81,27 +77,22 @@ const AudioUploader: React.FC<AudioUploaderProps> = ({
try {
setUploading(true);
// 模拟进度更新
onProgress?.({ percent: 10 });
// 调用后端接口
const result = await uploadToServer(file as File);
console.log(result, 'res');
onProgress?.({ percent: 100 });
if (result.success && result.data) {
if (result) {
// 构造返回数据
const responseData = {
url: result.data.url,
name: result.data.filename || (file as File).name,
url: result[0].fileUrl,
name: result[0].fileName || (file as File).name,
uid: (file as any).uid,
status: 'done' as const,
response: result.data,
response: result,
};
onSuccess?.(responseData);
message.success('音频上传成功!');
} else {
throw new Error(result.message || '上传失败');
}
@@ -114,13 +105,13 @@ const AudioUploader: React.FC<AudioUploaderProps> = ({
}
};
const handleChange: UploadProps['onChange'] = ({
fileList: newFileList,
file,
}) => {
setFileList(newFileList);
onChange?.(newFileList);
};
// const handleChange: UploadProps["onChange"] = ({
// fileList: newFileList,
// file,
// }) => {
// setFileList(newFileList);
// onChange?.(newFileList);
// };
const handleRemove = (file: UploadFile): boolean => {
const newFileList = fileList.filter((item) => item.uid !== file.uid);