Browse Source

Merge branch 'master' of http://git.ius.plus/Project-Vital/VitalApp

finlay 10 months ago
parent
commit
375e819ef2

+ 11 - 1
lib/architecture/storage/file_storage.dart

@@ -1,9 +1,11 @@
+import 'dart:convert';
 import 'dart:io';
 import 'dart:typed_data';
 
 import 'package:fis_common/index.dart';
 import 'package:path_provider/path_provider.dart';
 import 'package:vitalapp/architecture/values/store_keys.dart';
+import 'package:vitalapp/rpc.dart';
 
 import 'shared_storage.dart';
 import 'text_storage.dart';
@@ -114,6 +116,14 @@ class FileStorage {
 /// 基于Base64字符串的壳子下文件导出
 class TextMediaFileExporterForShell {
   static Future<bool> exportFile(List<int> files, String storageName) async {
-    return true;
+    final platform = FPlatform.current;
+    if (platform == FPlatformEnum.webOnMac ||
+        platform == FPlatformEnum.webOnWin) {
+      var data = base64Encode(files);
+      return await rpc.platform.setBytesToExport(data, storageName);
+    } else {
+      //Web端不需要特殊处理,手机端也有native的处理,因此直接返回true
+      return true;
+    }
   }
 }

+ 0 - 6
lib/pages/image_report_inner_view/widgets/build_record_view.dart

@@ -318,12 +318,6 @@ class BuildReportRecord extends StatelessWidget implements FPage {
     );
   }
 
-  void shareReport() {
-    ///TODO(Loki):此处需拆分ConsultationController依赖
-    //Get.put(ConsultationController());
-    _reportManager.openReportShareDialog(currReport.reportCode);
-  }
-
   void handlePrint() async {
     final fileName = _generateReaportFileName();
 

+ 11 - 14
lib/pages/report_preview/controller.dart

@@ -15,12 +15,15 @@ import 'package:universal_html/html.dart' as html;
 import 'package:fis_lib_pdf/ultils/pdf_type_enum.dart';
 import 'package:vitalapp/architecture/defines.dart';
 import 'package:vitalapp/architecture/storage/file_storage.dart';
+import 'package:vitalapp/architecture/utils/prompt_box.dart';
 import 'package:vitalapp/managers/interfaces/report.dart';
 import 'package:vitalapp/pages/report_edit/widgets/report_share_dialog.dart';
 import 'package:vitalapp/pages/report_preview/state.dart';
 import 'package:vitalapp/rpc.dart';
 import 'package:vitalapp/store/store.dart';
 
+import '../medical_checkup_station/registration/widgets/report/qrcode_report_share_dialog.dart';
+
 ///报告预览控制器
 class ReportPreviewController extends FControllerBase {
   ///报告预览控制器状态
@@ -46,24 +49,18 @@ class ReportPreviewController extends FControllerBase {
   String _patientName = "";
   String _recordCode = "";
   ReportDTO? reportDTO;
+
   Future<bool> shareReport() async {
-    if (state.reportCode.isEmpty) {
-      return false;
-    }
-    var reportUrlToShare =
-        await rpc.report.findReportShareUrlAsync(FindReportShareUrlRequest(
-      reportCode: state.reportCode,
-      token: Store.user.token,
-      languageCode: i18nBook.locale.toCodeString('-'),
-    ));
-    if (reportUrlToShare.isEmpty) {
-      return false;
+    if (imageOrFileUrls.isEmpty) {
+      PromptBox.toast('获取分享数据失败');
     }
 
     Get.dialog(
-      ReportShareDialog(
-        reportUrlToShare,
-        state.reportCode,
+      QRCodeShareDialog(
+        imageOrFileUrls.first,
+        "",
+        isQROnly: true,
+        pageName: 'QRCodeShareDialog',
       ),
     );
     return true;