announcement_list_controller.dart 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. import 'package:flutter_riverpod/flutter_riverpod.dart';
  2. import 'announcement_model.dart';
  3. final mockAnnouncements = <AnnouncementModel>[
  4. AnnouncementModel(
  5. id: 'ann-001',
  6. title: '关于2026年端午节放假安排的通知',
  7. content:
  8. '根据国务院办公厅通知精神,现将2026年端午节放假安排通知如下:6月25日(星期四)至6月27日(星期六)放假调休,共3天。6月28日(星期日)上班。请各部门提前做好工作安排,确保节日期间各项工作正常运转。',
  9. type: '通知公告',
  10. publisherId: 'u-admin',
  11. publisherName: '行政管理部',
  12. publishTime: DateTime(2026, 5, 22),
  13. isTop: true,
  14. expiryDate: DateTime(2026, 6, 28),
  15. readCount: 45,
  16. unreadCount: 12,
  17. attachments: ['放假安排表.pdf'],
  18. createTime: DateTime(2026, 5, 22),
  19. ),
  20. AnnouncementModel(
  21. id: 'ann-002',
  22. title: '关于启用新版考勤系统的通知',
  23. content:
  24. '为提升考勤管理效率,公司决定于2026年6月1日起全面启用新版考勤系统。新旧系统切换期间,请各部门配合完成以下事项:1. 5月28日前完成全员信息核对;2. 5月29日-31日进行系统试运行。如有问题请及时联系IT部门。',
  25. type: '系统公告',
  26. publisherId: 'u-admin',
  27. publisherName: '信息技术部',
  28. publishTime: DateTime(2026, 5, 20),
  29. isTop: false,
  30. requireConfirm: true,
  31. expiryDate: DateTime(2026, 6, 15),
  32. readCount: 30,
  33. unreadCount: 27,
  34. attachments: ['新版考勤系统操作手册.pdf'],
  35. createTime: DateTime(2026, 5, 20),
  36. ),
  37. AnnouncementModel(
  38. id: 'ann-003',
  39. title: '2026年第二季度团建活动报名通知',
  40. content:
  41. '为增强团队凝聚力,公司将于2026年6月10日组织第二季度团建活动。本次活动地点为北京市怀柔区雁栖湖,活动内容包括户外拓展训练、团队协作游戏和烧烤晚会。请各部门于6月3日前将参加人数报至行政管理部。',
  42. type: '活动通知',
  43. publisherId: 'u-admin',
  44. publisherName: '行政管理部',
  45. publishTime: DateTime(2026, 5, 18),
  46. isTop: false,
  47. expiryDate: DateTime(2026, 6, 10),
  48. readCount: 52,
  49. unreadCount: 5,
  50. createTime: DateTime(2026, 5, 18),
  51. ),
  52. ];
  53. final announcementPageProvider = StateProvider<int>((ref) => 1);
  54. final announcementListProvider =
  55. FutureProvider.autoDispose<List<AnnouncementModel>>((ref) async {
  56. ref.watch(announcementPageProvider);
  57. return mockAnnouncements;
  58. });