fix(client): 账号菜单弹按钮正上方不遮挡 + side-user hover 变色

对照原型修两点:
1. 菜单原先 over 盖住 side-user 按钮;改为按「菜单估高」把菜单完整弹到按钮上方
   留 8px 间隙,触发器始终可见(对齐原型)
2. side-user 抽成 _SideUserTile,加 hover 变色(t.sideHover,与左侧 nav 一致)
- user_menu_width_test 增断言:菜单末项底 ≤ 触发器顶(不遮挡)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TSKEiHsvauyxYUW2itzUXX
This commit is contained in:
wangjia
2026-06-25 18:51:55 +08:00
parent 0ebf26c282
commit d85d68574d
2 changed files with 121 additions and 70 deletions
+7
View File
@@ -103,5 +103,12 @@ void main() {
reason: '菜单应与触发器等宽(~194),不应外扩到 218 而溢出');
expect(itemRect.right, lessThanOrEqualTo(219),
reason: '菜单右缘不得越过侧栏右缘(218)盖住内容区');
// 菜单整体在触发器上方,不遮挡 side-user 按钮(菜单末项底 ≤ 触发器文本顶)
final menuBottom =
tester.getRect(find.byType(PopupMenuItem<String>).last).bottom;
final triggerTop = tester.getRect(find.textContaining('管理员')).top;
expect(menuBottom, lessThanOrEqualTo(triggerTop),
reason: '菜单应弹在按钮上方,不得盖住 side-user 触发器');
});
}