瀏覽代碼

fix(setting): 优化测量设置

gavin.chen 1 年之前
父節點
當前提交
452b224a70

+ 0 - 5
lib/process/primitives/polyline.dart

@@ -4,13 +4,8 @@ import 'package:fis_measure/interfaces/date_types/point.dart';
 import 'package:fis_measure/interfaces/enums/items.dart';
 import 'package:fis_measure/interfaces/process/items/item_metas.dart';
 import 'package:fis_measure/interfaces/process/items/item.dart';
-import 'package:fis_measure/interfaces/process/items/terms.dart';
-import 'package:fis_measure/interfaces/process/items/types.dart';
 import 'package:fis_measure/interfaces/process/workspace/point_info.dart';
 import 'package:fis_measure/process/calcuators/curve.dart';
-import 'package:fis_measure/process/calcuators/calculator.dart';
-import 'package:fis_measure/process/items/item.dart';
-import 'package:fis_measure/process/items/item_feature.dart';
 import 'package:fis_measure/process/primitives/utils/auto_snap.dart';
 import 'package:fis_measure/utils/canvas.dart';
 

+ 4 - 4
lib/process/primitives/spline.dart

@@ -312,11 +312,11 @@ class _AreaPerimeterCalc extends Calculator<Spline, double> {
 
     for (var output in ref.meta.outputs) {
       if (output.name == MeasureTerms.Perimeter) {
-        var value = roundDouble(perimeter, output.fractionalDigits);
-        feature.updateFloatValue(output, value, output.unit);
+        // var value = roundDouble(perimeter, output.fractionalDigits);
+        feature.updateFloatValue(output, perimeter, output.unit);
       } else if (output.name == MeasureTerms.Area) {
-        var value = roundDouble(area, output.fractionalDigits);
-        feature.updateFloatValue(output, value, output.unit);
+        // var value = roundDouble(area, output.fractionalDigits);
+        feature.updateFloatValue(output, area, output.unit);
       }
     }
   }

+ 44 - 3
lib/process/workspace/measure_data_controller.dart

@@ -3,17 +3,15 @@
 import 'dart:typed_data';
 
 import 'package:fis_common/event/event_type.dart';
-import 'package:fis_i18n/i18n.dart';
 import 'package:fis_jsonrpc/rpc.dart';
 import 'package:fis_measure/interfaces/process/items/item_metas.dart';
 import 'package:fis_measure/interfaces/process/workspace/application.dart';
 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_style.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';
 
 class MeasureImageData {
@@ -299,6 +297,49 @@ class MeasureDataController implements IMeasureDataController {
     }
   }
 
+  /// 错误样式设置校验
+  void checkErrorStyleConfig() {
+    if (!StyleConfigPage.C_MEASURE_CURSOR_SIZE
+        .contains(_measureSystemSetting.cursorSize)) {
+      _measureSystemSetting.cursorSize =
+          StyleConfigPage.C_MEASURE_CURSOR_SIZE[0];
+    }
+    if (!StyleConfigPage.C_MEASURE_MARK_SIZE
+        .contains(_measureSystemSetting.shapeCursorSize)) {
+      _measureSystemSetting.shapeCursorSize =
+          StyleConfigPage.C_MEASURE_MARK_SIZE[0];
+    }
+    if (!StyleConfigPage.C_RESULT_TEXT_SIZE
+        .contains(_measureSystemSetting.fontSize)) {
+      _measureSystemSetting.fontSize = StyleConfigPage.C_RESULT_TEXT_SIZE[0];
+    }
+    if (!StyleConfigPage.C_ANNOTATION_TEXT_SIZE
+        .contains(_measureSystemSetting.annotationFontSize)) {
+      _measureSystemSetting.annotationFontSize =
+          StyleConfigPage.C_ANNOTATION_TEXT_SIZE[0];
+    }
+    if (!isContainsValue(StyleConfigPage.C_DISTANCE_THRESHOLD,
+        _measureSystemSetting.autoSnapDistance)) {
+      _measureSystemSetting.autoSnapDistance =
+          StyleConfigPage.C_DISTANCE_THRESHOLD[0].value.toString();
+    }
+    if (!isContainsValue(StyleConfigPage.C_DISTANCE_THRESHOLD,
+        _measureSystemSetting.minCursorDistance)) {
+      _measureSystemSetting.minCursorDistance =
+          StyleConfigPage.C_DISTANCE_THRESHOLD[0].value.toString();
+    }
+  }
+
+  bool isContainsValue(List<MeasureSelectModel> list, String? value) {
+    if (value == null) return false;
+    for (var item in list) {
+      if (item.value.toString() == value) {
+        return true;
+      }
+    }
+    return false;
+  }
+
   /// 设置是否隐藏卡尺线
   void setGuideline(bool isShow) {
     if (isShow) {

+ 74 - 12
lib/view/measure/measure_config/measure_configuation_page.dart

@@ -86,6 +86,9 @@ class MeasureConfigurationPageState extends State<MeasureConfigurationPage> {
   String activeName = '';
   List<MeasureModeDTO> measureMode = [];
 
+  /// 缓存先前的设置
+  String oldMeasureSystemSettingStr = '';
+
   Future<void> getName() async {
     List<String> getModes = [];
     for (var element in playerController.currentFrame?.visuals[0].modes ?? []) {
@@ -110,7 +113,8 @@ class MeasureConfigurationPageState extends State<MeasureConfigurationPage> {
     }
   }
 
-  void onSubmit() async {
+  /// 保存测量项和测量设置
+  void saveMeasureListAndMeasureSetting() async {
     /// 判断两个数组是否相同
     if (savedMeasureList.toString() != chooseMeasureList.toString() ||
         measureData.itemMetaListConfig.isNotEmpty) {
@@ -143,9 +147,73 @@ class MeasureConfigurationPageState extends State<MeasureConfigurationPage> {
     saveMeasureSystemSettingAsync();
   }
 
+  /// 还原测量项
+  void resetMeasureList() {
+    chooseMeasureList = measureData.getMeasureApplicationList;
+    measureData.availableModes = measureMode;
+    measureMetaController.setMeasureConfigItemMetaList();
+  }
+
+  /// 还原测量配置
+  void resetMeasureSetting() {
+    measureData.measureSystemSetting = MeasureSystemSettingDTO.fromJson(
+        jsonDecode(oldMeasureSystemSettingStr));
+  }
+
+  /// 还原并退出
   void onCancel() async {
-    // TODO 关闭时校验【measureSystemSetting】是否发生变更
-    print('TODO 关闭时校验【measureSystemSetting】是否发生变更,如果发生变化需要询问用户是否保存');
+    String kMeasureSystemSettingStr =
+        jsonEncode(measureData.measureSystemSetting.toJson());
+    final bool conifgChanged =
+        !isTheSameConfig(oldMeasureSystemSettingStr, kMeasureSystemSettingStr);
+    final bool measureItemChanged =
+        savedMeasureList.toString() != chooseMeasureList.toString();
+    if (conifgChanged || measureItemChanged) {
+      FConfirmAlert.show(
+        context: Get.context!,
+        title: i18nBook.common.tip.t,
+        subTitle: "设置发生变更,是否需要保存?",
+        confrimLabel: "保存并退出",
+        cancelLabel: "不保存",
+        // confrimLabel: i18nBook.common.confirm.t,
+        // cancelLabel: i18nBook.common.cancel.t,
+        businessParent: widget,
+        onConfirm: () async {
+          _saveAndExit();
+          setState(() {});
+        },
+        onCancel: () async {
+          _resetAndExit();
+          setState(() {});
+        },
+      );
+    } else {
+      _saveAndExit();
+      setState(() {});
+    }
+  }
+
+  bool isTheSameConfig(String config1, String config2) {
+    MeasureSystemSettingDTO measureSystemSetting1 =
+        MeasureSystemSettingDTO.fromJson(jsonDecode(config1));
+    MeasureSystemSettingDTO measureSystemSetting2 =
+        MeasureSystemSettingDTO.fromJson(jsonDecode(config2));
+    return jsonEncode(measureSystemSetting1.toJson()) ==
+        jsonEncode(measureSystemSetting2.toJson());
+  }
+
+  /// 保存并退出
+  void _saveAndExit() async {
+    saveMeasureListAndMeasureSetting();
+    Get.back();
+  }
+
+  /// 还原并退出
+  void _resetAndExit() {
+    resetMeasureSetting();
+    resetMeasureList();
+    saveMeasureSystemSettingAsync();
+    Get.back();
   }
 
   // 保存修改测量样式
@@ -184,8 +252,8 @@ class MeasureConfigurationPageState extends State<MeasureConfigurationPage> {
 
     savedMeasureList = chooseMeasure.toSet().toList();
     chooseMeasureList = chooseMeasure.toSet().toList();
-
-    /// TODO 打开时缓存当前的用户测量配置 【measureSystemSetting】,关闭时校验是否发生变更
+    oldMeasureSystemSettingStr =
+        jsonEncode(measureData.measureSystemSetting.toJson());
   }
 
   @override
@@ -217,16 +285,10 @@ class MeasureConfigurationPageState extends State<MeasureConfigurationPage> {
           okString: i18nBook.common.confirm.t,
           isDefault: true,
           onOk: () {
-            onSubmit();
-            Get.back();
+            _saveAndExit();
           },
           onCancel: () {
-            chooseMeasureList = measureData.getMeasureApplicationList;
-            measureData.availableModes = measureMode;
-            measureMetaController.setMeasureConfigItemMetaList();
             onCancel();
-            Get.back();
-            setState(() {});
           },
           children: [
             FContainer(

+ 17 - 37
lib/view/measure/measure_config/widgets/has_selected_setting_dialog.dart

@@ -13,7 +13,7 @@ import 'package:get/get.dart';
 ///选中设置对话框
 class HasSelectedSettingDialog extends FStatelessWidget
     implements FInteractiveContainer {
-  HasSelectedSettingDialog({
+  const HasSelectedSettingDialog({
     Key? key,
     required this.itemMeta,
   }) : super(key: key);
@@ -33,7 +33,7 @@ class HasSelectedSettingDialog extends FStatelessWidget
       ),
       isDefault: false,
       bottomButton: FContainer(
-        padding: EdgeInsets.symmetric(vertical: 10),
+        padding: const EdgeInsets.symmetric(vertical: 10),
         child: FRow(
           mainAxisAlignment: MainAxisAlignment.center,
           children: [
@@ -43,16 +43,8 @@ class HasSelectedSettingDialog extends FStatelessWidget
           ],
         ),
       ),
-      onOk: () {
-        Get.back();
-      },
-      cancelString: i18nBook.common.cancel.t,
-      okString: i18nBook.common.confirm.t,
-      onCancel: () {
-        Get.back();
-      },
       children: [
-        Container(
+        SizedBox(
           width: 830,
           height: 500,
           child: _DialogPage(parent: this, itemMeta: itemMeta),
@@ -71,7 +63,7 @@ class HasSelectedSettingDialog extends FStatelessWidget
       name: buttonName,
       style: ElevatedButton.styleFrom(
         elevation: 0,
-        padding: EdgeInsets.symmetric(
+        padding: const EdgeInsets.symmetric(
           vertical: 15,
           horizontal: 25,
         ),
@@ -84,21 +76,10 @@ class HasSelectedSettingDialog extends FStatelessWidget
 class _DialogPage extends StatefulWidget {
   ///父级节点
   final FInteractiveContainer parent;
-  _DialogPage({
+  const _DialogPage({
     required this.parent,
     required this.itemMeta,
   });
-  static BoxDecoration createBorder() {
-    const border = BoxDecoration(
-      border: Border(
-        bottom: BorderSide(
-          color: Color.fromRGBO(235, 235, 235, 1),
-          width: 1,
-        ),
-      ),
-    );
-    return border;
-  }
 
   final ItemMetaDTO itemMeta;
 
@@ -149,15 +130,17 @@ class _DialogPageState extends State<_DialogPage> {
             ?.childItems ??
         [];
 
-    tabList.forEach((element) {
+    for (var element in tabList) {
       childTabList.add(element);
       selectChildItem = element.childItems ?? [];
       childTabList.addAll(selectChildItem
               .firstWhereOrNull((element) =>
-                  element.isWorking && element.childItems?.length != 0)
+                  element.isWorking &&
+                  element.childItems != null &&
+                  element.childItems!.isNotEmpty)
               ?.childItems ??
           []);
-    });
+    }
     selectChildItemMeta = childTabList;
     setState(() {});
   }
@@ -250,9 +233,8 @@ class _DialogPageState extends State<_DialogPage> {
       mainAxisSize: MainAxisSize.max,
       mainAxisAlignment: MainAxisAlignment.start,
       children: [
-        if (multiMethodItems != null && multiMethodItems.isNotEmpty)
-          _buildMeasureResult(),
-        if (availableOutputs.length != 0) _buildMeasureUnit(),
+        if (multiMethodItems.isNotEmpty) _buildMeasureResult(),
+        if (availableOutputs.isNotEmpty) _buildMeasureUnit(),
       ],
     );
   }
@@ -262,7 +244,7 @@ class _DialogPageState extends State<_DialogPage> {
       crossAxisAlignment: CrossAxisAlignment.start,
       children: [
         FContainer(
-          margin: EdgeInsets.all(15),
+          margin: const EdgeInsets.all(15),
           child: FText(title),
         ),
         FContainer(
@@ -272,7 +254,7 @@ class _DialogPageState extends State<_DialogPage> {
             top: 25,
             bottom: 25,
           ),
-          margin: EdgeInsets.symmetric(
+          margin: const EdgeInsets.symmetric(
             horizontal: 15,
           ),
           width: double.infinity,
@@ -341,9 +323,9 @@ class _DialogPageState extends State<_DialogPage> {
       businessParent: widget.parent,
       onTap: () {
         if (!childItemMeta.isWorking) {
-          multiMethodItems.forEach((element) {
+          for (var element in multiMethodItems) {
             element.isWorking = false;
-          });
+          }
           childItemMeta.isWorking = true;
           setTabList();
         }
@@ -384,9 +366,7 @@ class _DialogPageState extends State<_DialogPage> {
       businessParent: widget.parent,
       onTap: () {
         if (isCanClick) {
-          if (outputItemMeta.isWorking == null) {
-            outputItemMeta.isWorking = false;
-          }
+          outputItemMeta.isWorking ??= false;
           outputItemMeta.isWorking = !outputItemMeta.isWorking!;
           setState(() {});
         }

+ 96 - 96
lib/view/measure/measure_config/widgets/measure_configuration_style.dart

@@ -53,54 +53,6 @@ class StyleConfigPage extends FStatelessWidget {
   final measureData = Get.find<MeasureDataController>();
   final mouseState = Get.find<IMouseState>();
 
-  @override
-  FWidget build(BuildContext context) {
-    return FContainer(
-        width: 550,
-        height: 500,
-        padding: const EdgeInsets.symmetric(
-          vertical: 15,
-          horizontal: 15,
-        ),
-        margin: const EdgeInsets.symmetric(
-          horizontal: 15,
-        ),
-        child: PatternBody(
-          businessParent: businessParent,
-          measureSystemSetting: measureData.measureSystemSetting,
-        ));
-  }
-}
-
-class MeasureTextSize {
-  MeasureTextSize(this.textSize);
-  final int textSize;
-
-  @override
-  String toString() {
-    return '$textSize×$textSize';
-  }
-}
-
-class PatternBody extends FStatefulWidget {
-  const PatternBody({
-    Key? key,
-    required this.businessParent,
-    required this.measureSystemSetting,
-  }) : super(key: key);
-
-  ///父级节点
-  final FInteractiveContainer businessParent;
-  final MeasureSystemSettingDTO measureSystemSetting;
-  @override
-  FState<PatternBody> createState() => _PatternBodyState();
-}
-
-class _PatternBodyState extends FState<PatternBody> {
-  /// 测量数据
-  late final measureData = Get.find<MeasureDataController>();
-  final mouseState = Get.find<IMouseState>();
-
   /// [卡尺大小] 枚举值
   static final List<int> C_MEASURE_CURSOR_SIZE = [16, 24, 32];
 
@@ -166,52 +118,100 @@ class _PatternBodyState extends FState<PatternBody> {
     ),
   ];
 
+  @override
+  FWidget build(BuildContext context) {
+    return FContainer(
+        width: 550,
+        height: 500,
+        padding: const EdgeInsets.symmetric(
+          vertical: 15,
+          horizontal: 15,
+        ),
+        margin: const EdgeInsets.symmetric(
+          horizontal: 15,
+        ),
+        child: PatternBody(
+          businessParent: businessParent,
+          measureSystemSetting: measureData.measureSystemSetting,
+        ));
+  }
+}
+
+class MeasureTextSize {
+  MeasureTextSize(this.textSize);
+  final int textSize;
+
+  @override
+  String toString() {
+    return '$textSize×$textSize';
+  }
+}
+
+class PatternBody extends FStatefulWidget {
+  const PatternBody({
+    Key? key,
+    required this.businessParent,
+    required this.measureSystemSetting,
+  }) : super(key: key);
+
+  ///父级节点
+  final FInteractiveContainer businessParent;
+  final MeasureSystemSettingDTO measureSystemSetting;
+  @override
+  FState<PatternBody> createState() => _PatternBodyState();
+}
+
+class _PatternBodyState extends FState<PatternBody> {
+  /// 测量数据
+  late final measureData = Get.find<MeasureDataController>();
+  final mouseState = Get.find<IMouseState>();
+
   @override
   void initState() {
     super.initState();
-    autoCorrectIllegalValue();
+    // autoCorrectIllegalValue();
   }
 
   /// 自动纠正非法值【脏数据检查】
-  void autoCorrectIllegalValue() {
-    if (!C_MEASURE_CURSOR_SIZE
-        .contains(widget.measureSystemSetting.cursorSize)) {
-      widget.measureSystemSetting.cursorSize = C_MEASURE_CURSOR_SIZE[0];
-    }
-    if (!C_MEASURE_MARK_SIZE
-        .contains(widget.measureSystemSetting.shapeCursorSize)) {
-      widget.measureSystemSetting.shapeCursorSize = C_MEASURE_MARK_SIZE[0];
-    }
-    if (!C_RESULT_TEXT_SIZE.contains(widget.measureSystemSetting.fontSize)) {
-      widget.measureSystemSetting.fontSize = C_RESULT_TEXT_SIZE[0];
-    }
-    if (!C_ANNOTATION_TEXT_SIZE
-        .contains(widget.measureSystemSetting.annotationFontSize)) {
-      widget.measureSystemSetting.annotationFontSize =
-          C_ANNOTATION_TEXT_SIZE[0];
-    }
-    if (!isContainsValue(
-        C_DISTANCE_THRESHOLD, widget.measureSystemSetting.autoSnapDistance)) {
-      widget.measureSystemSetting.autoSnapDistance =
-          C_DISTANCE_THRESHOLD[0].value.toString();
-    }
-    if (!isContainsValue(
-        C_DISTANCE_THRESHOLD, widget.measureSystemSetting.minCursorDistance)) {
-      widget.measureSystemSetting.minCursorDistance =
-          C_DISTANCE_THRESHOLD[0].value.toString();
-    }
-  }
+  // void autoCorrectIllegalValue() {
+  //   if (!C_MEASURE_CURSOR_SIZE
+  //       .contains(widget.measureSystemSetting.cursorSize)) {
+  //     widget.measureSystemSetting.cursorSize = C_MEASURE_CURSOR_SIZE[0];
+  //   }
+  //   if (!C_MEASURE_MARK_SIZE
+  //       .contains(widget.measureSystemSetting.shapeCursorSize)) {
+  //     widget.measureSystemSetting.shapeCursorSize = C_MEASURE_MARK_SIZE[0];
+  //   }
+  //   if (!C_RESULT_TEXT_SIZE.contains(widget.measureSystemSetting.fontSize)) {
+  //     widget.measureSystemSetting.fontSize = C_RESULT_TEXT_SIZE[0];
+  //   }
+  //   if (!C_ANNOTATION_TEXT_SIZE
+  //       .contains(widget.measureSystemSetting.annotationFontSize)) {
+  //     widget.measureSystemSetting.annotationFontSize =
+  //         C_ANNOTATION_TEXT_SIZE[0];
+  //   }
+  //   if (!isContainsValue(
+  //       C_DISTANCE_THRESHOLD, widget.measureSystemSetting.autoSnapDistance)) {
+  //     widget.measureSystemSetting.autoSnapDistance =
+  //         C_DISTANCE_THRESHOLD[0].value.toString();
+  //   }
+  //   if (!isContainsValue(
+  //       C_DISTANCE_THRESHOLD, widget.measureSystemSetting.minCursorDistance)) {
+  //     widget.measureSystemSetting.minCursorDistance =
+  //         C_DISTANCE_THRESHOLD[0].value.toString();
+  //   }
+  // }
 
   /// List<MeasureSelectModel> 中是否包含该值
-  bool isContainsValue(List<MeasureSelectModel> list, String? value) {
-    if (value == null) return false;
-    for (var item in list) {
-      if (item.value.toString() == value) {
-        return true;
-      }
-    }
-    return false;
-  }
+  // bool isContainsValue(List<MeasureSelectModel> list, String? value) {
+  //   if (value == null) return false;
+  //   for (var item in list) {
+  //     if (item.value.toString() == value) {
+  //       return true;
+  //     }
+  //   }
+  //   return false;
+  // }
 
   CursorTypeEnum getMeasureSystemSettingCursorTypeIcon(
     MeasureCursorType cursorType,
@@ -250,7 +250,7 @@ class _PatternBodyState extends FState<PatternBody> {
               PatternItem(
                 title: i18nBook.measure.rulerType.t,
                 item: PatternItemRadio(
-                    tabList: C_MEASURE_CURSOR_TYPE,
+                    tabList: StyleConfigPage.C_MEASURE_CURSOR_TYPE,
                     businessParent: widget.businessParent,
                     value: getMeasureSystemSettingCursorType(
                       widget.measureSystemSetting.cursorType,
@@ -269,7 +269,7 @@ class _PatternBodyState extends FState<PatternBody> {
               PatternItem(
                 title: i18nBook.measure.rulerSize.t,
                 item: PatternItemRadio(
-                  tabList: C_MEASURE_CURSOR_SIZE,
+                  tabList: StyleConfigPage.C_MEASURE_CURSOR_SIZE,
                   businessParent: widget.businessParent,
                   value: widget.measureSystemSetting.cursorSize,
                   onChangeState: (value) {
@@ -283,7 +283,7 @@ class _PatternBodyState extends FState<PatternBody> {
               PatternItem(
                 title: i18nBook.measure.measureRulerSize.t,
                 item: PatternItemRadio(
-                  tabList: C_MEASURE_MARK_SIZE,
+                  tabList: StyleConfigPage.C_MEASURE_MARK_SIZE,
                   value: widget.measureSystemSetting.shapeCursorSize,
                   businessParent: widget.businessParent,
                   onChangeState: (value) {
@@ -316,7 +316,7 @@ class _PatternBodyState extends FState<PatternBody> {
               PatternItem(
                 title: i18nBook.measure.panelPosition.t,
                 item: PatternItemSelect(
-                  itemList: C_PANEL_POSITION,
+                  itemList: StyleConfigPage.C_PANEL_POSITION,
                   value:
                       widget.measureSystemSetting.showResultLocation.toString(),
                   onChanged: (value) {
@@ -335,7 +335,7 @@ class _PatternBodyState extends FState<PatternBody> {
               PatternItem(
                 title: i18nBook.measure.fontSize.t,
                 item: PatternItemSelect(
-                  itemList: C_RESULT_TEXT_SIZE
+                  itemList: StyleConfigPage.C_RESULT_TEXT_SIZE
                       .map((e) =>
                           MeasureSelectModel(name: e.toString(), value: e))
                       .toList(),
@@ -403,9 +403,9 @@ class _PatternBodyState extends FState<PatternBody> {
               PatternItem(
                 title: i18nBook.measure.autoAdjustCursor.t,
                 item: PatternItemSelect(
-                  itemList: C_DISTANCE_THRESHOLD,
+                  itemList: StyleConfigPage.C_DISTANCE_THRESHOLD,
                   value: widget.measureSystemSetting.minCursorDistance ??
-                      C_DISTANCE_THRESHOLD[0].value.toString(),
+                      StyleConfigPage.C_DISTANCE_THRESHOLD[0].value.toString(),
                   onChanged: (value) {
                     setState(() {
                       measureData.measureSystemSetting.minCursorDistance =
@@ -418,9 +418,9 @@ class _PatternBodyState extends FState<PatternBody> {
               PatternItem(
                 title: i18nBook.measure.autoCaptureRange.t,
                 item: PatternItemSelect(
-                  itemList: C_DISTANCE_THRESHOLD,
+                  itemList: StyleConfigPage.C_DISTANCE_THRESHOLD,
                   value: widget.measureSystemSetting.autoSnapDistance ??
-                      C_DISTANCE_THRESHOLD[0].value.toString(),
+                      StyleConfigPage.C_DISTANCE_THRESHOLD[0].value.toString(),
                   onChanged: (value) {
                     setState(() {
                       measureData.measureSystemSetting.autoSnapDistance = value;
@@ -432,7 +432,7 @@ class _PatternBodyState extends FState<PatternBody> {
               PatternItem(
                 title: i18nBook.measure.annotationFontSize.t,
                 item: PatternItemSelect(
-                  itemList: C_ANNOTATION_TEXT_SIZE
+                  itemList: StyleConfigPage.C_ANNOTATION_TEXT_SIZE
                       .map((e) =>
                           MeasureSelectModel(name: e.toString(), value: e))
                       .toList(),

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

@@ -340,6 +340,7 @@ class _MeasureMainPageState extends State<MeasureMainPage> {
     }
     measureData.measureSystemSetting = result;
     measureData.checkErrorUnitConfig();
+    measureData.checkErrorStyleConfig();
     mouseState.cursorType =
         getMeasureSystemSettingCursorType(result.cursorType);
     mouseState.cursorSize = result.cursorSize.toDouble();