瀏覽代碼

0018551: 【体检系统】【健康一体机】【新需求】体检表上增加默认值选项

finlay 11 月之前
父節點
當前提交
2aa6d180df

+ 4 - 2
lib/pages/check/widgets/new_configurable_card.dart

@@ -480,7 +480,8 @@ class NewConfigurableFormState extends State<NewConfigurableCard> {
                                       "Vagina",
                                       "Cervical",
                                       "Uteri_Body",
-                                      "Uteri_Adnexa"
+                                      "Uteri_Adnexa",
+                                      "Eye_Ground"
                                     ].contains(child.key)) {
                                       continue;
                                     }
@@ -538,7 +539,8 @@ class NewConfigurableFormState extends State<NewConfigurableCard> {
           "Vagina",
           "Cervical",
           "Uteri_Body",
-          "Uteri_Adnexa"
+          "Uteri_Adnexa",
+          "Eye_Ground"
         ].contains(child.key)) {
           continue;
         }

+ 45 - 0
lib/pages/home/personal_center/controller.dart

@@ -1,11 +1,19 @@
+import 'dart:convert';
+import 'dart:io';
+
+import 'package:file_picker/file_picker.dart';
+import 'package:fis_common/index.dart';
 import 'package:get/get.dart';
 import 'package:vitalapp/architecture/defines.dart';
+import 'package:vitalapp/architecture/storage/storage.dart';
 import 'package:vitalapp/architecture/utils/prompt_box.dart';
 import 'package:vitalapp/managers/interfaces/account.dart';
 import 'package:vitalapp/managers/interfaces/doctor.dart';
 import 'package:vitalapp/pages/home/personal_center/state.dart';
+import 'package:vitalapp/rpc.dart';
 import 'package:vitalapp/store/store.dart';
 import 'package:fis_common/helpers/encrypt.dart';
+import 'package:universal_html/html.dart' as html;
 
 class PersonalCenterController extends FControllerBase {
   final state = PersonalCenterState();
@@ -90,4 +98,41 @@ class PersonalCenterController extends FControllerBase {
       PromptBox.toast("更新成功!");
     }
   }
+
+  Future<void> chooseImage() async {
+    final files = await FilePicker.platform.pickFiles(type: FileType.image);
+    if (files != null && files.files.first.path.isNotNullOrEmpty) {
+      // 这里获取到的是一个File对象,你可以根据需要进行处理
+      // 例如,将文件路径传递给Image组件进行显示
+      String imagePath = files.files.first.path!;
+      // 接下来,你可以将imagePath传递给Image组件
+      //  if (kIsWeb) {
+      var imageBase64 = await imageToBase64(imagePath);
+      final file = convertBase64ToFile(imageBase64);
+      var url = await rpc.storage.webUpload(file!);
+      // }
+    }
+  }
+
+  Future<String> imageToBase64(String imagePath) async {
+    final file = File(imagePath);
+    List<int> imageBytes = await file.readAsBytes();
+    String base64String = base64Encode(imageBytes);
+    return base64String;
+  }
+
+  html.File? convertBase64ToFile(String base64Image) {
+    try {
+      final bytes = base64Decode(base64Image);
+      const mimeType = 'image/jpeg'; // 替换为您的图片类型
+
+      final blob = html.Blob([bytes], mimeType);
+      final file = html.File([blob], 'image.jpg'); // 替换为您的文件名
+
+      return file;
+    } catch (e) {
+      print('Error converting base64 to File: $e');
+      return null;
+    }
+  }
 }

+ 10 - 2
lib/pages/home/personal_center/widgets/signature.dart

@@ -23,10 +23,18 @@ class SignaturePage extends GetView<PersonalCenterController> {
       mainAxisAlignment: MainAxisAlignment.center,
       children: [
         VButton(
-          label: "设  置",
+          label: "签  名",
           onTap: controller.rewrite,
         ),
-        SizedBox(width: 10),
+        SizedBox(width: 20),
+        // SizedBox(
+        //   width: 120,
+        //   child: VButton(
+        //     label: "导  入",
+        //     onTap: controller.chooseImage,
+        //   ),
+        // ),
+        // SizedBox(width: 20),
         VButton(
           label: "清  空",
           onTap: controller.clear,

+ 8 - 0
pubspec.lock

@@ -385,6 +385,14 @@ packages:
       url: "https://pub.flutter-io.cn"
     source: hosted
     version: "6.1.4"
+  file_picker:
+    dependency: "direct main"
+    description:
+      name: file_picker
+      sha256: "9d6e95ec73abbd31ec54d0e0df8a961017e165aba1395e462e5b31ea0c165daf"
+      url: "https://pub.flutter-io.cn"
+    source: hosted
+    version: "5.3.1"
   fis_common:
     dependency: "direct main"
     description:

+ 1 - 0
pubspec.yaml

@@ -135,6 +135,7 @@ dependencies:
   barcode_image: ^2.0.2
   barcode_finder: ^0.0.5
   wifi_iot: ^0.3.19
+  file_picker: ^5.3.1
   # camera_android_camerax: ^0.5.0+22
 
 # 需要覆盖版本号的依赖