chooseHouseCleanContent_state.dart 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. class ChooseHouseCleanContentState{
  2. // totalPrice
  3. get totalPrice => houseCleanList?.map((item) => (item.isChecked ?? false) ? (item.num ?? 1) * (item.price ?? 0) : 0).reduce((before, current) => before + current)?? 0;
  4. // hasCheckdService
  5. get hasCheckdService => houseCleanList?.any((item) => (item.isChecked ?? false)) ?? false;
  6. // 选取的服务项目
  7. get checkedServiceList => houseCleanList?.where((item) => (item.isChecked ?? false))?.toList() ?? [];
  8. List<HouseCleanContentItem>? houseCleanList;
  9. bool? isMultileSelect;
  10. ChooseHouseCleanContentState({
  11. this.isMultileSelect = false,
  12. required this.houseCleanList,
  13. });
  14. ChooseHouseCleanContentState copyWith({
  15. bool? isMultileSelect,
  16. List<HouseCleanContentItem>? houseCleanList,
  17. }){
  18. return ChooseHouseCleanContentState(
  19. isMultileSelect: isMultileSelect??this.isMultileSelect,
  20. houseCleanList: houseCleanList??this.houseCleanList,
  21. );
  22. }
  23. }
  24. class HouseCleanContentItem{
  25. String? name;
  26. String? areaSizeRange;
  27. int? id;
  28. int? num;
  29. double? price;
  30. bool? isChecked;
  31. bool? isDisable;
  32. HouseCleanContentItem({
  33. this.name,
  34. this.areaSizeRange,
  35. this.id,
  36. this.num,
  37. this.price,
  38. this.isChecked = false,
  39. this.isDisable = false,
  40. });
  41. HouseCleanContentItem copyWith({
  42. String? name,
  43. String? areaSizeRange,
  44. int? id,
  45. int? num,
  46. double? price,
  47. bool? isChecked,
  48. bool? isDisable,
  49. }){
  50. return HouseCleanContentItem(
  51. name: name??this.name,
  52. areaSizeRange: areaSizeRange??this.areaSizeRange,
  53. id: id??this.id,
  54. num: num??this.num,
  55. price: price??this.price,
  56. isChecked: isChecked??this.isChecked,
  57. isDisable: isDisable??this.isDisable
  58. );
  59. }
  60. }