前端

Change-Id: If55994fd11ad8d1f70a52e9c3bd53eded5f37544
diff --git a/src/views/forum/ForumSectionView.vue b/src/views/forum/ForumSectionView.vue
index 98c9780..3d55929 100644
--- a/src/views/forum/ForumSectionView.vue
+++ b/src/views/forum/ForumSectionView.vue
@@ -1,5 +1,4 @@
 <template>

-  <Navbar />

   <div class="section-page">

     <Navbar />

     <div class="page-container">

@@ -38,90 +37,90 @@
         </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>

+<!--      &lt;!&ndash; 筛选和搜索 &ndash;&gt;-->

+<!--      <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.user?.username ? topic.user.username.charAt(0) : 'A' }}</el-avatar>

-                  <span class="author-name">{{ topic.user?.username || '匿名' }}</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 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.user?.username ? topic.user.username.charAt(0) : 'A' }}</el-avatar>-->

+<!--                  <span class="author-name">{{ topic.user?.username || '匿名' }}</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">

@@ -152,9 +151,10 @@
               <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.isPinned" type="warning" size="small">置顶</el-tag>

+                  <el-tag v-if="topic.views > 1000" 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>

+                  <el-tag v-if="topic.isLocked" type="info" size="small">已关闭</el-tag>

                 </div>

               </div>

               

@@ -162,28 +162,27 @@
                 <div class="author-info">

                   <el-avatar :size="24">{{ topic.user?.username ? topic.user.username.charAt(0) : 'A' }}</el-avatar>

                   <span class="author-name">{{ topic.user?.username || '匿名' }}</span>

-                  <span class="create-time">{{ formatTime(topic.createTime) }}</span>

+<!--                  <span class="create-time">{{ formatTime(topic.createdAt) }}</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 class="topic-stats">-->

+<!--                  <span class="stat-item">-->

+<!--                    <el-icon><View /></el-icon>-->

+<!--                    {{ topic.views || 0 }}-->

+<!--                  </span>-->

+<!--                  <span class="stat-item">-->

+<!--                    <el-icon><Comment /></el-icon>-->

+<!--                    {{ topic.replies || 0 }}-->

+<!--                  </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 v-if="topic.updatedAt" class="reply-info">

+                <div class="reply-author">最后回复</div>

+                <div class="reply-time">{{ formatTime(topic.updatedAt) }}</div>

               </div>

-              <div v-else class="no-reply">暂无回复</div>

             </div>

           </div>

           

@@ -305,9 +304,11 @@
   Monitor,

   GamePad,

   Bell,

-  QuestionFilled

+  QuestionFilled,

+  Plus

 } from '@element-plus/icons-vue'

 import { getTopicsByForum, createTopic } from '@/api/topic'

+import { getForumById } from '@/api/forum'

 import Navbar from "@/components/Navbar.vue";

 

 export default {

@@ -332,16 +333,7 @@
     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 sectionInfo = ref({})

     

     const newTopic = reactive({

       title: '',

@@ -383,35 +375,31 @@
     onMounted(() => {

       const sectionId = route.params.id

       fetchSectionData(sectionId)

-      fetchTopics()

     })

     

     const fetchSectionData = async (id) => {

       loading.value = true

       try {

-        // 模拟API调用

-        console.log('获取版块数据:', id)

+        console.log('🏁 fetchSectionData 开始,id:', id)

+        const res = await getForumById(id)

+        console.log('📥 getForumById 响应:', res)

         

-        // 根据版块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: 0  // 初始化为0,会在fetchTopics中更新为真实数量

+          ...res,

+          icon: getForumIcon(res.name),

+          color: getForumColor(res.name),

+          topics: 0

         }

         

-        totalTopics.value = 156

+        console.log('📋 sectionInfo 设置完成:', sectionInfo.value)

+        console.log('🚀 准备调用 fetchTopics')

         

+        // sectionInfo有数据后再请求主题列表

+        fetchTopics()

+        

+        console.log('✅ fetchTopics 调用完成')

       } catch (error) {

+        console.error('❌ fetchSectionData 错误:', error)

         ElMessage.error('获取版块数据失败')

       } finally {

         loading.value = false

@@ -419,7 +407,31 @@
     }

     

     const formatTime = (timeString) => {

+      // 处理Java LocalDateTime数组格式: [年, 月, 日, 时, 分, 秒, 纳秒]

+      if (Array.isArray(timeString) && timeString.length >= 6) {

+        const [year, month, day, hour, minute, second] = timeString

+        const date = new Date(year, month - 1, day, hour, minute, second) // 月份需要减1

+        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 date = new Date(timeString)

+      if (isNaN(date.getTime())) return '时间未知'

+      

       const now = new Date()

       const diff = now - date

       const hours = Math.floor(diff / (1000 * 60 * 60))

@@ -454,13 +466,29 @@
     const fetchTopics = async () => {

       loading.value = true

       try {

+        // 调试信息:确认方法被调用和参数值

+        console.log('🔍 fetchTopics 被调用,sectionInfo.value:', sectionInfo.value)

+        console.log('🔍 sectionInfo.value.id:', sectionInfo.value.id)

+        

+        if (!sectionInfo.value.id) {

+          console.error('❌ sectionInfo.value.id 为空,无法请求主题列表')

+          return

+        }

+        

         // 调用后端API获取主题列表

+        console.log('🚀 正在请求主题列表,forumId:', sectionInfo.value.id)

         const res = await getTopicsByForum(sectionInfo.value.id)

+        console.log('✅ 主题列表响应:', res)

+        

         topics.value = res.data || res // 兼容不同返回结构

         totalTopics.value = topics.value.length

         // 同时更新顶部显示的主题数量

         sectionInfo.value.topics = topics.value.length

+        

+        console.log('✅ topics.value:', topics.value)

+        console.log('✅ totalTopics.value:', totalTopics.value)

       } catch (error) {

+        console.error('❌ fetchTopics 错误:', error)

         ElMessage.error('获取主题列表失败')

       } finally {

         loading.value = false

@@ -567,6 +595,30 @@
       newTopic.options = []

     }

     

+    // icon和color映射函数,和首页保持一致

+    const getForumIcon = (name) => {

+      const iconMap = {

+        '电影讨论': 'Film',

+        '音乐分享': 'Headphones',

+        '软件技术': 'Monitor',

+        '游戏天地': 'GamePad',

+        '站务公告': 'Bell',

+        '新手求助': 'QuestionFilled'

+      }

+      return iconMap[name] || 'ChatLineRound'

+    }

+    const getForumColor = (name) => {

+      const colorMap = {

+        '电影讨论': '#409eff',

+        '音乐分享': '#67c23a',

+        '软件技术': '#e6a23c',

+        '游戏天地': '#f56c6c',

+        '站务公告': '#909399',

+        '新手求助': '#606266'

+      }

+      return colorMap[name] || '#409eff'

+    }

+    

     return {

       loading,

       showNewTopicDialog,

@@ -610,7 +662,8 @@
       Monitor,

       GamePad,

       Bell,

-      QuestionFilled

+      QuestionFilled,

+      Plus

     }

   }

 }

diff --git a/src/views/forum/ForumTopicView.vue b/src/views/forum/ForumTopicView.vue
index b3fe08b..170e313 100644
--- a/src/views/forum/ForumTopicView.vue
+++ b/src/views/forum/ForumTopicView.vue
@@ -1,5 +1,4 @@
 <template>

-  <Navbar />

   <div class="topic-detail-page">

     <Navbar />

     <div class="page-container">

diff --git a/src/views/forum/ForumView.vue b/src/views/forum/ForumView.vue
index cd7e7bf..2010ce7 100644
--- a/src/views/forum/ForumView.vue
+++ b/src/views/forum/ForumView.vue
@@ -1,18 +1,17 @@
 <template>

-  <Navbar />

   <div class="forum-page">

-    

+    <Navbar />

     <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 class="header-actions">-->

+<!--            <el-button type="primary" :icon="Edit" @click="showNewTopicDialog = true">-->

+<!--              发布新帖-->

+<!--            </el-button>-->

+<!--          </div>-->

         </div>

       </div>

 

@@ -26,13 +25,13 @@
               <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="#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">

@@ -40,13 +39,13 @@
               <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 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>

 

@@ -90,9 +89,9 @@
       <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>

+<!--          <el-button type="primary" text @click="$router.push('/forum/topics')">-->

+<!--            查看全部 <el-icon><ArrowRight /></el-icon>-->

+<!--          </el-button>-->

         </div>

         <div class="topics-list">

           <div

@@ -120,17 +119,17 @@
                   <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 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>-->

+<!--&lt;!&ndash;                  <span class="time">{{ formatTime(topic.lastReply) }}</span>&ndash;&gt;-->

+<!--                </div>-->

               </div>

             </div>

             <div class="topic-status">

@@ -141,31 +140,31 @@
         </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>

+<!--      &lt;!&ndash; 最新回复 &ndash;&gt;-->

+<!--      <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>

 

     <!-- 发布新帖对话框 -->

@@ -256,7 +255,7 @@
 import { ref, reactive, onMounted, nextTick } from 'vue'

 import { useRouter } from 'vue-router'

 import { ElMessage, ElMessageBox } from 'element-plus'

-import { 

+import {

   Edit,

   ChatDotRound,

   Comment,

diff --git a/src/views/forum/TopicView.vue b/src/views/forum/TopicView.vue
index 0374dac..f88d0de 100644
--- a/src/views/forum/TopicView.vue
+++ b/src/views/forum/TopicView.vue
@@ -1,5 +1,4 @@
 <template>
-  <Navbar />
   <div class="topic-page">
     <Navbar />
     <div class="page-container">
@@ -13,43 +12,43 @@
                 <el-avatar :size="24">{{ topic.user?.username ? topic.user.username.charAt(0) : 'A' }}</el-avatar>
                 <span class="author-name">{{ topic.user?.username || '匿名' }}</span>
               </span>
-              <span class="time">{{ formatTime(topic.createTime) }}</span>
+<!--              <span class="time">{{ formatTime(topic.createTime) }}</span>-->
               <span class="views">
                 <el-icon><View /></el-icon>
                 {{ topic.views }}
               </span>
-              <el-button
-                :icon="isSubscribed ? StarFilled : Star"
-                :type="isSubscribed ? 'warning' : 'default'"
-                @click="handleSubscribe"
-              >
-                {{ isSubscribed ? '已订阅' : '订阅' }}
-              </el-button>
+<!--              <el-button-->
+<!--                :icon="isSubscribed ? StarFilled : Star"-->
+<!--                :type="isSubscribed ? 'warning' : 'default'"-->
+<!--                @click="handleSubscribe"-->
+<!--              >-->
+<!--                {{ isSubscribed ? '已订阅' : '订阅' }}-->
+<!--              </el-button>-->
             </div>
           </div>
-          <div class="topic-actions" v-if="isAuthor">
-            <el-button type="primary" @click="showEditDialog = true">编辑</el-button>
-            <el-button type="danger" @click="handleDelete">删除</el-button>
-          </div>
+<!--          <div class="topic-actions" v-if="isAuthor">-->
+<!--            <el-button type="primary" @click="showEditDialog = true">编辑</el-button>-->
+<!--            <el-button type="danger" @click="handleDelete">删除</el-button>-->
+<!--          </div>-->
         </div>
       </div>
 
-      <!-- 话题内容 -->
-      <div class="topic-content">
-        <div class="content-card">
-          <div class="content-body" v-html="topic.content"></div>
-          <div class="content-tags">
-            <el-tag
-              v-for="tag in topic.tags"
-              :key="tag.id"
-              :color="tag.color"
-              effect="light"
-            >
-              {{ tag.name }}
-            </el-tag>
-          </div>
-        </div>
-      </div>
+<!--      &lt;!&ndash; 话题内容 &ndash;&gt;-->
+<!--      <div class="topic-content">-->
+<!--        <div class="content-card">-->
+<!--          <div class="content-body" v-html="topic.content"></div>-->
+<!--          <div class="content-tags">-->
+<!--            <el-tag-->
+<!--              v-for="tag in topic.tags"-->
+<!--              :key="tag.id"-->
+<!--              :color="tag.color"-->
+<!--              effect="light"-->
+<!--            >-->
+<!--              {{ tag.name }}-->
+<!--            </el-tag>-->
+<!--          </div>-->
+<!--        </div>-->
+<!--      </div>-->