增加帖子详情api与前端页面,需完善按钮与显示

Change-Id: I84d3aace81055b8dc372f91942523d163b1ec463
diff --git a/JWLLL/API_front/src/components/HomeFeed.jsx b/JWLLL/API_front/src/components/HomeFeed.jsx
index 0b17b1f..3dcba27 100644
--- a/JWLLL/API_front/src/components/HomeFeed.jsx
+++ b/JWLLL/API_front/src/components/HomeFeed.jsx
@@ -1,5 +1,6 @@
 import React, { useState, useEffect } from 'react'
 import { ThumbsUp } from 'lucide-react'
+import { useNavigate } from 'react-router-dom'
 import '../style/HomeFeed.css'
 
 const categories = [
@@ -16,6 +17,7 @@
 const DEFAULT_TAGS = ['美食','影视','穿搭'] // 可根据实际数据库调整
 
 export default function HomeFeed() {
+  const navigate = useNavigate()
   const [activeCat, setActiveCat] = useState('推荐')
   const [items, setItems] = useState([])
   const [search, setSearch] = useState('')
@@ -49,7 +51,7 @@
     setLoading(true)
     let tags = []
     try {
-      const res = await fetch(`/user_tags?user_id=${DEFAULT_USER_ID}`)
+      const res = await fetch(`http://127.0.0.1:5000/user_tags?user_id=${DEFAULT_USER_ID}`)
       const data = await res.json()
       tags = Array.isArray(data.tags) && data.tags.length > 0 ? data.tags : DEFAULT_TAGS
       setUserTags(tags)
@@ -68,7 +70,7 @@
   const fetchContent = async (keyword = '') => {
     setLoading(true)
     try {
-      const res = await fetch('/search', {
+      const res = await fetch('http://127.0.0.1:5000/search', {
         method: 'POST',
         headers: { 'Content-Type': 'application/json' },
         body: JSON.stringify({ keyword: keyword || activeCat, category: activeCat === '推荐' ? undefined : activeCat })
@@ -85,7 +87,7 @@
   const fetchTagRecommend = async (tags) => {
     setLoading(true)
     try {
-      const res = await fetch('/recommend_tags', {
+      const res = await fetch('http://127.0.0.1:5000/recommend_tags', {
         method: 'POST',
         headers: { 'Content-Type': 'application/json' },
         body: JSON.stringify({ user_id: DEFAULT_USER_ID, tags })
@@ -102,7 +104,7 @@
   const fetchCFRecommend = async (topN = recCFNum) => {
     setLoading(true)
     try {
-      const res = await fetch('/user_based_recommend', {
+      const res = await fetch('http://127.0.0.1:5000/user_based_recommend', {
         method: 'POST',
         headers: { 'Content-Type': 'application/json' },
         body: JSON.stringify({ user_id: DEFAULT_USER_ID, top_n: topN })
@@ -120,6 +122,10 @@
     fetchContent(search)
   }
 
+  const handlePostClick = (postId) => {
+    navigate(`/post/${postId}`)
+  }
+
   return (
     <div className="home-feed">
       {/* 推荐模式切换,仅在推荐页显示 */}
@@ -186,7 +192,7 @@
         {loading ? <div style={{padding:32}}>加载中...</div> :
           items.length === 0 ? <div style={{padding:32, color:'#aaa'}}>暂无推荐内容</div> :
           items.map(item => (
-            <div key={item.id} className="feed-card">
+            <div key={item.id} className="feed-card" onClick={() => handlePostClick(item.id)}>
               {/* 封面图 */}
               {/* <img className="card-img" src={item.img} alt={item.title} /> */}
               {/* 标题 */}