Browse Source

临时屏蔽非本机会诊,不弹出对话框,不显示发起会诊的按钮。

felix 11 months ago
parent
commit
f3a9f6e871

+ 10 - 1
lib/consultation/emergency/views/emergencypreparednessdialog.dart

@@ -51,9 +51,18 @@ class EmergencyPreparednessDialog
 
   @override
   Widget build(BuildContext context) {
+    var deviceInfo = data.deviceInfoList?.firstWhereOrNull(
+        (element) => element.deviceCode == Storage.usDeviceCode);
+    List<EmergencyDeviceInfoDTO> deviceInfoList =
+        Storage.platform == Platform.Windows
+            ? (deviceInfo == null ? [] : [deviceInfo])
+            : (data.deviceInfoList ?? []);
     Get.lazyPut<EmergencyPreparednessController>(() =>
         EmergencyPreparednessController(
-            data.deviceInfoList ?? [], data.expertList ?? [], emergencyConfig));
+            deviceInfoList, data.expertList ?? [], emergencyConfig));
+    // Get.lazyPut<EmergencyPreparednessController>(() =>
+    //     EmergencyPreparednessController(
+    //         data.deviceInfoList ?? [], data.expertList ?? [], emergencyConfig));
     return LayoutBuilder(
         builder: (BuildContext context, BoxConstraints constraints) {
       final double contentWidth = Storage.isPortraitMode.value

+ 19 - 0
lib/consultation/liveconsultation/models/consultationpopup.dart

@@ -1,6 +1,7 @@
 import 'dart:typed_data';
 
 import 'package:fis_common/index.dart';
+import 'package:fis_jsonrpc/rpc.dart';
 import 'package:flutter_sound/flutter_sound.dart';
 import 'package:flyinsonolite/consultation/liveconsultation/views/consultationrequestdialog.dart';
 import 'package:flyinsonolite/consultation/liveconsultation/models/popuptimer.dart';
@@ -8,6 +9,7 @@ import 'package:flyinsonolite/jsonrpc/fisLib/services/log.m.dart';
 import 'package:flyinsonolite/infrastructure/global.dart';
 import 'package:flyinsonolite/jsonrpc/jsonrpcclientforFISLib.dart';
 import 'package:flyinsonolite/infrastructure/logger.dart';
+import 'package:flyinsonolite/managers/interfaces/iappointmentmanager.dart';
 import 'package:flyinsonolite/managers/interfaces/iliveconsultationmanager.dart';
 import 'package:flyinsonolite/consultation/records/models/liveconsultation.dart';
 import 'package:flyinsonolite/infrastructure/storage.dart';
@@ -66,6 +68,15 @@ class ConsultationPopup {
   ///接受会诊弹窗
   static Future<void> onInviteLiveConsultation(
       Object sender, LiveConsultation e) async {
+    ///Felix临时屏蔽非本机会诊
+    final IAppointmentManager appointmentManager =
+        Get.find<IAppointmentManager>();
+    var consultationDetaioDto = await appointmentManager
+        .findConsultationDetailAsync(e.consultationCode!);
+    if (Storage.usDeviceCode != consultationDetaioDto?.deviceCode &&
+        Storage.platform == Platform.Windows) {
+      return;
+    }
     //if (_isPlaying) {
     //  _stopTimer = true;
     //  _isPlaying = false;
@@ -79,6 +90,14 @@ class ConsultationPopup {
 
   ///加入会诊弹窗
   static void onJoinLiveConsultation(Object sender, LiveConsultation e) async {
+    final IAppointmentManager appointmentManager =
+        Get.find<IAppointmentManager>();
+    var consultationDetaioDto = await appointmentManager
+        .findConsultationDetailAsync(e.consultationCode!);
+    if (Storage.usDeviceCode != consultationDetaioDto?.deviceCode &&
+        Storage.platform == Platform.Windows) {
+      return;
+    }
     if (_isPlaying) {
       _stopTimer = true;
       _isPlaying = false;

+ 21 - 18
lib/consultation/records/views/consultationinfoview.dart

@@ -1,5 +1,6 @@
 import 'package:fis_common/extensions/index.dart';
 import 'package:fis_i18n/i18n.dart';
+import 'package:fis_jsonrpc/services/authentication.m.dart';
 import 'package:flutter/material.dart';
 import 'package:flyinsonolite/consultation/records/controllers/acceptconsultationcontroller.dart';
 import 'package:flyinsonolite/consultation/records/views/acceptconsultationdialog.dart';
@@ -71,8 +72,13 @@ class ConsultationInfoView extends GetView<ConsultationDetailController> {
                             mainAxisAlignment: MainAxisAlignment.center,
                             children: [
                               //开始会诊
-                              Obx(() => controller
-                                      .consultationDetail.value!.isInitiateShow
+                              Obx(() => controller.consultationDetail.value!
+                                          .isInitiateShow &&
+                                      ((Storage.platform == Platform.Windows &&
+                                              controller.consultationDetail
+                                                      .value!.deviceCode ==
+                                                  Storage.usDeviceCode) ||
+                                          Storage.platform != Platform.Windows)
                                   ? FISLinearGradientElevatedButtonAsync(
                                       () async {
                                       if (Storage.isConsultating.value) {
@@ -81,13 +87,9 @@ class ConsultationInfoView extends GetView<ConsultationDetailController> {
                                         return;
                                       }
                                       await controller.startConsultationAsyn();
-                                    },
-                                      i18nBook.realTimeConsultation
-                                          .starttConsultation.t,
-                                      Storage.currentTheme.dialogStyle
-                                          .buttonGradient,
-                                      textStyle: Storage
-                                          .currentTheme.normalTextStyle
+                                    }, i18nBook.realTimeConsultation.starttConsultation.t,
+                                      Storage.currentTheme.dialogStyle.buttonGradient,
+                                      textStyle: Storage.currentTheme.normalTextStyle
                                           .copyWith(
                                               fontSize: Storage.currentTheme
                                                   .normalTextStyle.fontSize!.s))
@@ -99,8 +101,13 @@ class ConsultationInfoView extends GetView<ConsultationDetailController> {
                                     )
                                   : const SizedBox()),
                               //进入会诊
-                              Obx(() => controller
-                                      .consultationDetail.value!.isJoinInShow
+                              Obx(() => controller.consultationDetail.value!
+                                          .isJoinInShow &&
+                                      ((Storage.platform == Platform.Windows &&
+                                              controller.consultationDetail
+                                                      .value!.deviceCode ==
+                                                  Storage.usDeviceCode) ||
+                                          Storage.platform != Platform.Windows)
                                   ? FISLinearGradientElevatedButtonAsync(
                                       () async {
                                       if (Storage.isConsultating.value) {
@@ -110,13 +117,9 @@ class ConsultationInfoView extends GetView<ConsultationDetailController> {
                                       }
                                       await controller.startConsultationAsyn(
                                           isJoin: true);
-                                    },
-                                      i18nBook.realTimeConsultation
-                                          .joinConsultation.t,
-                                      Storage.currentTheme.dialogStyle
-                                          .buttonGradient,
-                                      textStyle: Storage
-                                          .currentTheme.normalTextStyle
+                                    }, i18nBook.realTimeConsultation.joinConsultation.t,
+                                      Storage.currentTheme.dialogStyle.buttonGradient,
+                                      textStyle: Storage.currentTheme.normalTextStyle
                                           .copyWith(
                                               fontSize: Storage.currentTheme
                                                   .normalTextStyle.fontSize!.s))