Files
MailUI4Agents/client/electron
JianFeeeee 7151d3f91c 鸿蒙|动画对齐 all_five 落地 + 收敛 pageEnter 死方法
用户裁定「动画对齐 = 五条逐个对照」(all_five, 2026-09-23)。
本轮把五条核对完并把结果**沉淀成常驻判据**(本仓做法:审计不落判据就会漂)。

核对结果(WebUI 侧剥注释后实测,不是靠记忆):
  rise-in      定义✓ 使用✓  → Theme.paneRiseIn() ×6 + Motion.pageEnter() ×3
  pane-in      定义✗ 使用✗  → 9aa702b 删掉的死规则(碑文 index.css:1239)
                              用户 09-14 明确否掉「整屏一起淡」,两侧都不得复活
  menu-in      定义✓ 使用✓  → Theme.menuIn() ×2
  cal-in-next  定义✓ 使用✓  → Theme.calendarSlide(true)
  cal-in-prev  定义✓ 使用✓  → Theme.calendarSlide(false)
⇒ 五条全部落地;无缺口需要新写动画(避免了"自己发明一条")。

顺带修一处真问题:
  Motion.pageEnter() 定义了、返回的正是三个 @Entry 页各自手写的
  那份 {duration, curve} 字面量,却**一个调用点都没有**(死方法)。
  三个页面(AdminUsersPage/ComposePage/MailDetailPage)改为走它。
  这正是本仓反复出现的形状:一处定义 + 三处同源各自演化。

判据(animation-audit.test.mjs 12 → 15):
  ① WebUI 每个**在用**的 keyframe 都有鸿蒙实现,且实现**真的有人穿**
     —— 名单从 CSS 动态取(liveKeyframes),不是写死,将来加删会跟着动。
     「有调用点」是关键:本仓的失败形状是"定义了却没人用"(menuIn 一度如此),
     "方法存在"是弱断言 —— 删掉最后一个调用点它照样绿。
  ② pane-in 不得在**任一侧**复活(只查鸿蒙不够,WebUI 复活同样会两端不一致)。
     负面断言走剥注释版,碑文里的引用不会让它假红。
  ③ 一般化:**任何**返回 TransitionEffect 的动画辅助方法都必须有调用点
     —— 防的是"下一条",pageEnter 就是这里被抓出来的。

变异验证(三条新判据逐条打红,还原后回绿):
  · 删掉 calendarSlide 调用点 → ①③ 红(cal-in-next/prev 无调用点)
  · 鸿蒙复活 paneIn() → ② 红
  · WebUI 复活 @keyframes pane-in + 使用 → ①② 红
  ⇒ 判据有齿,不是橡皮图章。

套件:animation-audit 15/15、harmony-logic 34/34、harmony-nav 22/22、
      harmony-appearance 27/27。hvigorw BUILD SUCCESSFUL。
2026-09-24 11:02:05 +08:00
..