feat(client): 列表屏搜索前置/显示字段记忆/移动端表格切换与工具栏瘦身/退出登录归位
- 库存查询搜索框移到工具栏最前(桌面)/独占首行(移动端) - 修复入库/出库/财务「显示字段」失效:移除 minWidth 运行时强制隐藏, 用户勾选权威、minWidth 仅作首次默认;新增 ColumnPrefs 持久化记忆(四屏独立) - 移动端库存支持表格/卡片列表切换 - 移动端三个列表屏工具栏改 Wrap 紧凑布局、导出/显示字段图标化 - 退出登录统一到左侧导航:删系统设置内与桌面右上角下拉,桌面左侧栏底部新增 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,20 @@
|
||||
import 'package:shared_preferences/shared_preferences.dart';
|
||||
|
||||
/// 列表屏「显示字段」(列显隐)的本地持久化。
|
||||
///
|
||||
/// 每个屏用各自的 [id](如 `inventory_list` / `stock_in_list`)独立存储。
|
||||
/// 存的是「隐藏列的 key 集合」。[load] 返回 null 表示该屏从未保存过,
|
||||
/// 调用方据此回退到按 minWidth 计算的首次默认隐藏集。
|
||||
class ColumnPrefs {
|
||||
static String _key(String id) => 'hidden_cols:$id';
|
||||
|
||||
static Future<Set<String>?> load(String id) async {
|
||||
final prefs = await SharedPreferences.getInstance();
|
||||
return prefs.getStringList(_key(id))?.toSet();
|
||||
}
|
||||
|
||||
static Future<void> save(String id, Set<String> hidden) async {
|
||||
final prefs = await SharedPreferences.getInstance();
|
||||
await prefs.setStringList(_key(id), hidden.toList());
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user