feat(boxing): show work order numbers in boxing views
This commit is contained in:
@@ -19,10 +19,15 @@ class BoxingDetailPage extends StatelessWidget {
|
||||
children: [
|
||||
const Text('装箱详情'),
|
||||
const SizedBox(width: 12),
|
||||
Text(
|
||||
paichanNo,
|
||||
style:
|
||||
const TextStyle(fontSize: 14, fontWeight: FontWeight.normal),
|
||||
Expanded(
|
||||
child: Text(
|
||||
paichanNo,
|
||||
style: const TextStyle(
|
||||
fontSize: 14,
|
||||
fontWeight: FontWeight.normal,
|
||||
),
|
||||
overflow: TextOverflow.ellipsis,
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
@@ -77,11 +82,29 @@ class BoxingDetailPage extends StatelessWidget {
|
||||
return Padding(
|
||||
padding: const EdgeInsets.symmetric(vertical: 2),
|
||||
child: Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
children: [
|
||||
Text(item.zongpaiNo, style: const TextStyle(fontSize: 14)),
|
||||
Text('数量:${item.quantity}',
|
||||
style: const TextStyle(fontSize: 14)),
|
||||
Expanded(
|
||||
flex: 3,
|
||||
child: Text(
|
||||
item.zongpaiNo,
|
||||
style: const TextStyle(fontSize: 14),
|
||||
overflow: TextOverflow.ellipsis,
|
||||
),
|
||||
),
|
||||
const SizedBox(width: 8),
|
||||
Expanded(
|
||||
flex: 2,
|
||||
child: Text(
|
||||
item.workOrderNo ?? '--',
|
||||
style: const TextStyle(fontSize: 14),
|
||||
overflow: TextOverflow.ellipsis,
|
||||
),
|
||||
),
|
||||
const SizedBox(width: 8),
|
||||
Text(
|
||||
'数量:${item.quantity}',
|
||||
style: const TextStyle(fontSize: 14),
|
||||
),
|
||||
],
|
||||
),
|
||||
);
|
||||
|
||||
@@ -49,6 +49,7 @@ class _BoxingPageState extends State<BoxingPage> {
|
||||
|
||||
// 排产号信息(来自后端查询)
|
||||
String? _paichanNo;
|
||||
String? _workOrderNo;
|
||||
int? _erpQuantity;
|
||||
List<BoxDetailData> _existingBoxes = [];
|
||||
int _maxBoxNo = 0;
|
||||
@@ -129,6 +130,7 @@ class _BoxingPageState extends State<BoxingPage> {
|
||||
_phase = _Phase.waiting;
|
||||
_zongpaiNo = null;
|
||||
_paichanNo = null;
|
||||
_workOrderNo = null;
|
||||
_erpQuantity = null;
|
||||
_existingBoxes = [];
|
||||
_maxBoxNo = 0;
|
||||
@@ -222,6 +224,7 @@ class _BoxingPageState extends State<BoxingPage> {
|
||||
setState(() {
|
||||
_zongpaiNo = zongpai;
|
||||
_paichanNo = result.paichanNo;
|
||||
_workOrderNo = result.workOrderNo;
|
||||
_erpQuantity = result.quantity;
|
||||
_existingBoxes = result.existingBoxes;
|
||||
_maxBoxNo = result.maxBoxNo;
|
||||
@@ -363,7 +366,13 @@ class _BoxingPageState extends State<BoxingPage> {
|
||||
..add(
|
||||
BoxDetailData(
|
||||
boxNo: boxNo,
|
||||
items: [BoxItemData(zongpaiNo: _zongpaiNo!, quantity: quantity)],
|
||||
items: [
|
||||
BoxItemData(
|
||||
zongpaiNo: _zongpaiNo!,
|
||||
workOrderNo: _workOrderNo,
|
||||
quantity: quantity,
|
||||
),
|
||||
],
|
||||
),
|
||||
);
|
||||
_maxBoxNo = _maxBoxNo > boxNo ? _maxBoxNo : boxNo;
|
||||
@@ -658,27 +667,41 @@ class _BoxingPageState extends State<BoxingPage> {
|
||||
|
||||
Widget _buildInfoArea(bool isWaiting, ColorScheme colorScheme) {
|
||||
final grey = isWaiting;
|
||||
final paichanText = grey ? '--' : (_paichanNo ?? '--');
|
||||
final workOrderText = grey ? '--' : (_workOrderNo ?? '--');
|
||||
|
||||
return Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Text(
|
||||
'排产号:',
|
||||
style: TextStyle(
|
||||
fontSize: 13,
|
||||
color: grey ? Colors.grey : Colors.black54,
|
||||
),
|
||||
Row(
|
||||
children: [
|
||||
Expanded(
|
||||
child: Text(
|
||||
paichanText,
|
||||
style: TextStyle(
|
||||
fontSize: 20,
|
||||
fontWeight: FontWeight.w700,
|
||||
color: grey ? Colors.grey : Colors.black87,
|
||||
),
|
||||
overflow: TextOverflow.ellipsis,
|
||||
),
|
||||
),
|
||||
const SizedBox(width: 12),
|
||||
Expanded(
|
||||
child: Text(
|
||||
workOrderText,
|
||||
textAlign: TextAlign.right,
|
||||
style: TextStyle(
|
||||
fontSize: 18,
|
||||
fontWeight: FontWeight.w700,
|
||||
color: grey ? Colors.grey : Colors.black87,
|
||||
),
|
||||
overflow: TextOverflow.ellipsis,
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
const SizedBox(height: 2),
|
||||
Text(
|
||||
_paichanNo ?? '--',
|
||||
style: TextStyle(
|
||||
fontSize: 16,
|
||||
fontWeight: FontWeight.w600,
|
||||
color: grey ? Colors.grey : Colors.black87,
|
||||
),
|
||||
),
|
||||
const SizedBox(height: 8),
|
||||
const SizedBox(height: 10),
|
||||
|
||||
Row(
|
||||
children: [
|
||||
|
||||
@@ -33,13 +33,19 @@ class RegistrationResult {
|
||||
/// 箱号内单个总排号明细
|
||||
class BoxItemData {
|
||||
final String zongpaiNo;
|
||||
final String? workOrderNo;
|
||||
final int quantity;
|
||||
|
||||
BoxItemData({required this.zongpaiNo, required this.quantity});
|
||||
BoxItemData({
|
||||
required this.zongpaiNo,
|
||||
this.workOrderNo,
|
||||
required this.quantity,
|
||||
});
|
||||
|
||||
factory BoxItemData.fromJson(Map<String, dynamic> json) {
|
||||
return BoxItemData(
|
||||
zongpaiNo: json['zongpai_no'] as String,
|
||||
workOrderNo: json['work_order_no']?.toString(),
|
||||
quantity: json['quantity'] as int,
|
||||
);
|
||||
}
|
||||
@@ -68,6 +74,7 @@ class BoxInfoResult {
|
||||
final String? errorMessage;
|
||||
final String? zongpaiNo;
|
||||
final String? paichanNo;
|
||||
final String? workOrderNo;
|
||||
final int? quantity;
|
||||
final List<BoxDetailData> existingBoxes;
|
||||
final int maxBoxNo;
|
||||
@@ -78,6 +85,7 @@ class BoxInfoResult {
|
||||
this.errorMessage,
|
||||
this.zongpaiNo,
|
||||
this.paichanNo,
|
||||
this.workOrderNo,
|
||||
this.quantity,
|
||||
this.existingBoxes = const [],
|
||||
this.maxBoxNo = 0,
|
||||
@@ -94,6 +102,7 @@ class BoxInfoResult {
|
||||
success: true,
|
||||
zongpaiNo: json['zongpai_no'] as String?,
|
||||
paichanNo: json['paichan_no'] as String?,
|
||||
workOrderNo: json['work_order_no']?.toString(),
|
||||
quantity: json['quantity'] as int?,
|
||||
existingBoxes: boxes,
|
||||
maxBoxNo: json['max_box_no'] as int? ?? 0,
|
||||
|
||||
Reference in New Issue
Block a user