浏览代码

fix(carotid): 完成webview状态缓存 #0008456

gavin.chen 2 年之前
父节点
当前提交
db455f2fe7

+ 13 - 1
lib/process/workspace/measure_3d_view_controller.dart

@@ -30,7 +30,7 @@ class Measure3DViewController implements IMeasure3DViewController {
   ///3D模式下进入颈动脉2D模式
   void changeModeTo2DMeasure() {
     curMeasureMode = MeasureMode.carotid2DMode;
-    initParams();
+    // initParams();
     updatePlayerMode.emit(this, MeasureMode.carotid2DMode);
   }
 
@@ -41,6 +41,12 @@ class Measure3DViewController implements IMeasure3DViewController {
     updatePlayerMode.emit(this, MeasureMode.carotid3DMode);
   }
 
+  ///颈动脉 2D模式下回到3D测量模式
+  void backTo3DMode() {
+    curMeasureMode = MeasureMode.carotid3DMode;
+    updatePlayerMode.emit(this, MeasureMode.carotid3DMode);
+  }
+
   /// 颈动脉2D、3D模式回到vid 2D测量模式
   void backToVidMode() {
     initParams();
@@ -81,6 +87,12 @@ class Measure3DViewController implements IMeasure3DViewController {
 
   var onUpdateCarotid2DImage = FEventHandler<String>();
 
+  /// 用户主动触发更换颈动脉图像
+  var onChangeCarotid2DImage = FEventHandler<String>();
+  void handleChangeCarotid2DImage(String recordId) {
+    onChangeCarotid2DImage.emit(this, recordId);
+  }
+
   /// [Carotid] ✅模型切换时初始化一些参数
   void initParams() {
     enable2DMeasure = false;

+ 2 - 1
lib/view/3d_view/measure_3d_view_switcher.dart

@@ -32,6 +32,7 @@ class _Measure3DViewSwitcherState extends State<Measure3DViewSwitcher> {
       case MeasureMode.vidMode:
         setState(() {
           enable3DView = false;
+          ifShow3DSwitcher = false;
         });
         break;
       case MeasureMode.carotid2DMode:
@@ -97,7 +98,7 @@ class _Measure3DViewSwitcherState extends State<Measure3DViewSwitcher> {
       children: [
         FElevatedButton(
           onPressed: () {
-            widget.measure3DViewController.changeModeTo3DMode();
+            widget.measure3DViewController.backTo3DMode();
             setState(() {
               ifShow3DSwitcher = false;
               enable3DView = true;

+ 16 - 9
lib/view/measure/measure_player.dart

@@ -4,6 +4,7 @@ import 'package:fis_measure/process/workspace/measure_data_controller.dart';
 import 'package:fis_measure/view/3d_view/measure_3d_view.dart';
 import 'package:fis_measure/view/measure/measure_main_view.dart';
 import 'package:fis_ui/index.dart';
+import 'package:fis_ui/widgets/layout/offstage.dart';
 import 'package:flutter/material.dart';
 import 'package:get/get.dart';
 
@@ -59,15 +60,21 @@ class _MeasureRightBoardState extends State<MeasureRightBoard> {
   }
 
   FWidget buildView() {
-    if (enableMeasure3DView) {
-      return Measure3DView(
-        key: ValueKey(measureData.itemCurrentImage),
-      );
-    } else {
-      return MeasureMainView(
-        key: ValueKey(measureData.itemCurrentImage),
-      );
-    }
+    return FStack(
+      children: [
+        FOffstage(
+          offstage: !enableMeasure3DView,
+          child: Measure3DView(
+            key: ValueKey(measureData.itemCurrentImage),
+          ),
+        ),
+        FOffstage(
+            offstage: enableMeasure3DView,
+            child: MeasureMainView(
+              key: ValueKey(measureData.itemCurrentImage),
+            )),
+      ],
+    );
   }
 
   @override

+ 2 - 0
lib/view/measure/measure_view.dart

@@ -160,6 +160,8 @@ class _MeasureMainPageState extends State<MeasureMainPage> {
 
           /// [Carotid] ✅需要在此通知 controller 存在颈动脉信息
           measure3DViewController.exist3DData = true;
+          measure3DViewController
+              .handleChangeCarotid2DImage(remedicalInfo.recordCode!);
         } else {
           measure3DViewController.exist3DData = false;
         }

+ 2 - 2
pubspec.yaml

@@ -79,7 +79,7 @@ dependency_overrides:
   fis_ui:
     git:
       url: http://git.ius.plus/Project-Wing/fis_lib_ui.git
-      ref: 92fdd3c
+      ref: 00a2e3c
   vid:
     git:
       url: http://git.ius.plus:88/Project-Wing/flutter_vid.git
@@ -104,7 +104,7 @@ dependency_overrides:
   fis_lib_qrcode:
     git:
       url: http://git.ius.plus/jimmy.jiang/fis_lib_qrcode.git
-      ref: f7fd36ad46    
+      ref: f7fd36ad46
 dev_dependencies:
   flutter_test:
     sdk: flutter