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>
