role_provider.dart 853 B

1234567891011121314151617181920212223242526
  1. import 'package:flutter_riverpod/flutter_riverpod.dart';
  2. /// 当前用户角色 Provider,默认 'admin' 方便开发测试全部视图
  3. final currentRoleProvider = StateProvider<String>((ref) => 'admin');
  4. /// 角色权限派生 Provider(布尔值)
  5. final isAdminProvider = Provider<bool>(
  6. (ref) => ref.watch(currentRoleProvider) == 'admin',
  7. );
  8. final isFinanceProvider = Provider<bool>(
  9. (ref) => ref.watch(currentRoleProvider) == 'finance',
  10. );
  11. final isManagerProvider = Provider<bool>(
  12. (ref) => ref.watch(currentRoleProvider) == 'manager',
  13. );
  14. final isEmployeeProvider = Provider<bool>(
  15. (ref) => ref.watch(currentRoleProvider) == 'employee',
  16. );
  17. /// 角色列表(value -> 中文标签)
  18. const roleOptions = [
  19. ('admin', '系统管理员'),
  20. ('finance', '财务人员'),
  21. ('manager', '部门经理'),
  22. ('employee', '普通员工'),
  23. ];