用户资料接口添加

Change-Id: Id55e7fef307ec1663bb7a05cfbf7f81e097ac767
diff --git a/front/src/SportPage.js b/front/src/SportPage.js
index 569f022..3299a93 100644
--- a/front/src/SportPage.js
+++ b/front/src/SportPage.js
@@ -40,6 +40,7 @@
 export default function SportPage() {

   const navigate = useNavigate();

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

+  const [sportList, setSportList] = React.useState([]);

 

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

   const sportTypesList = [

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

   const sportTypes = sportTypesList[activeTab] || [];

 

+  React.useEffect(() => {

+    // 假设后端接口为 /api/sports?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 => setSportList(data))

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

+  }, [activeTab]);

+

   return (

     <div className="container">

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

@@ -163,27 +173,39 @@
             </tr>

           </thead>

           <tbody>

-            {sportTypes.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>

-            ))}

+            {sportList.length > 0 ? (

+              sportList.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>

+              ))

+            ) : (

+              sportTypes.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>