waist.dart 1010 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. import 'package:get/get.dart';
  2. import 'package:vitalapp/architecture/defines.dart';
  3. import 'package:vitalapp/architecture/utils/nums.dart';
  4. class WaistState {
  5. final RxnDouble _waistline = RxnDouble();
  6. final RxnDouble _hipline = RxnDouble();
  7. /// 腰围
  8. double? get waistline => _waistline.value;
  9. set waistline(double? val) => _waistline.updateValue(val);
  10. /// 臀围
  11. double? get hipline => _hipline.value;
  12. set hipline(double? val) => _hipline.updateValue(val);
  13. /// 腰臀比
  14. double? get whr {
  15. if (waistline == null || hipline == null) {
  16. return null;
  17. }
  18. if (hipline == 0) {
  19. // 0不可被除
  20. return 0;
  21. }
  22. final val = waistline! / hipline!;
  23. return double.parse(val.toStringAsFixed(2));
  24. }
  25. /// 腰围外显
  26. String get waistlineDisplay => NumUtils.displayDouble(waistline, "--");
  27. /// 臀围外显
  28. String get hiplineDisplay => NumUtils.displayDouble(hipline, "--");
  29. /// 腰臀比外显
  30. String get whrDisplay => whr?.toString() ?? "--";
  31. }