123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118 |
- 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<FWidget> customWidgets;
- @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) {
- 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<MeasureDataController>();
- @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,
- ),
- ),
- );
- }
- }
|