docs(P5): 悬浮玻璃导航落地记录 + 视觉验收的**实测**阻塞(不是"还没做")

- §5.4 的 P5 行由「 未做」改为「 主体完成」,并写明**未验项与原因**。
- 新增 §7.21:改了什么(NavItems.ts 放尺寸常量让判据判**数值**;内容按 index 挂载;
  内容底部让位 76vp —— 不让位则最后一行压在条底下,看得见点不到)、判据 6 条、
  4 种变异、以及**判据自己修的两处**(非贪婪正则撞对象字面量的 `}`;色值检查读了含注释的原文)。
- §7.21 末节把"观感验不了"逐层测清楚:①模拟器要写工作区外的
  /root/.Huawei/…/Log/qemu.log,本会话 workspace-write 判 Permission denied;
  ②放宽权限需审批而**这条链上没有人类**,工具明确拒绝;③不需要权限的替代路
  (HOME 挪进工作区,复制实例 + 符号链接镜像,2.7GB)过了写入这关却卡在**许可协议**,
  重放 y 等于替用户同意法律协议 —— 不做,已停止模拟器并删除暂存副本。
  → 要解除需人二选一:放行工作区外写入,或由人在本机起模拟器后把画面交回。

验证:hvigorw assembleHap BUILD SUCCESSFUL;npm test 14 个判据文件里 13 绿
(唯一红的 narrow-layout 由并发写作者的未提交 MailView.tsx 改动引起 —— 用 git stash 验过:
剥掉那个改动即 52 通过,与 P5 无关,未动他人的文件)。
This commit is contained in:
2026-09-14 15:35:48 +08:00
parent 25ac19b343
commit ccd0a39e76

View File

@ -175,7 +175,7 @@ WebUI 侧 `npm test` 在 **HEAD 上就是红的**`test/background.test.mjs`
| P2b | 发件箱页`GET /me/mail/sent`复用列表项 | 判据接口路径行上主角是收件人空态有说明主句与 WebUI 逐字一致 |
| P3 主体完成 | 授权页`GET /permission/pending` + `POST /permission/decide` | 未决口径与 WebUI 一致 `permission_result`)✅;拒绝可填备注且备注送出 ✅;`expired` 当场说清"这次批准不会恢复原调用" ✅。**未验**真机上点同意/拒绝后状态是否"立刻变"判据只钉到"决策后重新拉列表"这一层 |
| P4 ✅(P4c 上传除外 | 主题/壁纸`/me/appearance` | 换账号外观跟随 ✅(缓存键带账号服务端无记录时以本地为准 ✅(§7.16**预设 6 档都能画出来** ✅、图片壁纸渲染 ✅(§7.17 —— 这一版补的第一版只有数据没有画面)。**未做**P4c 上传入口。**未验**真机观感配色/对比 |
| P5 未做 | 悬浮玻璃导航取代系统 TabBar | 模糊只由壁纸层负责列表项每项一张卡命中区 44vp现状底栏仍是系统 `Tabs`只有自绘的 tabBar builder 带了 `backgroundBlurStyle`(§7.10 |
| P5 主体完成 | 悬浮玻璃导航取代系统 TabBar | **已换**自绘浮动玻璃条 `NavBar`留白 + 胶囊圆角 + 系统材质内容按 `currentIndex` 挂载命中区 44vp数值在 `NavItems.ts`判据直接 import内容底部让出 76vp不让位则最后一行压在条底下看得见点不到)—— §7.21判据 6 条全绿4 种变异都能红。**未验**玻璃条在真机上的观感材质浓度/圆角/阴影)、深色主题下的表现字形图标渲染 —— **原因是环境硬约束**模拟器要写工作区外 + 审批无人可送 + 许可协议不接受代签 §7.21 末节的视觉验收的实测阻塞 |
| P6 未做 | 日历`/calendar/events` ics 导入导出 | 手势阈值与 WebUI 一致水平 40px、≥1.5× 垂直、<600ms)。**有意排序**入口与内容一起上不留空页签(§7.15 |
**视觉/交互怎么验**本机有 `harmony-emu`实例 `HarmonyPhone`hdc
@ -773,6 +773,47 @@ pi 指出"邻接不是结构"这条已经在同一个仓库露头**三次**
判据要点用户真正会点的那一层。另外补了一条本仓刚踩的:**验证要按真实入口跑**
`node --test test/run-all.mjs` 会把 runner 内部的 `process.exit(1)` 吞掉)。
### 7.21 P5 悬浮玻璃导航dsh2026-09-14换条不换信息架构
**改了什么**:底栏从系统 `Tabs` 的 bar 换成**自绘的悬浮玻璃条**。
- 新增 `model/NavItems.ts`:平级项清单(通信/联系人)+ 归一化 `normalizeNavIndex`
+ **尺寸常量**(命中区下限 44vp、条高 56、左右留白 16、离底 12、圆角 28、内容让位 76
`.ts` 是为了让判据能 `import` 这些**数值**(判"命中区 ≥44vp"时判的是数,不是拿正则去源码里猜)。
- `MainPage.ets`:内容改为 `if (this.currentIndex === 0) CommPage else ContactsTab`(不再 `TabContent`
`TabBarBuilder``NavBar``Row` + `ForEach` + 四周留白 + 胶囊圆角 + `backgroundBlurStyle(Theme.navMaterial)`)。
- **内容底部让出 76vp**:条浮在内容之上,不让位则列表最后一行永远压在条底下 ——
**看得见、点不到**。这是"点得到"的问题,不是美观问题。
**判据 6 条**(新增第 14 个判据文件 `test/harmony-nav.test.mjs`):点击**配对**(每项必须落到
自己的 index 并过归一化 —— 不写"存在 onClick",那东西全赋 0 也能过、index 决定挂载、
命中区 ≥44vp、悬浮 + 让位、根导航里不再有系统 `Tabs`/`TabContent`/`tabBar`(旧 builder 不留死代码)、
玻璃分工(壁纸层零材质 + 这一处是"背后有可变内容"的放行且指名 GLASS_REGISTRY
**变异 4 种都能红**:点哪项都落到第 0 项 / 点击改状态但内容写死挂第一个页面 /
命中区降到 32vp / 内容不让位。
**判据自己也修了两处**(都是本仓规范里已经写过的老毛病复发):非贪婪正则切 `if/else`
在**对象字面量的 `}`** 上收尾(改成按花括号配对切片);"条上无手写色值"读了**原文**
而注释里正好写着"原来那两个手写色值"(改成读剥注释的源码)。
#### 视觉验收的**实测阻塞**(这一条要人来解,不是"还没做"
P5 的观感(材质浓度、圆角、深色下的表现、字形图标渲染)现在**验不了**,原因已逐层测出来:
1. 模拟器需要写**工作区之外**的路径 —— `/root/.Huawei/Emulator/deployed/HarmonyPhone/Log/qemu.log`
本会话的文件策略是 workspace-write实测报
`Emulator: Error opening logfile …: Permission denied`
2. 放宽权限需要审批,而**这条链上没有人类**(全程是 Agent 之间的邮件),审批无法送达 →
工具明确拒绝,并提示"换用不需要权限的方式,或让上游转达给人类"。
3. 试了"把 HOME 挪进工作区"这条不需要权限的路(复制实例 + 符号链接系统镜像2.7 GB 暂存):
写入问题绕过了,但卡在**许可协议** —— 接受记录在原来的 HOME 里,重放 `y` 等于由我替用户
同意一份法律协议,**这个我不做**。已停止模拟器、删除暂存副本。
→ 结论:**没有设备/模拟器可用是这个环境的硬约束**`hdc list targets` 为空是它的表象)。
要解除,需要人有二选一:给这条链放行工作区外写入(或提供可写的 HOME + 已接受许可的实例),
或者由人在本机跑 `harmony-emu start` 后把画面/操作结果交回。在此之前,**所有观感类结论一律"未验"**。
### 7.20 接手 pi 的两个 WebUI 开项dsh2026-09-14两个实缺陷 + 途中踩到的三个坑
pi 明确说他那条链上**没有 shell**,而挂着的两个开项虽然读得出精确修法却没人执行;