fix(client): 状态下拉对照原型 .menu(白底圆角 + 选中蓝勾蓝字)
实现原是 Material 默认下拉(灰底 + 灰高亮块),改为对照原型 .menu/.menu-item: 白底圆角描边、选中项 lucide check 蓝勾 + 蓝字 fw600、去掉 initialValue 灰高亮。 注:此菜单样式多处复用(主题器/用户/列设置),下一步抽成 DsMenu 统一。 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01TSKEiHsvauyxYUW2itzUXX
This commit is contained in:
@@ -805,12 +805,40 @@ class _InventoryListScreenState extends ConsumerState<InventoryListScreen> {
|
|||||||
SizedBox(width: 240, child: searchField),
|
SizedBox(width: 240, child: searchField),
|
||||||
const SizedBox(width: AppDims.sp3),
|
const SizedBox(width: AppDims.sp3),
|
||||||
PopupMenuButton<String>(
|
PopupMenuButton<String>(
|
||||||
initialValue: _statusFilter,
|
|
||||||
onSelected: (v) => setState(() => _statusFilter = v),
|
onSelected: (v) => setState(() => _statusFilter = v),
|
||||||
itemBuilder: (_) => const ['全部', '在售', '预警', '缺货']
|
color: ctx.tokens.surface,
|
||||||
.map((s) =>
|
elevation: 8,
|
||||||
PopupMenuItem(value: s, child: Text(s)))
|
shape: RoundedRectangleBorder(
|
||||||
.toList(),
|
side: BorderSide(color: ctx.tokens.border),
|
||||||
|
borderRadius: BorderRadius.circular(AppDims.rMd),
|
||||||
|
),
|
||||||
|
itemBuilder: (_) =>
|
||||||
|
['全部', '在售', '预警', '缺货'].map((s) {
|
||||||
|
final sel = s == _statusFilter;
|
||||||
|
return PopupMenuItem<String>(
|
||||||
|
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(
|
child: DsChip(
|
||||||
label: '状态',
|
label: '状态',
|
||||||
value: _statusFilter == '全部' ? null : _statusFilter,
|
value: _statusFilter == '全部' ? null : _statusFilter,
|
||||||
|
|||||||
Reference in New Issue
Block a user