state.dart 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125
  1. import 'dart:collection';
  2. import 'package:fis_jsonrpc/rpc.dart';
  3. import 'package:get/get.dart';
  4. import 'package:vnoteapp/architecture/defines.dart';
  5. import 'package:vnoteapp/architecture/types/index.dart';
  6. import 'package:vnoteapp/architecture/utils/datetime.dart';
  7. import 'package:vnoteapp/store/store.dart';
  8. class CreatePatientState {
  9. final RxBool _isCreateOnly = RxBool(false);
  10. final RxString _name = RxString("");
  11. final RxString _personalNo = RxString("");
  12. final RxString _phoneNo = RxString("");
  13. final Rx<CardTypeEnum> _cardType = Rx<CardTypeEnum>(CardTypeEnum.Identity);
  14. final RxString _cardNo = RxString("");
  15. final RxString _nation = RxString("");
  16. final Rx<GenderEnum> _gender = Rx<GenderEnum>(GenderEnum.Male);
  17. final Rx<DateTime> _birthday = Rx<DateTime>(DateTime(1970, 1, 1));
  18. final RxInt _age = RxInt(DataTimeUtils.calculateAge(DateTime(1970, 1, 1)));
  19. final RxString _censusRegister = RxString("");
  20. final RxString _address = RxString("");
  21. final RxString _villageCode = RxString("");
  22. final RxList<String> _crowdLabelCodes = RxList();
  23. final RxBool _isSyncAddresses = RxBool(false);
  24. void reset() {
  25. name = "";
  26. personalNo = "";
  27. cardType = CardTypeEnum.Identity;
  28. cardNo = "";
  29. nation = "";
  30. gender = GenderEnum.Male;
  31. birthday = DateTime(1970, 1, 1);
  32. censusRegister = "";
  33. address = "";
  34. villageCode = "";
  35. crowdLabelCodes = [];
  36. isSyncAddresses = false;
  37. }
  38. /// 机构名称
  39. String get organizationName => Store.user.organizationName;
  40. /// 村选项集合
  41. List<StringKVModel> get villageOptions => Store.user.residence;
  42. /// 是否只创建档案
  43. bool get isCreateOnly => _isCreateOnly.value;
  44. set isCreateOnly(bool val) => _isCreateOnly.updateValue(val);
  45. /// 姓名
  46. String get name => _name.value;
  47. set name(String val) => _name.updateValue(val);
  48. /// 个人编号
  49. String get personalNo => _personalNo.value;
  50. set personalNo(String val) => _personalNo.updateValue(val);
  51. /// 手机号
  52. String get phoneNo => _phoneNo.value;
  53. set phoneNo(String val) => _phoneNo.updateValue(val);
  54. /// 证件类型
  55. CardTypeEnum get cardType => _cardType.value;
  56. set cardType(CardTypeEnum val) => _cardType.updateValue(val);
  57. /// 证件号
  58. String get cardNo => _cardNo.value;
  59. set cardNo(String val) => _cardNo.updateValue(val);
  60. /// 民族
  61. String get nation => _nation.value;
  62. set nation(String val) => _nation.updateValue(val);
  63. /// 性别
  64. GenderEnum get gender => _gender.value;
  65. set gender(GenderEnum val) => _gender.updateValue(val);
  66. /// 户籍地址
  67. String get censusRegister => _censusRegister.value;
  68. set censusRegister(String val) => _censusRegister.updateValue(val);
  69. /// 现住址
  70. String get address => _address.value;
  71. set address(String val) => _address.updateValue(val);
  72. /// 村/居委会 编号
  73. String get villageCode => _villageCode.value;
  74. set villageCode(String val) => _villageCode.updateValue(val);
  75. /// 村/居委会 名称
  76. String get villageName {
  77. String name = "";
  78. if (villageCode.isNotEmpty) {
  79. final dto = villageOptions.firstWhereOrNull((e) => e.key == villageCode);
  80. if (dto != null) {
  81. name = dto.value;
  82. }
  83. }
  84. return name;
  85. }
  86. /// 人群分类集合
  87. List<String> get crowdLabelCodes =>
  88. UnmodifiableListView(_crowdLabelCodes.toList());
  89. set crowdLabelCodes(List<String> val) => _crowdLabelCodes.value = val;
  90. /// 生日
  91. DateTime get birthday => _birthday.value;
  92. set birthday(DateTime val) {
  93. if (val != _birthday.value) {
  94. _birthday.value = val;
  95. _age.value = DataTimeUtils.calculateAge(val);
  96. }
  97. }
  98. /// 年龄
  99. int get age => _age.value;
  100. /// 是否开启地址同步
  101. bool get isSyncAddresses => _isSyncAddresses.value;
  102. set isSyncAddresses(bool val) => _isSyncAddresses.updateValue(val);
  103. }