Преглед на файлове

1、修改翻译,优化测量项配置页面

bakamaka.guan преди 2 години
родител
ревизия
30424f3dee

+ 27 - 0
lib/process/language/measure_language.dart

@@ -0,0 +1,27 @@
+import 'dart:convert';
+
+import 'package:fis_measure/process/workspace/measure_data_controller.dart';
+import 'package:get/get.dart';
+
+class Language {
+  Map<String, String>? language;
+  Language({
+    this.language,
+  });
+  factory Language.fromjson(data) {
+    Language lan = Language();
+    lan.language = data['language'];
+    return lan;
+  }
+}
+
+class MeasureLanguage {
+  late MeasureDataController measureData = Get.find<MeasureDataController>();
+  late var measureLanguage =
+      jsonDecode(measureData.measureLanguage)["Language"];
+  // late Language lan = Language.fromjson(measureLanguage["Language"]);
+
+  String? languageValue(String code) {
+    return measureLanguage?[code] ?? code;
+  }
+}

+ 40 - 32
lib/view/measure/measure_config/measure_configuation_page.dart

@@ -1,9 +1,8 @@
-import 'dart:convert';
-
 import 'package:fis_i18n/i18n.dart';
 import 'package:fis_jsonrpc/rpc.dart';
 import 'package:fis_measure/interfaces/process/player/play_controller.dart';
 import 'package:fis_measure/interfaces/process/workspace/application.dart';
+import 'package:fis_measure/process/language/measure_language.dart';
 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/widgets/measurement_tool_selection.dart';
@@ -182,7 +181,7 @@ class _MeasureConfigurationDialogState
       },
       children: [
         FContainer(
-          width: 850,
+          width: 830,
           height: 500,
           child: _buildMeasureconfiguration(),
         ),
@@ -294,7 +293,8 @@ class _HasSelectedModulePage extends StatelessWidget implements FWidget {
   ///
   /// [code] 翻译编码
   String getValues(String code) {
-    final value = jsonDecode(measureData.measureLanguage)["Language"][code];
+    final value = MeasureLanguage().languageValue(code);
+
     return value ?? code;
   }
 
@@ -317,40 +317,48 @@ class _HasSelectedModulePage extends StatelessWidget implements FWidget {
                 children: List<FWidget>.generate(
                   chooseMeasureList.length,
                   (index) {
-                    return FElevatedButton(
-                      onPressed: () {
-                        // controller.openHasSelectedSettingDialog(
-                        //   controller.state.chooseMeasureList[index],
-                        // );
-                      },
-                      style: ButtonStyle(
-                        backgroundColor: MaterialStateProperty.all(
-                          Colors.white,
+                    return
+                        // FElevatedButton(
+                        //   onPressed: () {
+                        //     // controller.openHasSelectedSettingDialog(
+                        //     //   controller.state.chooseMeasureList[index],
+                        //     // );
+                        //   },
+                        //   style: ButtonStyle(
+                        //     backgroundColor: MaterialStateProperty.all(
+                        //       Colors.white,
+                        //     ),
+                        //   ),
+                        //   child:
+                        FContainer(
+                      width: 180,
+                      height: 60,
+                      decoration: BoxDecoration(
+                        border: Border.all(
+                          width: 0.5,
+                          color: FTheme.ins.colorScheme.primary,
                         ),
                       ),
-                      child: FContainer(
-                        width: 180,
-                        height: 60,
-                        child: FColumn(
-                          mainAxisAlignment: MainAxisAlignment.center,
-                          children: [
-                            FText(
+                      child: FColumn(
+                        mainAxisAlignment: MainAxisAlignment.center,
+                        children: [
+                          FText(
+                            chooseMeasureList[index].toString(),
+                            style: const TextStyle(
+                              color: Colors.black,
+                            ),
+                          ),
+                          FText(
+                            getValues(
                               chooseMeasureList[index].toString(),
-                              style: const TextStyle(
-                                color: Colors.black,
-                              ),
                             ),
-                            FText(
-                              getValues(
-                                chooseMeasureList[index].toString(),
-                              ),
-                              style: const TextStyle(
-                                color: Colors.black,
-                              ),
+                            style: const TextStyle(
+                              color: Colors.black,
                             ),
-                          ],
-                        ),
+                          ),
+                        ],
                       ),
+                      // ),
                     );
                   },
                 ),

+ 35 - 27
lib/view/measure/measure_config/widgets/has_selected_setting_dialog.dart

@@ -241,38 +241,46 @@ class _HasSelectedModuleState extends FState<_HasSelectedModule> {
                 children: List<FWidget>.generate(
                   multiMethodItems.length,
                   (index) {
-                    return FElevatedButton(
-                      onPressed: () {
-                        setState(() {
-                          // controller.state.childItemMetaCalculator =
-                          //     multiMethodItems[index]
-                          //         .calculator!
-                          //         .availableOutputs!;
-                          selectedMeasureFun = multiMethodItems[index].name!;
-                        });
-                      },
-                      style: ButtonStyle(
-                        backgroundColor: MaterialStateProperty.all(
-                          multiMethodItems[index].name == selectedMeasureFun
-                              ? FTheme.ins.colorScheme.primary
-                              : Colors.white,
+                    return
+                        // FElevatedButton(
+                        //   onPressed: () {
+                        //     setState(() {
+                        //       // controller.state.childItemMetaCalculator =
+                        //       //     multiMethodItems[index]
+                        //       //         .calculator!
+                        //       //         .availableOutputs!;
+                        //       selectedMeasureFun = multiMethodItems[index].name!;
+                        //     });
+                        //   },
+                        //   style: ButtonStyle(
+                        //     backgroundColor: MaterialStateProperty.all(
+                        //       multiMethodItems[index].name == selectedMeasureFun
+                        //           ? FTheme.ins.colorScheme.primary
+                        //           : Colors.white,
+                        //     ),
+                        //   ),
+                        //   child:
+                        FContainer(
+                      width: 180,
+                      height: 60,
+                      decoration: BoxDecoration(
+                        border: Border.all(
+                          width: 0.5,
+                          color: FTheme.ins.colorScheme.primary,
                         ),
                       ),
-                      child: FContainer(
-                        width: 180,
-                        height: 60,
-                        child: FCenter(
-                          child: FText(
-                            multiMethodItems[index].name!,
-                            style: TextStyle(
-                              color: multiMethodItems[index].name ==
-                                      selectedMeasureFun
-                                  ? Colors.white
-                                  : Colors.black,
-                            ),
+                      child: FCenter(
+                        child: FText(
+                          multiMethodItems[index].name!,
+                          style: TextStyle(
+                            color: multiMethodItems[index].name ==
+                                    selectedMeasureFun
+                                ? Colors.white
+                                : Colors.black,
                           ),
                         ),
                       ),
+                      // ),
                     );
                   },
                 ),

+ 131 - 91
lib/view/measure/measure_config/widgets/measurement_tool_selection.dart

@@ -1,9 +1,11 @@
 // ignore: must_be_immutable
-import 'dart:convert';
 
+import 'package:fis_jsonrpc/rpc.dart';
+import 'package:fis_measure/process/language/measure_language.dart';
 import 'package:fis_measure/process/workspace/measure_data_controller.dart';
 import 'package:fis_measure/view/measure/measure_config/measure_configuation_page.dart';
 import 'package:fis_ui/index.dart';
+import 'package:fis_theme/theme.dart';
 import 'package:flutter/material.dart';
 import 'package:get/get.dart';
 
@@ -28,7 +30,7 @@ class _SelectModulePageState extends FState<SelectModulePage> {
   ///
   /// [code] 翻译编码
   String getValues(String code) {
-    final value = jsonDecode(measureData.measureLanguage)["Language"][code];
+    final value = MeasureLanguage().languageValue(code);
     return value ?? code;
   }
 
@@ -69,18 +71,6 @@ class _SelectModulePageState extends FState<SelectModulePage> {
           )
           .toList(),
     );
-
-    FListView(
-      // shrinkWrap: true,
-      children: widget.itemMetaListGroup
-          .map(
-            (e) => FColumn(
-              crossAxisAlignment: CrossAxisAlignment.start,
-              children: _buildMeasureConfiguration(e),
-            ),
-          )
-          .toList(),
-    );
   }
 
   List<FWidget> _buildMeasureConfiguration(ItemMetaGroup e) {
@@ -132,6 +122,97 @@ class _SelectModulePageState extends FState<SelectModulePage> {
     );
   }
 
+  // FContainer(
+  // onPressed: () {
+  //   removeChooseMeasure(
+  //     e.name ?? '',
+  //   );
+  // },
+  // style: const ButtonStyle(),
+  // child:
+
+  /// 选中的测量项
+  FWidget _buildSlected(ItemMetaDTO e) {
+    return FGestureDetector(
+      onTap: () {
+        removeChooseMeasure(
+          e.name ?? '',
+        );
+      },
+      child: FContainer(
+        width: 180,
+        height: 65,
+        color: FTheme.ins.colorScheme.primary,
+        child: FCenter(
+          child: FColumn(
+            mainAxisAlignment: MainAxisAlignment.center,
+            children: [
+              FText(
+                getValues(
+                  e.name ?? '',
+                ),
+                style: const TextStyle(
+                  color: Colors.white,
+                  fontSize: 14,
+                ),
+              ),
+              FText(
+                e.name ?? '',
+                style: const TextStyle(
+                  color: Colors.white,
+                ),
+              ),
+            ],
+          ),
+        ),
+        // ),
+      ),
+    );
+  }
+
+  /// 未选中的测量项
+  FWidget _buildNoSlected(ItemMetaDTO e) {
+    return FGestureDetector(
+      onTap: () {
+        addChooseMeasure(
+          e.name ?? '',
+        );
+      },
+      child: FContainer(
+        width: 180,
+        height: 60,
+        decoration: BoxDecoration(
+          border: Border.all(
+            width: 0.5,
+            color: FTheme.ins.colorScheme.primary,
+          ),
+        ),
+        child: FCenter(
+          child: FColumn(
+            mainAxisAlignment: MainAxisAlignment.center,
+            children: [
+              FText(
+                getValues(
+                  e.name ?? '',
+                ),
+                style: const TextStyle(
+                  color: Colors.black,
+                  fontSize: 14,
+                ),
+              ),
+              FText(
+                e.name ?? '',
+                style: const TextStyle(
+                  color: Colors.black,
+                ),
+              ),
+            ],
+          ),
+        ),
+      ),
+    );
+  }
+
   FWidget _buildGroupBody(ItemMetaGroup e) {
     return FContainer(
       padding: const EdgeInsets.only(left: 15),
@@ -142,83 +223,42 @@ class _SelectModulePageState extends FState<SelectModulePage> {
           direction: Axis.horizontal,
           crossAlignment: WrapCrossAlignment.center,
           alignment: WrapAlignment.start,
-          children: e.itemMeta
-              .map(
-                (e) => widget.chooseMeasureList.contains(
-                  e.name,
-                )
-                    ? FElevatedButton(
-                        onPressed: () {
-                          removeChooseMeasure(
-                            e.name ?? '',
-                          );
-                        },
-                        style: const ButtonStyle(),
-                        child: FContainer(
-                          width: 180,
-                          height: 60,
-                          child: FCenter(
-                            child: FColumn(
-                              mainAxisAlignment: MainAxisAlignment.center,
-                              children: [
-                                FText(
-                                  getValues(
-                                    e.name ?? '',
-                                  ),
-                                  style: const TextStyle(
-                                    color: Colors.white,
-                                  ),
-                                ),
-                                FText(
-                                  e.name ?? '',
-                                  style: const TextStyle(
-                                    color: Colors.white,
-                                  ),
-                                ),
-                              ],
-                            ),
-                          ),
-                        ),
-                      )
-                    : FElevatedButton(
-                        onPressed: () {
-                          addChooseMeasure(
-                            e.name ?? '',
-                          );
-                        },
-                        style: ButtonStyle(
-                          backgroundColor: MaterialStateProperty.all(
-                            Colors.white,
-                          ),
-                        ),
-                        child: FContainer(
-                          width: 180,
-                          height: 60,
-                          child: FCenter(
-                            child: FColumn(
-                              mainAxisAlignment: MainAxisAlignment.center,
-                              children: [
-                                FText(
-                                  getValues(
-                                    e.name ?? '',
-                                  ),
-                                  style: const TextStyle(
-                                    color: Colors.black,
-                                  ),
-                                ),
-                                FText(
-                                  e.name ?? '',
-                                  style: const TextStyle(
-                                    color: Colors.black,
-                                  ),
-                                ),
-                              ],
-                            ),
-                          ),
-                        ),
-                      ),
-              )
-              .toList()
+          children: e.itemMeta.map((e) {
+            if (widget.chooseMeasureList.contains(
+              e.name,
+            )) {
+              return _buildSlected(e);
+            } else {
+              return _buildNoSlected(e);
+            }
+          }
+              // ?
+              //  : FContainer(
+              //     width: 180,
+              //     height: 60,
+              //     child: FCenter(
+              //       child: FColumn(
+              //         mainAxisAlignment: MainAxisAlignment.center,
+              //         children: [
+              //           FText(
+              //             getValues(
+              //               e.name ?? '',
+              //             ),
+              //             style: const TextStyle(
+              //               color: Colors.black,
+              //             ),
+              //           ),
+              //           FText(
+              //             e.name ?? '',
+              //             style: const TextStyle(
+              //               color: Colors.black,
+              //             ),
+              //           ),
+              //         ],
+              //       ),
+              //     ),
+              //   ),
+              ).toList()
 
           // List<FWidget>.generate(
           //   e.itemMeta.length,

+ 18 - 3
lib/view/measure/measure_tool.dart

@@ -1,8 +1,10 @@
 import 'package:fis_common/logger/logger.dart';
+import 'package:fis_i18n/i18n.dart';
 import 'package:fis_measure/interfaces/process/items/item.dart';
 import 'package:fis_measure/interfaces/process/items/item_metas.dart';
 import 'package:fis_measure/interfaces/process/player/play_controller.dart';
 import 'package:fis_measure/interfaces/process/workspace/application.dart';
+import 'package:fis_measure/process/language/measure_language.dart';
 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_view_controller.dart';
@@ -45,6 +47,8 @@ class LeftSiderSelectMeasureState extends FState<LeftSiderSelectMeasure> {
   /// 是否展开组合测量项
   bool isCombo = false;
 
+  late String fontFamily;
+
   void workingChildChanged(sender, int e) {
     comboItemMetaActivedIndex = e;
     setState(() {});
@@ -179,6 +183,7 @@ class LeftSiderSelectMeasureState extends FState<LeftSiderSelectMeasure> {
 
   @override
   FWidget build(BuildContext context) {
+    fontFamily = Theme.of(context).textTheme.button!.fontFamily!;
     return FSingleChildScrollView(
       controller: ScrollController(),
       child: FScrollbar(
@@ -230,6 +235,10 @@ class LeftSiderSelectMeasureState extends FState<LeftSiderSelectMeasure> {
     }
   }
 
+  String getValue(String code) {
+    return MeasureLanguage().languageValue(code) ?? code;
+  }
+
   FWidget _buildComboItem(ItemMeta itemMeta, int index) {
     FWidget child;
     if (comboItemMetaActivedIndex == index) {
@@ -338,7 +347,12 @@ class LeftSiderSelectMeasureState extends FState<LeftSiderSelectMeasure> {
     if (e.name == activeName) {
       measure = FElevatedButton(
         onPressed: () => onTap.call(),
-        child: FText(e.name),
+        child: FText(
+          i18nBook.isCurrentChinese ? getValue(e.name) : e.name,
+          style: TextStyle(
+            fontFamily: fontFamily,
+          ),
+        ),
         style: ElevatedButton.styleFrom(
           fixedSize: const Size.fromHeight(
             40,
@@ -349,9 +363,10 @@ class LeftSiderSelectMeasureState extends FState<LeftSiderSelectMeasure> {
       measure = FOutlinedButton(
         onPressed: () => onTap.call(),
         child: FText(
-          e.name,
-          style: const TextStyle(
+          i18nBook.isCurrentChinese ? getValue(e.name) : e.name,
+          style: TextStyle(
             color: Colors.white,
+            fontFamily: fontFamily,
           ),
         ),
         style: OutlinedButton.styleFrom(