diff --git a/.flutter-plugins-dependencies b/.flutter-plugins-dependencies index 2965e14..ef14601 100644 --- a/.flutter-plugins-dependencies +++ b/.flutter-plugins-dependencies @@ -1 +1 @@ -{"info":"This is a generated file; do not edit or check into version control.","plugins":{"ios":[{"name":"flutter_webrtc","path":"C:\\\\Users\\\\Administrator\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\flutter_webrtc-0.9.48+hotfix.1\\\\","native_build":true,"dependencies":[]},{"name":"open_settings","path":"C:\\\\Users\\\\Administrator\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\open_settings-2.0.2\\\\","native_build":true,"dependencies":[]},{"name":"path_provider_foundation","path":"C:\\\\Users\\\\Administrator\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\path_provider_foundation-2.4.0\\\\","shared_darwin_source":true,"native_build":true,"dependencies":[]},{"name":"permission_handler_apple","path":"C:\\\\Users\\\\Administrator\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\permission_handler_apple-9.4.5\\\\","native_build":true,"dependencies":[]},{"name":"quick_blue","path":"D:\\\\workspace\\\\pile_NAV_new\\\\plugins\\\\quick_blue\\\\","native_build":true,"dependencies":[]},{"name":"wifi_iot","path":"C:\\\\Users\\\\Administrator\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\wifi_iot-0.3.19+1\\\\","native_build":true,"dependencies":[]},{"name":"wifi_scan","path":"C:\\\\Users\\\\Administrator\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\wifi_scan-0.4.1+1\\\\","native_build":true,"dependencies":[]}],"android":[{"name":"flutter_webrtc","path":"C:\\\\Users\\\\Administrator\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\flutter_webrtc-0.9.48+hotfix.1\\\\","native_build":true,"dependencies":[]},{"name":"libserialport","path":"C:\\\\Users\\\\Administrator\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\git\\\\libserialport-d6d27ef7aaf89e4dfa026db0c50dd3053c546710\\\\","native_build":true,"dependencies":[]},{"name":"open_settings","path":"C:\\\\Users\\\\Administrator\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\open_settings-2.0.2\\\\","native_build":true,"dependencies":[]},{"name":"path_provider_android","path":"C:\\\\Users\\\\Administrator\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\path_provider_android-2.2.10\\\\","native_build":true,"dependencies":[]},{"name":"permission_handler_android","path":"C:\\\\Users\\\\Administrator\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\permission_handler_android-12.0.12\\\\","native_build":true,"dependencies":[]},{"name":"quick_blue","path":"D:\\\\workspace\\\\pile_NAV_new\\\\plugins\\\\quick_blue\\\\","native_build":true,"dependencies":[]},{"name":"wifi_iot","path":"C:\\\\Users\\\\Administrator\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\wifi_iot-0.3.19+1\\\\","native_build":true,"dependencies":[]},{"name":"wifi_scan","path":"C:\\\\Users\\\\Administrator\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\wifi_scan-0.4.1+1\\\\","native_build":true,"dependencies":[]}],"macos":[{"name":"flutter_webrtc","path":"C:\\\\Users\\\\Administrator\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\flutter_webrtc-0.9.48+hotfix.1\\\\","native_build":true,"dependencies":[]},{"name":"path_provider_foundation","path":"C:\\\\Users\\\\Administrator\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\path_provider_foundation-2.4.0\\\\","shared_darwin_source":true,"native_build":true,"dependencies":[]},{"name":"quick_blue","path":"D:\\\\workspace\\\\pile_NAV_new\\\\plugins\\\\quick_blue\\\\","native_build":true,"dependencies":[]}],"linux":[{"name":"flutter_webrtc","path":"C:\\\\Users\\\\Administrator\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\flutter_webrtc-0.9.48+hotfix.1\\\\","native_build":true,"dependencies":[]},{"name":"libserialport","path":"C:\\\\Users\\\\Administrator\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\git\\\\libserialport-d6d27ef7aaf89e4dfa026db0c50dd3053c546710\\\\","native_build":true,"dependencies":[]},{"name":"path_provider_linux","path":"C:\\\\Users\\\\Administrator\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\path_provider_linux-2.2.1\\\\","native_build":false,"dependencies":[]},{"name":"quick_blue","path":"D:\\\\workspace\\\\pile_NAV_new\\\\plugins\\\\quick_blue\\\\","native_build":false,"dependencies":[]}],"windows":[{"name":"flutter_webrtc","path":"C:\\\\Users\\\\Administrator\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\flutter_webrtc-0.9.48+hotfix.1\\\\","native_build":true,"dependencies":[]},{"name":"libserialport","path":"C:\\\\Users\\\\Administrator\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\git\\\\libserialport-d6d27ef7aaf89e4dfa026db0c50dd3053c546710\\\\","native_build":true,"dependencies":[]},{"name":"path_provider_windows","path":"C:\\\\Users\\\\Administrator\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\path_provider_windows-2.3.0\\\\","native_build":false,"dependencies":[]},{"name":"permission_handler_windows","path":"C:\\\\Users\\\\Administrator\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\permission_handler_windows-0.2.1\\\\","native_build":true,"dependencies":[]},{"name":"quick_blue","path":"D:\\\\workspace\\\\pile_NAV_new\\\\plugins\\\\quick_blue\\\\","native_build":true,"dependencies":[]}],"web":[{"name":"permission_handler_html","path":"C:\\\\Users\\\\Administrator\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\permission_handler_html-0.1.3+2\\\\","dependencies":[]}]},"dependencyGraph":[{"name":"flutter_webrtc","dependencies":["path_provider"]},{"name":"libserialport","dependencies":[]},{"name":"open_settings","dependencies":[]},{"name":"path_provider","dependencies":["path_provider_android","path_provider_foundation","path_provider_linux","path_provider_windows"]},{"name":"path_provider_android","dependencies":[]},{"name":"path_provider_foundation","dependencies":[]},{"name":"path_provider_linux","dependencies":[]},{"name":"path_provider_windows","dependencies":[]},{"name":"permission_handler","dependencies":["permission_handler_android","permission_handler_apple","permission_handler_html","permission_handler_windows"]},{"name":"permission_handler_android","dependencies":[]},{"name":"permission_handler_apple","dependencies":[]},{"name":"permission_handler_html","dependencies":[]},{"name":"permission_handler_windows","dependencies":[]},{"name":"quick_blue","dependencies":[]},{"name":"wifi_iot","dependencies":[]},{"name":"wifi_scan","dependencies":[]}],"date_created":"2024-09-04 15:48:54.758524","version":"3.24.0","swift_package_manager_enabled":false} \ No newline at end of file +{"info":"This is a generated file; do not edit or check into version control.","plugins":{"ios":[{"name":"flutter_webrtc","path":"C:\\\\Users\\\\Administrator\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\flutter_webrtc-0.9.48+hotfix.1\\\\","native_build":true,"dependencies":[]},{"name":"open_settings","path":"C:\\\\Users\\\\Administrator\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\open_settings-2.0.2\\\\","native_build":true,"dependencies":[]},{"name":"path_provider_foundation","path":"C:\\\\Users\\\\Administrator\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\path_provider_foundation-2.4.0\\\\","shared_darwin_source":true,"native_build":true,"dependencies":[]},{"name":"permission_handler_apple","path":"C:\\\\Users\\\\Administrator\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\permission_handler_apple-9.4.5\\\\","native_build":true,"dependencies":[]},{"name":"quick_blue","path":"D:\\\\workspace\\\\pile_NAV_new\\\\plugins\\\\quick_blue\\\\","native_build":true,"dependencies":[]},{"name":"wifi_iot","path":"C:\\\\Users\\\\Administrator\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\wifi_iot-0.3.19+1\\\\","native_build":true,"dependencies":[]},{"name":"wifi_scan","path":"C:\\\\Users\\\\Administrator\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\wifi_scan-0.4.1+1\\\\","native_build":true,"dependencies":[]}],"android":[{"name":"flutter_webrtc","path":"C:\\\\Users\\\\Administrator\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\flutter_webrtc-0.9.48+hotfix.1\\\\","native_build":true,"dependencies":[]},{"name":"libserialport","path":"C:\\\\Users\\\\Administrator\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\git\\\\libserialport-d6d27ef7aaf89e4dfa026db0c50dd3053c546710\\\\","native_build":true,"dependencies":[]},{"name":"open_settings","path":"C:\\\\Users\\\\Administrator\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\open_settings-2.0.2\\\\","native_build":true,"dependencies":[]},{"name":"path_provider_android","path":"C:\\\\Users\\\\Administrator\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\path_provider_android-2.2.10\\\\","native_build":true,"dependencies":[]},{"name":"permission_handler_android","path":"C:\\\\Users\\\\Administrator\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\permission_handler_android-12.0.12\\\\","native_build":true,"dependencies":[]},{"name":"quick_blue","path":"D:\\\\workspace\\\\pile_NAV_new\\\\plugins\\\\quick_blue\\\\","native_build":true,"dependencies":[]},{"name":"wifi_iot","path":"C:\\\\Users\\\\Administrator\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\wifi_iot-0.3.19+1\\\\","native_build":true,"dependencies":[]},{"name":"wifi_scan","path":"C:\\\\Users\\\\Administrator\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\wifi_scan-0.4.1+1\\\\","native_build":true,"dependencies":[]}],"macos":[{"name":"flutter_webrtc","path":"C:\\\\Users\\\\Administrator\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\flutter_webrtc-0.9.48+hotfix.1\\\\","native_build":true,"dependencies":[]},{"name":"path_provider_foundation","path":"C:\\\\Users\\\\Administrator\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\path_provider_foundation-2.4.0\\\\","shared_darwin_source":true,"native_build":true,"dependencies":[]},{"name":"quick_blue","path":"D:\\\\workspace\\\\pile_NAV_new\\\\plugins\\\\quick_blue\\\\","native_build":true,"dependencies":[]}],"linux":[{"name":"flutter_webrtc","path":"C:\\\\Users\\\\Administrator\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\flutter_webrtc-0.9.48+hotfix.1\\\\","native_build":true,"dependencies":[]},{"name":"libserialport","path":"C:\\\\Users\\\\Administrator\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\git\\\\libserialport-d6d27ef7aaf89e4dfa026db0c50dd3053c546710\\\\","native_build":true,"dependencies":[]},{"name":"path_provider_linux","path":"C:\\\\Users\\\\Administrator\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\path_provider_linux-2.2.1\\\\","native_build":false,"dependencies":[]},{"name":"quick_blue","path":"D:\\\\workspace\\\\pile_NAV_new\\\\plugins\\\\quick_blue\\\\","native_build":false,"dependencies":[]}],"windows":[{"name":"flutter_webrtc","path":"C:\\\\Users\\\\Administrator\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\flutter_webrtc-0.9.48+hotfix.1\\\\","native_build":true,"dependencies":[]},{"name":"libserialport","path":"C:\\\\Users\\\\Administrator\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\git\\\\libserialport-d6d27ef7aaf89e4dfa026db0c50dd3053c546710\\\\","native_build":true,"dependencies":[]},{"name":"path_provider_windows","path":"C:\\\\Users\\\\Administrator\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\path_provider_windows-2.3.0\\\\","native_build":false,"dependencies":[]},{"name":"permission_handler_windows","path":"C:\\\\Users\\\\Administrator\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\permission_handler_windows-0.2.1\\\\","native_build":true,"dependencies":[]},{"name":"quick_blue","path":"D:\\\\workspace\\\\pile_NAV_new\\\\plugins\\\\quick_blue\\\\","native_build":true,"dependencies":[]}],"web":[{"name":"permission_handler_html","path":"C:\\\\Users\\\\Administrator\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\permission_handler_html-0.1.3+2\\\\","dependencies":[]}]},"dependencyGraph":[{"name":"flutter_webrtc","dependencies":["path_provider"]},{"name":"libserialport","dependencies":[]},{"name":"open_settings","dependencies":[]},{"name":"path_provider","dependencies":["path_provider_android","path_provider_foundation","path_provider_linux","path_provider_windows"]},{"name":"path_provider_android","dependencies":[]},{"name":"path_provider_foundation","dependencies":[]},{"name":"path_provider_linux","dependencies":[]},{"name":"path_provider_windows","dependencies":[]},{"name":"permission_handler","dependencies":["permission_handler_android","permission_handler_apple","permission_handler_html","permission_handler_windows"]},{"name":"permission_handler_android","dependencies":[]},{"name":"permission_handler_apple","dependencies":[]},{"name":"permission_handler_html","dependencies":[]},{"name":"permission_handler_windows","dependencies":[]},{"name":"quick_blue","dependencies":[]},{"name":"wifi_iot","dependencies":[]},{"name":"wifi_scan","dependencies":[]}],"date_created":"2024-09-05 12:00:53.082263","version":"3.24.0","swift_package_manager_enabled":false} \ No newline at end of file diff --git a/lib/controllers/appcontroller.dart b/lib/controllers/appcontroller.dart index 1a58bdf..7e65b25 100644 --- a/lib/controllers/appcontroller.dart +++ b/lib/controllers/appcontroller.dart @@ -8,7 +8,7 @@ class AppController extends GetxController { @override void onInit() { super.onInit(); - // 获取 AnotherController 的实例 + final mapcontroller = Get.find<ScenceMapController>(); // 绑定 currentIndex diff --git a/lib/main.dart b/lib/main.dart index ce267fe..28ab9c4 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -11,7 +11,7 @@ import 'appbar.dart'; import 'pages/aim_point/aimpointController.dart'; import 'pages/history/history_record.dart'; import 'pages/pass_track/view.dart'; -import 'pages/pile/pileNav/view.dart'; +import 'pages/task/pile/pileNav/view.dart'; // import 'pages/pile/rightDra/pileGenerate.dart'; import 'pages/real/index.dart'; import 'pages/setting/child_pages/XyChange/connect.dart'; diff --git a/lib/pages/pass_track/view.dart b/lib/pages/pass_track/view.dart index 825da68..6febc2e 100644 --- a/lib/pages/pass_track/view.dart +++ b/lib/pages/pass_track/view.dart @@ -1,6 +1,7 @@ //字体 import 'package:bottom_picker/resources/arrays.dart'; import 'package:cpnav/controllers/gnss_Controller.dart'; +import 'package:cpnav/main.dart'; import 'package:cpnav/pages/aim_point/aimpoint_page.dart'; import 'package:flutter/material.dart'; import 'package:flutter/rendering.dart'; @@ -104,7 +105,9 @@ class _PasstrackState extends State<PassTrack> { onUpdate: (Offset center, double scale, double rotation) { print("center:$center scale:$scale rotation:$rotation"); }, - forGroundPainter: BorderPainter(controller), + forGroundPainter: appcontroller.currentIndex.value == 1 + ? BorderPainter(controller) + : null, onUpdatePilePoint: (RecordEntity? selectedPilePoint, double scale, double rotation) { print( diff --git a/lib/pages/pile/pileGenerateCard/pileGenerController.dart b/lib/pages/task/pile/pileGenerateCard/pileGenerController.dart similarity index 100% rename from lib/pages/pile/pileGenerateCard/pileGenerController.dart rename to lib/pages/task/pile/pileGenerateCard/pileGenerController.dart diff --git a/lib/pages/pile/pileGenerateCard/pileGenerate.dart b/lib/pages/task/pile/pileGenerateCard/pileGenerate.dart similarity index 92% rename from lib/pages/pile/pileGenerateCard/pileGenerate.dart rename to lib/pages/task/pile/pileGenerateCard/pileGenerate.dart index 5120aa8..bcd388a 100644 --- a/lib/pages/pile/pileGenerateCard/pileGenerate.dart +++ b/lib/pages/task/pile/pileGenerateCard/pileGenerate.dart @@ -6,13 +6,16 @@ import 'package:get/get.dart'; import 'package:scence_map/controllers/controller.dart'; import 'package:scence_map/controllers/plumController.dart'; -import '../../../service/pile/device_type.dart'; -import '../../../service/pile/input.dart'; -import '../../../service/pile/public_widget.dart'; +import '../../../../service/pile/device_type.dart'; +import '../../../../service/pile/input.dart'; +import '../../../../service/pile/public_widget.dart'; +import '../../task_page.dart'; +import '../../taskcontroller.dart'; import 'pileGenerController.dart'; final ScenceMapController mapController = Get.find<ScenceMapController>(); final PlumDataController controller = Get.find<PlumDataController>(); +final TaskController taskcontroller = Get.put(TaskController()); class PileGenerate extends StatefulWidget { const PileGenerate({super.key}); @@ -22,6 +25,14 @@ class PileGenerate extends StatefulWidget { } class _PileGenerateState extends State<PileGenerate> { + late StepDialogManager _showStepDialog; + + @override + void initState() { + super.initState(); + _showStepDialog = StepDialogManager(context); + } + @override Widget build(BuildContext context) { double titleTextWidth = 90; @@ -90,6 +101,11 @@ class _PileGenerateState extends State<PileGenerate> { controller.checkValue.value = "checkPile", controller.isDirect.value = false, pilecontroller.isPileCardVisible.value = false, + if (!taskcontroller.isDialogShown[1]) + { + _showStepDialog.showStepDialog(1), + taskcontroller.isDialogShown[1] = true + } }), const SizedBox( width: 10, @@ -103,6 +119,11 @@ class _PileGenerateState extends State<PileGenerate> { controller.centerXY.value = Offset(centerPointX, centerPointY), pilecontroller.isPileCardVisible.value = false, + if (!taskcontroller.isDialogShown[3]) + { + _showStepDialog.showStepDialog(3), + taskcontroller.isDialogShown[3] = true + } }), ], ), @@ -227,6 +248,7 @@ class _PileGenerateState extends State<PileGenerate> { id: i + 1, radius: 0.3); mapController.pilePoints.add(pilePoint); + } controller.isGenerate.value = false; controller.isDirect.value = false; diff --git a/lib/pages/pile/pileGenerateCard/pilePointTable.dart b/lib/pages/task/pile/pileGenerateCard/pilePointTable.dart similarity index 100% rename from lib/pages/pile/pileGenerateCard/pilePointTable.dart rename to lib/pages/task/pile/pileGenerateCard/pilePointTable.dart diff --git a/lib/pages/pile/pileNav/draw_pile.dart b/lib/pages/task/pile/pileNav/draw_pile.dart similarity index 100% rename from lib/pages/pile/pileNav/draw_pile.dart rename to lib/pages/task/pile/pileNav/draw_pile.dart diff --git a/lib/pages/pile/pileNav/view.dart b/lib/pages/task/pile/pileNav/view.dart similarity index 93% rename from lib/pages/pile/pileNav/view.dart rename to lib/pages/task/pile/pileNav/view.dart index 17f6335..be1c4f7 100644 --- a/lib/pages/pile/pileNav/view.dart +++ b/lib/pages/task/pile/pileNav/view.dart @@ -8,12 +8,15 @@ import 'package:scence_map/record_entity.dart'; import 'package:scence_map/scence_map.dart'; import 'package:get/get.dart'; -import '../../../models/pilePoint/hyrecorditem.dart'; -import '../../pass_track/view.dart'; -import '../../task/task_page.dart'; +import '../../../../models/pilePoint/hyrecorditem.dart'; +import '../../../pass_track/view.dart'; +import '../../task_page.dart'; +import '../../taskcontroller.dart'; import '../pileGenerateCard/pileGenerate.dart'; import 'draw_pile.dart'; +final TaskController taskcontroller = Get.put(TaskController()); + class RealView extends StatefulWidget { const RealView({super.key}); @@ -25,6 +28,7 @@ class _RealViewState extends State<RealView> { final ScenceMapController scenceMapController = Get.put(ScenceMapController()); final controller = Get.find<PlumDataController>(); + late StepDialogManager _showStepDialog; @override void dispose() { super.dispose(); @@ -34,7 +38,7 @@ class _RealViewState extends State<RealView> { @override void initState() { super.initState(); - // scenceMapController.disableMove.value = false; + _showStepDialog = StepDialogManager(context); scenceMapController.update(); isInit = true; } @@ -56,7 +60,7 @@ class _RealViewState extends State<RealView> { RecordEntity? checkPoint = scenceMapController.pointInfo(controller.centerXY.value); - + if (checkPoint != null) { controller.isPileId.value = true; // controller.checkName.value = checkPoint.tpId.toString(); @@ -190,6 +194,11 @@ class _RealViewState extends State<RealView> { onPressed: () { pilecontroller.isRealViewCardVisible.value = true; controller.isDirect.value = true; + if (!taskcontroller.isDialogShown[3]) { + _showStepDialog.showStepDialog(3); + + taskcontroller.isDialogShown[3] = true; + } }, ), )); diff --git a/lib/pages/task/task_page.dart b/lib/pages/task/task_page.dart index ad1e9c4..7c60fa2 100644 --- a/lib/pages/task/task_page.dart +++ b/lib/pages/task/task_page.dart @@ -1,5 +1,5 @@ import 'package:cpnav/main.dart'; -import 'package:cpnav/pages/pile/pileGenerateCard/pileGenerate.dart'; +import 'package:cpnav/pages/task/pile/pileGenerateCard/pileGenerate.dart'; import 'package:flutter/material.dart'; import 'package:get/get.dart'; import 'package:get/get_connect/http/src/utils/utils.dart'; @@ -9,8 +9,9 @@ import 'package:scence_map/scence_map.dart'; import '../aim_point/aimpoint_page.dart'; import '../pass_track/controller.dart'; import '../pass_track/view.dart'; -import '../pile/pileGenerateCard/pilePointTable.dart'; -import '../pile/pileNav/view.dart'; +import 'pile/pileGenerateCard/pilePointTable.dart'; +import 'pile/pileNav/view.dart'; +import 'taskcontroller.dart'; final ScenceMapController mapcontroller = Get.put(ScenceMapController()); @@ -105,8 +106,23 @@ class TaskManagePage extends StatelessWidget { } final controller = Get.put(PassTrackController("TEST", "pile_cm")); +final TaskController taskcontroller = Get.put(TaskController()); + +// class TaskPage extends StatelessWidget { +class TaskPage extends StatefulWidget { + @override + _TaskPageState createState() => _TaskPageState(); +} + +class _TaskPageState extends State<TaskPage> { + late StepDialogManager _showStepDialog; + + @override + void initState() { + super.initState(); + _showStepDialog = StepDialogManager(context); + } -class TaskPage extends StatelessWidget { @override Widget build(BuildContext context) { final size = MediaQuery.of(context).size; @@ -123,7 +139,71 @@ class TaskPage extends StatelessWidget { onUpdate: (updatedPilePoints) { // 这里可以处理更新后的桩点列表 print("生成桩点$updatedPilePoints,"); - mapController.recordList.add(updatedPilePoints as RecordEntity); + updatedPilePoints.forEach((updatedPilePoint) { + // 查找 recordList 中对应的 RecordEntity + RecordEntity? recordEntity = + mapController.recordList.firstWhere( + (record) => record.id == updatedPilePoint.id, + orElse: () => RecordEntity( + id: -1, // 使用一个无效的 id 表示未找到 + tid: 0, + startTime: DateTime.now(), + endTime: DateTime.now(), + pileId: 0, + name: '', + times: 0, + lat: 0.0, + lng: 0.0, + x: 0.0, + y: 0.0, + h: 0.0, + totalFlow: 0.0, + titlXavg: 0.0, + titlYavg: 0.0, + current1Avg: 0.0, + current2Avg: 0.0, + quality: 0, + reason: '', + remark: '', + depth: 0, + speed: 0.0, + ), + ); + + if (recordEntity.id != -1) { + // 更新 RecordEntity 的属性 + recordEntity.x = updatedPilePoint.x; + recordEntity.y = updatedPilePoint.y; + // 其他属性的更新 + } else { + // 如果找不到对应的 RecordEntity,则添加新的 + recordEntity = RecordEntity( + id: updatedPilePoint.id, + tid: 0, + startTime: DateTime.now(), + endTime: DateTime.now(), + pileId: 0, + name: '', + times: 0, + lat: 0.0, + lng: 0.0, + x: updatedPilePoint.x, + y: updatedPilePoint.y, + h: 0.0, + totalFlow: 0.0, + titlXavg: 0.0, + titlYavg: 0.0, + current1Avg: 0.0, + current2Avg: 0.0, + quality: 0, + reason: '', + remark: '', + depth: 0, + speed: 0.0, + ); + mapController.recordList.add(recordEntity); + } + }); }, ), ), @@ -145,18 +225,6 @@ class TaskPage extends StatelessWidget { ), onTap: () => Scaffold.of(context).openEndDrawer(), ), - - // Navigator.push( - // context, - // MaterialPageRoute( - // builder: (context) => PilePointTable( - // pilePoints: mapcontroller.pilePoints, - // onUpdate: (updatedPilePoints) { - // // 这里可以处理更新后的桩点列表 - // print("生成桩点$updatedPilePoints,"); - // }, - // ), - // )), ), ), ), @@ -164,17 +232,23 @@ class TaskPage extends StatelessWidget { UnconstrainedBox( child: SizedBox( height: 30, - child: Obx( - () => InkWell( - child: Icon( + child: InkWell( + child: Obx( + () => Icon( Icons.settings_outlined, size: 35, color: appcontroller.isDarkMode.value ? Colors.white70 : const Color.fromARGB(200, 29, 28, 28), ), - onTap: () => pilecontroller.isPileCardVisible.value = true, ), + onTap: () { + pilecontroller.isPileCardVisible.value = true; + if (!taskcontroller.isDialogShown[0]) { + _showStepDialog.showStepDialog(0); + taskcontroller.isDialogShown[0] = true; + } + }, ), ), ), @@ -187,7 +261,9 @@ class TaskPage extends StatelessWidget { onUpdate: (Offset center, double scale, double rotation) { print("center:$center scale:$scale rotation:$rotation"); }, - forGroundPainter: BorderPainter(controller), + forGroundPainter: appcontroller.currentIndex.value == 1 + ? BorderPainter(controller) + : null, onUpdatePilePoint: (RecordEntity? selectedPilePoint, double scale, double rotation) { print( @@ -200,3 +276,40 @@ class TaskPage extends StatelessWidget { )); } } + +//对话框 +class StepDialogManager { + final BuildContext context; + final List<String> _stepTexts = [ + '点击屏幕即可确定桩点中心。', + '这是步骤 2 的提示对话框。', + '这是步骤 3 的提示对话框。', + '点击方向设置按钮和输入宽度值可设置桩点范围。', + '手指在屏幕上拖动可确定桩点范围' + ]; + + StepDialogManager(this.context); + + void showStepDialog(int step) { + showDialog( + context: context, + builder: (BuildContext context) { + return AlertDialog( + title: Text('步骤提示'), + content: Text(_stepTexts[step]), + actions: <Widget>[ + TextButton( + child: Text('确定'), + onPressed: () { + Navigator.of(context).pop(); + for (int i = 0; i < taskcontroller.isDialogShown.length; i++) { + taskcontroller.isDialogShown[i] = false; + } + }, + ), + ], + ); + }, + ); + } +} diff --git a/lib/pages/task/taskcontroller.dart b/lib/pages/task/taskcontroller.dart new file mode 100644 index 0000000..4a13b94 --- /dev/null +++ b/lib/pages/task/taskcontroller.dart @@ -0,0 +1,5 @@ +import 'package:get/get.dart'; + +class TaskController extends GetxController { + List<bool> isDialogShown = [false, false, false, false, false].obs; +}