|
@@ -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() {
|