role_provider.dart 833 B

123456789101112131415161718
  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>((ref) => ref.watch(currentRoleProvider) == 'admin');
  6. final isFinanceProvider = Provider<bool>((ref) => ref.watch(currentRoleProvider) == 'finance');
  7. final isManagerProvider = Provider<bool>((ref) => ref.watch(currentRoleProvider) == 'manager');
  8. final isEmployeeProvider = Provider<bool>((ref) => ref.watch(currentRoleProvider) == 'employee');
  9. /// 角色列表(value -> 中文标签)
  10. const roleOptions = [
  11. ('admin', '系统管理员'),
  12. ('finance', '财务人员'),
  13. ('manager', '部门经理'),
  14. ('employee', '普通员工'),
  15. ];