From c2f4b974233bbbc2a659c56640259aa27f563608 Mon Sep 17 00:00:00 2001 From: wangjia <809946525@qq.com> Date: Thu, 25 Jun 2026 22:58:08 +0800 Subject: [PATCH] =?UTF-8?q?fix(client):=20=E7=8A=B6=E6=80=81=E4=B8=8B?= =?UTF-8?q?=E6=8B=89=E5=AF=B9=E7=85=A7=E5=8E=9F=E5=9E=8B=20.menu=EF=BC=88?= =?UTF-8?q?=E7=99=BD=E5=BA=95=E5=9C=86=E8=A7=92=20+=20=E9=80=89=E4=B8=AD?= =?UTF-8?q?=E8=93=9D=E5=8B=BE=E8=93=9D=E5=AD=97=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 实现原是 Material 默认下拉(灰底 + 灰高亮块),改为对照原型 .menu/.menu-item: 白底圆角描边、选中项 lucide check 蓝勾 + 蓝字 fw600、去掉 initialValue 灰高亮。 注:此菜单样式多处复用(主题器/用户/列设置),下一步抽成 DsMenu 统一。 Co-Authored-By: Claude Opus 4.8 Claude-Session: https://claude.ai/code/session_01TSKEiHsvauyxYUW2itzUXX --- .../inventory/inventory_list_screen.dart | 38 ++++++++++++++++--- 1 file changed, 33 insertions(+), 5 deletions(-) diff --git a/client/lib/screens/inventory/inventory_list_screen.dart b/client/lib/screens/inventory/inventory_list_screen.dart index f4dec06..4b7973c 100644 --- a/client/lib/screens/inventory/inventory_list_screen.dart +++ b/client/lib/screens/inventory/inventory_list_screen.dart @@ -805,12 +805,40 @@ class _InventoryListScreenState extends ConsumerState { SizedBox(width: 240, child: searchField), const SizedBox(width: AppDims.sp3), PopupMenuButton( - initialValue: _statusFilter, onSelected: (v) => setState(() => _statusFilter = v), - itemBuilder: (_) => const ['全部', '在售', '预警', '缺货'] - .map((s) => - PopupMenuItem(value: s, child: Text(s))) - .toList(), + color: ctx.tokens.surface, + elevation: 8, + shape: RoundedRectangleBorder( + side: BorderSide(color: ctx.tokens.border), + borderRadius: BorderRadius.circular(AppDims.rMd), + ), + itemBuilder: (_) => + ['全部', '在售', '预警', '缺货'].map((s) { + final sel = s == _statusFilter; + return PopupMenuItem( + value: s, + height: 40, + child: Row(children: [ + SizedBox( + width: 18, + child: sel + ? Icon(LucideIcons.check, + size: 15, color: ctx.tokens.primary) + : null, + ), + const SizedBox(width: 4), + Text(s, + style: TextStyle( + fontSize: 13, + color: sel + ? ctx.tokens.primary + : ctx.tokens.text, + fontWeight: sel + ? FontWeight.w600 + : FontWeight.w400)), + ]), + ); + }).toList(), child: DsChip( label: '状态', value: _statusFilter == '全部' ? null : _statusFilter,