Kaynağa Gözat

健康指导

finlay 1 yıl önce
ebeveyn
işleme
e96f9f1108

+ 3 - 0
lib/managers/interfaces/registration.dart

@@ -29,4 +29,7 @@ abstract class IRegistrationManager implements IManager {
   Future<List<ReportDTO2>?> getVitalReportInfoAsync({
     required String physicalExamNumber,
   });
+
+  Future<bool> updateResultsAndSuggestionsAsync(
+      String code, String resultsAndSuggestions);
 }

+ 14 - 0
lib/managers/registration.dart

@@ -106,4 +106,18 @@ class RegistrationManager implements IRegistrationManager {
       return null;
     }
   }
+
+  @override
+  Future<bool> updateResultsAndSuggestionsAsync(
+      String code, String resultsAndSuggestions) async {
+    var request = UpdateResultsAndSuggestionsRequest(
+      token: Store.user.token,
+      code: code,
+      resultsAndSuggestions: resultsAndSuggestions,
+    );
+
+    var result = await rpc.vitalHealthExamBooking
+        .updateResultsAndSuggestionsAsync(request);
+    return result;
+  }
 }

+ 1 - 1
lib/pages/login/state.dart

@@ -6,7 +6,7 @@ class LoginState {
   final RxString _password = ''.obs;
 
   /// 是否自动登录
-  final RxBool _isAutoLogin = false.obs;
+  final RxBool _isAutoLogin = true.obs;
 
   /// 账号
   String get account => _account.value;

+ 57 - 8
lib/pages/medical_checkup_station/registration/controller/list.dart

@@ -1,8 +1,10 @@
 import 'package:fis_jsonrpc/rpc.dart';
+import 'package:flutter/foundation.dart';
 import 'package:flutter/material.dart';
 import 'package:get/get.dart';
 import 'package:vitalapp/architecture/utils/prompt_box.dart';
 import 'package:vitalapp/components/table/table_column.dart';
+import 'package:vitalapp/managers/interfaces/registration.dart';
 import 'package:vitalapp/pages/medical_checkup_station/registration/controller.dart';
 import 'package:vitalapp/pages/medical_checkup_station/registration/state/list.dart';
 import 'package:vitalapp/pages/medical_checkup_station/registration/widgets/form/index.dart';
@@ -15,6 +17,8 @@ class RegistrationListController {
   }
   final state = ListState();
 
+  final _registrationManager = Get.find<IRegistrationManager>();
+
   Future<void> getRegisterInfoPage({
     int? pageSize = 10,
     int? pageIndex = 1,
@@ -81,7 +85,7 @@ class RegistrationListController {
       ),
       TableColumn<ResidentModel>(
         headerText: "年龄",
-        maxWidth: 100,
+        maxWidth: 80,
         render: (rowData, index) => Text(
           rowData.age != null ? rowData.age.toString() : "",
           style: textStyle,
@@ -106,7 +110,7 @@ class RegistrationListController {
       // ),
       TableColumn<ResidentModel>(
         headerText: "手机号",
-        maxWidth: 150,
+        maxWidth: 100,
         render: (rowData, index) => Center(
           child: Text(
             rowData.phone ?? '',
@@ -116,7 +120,7 @@ class RegistrationListController {
       ),
       TableColumn<ResidentModel>(
         headerText: "体检状态",
-        // maxWidth: 150,
+        maxWidth: 150,
         render: (rowData, index) => Center(
           child: Text(
             "已登记",
@@ -131,11 +135,12 @@ class RegistrationListController {
         render: (rowData, index) => Row(
           mainAxisAlignment: MainAxisAlignment.center,
           children: [
-            TextButton(
-                onPressed: () {
-                  PromptBox.toast("功能开发中");
-                },
-                child: const Text("打印")),
+            if (!kIsWeb)
+              TextButton(
+                  onPressed: () {
+                    PromptBox.toast("功能开发中");
+                  },
+                  child: const Text("打印标签")),
             TextButton(
                 onPressed: () async {
                   final PatientDTO? patient = PatientDTO(
@@ -153,6 +158,15 @@ class RegistrationListController {
                   );
                 },
                 child: const Text("编辑")),
+            TextButton(
+                onPressed: () {
+                  Get.dialog(
+                    _buildEditingExcepting(rowData),
+                    barrierDismissible:
+                        false, // Prevent dialog from closing on outside tap
+                  );
+                },
+                child: const Text("健康指导")),
             TextButton(
               onPressed: () async {
                 List<ReportDTO2>? reportList = await registrationController
@@ -179,4 +193,39 @@ class RegistrationListController {
       ),
     ];
   }
+
+  Widget _buildEditingExcepting(ResidentModel rowData) {
+    return Dialog(
+      backgroundColor: Colors.white, // 设置对话框背景颜色为白色
+      child: Container(
+        padding: EdgeInsets.all(16.0),
+        child: Column(
+          children: [
+            Expanded(
+              child: TextField(
+                expands: true,
+                maxLines: null,
+                decoration: InputDecoration(
+                  hintText: 'Enter your text here',
+                  border: InputBorder.none,
+                ),
+                onChanged: (value) {
+                  state.resultsAndSuggestions = value;
+                },
+              ),
+            ),
+            ElevatedButton(
+              onPressed: () async {
+                await _registrationManager.updateResultsAndSuggestionsAsync(
+                    rowData.physicalExamNumber ?? "",
+                    state.resultsAndSuggestions ?? '');
+                Get.back(); // Close the dialog
+              },
+              child: Text('提交'),
+            ),
+          ],
+        ),
+      ),
+    );
+  }
 }

+ 6 - 0
lib/pages/medical_checkup_station/registration/state/list.dart

@@ -9,6 +9,12 @@ class ListState {
 
   set residentList(List<ResidentModel> value) => _residentList.value = value;
   List<ResidentModel> get residentList => _residentList.value;
+
+  final RxnString _resultsAndSuggestions = RxnString();
+
+  set resultsAndSuggestions(String? value) =>
+      _resultsAndSuggestions.value = value;
+  String? get resultsAndSuggestions => _resultsAndSuggestions.value;
 }
 
 class ResidentModel {

+ 1 - 1
lib/store/modules/user.dart

@@ -15,7 +15,7 @@ class UserState extends StateModuleBase {
   String? _password;
 
   /// 是否自动登录
-  bool _isAutoLogin = false;
+  bool _isAutoLogin = true;
   final RxList<UserFeatureDTO> _menuPermissionList = RxList<UserFeatureDTO>();
   final RxList<UserFeatureDTO> _operationPermissionList =
       RxList<UserFeatureDTO>();

+ 2 - 2
pubspec.lock

@@ -343,8 +343,8 @@ packages:
     dependency: "direct main"
     description:
       path: "."
-      ref: "38abf49"
-      resolved-ref: "38abf493b3448f395fa6aa97b057ca7a2804bd42"
+      ref: "2594f80"
+      resolved-ref: "2594f800e07a99d26534fc152d53d4ceb07eb3e3"
       url: "http://git.ius.plus:88/Project-Wing/fis_lib_jsonrpc.git"
     source: git
     version: "0.0.1"

+ 2 - 2
pubspec.yaml

@@ -47,7 +47,7 @@ dependencies:
   fis_jsonrpc:
     git:
       url: http://git.ius.plus:88/Project-Wing/fis_lib_jsonrpc.git
-      ref: 38abf49
+      ref: 2594f80
   vnote_device_plugin:
     git:
       url: http://git.ius.plus/Project-Vital/FlutterDevicePlugin.git
@@ -143,7 +143,7 @@ dependency_overrides:
   fis_jsonrpc:
     git:
       url: http://git.ius.plus:88/Project-Wing/fis_lib_jsonrpc.git
-      ref: 38abf49
+      ref: 2594f80
     #path: ../fis_lib_jsonrpc
   fis_theme:
     git: