Browse Source

fix(mobile): 修复移动端测量页载入错误 #0008789、#0008794、#0008790、#0008851

gavin.chen 2 years ago
parent
commit
c8923be9dc

+ 4 - 5
lib/process/layout/configuration.dart

@@ -5,6 +5,7 @@ import 'package:fis_measure/interfaces/date_types/rect.dart';
 import 'package:fis_measure/interfaces/enums/display_mode.dart';
 import 'package:fis_measure/interfaces/enums/visual_area_type.dart';
 import 'package:fis_measure/interfaces/mode_names.dart';
+import 'package:fis_measure/process/layout/layout_config_json.dart';
 import 'package:fis_measure/values/strings.dart';
 import 'package:flutter/services.dart';
 
@@ -33,11 +34,9 @@ class LayoutConfiguration {
   Future<void> loadData() async {
     try {
       if (loaded) return;
-
-      String jsonText =
-          await rootBundle.loadString(MeasureStrings.LayoutConfigurationAsset);
-
-      final map = jsonDecode(jsonText);
+      // String jsonText =
+      //     await rootBundle.loadString(MeasureStrings.LayoutConfigurationAsset);
+      final map = jsonDecode(LayoutConfigurationJSON);
       final sections = map['LayoutSections'] as List<dynamic>;
       _loadSections(sections);
       _loaded = true;

File diff suppressed because it is too large
+ 2 - 0
lib/process/layout/layout_config_json.dart


+ 25 - 4
lib/view/mobile_view/mobile_right_panel/mobile_measure_tool.dart

@@ -1,22 +1,29 @@
+import 'package:fis_common/logger/logger.dart';
 import 'package:fis_i18n/i18n.dart';
 import 'package:fis_measure/interfaces/process/items/item_metas.dart';
 import 'package:fis_measure/interfaces/process/items/terms.dart';
 import 'package:fis_measure/interfaces/process/items/types.dart';
-import 'package:fis_measure/view/measure/measure_tool.dart';
+import 'package:fis_measure/interfaces/process/workspace/application.dart';
 import 'package:fis_ui/index.dart';
 import 'package:flutter/material.dart';
 import 'package:flutter/services.dart';
+import 'package:get/get.dart';
 import 'package:vid/us/vid_us_unit.dart';
 
 /// 移动端测量项选择器(继承自 测量项页面)
-class MobileMeasureSelector extends LeftSiderSelectMeasure {
+class MobileMeasureSelector extends FStatefulWidget {
   const MobileMeasureSelector({Key? key}) : super(key: key);
 
   @override
-  FState<LeftSiderSelectMeasure> createState() => _MobileMeasureSelector();
+  FState<MobileMeasureSelector> createState() => _MobileMeasureSelector();
 }
 
-class _MobileMeasureSelector extends LeftSiderSelectMeasureState {
+class _MobileMeasureSelector extends FState<MobileMeasureSelector> {
+  late final application = Get.find<IApplication>();
+
+  /// 当前选中的测量项目
+  String activeName = "";
+
   /// 写死的移动端测量项
   List<MobileMeasureBtn> mobileMeasureBtnList = [
     MobileMeasureBtn(
@@ -60,6 +67,20 @@ class _MobileMeasureSelector extends LeftSiderSelectMeasureState {
     ),
   ];
 
+  /// 切换测量项
+  void changeItem(ItemMeta itemMeta) {
+    activeName = itemMeta.name;
+    try {
+      application.switchItem(itemMeta);
+      // application.switchItemByName(itemMeta.name);
+    } catch (e) {
+      logger.e("changeItem failed", e);
+    }
+    if (mounted) {
+      setState(() {});
+    }
+  }
+
   @override
   FWidget build(BuildContext context) {
     return FSizedBox(

Some files were not shown because too many files changed in this diff