82 lines
5.2 KiB
Markdown
82 lines
5.2 KiB
Markdown
# G08–G10 入谱申请链路设计记录
|
||
|
||
> 日期:2026-07-14
|
||
> 状态:页面候选、本地模拟交互与本轮 Product Design 截图审计已完成;标记为 `[~]`,等待后续逐页视觉审核。
|
||
|
||
## 1. Product Design 工作流
|
||
|
||
- `Product Design:index`:将工作路由为现有产品的上下文确认、截图审计和实现后设计检查。
|
||
- `Product Design:audit`:本轮重新捕获 G08–G10 的表单、成功、列表、空态和 412 宽屏,不使用旧通用壳图冒充最终证据。
|
||
- ImageGen:生成 `application-record-card.png`,并在截图审计发现假按钮后精确编辑出 `application-status-card.png`。
|
||
- TDD:`tests/g08-g10-application-flow-contract.ps1` 与运行冒烟先因通用壳和缺少同页状态红灯,再由最小实现转绿。
|
||
|
||
## 2. 思维导图与外部参考
|
||
|
||
已查看 `C:\Users\Rain\Desktop\软件\JOB\app设计\思维导图.png` 与 `加入家谱.png`。外部参考的“加入家谱”依赖邀请码,但当前 OpenAPI 没有邀请码端点,因此不采用该流程。
|
||
|
||
当前申请链路唯一结构是:G06 公开家谱检索 → G08 填写真实身份与关系 → G09 查看自己的全部申请 → G10 管理员审核。三个阶段是不同用户任务,保留三条路由;各自的加载、空、失败、提交成功和审核结果只作为原路由状态,不再拆页。
|
||
|
||
## 3. 页面与状态
|
||
|
||
| 页面 | 独立任务 | 同页状态 |
|
||
| --- | --- | --- |
|
||
| G08 | 对某一 `genealogyId` 提交加入申请 | `form`、提交中、`success`、`error` |
|
||
| G09 | 当前用户查看全部申请 | `loading`、`list`、`empty`、`error`;`PENDING/APPROVED/REJECTED` 为卡内状态 |
|
||
| G10 | 当前家谱管理员审核待处理申请 | `loading`、`list`、`empty`、`error`;审核确认与结果留在卡内 |
|
||
|
||
G07/G08/G09 的旧 `ModulePage` 目录条目已经删除;G07 结果态继续只归 G06。
|
||
|
||
## 4. OpenAPI 功能参考
|
||
|
||
| 页面动作 | OpenAPI |
|
||
| --- | --- |
|
||
| G08 提交 | `POST /genealogy/app/genealogies/{genealogyId}/join-applies` |
|
||
| G09 我的申请 | `GET /genealogy/app/genealogies/join-applies/mine` |
|
||
| G09 撤销边界 | `DELETE /genealogy/app/genealogies/join-applies/{applyId}`;本轮页面不展示未接入的撤销按钮 |
|
||
| G10 待审核列表 | `GET /genealogy/app/genealogies/{genealogyId}/join-applies/pending` |
|
||
| G10 审核 | `PUT /genealogy/app/genealogies/{genealogyId}/join-applies/{applyId}/audit` |
|
||
|
||
OpenAPI 的申请体仍是 `JsonObject`,页面只使用已有业务能解释的 `realName`、`relation`、`message`,没有臆造邀请码、推荐人层级或多管理员审批字段。本阶段只据此安排字段、状态和动作位置;三页均使用页面内模拟数据与交互,不调用 `appApi`,不进行接口对接。
|
||
|
||
## 5. 视觉资产
|
||
|
||
- G08 复用 `g03-create-flow-panel.png` 的完整宣纸表单面,以及 `g06-search-input-wide.png` 的完整输入框皮肤;没有复制近似资产。
|
||
- `application-record-card.png`:1050×360、24 位 RGB、不透明;右下留双审核槽,只供 G10 列表。
|
||
- `application-status-card.png`:1050×360、24 位 RGB、不透明;移除双审核槽,供 G09 列表和 G09/G10 空/失败状态。
|
||
- 主次操作分别使用 `a01-primary-button.png` 与 `a01-secondary-button.png`,CSS 只负责位置、文字和点击层。
|
||
|
||
## 6. 截图证据
|
||
|
||
- G08:`screens/runtime/2026-07-14/g-module-audit/applications/01-g08-form-360x800.png`、`02-g08-success-360x800.png`、`03-g08-form-412x915.png`。
|
||
- G09:`04-g09-list-360x800.png`、`05-g09-empty-360x800.png`。
|
||
- G10:`06-g10-list-360x800.png`、`07-g10-empty-360x800.png`、`08-g10-list-412x915.png`。
|
||
- 同画布对照:`09-g08-form-success-comparison.png`、`10-g09-list-empty-comparison.png`、`11-g10-list-empty-comparison.png`。
|
||
|
||
## 7. Product Design 审计结果
|
||
|
||
### 强项
|
||
|
||
1. G08 表单在 360/412 下均完整显示,姓名、关系、说明和提交按钮顺序清楚;提交后仍在 G08 显示成功结果。
|
||
2. G09 的申请状态以审核中、已通过、未通过映射接口枚举;通过项才可进入家谱。
|
||
3. G10 的拒绝/通过使用主次完整位图按钮,动作前有确认弹窗,避免误审。
|
||
4. 三页的空态均留在原路由,没有新增状态页。
|
||
|
||
### 已修复问题
|
||
|
||
- P2:第一张共享卡为审核按钮预留了两个槽,放到 G09 和空态时形成假按钮。已生成无按钮槽的状态卡并重新截图,问题消失。
|
||
- P2:运行冒烟最初在面板出现后立即查找原生输入,可能早于 `uni-input` 内部节点渲染。测试改为等待真实输入节点,再填写和点击;真实提交已到达同页成功态。
|
||
|
||
### 可访问性边界
|
||
|
||
- 截图可确认主按钮、审核按钮、表单顺序和文字未裁切。
|
||
- G10 审核按钮在 360 下仍有完整卡内点击区域,但最终 Android 真机仍需验证触摸目标、字体放大和读屏标签。
|
||
- 截图不能证明弹窗焦点管理或读屏状态播报,不宣称完整无障碍合规。
|
||
|
||
## 8. 验证
|
||
|
||
- `G08-G10-APPLICATION-FLOW-CONTRACT PASS`
|
||
- `G08-G10-APPLICATION-FLOW-RUNTIME-SMOKE PASS`,包含真实控件填写与本地模拟提交
|
||
- `PASS compile audit`
|
||
|
||
三页仅标记为候选完成,用户集中看样式前不标记为视觉冻结。
|