新增论坛页面
Change-Id: I317789b03458b6e8109dd7aa3ac8c1eadcb38e62
diff --git a/front/src/PostDetailPage.js b/front/src/PostDetailPage.js
new file mode 100644
index 0000000..85b7707
--- /dev/null
+++ b/front/src/PostDetailPage.js
@@ -0,0 +1,114 @@
+import React from "react";
+import { useParams } from "react-router-dom";
+
+// 示例数据
+const post = {
+ 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,
+};
+
+const replies = [
+ {
+ reply_id: "r1",
+ post_id: "1",
+ content: "支持一下!",
+ author_id: "u2",
+ author_name: "Bob",
+ created_at: "2024-06-01 13:00",
+ },
+ {
+ reply_id: "r2",
+ post_id: "1",
+ content: "论坛终于上线了!",
+ author_id: "u3",
+ author_name: "Carol",
+ created_at: "2024-06-01 14:20",
+ },
+];
+
+export default function PostDetailPage() {
+ const { postId } = useParams();
+ // 这里只展示post和replies的静态内容
+ return (
+ <div style={{ maxWidth: 700, margin: "40px auto" }}>
+ {/* 原帖 */}
+ <div style={{
+ background: "#fff",
+ borderRadius: 12,
+ boxShadow: "0 2px 8px #e0e7ff",
+ padding: 24,
+ marginBottom: 32,
+ }}>
+ <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>
+ {replies.map(reply => (
+ <div key={reply.reply_id} style={{
+ display: "flex",
+ alignItems: "center",
+ background: "#f8faff",
+ borderRadius: 8,
+ padding: "12px 18px",
+ marginBottom: 16,
+ fontSize: 15,
+ }}>
+ <span style={{ color: "#1976d2", fontWeight: 500, minWidth: 80 }}>{reply.author_name}</span>
+ <span style={{ flex: 1, marginLeft: 18 }}>{reply.content}</span>
+ <span style={{ color: "#888", fontSize: 13, marginLeft: 18 }}>{reply.created_at}</span>
+ </div>
+ ))}
+ </div>
+ {/* 回复框 */}
+ <div style={{
+ marginTop: 32,
+ background: "#fff",
+ borderRadius: 8,
+ boxShadow: "0 2px 8px #e0e7ff",
+ padding: 18,
+ display: "flex",
+ gap: 12,
+ alignItems: "center"
+ }}>
+ <input
+ type="text"
+ placeholder="写下你的回复..."
+ style={{
+ flex: 1,
+ border: "1px solid #bfcfff",
+ borderRadius: 6,
+ padding: "8px 12px",
+ fontSize: 15,
+ }}
+ />
+ <button style={{
+ background: "#1976d2",
+ color: "#fff",
+ border: "none",
+ borderRadius: 6,
+ padding: "8px 24px",
+ fontSize: 15,
+ cursor: "pointer"
+ }}>回复</button>
+ </div>
+ </div>
+ );
+}
\ No newline at end of file