face_result_dialog.dart 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. import 'package:fis_jsonrpc/services/patient.m.dart';
  2. import 'package:flutter/material.dart';
  3. import 'package:get/get.dart';
  4. import 'package:intl/intl.dart';
  5. import 'package:vitalapp/architecture/utils/datetime.dart';
  6. import 'package:vitalapp/components/alert_dialog.dart';
  7. import 'package:vitalapp/consts/rpc_enum_labels.dart';
  8. class FaceResultDialog extends StatelessWidget {
  9. final PatientBaseDTO data;
  10. const FaceResultDialog({super.key, required this.data});
  11. static Future<bool> show(PatientBaseDTO data) async {
  12. final result = await Get.dialog(
  13. FaceResultDialog(data: data),
  14. barrierDismissible: false,
  15. );
  16. return result == true;
  17. }
  18. @override
  19. Widget build(BuildContext context) {
  20. return VAlertDialog(
  21. title: "人脸识别结果",
  22. width: 400,
  23. contentPadding: const EdgeInsets.symmetric(horizontal: 36, vertical: 12),
  24. showCancel: false, // 目前销售确认只要确定,不需要取消
  25. onConfirm: () {
  26. Get.back(result: true);
  27. },
  28. content: Column(
  29. mainAxisSize: MainAxisSize.min,
  30. children: [
  31. _buildRow("姓名", data.patientName!),
  32. _buildRow("性别", RpcEnumLabels.gender[data.patientGender]!),
  33. // _buildRow("出生日期", DateFormat('yyyy-MM-dd').format(data.birthday!)),
  34. _buildRow("年龄", DataTimeUtils.calculateAge(data.birthday!)),
  35. _buildRow("身份证", data.cardNo!),
  36. ],
  37. ),
  38. );
  39. }
  40. Widget _buildRow(String label, String content) {
  41. return Padding(
  42. padding: const EdgeInsets.symmetric(vertical: 4),
  43. child: Row(
  44. children: [
  45. SizedBox(
  46. width: 90,
  47. child: Text(
  48. label,
  49. style: const TextStyle(color: Colors.grey, fontSize: 20),
  50. ),
  51. ),
  52. const SizedBox(width: 12),
  53. Expanded(
  54. child: Text(
  55. content,
  56. style: const TextStyle(color: Colors.black, fontSize: 20),
  57. ),
  58. ),
  59. ],
  60. ),
  61. );
  62. }
  63. }