exam_signature.dart 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. import 'package:fis_common/index.dart';
  2. import 'package:flutter/material.dart';
  3. import 'package:get/get.dart';
  4. import 'package:vitalapp/architecture/utils/prompt_box.dart';
  5. import 'package:vitalapp/managers/interfaces/doctor.dart';
  6. import 'package:vitalapp/pages/check/models/form.dart';
  7. import 'package:vitalapp/pages/form/form_info.dart';
  8. import 'package:vitalapp/store/store.dart';
  9. import 'exam_card.dart';
  10. class Signature extends StatefulWidget {
  11. final FormObject currentFormObject;
  12. Signature(this.currentFormObject);
  13. @override
  14. State<StatefulWidget> createState() {
  15. return SignatureState();
  16. }
  17. }
  18. class SignatureState extends State<Signature> {
  19. String _signature = "";
  20. @override
  21. void initState() {
  22. if (Store.user.signature.isNullOrEmpty || Store.user.signature == "-1") {
  23. _signature = "";
  24. } else {
  25. _signature = Store.user.signature;
  26. FormInfo.instance.formValue[widget.currentFormObject.key!] = _signature;
  27. }
  28. super.initState();
  29. }
  30. @override
  31. Widget build(BuildContext context) {
  32. if (_signature.isEmpty) {
  33. return ExamCard(
  34. content: Container(
  35. width: 200,
  36. ),
  37. title: "设置签名",
  38. clickCard: () async {
  39. final result = await Get.toNamed("/contract/signature");
  40. if (result != null) {
  41. final saved = await Get.find<IDoctorManager>().setSignature(result);
  42. if (saved) {
  43. setState(() {
  44. _signature = result;
  45. });
  46. FormInfo.instance.formValue[widget.currentFormObject.key!] =
  47. result;
  48. } else {
  49. PromptBox.toast("设置签名失败");
  50. }
  51. }
  52. },
  53. );
  54. }
  55. return ExamCard(
  56. topPadding: 7,
  57. bottomPadding: 7,
  58. content: Row(
  59. children: [
  60. Text(
  61. "随访医生签名",
  62. style: TextStyle(fontSize: 26),
  63. ),
  64. Container(
  65. width: 200,
  66. height: 50,
  67. child: Image.network(Store.user.signature),
  68. ),
  69. ],
  70. ),
  71. clickCard: () async {},
  72. );
  73. }
  74. }