Browse Source

Merge branch 'master' of http://git.ius.plus/melon.yin/fis_lib_measure

melon.yin 2 years ago
parent
commit
66c98e50d1
2 changed files with 30 additions and 2 deletions
  1. 29 2
      lib/process/workspace/measure_controller.dart
  2. 1 0
      pubspec.yaml

+ 29 - 2
lib/process/workspace/measure_controller.dart

@@ -7,7 +7,6 @@ import 'package:fis_measure/utils/prompt_box.dart';
 import 'package:fis_measure/view/player/controller.dart';
 import 'package:fis_measure/view/player/enums.dart';
 import 'package:fis_measure/view/player/events.dart';
-import 'package:fis_vid/data_host/data_host.dart';
 
 import 'package:fis_measure/interfaces/process/workspace/application.dart';
 import 'package:fis_measure/interfaces/process/player/play_controller.dart';
@@ -17,6 +16,7 @@ import 'package:get/get.dart';
 import 'package:vid/us/vid_us_image.dart';
 
 import 'measure_data_controller.dart';
+import 'package:universal_html/html.dart' as html;
 
 typedef MeasureImagesFetchFunc = Future<List<ExamImageInfo>> Function(
     String code);
@@ -96,11 +96,12 @@ class MeasureController implements IMeasureController {
 
   void _onExamImageSelectedChanged(Object sender, int index) async {
     final url = currentVidUrl;
+
     _playerController?.firstFrameLoaded.removeListener(_onFirstFrameLoaded);
     _playerController?.eventHandler.removeListener(_onPlayerEnvent);
     _playerController?.dispose();
     Get.delete<IPlayerController>();
-
+    _windowSetState(index);
     _playerController = Get.put<IPlayerController>(VidPlayerController(url));
     playerController.firstFrameLoaded.addListener(_onFirstFrameLoaded);
     playerController.eventHandler.addListener(_onPlayerEnvent);
@@ -170,4 +171,30 @@ class MeasureController implements IMeasureController {
     _application = Get.put<IApplication>(app);
     _application!.isSingleFrame = dataChannel.imageCount == 1;
   }
+
+  void _windowSetState(int index) {
+    try {
+      final measureData = Get.find<MeasureDataController>();
+      var remedicalList = measureData.remedicalList;
+      var examCode = examInfo.code;
+      if (index > remedicalList.length - 1) {
+        return;
+      }
+      var remedicalInfo = remedicalList[index];
+      if (remedicalInfo != null) {
+        var searchUrl = html.window.location.search ?? '';
+        var remedicalCode = remedicalInfo.remedicalCode;
+        var parameters = searchUrl.split('&');
+        if (parameters.isNotEmpty) {
+          var target = parameters
+              .firstWhereOrNull((element) => element.contains("remedicalCode"));
+          if (target != null) {
+            var paraneter = "remedicalCode=$remedicalCode";
+            var newSearchUrl = searchUrl.replaceAll(target, paraneter);
+            html.window.history.replaceState('', '', newSearchUrl);
+          }
+        }
+      }
+    } catch (e) {}
+  }
 }

+ 1 - 0
pubspec.yaml

@@ -36,6 +36,7 @@ dependencies:
   path_drawing: ^1.0.0
   image: 3.1.3
   webviewx: ^0.2.1
+  universal_html: 2.0.8
   url_launcher: 6.1.5
   flutter_easyloading: 3.0.3
   audio_video_progress_bar: 0.11.0