JianFeeeee
bea26b885a
跨端: 修 harmony-admin 的**陈旧判据**(点名了一个已被拆掉的 builder)
`harmony-admin` 在我这轮之前就是红的,我之前把它归到"与本轮无关"——
这次认真看了,它报的是**真问题的一种**,但**报错了对象**:
断言:SecuritySection 必须在 Scroll 内部
实际:SettingsPage.ets 里**已经没有** `SecuritySection` 了
2026-09-21 我按 WebUI `AccountPage` 把 `SecuritySection` 拆成了两段:
· `PasswordSection` —— 修改密码
· `LoginSection` —— 登录状态 / 退出登录
两段**都在** Scroll 里(`SettingsPage.ets:637/681/695/699`),
只是名字变了 ⇒ 判据守着一个**历史名字**,与它要守护的东西脱钩了。
## 改成钉行为,而不是放宽
这条判据当初抓到的危害是具体的:账号列表 `layoutWeight(1)` 占满剩余高度,
后面的 section 被挤出可视区,而「退出登录」正好在最下面 ⇒ **退不出去**。
这个危害跟"那个 builder 叫什么名字"无关 ⇒ 判据应该钉**可滚入口**:
ProfileSection / PasswordSection / LoginSection / AdminSection
四类内容各自都要在 Scroll 里
并单独再钉一次 `LoginSection` —— 「退不出去」是这条判据的立身之本,
不该混在四元组里被一次循环顺手覆盖。
## 变异验证(证明不是放宽)
把 `this.LoginSection()` 从 Scroll 里挪出去(模拟原 bug 的形状):
⇒ `pass 29 / fail 1`,报「★ LoginSection 必须在 Scroll **内部**」
恢复:`pass 30 / fail 0`
★ 教训:判据里的**标识符**是判据的**实现细节**,不是判据的**意图**。
重构改名(拆 builder)不算放宽,但判据必须跟着意图走 ——
否则它就从"守卫"退化成"考古"。
2026-09-21 21:15:33 +08:00
..
2026-09-13 06:16:59 +08:00
2026-09-14 11:07:03 +08:00
2026-09-15 13:55:01 +08:00
2026-09-21 13:29:24 +08:00
2026-09-21 21:15:33 +08:00
2026-09-08 19:16:35 +08:00
2026-09-14 14:57:18 +08:00
2026-09-14 11:07:03 +08:00
2026-09-21 13:29:24 +08:00
2026-09-08 19:16:35 +08:00
2026-09-14 16:00:34 +08:00
2026-09-08 19:16:35 +08:00
2026-09-21 13:29:24 +08:00
2026-09-21 13:29:24 +08:00
2026-09-21 13:29:24 +08:00
2026-09-21 13:29:24 +08:00
2026-09-21 13:29:24 +08:00
2026-09-12 09:54:31 +08:00
2026-09-08 19:16:35 +08:00
2026-09-14 09:11:36 +08:00
2026-09-12 08:02:30 +08:00