measure_panel_head.dart 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. import 'package:fis_i18n/i18n.dart';
  2. import 'package:fis_measure/interfaces/enums/operate.dart';
  3. import 'package:fis_measure/process/workspace/measure_data_controller.dart';
  4. import 'package:fis_measure/process/workspace/measure_handler.dart';
  5. import 'package:fis_measure/view/measure/measure_config/measure_configuation_page.dart';
  6. import 'package:fis_theme/theme.dart';
  7. import 'package:fis_ui/index.dart';
  8. import 'package:fis_ui/interface/interactive_container.dart';
  9. import 'package:flutter/material.dart';
  10. import 'package:get/get.dart';
  11. /// 工具箱 样式配置之类
  12. class LeftSiderHold extends StatefulWidget implements FWidget {
  13. const LeftSiderHold({Key? key, this.ifHideConfig = false}) : super(key: key);
  14. // 是否隐藏测量项配置入口
  15. final bool ifHideConfig;
  16. @override
  17. State<LeftSiderHold> createState() => _LeftSiderHoldState();
  18. }
  19. class _LeftSiderHoldState extends State<LeftSiderHold> {
  20. // 是否显示设置按钮
  21. bool isShowSetting = true;
  22. final measureHandler = Get.find<MeasureHandler>();
  23. @override
  24. void initState() {
  25. measureHandler.onOperateTypeChanged.addListener(_onOperateTypeChanged);
  26. super.initState();
  27. }
  28. @override
  29. void dispose() {
  30. measureHandler.onOperateTypeChanged.removeListener(_onOperateTypeChanged);
  31. super.dispose();
  32. }
  33. void _onOperateTypeChanged(_, MeasureOperateType e) {
  34. if (e == MeasureOperateType.measure) {
  35. setState(() {
  36. isShowSetting = true;
  37. });
  38. } else {
  39. setState(() {
  40. isShowSetting = false;
  41. });
  42. }
  43. }
  44. @override
  45. FWidget build(BuildContext context) {
  46. return FContainer(
  47. width: 300,
  48. padding: const EdgeInsets.symmetric(
  49. horizontal: 10,
  50. vertical: 15,
  51. ),
  52. child: FColumn(
  53. // key: UniqueKey(),
  54. mainAxisSize: MainAxisSize.max,
  55. crossAxisAlignment: CrossAxisAlignment.start,
  56. children: [
  57. FRow(
  58. mainAxisAlignment: MainAxisAlignment.spaceBetween,
  59. children: [
  60. // 工具箱文案
  61. FText(
  62. i18nBook.measure.toolbox.t,
  63. style: const TextStyle(
  64. color: Colors.white,
  65. ),
  66. ),
  67. if (isShowSetting)
  68. SettingButton(ifHideConfig: widget.ifHideConfig),
  69. ],
  70. ),
  71. // const _LeftSiderTabBar(),
  72. // _LeftSelectInput(),
  73. // _LeftPulldown(),
  74. ],
  75. ),
  76. );
  77. }
  78. }
  79. /// 测量样式 和 测量项配置 入口
  80. class SettingButton extends StatelessWidget implements FInteractiveContainer {
  81. SettingButton({Key? key, this.ifHideConfig = false}) : super(key: key);
  82. final bool ifHideConfig; // 是否隐藏测量项配置入口
  83. final measureData = Get.find<MeasureDataController>();
  84. @override
  85. final String pageName = 'SettingButton';
  86. @override
  87. FWidget build(BuildContext context) {
  88. return FTextButton(
  89. businessParent: this,
  90. name: "toMeasureConfigurationPage",
  91. onPressed: () {
  92. measureData.itemMetaListConfig = [];
  93. Get.dialog(
  94. MeasureConfigurationPage(ifHideConfig: ifHideConfig),
  95. );
  96. },
  97. child: FText(
  98. i18nBook.user.setting.t,
  99. style: TextStyle(
  100. color: FTheme.ins.colorScheme.primary,
  101. ),
  102. ),
  103. );
  104. }
  105. }