Pārlūkot izejas kodu

update(annotation): 修正注释无法撤销 #0009954 Review by melon

gavin.chen 2 gadi atpakaļ
vecāks
revīzija
88029f9f2a
1 mainītis faili ar 13 papildinājumiem un 6 dzēšanām
  1. 13 6
      lib/process/workspace/recorder.dart

+ 13 - 6
lib/process/workspace/recorder.dart

@@ -3,6 +3,7 @@ import 'package:fis_measure/interfaces/enums/operate.dart';
 import 'package:fis_measure/interfaces/process/items/item.dart';
 import 'package:fis_measure/interfaces/process/workspace/application.dart';
 import 'package:fis_measure/interfaces/process/workspace/recorder.dart';
+import 'package:get/get.dart';
 
 class MeasureRecorder implements IMeasureRecorder {
   int _lastId = 0;
@@ -39,14 +40,18 @@ class MeasureRecorder implements IMeasureRecorder {
 
   /// 撤销一次操作
   bool undoOnce() {
-    if (_lastId == 0) return false;
+    if (_records.isEmpty) {
+      return false;
+    }
     _finishLast();
     _cleanMeasureList();
-
     final result = _undoOnce();
     _checkReactive();
-    _decreaseId();
-    return result;
+    if (result == null) return false;
+    if (result.recordType == MeasureRecordType.measure) {
+      _decreaseId();
+    }
+    return true;
   }
 
   /// 清除所有记录
@@ -64,7 +69,7 @@ class MeasureRecorder implements IMeasureRecorder {
     _resetId();
   }
 
-  bool _undoOnce() {
+  _RecordModelBase? _undoOnce() {
     final record = _records.last;
     bool removed = false;
     if (record.recordType == MeasureRecordType.measure) {
@@ -75,8 +80,10 @@ class MeasureRecorder implements IMeasureRecorder {
     if (removed) {
       _records.removeLast();
       _checkResetId();
+      return record;
+    } else {
+      return null;
     }
-    return removed;
   }
 
   void _finishLast() {