Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017eEAG8HD3mm8gsKXgk8uU8
44 lines
4.4 KiB
Markdown
44 lines
4.4 KiB
Markdown
# 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
|
||
```
|