| import React from "react"; |
| import { useNavigate } from "react-router-dom"; |
| |
| // 示例数据 |
| const posts = [ |
| { |
| post_id: "1", |
| title: "欢迎来到G10论坛", |
| content: "这里是G10 PT站的官方论坛,欢迎大家发帖交流!", |
| author_id: "u1", |
| author_name: "Alice", |
| created_at: "2024-06-01 12:00", |
| reply_count: 3, |
| view_count: 120, |
| }, |
| { |
| post_id: "2", |
| title: "经典电影合集", |
| content: "90年代经典电影大家有什么推荐吗?", |
| author_id: "u2", |
| author_name: "Bob", |
| created_at: "2024-06-02 09:30", |
| reply_count: 1, |
| view_count: 45, |
| }, |
| ]; |
| |
| export default function ForumPage() { |
| const navigate = useNavigate(); |
| return ( |
| <div style={{ maxWidth: 700, margin: "40px auto" }}> |
| <div style={{ display: "flex", alignItems: "center", marginBottom: 24 }}> |
| <h2 style={{ color: "#1a237e", margin: 0, marginRight: 24 }}>G10 论坛</h2> |
| <input |
| type="text" |
| placeholder="搜索帖子内容" |
| style={{ |
| flex: 1, |
| fontSize: 16, |
| padding: "8px 14px", |
| border: "1px solid #bfcfff", |
| borderRadius: 8, |
| outline: "none", |
| minWidth: 0, |
| }} |
| /> |
| <button |
| style={{ |
| marginLeft: 8, |
| fontSize: 16, |
| padding: "8px 18px", |
| border: "1px solid #bfcfff", |
| background: "#e0e7ff", |
| borderRadius: 8, |
| cursor: "pointer", |
| }} |
| > |
| 🔍 |
| </button> |
| </div> |
| {posts.map(post => ( |
| <div |
| key={post.post_id} |
| style={{ |
| background: "#fff", |
| borderRadius: 12, |
| boxShadow: "0 2px 8px #e0e7ff", |
| padding: 24, |
| marginBottom: 24, |
| cursor: "pointer", |
| transition: "box-shadow 0.2s", |
| }} |
| onClick={() => navigate(`/forum/${post.post_id}`)} |
| > |
| <div style={{ fontSize: 15, color: "#1976d2", marginBottom: 6 }}> |
| {post.author_name} · {post.created_at} |
| </div> |
| <div style={{ fontWeight: 600, fontSize: 20, marginBottom: 8, color: "#222" }}> |
| {post.title} |
| </div> |
| <div style={{ fontSize: 16, color: "#444", marginBottom: 18 }}> |
| {post.content} |
| </div> |
| <div style={{ display: "flex", justifyContent: "flex-start", gap: 32, fontSize: 14, color: "#888" }}> |
| <span>回复数: {post.reply_count}</span> |
| <span>观看数: {post.view_count}</span> |
| </div> |
| </div> |
| ))} |
| </div> |
| ); |
| } |