用户资料接口添加

Change-Id: Id55e7fef307ec1663bb7a05cfbf7f81e097ac767
diff --git a/front/src/PublishPage.js b/front/src/PublishPage.js
index 81ac790..abd4ee2 100644
--- a/front/src/PublishPage.js
+++ b/front/src/PublishPage.js
@@ -9,6 +9,17 @@
     title: '',

     subtitle: ''

   });

+  const [subType, setSubType] = useState('');

+

+  const typeOptions = {

+    '电影': ['大陆', '港台', '欧美', '日韩'],

+    '剧集': ['国产电视剧', '港剧', '欧美剧', '日韩剧'],

+    '音乐': ['古典音乐', '流行音乐', '摇滚', '电子音乐', '说唱'],

+    '动漫': ['国创', '日漫', '欧美动漫', '韩漫'],

+    '游戏': ['PC', '主机', '移动', '掌机', '视频'],

+    '体育': ['篮球', '足球', '羽毛球', '排球', '电竞'],

+    '资料': ['出版物', '学习教程', '素材模板', '演讲交流', '日常娱乐'],

+  };

 

   const handleChange = (e) => {

     const { name, value } = e.target;

@@ -27,7 +38,35 @@
 

   const handleSubmit = (e) => {

     e.preventDefault();

-    console.log('Form Data Submitted:', formData);

+    // 假设userid和tag可以从表单或用户信息中获取,这里用示例数据

+    const userid = '550e8400-e29b-41d4-a716-446655440000';

+    const tag = formData.type ? formData.type : '高清';

+    if (!formData.torrentFile) {

+      alert('请上传.torrent文件');

+      return;

+    }

+    const data = new FormData();

+    data.append('userid', userid);

+    data.append('title', formData.title);

+    data.append('tag', subType);

+    data.append('file', formData.torrentFile);

+    data.append('subtitle', formData.subtitle);

+    // data.append('subtype', subType);

+    // console.log(data.get('tag'));

+

+    try {

+      const response = await fetch('http://192.168.5.9:8080/api/save-torrent', {

+        method: 'POST',

+        body: data,

+      });

+      if (response.ok) {

+        alert('上传成功!');

+      } else {

+        alert('上传失败');

+      }

+    } catch (err) {

+      alert('网络错误');

+    }

   };

 

   return (

@@ -36,7 +75,7 @@
       <form onSubmit={handleSubmit} className="publish-form">

         <div className="form-row">

           <label htmlFor="type">类型</label>

-          <select name="type" id="type" value={formData.type} onChange={handleChange} required>

+          <select name="type" id="type" value={formData.type} onChange={e => { handleChange(e); setSubType(''); }} required>

             <option value="">请选择类型</option>

             <option value="电影">电影</option>

             <option value="剧集">剧集</option>

@@ -47,6 +86,17 @@
             <option value="资料">资料</option>

           </select>

         </div>

+        {formData.type && typeOptions[formData.type] && (

+          <div className="form-row">

+            <label htmlFor="subtype">具体类型</label>

+            <select name="subtype" id="subtype" value={subType} onChange={e => setSubType(e.target.value)} required>

+              <option value="">请选择具体类型</option>

+              {typeOptions[formData.type].map(opt => (

+                <option key={opt} value={opt}>{opt}</option>

+              ))}

+            </select>

+          </div>

+        )}

 

         <div className="form-row">

           <label htmlFor="torrentFile">种子文件</label>