Files
Jyotisha/docs/tasks/TASK-report-reader-actions-20260924.md
T

44 lines
4.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# TASK · 报告操作收敛:列表只留「查看报告」、阅读页只留导出、Web 端导出改居中对话框(2026-09-24)
## 基线
- `origin/staging = 9c9b66d6`(含已部署 `1420471a` 的分块导出)。分支 `codex/report-reader-actions-20260924`。
- 串行:与 `TASK-report-chapter-export-fix-20260924.md`(BUG-1020,改 `report-chart-block.ts` / 导出块)文件不交叉,可并行;与 `TASK-report-reader-main-20260924.md` 不交叉(那单改引擎与投影)。改 `globals.css` 报告段,后合者 rebase。
## 事故实证(产品 09-24 真机)
1. 列表页已完成行:「查看报告」+「分块导出」(`personal-report-center.tsx`,后者链到 `/reports/:id#export`)。产品:进报告后本来就要勾选,列表上的「分块导出」多余。
2. 阅读页操作条 `report-actions.tsx` `ReportActions`:`RawAppendixDownload`(「下载原始附录」)、打印(`printPersonalReport`)、「分块导出」三个入口。产品:去掉前两个,「分块导出」改成导出图标按钮。
3. 导出抽屉 `report-export-drawer.tsx` 在桌面也是贴底弹出(CSS `.report-export-drawer` `inset: auto 0 0 …`)。产品:Web 端贴底弹窗"反人类"。
## 决策记录(产品 2026-09-24)
- **D1** 列表页已完成行只保留「查看报告」;删除「分块导出」链接。`#export` 深链的自动打开逻辑随之删除(无入口即死代码)。**修订** `TASK-report-chapter-export-20260924.md` D10。
- **D2** 阅读页删除「下载原始附录」与「打印」:删 `raw-appendix-download.tsx`、`ReportActions` 里的打印按钮与 `printPersonalReport` 调用、打印能力探测;`/api/reports/[reportId]/raw-appendix` 路由与 `releaseRawReportAppendix` **若全仓再无调用者一并删除**(含其测试,三栏说明)。报告页 `<style media="print">` 与核对表 `beforeprint` 展开逻辑:无打印入口后保留浏览器 Ctrl+P 的排版不变(不删 print CSS,只删按钮)。
- **D3** 「分块导出」按钮改为图标按钮:lucide `Download` 图标 + `aria-label="导出报告"` + tooltip「导出」,44×44 触控区;操作条只剩「返回报告中心」和它。
- **D4** 导出对话框:**≥ 860px(报告域既有断点)为居中模态**:宽 `min(720px, 92vw)`、最高 `80vh`、圆角 `--radius-lg`、四边留白,遮罩同现;**< 860px 保持底部抽屉**。仍为同一个原生 `<dialog>` 组件,只换 CSS,不引第三方。修订原单 D9。
- **D5** 其余不变:套餐、全选、字数、D5 逐字节锁、`ordinaryOutputLeaks` 检查、文件名规则。
## 硬红线
1. 不改导出块生成逻辑(`report-export-blocks.ts`)与下载器。
2. 断点只用 860;44px 触控;无 spinner / 骨架。
3. 删除要干净:`grep -rn "RawAppendixDownload\|printPersonalReport\|#export" frontend/src` 除注释外 0 命中(若 `printPersonalReport` 仍被其它页面使用则保留函数,只删本页调用)。
4. `/reports*` 渲染标记与基线一致;既有断言三栏;测试总数不低于基线。
## 任务分解
- T1 列表页删链接 + 删 `#export` 消费逻辑(`personal-report-center.tsx`、`report-actions.tsx`)。验收:`personal-report-entry.test.ts` ready 行只有一个动作;三栏更新。
- T2 操作条删原始附录与打印、导出改图标(`report-actions.tsx`、`raw-appendix-download.tsx`、raw-appendix 路由及测试)。验收:`personal-report-view.test.ts` / `personal-report-export.test.ts` / `personal-report-raw-appendix.test.ts` 相关断言三栏更新或随文件删除;图标按钮有 aria-label。
- T3 对话框响应式(`globals.css` 报告段)。验收:CSS 合同测试断言 `@media (min-width: 860px)` 下为居中(`inset: 0; margin: auto` 或等价)且 `max-height: 80vh`,窄屏仍贴底。
- T4 记录:DESIGN(报告中心动作、阅读页操作条、导出对话框形态)、VOICE(删除两条入口文案)、CHANGELOG、PROGRESS、`docs/testing/report-reader-actions-20260924.md`(桌面居中、手机贴底、Esc/遮罩关闭、列表无导出、操作条只剩返回和导出图标)。本单是产品变更,不新开 BUG 号。
## 开工前置命令
```bash
git fetch origin --prune
git worktree add -b codex/report-reader-actions-20260924 .worktrees/report-reader-actions-20260924 origin/staging
cd .worktrees/report-reader-actions-20260924/frontend
./node_modules/.bin/tsc --noEmit && npm run lint && npm test 2>&1 | tail -5
```