import 'package:fis_i18n/i18n.dart'; import 'package:fis_measure/interfaces/enums/operate.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/measure_configuation_page.dart'; import 'package:fis_theme/theme.dart'; import 'package:fis_ui/index.dart'; import 'package:fis_ui/interface/interactive_container.dart'; import 'package:flutter/material.dart'; import 'package:get/get.dart'; /// 工具箱 样式配置之类 class LeftSiderHold extends StatefulWidget implements FWidget { const LeftSiderHold({ Key? key, this.customWidgets = const [], this.ifHideConfig = false, }) : super(key: key); // 是否隐藏测量项配置入口 final bool ifHideConfig; final List customWidgets; @override State createState() => _LeftSiderHoldState(); } class _LeftSiderHoldState extends State { // 是否显示设置按钮 bool isShowSetting = true; final measureHandler = Get.find(); @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) { final mediaQuery = MediaQuery.of(context); ///屏幕缩放比例 final devicePixelRatio = mediaQuery.devicePixelRatio; return FContainer( width: 300 / devicePixelRatio, padding: const EdgeInsets.symmetric( horizontal: 10, vertical: 15, ), child: FColumn( // key: UniqueKey(), mainAxisSize: MainAxisSize.max, crossAxisAlignment: CrossAxisAlignment.start, children: [ FRow( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ if (isShowSetting) SettingButton(ifHideConfig: widget.ifHideConfig), if (widget.customWidgets.isNotEmpty) ...[ ...widget.customWidgets, ], ], ), // const _LeftSiderTabBar(), // _LeftSelectInput(), // _LeftPulldown(), ], ), ); } } /// 测量样式 和 测量项配置 入口 class SettingButton extends StatelessWidget implements FInteractiveContainer { SettingButton({Key? key, this.ifHideConfig = false}) : super(key: key); final bool ifHideConfig; // 是否隐藏测量项配置入口 final measureData = Get.find(); @override final String pageName = 'SettingButton'; @override FWidget build(BuildContext context) { return FTextButton( businessParent: this, name: "toMeasureConfigurationPage", onPressed: () { measureData.itemMetaListConfig = []; Get.dialog( MeasureConfigurationPage(ifHideConfig: ifHideConfig), ); }, child: FText( i18nBook.user.setting.t, style: TextStyle( color: FTheme.ins.colorScheme.primary, ), ), ); } }