Recognize B-prefix location codes as temp storage shelves. Add purple color scheme, conflict detection for temp_stored status, and updated submit/dialog logic for temp storage target handling. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
59 lines
1.7 KiB
Dart
59 lines
1.7 KiB
Dart
// ignore_for_file: invalid_use_of_protected_member
|
|
|
|
part of '../../registration_page.dart';
|
|
|
|
extension _RegistrationStatusPart on _RegistrationPageState {
|
|
void _clearStatusOverride() {
|
|
_statusOverrideText = null;
|
|
_statusOverrideDot = null;
|
|
}
|
|
|
|
void _showStatusOverride(String text, StatusDotColor dot, Duration duration) {
|
|
setState(() {
|
|
_statusOverrideText = text;
|
|
_statusOverrideDot = dot;
|
|
});
|
|
Future.delayed(duration, () {
|
|
if (mounted) setState(() => _clearStatusOverride());
|
|
});
|
|
}
|
|
|
|
void _updateBaseStatus() {
|
|
if (_isSubmitting) {
|
|
_statusDot = StatusDotColor.orange;
|
|
_statusText = '正在提交…';
|
|
return;
|
|
}
|
|
if (_mode == RegistrationMode.multiCode &&
|
|
_locationCode != null &&
|
|
_zongpaiNos.isEmpty) {
|
|
_statusDot = StatusDotColor.blue;
|
|
_statusText = '多码上架模式,请扫描下一张执行卡';
|
|
return;
|
|
}
|
|
final hasZongpai = _zongpaiNos.isNotEmpty;
|
|
final hasLocation = _locationCode != null;
|
|
if (hasZongpai && hasLocation) {
|
|
_statusDot = StatusDotColor.blue;
|
|
_statusText = '请确认信息并提交';
|
|
} else if (hasZongpai) {
|
|
_statusDot = StatusDotColor.blue;
|
|
_statusText = '请扫描目标货位号';
|
|
} else if (hasLocation) {
|
|
_statusDot = StatusDotColor.blue;
|
|
_statusText = '请扫描执行卡';
|
|
} else {
|
|
_statusDot = StatusDotColor.blue;
|
|
_statusText = '等待扫描总排号或货位号…';
|
|
}
|
|
}
|
|
|
|
bool get _canSubmit =>
|
|
_zongpaiNos.isNotEmpty && _locationCode != null && !_isSubmitting;
|
|
|
|
bool get _isTransitTarget => isTransitTarget(_locationType, _locationCode);
|
|
|
|
bool get _isTempStorageTarget =>
|
|
isTempStorageTarget(_locationType, _locationCode);
|
|
}
|