Browse Source

0018131: 【一体机】【新建档案】录入居民信息,点击保存,录入人脸后,自动弹出提示“若离开当前页面,所有已填写信息都会被清空,请确认是否离开?”

finlay 1 year ago
parent
commit
0489961654

+ 8 - 1
lib/pages/home/controller.dart

@@ -17,6 +17,7 @@ import 'package:vitalapp/managers/interfaces/patient.dart';
 import 'package:vitalapp/pages/controllers/home_nav_mixin.dart';
 import 'package:vitalapp/pages/home/models/menu.dart';
 import 'package:vitalapp/pages/medical/widgets/twelve_ecg.dart';
+import 'package:vitalapp/pages/patient/create/controller.dart';
 import 'package:vitalapp/store/store.dart';
 import 'package:vnote_device_plugin/consts/types.dart';
 
@@ -242,9 +243,15 @@ class HomeController extends FControllerBase with HomeNavMixin {
         return;
       }
     }
+    CreatePatientController? createPatientController;
+    if (Get.isRegistered<CreatePatientController>()) {
+      createPatientController = Get.find<CreatePatientController>();
+    }
 
     if (state.currentSelectMenu == "/patient/create" &&
-        name != "/patient/create") {
+        name != "/patient/create" &&
+        createPatientController != null &&
+        createPatientController.isClearPrompt) {
       await Get.dialog(
         VAlertDialog(
           title: "提示",

+ 4 - 1
lib/pages/patient/create/controller.dart

@@ -45,6 +45,8 @@ class CreatePatientController extends FControllerBase
       patientInfomationController.state;
   final state = CreatePatientState();
 
+  bool isClearPrompt = true;
+
   @override
   void onReady() {
     final params = Get.parameters;
@@ -53,7 +55,7 @@ class CreatePatientController extends FControllerBase
         state.isCreateOnly = true;
       }
     }
-
+    isClearPrompt = true;
     if (Routes.parameters.containsKey('patientInfo')) {
       if (Routes.parameters['patientInfo'] != null) {
         ///由于PatientBaseDTO中没有headImage字段,所以这里单独解析这个json,尝试获取人脸图像并绑定
@@ -102,6 +104,7 @@ class CreatePatientController extends FControllerBase
       PromptBox.toast("保存失败");
       return;
     }
+    isClearPrompt = false;
 
     // await queryIsNeedFaceInput();   //询问是否录入人脸
     if (state.headImage.isNotEmpty) {

+ 10 - 10
lib/pages/patient/create/widgets/quick_create.dart

@@ -31,16 +31,6 @@ class QuickCreatePatientPage extends GetView<CreatePatientController> {
           child: Row(
             mainAxisAlignment: MainAxisAlignment.spaceAround,
             children: [
-              VButton(
-                label: "保存",
-                onTap: () {
-                  Debouncer.run(
-                    () {
-                      controller.saveAndBack();
-                    },
-                  );
-                },
-              ),
               VButton(
                 label: "清空",
                 onTap: () {
@@ -71,6 +61,16 @@ class QuickCreatePatientPage extends GetView<CreatePatientController> {
                   );
                 },
               ),
+              VButton(
+                label: "保存",
+                onTap: () {
+                  Debouncer.run(
+                    () {
+                      controller.saveAndBack();
+                    },
+                  );
+                },
+              ),
             ],
           ),
         ),