在后端api未测试的前提下完成种子上传
Change-Id: Ie7387ec1db864125afef0cbc08e4f57fb8a91b19
diff --git a/src/api/torrent.js b/src/api/torrent.js
new file mode 100644
index 0000000..3c93697
--- /dev/null
+++ b/src/api/torrent.js
@@ -0,0 +1,100 @@
+import request from './request'
+
+/**
+ * 上传种子
+ * @param {FormData} formData - 包含种子文件和相关信息的表单数据
+ * @returns {Promise}
+ */
+export function uploadTorrent(formData) {
+ return request({
+ url: '/torrent/upload',
+ method: 'post',
+ data: formData,
+ headers: {
+ 'Content-Type': 'multipart/form-data'
+ }
+ })
+}
+
+/**
+ * 获取分类列表
+ * @returns {Promise}
+ */
+export function getCategories() {
+ console.log('调用获取分类列表API(使用假数据)...')
+
+ // 由于后端分类API还没实现,返回模拟数据
+ return new Promise((resolve) => {
+ setTimeout(() => {
+ const categories = [
+ { id: 1, name: '操作系统', slug: 'os', icon: 'computer' },
+ { id: 2, name: '软件应用', slug: 'software', icon: 'application' },
+ { id: 3, name: '游戏', slug: 'games', icon: 'game' },
+ { id: 4, name: '影音娱乐', slug: 'media', icon: 'video' },
+ { id: 5, name: '开发工具', slug: 'dev-tools', icon: 'code' },
+ { id: 6, name: '学习资料', slug: 'education', icon: 'book' },
+ { id: 7, name: '移动应用', slug: 'mobile', icon: 'mobile' },
+ { id: 8, name: '服务器软件', slug: 'server', icon: 'server' },
+ { id: 9, name: '安全工具', slug: 'security', icon: 'shield' },
+ { id: 10, name: '其他', slug: 'others', icon: 'folder' }
+ ]
+
+ console.log('分类列表模拟数据加载成功:', categories)
+ resolve({ data: categories })
+ }, 200) // 模拟网络延迟
+ })
+ }
+
+/**
+ * 获取标签列表
+ * @returns {Promise}
+ * 暂时还没有获取标签的列表
+ */
+export function getTags() {
+ console.log('调用获取标签列表API...')
+ // 由于后端没有标签的Controller,返回模拟数据
+ return new Promise((resolve) => {
+ setTimeout(() => {
+ resolve({
+ data: [
+ { id: 1, name: 'linux' },
+ { id: 2, name: 'ubuntu' },
+ { id: 3, name: 'debian' },
+ { id: 4, name: 'windows' },
+ { id: 5, name: 'macos' },
+ { id: 6, name: 'centos' },
+ { id: 7, name: 'redhat' },
+ { id: 8, name: 'android' },
+ { id: 9, name: 'ios' },
+ { id: 10, name: 'server' },
+ { id: 11, name: 'desktop' }
+ ]
+ })
+ }, 100)
+ })
+ }
+
+/**
+ * 获取种子详情
+ * @param {string} infoHash - 种子的info hash
+ * @returns {Promise}
+ */
+export function getTorrentDetail(infoHash) {
+ return request({
+ url: `/api/torrent/${infoHash}`,
+ method: 'get'
+ })
+}
+
+/**
+ * 获取种子列表
+ * @param {Object} params - 查询参数
+ * @returns {Promise}
+ */
+export function getTorrents(params) {
+ return request({
+ url: '/api/torrents',
+ method: 'get',
+ params
+ })
+}
\ No newline at end of file