follow_up_medication.dart 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. import 'package:flutter/material.dart';
  2. import 'package:vitalapp/components/button.dart';
  3. import 'package:vitalapp/pages/check/models/form.dart';
  4. import 'package:vitalapp/pages/check/widgets/exam_configurable/exam_radio_and_select.dart';
  5. class FollowUpGxyAndTnbMedication extends StatelessWidget {
  6. final List<dynamic>? currentValues;
  7. final Function? addVeterinaryDrug;
  8. final FormObject currentFormObject;
  9. final Function? deleteVeterinaryDrug;
  10. final Function? editVeterinaryDrug;
  11. const FollowUpGxyAndTnbMedication({
  12. super.key,
  13. this.currentValues,
  14. this.addVeterinaryDrug,
  15. required this.currentFormObject,
  16. this.deleteVeterinaryDrug,
  17. this.editVeterinaryDrug,
  18. });
  19. @override
  20. Widget build(BuildContext context) {
  21. return Stack(
  22. children: [
  23. ExamCardRadioSelect(
  24. title: currentFormObject.label ?? "",
  25. required: currentFormObject.required,
  26. clickCard: null,
  27. content: Container(
  28. alignment: Alignment.centerLeft,
  29. padding: const EdgeInsets.only(
  30. right: 20,
  31. left: 20,
  32. bottom: 10,
  33. ),
  34. child: Column(children: [
  35. ...currentValues!.asMap().entries.map((entry) {
  36. var medicationModel = MedicationModel.fromJson(entry.value);
  37. return Row(
  38. crossAxisAlignment: CrossAxisAlignment.start,
  39. mainAxisAlignment: MainAxisAlignment.start,
  40. children: [
  41. Expanded(
  42. child: Text(
  43. "药物${entry.key + 1}:${medicationModel.name} 用法:${medicationModel.usage}次 每次${medicationModel.dosages}",
  44. style: TextStyle(fontSize: 18, color: Colors.black54),
  45. textAlign: TextAlign.left,
  46. ),
  47. ),
  48. IconButton(
  49. onPressed: () {
  50. editVeterinaryDrug!(entry.key);
  51. },
  52. icon: Icon(Icons.edit),
  53. ),
  54. IconButton(
  55. onPressed: () {
  56. deleteVeterinaryDrug!(entry.key);
  57. },
  58. icon: Icon(Icons.delete),
  59. ),
  60. ],
  61. );
  62. }).toList()
  63. ]),
  64. ),
  65. ),
  66. Positioned(
  67. right: 16,
  68. top: 8,
  69. child: SizedBox(
  70. width: 130,
  71. height: 54,
  72. child: VButton(
  73. child: Row(
  74. mainAxisAlignment: MainAxisAlignment.center,
  75. children: const [
  76. Icon(Icons.add, size: 24),
  77. SizedBox(
  78. width: 8,
  79. ),
  80. Text(
  81. "新增",
  82. style: TextStyle(
  83. fontSize: 20,
  84. ),
  85. )
  86. ],
  87. ),
  88. onTap: () {
  89. addVeterinaryDrug!();
  90. },
  91. ),
  92. ),
  93. ),
  94. ],
  95. );
  96. }
  97. }