Эх сурвалжийг харах

update(measure): 修正【设置】按钮状态(注释模式下不显示) Review by baka

gavin.chen 2 жил өмнө
parent
commit
a088a664b9

+ 57 - 29
lib/view/measure/measure_panel_head.dart

@@ -1,7 +1,7 @@
 import 'package:fis_i18n/i18n.dart';
+import 'package:fis_measure/interfaces/enums/operate.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/operate_type_change_button.dart';
 import 'package:fis_theme/theme.dart';
 import 'package:fis_ui/index.dart';
 import 'package:fis_ui/interface/interactive_container.dart';
@@ -9,9 +9,42 @@ import 'package:flutter/material.dart';
 import 'package:get/get.dart';
 
 /// 工具箱 样式配置之类
-class LeftSiderHold extends StatelessWidget implements FWidget {
+class LeftSiderHold extends StatefulWidget implements FWidget {
   const LeftSiderHold({Key? key, this.ifHideConfig = false}) : super(key: key);
-  final bool ifHideConfig; // 是否隐藏测量项配置入口
+  // 是否隐藏测量项配置入口
+  final bool ifHideConfig;
+  @override
+  State<LeftSiderHold> createState() => _LeftSiderHoldState();
+}
+
+class _LeftSiderHoldState extends State<LeftSiderHold> {
+  // 是否显示设置按钮
+  bool isShowSetting = true;
+  final measureHandler = Get.find<MeasureHandler>();
+
+  @override
+  void initState() {
+    measureHandler.onOperateTypeChanged.addListener(_onOperateTypeChanged);
+    super.initState();
+  }
+
+  @override
+  void dispose() {
+    measureHandler.onOperateTypeChanged.removeListener(_onOperateTypeChanged);
+    super.dispose();
+  }
+
+  void _onOperateTypeChanged(_, MeasureOperateType e) {
+    if (e == MeasureOperateType.measure) {
+      setState(() {
+        isShowSetting = true;
+      });
+    } else {
+      setState(() {
+        isShowSetting = false;
+      });
+    }
+  }
 
   @override
   FWidget build(BuildContext context) {
@@ -36,7 +69,8 @@ class LeftSiderHold extends StatelessWidget implements FWidget {
                   color: Colors.white,
                 ),
               ),
-              LeftSiderHoldAllStyleConfig(ifHideConfig: ifHideConfig),
+              if (isShowSetting)
+                SettingButton(ifHideConfig: widget.ifHideConfig),
             ],
           ),
           // const _LeftSiderTabBar(),
@@ -48,34 +82,28 @@ class LeftSiderHold extends StatelessWidget implements FWidget {
   }
 }
 
-/// 测量样式 和配置
-class LeftSiderHoldAllStyleConfig extends StatelessWidget
-    implements FInteractiveContainer {
-  const LeftSiderHoldAllStyleConfig({Key? key, this.ifHideConfig = false})
-      : super(key: key);
+/// 测量样式 和 测量项配置 入口
+class SettingButton extends StatelessWidget implements FInteractiveContainer {
+  const SettingButton({Key? key, this.ifHideConfig = false}) : super(key: key);
   final bool ifHideConfig; // 是否隐藏测量项配置入口
   @override
-  final String pageName = 'LeftSiderHoldAllStyleConfig';
+  final String pageName = 'SettingButton';
   @override
   FWidget build(BuildContext context) {
-    return FRow(
-      children: [
-        FTextButton(
-          businessParent: this,
-          name: "toMeasureConfigurationPage",
-          onPressed: () {
-            Get.dialog(
-              MeasureConfigurationPage(ifHideConfig: ifHideConfig),
-            );
-          },
-          child: FText(
-            i18nBook.user.setting.t,
-            style: TextStyle(
-              color: FTheme.ins.colorScheme.primary,
-            ),
-          ),
-        )
-      ],
+    return FTextButton(
+      businessParent: this,
+      name: "toMeasureConfigurationPage",
+      onPressed: () {
+        Get.dialog(
+          MeasureConfigurationPage(ifHideConfig: ifHideConfig),
+        );
+      },
+      child: FText(
+        i18nBook.user.setting.t,
+        style: TextStyle(
+          color: FTheme.ins.colorScheme.primary,
+        ),
+      ),
     );
   }
 }