调试兴趣小组封面图

Change-Id: I757ff42431a7f7c280444bec03a4fc965416aa2d
diff --git a/src/pages/FriendMoments/FriendMoments.css b/src/pages/FriendMoments/FriendMoments.css
index 087abcb..4f0a801 100644
--- a/src/pages/FriendMoments/FriendMoments.css
+++ b/src/pages/FriendMoments/FriendMoments.css
@@ -1,3 +1,12 @@
+.user-avatar {
+  width: 40px;
+  height: 40px;
+  border-radius: 50%;
+  object-fit: cover;
+  border: 1.5px solid #ddd;
+  box-shadow: 0 1px 4px rgba(0,0,0,0.1);
+}
+
 .friend-moments-container {
   margin: 0 auto;
   background: #333;
@@ -42,7 +51,6 @@
   padding: 1% 1.5%;
   margin: 1% 2%;
   border-radius: 6px;
-  /*设置item之间的间隔*/
   margin-bottom: 2%;
   background-color: #e9ded2;
 }
@@ -87,7 +95,6 @@
   font-size: 12px;
 }
 
-/* Modal 样式 */
 .modal-overlay {
   position: fixed;
   top: 0;
@@ -111,7 +118,6 @@
   gap: 20px;
 }
 
-/* 标题 */
 .modal-dialog h3 {
   margin: 0;
   color : #4A3B34;
@@ -172,4 +178,5 @@
 .modal-actions .btn.submit {
   background: #BA929A;
   color: #fff;
-}
+} 
+
diff --git a/src/pages/FriendMoments/FriendMoments.jsx b/src/pages/FriendMoments/FriendMoments.jsx
index 526c06d..9595b8b 100644
--- a/src/pages/FriendMoments/FriendMoments.jsx
+++ b/src/pages/FriendMoments/FriendMoments.jsx
@@ -5,6 +5,13 @@
 import { Edit, GoodTwo, Comment } from '@icon-park/react';
 import { UserContext } from '../../context/UserContext'; // 引入用户上下文
 
+// 修改后的封面图 URL 拼接函数
+const formatImageUrl = (url) => {
+  if (!url) return '';
+  const filename = url.split('/').pop(); // 提取文件名部分
+  return `http://localhost:8080/uploads/post/${filename}`;
+};
+
 const FriendMoments = () => {
   const [feeds, setFeeds] = useState([]);
   const [filteredFeeds, setFilteredFeeds] = useState([]);
@@ -191,12 +198,6 @@
       return;
     }
 
-    // 检查是否已经点赞,防止重复请求
-    // const currentFeed = feeds.find(feed => feed.postNo === dynamicId);
-    // if (currentFeed && currentFeed.liked) {
-    //   console.warn('尝试重复点赞,已忽略');
-    //   return;
-    // }
 
     console.log('当前用户ID:', userId);
     console.log('即将点赞的动态ID:', dynamicId);
@@ -400,17 +401,6 @@
           <Edit theme="outline" size="18" style={{ marginRight: '6px' }} />
           创建动态
         </button>
-        {/* <div className="f-search-bar">
-          <input
-            className="search-input"
-            type="text"
-            value={query}
-            onChange={e => setQuery(e.target.value)}
-            placeholder="输入要搜索的动态"
-          />
-          <button className="search-btn" onClick={handleSearch}>搜索</button>
-          <button className="search-btn" onClick={handleReset}>重置</button>
-        </div> */}
       </div>
 
       <div className="feed-list">
@@ -429,7 +419,11 @@
             <div className="feed-item" key={feed.postNo || `feed-${Math.random()}`}>
               {/* 显示发布者信息 */}
               <div className="feed-author">
-                <img src={feed.avatar_url || 'https://example.com/default-avatar.jpg'} alt={feed.username || '用户头像'} />
+              <img
+                className="user-avatar"
+                src={feed.avatar_url || 'https://example.com/default-avatar.jpg'}
+                alt={feed.username || '用户头像'}
+              />
                 <div>
                   <h4>{feed.username || '未知用户'}</h4>
                   <span className="feed-date">{new Date(feed.postTime || Date.now()).toLocaleString()}</span>
@@ -441,17 +435,17 @@
 
               {feed.imageUrl && (
                 <div className="feed-images">
-                  {/* 处理可能是单张图片或多张图片的情况 */}
                   {typeof feed.imageUrl === 'string' ? (
-                    <img src={feed.imageUrl} alt="动态图片" />
+                    <img src={formatImageUrl(feed.imageUrl)} alt="动态图片" />
                   ) : (
                     feed.imageUrl.map((url, i) => (
-                      <img key={i} src={url} alt={`动态图${i}`} />
+                      <img key={i} src={formatImageUrl(url)} alt={`动态图${i}`} />
                     ))
                   )}
                 </div>
               )}
 
+
               <div className="feed-footer">
                 <div className="like-container">
                     <button className="icon-btn" onClick={() => handleLike(feed.postNo, feed.liked, feed.user_id)}>
diff --git a/src/pages/InterestGroup/GroupItem.jsx b/src/pages/InterestGroup/GroupItem.jsx
index 4f76bac..8fdc640 100644
--- a/src/pages/InterestGroup/GroupItem.jsx
+++ b/src/pages/InterestGroup/GroupItem.jsx
@@ -1,59 +1,3 @@
-// import React, { useState } from 'react';
-// import { useGroupStore } from '../../context/useGroupStore';
-// import { useUser } from '../../context/UserContext'; // ✅ 新增:引入 UserContext
-// import CreatePostForm from './CreatePostForm';
-
-// const GroupItem = ({ group }) => {
-//   const { handleJoinGroup, joinStatus } = useGroupStore();
-//   const { user } = useUser(); // ✅ 获取 user
-//   const userId = user?.userId; // ✅ 安全获取 userId
-//   const [showCreatePost, setShowCreatePost] = useState(false);
-
-//   return (
-//     <div className="group-item">
-//       <div className="group-content">
-//         <img
-//           style={{ width: '40%', height: '40%' }}
-//           src={group.cover_image || 'https://picsum.photos/200/200'}
-//           alt={group.groupName || group.name}
-//           className="group-cover"
-//         />
-//         <div className="group-info-right">
-//           <h3>{group.groupName || group.name}</h3>
-//           <p style={{ color: '#BA929A' }}>{group.memberCount || 0}人加入了小组</p>
-//           <button
-//             onClick={() => handleJoinGroup(group.group_id, userId)}
-//             disabled={joinStatus[group.group_id] === '加入成功' || !userId}
-//           >
-//             {joinStatus[group.group_id] === '加入成功' ? '已加入' : userId ? '+加入小组' : '请登录'}
-//           </button>
-
-//           {userId && joinStatus[group.group_id] === '加入成功' && (
-//             <button onClick={() => setShowCreatePost(!showCreatePost)}>
-//               +发布帖子
-//             </button>
-//           )}
-//         </div>
-//       </div>
-
-//       <div className="group-description">
-//         <p>{group.description}</p>
-//       </div>
-//       <p>分类:{group.category}</p>
-
-//       {showCreatePost && (
-//         <CreatePostForm 
-//           groupId={group.group_id} 
-//           onClose={() => setShowCreatePost(false)} 
-//         />
-//       )}
-//     </div>
-//   );
-// };
-
-// export default GroupItem;
-
-
 import React, { useState } from 'react';
 import { useGroupStore } from '../../context/useGroupStore';
 import { useUser } from '../../context/UserContext';
@@ -76,7 +20,7 @@
       <div className="group-content">
         <img
           style={{ width: '40%', height: '40%' }}
-          src={group.cover_image || 'https://picsum.photos/200/200'}
+          src={group.coverImage || 'https://picsum.photos/200/200'}
           alt={group.groupName}
           className="group-cover"
         />
@@ -115,64 +59,4 @@
   );
 };
 
-export default GroupItem;
-
-
-// import React, { useState } from 'react';
-// import { useGroupStore } from '../../context/useGroupStore';
-// import { useUser } from '../../context/UserContext';
-// import CreatePostForm from './CreatePostForm';
-
-// const GroupItem = ({ group }) => {
-//     console.log('group:', group);
-
-//   const { handleJoinGroup, joinStatus } = useGroupStore();
-//   const { user } = useUser();
-//   const userId = user?.userId; // 确保使用正确的字段名(取自 localStorage 的结构)
-//   const [showCreatePost, setShowCreatePost] = useState(false);
-
-//   return (
-//     <div className="group-item">
-//       <div className="group-content">
-//         <img
-//           style={{ width: '40%', height: '40%' }}
-//           src={group.cover_image || 'https://picsum.photos/200/200'}
-//           alt={group.name}
-//           className="group-cover"
-//         />
-//         <div className="group-info-right">
-//           <h3>{group.name}</h3>
-//           <p style={{ color: '#BA929A' }}>{group.member_count || 0}人加入了小组</p>
-
-//           <button
-//             onClick={() => handleJoinGroup(group.group_id, userId)}
-//             disabled={joinStatus[group.group_id] === '加入成功' || !userId}
-//           >
-//             {joinStatus[group.group_id] === '加入成功' ? '已加入' : userId ? '+加入小组' : '请登录'}
-//           </button>
-
-//           {userId && joinStatus[group.group_id] === '加入成功' && (
-//             <button onClick={() => setShowCreatePost(!showCreatePost)}>
-//               +发布帖子
-//             </button>
-//           )}
-//         </div>
-//       </div>
-
-//       <div className="group-description">
-//         <p>{group.description}</p>
-//       </div>
-//       <p>分类:{group.category}</p>
-
-//       {showCreatePost && (
-//         <CreatePostForm 
-//           groupId={group.group_id}
-//           onClose={() => setShowCreatePost(false)}
-//         />
-//       )}
-//     </div>
-//   );
-// };
-
-// export default GroupItem;
-
+export default GroupItem;
\ No newline at end of file