Review changes batch 2 of 6

This commit is contained in:
2026-07-20 06:52:23 +08:00
parent 0857e5dd13
commit c848653758
8 changed files with 89 additions and 2 deletions
@@ -0,0 +1,73 @@
# G01 Loading State Implementation Plan
> **For agentic workers:** REQUIRED SUB-SKILL: Use superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (`- [ ]`) syntax for tracking.
**Goal:** 将 G01 的空心金圈加载态替换为项目统一的 `AppLoading` 朱砂“谱”印加载视觉。
**Architecture:** `AppLoading.vue` 继续作为加载视觉的唯一维护入口;G01 只导入组件、传入“正在整理家谱”文案并保留现有辅助说明。旧 `loading-seal` 模板和样式在同一轮移除。
**Tech Stack:** uni-app、Vue 3、SCSS、PowerShell 契约测试、Chrome H5。
## Global Constraints
- 只修改 G01 加载分支及其契约,不改变正常、空、失败状态。
- 不生成新资产,不修改 `AppLoading.vue` 的全局样式。
- 不使用多代理、worktree 或 Git 写操作。
- H5 证据不代表 Android/HBuilderX 或 G01 整页正式验收。
---
### Task 1: G01 统一加载态
**Files:**
- Create: `tests/g01-loading-state-contract.ps1`
- Modify: `pages/genealogy/g01-my-genealogies.vue`
**Interfaces:**
- Consumes: `AppLoading.vue``text: String` 属性。
- Produces: G01 `state=loading` 下的 `.state-panel--loading .app-loading` 运行结构。
- [ ] **Step 1: 写入失败契约**
契约必须断言 G01 导入并渲染 `<AppLoading text="正在整理家谱" />`,保留辅助说明,同时不存在 `loading-seal`
- [ ] **Step 2: 验证契约失败**
Run: `powershell -NoProfile -ExecutionPolicy Bypass -File tests/g01-loading-state-contract.ps1`
Expected: FAIL,指出 G01 尚未使用 `AppLoading`
- [ ] **Step 3: 实施最小修改**
```vue
<view v-if="isLoading" class="state-panel state-panel--loading">
<AppLoading text="正在整理家谱" />
<text class="state-copy state-copy--loading">请稍候家族记忆正在归卷</text>
</view>
```
并加入:
```js
import AppLoading from "@/components/AppLoading.vue";
```
删除 `.loading-seal` 样式;仅为加载辅助说明设置不重复全局 Loading 的间距。
- [ ] **Step 4: 验证**
Run:
```powershell
powershell -NoProfile -ExecutionPolicy Bypass -File tests/g01-loading-state-contract.ps1
powershell -NoProfile -ExecutionPolicy Bypass -File tests/g01-empty-state-contract.ps1
powershell -NoProfile -ExecutionPolicy Bypass -File tests/g01-visual-contract.ps1
powershell -NoProfile -ExecutionPolicy Bypass -File tests/compile-audit.ps1
node tests/g01-empty-state-runtime-smoke.js http://localhost:5173
```
Expected: 全部 PASS。
- [ ] **Step 5: 视觉复核**
在 412×900 与 320×568 捕获 `state=loading`,确认朱砂谱印清晰、内容居中、长背景连续、底栏不遮挡且没有横向溢出。
+16 -2
View File
@@ -1,12 +1,26 @@
# 家谱 APP 换机交接记录 # 家谱 APP 换机交接记录
> 最后更新:2026-07-16 > 最后更新:2026-07-20
> 用途:更换电脑、重新打开 Codex/GPT 后的唯一接管入口。 > 用途:更换电脑、重新打开 Codex/GPT 后的唯一接管入口。
> 当前阶段:只做页面样式与视觉流程验收;不对接接口,不做功能验收。 > 当前阶段:只做页面样式与视觉流程验收;不对接接口,不做功能验收。
> 当前施工停点:52 个活动页面均已有基础内部 H5 样式候选;A06 另行封存并保留实现。用户下一审核页仍是 G01,当前没有未施工页面,后续按用户逐页审核意见返工 > 当前施工停点:六个模块基准 G01、T07、F01、R01、N01、M01 已由用户明确通过;T01 已完成纵向世系轴候选,留待 2026-07-21 首项人工审核;其余页面已按所属基准完成夜间批量收敛,继续保持 `[~]` 等待人工/Android 验收。最新事实与换机提示见 `docs/夜间批量收敛交接_2026-07-20.md`
## 0. 2026-07-20 最新接管覆盖说明
本节覆盖下方仍保留的 2026-07-19 历史停点;不要再从 G01 正常态重新开始。
- 活动路由仍为 52 条,A02 已合并,A06 仍封存保留。
- 用户已明确通过 6 个模块基准:G01、T07、F01、R01、N01、M01。`docs/验收规划.md` 应统计为 6 个 `[x]`、46 个 `[~]`
- T01 按用户最终选择的方案 1 完成纵向世系轴候选,明早首先审核 T01;用户未明确通过前不得标 `[x]`
- F/R/N/M 的 28 个普通任务页已统一到模块母版并删除重复编号介绍块;F02、T03—T06、T08、G03、G08—G12 已收敛旧跨模块不透明面板引用。
- 5173 服务运行,52 个页面和 2 个共享组件的 Vite 转换为 54/54;当夜 Chrome 未开放 9222,因禁止新开第二个浏览器/标签页,没有生成虚假的 CDP、截图或四档响应式通过结论。
- 旧资产命名审计与历史截图数量上限仍是已知失败项;用户明确要求保留全部现有资产、截图、母版和候选,不得通过删除文件或放宽阈值处理。
- 新会话先完整阅读 `docs/夜间批量收敛交接_2026-07-20.md`,再复核当前工作区和浏览器状态。
## 1. 接管后先复述的准确停点 ## 1. 接管后先复述的准确停点
- 2026-07-19 新会话审批停点已单独记录在 `docs/新会话审批交接_2026-07-19.md`:G01 正常列表态已经打开但尚未通过;后续必须复用同一个 Chrome 标签页,逐个展示正常、空、加载、失败、添加家谱弹层、切换家谱弹层、独立滚动和响应式状态,每次等待用户结论后再切换。
- `pages.json` 当前实际注册 **52 条活动路由**A06 已从路由表移除但源码保留。 - `pages.json` 当前实际注册 **52 条活动路由**A06 已从路由表移除但源码保留。
- A02 已删除并合入 A01;不存在需要保留的 A02 兼容入口。 - A02 已删除并合入 A01;不存在需要保留的 A02 兼容入口。
- `docs/验收规划.md` 当前活动页统计为:**52 个待审核、0 个已验收、0 个返工标记、0 个冻结**;A06 属于封存页,不计入这些数量。 - `docs/验收规划.md` 当前活动页统计为:**52 个待审核、0 个已验收、0 个返工标记、0 个冻结**;A06 属于封存页,不计入这些数量。
Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 165 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 249 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 249 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 MiB