examination_prescription.dart 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. import 'package:flutter/material.dart';
  2. import 'package:get/get.dart';
  3. import 'package:vitalapp/components/alert_dialog.dart';
  4. import 'package:vitalapp/pages/check/prescription/blood_sugar_disorder.dart';
  5. import 'package:vitalapp/pages/check/prescription/hypertension_prescription.dart';
  6. import 'package:vitalapp/pages/check/prescription/psychiatric_prescription.dart';
  7. import 'package:vitalapp/pages/check/prescription/tuberculosis_prescription.dart';
  8. import 'package:vitalapp/store/store.dart';
  9. class ExaminationPrescription extends StatefulWidget {
  10. const ExaminationPrescription({
  11. super.key,
  12. });
  13. @override
  14. State<ExaminationPrescription> createState() =>
  15. _ExaminationPrescriptionState();
  16. }
  17. class _ExaminationPrescriptionState extends State<ExaminationPrescription> {
  18. String prescription = '';
  19. @override
  20. Widget build(BuildContext context) {
  21. return _buildExaminationPrescriptionDialog();
  22. }
  23. Widget _buildExaminationPrescriptionDialog() {
  24. const designWidth = 1280.0; // 设计尺寸宽度:1280
  25. final width = Get.width;
  26. final scale = width / designWidth; // 计算缩放比例
  27. return VAlertDialog(
  28. title: "新增处方",
  29. width: width * 0.9 / scale,
  30. content: Column(
  31. children: [
  32. Wrap(
  33. alignment: WrapAlignment.center,
  34. spacing: 10,
  35. runSpacing: 10,
  36. children: ["GXY", "TNB", "YZJSZABCXX", "FJH"].map(
  37. (e) {
  38. return TextButton(
  39. onPressed: () {
  40. Store.app.setBusy("加载中");
  41. prescription = e;
  42. setState(() {});
  43. Store.app.cancelBusy();
  44. },
  45. child: Text(e),
  46. );
  47. },
  48. ).toList(),
  49. ),
  50. // 构建处方信息
  51. Expanded(
  52. child: _buildPrescription(prescription),
  53. ),
  54. ],
  55. ),
  56. // onCanceled: () {
  57. // Get.back();
  58. // },
  59. onConfirm: () {
  60. Get.back();
  61. },
  62. );
  63. }
  64. Widget _buildPrescription(String prescription) {
  65. switch (prescription) {
  66. case 'GXY':
  67. return HypertensionPrescription();
  68. case 'TNB':
  69. return BloodSugarDisorder();
  70. case 'YZJSZABCXX':
  71. return PsychiatricPrescription();
  72. case 'FJH':
  73. return TuberculosisPrescription();
  74. default:
  75. return SizedBox();
  76. }
  77. // 构建处方信息
  78. }
  79. }