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

4.4 KiB
Raw Blame History

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 号。

开工前置命令

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