import 'dart:io' show Platform; import 'package:chicken_farm/core/config/app_config.dart'; import 'package:chicken_farm/modes/menu_item.dart'; import 'package:chicken_farm/routes/app_routes.dart'; import 'package:chicken_farm/stores/auth_store.dart'; import 'package:flutter/material.dart'; import 'package:chicken_farm/core/permissions/permission_keys.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; class MenuStore { static const List menuItems = [ MenuItem( name: '个体绑定', routeName: AppRouteNames.bindChicken, icon: Icons.tag_outlined, permission: PermissionKeys.bindChicken, platform: 1, ), MenuItem( name: '换笼管理', routeName: AppRouteNames.cageChange, icon: Icons.compare_arrows, permission: PermissionKeys.cageChange, platform: 1, ), MenuItem( name: '个体称重', routeName: AppRouteNames.individualWeighing, icon: Icons.scale, permission: PermissionKeys.individualWeighing, platform: 1, ), MenuItem( name: '个体淘汰', routeName: AppRouteNames.individualCulling, icon: Icons.person_remove, permission: PermissionKeys.individualCulling, platform: 1, ), MenuItem( name: '批量淘汰', routeName: AppRouteNames.batchCulling, icon: Icons.group_remove, permission: PermissionKeys.batchCulling, platform: 1, ), MenuItem( name: '点检签到', routeName: AppRouteNames.checkin, icon: Icons.check_circle_outline, permission: PermissionKeys.inspectionCheckin, platform: 1, isPda: false, ), MenuItem( name: '样品查询', routeName: AppRouteNames.sample, icon: Icons.search, permission: PermissionKeys.sampleQuery, platform: 1, isPda: false, ), MenuItem( name: '个体绑定', routeName: AppRouteNames.bindwingTagNumWin, icon: Icons.tag_outlined, permission: PermissionKeys.bindChicken, platform: 2, ), MenuItem( name: '批量淘汰', routeName: AppRouteNames.batchCullingWin, icon: Icons.group_remove, permission: PermissionKeys.batchCulling, platform: 2, ), ]; static List getVisibleMenuItems(WidgetRef ref) { final authState = ref.watch(authStoreProvider); final authStore = ref.watch(authStoreProvider.notifier); final isSuperAdmin = authStore.isSuperAdmin(); // 获取当前平台类型 // 平台类型,0:所有平台,1:Android手机,2:Windows int currentPlatform = 0; if (Platform.isAndroid) { currentPlatform = 1; } else if (Platform.isWindows) { currentPlatform = 2; } // 根据权限和平台类型过滤菜单项 final visibleMenuItems = MenuStore.menuItems.where((item) { // 平台过滤 if (item.platform != 0 && item.platform != currentPlatform) { return false; } if (AppConfig.isPda && !item.isPda || !AppConfig.isPda && item.isPda) { return false; } // 权限过滤 if (isSuperAdmin) return true; if (item.permission == null) return true; return authState.permissions?.contains(item.permission) ?? false; }).toList(); return visibleMenuItems; } }