81 lines
2.3 KiB
Dart
81 lines
2.3 KiB
Dart
// ignore_for_file: invalid_use_of_protected_member
|
|
|
|
part of '../../registration_page.dart';
|
|
|
|
extension _RegistrationOverviewPart on _RegistrationPageState {
|
|
/// Find all scanned items that are already on shelf.
|
|
List<PaichaOverviewItem> _findOnShelfItemsInScanned() {
|
|
return registration_calculations.findOnShelfItemsInScanned(
|
|
overview: _overview,
|
|
zongpaiNos: _zongpaiNos,
|
|
);
|
|
}
|
|
|
|
/// Find all scanned items that are already transferred.
|
|
List<PaichaOverviewItem> _findTransferredItemsInScanned() {
|
|
return registration_calculations.findTransferredItemsInScanned(
|
|
overview: _overview,
|
|
zongpaiNos: _zongpaiNos,
|
|
);
|
|
}
|
|
|
|
Future<String?> _baseUrl() async {
|
|
final configService = AppConfigService();
|
|
final baseUrl = await configService.getString('api_url') ?? '';
|
|
if (baseUrl.isEmpty) {
|
|
return null;
|
|
}
|
|
return baseUrl;
|
|
}
|
|
|
|
Future<void> _loadOverview(String zongpaiNo, {bool force = false}) async {
|
|
if (!force && _overviewZongpaiNo == zongpaiNo && _overview != null) {
|
|
return;
|
|
}
|
|
final requestId = ++_overviewRequestId;
|
|
setState(() {
|
|
_overviewZongpaiNo = zongpaiNo;
|
|
_overviewLoading = true;
|
|
_overviewNotFound = false;
|
|
_overviewError = null;
|
|
});
|
|
|
|
final baseUrl = await _baseUrl();
|
|
if (!mounted || requestId != _overviewRequestId) return;
|
|
if (baseUrl == null) {
|
|
setState(() {
|
|
_overviewLoading = false;
|
|
_overviewError = '未配置 API 地址,请前往设置';
|
|
});
|
|
return;
|
|
}
|
|
|
|
final result = await _apiService.fetchPaichaOverview(
|
|
baseUrl: baseUrl,
|
|
zongpaiNo: zongpaiNo,
|
|
);
|
|
if (!mounted || requestId != _overviewRequestId) return;
|
|
|
|
setState(() {
|
|
_overviewLoading = false;
|
|
if (result.success) {
|
|
_overview = result;
|
|
_overviewNotFound = false;
|
|
_overviewError = null;
|
|
} else if (result.notFound) {
|
|
_overview = null;
|
|
_overviewNotFound = true;
|
|
_overviewError = null;
|
|
} else {
|
|
_overviewError = result.errorMessage ?? '加载失败,点击重试';
|
|
}
|
|
});
|
|
}
|
|
|
|
Future<void> _refreshCurrentOverview() async {
|
|
final zongpaiNo = _overviewZongpaiNo;
|
|
if (zongpaiNo == null) return;
|
|
await _loadOverview(zongpaiNo, force: true);
|
|
}
|
|
}
|