Parcourir la source

fix(measure): 修复多幅vid注释tab拉取失败的问题 #0009378

gavin.chen il y a 2 ans
Parent
commit
57e1eb2e86

+ 7 - 7
lib/process/workspace/measure_handler.dart

@@ -64,7 +64,7 @@ abstract class IMeasureHandler {
   late FEventHandler<MeasureModeSubmit> onMeasureModeSubmitChanged;
 
   /// 测量还是注释tab
-  late FEventHandler<TagEnum> onChangedTab;
+  late FEventHandler<TabEnum> onChangedTab;
 
   /// 注释箭头还是标签
   late FEventHandler<AnnotationType> onChangedAnnotationType;
@@ -87,8 +87,8 @@ abstract class IMeasureHandler {
   set measureModeSubmitChanged(MeasureModeSubmit value);
 
   /// 切换Tab
-  TagEnum get changedTab;
-  set changedTab(TagEnum value);
+  TabEnum get changedTab;
+  set changedTab(TabEnum value);
 
   /// 切换注释
   AnnotationType get changedAnnotationType;
@@ -111,7 +111,7 @@ class MeasureHandler implements IMeasureHandler {
   MeasureModeSubmit _measureModeSubmitChanged =
       MeasureModeSubmit(null, null, null, null);
 
-  TagEnum _changedTab = TagEnum.MeasureTool;
+  TabEnum _changedTab = TabEnum.tabMeasureTool;
 
   bool _changeImageLoaded = true;
 
@@ -127,7 +127,7 @@ class MeasureHandler implements IMeasureHandler {
   @override
   var onMeasureModeSubmitChanged = FEventHandler<MeasureModeSubmit>();
   @override
-  var onChangedTab = FEventHandler<TagEnum>();
+  var onChangedTab = FEventHandler<TabEnum>();
 
   @override
   var onChangedAnnotationType = FEventHandler<AnnotationType>();
@@ -147,7 +147,7 @@ class MeasureHandler implements IMeasureHandler {
   MeasureModeSubmit get measureModeSubmitChanged => _measureModeSubmitChanged;
 
   @override
-  TagEnum get changedTab => _changedTab;
+  TabEnum get changedTab => _changedTab;
 
   @override
   AnnotationType get changedAnnotationType => _changedAnnotationType;
@@ -174,7 +174,7 @@ class MeasureHandler implements IMeasureHandler {
   }
 
   @override
-  set changedTab(TagEnum value) {
+  set changedTab(TabEnum value) {
     if (value != _changedTab) {
       _changedTab = value;
       _onChangedTab();

+ 2 - 2
lib/view/measure/measure_search_input.dart

@@ -72,8 +72,8 @@ class _LeftSelectInputState extends FState<LeftSelectInput> {
                       [CommentItemDTO(text: commentItem)],
                     );
                     if (result ?? false) {
-                      measureHandler.changedTab = TagEnum.MeasureTool;
-                      measureHandler.changedTab = TagEnum.NodesTool;
+                      measureHandler.changedTab = TabEnum.tabMeasureTool;
+                      measureHandler.changedTab = TabEnum.tabNodesTool;
                       getNoteCommentsList();
                     }
                   }

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

@@ -360,17 +360,8 @@ class _MeasureLeftBoardState extends State<_MeasureLeftBoard> {
       measureHandler.changedAnnotationType == AnnotationType.arrow;
   void _onChangedTab(
     Object sender,
-    TagEnum? e,
+    TabEnum? e,
   ) {
-    if (e == TagEnum.MeasureTool) {
-      measureMetaController.setAvailableModes(measureData.currentMode);
-      measureMetaController.updateItemList();
-      // application.currentOperateType = MeasureOperateType.measure;
-    } else {
-      final application = Get.find<IApplication>();
-      application.switchAnnotation(
-          AnnotationType.label, measureData.getCommentsList[0]);
-    }
     setState(() {});
   }
 
@@ -443,7 +434,7 @@ class _MeasureLeftBoardState extends State<_MeasureLeftBoard> {
       children: [
         if (showMeasureItems) ...[
           LeftSiderHold(ifHideConfig: showCarotid2DSelectMeasure),
-          if (!(measureHandler.changedTab == TagEnum.MeasureTool)) ...[
+          if (!(measureHandler.changedTab == TabEnum.tabMeasureTool)) ...[
             FContainer(
               width: 300,
               key: UniqueKey(),

+ 52 - 32
lib/view/measure/tool_chest_title.dart

@@ -1,4 +1,5 @@
 import 'package:fis_i18n/i18n.dart';
+import 'package:fis_measure/interfaces/enums/annotation.dart';
 import 'package:fis_measure/interfaces/process/player/play_controller.dart';
 import 'package:fis_measure/interfaces/process/workspace/application.dart';
 import 'package:fis_measure/interfaces/process/workspace/exam_info.dart';
@@ -7,6 +8,7 @@ import 'package:fis_measure/process/workspace/measure_data_controller.dart';
 import 'package:fis_measure/process/workspace/measure_handler.dart';
 import 'package:fis_measure/view/measure/measure_config/measure_configuation_page.dart';
 import 'package:fis_measure/view/measure/measure_config/widgets/measure_configuration_style.dart';
+import 'package:fis_measure/view/measure/measure_view_controller.dart';
 import 'package:fis_measure/view/player/controller.dart';
 import 'package:fis_theme/theme.dart';
 import 'package:fis_ui/index.dart';
@@ -20,9 +22,9 @@ class MeasureSelectModel {
   final String code;
 }
 
-enum TagEnum {
-  MeasureTool,
-  NodesTool,
+enum TabEnum {
+  tabMeasureTool,
+  tabNodesTool,
 }
 
 /// 工具箱 样式配置之类
@@ -147,28 +149,44 @@ class _LeftSiderTabBarState extends State<_LeftSiderTabBar>
       application = Get.find<IApplication>();
       if (application.isSingleFrame) {
         if (application.visuals.length > 1) {
+          //多幅vid
           tabs = [i18nBook.measure.annotationTool.t]
               .map((e) => Center(child: Tab(text: e)))
               .toList();
-          measureHandler.changedTab = TagEnum.NodesTool;
+          changeTabTo(TabEnum.tabNodesTool);
         } else {
           tabs = [
             i18nBook.measure.measureTool.t,
             i18nBook.measure.annotationTool.t
           ].map((e) => Center(child: Tab(text: e))).toList();
-          measureHandler.changedTab = TagEnum.MeasureTool;
+          changeTabTo(TabEnum.tabNodesTool);
         }
       } else {
         tabs = [
           i18nBook.measure.measureTool.t,
           i18nBook.measure.annotationTool.t
         ].map((e) => Center(child: Tab(text: e))).toList();
-        measureHandler.changedTab = TagEnum.MeasureTool;
+        changeTabTo(TabEnum.tabNodesTool);
       }
       setState(() {});
     });
   }
 
+  void changeTabTo(e) {
+    if (measureHandler.changedTab == e) {
+      return;
+    }
+    measureHandler.changedTab = e;
+    if (e == TabEnum.tabMeasureTool) {
+      final measureMetaController = Get.find<MeasureMetaController>();
+      measureMetaController.setAvailableModes(measureData.currentMode);
+      measureMetaController.updateItemList();
+    } else {
+      final application = Get.find<IApplication>();
+      application.switchAnnotation(AnnotationType.label, "test");
+    }
+  }
+
   void onImageLoaded(Object sender, ExamImageInfo? e) {
     if (!mounted) return;
     initTab();
@@ -196,8 +214,10 @@ class _LeftSiderTabBarState extends State<_LeftSiderTabBar>
       unselectedLabelColor: Colors.white,
       onTap: (int index) {
         try {
-          measureHandler.changedTab = TagEnum.values[index];
-        } catch (e) {}
+          changeTabTo(TabEnum.values[index]);
+        } catch (e) {
+          debugPrint(e.toString());
+        }
       },
       tabs: tabs,
       controller: tabController,
@@ -205,27 +225,27 @@ class _LeftSiderTabBarState extends State<_LeftSiderTabBar>
   }
 }
 
-class _LeftPulldown extends StatelessWidget implements FWidget {
-  @override
-  FWidget build(BuildContext context) {
-    return FContainer(
-      margin: const EdgeInsets.symmetric(vertical: 4),
-      child: FSelect<MeasureSelectModel, String>(
-        source: [
-          MeasureSelectModel(
-            name: 'General',
-            code: 'General',
-          )
-        ],
-        hintText: i18nBook.measure.selectMeasureItem.t,
-        value: 'General',
-        clearable: false,
-        height: 36,
-        width: 400,
-        optionLabelExtractor: (data) => data.name,
-        optionValueExtractor: (data) => data.code,
-        onSelectChanged: (value, index) {},
-      ),
-    );
-  }
-}
+// class _LeftPulldown extends StatelessWidget implements FWidget {
+//   @override
+//   FWidget build(BuildContext context) {
+//     return FContainer(
+//       margin: const EdgeInsets.symmetric(vertical: 4),
+//       child: FSelect<MeasureSelectModel, String>(
+//         source: [
+//           MeasureSelectModel(
+//             name: 'General',
+//             code: 'General',
+//           )
+//         ],
+//         hintText: i18nBook.measure.selectMeasureItem.t,
+//         value: 'General',
+//         clearable: false,
+//         height: 36,
+//         width: 400,
+//         optionLabelExtractor: (data) => data.name,
+//         optionValueExtractor: (data) => data.code,
+//         onSelectChanged: (value, index) {},
+//       ),
+//     );
+//   }
+// }