field_control.dart 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. import 'package:application/widget.dart';
  2. import 'package:common_pub/ui/map_view/map_view.dart';
  3. import 'package:common_pub/ui/map_view/view_map_image.dart';
  4. import 'package:common_pub/ui/map_view/view_map_touch.dart';
  5. import 'package:common_pub/ui/map_view/view_plug_loading.dart';
  6. import 'field_control_controller.dart';
  7. class FieldControlPage extends StatelessWidget{
  8. const FieldControlPage({super.key});
  9. @override
  10. Widget build(BuildContext context) {
  11. return GetBuilder(
  12. init: FieldControlController(),
  13. builder: (c){
  14. return Container(
  15. height: double.infinity,
  16. width: double.infinity,
  17. color: const Color(0xffc9c0c0),
  18. alignment: Alignment.center,
  19. child: Obx((){
  20. final mapWatch = c.mapWatch;
  21. return mapWatch != null? content(context, mapWatch, c): noData();
  22. }));
  23. });
  24. }
  25. Widget noData(){
  26. return Center(
  27. child: Column(
  28. mainAxisSize: MainAxisSize.min,
  29. children: [
  30. Image.asset(Assets.imagesIcNoData, height: 64),
  31. const SizedBox(height: 25),
  32. const Text('没有数据, 请选择地图',
  33. style: TextStyle(color: Color(0xff707070), fontSize: 18.5)),
  34. ],
  35. ),
  36. );
  37. }
  38. Widget content(BuildContext context, MapWatchService map, FieldControlController c){
  39. return Row(
  40. children: [
  41. Expanded(child: Column(
  42. children: [
  43. Expanded(child: ViewMapStack(plug: map.plugMap, children: [
  44. ViewPlugLoading(map.plugMap),
  45. ViewMapImage(map.plugMap),
  46. ViewMapTouch(map.plugMap)
  47. ])),
  48. _MsgView(),
  49. ],
  50. )),
  51. _ActiveInfoView()
  52. ],
  53. );
  54. }
  55. }
  56. class _ActiveInfoView extends GetView<FieldControlController>{
  57. @override
  58. Widget build(BuildContext context) {
  59. return Obx(() => Container(
  60. width: 370,
  61. height: double.infinity,
  62. color: Colors.white,
  63. child: ListView(
  64. children: controller.activeList.map((element) => activeView(element)).toList(),
  65. ),
  66. )) ;
  67. }
  68. Widget activeView(ActiveInfo info){
  69. return Container(
  70. decoration: BoxDecoration(color: const Color(0xffe0e0e0), borderRadius: BorderRadius.circular(5)),
  71. margin: const EdgeInsets.fromLTRB(9, 12, 9, 12),
  72. padding: const EdgeInsets.all(9),
  73. child: Column(
  74. children: [
  75. Row(children: [
  76. Text('${info.name} (${info.userList.length}人)'),
  77. ]),
  78. ],
  79. ),
  80. );
  81. }
  82. }
  83. class _MsgView extends GetView<FieldControlController>{
  84. @override
  85. Widget build(BuildContext context) {
  86. return Container();
  87. }
  88. }