feat(android): add attachment boxing FJ- scan and submit
Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -7,6 +7,7 @@ import 'package:flutter/services.dart';
|
||||
import 'package:pad_scanner/services/scanner_service.dart';
|
||||
import 'package:pad_scanner/services/code_parser.dart';
|
||||
import 'package:pad_scanner/services/api_service.dart';
|
||||
import 'package:pad_scanner/services/app_config_service.dart';
|
||||
import 'package:pad_scanner/services/boxing_context.dart';
|
||||
import 'package:pad_scanner/services/feedback_service.dart';
|
||||
import 'package:pad_scanner/pages/boxing/boxing_api_actions.dart';
|
||||
@@ -16,6 +17,7 @@ import 'package:pad_scanner/pages/boxing/boxing_calculations.dart'
|
||||
as boxing_calculations;
|
||||
import 'package:pad_scanner/pages/boxing/boxing_models.dart';
|
||||
import 'package:pad_scanner/pages/boxing/boxing_status_presenter.dart';
|
||||
import 'package:pad_scanner/pages/boxing/dialogs/attachment_category_picker.dart';
|
||||
import 'package:pad_scanner/pages/boxing/dialogs/cross_paichan_dialog.dart';
|
||||
import 'package:pad_scanner/pages/boxing/widgets/boxing_shared_widgets.dart';
|
||||
import 'package:pad_scanner/pages/boxing/widgets/boxing_notice_banners.dart';
|
||||
@@ -107,6 +109,15 @@ class _BoxingPageState extends State<BoxingPage> with WidgetsBindingObserver {
|
||||
// 多码凑箱:已完成装箱时可跳转的箱号
|
||||
int? _completedJumpBoxNo;
|
||||
|
||||
// 附件装箱上下文
|
||||
int? _attachmentCategoryId; // currently selected attachment category
|
||||
// ignore: unused_field -- for display in status bar (consumed by later task)
|
||||
String? _attachmentCategoryName;
|
||||
// ignore: unused_field -- expected_qty for this category (later task)
|
||||
int? _attachmentExpectedQty;
|
||||
// ignore: unused_field -- already boxed qty for this category (later task)
|
||||
int? _attachmentBoxedQty;
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
@@ -148,6 +159,12 @@ class _BoxingPageState extends State<BoxingPage> with WidgetsBindingObserver {
|
||||
}
|
||||
}
|
||||
|
||||
Future<String?> _baseUrl() async {
|
||||
final url = await AppConfigService().getString('api_url');
|
||||
if (url == null || url.isEmpty) return null;
|
||||
return url;
|
||||
}
|
||||
|
||||
@override
|
||||
void didChangeAppLifecycleState(AppLifecycleState state) {
|
||||
if (state == AppLifecycleState.resumed) {
|
||||
@@ -244,6 +261,10 @@ class _BoxingPageState extends State<BoxingPage> with WidgetsBindingObserver {
|
||||
_isDuplicateBoxNo = false;
|
||||
_statusOverrideText = null;
|
||||
_statusOverrideDot = null;
|
||||
_attachmentCategoryId = null;
|
||||
_attachmentCategoryName = null;
|
||||
_attachmentExpectedQty = null;
|
||||
_attachmentBoxedQty = null;
|
||||
}
|
||||
|
||||
// === 重复箱号检测 ===
|
||||
|
||||
Reference in New Issue
Block a user