pile_nav_new/lib/pages/real/real_data.dart

157 lines
4.9 KiB
Dart
Raw Normal View History

2024-08-29 17:45:39 +08:00
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import '../../service/pile/device_type.dart';
2024-11-06 17:23:29 +08:00
import 'real_controller.dart';
2024-08-29 17:45:39 +08:00
class RealItem extends StatelessWidget {
final int flex;
final List<Widget> children;
const RealItem({super.key, required this.children, this.flex = 1});
@override
Widget build(BuildContext context) {
return Expanded(flex: flex, child: Row(children: children));
}
}
class RealData extends StatelessWidget {
final RealController realController = Get.put(RealController());
RealData({super.key});
@override
Widget build(BuildContext context) {
// 设备获取
late TextStyle titleFontstyle;
late TextStyle valueFontstyle;
final deviceType = getDeviceType(context);
if (deviceType == DeviceType.mobile) {
titleFontstyle = const TextStyle(fontSize: 15);
valueFontstyle = const TextStyle(fontSize: 36);
} else {
titleFontstyle = const TextStyle(fontSize: 22);
valueFontstyle = const TextStyle(fontSize: 45);
}
Widget space = const SizedBox(
height: 5,
width: 5,
);
return Expanded(
flex: 1,
child: Column(
children: [
RealItem(children: [
RealItemChild(
// flex: 2,
title: "速度(m/min)",
titleFontstyle: titleFontstyle,
child: Obx(() {
return Text(
realController.speed.abs() >= 100
? realController.speed.toStringAsFixed(1)
: realController.speed.toStringAsFixed(2),
style: valueFontstyle,
);
}),
),
space,
RealItemChild(
// flex: 3,
title: "时间(min:s)",
titleFontstyle: titleFontstyle,
child: Obx(() => Text(
realController.time.value,
style: valueFontstyle,
))),
space,
RealItemChild(
// flex: 2,
title: "深度(m)",
titleFontstyle: titleFontstyle,
child: Obx(() => Text(
realController.depth.toStringAsFixed(2),
style: valueFontstyle,
))),
]),
space,
RealItem(children: [
RealItemChild(
// flex: 1,
title: "1#瞬时流量(L/min)",
titleFontstyle: titleFontstyle,
child: Obx(() => Text(
realController.subtotalFlow1.toStringAsFixed(2),
style: valueFontstyle,
))),
space,
RealItemChild(
// flex: 1,
title: "2#瞬时流量(L/min)",
titleFontstyle: titleFontstyle,
child: Obx(() => Text(
realController.subtotalFlow2.toStringAsFixed(2),
style: valueFontstyle,
))),
]),
space,
RealItem(children: [
RealItemChild(
// flex: 1,
title: "1#累计流量(L)",
titleFontstyle: titleFontstyle,
child: Obx(() => Text(
realController.totalFlow1.toStringAsFixed(2),
style: valueFontstyle,
))),
space,
RealItemChild(
// flex: 1,
title: "2#累计流量(L)",
titleFontstyle: titleFontstyle,
child: Obx(() => Text(
realController.totalFlow2.toStringAsFixed(2),
style: valueFontstyle,
))),
])
],
));
}
}
class RealItemChild extends StatelessWidget {
// final int flex;
final String title;
final Widget child;
final TextStyle titleFontstyle;
RealItemChild(
{super.key,
// required this.flex,
required this.title,
required this.child,
required this.titleFontstyle});
final BoxDecoration boxStyle = BoxDecoration(
border: Border.all(color: Colors.black26),
borderRadius: BorderRadius.circular(8.0));
@override
Widget build(BuildContext context) {
return Expanded(
// flex: flex,
child: Container(
decoration: boxStyle,
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
children: [
Text(
title,
style: titleFontstyle,
),
const SizedBox(
height: 10,
),
child
]),
));
}
}