diff --git a/src/views/forum/ForumSectionView.vue b/src/views/forum/ForumSectionView.vue
new file mode 100644
index 0000000..a8e7306
--- /dev/null
+++ b/src/views/forum/ForumSectionView.vue
@@ -0,0 +1,1008 @@
+<template>
+  <div class="section-page">
+    <div class="page-container">
+      <!-- 面包屑导航 -->
+      <div class="breadcrumb">
+        <el-breadcrumb separator="/">
+          <el-breadcrumb-item :to="{ path: '/forum' }">论坛首页</el-breadcrumb-item>
+          <el-breadcrumb-item>{{ sectionInfo.name }}</el-breadcrumb-item>
+        </el-breadcrumb>
+      </div>
+
+      <!-- 版块信息 -->
+      <div class="section-header">
+        <div class="section-info">
+          <div class="section-icon">
+            <el-icon size="48" :color="sectionInfo.color">
+              <component :is="sectionInfo.icon" />
+            </el-icon>
+          </div>
+          <div class="section-details">
+            <h1 class="section-name">{{ sectionInfo.name }}</h1>
+            <p class="section-description">{{ sectionInfo.description }}</p>
+            <div class="section-stats">
+              <div class="stat-item">
+                <el-icon><ChatDotRound /></el-icon>
+                <span>{{ sectionInfo.topics }} 主题</span>
+              </div>
+              <div class="stat-item">
+                <el-icon><Comment /></el-icon>
+                <span>{{ sectionInfo.replies }} 回复</span>
+              </div>
+              <div class="stat-item">
+                <el-icon><User /></el-icon>
+                <span>{{ sectionInfo.members }} 成员</span>
+              </div>
+            </div>
+          </div>
+        </div>
+        
+        <div class="section-actions">
+          <el-button type="primary" :icon="Edit" @click="showNewTopicDialog = true">
+            发布新主题
+          </el-button>
+        </div>
+      </div>
+
+      <!-- 筛选和搜索 -->
+      <div class="filter-section">
+        <div class="filter-left">
+          <el-input
+            v-model="searchQuery"
+            placeholder="搜索主题..."
+            :prefix-icon="Search"
+            @keyup.enter="handleSearch"
+            clearable
+            style="width: 300px;"
+          />
+          <el-button type="primary" @click="handleSearch">搜索</el-button>
+        </div>
+        
+        <div class="filter-right">
+          <el-select v-model="sortBy" placeholder="排序方式" @change="handleFilter">
+            <el-option label="最新回复" value="last_reply" />
+            <el-option label="发布时间" value="create_time" />
+            <el-option label="回复数量" value="replies" />
+            <el-option label="浏览次数" value="views" />
+          </el-select>
+          
+          <el-select v-model="filterType" placeholder="主题类型" @change="handleFilter">
+            <el-option label="全部主题" value="" />
+            <el-option label="置顶主题" value="pinned" />
+            <el-option label="热门主题" value="hot" />
+            <el-option label="精华主题" value="featured" />
+          </el-select>
+        </div>
+      </div>
+
+      <!-- 置顶主题 -->
+      <div v-if="pinnedTopics.length > 0" class="pinned-topics">
+        <h3 class="section-title">置顶主题</h3>
+        <div class="topics-list">
+          <div
+            v-for="topic in pinnedTopics"
+            :key="topic.id"
+            class="topic-item pinned"
+            @click="navigateToTopic(topic.id)"
+          >
+            <div class="topic-status">
+              <el-icon class="pin-icon"><Top /></el-icon>
+            </div>
+            
+            <div class="topic-content">
+              <div class="topic-header">
+                <h4 class="topic-title">{{ topic.title }}</h4>
+                <div class="topic-tags">
+                  <el-tag type="warning" size="small">置顶</el-tag>
+                  <el-tag v-if="topic.hot" type="danger" size="small">热门</el-tag>
+                  <el-tag v-if="topic.featured" type="success" size="small">精华</el-tag>
+                </div>
+              </div>
+              
+              <div class="topic-meta">
+                <div class="author-info">
+                  <el-avatar :size="24">{{ topic.author.charAt(0) }}</el-avatar>
+                  <span class="author-name">{{ topic.author }}</span>
+                  <span class="create-time">{{ formatTime(topic.createTime) }}</span>
+                </div>
+                
+                <div class="topic-stats">
+                  <span class="stat-item">
+                    <el-icon><View /></el-icon>
+                    {{ topic.views }}
+                  </span>
+                  <span class="stat-item">
+                    <el-icon><Comment /></el-icon>
+                    {{ topic.replies }}
+                  </span>
+                </div>
+              </div>
+            </div>
+            
+            <div class="last-reply">
+              <div v-if="topic.lastReply" class="reply-info">
+                <div class="reply-author">{{ topic.lastReply.author }}</div>
+                <div class="reply-time">{{ formatTime(topic.lastReply.time) }}</div>
+              </div>
+            </div>
+          </div>
+        </div>
+      </div>
+
+      <!-- 普通主题列表 -->
+      <div class="normal-topics">
+        <div class="section-header">
+          <h3 class="section-title">主题列表</h3>
+          <div class="results-info">
+            共 {{ totalTopics }} 个主题
+          </div>
+        </div>
+        
+        <div class="topics-list" v-loading="loading">
+          <div
+            v-for="topic in topics"
+            :key="topic.id"
+            class="topic-item"
+            @click="navigateToTopic(topic.id)"
+          >
+            <div class="topic-status">
+              <el-icon v-if="topic.hasNewReplies" class="new-icon" color="#f56c6c">
+                <ChatDotRound />
+              </el-icon>
+              <el-icon v-else class="normal-icon" color="#909399">
+                <ChatLineRound />
+              </el-icon>
+            </div>
+            
+            <div class="topic-content">
+              <div class="topic-header">
+                <h4 class="topic-title">{{ topic.title }}</h4>
+                <div class="topic-tags">
+                  <el-tag v-if="topic.hot" type="danger" size="small">热门</el-tag>
+                  <el-tag v-if="topic.featured" type="success" size="small">精华</el-tag>
+                  <el-tag v-if="topic.closed" type="info" size="small">已关闭</el-tag>
+                </div>
+              </div>
+              
+              <div class="topic-meta">
+                <div class="author-info">
+                  <el-avatar :size="24">{{ topic.author.charAt(0) }}</el-avatar>
+                  <span class="author-name">{{ topic.author }}</span>
+                  <span class="create-time">{{ formatTime(topic.createTime) }}</span>
+                </div>
+                
+                <div class="topic-stats">
+                  <span class="stat-item">
+                    <el-icon><View /></el-icon>
+                    {{ topic.views }}
+                  </span>
+                  <span class="stat-item">
+                    <el-icon><Comment /></el-icon>
+                    {{ topic.replies }}
+                  </span>
+                </div>
+              </div>
+            </div>
+            
+            <div class="last-reply">
+              <div v-if="topic.lastReply" class="reply-info">
+                <div class="reply-author">{{ topic.lastReply.author }}</div>
+                <div class="reply-time">{{ formatTime(topic.lastReply.time) }}</div>
+              </div>
+              <div v-else class="no-reply">暂无回复</div>
+            </div>
+          </div>
+          
+          <div v-if="topics.length === 0 && !loading" class="no-topics">
+            暂无主题，快来发布第一个主题吧！
+          </div>
+        </div>
+        
+        <!-- 分页 -->
+        <div class="pagination-wrapper">
+          <el-pagination
+            v-model:current-page="currentPage"
+            v-model:page-size="pageSize"
+            :page-sizes="[20, 50, 100]"
+            :total="totalTopics"
+            layout="total, sizes, prev, pager, next, jumper"
+            @size-change="handleSizeChange"
+            @current-change="handleCurrentChange"
+          />
+        </div>
+      </div>
+    </div>
+
+    <!-- 发布新主题对话框 -->
+    <el-dialog
+      v-model="showNewTopicDialog"
+      title="发布新主题"
+      width="600px"
+      :before-close="handleCloseDialog"
+    >
+      <el-form
+        ref="topicFormRef"
+        :model="newTopic"
+        :rules="topicRules"
+        label-width="80px"
+      >
+        <el-form-item label="主题标题" prop="title">
+          <el-input
+            v-model="newTopic.title"
+            placeholder="请输入主题标题"
+            maxlength="100"
+            show-word-limit
+          />
+        </el-form-item>
+        
+        <el-form-item label="主题标签">
+          <div class="tags-input">
+            <el-tag
+              v-for="tag in newTopic.tags"
+              :key="tag"
+              closable
+              @close="removeTopicTag(tag)"
+            >
+              {{ tag }}
+            </el-tag>
+            <el-input
+              v-if="tagInputVisible"
+              ref="tagInputRef"
+              v-model="tagInputValue"
+              size="small"
+              @keyup.enter="addTopicTag"
+              @blur="addTopicTag"
+              style="width: 100px;"
+            />
+            <el-button
+              v-else
+              size="small"
+              @click="showTagInput"
+            >
+              + 添加标签
+            </el-button>
+          </div>
+        </el-form-item>
+        
+        <el-form-item label="主题内容" prop="content">
+          <el-input
+            v-model="newTopic.content"
+            type="textarea"
+            :rows="8"
+            placeholder="请输入主题内容..."
+            maxlength="5000"
+            show-word-limit
+          />
+        </el-form-item>
+        
+        <el-form-item label="主题选项">
+          <el-checkbox-group v-model="newTopic.options">
+            <el-checkbox label="hot">申请热门</el-checkbox>
+            <el-checkbox label="featured">申请精华</el-checkbox>
+          </el-checkbox-group>
+        </el-form-item>
+      </el-form>
+      
+      <template #footer>
+        <el-button @click="handleCloseDialog">取消</el-button>
+        <el-button type="primary" @click="submitNewTopic" :loading="submitting">
+          发布主题
+        </el-button>
+      </template>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { ref, reactive, onMounted, nextTick } from 'vue'
+import { useRoute, useRouter } from 'vue-router'
+import { ElMessage, ElMessageBox } from 'element-plus'
+import {
+  Edit,
+  Search,
+  ChatDotRound,
+  Comment,
+  User,
+  View,
+  Top,
+  ChatLineRound,
+  Film,
+  Headphones,
+  Monitor,
+  GamePad,
+  Bell,
+  QuestionFilled
+} from '@element-plus/icons-vue'
+
+export default {
+  name: 'ForumSectionView',
+  setup() {
+    const route = useRoute()
+    const router = useRouter()
+    const topicFormRef = ref(null)
+    const tagInputRef = ref(null)
+    
+    const loading = ref(false)
+    const showNewTopicDialog = ref(false)
+    const submitting = ref(false)
+    const tagInputVisible = ref(false)
+    const tagInputValue = ref('')
+    
+    const searchQuery = ref('')
+    const sortBy = ref('last_reply')
+    const filterType = ref('')
+    const currentPage = ref(1)
+    const pageSize = ref(20)
+    const totalTopics = ref(0)
+    
+    const sectionInfo = ref({
+      id: 1,
+      name: '电影讨论',
+      description: '分享和讨论电影资源，交流观影心得',
+      icon: 'Film',
+      color: '#409eff',
+      topics: 3256,
+      replies: 18934,
+      members: 1234
+    })
+    
+    const newTopic = reactive({
+      title: '',
+      content: '',
+      tags: [],
+      options: []
+    })
+    
+    const topicRules = {
+      title: [
+        { required: true, message: '请输入标题', trigger: 'blur' },
+        { min: 5, max: 100, message: '标题长度在 5 到 100 个字符', trigger: 'blur' }
+      ],
+      content: [
+        { required: true, message: '请输入内容', trigger: 'blur' },
+        { min: 10, max: 5000, message: '内容长度在 10 到 5000 个字符', trigger: 'blur' }
+      ]
+    }
+    
+    const pinnedTopics = ref([
+      {
+        id: 1,
+        title: '【公告】本版块发帖规则和注意事项',
+        author: 'Admin',
+        createTime: '2025-05-01T10:00:00',
+        views: 5678,
+        replies: 23,
+        hot: false,
+        featured: true,
+        lastReply: {
+          author: 'User123',
+          time: '2025-06-02T15:30:00'
+        }
+      }
+    ])
+    
+    const topics = ref([
+      {
+        id: 2,
+        title: '2024年度最佳科幻电影推荐榜单',
+        author: 'SciFiFan',
+        createTime: '2025-06-03T10:30:00',
+        views: 1234,
+        replies: 45,
+        hot: true,
+        featured: false,
+        closed: false,
+        hasNewReplies: true,
+        lastReply: {
+          author: 'MovieLover',
+          time: '2025-06-03T14:25:00'
+        }
+      },
+      {
+        id: 3,
+        title: '阿凡达2：水之道 观影感受分享',
+        author: 'Avatar2Fan',
+        createTime: '2025-06-02T16:45:00',
+        views: 892,
+        replies: 67,
+        hot: false,
+        featured: true,
+        closed: false,
+        hasNewReplies: false,
+        lastReply: {
+          author: 'CinemaExpert',
+          time: '2025-06-03T12:10:00'
+        }
+      },
+      {
+        id: 4,
+        title: '求推荐几部好看的悬疑电影',
+        author: 'SuspenseLover',
+        createTime: '2025-06-01T09:20:00',
+        views: 456,
+        replies: 23,
+        hot: false,
+        featured: false,
+        closed: false,
+        hasNewReplies: true,
+        lastReply: {
+          author: 'ThrillerFan',
+          time: '2025-06-03T11:45:00'
+        }
+      }
+    ])
+    
+    onMounted(() => {
+      const sectionId = route.params.id
+      fetchSectionData(sectionId)
+    })
+    
+    const fetchSectionData = async (id) => {
+      loading.value = true
+      try {
+        // 模拟API调用
+        console.log('获取版块数据:', id)
+        
+        // 根据版块ID设置不同的版块信息
+        const sections = {
+          1: { name: '电影讨论', description: '分享和讨论电影资源，交流观影心得', icon: 'Film', color: '#409eff' },
+          2: { name: '音乐分享', description: '音乐资源分享，音乐制作技术交流', icon: 'Headphones', color: '#67c23a' },
+          3: { name: '软件技术', description: '软件资源分享，技术问题讨论', icon: 'Monitor', color: '#e6a23c' },
+          4: { name: '游戏天地', description: '游戏资源分享，游戏攻略讨论', icon: 'GamePad', color: '#f56c6c' },
+          5: { name: '站务公告', description: '网站公告，规则说明，意见建议', icon: 'Bell', color: '#909399' },
+          6: { name: '新手求助', description: '新手问题解答，使用教程分享', icon: 'QuestionFilled', color: '#606266' }
+        }
+        
+        const sectionData = sections[id] || sections[1]
+        sectionInfo.value = {
+          id: parseInt(id),
+          ...sectionData,
+          topics: 3256,
+          replies: 18934,
+          members: 1234
+        }
+        
+        totalTopics.value = 156
+        
+      } catch (error) {
+        ElMessage.error('获取版块数据失败')
+      } finally {
+        loading.value = false
+      }
+    }
+    
+    const formatTime = (timeString) => {
+      const date = new Date(timeString)
+      const now = new Date()
+      const diff = now - date
+      const hours = Math.floor(diff / (1000 * 60 * 60))
+      
+      if (hours < 1) return '刚刚'
+      if (hours < 24) return `${hours}小时前`
+      const days = Math.floor(hours / 24)
+      if (days < 7) return `${days}天前`
+      
+      return date.toLocaleDateString('zh-CN', {
+        month: '2-digit',
+        day: '2-digit',
+        hour: '2-digit',
+        minute: '2-digit'
+      })
+    }
+    
+    const navigateToTopic = (topicId) => {
+      router.push(`/forum/topic/${topicId}`)
+    }
+    
+    const handleSearch = () => {
+      currentPage.value = 1
+      fetchTopics()
+    }
+    
+    const handleFilter = () => {
+      currentPage.value = 1
+      fetchTopics()
+    }
+    
+    const fetchTopics = async () => {
+      loading.value = true
+      try {
+        // 模拟API调用
+        await new Promise(resolve => setTimeout(resolve, 500))
+        console.log('获取主题列表:', { searchQuery: searchQuery.value, sortBy: sortBy.value, filterType: filterType.value })
+      } catch (error) {
+        ElMessage.error('获取主题列表失败')
+      } finally {
+        loading.value = false
+      }
+    }
+    
+    const handleSizeChange = (size) => {
+      pageSize.value = size
+      currentPage.value = 1
+      fetchTopics()
+    }
+    
+    const handleCurrentChange = (page) => {
+      currentPage.value = page
+      fetchTopics()
+    }
+    
+    const showTagInput = () => {
+      tagInputVisible.value = true
+      nextTick(() => {
+        tagInputRef.value?.focus()
+      })
+    }
+    
+    const addTopicTag = () => {
+      const tag = tagInputValue.value.trim()
+      if (tag && !newTopic.tags.includes(tag)) {
+        newTopic.tags.push(tag)
+      }
+      tagInputVisible.value = false
+      tagInputValue.value = ''
+    }
+    
+    const removeTopicTag = (tag) => {
+      const index = newTopic.tags.indexOf(tag)
+      if (index > -1) {
+        newTopic.tags.splice(index, 1)
+      }
+    }
+    
+    const handleCloseDialog = () => {
+      if (newTopic.title || newTopic.content) {
+        ElMessageBox.confirm(
+          '确定要关闭吗？未保存的内容将会丢失。',
+          '提示',
+          {
+            confirmButtonText: '确定',
+            cancelButtonText: '取消',
+            type: 'warning'
+          }
+        ).then(() => {
+          resetForm()
+          showNewTopicDialog.value = false
+        }).catch(() => {
+          // 用户取消
+        })
+      } else {
+        resetForm()
+        showNewTopicDialog.value = false
+      }
+    }
+    
+    const submitNewTopic = async () => {
+      try {
+        await topicFormRef.value?.validate()
+        
+        submitting.value = true
+        
+        // 模拟提交过程
+        await new Promise(resolve => setTimeout(resolve, 1500))
+        
+        ElMessage.success('主题发布成功！')
+        resetForm()
+        showNewTopicDialog.value = false
+        
+        // 刷新主题列表
+        fetchTopics()
+        
+      } catch (error) {
+        console.error('表单验证失败:', error)
+      } finally {
+        submitting.value = false
+      }
+    }
+    
+    const resetForm = () => {
+      topicFormRef.value?.resetFields()
+      newTopic.title = ''
+      newTopic.content = ''
+      newTopic.tags = []
+      newTopic.options = []
+    }
+    
+    return {
+      loading,
+      showNewTopicDialog,
+      submitting,
+      tagInputVisible,
+      tagInputValue,
+      searchQuery,
+      sortBy,
+      filterType,
+      currentPage,
+      pageSize,
+      totalTopics,
+      sectionInfo,
+      pinnedTopics,
+      topics,
+      newTopic,
+      topicRules,
+      topicFormRef,
+      tagInputRef,
+      formatTime,
+      navigateToTopic,
+      handleSearch,
+      handleFilter,
+      handleSizeChange,
+      handleCurrentChange,
+      showTagInput,
+      addTopicTag,
+      removeTopicTag,
+      handleCloseDialog,
+      submitNewTopic,
+      Edit,
+      Search,
+      ChatDotRound,
+      Comment,
+      User,
+      View,
+      Top,
+      ChatLineRound,
+      Film,
+      Headphones,
+      Monitor,
+      GamePad,
+      Bell,
+      QuestionFilled
+    }
+  }
+}
+</script>
+
+<style lang="scss" scoped>
+.section-page {
+  max-width: 1200px;
+  margin: 0 auto;
+  padding: 24px;
+  background: #f5f5f5;
+  min-height: 100vh;
+}
+
+.breadcrumb {
+  margin-bottom: 16px;
+}
+
+.section-header {
+  background: #fff;
+  border-radius: 12px;
+  padding: 32px;
+  margin-bottom: 24px;
+  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
+  
+  display: flex;
+  justify-content: space-between;
+  align-items: center;
+  gap: 24px;
+  
+  .section-info {
+    display: flex;
+    align-items: center;
+    gap: 20px;
+    flex: 1;
+    
+    .section-details {
+      .section-name {
+        font-size: 28px;
+        font-weight: 600;
+        color: #2c3e50;
+        margin: 0 0 8px 0;
+      }
+      
+      .section-description {
+        font-size: 16px;
+        color: #7f8c8d;
+        margin: 0 0 16px 0;
+      }
+      
+      .section-stats {
+        display: flex;
+        gap: 24px;
+        
+        .stat-item {
+          display: flex;
+          align-items: center;
+          gap: 8px;
+          font-size: 14px;
+          color: #606266;
+        }
+      }
+    }
+  }
+  
+  .section-actions {
+    flex-shrink: 0;
+  }
+}
+
+.filter-section {
+  background: #fff;
+  border-radius: 12px;
+  padding: 20px 24px;
+  margin-bottom: 24px;
+  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
+  
+  display: flex;
+  justify-content: space-between;
+  align-items: center;
+  gap: 20px;
+  
+  .filter-left {
+    display: flex;
+    align-items: center;
+    gap: 12px;
+  }
+  
+  .filter-right {
+    display: flex;
+    align-items: center;
+    gap: 12px;
+    
+    .el-select {
+      width: 120px;
+    }
+  }
+}
+
+.pinned-topics, .normal-topics {
+  background: #fff;
+  border-radius: 12px;
+  padding: 24px;
+  margin-bottom: 24px;
+  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
+  
+  .section-header {
+    display: flex;
+    justify-content: space-between;
+    align-items: center;
+    margin-bottom: 20px;
+    background: none;
+    padding: 0;
+    box-shadow: none;
+    
+    .section-title {
+      font-size: 18px;
+      font-weight: 600;
+      color: #2c3e50;
+      margin: 0;
+    }
+    
+    .results-info {
+      font-size: 14px;
+      color: #909399;
+    }
+  }
+}
+
+.topics-list {
+  .topic-item {
+    display: flex;
+    align-items: center;
+    gap: 16px;
+    padding: 16px;
+    border: 1px solid #f0f0f0;
+    border-radius: 8px;
+    margin-bottom: 12px;
+    cursor: pointer;
+    transition: all 0.3s ease;
+    
+    &:hover {
+      background: #f8f9fa;
+      border-color: #409eff;
+      transform: translateX(2px);
+    }
+    
+    &.pinned {
+      background: linear-gradient(90deg, #fff7e6 0%, #fff 100%);
+      border-color: #e6a23c;
+    }
+    
+    .topic-status {
+      width: 32px;
+      text-align: center;
+      
+      .pin-icon {
+        color: #e6a23c;
+      }
+      
+      .new-icon {
+        animation: pulse 2s infinite;
+      }
+    }
+    
+    .topic-content {
+      flex: 1;
+      
+      .topic-header {
+        display: flex;
+        align-items: center;
+        gap: 12px;
+        margin-bottom: 8px;
+        
+        .topic-title {
+          font-size: 16px;
+          font-weight: 500;
+          color: #2c3e50;
+          margin: 0;
+          flex: 1;
+          
+          &:hover {
+            color: #409eff;
+          }
+        }
+        
+        .topic-tags {
+          .el-tag {
+            margin-left: 4px;
+          }
+        }
+      }
+      
+      .topic-meta {
+        display: flex;
+        justify-content: space-between;
+        align-items: center;
+        
+        .author-info {
+          display: flex;
+          align-items: center;
+          gap: 8px;
+          
+          .author-name {
+            font-size: 14px;
+            font-weight: 500;
+            color: #606266;
+          }
+          
+          .create-time {
+            font-size: 12px;
+            color: #909399;
+          }
+        }
+        
+        .topic-stats {
+          display: flex;
+          gap: 16px;
+          
+          .stat-item {
+            display: flex;
+            align-items: center;
+            gap: 4px;
+            font-size: 12px;
+            color: #909399;
+          }
+        }
+      }
+    }
+    
+    .last-reply {
+      width: 150px;
+      text-align: right;
+      
+      .reply-info {
+        .reply-author {
+          font-size: 14px;
+          font-weight: 500;
+          color: #606266;
+          margin-bottom: 4px;
+        }
+        
+        .reply-time {
+          font-size: 12px;
+          color: #909399;
+        }
+      }
+      
+      .no-reply {
+        font-size: 12px;
+        color: #c0c4cc;
+      }
+    }
+  }
+  
+  .no-topics {
+    text-align: center;
+    color: #909399;
+    padding: 60px 0;
+    font-size: 16px;
+  }
+}
+
+.pagination-wrapper {
+  margin-top: 24px;
+  text-align: center;
+}
+
+.tags-input {
+  display: flex;
+  flex-wrap: wrap;
+  gap: 8px;
+  align-items: center;
+  
+  .el-tag {
+    margin: 0;
+  }
+}
+
+@keyframes pulse {
+  0% {
+    transform: scale(1);
+  }
+  50% {
+    transform: scale(1.1);
+  }
+  100% {
+    transform: scale(1);
+  }
+}
+
+@media (max-width: 768px) {
+  .section-page {
+    padding: 16px;
+  }
+  
+  .section-header {
+    flex-direction: column;
+    align-items: flex-start;
+    gap: 16px;
+    
+    .section-info {
+      flex-direction: column;
+      text-align: center;
+      
+      .section-stats {
+        justify-content: center;
+      }
+    }
+    
+    .section-actions {
+      width: 100%;
+      text-align: center;
+    }
+  }
+  
+  .filter-section {
+    flex-direction: column;
+    gap: 16px;
+    
+    .filter-left, .filter-right {
+      width: 100%;
+      justify-content: center;
+    }
+    
+    .filter-right {
+      .el-select {
+        width: 140px;
+      }
+    }
+  }
+  
+  .topic-item {
+    flex-direction: column;
+    align-items: flex-start;
+    gap: 12px;
+    
+    .topic-status {
+      align-self: flex-start;
+    }
+    
+    .topic-content {
+      width: 100%;
+      
+      .topic-meta {
+        flex-direction: column;
+        align-items: flex-start;
+        gap: 8px;
+      }
+    }
+    
+    .last-reply {
+      width: 100%;
+      text-align: left;
+    }
+  }
+}
+</style>
\ No newline at end of file
diff --git a/src/views/forum/ForumTopicView.vue b/src/views/forum/ForumTopicView.vue
new file mode 100644
index 0000000..027083f
--- /dev/null
+++ b/src/views/forum/ForumTopicView.vue
@@ -0,0 +1,933 @@
+<template>
+  <div class="topic-detail-page">
+    <div class="page-container">
+      <!-- 面包屑导航 -->
+      <div class="breadcrumb">
+        <el-breadcrumb separator="/">
+          <el-breadcrumb-item :to="{ path: '/forum' }">论坛首页</el-breadcrumb-item>
+          <el-breadcrumb-item :to="{ path: `/forum/section/${topic.sectionId}` }">
+            {{ topic.sectionName }}
+          </el-breadcrumb-item>
+          <el-breadcrumb-item>{{ topic.title }}</el-breadcrumb-item>
+        </el-breadcrumb>
+      </div>
+
+      <!-- 主题信息 -->
+      <div class="topic-header">
+        <div class="topic-info">
+          <div class="topic-title-row">
+            <h1 class="topic-title">{{ topic.title }}</h1>
+            <div class="topic-status">
+              <el-tag v-if="topic.pinned" type="warning" size="small">置顶</el-tag>
+              <el-tag v-if="topic.hot" type="danger" size="small">热门</el-tag>
+              <el-tag v-if="topic.closed" type="info" size="small">已关闭</el-tag>
+            </div>
+          </div>
+          
+          <div class="topic-tags">
+            <el-tag
+              v-for="tag in topic.tags"
+              :key="tag"
+              size="small"
+              type="info"
+              effect="plain"
+            >
+              {{ tag }}
+            </el-tag>
+          </div>
+          
+          <div class="topic-meta">
+            <div class="author-info">
+              <el-avatar :size="32">{{ topic.author.charAt(0) }}</el-avatar>
+              <div class="author-details">
+                <span class="author-name">{{ topic.author }}</span>
+                <span class="post-time">发表于 {{ formatDateTime(topic.createTime) }}</span>
+              </div>
+            </div>
+            
+            <div class="topic-stats">
+              <div class="stat-item">
+                <el-icon><View /></el-icon>
+                <span>{{ topic.views }} 浏览</span>
+              </div>
+              <div class="stat-item">
+                <el-icon><Comment /></el-icon>
+                <span>{{ topic.replies }} 回复</span>
+              </div>
+            </div>
+          </div>
+        </div>
+        
+        <div class="topic-actions">
+          <el-button 
+            v-if="!topic.closed" 
+            type="primary" 
+            :icon="Edit" 
+            @click="showReplyDialog = true"
+          >
+            回复主题
+          </el-button>
+          <el-dropdown @command="handleTopicAction">
+            <el-button :icon="More">
+              更多 <el-icon class="el-icon--right"><ArrowDown /></el-icon>
+            </el-button>
+            <template #dropdown>
+              <el-dropdown-menu>
+                <el-dropdown-item command="favorite">
+                  {{ isFavorited ? '取消收藏' : '收藏主题' }}
+                </el-dropdown-item>
+                <el-dropdown-item command="share">分享主题</el-dropdown-item>
+                <el-dropdown-item command="report" divided>举报主题</el-dropdown-item>
+              </el-dropdown-menu>
+            </template>
+          </el-dropdown>
+        </div>
+      </div>
+
+      <!-- 主题内容和回复列表 -->
+      <div class="posts-container">
+        <!-- 主楼 -->
+        <div class="post-item main-post">
+          <div class="post-header">
+            <div class="floor-number">#1</div>
+            <div class="post-author">
+              <el-avatar :size="48">{{ topic.author.charAt(0) }}</el-avatar>
+              <div class="author-info">
+                <span class="author-name">{{ topic.author }}</span>
+                <span class="author-title">{{ topic.authorTitle || '会员' }}</span>
+                <div class="author-stats">
+                  <span>帖子: {{ topic.authorPosts || 0 }}</span>
+                  <span>声望: {{ topic.authorReputation || 0 }}</span>
+                </div>
+              </div>
+            </div>
+            <div class="post-time">
+              {{ formatDateTime(topic.createTime) }}
+            </div>
+          </div>
+          
+          <div class="post-content">
+            <div class="content-text" v-html="formatContent(topic.content)"></div>
+          </div>
+          
+          <div class="post-actions">
+            <el-button type="text" size="small" @click="likePost(topic.id)">
+              <el-icon><Like /></el-icon>
+              {{ topic.likes || 0 }}
+            </el-button>
+            <el-button type="text" size="small" @click="quotePost(topic)">
+              <el-icon><ChatDotRound /></el-icon>
+              引用
+            </el-button>
+            <el-button type="text" size="small" @click="reportPost(topic.id)">
+              <el-icon><Flag /></el-icon>
+              举报
+            </el-button>
+          </div>
+        </div>
+
+        <!-- 回复列表 -->
+        <div
+          v-for="(reply, index) in replies"
+          :key="reply.id"
+          class="post-item reply-post"
+        >
+          <div class="post-header">
+            <div class="floor-number">#{{ index + 2 }}</div>
+            <div class="post-author">
+              <el-avatar :size="48">{{ reply.author.charAt(0) }}</el-avatar>
+              <div class="author-info">
+                <span class="author-name">{{ reply.author }}</span>
+                <span class="author-title">{{ reply.authorTitle || '会员' }}</span>
+                <div class="author-stats">
+                  <span>帖子: {{ reply.authorPosts || 0 }}</span>
+                  <span>声望: {{ reply.authorReputation || 0 }}</span>
+                </div>
+              </div>
+            </div>
+            <div class="post-time">
+              {{ formatDateTime(reply.createTime) }}
+            </div>
+          </div>
+          
+          <div class="post-content">
+            <div v-if="reply.quotedPost" class="quoted-content">
+              <div class="quote-header">
+                <el-icon><ChatDotRound /></el-icon>
+                <span>{{ reply.quotedPost.author }} 发表于 {{ formatDateTime(reply.quotedPost.time) }}</span>
+              </div>
+              <div class="quote-text">{{ reply.quotedPost.content }}</div>
+            </div>
+            <div class="content-text" v-html="formatContent(reply.content)"></div>
+          </div>
+          
+          <div class="post-actions">
+            <el-button type="text" size="small" @click="likePost(reply.id)">
+              <el-icon><Like /></el-icon>
+              {{ reply.likes || 0 }}
+            </el-button>
+            <el-button type="text" size="small" @click="quotePost(reply)">
+              <el-icon><ChatDotRound /></el-icon>
+              引用
+            </el-button>
+            <el-button type="text" size="small" @click="reportPost(reply.id)">
+              <el-icon><Flag /></el-icon>
+              举报
+            </el-button>
+          </div>
+        </div>
+      </div>
+
+      <!-- 分页 -->
+      <div class="pagination-wrapper">
+        <el-pagination
+          v-model:current-page="currentPage"
+          v-model:page-size="pageSize"
+          :page-sizes="[10, 20, 50]"
+          :total="totalReplies"
+          layout="total, sizes, prev, pager, next, jumper"
+          @size-change="handleSizeChange"
+          @current-change="handleCurrentChange"
+        />
+      </div>
+
+      <!-- 快速回复 -->
+      <div v-if="!topic.closed" class="quick-reply">
+        <h3>快速回复</h3>
+        <el-input
+          v-model="quickReplyContent"
+          type="textarea"
+          :rows="4"
+          placeholder="输入你的回复..."
+          maxlength="2000"
+          show-word-limit
+        />
+        <div class="quick-reply-actions">
+          <el-button @click="clearQuickReply">清空</el-button>
+          <el-button type="primary" @click="submitQuickReply" :loading="submittingReply">
+            发表回复
+          </el-button>
+        </div>
+      </div>
+    </div>
+
+    <!-- 回复对话框 -->
+    <el-dialog
+      v-model="showReplyDialog"
+      title="回复主题"
+      width="700px"
+      :before-close="handleCloseReplyDialog"
+    >
+      <el-form
+        ref="replyFormRef"
+        :model="replyForm"
+        :rules="replyRules"
+        label-width="80px"
+      >
+        <el-form-item v-if="quotedContent" label="引用内容">
+          <div class="quoted-preview">
+            <div class="quote-header">
+              <span>{{ quotedContent.author }}</span>
+            </div>
+            <div class="quote-content">{{ quotedContent.content }}</div>
+            <el-button type="text" size="small" @click="clearQuote">
+              清除引用
+            </el-button>
+          </div>
+        </el-form-item>
+        
+        <el-form-item label="回复内容" prop="content">
+          <el-input
+            v-model="replyForm.content"
+            type="textarea"
+            :rows="8"
+            placeholder="请输入回复内容..."
+            maxlength="5000"
+            show-word-limit
+          />
+        </el-form-item>
+      </el-form>
+      
+      <template #footer>
+        <el-button @click="handleCloseReplyDialog">取消</el-button>
+        <el-button type="primary" @click="submitReply" :loading="submittingReply">
+          发表回复
+        </el-button>
+      </template>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { ref, reactive, onMounted } from 'vue'
+import { useRoute, useRouter } from 'vue-router'
+import { ElMessage, ElMessageBox } from 'element-plus'
+import {
+  Edit,
+  More,
+  View,
+  Comment,
+  Like,
+  ChatDotRound,
+  Flag,
+  ArrowDown
+} from '@element-plus/icons-vue'
+
+export default {
+  name: 'ForumTopicView',
+  setup() {
+    const route = useRoute()
+    const router = useRouter()
+    const replyFormRef = ref(null)
+    
+    const showReplyDialog = ref(false)
+    const submittingReply = ref(false)
+    const isFavorited = ref(false)
+    const currentPage = ref(1)
+    const pageSize = ref(20)
+    const totalReplies = ref(0)
+    const quickReplyContent = ref('')
+    const quotedContent = ref(null)
+    
+    const topic = ref({
+      id: 1,
+      title: '2024年度最佳PT站点推荐与对比分析',
+      sectionId: 1,
+      sectionName: '站务讨论',
+      author: 'PTExpert',
+      authorTitle: '资深会员',
+      authorPosts: 1256,
+      authorReputation: 2890,
+      createTime: '2025-06-01T10:30:00',
+      content: `
+        <p>大家好，作为一个使用PT站点多年的老用户，我想和大家分享一下2024年各大PT站点的使用体验和对比分析。</p>
+        
+        <h3>评测标准</h3>
+        <ul>
+          <li>资源丰富度：种子数量、更新速度、稀有资源</li>
+          <li>用户体验：界面设计、功能完善度、响应速度</li>
+          <li>社区氛围：用户活跃度、互帮互助程度</li>
+          <li>规则友好性：考核难度、分享率要求、保种要求</li>
+        </ul>
+        
+        <h3>推荐站点</h3>
+        <p>经过综合评测，以下几个站点值得推荐：</p>
+        <ol>
+          <li><strong>站点A</strong>：资源最全，更新最快，适合影视爱好者</li>
+          <li><strong>站点B</strong>：音乐资源丰富，无损居多，音质发烧友首选</li>
+          <li><strong>站点C</strong>：软件资源全面，更新及时，开发者必备</li>
+        </ol>
+        
+        <p>具体的详细评测报告我会在后续回复中逐一介绍，欢迎大家讨论和补充！</p>
+      `,
+      views: 2856,
+      replies: 147,
+      likes: 89,
+      tags: ['PT站点', '推荐', '对比'],
+      pinned: true,
+      hot: true,
+      closed: false
+    })
+    
+    const replies = ref([
+      {
+        id: 2,
+        author: 'MovieLover88',
+        authorTitle: '影视达人',
+        authorPosts: 567,
+        authorReputation: 1234,
+        createTime: '2025-06-01T11:15:00',
+        content: '感谢楼主的详细分析！特别期待站点A的详细评测，最近正在寻找好的影视资源站点。',
+        likes: 12
+      },
+      {
+        id: 3,
+        author: 'TechGuru',
+        authorTitle: '技术专家',
+        authorPosts: 890,
+        authorReputation: 2156,
+        createTime: '2025-06-01T12:30:00',
+        content: '站点C确实不错，软件资源很全面。不过楼主能不能也评测一下游戏类的PT站点？',
+        likes: 8,
+        quotedPost: {
+          author: 'PTExpert',
+          time: '2025-06-01T10:30:00',
+          content: '站点C：软件资源全面，更新及时，开发者必备'
+        }
+      }
+    ])
+    
+    const replyForm = reactive({
+      content: ''
+    })
+    
+    const replyRules = {
+      content: [
+        { required: true, message: '请输入回复内容', trigger: 'blur' },
+        { min: 5, max: 5000, message: '内容长度在 5 到 5000 个字符', trigger: 'blur' }
+      ]
+    }
+    
+    onMounted(() => {
+      const topicId = route.params.id
+      fetchTopicDetail(topicId)
+    })
+    
+    const fetchTopicDetail = async (id) => {
+      try {
+        console.log('获取主题详情:', id)
+        totalReplies.value = 147
+      } catch (error) {
+        ElMessage.error('获取主题详情失败')
+        router.back()
+      }
+    }
+    
+    const formatDateTime = (dateString) => {
+      const date = new Date(dateString)
+      return date.toLocaleString('zh-CN', {
+        year: 'numeric',
+        month: '2-digit',
+        day: '2-digit',
+        hour: '2-digit',
+        minute: '2-digit'
+      })
+    }
+    
+    const formatContent = (content) => {
+      return content.replace(/\n/g, '<br>')
+    }
+    
+    const handleTopicAction = (command) => {
+      switch (command) {
+        case 'favorite':
+          isFavorited.value = !isFavorited.value
+          ElMessage.success(isFavorited.value ? '已收藏' : '已取消收藏')
+          break
+        case 'share':
+          navigator.clipboard.writeText(window.location.href)
+          ElMessage.success('链接已复制到剪贴板')
+          break
+        case 'report':
+          reportPost(topic.value.id)
+          break
+      }
+    }
+    
+    const likePost = (postId) => {
+      if (postId === topic.value.id) {
+        topic.value.likes = (topic.value.likes || 0) + 1
+      } else {
+        const reply = replies.value.find(r => r.id === postId)
+        if (reply) {
+          reply.likes = (reply.likes || 0) + 1
+        }
+      }
+      ElMessage.success('点赞成功')
+    }
+    
+    const quotePost = (post) => {
+      quotedContent.value = {
+        author: post.author,
+        content: post.content.replace(/<[^>]*>/g, '').substring(0, 100) + '...',
+        time: post.createTime
+      }
+      showReplyDialog.value = true
+    }
+    
+    const reportPost = async (postId) => {
+      try {
+        await ElMessageBox.prompt('请说明举报原因', '举报内容', {
+          confirmButtonText: '提交举报',
+          cancelButtonText: '取消',
+          inputType: 'textarea',
+          inputPlaceholder: '请详细说明举报原因...'
+        })
+        
+        ElMessage.success('举报已提交，我们会尽快处理')
+      } catch {
+        // 用户取消
+      }
+    }
+    
+    const clearQuote = () => {
+      quotedContent.value = null
+    }
+    
+    const handleCloseReplyDialog = () => {
+      if (replyForm.content) {
+        ElMessageBox.confirm(
+          '确定要关闭吗？未保存的内容将会丢失。',
+          '提示',
+          {
+            confirmButtonText: '确定',
+            cancelButtonText: '取消',
+            type: 'warning'
+          }
+        ).then(() => {
+          resetReplyForm()
+          showReplyDialog.value = false
+        }).catch(() => {
+          // 用户取消
+        })
+      } else {
+        resetReplyForm()
+        showReplyDialog.value = false
+      }
+    }
+    
+    const submitReply = async () => {
+      try {
+        await replyFormRef.value?.validate()
+        
+        submittingReply.value = true
+        
+        await new Promise(resolve => setTimeout(resolve, 1500))
+        
+        const newReply = {
+          id: Date.now(),
+          author: localStorage.getItem('username') || '用户',
+          authorTitle: '会员',
+          authorPosts: 0,
+          authorReputation: 0,
+          createTime: new Date().toISOString(),
+          content: replyForm.content,
+          likes: 0,
+          quotedPost: quotedContent.value
+        }
+        
+        replies.value.push(newReply)
+        topic.value.replies += 1
+        
+        ElMessage.success('回复发表成功！')
+        resetReplyForm()
+        showReplyDialog.value = false
+        
+      } catch (error) {
+        console.error('表单验证失败:', error)
+      } finally {
+        submittingReply.value = false
+      }
+    }
+    
+    const submitQuickReply = async () => {
+      if (!quickReplyContent.value.trim()) {
+        ElMessage.warning('请输入回复内容')
+        return
+      }
+      
+      submittingReply.value = true
+      try {
+        await new Promise(resolve => setTimeout(resolve, 1000))
+        
+        const newReply = {
+          id: Date.now(),
+          author: localStorage.getItem('username') || '用户',
+          authorTitle: '会员',
+          authorPosts: 0,
+          authorReputation: 0,
+          createTime: new Date().toISOString(),
+          content: quickReplyContent.value,
+          likes: 0
+        }
+        
+        replies.value.push(newReply)
+        topic.value.replies += 1
+        quickReplyContent.value = ''
+        
+        ElMessage.success('回复发表成功！')
+      } catch (error) {
+        ElMessage.error('发表回复失败')
+      } finally {
+        submittingReply.value = false
+      }
+    }
+    
+    const clearQuickReply = () => {
+      quickReplyContent.value = ''
+    }
+    
+    const resetReplyForm = () => {
+      replyFormRef.value?.resetFields()
+      replyForm.content = ''
+      quotedContent.value = null
+    }
+    
+    const handleSizeChange = (size) => {
+      pageSize.value = size
+      currentPage.value = 1
+    }
+    
+    const handleCurrentChange = (page) => {
+      currentPage.value = page
+    }
+    
+    return {
+      showReplyDialog,
+      submittingReply,
+      isFavorited,
+      currentPage,
+      pageSize,
+      totalReplies,
+      quickReplyContent,
+      quotedContent,
+      topic,
+      replies,
+      replyForm,
+      replyRules,
+      replyFormRef,
+      formatDateTime,
+      formatContent,
+      handleTopicAction,
+      likePost,
+      quotePost,
+      reportPost,
+      clearQuote,
+      handleCloseReplyDialog,
+      submitReply,
+      submitQuickReply,
+      clearQuickReply,
+      handleSizeChange,
+      handleCurrentChange,
+      Edit,
+      More,
+      View,
+      Comment,
+      Like,
+      ChatDotRound,
+      Flag,
+      ArrowDown
+    }
+  }
+}
+</script>
+
+<style lang="scss" scoped>
+.topic-detail-page {
+  max-width: 1000px;
+  margin: 0 auto;
+  padding: 24px;
+  background: #f5f5f5;
+  min-height: 100vh;
+}
+
+.breadcrumb {
+  margin-bottom: 16px;
+}
+
+.topic-header {
+  background: #fff;
+  border-radius: 12px;
+  padding: 24px;
+  margin-bottom: 24px;
+  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
+  
+  display: flex;
+  justify-content: space-between;
+  align-items: flex-start;
+  gap: 24px;
+  
+  .topic-info {
+    flex: 1;
+    
+    .topic-title-row {
+      display: flex;
+      align-items: center;
+      gap: 12px;
+      margin-bottom: 12px;
+      
+      .topic-title {
+        font-size: 24px;
+        font-weight: 600;
+        color: #2c3e50;
+        margin: 0;
+        flex: 1;
+      }
+      
+      .topic-status {
+        .el-tag {
+          margin-left: 8px;
+        }
+      }
+    }
+    
+    .topic-tags {
+      margin-bottom: 16px;
+      
+      .el-tag {
+        margin-right: 8px;
+      }
+    }
+    
+    .topic-meta {
+      display: flex;
+      justify-content: space-between;
+      align-items: center;
+      
+      .author-info {
+        display: flex;
+        align-items: center;
+        gap: 12px;
+        
+        .author-details {
+          .author-name {
+            display: block;
+            font-weight: 600;
+            color: #2c3e50;
+            font-size: 14px;
+          }
+          
+          .post-time {
+            display: block;
+            font-size: 12px;
+            color: #909399;
+          }
+        }
+      }
+      
+      .topic-stats {
+        display: flex;
+        gap: 16px;
+        
+        .stat-item {
+          display: flex;
+          align-items: center;
+          gap: 4px;
+          font-size: 14px;
+          color: #7f8c8d;
+        }
+      }
+    }
+  }
+  
+  .topic-actions {
+    display: flex;
+    gap: 12px;
+    flex-shrink: 0;
+  }
+}
+
+.posts-container {
+  .post-item {
+    background: #fff;
+    border-radius: 12px;
+    margin-bottom: 16px;
+    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
+    overflow: hidden;
+    
+    &.main-post {
+      border-left: 4px solid #409eff;
+    }
+    
+    .post-header {
+      background: #f8f9fa;
+      padding: 16px 24px;
+      display: flex;
+      align-items: center;
+      gap: 16px;
+      border-bottom: 1px solid #f0f0f0;
+      
+      .floor-number {
+        background: #409eff;
+        color: white;
+        padding: 4px 8px;
+        border-radius: 4px;
+        font-size: 12px;
+        font-weight: 600;
+        min-width: 32px;
+        text-align: center;
+      }
+      
+      .post-author {
+        display: flex;
+        align-items: center;
+        gap: 12px;
+        flex: 1;
+        
+        .author-info {
+          .author-name {
+            display: block;
+            font-weight: 600;
+            color: #2c3e50;
+            font-size: 14px;
+          }
+          
+          .author-title {
+            display: block;
+            font-size: 12px;
+            color: #67c23a;
+            margin-bottom: 4px;
+          }
+          
+          .author-stats {
+            font-size: 11px;
+            color: #909399;
+            
+            span {
+              margin-right: 12px;
+            }
+          }
+        }
+      }
+      
+      .post-time {
+        font-size: 12px;
+        color: #909399;
+      }
+    }
+    
+    .post-content {
+      padding: 24px;
+      
+      .quoted-content {
+        background: #f5f7fa;
+        border-left: 4px solid #e4e7ed;
+        padding: 12px 16px;
+        margin-bottom: 16px;
+        border-radius: 0 4px 4px 0;
+        
+        .quote-header {
+          display: flex;
+          align-items: center;
+          gap: 8px;
+          font-size: 12px;
+          color: #909399;
+          margin-bottom: 8px;
+        }
+        
+        .quote-text {
+          font-size: 14px;
+          color: #606266;
+          line-height: 1.5;
+        }
+      }
+      
+      .content-text {
+        line-height: 1.6;
+        color: #2c3e50;
+        
+        :deep(h3) {
+          color: #2c3e50;
+          font-size: 18px;
+          font-weight: 600;
+          margin: 20px 0 12px 0;
+        }
+        
+        :deep(p) {
+          margin-bottom: 12px;
+        }
+        
+        :deep(ul), :deep(ol) {
+          margin: 12px 0;
+          padding-left: 20px;
+          
+          li {
+            margin-bottom: 8px;
+          }
+        }
+      }
+    }
+    
+    .post-actions {
+      padding: 12px 24px;
+      border-top: 1px solid #f0f0f0;
+      background: #fafafa;
+      
+      .el-button {
+        margin-right: 16px;
+        
+        .el-icon {
+          margin-right: 4px;
+        }
+      }
+    }
+  }
+}
+
+.pagination-wrapper {
+  text-align: center;
+  margin: 24px 0;
+}
+
+.quick-reply {
+  background: #fff;
+  border-radius: 12px;
+  padding: 24px;
+  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
+  
+  h3 {
+    font-size: 18px;
+    font-weight: 600;
+    color: #2c3e50;
+    margin: 0 0 16px 0;
+  }
+  
+  .quick-reply-actions {
+    margin-top: 12px;
+    text-align: right;
+    
+    .el-button {
+      margin-left: 12px;
+    }
+  }
+}
+
+.quoted-preview {
+  background: #f5f7fa;
+  border: 1px solid #e4e7ed;
+  border-radius: 4px;
+  padding: 12px;
+  
+  .quote-header {
+    font-size: 12px;
+    color: #909399;
+    margin-bottom: 8px;
+  }
+  
+  .quote-content {
+    font-size: 14px;
+    color: #606266;
+    margin-bottom: 8px;
+    line-height: 1.5;
+  }
+}
+
+@media (max-width: 768px) {
+  .topic-detail-page {
+    padding: 16px;
+  }
+  
+  .topic-header {
+    flex-direction: column;
+    align-items: flex-start;
+    
+    .topic-actions {
+      width: 100%;
+      justify-content: flex-end;
+    }
+  }
+  
+  .post-header {
+    flex-direction: column;
+    align-items: flex-start;
+    gap: 12px;
+    
+    .floor-number {
+      align-self: flex-start;
+    }
+  }
+  
+  .post-content {
+    padding: 16px;
+  }
+  
+  .post-actions {
+    padding: 12px 16px;
+    
+    .el-button {
+      margin-right: 8px;
+      margin-bottom: 8px;
+    }
+  }
+}
+</style>
\ No newline at end of file
diff --git a/src/views/forum/ForumView.vue b/src/views/forum/ForumView.vue
new file mode 100644
index 0000000..e4fa0f9
--- /dev/null
+++ b/src/views/forum/ForumView.vue
@@ -0,0 +1,978 @@
+<template>
+  <div class="forum-page">
+    <div class="page-container">
+      <!-- 论坛头部 -->
+      <div class="forum-header">
+        <div class="header-content">
+          <h1>社区论坛</h1>
+          <p class="header-description">与其他用户交流讨论，分享经验心得</p>
+          <div class="header-actions">
+            <el-button type="primary" :icon="Edit" @click="showNewTopicDialog = true">
+              发布新帖
+            </el-button>
+          </div>
+        </div>
+      </div>
+
+      <!-- 论坛统计 -->
+      <div class="forum-stats">
+        <div class="stats-grid">
+          <div class="stat-item">
+            <el-icon size="32" color="#409eff"><ChatDotRound /></el-icon>
+            <div class="stat-info">
+              <h3>{{ forumStats.totalTopics }}</h3>
+              <p>主题总数</p>
+            </div>
+          </div>
+          <div class="stat-item">
+            <el-icon size="32" color="#67c23a"><Comment /></el-icon>
+            <div class="stat-info">
+              <h3>{{ forumStats.totalReplies }}</h3>
+              <p>回复总数</p>
+            </div>
+          </div>
+          <div class="stat-item">
+            <el-icon size="32" color="#e6a23c"><User /></el-icon>
+            <div class="stat-info">
+              <h3>{{ forumStats.activeUsers }}</h3>
+              <p>活跃用户</p>
+            </div>
+          </div>
+          <div class="stat-item">
+            <el-icon size="32" color="#f56c6c"><View /></el-icon>
+            <div class="stat-info">
+              <h3>{{ forumStats.todayPosts }}</h3>
+              <p>今日发帖</p>
+            </div>
+          </div>
+        </div>
+      </div>
+
+      <!-- 版块列表 -->
+      <div class="forum-sections">
+        <h2 class="section-title">论坛版块</h2>
+        <div class="sections-list">
+          <div
+            v-for="section in forumSections"
+            :key="section.id"
+            class="section-card"
+            @click="navigateToSection(section.id)"
+          >
+            <div class="section-icon">
+              <el-icon size="48" :color="section.color">
+                <component :is="section.icon" />
+              </el-icon>
+            </div>
+            <div class="section-info">
+              <h3 class="section-name">{{ section.name }}</h3>
+              <p class="section-description">{{ section.description }}</p>
+              <div class="section-stats">
+                <span class="stat">{{ section.topics }} 主题</span>
+                <span class="stat">{{ section.replies }} 回复</span>
+              </div>
+            </div>
+            <div class="section-latest">
+              <div v-if="section.latestTopic" class="latest-topic">
+                <p class="topic-title">{{ section.latestTopic.title }}</p>
+                <div class="topic-meta">
+                  <span class="author">{{ section.latestTopic.author }}</span>
+                  <span class="time">{{ formatTime(section.latestTopic.time) }}</span>
+                </div>
+              </div>
+            </div>
+          </div>
+        </div>
+      </div>
+
+      <!-- 热门主题 -->
+      <div class="hot-topics">
+        <div class="section-header">
+          <h2 class="section-title">热门主题</h2>
+          <el-button type="primary" text @click="$router.push('/forum/topics')">
+            查看全部 <el-icon><ArrowRight /></el-icon>
+          </el-button>
+        </div>
+        <div class="topics-list">
+          <div
+            v-for="topic in hotTopics"
+            :key="topic.id"
+            class="topic-item"
+            @click="navigateToTopic(topic.id)"
+          >
+            <div class="topic-content">
+              <div class="topic-header">
+                <h4 class="topic-title">{{ topic.title }}</h4>
+                <div class="topic-tags">
+                  <el-tag
+                    v-for="tag in topic.tags"
+                    :key="tag"
+                    size="small"
+                    type="info"
+                  >
+                    {{ tag }}
+                  </el-tag>
+                </div>
+              </div>
+              <div class="topic-meta">
+                <div class="author-info">
+                  <el-avatar :size="24">{{ topic.author.charAt(0) }}</el-avatar>
+                  <span class="author-name">{{ topic.author }}</span>
+                </div>
+                <div class="topic-stats">
+                  <span class="stat-item">
+                    <el-icon><View /></el-icon>
+                    {{ topic.views }}
+                  </span>
+                  <span class="stat-item">
+                    <el-icon><Comment /></el-icon>
+                    {{ topic.replies }}
+                  </span>
+                  <span class="time">{{ formatTime(topic.lastReply) }}</span>
+                </div>
+              </div>
+            </div>
+            <div class="topic-status">
+              <el-tag v-if="topic.pinned" type="warning" size="small">置顶</el-tag>
+              <el-tag v-if="topic.hot" type="danger" size="small">热门</el-tag>
+            </div>
+          </div>
+        </div>
+      </div>
+
+      <!-- 最新回复 -->
+      <div class="recent-replies">
+        <h2 class="section-title">最新回复</h2>
+        <div class="replies-list">
+          <div
+            v-for="reply in recentReplies"
+            :key="reply.id"
+            class="reply-item"
+            @click="navigateToTopic(reply.topicId)"
+          >
+            <div class="reply-avatar">
+              <el-avatar :size="40">{{ reply.author.charAt(0) }}</el-avatar>
+            </div>
+            <div class="reply-content">
+              <div class="reply-header">
+                <span class="reply-author">{{ reply.author }}</span>
+                <span class="reply-action">回复了主题</span>
+                <span class="topic-title">{{ reply.topicTitle }}</span>
+              </div>
+              <div class="reply-text">{{ reply.content }}</div>
+              <div class="reply-time">{{ formatTime(reply.time) }}</div>
+            </div>
+          </div>
+        </div>
+      </div>
+    </div>
+
+    <!-- 发布新帖对话框 -->
+    <el-dialog
+      v-model="showNewTopicDialog"
+      title="发布新主题"
+      width="600px"
+      :before-close="handleCloseDialog"
+    >
+      <el-form
+        ref="topicFormRef"
+        :model="newTopic"
+        :rules="topicRules"
+        label-width="80px"
+      >
+        <el-form-item label="版块" prop="sectionId">
+          <el-select v-model="newTopic.sectionId" placeholder="选择版块">
+            <el-option
+              v-for="section in forumSections"
+              :key="section.id"
+              :label="section.name"
+              :value="section.id"
+            />
+          </el-select>
+        </el-form-item>
+        
+        <el-form-item label="标题" prop="title">
+          <el-input
+            v-model="newTopic.title"
+            placeholder="请输入主题标题"
+            maxlength="100"
+            show-word-limit
+          />
+        </el-form-item>
+        
+        <el-form-item label="标签">
+          <div class="tags-input">
+            <el-tag
+              v-for="tag in newTopic.tags"
+              :key="tag"
+              closable
+              @close="removeTopicTag(tag)"
+            >
+              {{ tag }}
+            </el-tag>
+            <el-input
+              v-if="tagInputVisible"
+              ref="tagInputRef"
+              v-model="tagInputValue"
+              size="small"
+              @keyup.enter="addTopicTag"
+              @blur="addTopicTag"
+              style="width: 100px;"
+            />
+            <el-button
+              v-else
+              size="small"
+              @click="showTagInput"
+            >
+              + 添加标签
+            </el-button>
+          </div>
+        </el-form-item>
+        
+        <el-form-item label="内容" prop="content">
+          <el-input
+            v-model="newTopic.content"
+            type="textarea"
+            :rows="8"
+            placeholder="请输入主题内容..."
+            maxlength="5000"
+            show-word-limit
+          />
+        </el-form-item>
+      </el-form>
+      
+      <template #footer>
+        <el-button @click="handleCloseDialog">取消</el-button>
+        <el-button type="primary" @click="submitNewTopic" :loading="submitting">
+          发布主题
+        </el-button>
+      </template>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { ref, reactive, onMounted, nextTick } from 'vue'
+import { useRouter } from 'vue-router'
+import { ElMessage, ElMessageBox } from 'element-plus'
+import {
+  Edit,
+  ChatDotRound,
+  Comment,
+  User,
+  View,
+  ArrowRight,
+  Film,
+  Headphones,
+  Monitor,
+  GamePad,
+  ChatLineRound,
+  QuestionFilled,
+  Bell
+} from '@element-plus/icons-vue'
+
+export default {
+  name: 'ForumView',
+  setup() {
+    const router = useRouter()
+    const topicFormRef = ref(null)
+    const tagInputRef = ref(null)
+    
+    const showNewTopicDialog = ref(false)
+    const submitting = ref(false)
+    const tagInputVisible = ref(false)
+    const tagInputValue = ref('')
+    
+    const forumStats = reactive({
+      totalTopics: '15,268',
+      totalReplies: '89,456',
+      activeUsers: '2,341',
+      todayPosts: '156'
+    })
+    
+    const newTopic = reactive({
+      sectionId: '',
+      title: '',
+      content: '',
+      tags: []
+    })
+    
+    const topicRules = {
+      sectionId: [
+        { required: true, message: '请选择版块', trigger: 'change' }
+      ],
+      title: [
+        { required: true, message: '请输入标题', trigger: 'blur' },
+        { min: 5, max: 100, message: '标题长度在 5 到 100 个字符', trigger: 'blur' }
+      ],
+      content: [
+        { required: true, message: '请输入内容', trigger: 'blur' },
+        { min: 10, max: 5000, message: '内容长度在 10 到 5000 个字符', trigger: 'blur' }
+      ]
+    }
+    
+    const forumSections = ref([
+      {
+        id: 1,
+        name: '电影讨论',
+        description: '分享和讨论电影资源，交流观影心得',
+        icon: 'Film',
+        color: '#409eff',
+        topics: 3256,
+        replies: 18934,
+        latestTopic: {
+          title: '2024年最佳科幻电影推荐',
+          author: 'MovieFan',
+          time: '2025-06-03T14:30:00'
+        }
+      },
+      {
+        id: 2,
+        name: '音乐分享',
+        description: '音乐资源分享，音乐制作技术交流',
+        icon: 'Headphones',
+        color: '#67c23a',
+        topics: 1892,
+        replies: 9567,
+        latestTopic: {
+          title: '无损音乐格式对比分析',
+          author: 'AudioExpert',
+          time: '2025-06-03T13:45:00'
+        }
+      },
+      {
+        id: 3,
+        name: '软件技术',
+        description: '软件资源分享，技术问题讨论',
+        icon: 'Monitor',
+        color: '#e6a23c',
+        topics: 2134,
+        replies: 12456,
+        latestTopic: {
+          title: 'Adobe 2025 新功能体验分享',
+          author: 'TechGuru',
+          time: '2025-06-03T12:20:00'
+        }
+      },
+      {
+        id: 4,
+        name: '游戏天地',
+        description: '游戏资源分享，游戏攻略讨论',
+        icon: 'GamePad',
+        color: '#f56c6c',
+        topics: 1567,
+        replies: 8234,
+        latestTopic: {
+          title: '年度游戏大作盘点',
+          author: 'GameMaster',
+          time: '2025-06-03T11:50:00'
+        }
+      },
+      {
+        id: 5,
+        name: '站务公告',
+        description: '网站公告，规则说明，意见建议',
+        icon: 'Bell',
+        color: '#909399',
+        topics: 234,
+        replies: 1567,
+        latestTopic: {
+          title: '网站维护通知',
+          author: 'Admin',
+          time: '2025-06-03T10:00:00'
+        }
+      },
+      {
+        id: 6,
+        name: '新手求助',
+        description: '新手问题解答，使用教程分享',
+        icon: 'QuestionFilled',
+        color: '#606266',
+        topics: 456,
+        replies: 2890,
+        latestTopic: {
+          title: '新手如何提高分享率？',
+          author: 'Newbie123',
+          time: '2025-06-03T09:30:00'
+        }
+      }
+    ])
+    
+    const hotTopics = ref([
+      {
+        id: 1,
+        title: '2024年度最佳PT站点推荐与对比分析',
+        author: 'PTExpert',
+        views: 2856,
+        replies: 147,
+        lastReply: '2025-06-03T14:25:00',
+        tags: ['PT站点', '推荐', '对比'],
+        pinned: true,
+        hot: true
+      },
+      {
+        id: 2,
+        title: '如何安全高效地使用BT下载工具',
+        author: 'SafeDownloader',
+        views: 1932,
+        replies: 89,
+        lastReply: '2025-06-03T13:50:00',
+        tags: ['BT工具', '安全', '教程'],
+        hot: true
+      },
+      {
+        id: 3,
+        title: '分享率提升技巧与经验总结',
+        author: 'SeedMaster',
+        views: 1654,
+        replies: 76,
+        lastReply: '2025-06-03T12:40:00',
+        tags: ['分享率', '技巧', '经验']
+      }
+    ])
+    
+    const recentReplies = ref([
+      {
+        id: 1,
+        author: 'MovieLover88',
+        topicId: 1,
+        topicTitle: '阿凡达2观影感受分享',
+        content: '画面效果确实震撼，特别是水下的场景...',
+        time: '2025-06-03T14:45:00'
+      },
+      {
+        id: 2,
+        author: 'TechEnthusiast',
+        topicId: 2,
+        topicTitle: '最新版Photoshop使用技巧',
+        content: '新的AI功能确实很强大，大大提高了工作效率...',
+        time: '2025-06-03T14:30:00'
+      },
+      {
+        id: 3,
+        author: 'GameFan2024',
+        topicId: 3,
+        topicTitle: '赛博朋克2077最新更新体验',
+        content: '修复了很多bug，现在游戏体验好多了...',
+        time: '2025-06-03T14:15:00'
+      }
+    ])
+    
+    onMounted(() => {
+      // 初始化论坛数据
+    })
+    
+    const formatTime = (timeString) => {
+      const date = new Date(timeString)
+      const now = new Date()
+      const diff = now - date
+      const hours = Math.floor(diff / (1000 * 60 * 60))
+      
+      if (hours < 1) return '刚刚'
+      if (hours < 24) return `${hours}小时前`
+      const days = Math.floor(hours / 24)
+      return `${days}天前`
+    }
+    
+    const navigateToSection = (sectionId) => {
+      router.push(`/forum/section/${sectionId}`)
+    }
+    
+    const navigateToTopic = (topicId) => {
+      router.push(`/forum/topic/${topicId}`)
+    }
+    
+    const showTagInput = () => {
+      tagInputVisible.value = true
+      nextTick(() => {
+        tagInputRef.value?.focus()
+      })
+    }
+    
+    const addTopicTag = () => {
+      const tag = tagInputValue.value.trim()
+      if (tag && !newTopic.tags.includes(tag)) {
+        newTopic.tags.push(tag)
+      }
+      tagInputVisible.value = false
+      tagInputValue.value = ''
+    }
+    
+    const removeTopicTag = (tag) => {
+      const index = newTopic.tags.indexOf(tag)
+      if (index > -1) {
+        newTopic.tags.splice(index, 1)
+      }
+    }
+    
+    const handleCloseDialog = () => {
+      if (newTopic.title || newTopic.content) {
+        ElMessageBox.confirm(
+          '确定要关闭吗？未保存的内容将会丢失。',
+          '提示',
+          {
+            confirmButtonText: '确定',
+            cancelButtonText: '取消',
+            type: 'warning'
+          }
+        ).then(() => {
+          resetForm()
+          showNewTopicDialog.value = false
+        }).catch(() => {
+          // 用户取消
+        })
+      } else {
+        resetForm()
+        showNewTopicDialog.value = false
+      }
+    }
+    
+    const submitNewTopic = async () => {
+      try {
+        await topicFormRef.value?.validate()
+        
+        submitting.value = true
+        
+        // 模拟提交过程
+        await new Promise(resolve => setTimeout(resolve, 1500))
+        
+        ElMessage.success('主题发布成功！')
+        resetForm()
+        showNewTopicDialog.value = false
+        
+        // 跳转到新创建的主题页面
+        router.push('/forum/topic/new')
+        
+      } catch (error) {
+        console.error('表单验证失败:', error)
+      } finally {
+        submitting.value = false
+      }
+    }
+    
+    const resetForm = () => {
+      topicFormRef.value?.resetFields()
+      newTopic.sectionId = ''
+      newTopic.title = ''
+      newTopic.content = ''
+      newTopic.tags = []
+    }
+    
+    return {
+      showNewTopicDialog,
+      submitting,
+      tagInputVisible,
+      tagInputValue,
+      topicFormRef,
+      tagInputRef,
+      forumStats,
+      forumSections,
+      hotTopics,
+      recentReplies,
+      newTopic,
+      topicRules,
+      formatTime,
+      navigateToSection,
+      navigateToTopic,
+      showTagInput,
+      addTopicTag,
+      removeTopicTag,
+      handleCloseDialog,
+      submitNewTopic,
+      Edit,
+      ChatDotRound,
+      Comment,
+      User,
+      View,
+      ArrowRight,
+      Film,
+      Headphones,
+      Monitor,
+      GamePad,
+      Bell,
+      QuestionFilled
+    }
+  }
+}
+</script>
+
+<style lang="scss" scoped>
+.forum-page {
+  max-width: 1200px;
+  margin: 0 auto;
+  padding: 24px;
+  background: #f5f5f5;
+  min-height: 100vh;
+}
+
+.forum-header {
+  background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
+  border-radius: 12px;
+  padding: 48px 32px;
+  margin-bottom: 24px;
+  color: white;
+  text-align: center;
+  
+  h1 {
+    font-size: 36px;
+    font-weight: 600;
+    margin: 0 0 12px 0;
+  }
+  
+  .header-description {
+    font-size: 18px;
+    margin: 0 0 24px 0;
+    opacity: 0.9;
+  }
+}
+
+.forum-stats {
+  background: #fff;
+  border-radius: 12px;
+  padding: 24px;
+  margin-bottom: 24px;
+  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
+  
+  .stats-grid {
+    display: grid;
+    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
+    gap: 24px;
+    
+    .stat-item {
+      display: flex;
+      align-items: center;
+      gap: 16px;
+      
+      .stat-info {
+        h3 {
+          font-size: 24px;
+          font-weight: 600;
+          color: #2c3e50;
+          margin: 0 0 4px 0;
+        }
+        
+        p {
+          font-size: 14px;
+          color: #7f8c8d;
+          margin: 0;
+        }
+      }
+    }
+  }
+}
+
+.forum-sections {
+  background: #fff;
+  border-radius: 12px;
+  padding: 24px;
+  margin-bottom: 24px;
+  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
+  
+  .section-title {
+    font-size: 20px;
+    font-weight: 600;
+    color: #2c3e50;
+    margin: 0 0 20px 0;
+  }
+  
+  .sections-list {
+    .section-card {
+      display: flex;
+      align-items: center;
+      gap: 20px;
+      padding: 20px;
+      border: 1px solid #f0f0f0;
+      border-radius: 8px;
+      margin-bottom: 12px;
+      cursor: pointer;
+      transition: all 0.3s ease;
+      
+      &:hover {
+        background: #f8f9fa;
+        border-color: #409eff;
+        transform: translateX(4px);
+      }
+      
+      .section-info {
+        flex: 1;
+        
+        .section-name {
+          font-size: 18px;
+          font-weight: 600;
+          color: #2c3e50;
+          margin: 0 0 8px 0;
+        }
+        
+        .section-description {
+          font-size: 14px;
+          color: #7f8c8d;
+          margin: 0 0 12px 0;
+        }
+        
+        .section-stats {
+          display: flex;
+          gap: 16px;
+          
+          .stat {
+            font-size: 12px;
+            color: #909399;
+          }
+        }
+      }
+      
+      .section-latest {
+        width: 200px;
+        
+        .latest-topic {
+          .topic-title {
+            font-size: 14px;
+            color: #2c3e50;
+            margin: 0 0 8px 0;
+            overflow: hidden;
+            text-overflow: ellipsis;
+            display: -webkit-box;
+            -webkit-line-clamp: 2;
+            -webkit-box-orient: vertical;
+          }
+          
+          .topic-meta {
+            font-size: 12px;
+            color: #909399;
+            
+            .author {
+              margin-right: 8px;
+            }
+          }
+        }
+      }
+    }
+  }
+}
+
+.hot-topics {
+  background: #fff;
+  border-radius: 12px;
+  padding: 24px;
+  margin-bottom: 24px;
+  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
+  
+  .section-header {
+    display: flex;
+    justify-content: space-between;
+    align-items: center;
+    margin-bottom: 20px;
+    
+    .section-title {
+      font-size: 20px;
+      font-weight: 600;
+      color: #2c3e50;
+      margin: 0;
+    }
+  }
+  
+  .topics-list {
+    .topic-item {
+      display: flex;
+      justify-content: space-between;
+      align-items: center;
+      padding: 16px;
+      border: 1px solid #f0f0f0;
+      border-radius: 8px;
+      margin-bottom: 12px;
+      cursor: pointer;
+      transition: all 0.3s ease;
+      
+      &:hover {
+        background: #f8f9fa;
+        border-color: #409eff;
+      }
+      
+      .topic-content {
+        flex: 1;
+        
+        .topic-header {
+          display: flex;
+          align-items: center;
+          gap: 12px;
+          margin-bottom: 8px;
+          
+          .topic-title {
+            font-size: 16px;
+            font-weight: 500;
+            color: #2c3e50;
+            margin: 0;
+          }
+          
+          .topic-tags {
+            .el-tag {
+              margin-right: 4px;
+            }
+          }
+        }
+        
+        .topic-meta {
+          display: flex;
+          justify-content: space-between;
+          align-items: center;
+          
+          .author-info {
+            display: flex;
+            align-items: center;
+            gap: 8px;
+            
+            .author-name {
+              font-size: 14px;
+              color: #7f8c8d;
+            }
+          }
+          
+          .topic-stats {
+            display: flex;
+            align-items: center;
+            gap: 16px;
+            font-size: 12px;
+            color: #909399;
+            
+            .stat-item {
+              display: flex;
+              align-items: center;
+              gap: 4px;
+            }
+          }
+        }
+      }
+      
+      .topic-status {
+        .el-tag {
+          margin-left: 8px;
+        }
+      }
+    }
+  }
+}
+
+.recent-replies {
+  background: #fff;
+  border-radius: 12px;
+  padding: 24px;
+  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
+  
+  .section-title {
+    font-size: 20px;
+    font-weight: 600;
+    color: #2c3e50;
+    margin: 0 0 20px 0;
+  }
+  
+  .replies-list {
+    .reply-item {
+      display: flex;
+      flex-direction: column;
+      gap: 12px;
+      padding: 16px;
+      border: 1px solid #f0f0f0;
+      border-radius: 8px;
+      margin-bottom: 12px;
+      cursor: pointer;
+      transition: all 0.3s ease;
+      
+      &:hover {
+        background: #f8f9fa;
+        border-color: #409eff;
+      }
+      
+      .reply-content {
+        flex: 1;
+        
+        .reply-header {
+          font-size: 14px;
+          margin-bottom: 8px;
+          
+          .reply-author {
+            font-weight: 600;
+            color: #2c3e50;
+          }
+          
+          .reply-action {
+            color: #7f8c8d;
+            margin: 0 4px;
+          }
+          
+          .topic-title {
+            color: #409eff;
+            font-weight: 500;
+          }
+        }
+        
+        .reply-text {
+          font-size: 14px;
+          color: #5a6c7d;
+          margin-bottom: 8px;
+          overflow: hidden;
+          text-overflow: ellipsis;
+          display: -webkit-box;
+          -webkit-line-clamp: 2;
+          -webkit-box-orient: vertical;
+        }
+        
+        .reply-time {
+          font-size: 12px;
+          color: #909399;
+        }
+      }
+    }
+  }
+}
+</style>
+
+.tags-input {
+  display: flex;
+  flex-wrap: wrap;
+  gap: 8px;
+  align-items: center;
+  
+  .el-tag {
+    margin: 0;
+  }
+}
+
+@media (max-width: 768px) {
+  .forum-page {
+    padding: 16px;
+  }
+  
+  .forum-header {
+    padding: 32px 24px;
+    
+    h1 {
+      font-size: 28px;
+    }
+    
+    .header-description {
+      font-size: 16px;
+    }
+  }
+  
+  .stats-grid {
+    grid-template-columns: repeat(2, 1fr);
+  }
+  
+  .section-card {
+    flex-direction: column;
+    text-align: center;
+    
+    .section-latest {
+      width: 100%;
+      margin-top: 16px;
+    }
+  }
+  
+  .topic-item {
+    flex-direction: column;
+    align-items: flex-start;
+    
+    .topic-status {
+      margin-top: 12px;
+      align-self: flex-end;
+    }
+  }
+} 
\ No newline at end of file
