photo_group.dart 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. import 'package:get/get.dart';
  2. import 'package:wechat_assets_picker/wechat_assets_picker.dart';
  3. class PhotoGroup {
  4. // 照片组的标题
  5. // final String title;
  6. // // 照片组中的图片数量
  7. // final int imageCount;
  8. // 照片组的选择状态
  9. final RxBool isSelected;
  10. // 照片组中的图片列表
  11. final List<AssetEntity> images;
  12. // 每张图片的选择状态
  13. final RxList<bool> selectedImages;
  14. // 照片组的位置
  15. final String? location;
  16. // 获取已选中的图片数量
  17. int get selectedCount => selectedImages.where((selected) => selected).length;
  18. // 构造函数
  19. PhotoGroup({
  20. // required this.imageCount,
  21. // required this.title,
  22. required bool isSelected,
  23. required this.images,
  24. this.location,
  25. }) : isSelected = isSelected.obs,
  26. selectedImages = RxList<bool>.filled(images.length, isSelected);
  27. // 切换选择所有图片的状态
  28. void toggleSelectAll(bool value) {
  29. isSelected.value = value;
  30. selectedImages.assignAll(List.filled(images.length, value));
  31. }
  32. // 更新图片的选择状态
  33. void updateImageSelection(int index, bool isSelected) {
  34. if (index >= 0 && index < images.length) {
  35. selectedImages[index] = isSelected;
  36. }
  37. }
  38. }