# 小说消息操作按钮恢复实施计划 > **For agentic workers:** REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (`- [ ]`) syntax for tracking. **Goal:** 恢复小程序小说生成页和详情页丢失的"复制、播放、折叠/展开"功能,每条 novel 消息下方添加 3 个操作按钮。 **Architecture:** 在 ScriptView.vue 和 ScriptDetailView.vue 中为 `kind === 'novel'` 的消息添加按钮组 UI(折叠/展开、复制、播放)。ScriptView 复用已有函数,ScriptDetailView 新增相同逻辑。按钮组样式统一,参考 MessageCard 的 result-actions 样式。 **Tech Stack:** Vue 3 Composition API / UniApp / Pinia / uni.setClipboardData / useTtsPlayer composable / H5 端到端验收 ## Global Constraints - 所有注释必须使用中文 - 样式单位必须使用 rpx(小程序移动端) - 禁止任何形式的 mock、兜底、默认值掩盖错误 - 每个按钮必须有真实实现,不能有任何占位或 mock 功能 - 修改后必须通过 H5 端到端验收(Console 0 新增错误) - 部署使用 `python deploy.py backend`(后端)或热加载(前端) - 埋点必须完整触发:`script_message_collapse_toggle`、`script_message_copy_click`、`script_message_tts_click` --- ## Task 1: ScriptView 恢复按钮组 UI **Files:** - Modify: `mini-program/src/pages/main/ScriptView.vue:180-187`(novel 消息渲染部分) - Modify: `mini-program/src/pages/main/ScriptView.vue:3500+`(样式部分) **Interfaces:** - Consumes: 已有函数 `getMessageDisplayContent(msg)`、`toggleMessageCollapse(msg)`、`copyMessageContent(msg)`、`playMessageTts(msg)`、`isMessageCollapsed(msg)` - Produces: novel 消息下方显示 3 个按钮(折叠/展开、复制、播放),功能正常 ### 背景 ScriptView.vue 中所有相关函数已存在(行 399-447),但模板中按钮组 UI 在 commit 2c778fa 中被删除。本任务恢复按钮组 UI。 ### 步骤 - [ ] **Step 1: 定位 novel 消息渲染部分** 打开 `mini-program/src/pages/main/ScriptView.vue`,找到 `kind === 'novel'` 的消息渲染部分(约行 180-187): ```vue ``` - [ ] **Step 2: 修改 Markdown 渲染,使用折叠内容** 将 `` 改为: ```vue ``` 这样折叠时只显示前 200 字符。 - [ ] **Step 3: 添加折叠/展开按钮** 在 `` 下方添加折叠/展开按钮: ```vue {{ isMessageCollapsed(msg) ? '展开全文' : '收起全文' }} ``` - [ ] **Step 4: 添加操作按钮组** 在折叠/展开按钮下方添加操作按钮组(复制、播放): ```vue ``` 注意:只有 2 个按钮(复制、播放),折叠/展开按钮已在上方独立显示。 - [ ] **Step 5: 添加按钮组样式** 在 `