Browse Source

测量单位配置上云

gavin.chen 1 year ago
parent
commit
3f7cdb02d1

+ 23 - 0
lib/process/workspace/measure_data_controller.dart

@@ -1,3 +1,5 @@
+// ignore_for_file: non_constant_identifier_names
+
 import 'dart:typed_data';
 
 import 'package:fis_common/event/event_type.dart';
@@ -9,6 +11,7 @@ import 'package:fis_measure/process/workspace/measure_handler.dart';
 import 'package:fis_measure/utils/prompt_box.dart';
 import 'package:fis_measure/values/colors.dart';
 import 'package:fis_measure/view/measure/measure_config/measure_configuation_page.dart';
+import 'package:fis_measure/view/measure/measure_config/widgets/measure_configuration_unit.dart';
 import 'package:flutter/material.dart';
 import 'package:get/get.dart';
 import 'package:vid/us/vid_us_mode.dart';
@@ -276,6 +279,26 @@ class MeasureDataController implements IMeasureDataController {
     }
   }
 
+  /// 错误单位校验
+  void checkErrorUnitConfig() {
+    if (!UnitConfigPage.C_DISTANCE_UNIT_LIST
+        .contains(_measureSystemSetting.distanceUnit)) {
+      _measureSystemSetting.distanceUnit = Unit.cm;
+    }
+    if (!UnitConfigPage.C_AREA_UNIT_LIST
+        .contains(_measureSystemSetting.areaUnit)) {
+      _measureSystemSetting.areaUnit = Unit.cm2;
+    }
+    if (!UnitConfigPage.C_VELOCITY_UNIT_LIST
+        .contains(_measureSystemSetting.velocityUnit)) {
+      _measureSystemSetting.velocityUnit = Unit.cms;
+    }
+    if (!UnitConfigPage.C_TIME_UNIT_LIST
+        .contains(_measureSystemSetting.timeUnit)) {
+      _measureSystemSetting.timeUnit = Unit.s;
+    }
+  }
+
   /// 设置是否隐藏卡尺线
   void setGuideline(bool isShow) {
     if (isShow) {

+ 32 - 33
lib/view/measure/measure_config/widgets/measure_configuration_unit.dart

@@ -8,7 +8,6 @@ import 'package:fis_ui/index.dart';
 import 'package:fis_ui/interface/interactive_container.dart';
 import 'package:flutter/material.dart';
 import 'package:get/get.dart';
-import 'package:vid/us/vid_us_unit.dart';
 
 class UnitConfigPage extends FStatelessWidget {
   UnitConfigPage({
@@ -22,6 +21,34 @@ class UnitConfigPage extends FStatelessWidget {
   /// 测量数据
   final measureData = Get.find<MeasureDataController>();
 
+  /// [长度单位] 可选项
+  static final List<Unit> C_DISTANCE_UNIT_LIST = [
+    Unit.cm,
+    Unit.mm,
+    Unit.inch,
+    Unit.ft,
+  ];
+
+  /// [面积单位] 可选项
+  static final List<Unit> C_AREA_UNIT_LIST = [
+    Unit.cm2,
+    Unit.mm2,
+    Unit.m2,
+  ];
+
+  /// [速度单位] 可选项
+  static final List<Unit> C_VELOCITY_UNIT_LIST = [
+    Unit.mms,
+    Unit.cms,
+    Unit.ms,
+  ];
+
+  /// [时间单位] 可选项
+  static final List<Unit> C_TIME_UNIT_LIST = [
+    Unit.msec,
+    Unit.s,
+  ];
+
   @override
   FWidget build(BuildContext context) {
     return FContainer(
@@ -61,34 +88,6 @@ class _ConfigBodyState extends FState<ConfigBody> {
     super.initState();
   }
 
-  /// [长度单位] 可选项
-  static final List<Unit> C_DISTANCE_UNIT_LIST = [
-    Unit.cm,
-    Unit.mm,
-    Unit.inch,
-    Unit.ft,
-  ];
-
-  /// [面积单位] 可选项
-  static final List<Unit> C_AREA_UNIT_LIST = [
-    Unit.cm2,
-    Unit.mm2,
-    Unit.m2,
-  ];
-
-  /// [速度单位] 可选项
-  static final List<Unit> C_VELOCITY_UNIT_LIST = [
-    Unit.mms,
-    Unit.cms,
-    Unit.ms,
-  ];
-
-  /// [时间单位] 可选项
-  static final List<Unit> C_TIME_UNIT_LIST = [
-    Unit.msec,
-    Unit.s,
-  ];
-
   @override
   FWidget build(BuildContext context) {
     return FListView(
@@ -102,7 +101,7 @@ class _ConfigBodyState extends FState<ConfigBody> {
               PatternItem(
                 title: i18nBook.measure.distanceUnit.t,
                 item: PatternItemRadio(
-                  tabList: C_DISTANCE_UNIT_LIST,
+                  tabList: UnitConfigPage.C_DISTANCE_UNIT_LIST,
                   businessParent: widget.businessParent,
                   value: widget.measureData.measureSystemSetting.distanceUnit,
                   type: PatternValueType.unit,
@@ -119,7 +118,7 @@ class _ConfigBodyState extends FState<ConfigBody> {
               PatternItem(
                 title: i18nBook.measure.areaUnit.t,
                 item: PatternItemRadio(
-                  tabList: C_AREA_UNIT_LIST,
+                  tabList: UnitConfigPage.C_AREA_UNIT_LIST,
                   businessParent: widget.businessParent,
                   value: widget.measureData.measureSystemSetting.areaUnit,
                   type: PatternValueType.unit,
@@ -135,7 +134,7 @@ class _ConfigBodyState extends FState<ConfigBody> {
               PatternItem(
                 title: i18nBook.measure.velocityUnit.t,
                 item: PatternItemRadio(
-                  tabList: C_VELOCITY_UNIT_LIST,
+                  tabList: UnitConfigPage.C_VELOCITY_UNIT_LIST,
                   businessParent: widget.businessParent,
                   value: widget.measureData.measureSystemSetting.velocityUnit,
                   type: PatternValueType.unit,
@@ -152,7 +151,7 @@ class _ConfigBodyState extends FState<ConfigBody> {
               PatternItem(
                 title: i18nBook.measure.timeUnit.t,
                 item: PatternItemRadio(
-                  tabList: C_TIME_UNIT_LIST,
+                  tabList: UnitConfigPage.C_TIME_UNIT_LIST,
                   businessParent: widget.businessParent,
                   value: widget.measureData.measureSystemSetting.timeUnit,
                   type: PatternValueType.unit,

+ 24 - 4
lib/view/measure/measure_view.dart

@@ -1,8 +1,8 @@
+import 'dart:developer';
 import 'package:fis_common/index.dart';
 import 'package:fis_jsonrpc/rpc.dart';
 import 'package:fis_measure/interfaces/process/workspace/exam_info.dart';
 import 'package:fis_measure/interfaces/process/workspace/measure_3d_view_controller.dart';
-import 'package:fis_measure/process/language/measure_language.dart';
 import 'package:fis_measure/process/layout/configuration.dart';
 import 'package:fis_measure/process/workspace/measure_controller.dart';
 import 'package:fis_measure/process/workspace/measure_data_controller.dart';
@@ -17,7 +17,6 @@ import 'package:fis_measure/view/measure/measure_view_controller.dart';
 import 'package:fis_measure/view/player/control_board/operate_bar.dart';
 import 'package:fis_ui/index.dart';
 import 'package:fis_ui/interface/interactive_container.dart';
-import 'package:fis_ui/widgets/layout/offstage.dart';
 
 import 'package:flutter/material.dart';
 import 'package:get/get.dart';
@@ -317,9 +316,30 @@ class _MeasureMainPageState extends State<MeasureMainPage> {
   /// 初始化卡尺样式部分
   Future<void> _initMouseModuel() async {
     final mouseState = Get.put<IMouseState>(MouseState());
-    final result = await measureData.getMeasureSystemSettingAsync()
-        as MeasureSystemSettingDTO;
+    MeasureSystemSettingDTO result = MeasureSystemSettingDTO(
+      cursorSize: 16,
+      shapeCursorSize: 30,
+      showResultWindow: true,
+      fontSize: 14,
+      showCursorLine: true,
+      showDepthGuideline: true,
+      showBriefAnnotation: true,
+      autoSnapDistance: '20',
+      minCursorDistance: '20',
+      annotationFontSize: 14,
+      distanceUnit: Unit.cm,
+      areaUnit: Unit.cm2,
+      velocityUnit: Unit.cms,
+      timeUnit: Unit.s,
+    );
+    try {
+      result = await measureData.getMeasureSystemSettingAsync()
+          as MeasureSystemSettingDTO;
+    } catch (e) {
+      log("getMeasureSystemSettingAsync error: $e");
+    }
     measureData.measureSystemSetting = result;
+    measureData.checkErrorUnitConfig();
     mouseState.cursorType =
         getMeasureSystemSettingCursorType(result.cursorType);
     mouseState.cursorSize = result.cursorSize.toDouble();

+ 4 - 0
lib/view/mobile_view/mobile_measure_view.dart

@@ -129,6 +129,10 @@ class _MobileMeasureMainPageState extends State<MobileMeasureMainPage> {
       autoSnapDistance: '20',
       minCursorDistance: '20',
       annotationFontSize: 14,
+      distanceUnit: Unit.cm,
+      areaUnit: Unit.cm2,
+      velocityUnit: Unit.cms,
+      timeUnit: Unit.s,
     );
     measureData.measureSystemSetting = defaultMobileMeasureSystemSetting;
   }