diff --git a/src/pages/Forum/posts-main/components/PostList.jsx b/src/pages/Forum/posts-main/components/PostList.jsx
index 25b08a8..676ec45 100644
--- a/src/pages/Forum/posts-main/components/PostList.jsx
+++ b/src/pages/Forum/posts-main/components/PostList.jsx
@@ -163,171 +163,4 @@
   );
 };
 
-export default PostList;
-
-// import React, { useEffect, useState } from 'react';
-// import axios from 'axios';
-// import { Link } from 'wouter';
-// import { GoodTwo, Comment, Star } from '@icon-park/react';
-// import { likePost, unlikePost, collectPost } from '../../posts-detail/api'; 
-// import './PostList.css';
-
-// const API_BASE = process.env.REACT_APP_API_BASE;
-
-// const PostList = ({ search }) => {
-//   const [posts, setPosts] = useState([]);
-//   const [page, setPage] = useState(1);
-//   const [total, setTotal] = useState(0);
-//   const [loading, setLoading] = useState(true);
-//   const [errorMsg, setErrorMsg] = useState('');
-
-//   const size = 10;  // 每页条数
-//   const totalPages = Math.ceil(total / size);
-
-//   useEffect(() => {
-//     const fetchPosts = async () => {
-//       setLoading(true);
-//       setErrorMsg('');
-//       try {
-//         const res = await axios.get(`${API_BASE}/echo/forum/posts`, {
-//           params: { 
-//             page: page,
-//             pageSize: size,
-//             sortBy: 'createdAt',  // 按时间排序
-//             order: 'desc'         // 按降序排序
-//           }
-//         });
-
-//         const postsData = res.data.posts || [];
-//         const userIds = [...new Set(postsData.map(p => p.user_id))];
-
-//         // 获取用户信息
-//         const profiles = await Promise.all(userIds.map(async id => {
-//           try {
-//             const r = await axios.get(`${API_BASE}/echo/user/profile`, {
-//               params: { user_id: id }
-//             });
-//             return { id, profile: r.data };
-//           } catch {
-//             return { id, profile: { nickname: '未知用户', avatar_url: 'default-avatar.png' } };
-//           }
-//         }));
-
-//         const userMap = {};
-//         profiles.forEach(({ id, profile }) => { userMap[id] = profile; });
-
-//         // 更新帖子数据
-//         const postsWithProfiles = postsData
-//           .filter(post => post.title.includes(search))
-//           .map(post => ({
-//             ...post,
-//             userProfile: userMap[post.user_id] || {}
-//           }));
-
-//         setPosts(postsWithProfiles);
-//         setTotal(res.data.total || 0);
-//       } catch (err) {
-//         console.error('加载失败:', err);
-//         setErrorMsg('加载失败，请稍后重试');
-//       } finally {
-//         setLoading(false);
-//       }
-//     };
-
-//     fetchPosts();
-//   }, [page, search]);
-
-//   // 点赞/取消点赞操作
-//   const toggleLike = async (postId, liked, userId) => {
-//     try {
-//       if (liked) {
-//         await unlikePost(postId);  // 取消点赞
-//       } else {
-//         await likePost(postId, userId);  // 点赞
-//       }
-
-//       setPosts(posts =>
-//         posts.map(post =>
-//           post.id === postId
-//             ? { ...post, liked: !liked, likeCount: liked ? post.likeCount - 1 : post.likeCount + 1 }
-//             : post
-//         )
-//       );
-//     } catch (err) {
-//       console.error('点赞失败:', err);
-//     }
-//   };
-
-//   // 收藏/取消收藏操作
-//   const toggleCollect = async (postId, collected, userId) => {
-//     try {
-//       const action = collected ? 'cancel' : 'collect';
-//       await collectPost(postId, userId, action);
-
-//       setPosts(posts =>
-//         posts.map(post =>
-//           post.id === postId
-//             ? { ...post, collected: !collected, collectCount: collected ? post.collectCount - 1 : post.collectCount + 1 }
-//             : post
-//         )
-//       );
-//     } catch (err) {
-//       console.error('收藏失败:', err);
-//     }
-//   };
-//   return (
-//     <div className="post-list">
-//       {loading ? <p>加载中...</p> :
-//         errorMsg ? <p className="error-text">{errorMsg}</p> :
-//           posts.length === 0 ? <p>暂无帖子。</p> :
-//             posts.map(post => (
-//               <Link
-//                 key={post.id}
-//                 href={`/forum/post/${post.id}`}
-//                 className="post-card"
-//                 style={{ backgroundColor: '#e9ded2' }}
-//               >
-//                 <div className="user-info">
-//                   <img className="avatar" src={post.userProfile.avatar_url} alt="头像" />
-//                   <span className="nickname" style={ { color: '#755e50' } }>{post.userProfile.nickname}</span>
-//                 </div>
-//                 {post.cover_image_url && (
-//                   <img className="cover-image" src={post.cover_image_url} alt="封面" />
-//                 )}
-//                 <h3 style={ { color: '#000000' } }>{post.title}</h3>
-//                 <p className="post-meta">
-//                   发布时间：{new Date(post.createdAt).toLocaleString()}
-//                 </p>
-//                 <div className="post-actions">
-//                   {/* 点赞按钮 */}
-//                   <button className="icon-btn" onClick={(e) => { e.stopPropagation(); toggleLike(post.id, post.liked, post.user_id); }}>
-//                     <GoodTwo theme="outline" size="24" fill={post.liked ? '#f00' : '#fff'} />
-//                     <span>{post.likeCount}</span>
-//                   </button>
-  
-//                   {/* 收藏按钮 */}
-//                   <button className="icon-btn" onClick={(e) => { e.stopPropagation(); toggleCollect(post.id, post.collected, post.user_id); }}>
-//                     <Star theme="outline" size="24" fill={post.collected ? '#ffd700' : '#fff'} />
-//                     <span>{post.collectCount}</span>
-//                   </button>
-  
-//                   <Link href={`/forum/post/${post.id}`} className="icon-btn" onClick={(e) => e.stopPropagation()}>
-//                     <Comment theme="outline" size="24" fill="#fff" />
-//                     <span>{post.commentCount}</span>
-//                   </Link>
-//                 </div>
-//               </Link>
-//             ))
-//       }
-  
-//       <div className="pagination">
-//         <button disabled={page === 1} onClick={() => setPage(page - 1)}>上一页</button>
-//         <span>第 {page} 页 / 共 {totalPages} 页</span>
-//         <button disabled={page === totalPages} onClick={() => setPage(page + 1)}>下一页</button>
-//       </div>
-//     </div>
-//   );
-  
-// };
-
-// export default PostList;
+export default PostList;
\ No newline at end of file
diff --git a/src/pages/ForumPage.css b/src/pages/ForumPage.css
deleted file mode 100644
index 72469e2..0000000
--- a/src/pages/ForumPage.css
+++ /dev/null
@@ -1,28 +0,0 @@
-/* .forum-container {
-    padding: 20px;
-    background-color: #c13a3a;
-  }
-  
-  .forum-post {
-    margin-bottom: 20px;
-    padding: 15px;
-    background-color: #06e7b6;
-    border: 1px solid #a70dc2;
-    border-radius: 5px;
-  }
-  
-  .forum-post h2 {
-    margin: 0 0 10px;
-  }
-  
-  .forum-post img {
-    max-width: 100%;
-    height: auto;
-    margin-top: 10px;
-  }
-  
-  .forum-comment {
-    padding: 10px;
-    background-color: #9ae815;
-    border-radius: 5px;
-  } */
\ No newline at end of file
diff --git a/src/pages/ForumPage.jsx b/src/pages/ForumPage.jsx
deleted file mode 100644
index 4e63170..0000000
--- a/src/pages/ForumPage.jsx
+++ /dev/null
@@ -1,19 +0,0 @@
-// import React from 'react';
-// import './ForumPage.css';
-
-// const ForumPage = () => {
-//   return (
-//     <div className="forum-container">
-//       <h1>论坛</h1>
-//       <div className="forum-post">
-//         <h2>示例帖子标题</h2>
-//         <p>这是一个示例帖子内容，用于测试论坛页面的显示效果。</p>
-//       </div>
-//       <div className="forum-comment">
-//         <p>示例评论内容：这是一条测试评论。</p>
-//       </div>
-//     </div>
-//   );
-// };
-
-// export default ForumPage;
\ No newline at end of file
diff --git a/src/pages/SeedList/SeedList.css b/src/pages/SeedList/SeedList.css
index 028ef55..94c70aa 100644
--- a/src/pages/SeedList/SeedList.css
+++ b/src/pages/SeedList/SeedList.css
@@ -1,185 +1,239 @@
-.main-page {
-  background-color: #5c3f31;
-  color: white;
-}
+      
+       .main-page {
+        background-color: #5c3f31;
+        color: white;
+      }
+      
+      /* 搜索、排序控件 */
+      .controls {
+        display: flex;
+        justify-content: center;
+        gap: 16px;
+        padding: 10px 20px;
+        background-color: #5c3f31;
+      }
+      
+      .search-input {
+        padding: 6px 10px;
+        border-radius: 6px;
+        border: none;
+        width: 200px;
+      }
+      
+      .sort-select {
+        padding: 6px;
+        border-radius: 6px;
+        border: none;
+      }
+      
+      /* 标签过滤 */
+      .tag-filters {
+        background-color: #5c3f31;
+        display: flex;
+        justify-content: center;
+        flex-wrap: wrap;
+        gap: 8px;
+        padding: 10px;
+      }
+      
+      .tag-button {
+        background-color: #b38867;
+        color: white;
+        border: none;
+        border-radius: 20px;
+        padding: 6px 12px;
+        cursor: pointer;
+      }
+      
+      .active-tag {
+        background-color: #d17c4f;
+      }
+      
+      .clear-filter-btn {
+        background: transparent;
+        border: none;
+        color: #888;
+        font-size: 1rem;
+        cursor: pointer;
+        margin-left: 4px;
+      }
+      
+      /* 去除 Link 组件默认的下划线和文字颜色变化 */
+      .seed-item-link {
+        text-decoration: none;
+        color: inherit;
+        display: block; /* 确保整个卡片可点击 */
+      }
+      
+      .clear-filter-btn:hover {
+        color: red;
+      }
+      
+      /* 卡片展示 */
+      .seed-list-content {
+        padding: 20px;
+        background-color: #5c3f31;
+      }
+      
+      .seed-list-card {
+        background-color: #e9ded2;
+        color: #333;
+        border-radius: 8px;
+        box-shadow: 0 1px 4px rgba(0, 0, 0, 0.1);
+        overflow: hidden;
+      }
+      
+      .seed-list-header {
+        display: grid;
+        grid-template-columns: 180px 2fr 1fr 1fr 1fr 1fr;
+        align-items: center;
+        justify-items: center; /* 新增：水平居中 */
+        padding: 12px 16px;
+        background-color: #BA929A;
+        font-weight: bold;
+      }
+      
+      .seed-list-body {
+        display: flex;
+        flex-direction: column;
+      }
+      
+      .seed-item {
+        display: grid;
+        grid-template-columns: 180px 2fr 1fr 1fr 1fr 1fr;
+        align-items: center;
+        justify-items: center; /* 新增：水平居中 */
+        padding: 12px 16px;
+        border-top: 1px solid #ccc;
+      }
+      
+      .seed-item-cover {
+        margin-left: -50px;
+        width: 100px;
+        height: 140px;
+        object-fit: cover;
+        border-radius: 6px;
+        flex-shrink: 0;
+      }
+      
+      .seed-item-title {
+        width: 100%;
+        margin-left: -100px;
+        text-align: center; 
+      }
+      
+      .seed-title-row {
+        display: flex;
+        flex-direction: column;
+        align-items: center; /* 新增：垂直居中 */
+        gap: 8px;
+      }
+      
+      .seed-title {
+        font-size: 1.1rem;
+        margin: 0;
+        font-weight: bold;
+      }
+      
+      .seed-tags {
+        margin-top: 4px;
+        display: flex;
+        flex-wrap: wrap;
+        gap: 4px;
+        justify-content: center; /* 标签水平居中 */
+        max-width: 100%;         /* 限制最大宽度以触发换行 */
+        word-break: break-word;  /* 避免长标签溢出 */
+      }
+      
+      
+      .seed-item-actions {
+        display: flex;
+        flex-direction: row;
+        gap: 8px;
+        justify-content: center; /* 新增：操作按钮水平居中 */
+      }
+      
+      .seed-header-cover {
+        width: 180px;
+        flex-shrink: 0;
+        text-align: center; 
+      }
+      
+      .seed-header-title {
+        margin-left: -100px;
+      }
 
-/* 搜索、排序控件 */
-.controls {
-  display: flex;
-  justify-content: center;
-  gap: 16px;
-  padding: 10px 20px;
-  background-color: #704c3b;
-}
-
-.search-input {
-  padding: 6px 10px;
-  border-radius: 6px;
-  border: none;
-  width: 200px;
-}
-
-.sort-select {
-  padding: 6px;
-  border-radius: 6px;
-  border: none;
-}
-
-/* 标签过滤 */
-.tag-filters {
-  display: flex;
-  justify-content: center;
-  flex-wrap: wrap;
-  gap: 8px;
-  padding: 10px;
-}
-
-.tag-button {
-  background-color: #b38867;
-  color: white;
-  border: none;
-  border-radius: 20px;
-  padding: 6px 12px;
-  cursor: pointer;
-}
-
-.active-tag {
-  background-color: #d17c4f;
-}
-
-.clear-filter-btn {
-  background: transparent;
-  border: none;
-  color: #888;
-  font-size: 1rem;
-  cursor: pointer;
-  margin-left: 4px;
-}
-
-.clear-filter-btn:hover {
-  color: red;
-}
-
-/* 卡片展示 */
-.seed-list-content {
-  padding: 20px;
-}
-
-.seed-cards {
-  display: grid;
-  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
-  gap: 20px;
-  padding: 20px 0;
-}
-
-.seed-card {
-  background-color: #fff;
-  border-radius: 12px;
-  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
-  padding: 16px;
-  display: flex;
-  flex-direction: column;
-  justify-content: space-between;
-  color: #333;
-  transition: transform 0.2s ease;
-}
-
-.seed-card:hover {
-  transform: translateY(-5px);
-}
-
-.seed-card-header h3 {
-  font-size: 1.2rem;
-  margin-bottom: 10px;
-  color: #333;
-  word-break: break-word;
-}
-
-.seed-card-body {
-  display: flex;
-  flex-direction: column;
-}
-
-.seed-info {
-  display: flex;
-  justify-content: space-between;
-  font-size: 0.9rem;
-  color: #666;
-  margin-bottom: 8px;
-}
-
-.seed-card-tags {
-  display: flex;
-  flex-wrap: wrap;
-  gap: 6px;
-  margin-top: 6px;
-}
-
-.tag-label {
-  background-color: #f0f0f0;
-  color: #555;
-  padding: 4px 10px;
-  font-size: 0.75rem;
-  border-radius: 12px;
-  white-space: nowrap;
-}
-
-.seed-card-actions {
-  display: flex;
-  justify-content: space-between;
-  gap: 10px;
-  margin-top: 12px;
-}
-
-.btn-primary,
-.btn-secondary,
-.btn-outline {
-  padding: 6px 12px;
-  border: none;
-  border-radius: 6px;
-  cursor: pointer;
-  font-size: 0.9rem;
-  text-align: center;
-  white-space: nowrap;
-  transition: background-color 0.2s ease;
-}
-
-.btn-primary {
-  background-color: #007bff;
-  color: white;
-}
-
-.btn-primary:hover {
-  background-color: #0056b3;
-}
-
-.btn-secondary {
-  background-color: #28a745;
-  color: white;
-}
-
-.btn-secondary:hover {
-  background-color: #218838;
-}
-
-.btn-outline {
-  background-color: transparent;
-  border: 1px solid #ccc;
-  color: #333;
-}
-
-.btn-outline:hover {
-  background-color: #f8f9fa;
-}
-.seed-cover {
-  width: 100%;
-  height: 180px;
-  object-fit: cover;
-  border-radius: 8px;
-  margin-bottom: 12px;
-}
- .friend-moments {
-    background-color: #5c3f31;
-    color: white;
-  }
-  
+      .seed-header-size,
+      .seed-header-upload-time,
+      .seed-header-downloads,
+      .seed-header-actions {
+        text-align: center; /* 新增：文字居中 */
+      }
+      
+      .seed-info {
+        display: flex;
+        justify-content: space-between;
+        font-size: 0.9rem;
+        color: #666;
+        margin-bottom: 8px;
+      }
+      
+      .tag-label {
+        background-color: #eee;
+        border-radius: 4px;
+        padding: 2px 6px;
+        font-size: 12px;
+      }
+      
+      .btn-primary,
+      .btn-secondary,
+      .btn-outline {
+        padding: 6px 12px;
+        border: none;
+        border-radius: 6px;
+        cursor: pointer;
+        font-size: 0.9rem;
+        text-align: center;
+        white-space: nowrap;
+        transition: background-color 0.2s ease;
+      }
+      
+      .btn-primary {
+        background-color: #007bff;
+        color: white;
+      }
+      
+      .btn-primary:hover {
+        background-color: #0056b3;
+      }
+      
+      .btn-secondary {
+        background-color: #28a745;
+        color: white;
+      }
+      
+      .btn-secondary:hover {
+        background-color: #218838;
+      }
+      
+      .btn-outline {
+        background-color: transparent;
+        border: 1px solid #ccc;
+        color: #333;
+      }
+      
+      .btn-outline:hover {
+        background-color: #f8f9fa;
+      }
+      .seed-cover {
+        width: 100%;
+        height: 180px;
+        object-fit: cover;
+        border-radius: 8px;
+        margin-bottom: 12px;
+      }
+      .friend-moments {
+        background-color: #5c3f31;
+        color: white;
+      }
+          
\ No newline at end of file
diff --git a/src/pages/SeedList/SeedList.jsx b/src/pages/SeedList/SeedList.jsx
index 39a7615..2831434 100644
--- a/src/pages/SeedList/SeedList.jsx
+++ b/src/pages/SeedList/SeedList.jsx
@@ -1,4 +1,3 @@
-
 import React, { useState, useEffect } from 'react';
 import { Link } from 'wouter';
 import axios from 'axios';
@@ -50,8 +49,8 @@
         if (searchTerm.trim()) params.search = searchTerm.trim();
 
         const tags = Object.entries(selectedFilters)
-            .filter(([_, value]) => value !== '不限')
-            .map(([_, value]) => value);
+           .filter(([_, value]) => value!== '不限')
+           .map(([_, value]) => value);
 
         if (tags.length > 0) {
             params.tags = tags.join(',');
@@ -70,7 +69,7 @@
             const response = await fetch(`${API_BASE}/echo/seeds?${queryString}`);
             const data = await response.json();
 
-            if (data.status !== 'success') throw new Error(data.message || '获取失败');
+            if (data.status!== 'success') throw new Error(data.message || '获取失败');
             const seeds = data.seeds || [];
             setSeeds(seeds);
             setFilteredSeeds(seeds);
@@ -105,13 +104,13 @@
     };
 
     useEffect(() => {
-        if (activeTab !== '猜你喜欢') {
+        if (activeTab!== '猜你喜欢') {
             fetchFilterOptions();
         }
     }, [activeTab]);
 
     useEffect(() => {
-        if (activeTab !== '猜你喜欢') {
+        if (activeTab!== '猜你喜欢') {
             fetchSeeds();
         }
     }, [activeTab, sortOption, selectedFilters, tagMode, searchTerm]);
@@ -145,14 +144,14 @@
 
     const handleFilterChange = (key, value) => {
         setSelectedFilters((prev) => ({
-            ...prev,
+           ...prev,
             [key]: value
         }));
     };
 
     const clearFilter = (key) => {
         setSelectedFilters((prev) => ({
-            ...prev,
+           ...prev,
             [key]: '不限'
         }));
     };
@@ -183,7 +182,7 @@
                 {TAGS.map((tag) => (
                     <button
                         key={tag}
-                        className={`tag-button ${activeTab === tag ? 'active-tag' : ''}`}
+                        className={`tag-button ${activeTab === tag? 'active-tag' : ''}`}
                         onClick={() => {
                             setActiveTab(tag);
                             setFilters({});
@@ -195,7 +194,7 @@
                 ))}
             </div>
 
-            {activeTab !== '猜你喜欢' && Object.keys(filters).length > 0 && (
+            {activeTab!== '猜你喜欢' && Object.keys(filters).length > 0 && (
                 <div className="filter-bar">
                     {Object.entries(filters).map(([key, options]) => (
                         <div className="filter-group" key={key}>
@@ -208,7 +207,7 @@
                                     <option key={opt} value={opt}>{opt}</option>
                                 ))}
                             </select>
-                            {selectedFilters[key] !== '不限' && (
+                            {selectedFilters[key]!== '不限' && (
                                 <button className="clear-filter-btn" onClick={() => clearFilter(key)}>✕</button>
                             )}
                         </div>
@@ -217,47 +216,73 @@
             )}
 
             <div className="seed-list-content">
-                {activeTab === '猜你喜欢' ? (
+                {activeTab === '猜你喜欢'? (
                     <Recommend />
-                ) : loading ? (
+                ) : loading? (
                     <p>加载中...</p>
-                ) : errorMsg ? (
+                ) : errorMsg? (
                     <p className="error-text">{errorMsg}</p>
-                ) : filteredSeeds.length === 0 ? (
+                ) : filteredSeeds.length === 0? (
                     <p>未找到符合条件的种子。</p>
                 ) : (
-                    <div className="seed-cards">
-                        {filteredSeeds.map((seed, index) => (
-                            <div key={index} className="seed-card">
-                                {seed.image_url && (
-                                    <img src={seed.image_url} alt={seed.title} className="seed-cover" />
-                                )}
-                                <div className="seed-card-header">
-                                    <h3>{seed.title}</h3>
-                                </div>
-
-                                <div className="seed-card-body">
-                                    <div className="seed-info">
-                                        <span>{seed.size || '未知'} GB</span>
-                                        <span>{seed.upload_time?.split('T')[0] || '未知'}</span>
-                                        <span>{seed.downloads ?? 0} 次下载</span>
-                                    </div>
-                                    {seed.tags && seed.tags.length > 0 && (
-                                        <div className="seed-card-tags">
-                                            {seed.tags.map((tag, i) => (
-                                                <span key={i} className="tag-label">{tag}</span>
-                                            ))}
+                    <div className="seed-list-card">
+                        <div className="seed-list-header">
+                            <div className="seed-header-cover"></div>
+                            <div className="seed-header-title">种子名称</div>
+                            <div className="seed-header-size">大小</div>
+                            <div className="seed-header-upload-time">上传时间</div>
+                            <div className="seed-header-downloads">下载次数</div>
+                            <div className="seed-header-actions">操作</div>
+                        </div>
+                        <div className="seed-list-body">
+                            {filteredSeeds.map((seed, index) => (
+                                <Link href={`/seed/${seed.seed_id}`} key={index} className="seed-item-link">
+                                    <div className="seed-item">
+                                        {seed.image_url && (
+                                            <img src={seed.image_url} alt={seed.title} className="seed-item-cover" />
+                                        )}
+                                        <div className="seed-item-title">
+                                            <div className="seed-title-row">
+                                                <h3 className="seed-title">{seed.title}</h3>
+                                                <div className="seed-tags">
+                                                    {seed.tags && seed.tags.map((tag, i) => (
+                                                        <span key={i} className="tag-label">{tag}</span>
+                                                    ))}
+                                                </div>
+                                            </div>
                                         </div>
-                                    )}
-                                </div>
-
-                                <div className="seed-card-actions">
-                                    <button className="btn-primary" onClick={() => handleDownload(seed.seed_id)}>下载</button>
-                                    <Link href={`/seed/${seed.seed_id}`} className="btn-secondary">详情</Link>
-                                    <button className="btn-outline">收藏</button>
-                                </div>
-                            </div>
-                        ))}
+                                        <div className="seed-item-size">{seed.size || '未知'}</div>
+                                        <div className="seed-item-upload-time">{seed.upload_time?.split('T')[0] || '未知'}</div>
+                                        <div className="seed-item-downloads">{seed.downloads?? 0} 次下载</div>
+                                        <div
+                                            className="seed-item-actions"
+                                            onClick={(e) => e.stopPropagation()} // 阻止事件冒泡，避免跳转
+                                        >
+                                            <button
+                                                className="btn-primary"
+                                                onClick={(e) => {
+                                                    e.preventDefault(); // 阻止跳转
+                                                    e.stopPropagation();
+                                                    handleDownload(seed.seed_id);
+                                                }}
+                                            >
+                                                下载
+                                            </button>
+                                            <button
+                                                className="btn-outline"
+                                                onClick={(e) => {
+                                                    e.preventDefault();
+                                                    e.stopPropagation();
+                                                    // TODO: 收藏操作
+                                                }}
+                                            >
+                                                收藏
+                                            </button>
+                                        </div>
+                                    </div>
+                                </Link>
+                            ))}
+                        </div>
                     </div>
                 )}
             </div>
@@ -266,3 +291,4 @@
 };
 
 export default SeedList;
+    
