diff --git a/src/features/forum/pages/PostDetailPage.jsx b/src/features/forum/pages/PostDetailPage.jsx
index 5e28820..ba4da2f 100644
--- a/src/features/forum/pages/PostDetailPage.jsx
+++ b/src/features/forum/pages/PostDetailPage.jsx
@@ -13,10 +13,11 @@
   Spin,
   Space,
   Tag,
-  Empty
+  Empty,
+  Modal
 } from 'antd';
-import { ArrowLeftOutlined, MessageOutlined, UserOutlined, CommentOutlined } from '@ant-design/icons';
-import { getComments, addComment } from '@/api/forum';
+import { ArrowLeftOutlined, MessageOutlined, UserOutlined, CommentOutlined, DeleteOutlined, ExclamationCircleOutlined } from '@ant-design/icons';
+import { getComments, addComment, deleteComment } from '@/api/forum';
 import { useAuth } from '@/features/auth/contexts/AuthContext';
 
 const { Title, Paragraph, Text } = Typography;
@@ -25,7 +26,10 @@
 const PostDetailPage = () => {
   const { postId } = useParams();
   const navigate = useNavigate();
-  const { user, isAuthenticated } = useAuth();
+  const { user, isAuthenticated, hasRole } = useAuth();
+  
+  // 判断是否为管理员
+  const isAdmin = hasRole('admin') || (user && user.uid && user.uid.includes('admin'));
   const [loading, setLoading] = useState(true);
   const [commenting, setCommenting] = useState(false);
   const [postContent, setPostContent] = useState('');
@@ -159,6 +163,43 @@
     replyForms.resetFields();
   };
 
+  // 删除评论（管理员功能）
+  const handleDeleteComment = (comment) => {
+    Modal.confirm({
+      title: '确认删除评论',
+      icon: <ExclamationCircleOutlined />,
+      content: (
+        <div>
+          <p>您确定要删除这条评论吗？</p>
+          <p><strong>作者：</strong>{comment.writer}</p>
+          <p><strong>内容：</strong>{comment.content.length > 50 ? comment.content.substring(0, 50) + '...' : comment.content}</p>
+          <p className="text-red-500 mt-2">此操作不可撤销！</p>
+        </div>
+      ),
+      okText: '确认删除',
+      okType: 'danger',
+      cancelText: '取消',
+      async onOk() {
+        try {
+          const params = {
+            username: user.username,
+            commentId: comment.commentId
+          };
+          const response = await deleteComment(params);
+          if (response.message) {
+            message.success(response.message || '评论删除成功');
+            fetchPostAndComments(); // 重新加载评论
+          } else {
+            message.error(response.message || '删除评论失败');
+          }
+        } catch (error) {
+          console.error('删除评论失败:', error);
+          message.error(error.message || '删除评论失败');
+        }
+      },
+    });
+  };
+
   // 格式化日期
   const formatDate = (dateString) => {
     try {
@@ -299,6 +340,19 @@
                               回复 #{comment.reviewerId}
                             </Tag>
                           )}
+                          {isAdmin && (
+                            <Button
+                              type="text"
+                              danger
+                              size="small"
+                              icon={<DeleteOutlined />}
+                              onClick={() => handleDeleteComment(comment)}
+                              title="删除评论（管理员）"
+                              className="ml-2"
+                            >
+                              删除
+                            </Button>
+                          )}
                         </div>
                       }
                       description={
