From 5b814d065fb7bd122a62ae2fa7ce7d2977023e07 Mon Sep 17 00:00:00 2001 From: mmc <1556375442@qq.com> Date: Sat, 14 Mar 2026 20:05:42 +0800 Subject: [PATCH] =?UTF-8?q?tptrace=E7=9A=84mode=20=E7=BC=93=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../presentation/widgets/common/tracepoint.dart | 4 ++++ .../presentation/widgets/map/testmap_pages.dart | 17 ++++++++++++----- 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/lib/features/home/presentation/widgets/common/tracepoint.dart b/lib/features/home/presentation/widgets/common/tracepoint.dart index 77be8686..a7986387 100644 --- a/lib/features/home/presentation/widgets/common/tracepoint.dart +++ b/lib/features/home/presentation/widgets/common/tracepoint.dart @@ -215,6 +215,10 @@ class TracePoint { _mode = mode; } + TPMode getMode() { + return _mode; + } + /// 添加/更新轨迹点 void upsert(T point, [TPAction act = TPAction.UPDATE]) { switch (_mode) { diff --git a/lib/features/home/presentation/widgets/map/testmap_pages.dart b/lib/features/home/presentation/widgets/map/testmap_pages.dart index d8f2e1cf..1f6796c6 100644 --- a/lib/features/home/presentation/widgets/map/testmap_pages.dart +++ b/lib/features/home/presentation/widgets/map/testmap_pages.dart @@ -63,6 +63,7 @@ const String kSavedWorkMode = 'saved_work_mode'; const String kSavedWorkStatus = 'saved_work_status'; // 作业状态(idle/working/paused) const String kSavedIsStartWork = 'saved_is_start_work'; // 是否开始作业 const String kSavedIsStopWork = 'saved_is_stop_work'; // 是否点击过停止 +const String kSavedTPMode = "saved_tp_mode"; // 保持 PlotData 类不变 class PlotData { @@ -250,6 +251,10 @@ class _MapPageEnterpriseState extends State { if (workStatusStr != null) { _workStatus = WorkStatus.values.firstWhere((e) => e.toString() == workStatusStr, orElse: () => WorkStatus.idle); } + final modeStr = prefs.getString(kSavedTPMode); + if (modeStr != null) { + _traceManager.setMode(TPMode.values.firstWhere((e) => e.toString() == modeStr)); + } // 2. 恢复是否开始作业 isStartWork = prefs.getBool(kSavedIsStartWork) ?? false; @@ -293,11 +298,11 @@ class _MapPageEnterpriseState extends State { // 1. 恢复作业面板状态 _isWorkPanelOpen = prefs.getBool(kSavedIsWorkPanelOpen) ?? false; - // if (isStartWork && !isStopWork) { - // _isWorkPanelOpen = true; - // } else { - // _isWorkPanelOpen = false; - // } + // if (isStartWork && !isStopWork) { + // _isWorkPanelOpen = true; + // } else { + // _isWorkPanelOpen = false; + // } // 2. 恢复作业模式 workMode = prefs.getString(kSavedWorkMode) ?? "弓字模式"; @@ -376,6 +381,8 @@ class _MapPageEnterpriseState extends State { // 3. 保存是否点击过停止 prefs.setBool(kSavedIsStopWork, isStopWork); + // 保存当前模式到本地缓存 + prefs.setString(kSavedTPMode, _traceManager.getMode().toString()); // 4. 保存选中地块 if (_selectedPlot != null) {