feat(torrents): 优化种子页面功能和交互
- 调整 torrents API 调用,增加更多接口支持
- 优化种子列表展示和操作,支持下载和查看详情
- 新增种子详情页面路由和组件
- 改进上传种子功能,增加表单验证和错误提示
- 优化用户信息展示
Change-Id: I9343f2f446639733ee5800a86bab85a4ac6d1a72
diff --git a/src/features/torrents/pages/UploadTorrentPage.jsx b/src/features/torrents/pages/UploadTorrentPage.jsx
index 6b94524..fe0a075 100644
--- a/src/features/torrents/pages/UploadTorrentPage.jsx
+++ b/src/features/torrents/pages/UploadTorrentPage.jsx
@@ -20,7 +20,6 @@
import {
UploadOutlined,
InboxOutlined,
- InfoCircleOutlined,
} from "@ant-design/icons";
import { uploadTorrent } from "../../../api/torrents";
import { useAuth } from "../../auth/contexts/AuthContext";
@@ -137,6 +136,7 @@
<Form.Item
name="title"
label="标题"
+ rules={[{ required: true, message: "请输入资源标题" }]}
>
<Input placeholder="请输入完整、准确的资源标题" />
</Form.Item>
@@ -786,9 +786,17 @@
}
formData.append('username', username);
- // 添加描述信息
+ // 添加必需的字段
+ formData.append('title', values.title || '未命名资源'); // 添加标题字段
formData.append('description', values.description || '');
+ // 添加可选字段
+ // if (values.chineseName) formData.append('chineseName', values.chineseName);
+ // if (values.englishName) formData.append('englishName', values.englishName);
+ // if (values.year) formData.append('year', values.year.format('YYYY'));
+ // if (values.region) formData.append('region', values.region);
+ // if (values.language) formData.append('language', Array.isArray(values.language) ? values.language.join(',') : values.language);
+
// 添加种子文件
if (values.torrentFile && values.torrentFile.fileList && values.torrentFile.fileList.length > 0) {
const torrentFile = values.torrentFile.fileList[0].originFileObj;
@@ -798,9 +806,10 @@
return;
}
- console.log('username', formData.get('username'));
- console.log('description', formData.get('description'));
- console.log('torrent', formData.get('torrent'));
+ for (let [key, value] of formData.entries()) {
+ console.log(key, ':', value);
+ }
+
// 调用上传接口
const response = await uploadTorrent(formData);
@@ -812,7 +821,14 @@
}
} catch (error) {
console.error('上传种子时出错:', error);
- message.error('上传失败:' + (error.message || '网络错误,请重试'));
+ // 更详细的错误信息
+ if (error.response) {
+ const status = error.response.status;
+ const errorMessage = error.response.data?.message || '未知错误';
+ message.error(`上传失败 (${status}): ${errorMessage}`);
+ } else {
+ message.error('上传失败:' + (error.message || '网络错误,请重试'));
+ }
}
};