新增前端接口,修改种子发布页面

Change-Id: I9d9f4bde524caeaab9cbadcd0e14f44e521b0abb
diff --git a/front/src/AnimePage.js b/front/src/AnimePage.js
index 97bf453..d17f3cc 100644
--- a/front/src/AnimePage.js
+++ b/front/src/AnimePage.js
@@ -30,16 +30,17 @@
 ];

 

 const areaTabs = [

-  { label: "大陆", icon: <EmojiPeopleIcon fontSize="small" /> },

-  { label: "港台", icon: <EmailIcon fontSize="small" /> },

-  { label: "欧美", icon: <PersonIcon fontSize="small" /> },

-  { label: "日韩", icon: <EmojiPeopleIcon fontSize="small" /> },

-  { label: "其他", icon: <PersonIcon fontSize="small" /> },

+  { label: "国创", icon: <EmojiPeopleIcon fontSize="small" /> },

+  { label: "日漫", icon: <EmailIcon fontSize="small" /> },

+  { label: "欧美动漫", icon: <PersonIcon fontSize="small" /> },

+  { label: "韩漫", icon: <EmojiPeopleIcon fontSize="small" /> },

+  // { label: "其他", icon: <PersonIcon fontSize="small" /> },

 ];

 

 export default function AnimePage() {

   const navigate = useNavigate();

   const [activeTab, setActiveTab] = React.useState(0);

+  const [animeList, setAnimeList] = React.useState([]);

 

   // 每个tab对应的动漫类型

   const animeTypesList = [

@@ -51,6 +52,15 @@
   ];

   const animeTypes = animeTypesList[activeTab] || [];

 

+  React.useEffect(() => {

+    // 假设后端接口为 /api/animes?area=大陆

+    const area = areaTabs[activeTab].label;

+    fetch(`http://192.168.5.9:8080/api/get-seed-list-by-tag?tag=${encodeURIComponent(area)}`)

+      .then(res => res.json())

+      .then(data => setAnimeList(data))

+      .catch(() => setAnimeList([]));

+  }, [activeTab]);

+

   return (

     <div className="container">

       {/* 顶部空白与音乐界面一致,用户栏绝对定位在页面右上角 */}

@@ -108,21 +118,39 @@
             </tr>

           </thead>

           <tbody>

-            {animeTypes.map((type, index) => (

-              <tr key={type}>

-                <td>

-                  <a href={`/torrent/${type}`} style={{ color: '#1a237e', textDecoration: 'none' }}>

-                    {type}

-                  </a>

-                </td>

-                <td>

-                  <a href={`/torrent/${type}`} style={{ color: '#1a237e', textDecoration: 'none' }}>

-                    种子{index + 1}

-                  </a>

-                </td>

-                <td>发布者{index + 1}</td>

-              </tr>

-            ))}

+            {animeList.length > 0 ? (

+              animeList.map((item, index) => (

+                <tr key={item.id || index}>

+                  <td>

+                    <a href={`/torrent/${item.seedid}`} style={{ color: '#1a237e', textDecoration: 'none' }}>

+                      {item.seedtag}

+                    </a>

+                  </td>

+                  <td>

+                    <a href={`/torrent/${item.seedid}`} style={{ color: '#1a237e', textDecoration: 'none' }}>

+                      {item.title}

+                    </a>

+                  </td>

+                  <td>{item.user.username}</td>

+                </tr>

+              ))

+            ) : (

+              animeTypes.map((type, index) => (

+                <tr key={type}>

+                  <td>

+                    <a href={`/torrent/${type}`} style={{ color: '#1a237e', textDecoration: 'none' }}>

+                      {type}

+                    </a>

+                  </td>

+                  <td>

+                    <a href={`/torrent/${type}`} style={{ color: '#1a237e', textDecoration: 'none' }}>

+                      种子{index + 1}

+                    </a>

+                  </td>

+                  <td>发布者{index + 1}</td>

+                </tr>

+              ))

+            )}

           </tbody>

         </table>

       </div>