Files
jiapuapp/docs/superpowers/specs/2026-07-14-g06-search-flow-consolidation-design.md
T
2026-07-14 17:36:43 +08:00

46 lines
4.1 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.
# G06 公开家谱搜索流程合并设计
## 背景与依据
- 用户已授权继续推进,并已将 G03 双步骤流程视为通过;G01、G03 与认证页的已验收可见效果不在本轮改动范围内。
- 真实运行基线已保存为 `docs/design/screens/runtime/2026-07-14/route-audit/G06-before-360x800.png``G07-before-360x800.png`
- 基线审视发现:G06 在尚未搜索时直接展示一条结果;G07 使用另一套通用列表壳。两页实际是同一条“查找—得到结果—申请加入”的连续旅程。
## 选择的方案
采用单一 G06 路由、页面内三态的方案:
1. 初始态:仅显示检索提示与输入控件,不预先泄露公开家谱结果。
2. 有结果态:输入并提交后显示匹配的 `GenealogyCard` 列表;点选任一条仅跳转既有 G08 申请页,并携带 `genealogyId`
3. 无结果态:输入无匹配条件时,在同一页面显示明确的无结果说明与重新检索引导。
不保留 G07 兼容路由、跳转或占位页面。G07 的“结果列表”语义由 G06 的有结果态唯一拥有。
曾考虑保留 G07 作为可深链结果页,以及让 G06 默认展示热门家谱。前者重复了同一任务并增加路由;后者会让“尚未搜索”和“已搜索”混淆,均不采用。
## 视觉与交互
- G06 继续使用现有 `PageHeader``page-paper.jpg``footer-mountain-bamboo.png``GenealogyCard` 的已登记资产,不改动已验收页面。
- G06 顶部的 `PageHeader` 必须高于纸纹底图。公开检索是单步任务,不使用大型检索面板;用户最后选定「朱砂题签 + 宽输入框 + 搜索按钮」方向:`g06-search-title-strip.png`1122×220)、`g06-search-input-wide.png`1120×248)和 `g06-search-button.png`(300×132)作为独立完整表面直接置于页面纸纹。题签中的实际谱印必须叠放项目 `brand-seal.png`,不得使用生成图中的通用印玺;Vue 仅叠放真实输入框、文本和点击层,不用 CSS 伪造边框、卡片、按钮或装饰面。
- 结果条目继续复用 `GenealogyCard` 已有的完整题签框和谱印框位图,以保留与 G01 一致的家谱信息密度;传入“可申请”作为条目角色。
- 初始、加载、无结果状态不是额外页面或卡片。它们在题签和控件下方以留白、现有云纹资产和清晰文案表达。
## 状态所有权与行为
- `g06-search-genealogies.vue` 是本流程唯一状态拥有者:`keyword`、公开家谱数据、`searchState` 和筛选结果都只在这里维护。
- `searchState` 的合法值是 `initial``results``empty``loading`。初始加载完成后保持 `initial`,只有用户提交搜索才进入 `results``empty`
- 搜索匹配范围维持现有数据契约:`name``surname``location`;空关键词视为查看全部公开家谱,仍属于 `results`
- 点选结果不再直接调用 `appApi.applyToJoin` 或弹确认框;改为导航到 `/pages/genealogy/g08-join-application?genealogyId=<id>`,把填写申请作为 G08 的独立任务。
## 契约与验证
- 静态契约先红灯后转绿:G06 路由存在,G07 路由与文件不存在;G06 包含四态、可见页头、无大型控件面板、朱砂题签/宽输入/按钮三张完整位图、G08 导航与位图表面约束;三张位图的尺寸和四角 alpha 均正确。
- 运行冒烟先红灯后转绿:默认进入 G06 能看到初始态且没有结果卡;搜索“汤”显示结果卡;搜索不存在关键词显示无结果态;点选结果进入 G08。最后选定样式已重跑该契约和冒烟;视觉证据当前只确认 `G06-selected-strip-final-initial-360x800.png`,结果/无结果同版截图与用户验收仍待补。
- 全量页面契约和 A03 路由计数从 56 更新为 55,文档中的当前路由数和 G03 验收状态同步更新。
## 范围外
- 不修改 G01、G03、A01、A02、A04、A05、A06 的可见效果。
- 不重做 G08 的申请表设计,不引入新 API 字段,不实现真实远端搜索协议。
- 不执行任何 Git 暂存、提交、推送、重置或 worktree 操作。