From f1c5342ae48bc0bbe1a0fbd9964e13f601ca3d38 Mon Sep 17 00:00:00 2001 From: tzw Date: Wed, 2 Apr 2025 15:02:49 +0630 Subject: [PATCH] update ui --- lib/domain/entities/package.dart | 16 +-- lib/helpers/theme.dart | 93 +++---------- lib/pages/carton/carton_size_widget.dart | 2 +- lib/pages/carton/carton_submit.dart | 7 +- .../mix_carton/carton_selection_result.dart | 15 ++- .../carton/mix_carton/mix_carton_submit.dart | 118 +++++++++++++---- lib/pages/carton/mix_carton/type_widget.dart | 3 +- .../delivery_address_editor.dart | 22 ++-- lib/pages/discount/discount_editor.dart | 17 ++- lib/pages/discount/discount_list.dart | 2 +- .../fcs_shipment/fcs_shipment_editor.dart | 28 ++-- lib/pages/fcs_shipment/fcs_shipment_info.dart | 8 ++ lib/pages/processing/package_editor.dart | 23 ++-- .../processing/processing_edit_editor.dart | 122 +++++++++--------- lib/pages/receiving/receiving_editor.dart | 12 +- lib/pages/widgets/local_dropdown.dart | 10 +- 16 files changed, 253 insertions(+), 245 deletions(-) diff --git a/lib/domain/entities/package.dart b/lib/domain/entities/package.dart index 577b724..75d137b 100644 --- a/lib/domain/entities/package.dart +++ b/lib/domain/entities/package.dart @@ -99,20 +99,20 @@ class Package { return Package( id: docID, - userID: map['user_id'], + userID: map['user_id'] ?? "", fcsID: map['fcs_id'], trackingID: map['tracking_id'], - market: map['market'], + market: map['market'] ?? "", userName: map['user_name'] ?? "", phoneNumber: map['phone_number'] ?? "", - remark: map['remark'], - desc: map['desc'], + remark: map['remark'] ?? "", + desc: map['desc'] ?? "", status: map['status'], - senderFCSID: map['sender_fcs_id'], + senderFCSID: map['sender_fcs_id'] ?? "", senderName: map['sender_name'] ?? "", senderPhoneNumber: map['sender_phone_number'] ?? "", - fcsShipmentId: map['fcs_shipment_id'], - fcsShipmentNumber: map['fcs_shipment_number'], + fcsShipmentId: map['fcs_shipment_id'] ?? "", + fcsShipmentNumber: map['fcs_shipment_number'] ?? "", deliveryAddress: da, currentStatusDate: currentStatusDate?.toDate().toLocal(), photoUrls: photoUrls, @@ -132,7 +132,7 @@ class Package { 'id': id, 'fcs_id': fcsID, 'sender_fcs_id': senderFCSID, - 'fcs_shipment_id' : fcsShipmentId, + 'fcs_shipment_id': fcsShipmentId, 'tracking_id': trackingID, 'market': market, "desc": desc, diff --git a/lib/helpers/theme.dart b/lib/helpers/theme.dart index b45a0c0..2aaa412 100644 --- a/lib/helpers/theme.dart +++ b/lib/helpers/theme.dart @@ -1,16 +1,16 @@ import 'package:flutter/material.dart'; -const primaryColor = const Color(0xff272262); -const secondaryColor = const Color(0xffff4400); -const thirdColor = const Color(0xf0ff4444); -const nextColor = const Color(0xFFfa833d); -const buttonColor = const Color(0xFFFFFFFF); -const buttonBkColor = const Color(0xFF268944); -const labelColor = const Color(0xFF757575); +const primaryColor = Color(0xff272262); +const secondaryColor = Color(0xffff4400); +const thirdColor = Color(0xf0ff4444); +const nextColor = Color(0xFFfa833d); +const buttonColor = Color(0xFFFFFFFF); +const buttonBkColor = Color(0xFF268944); +const labelColor = Color(0xFF757575); var dividerColor = Colors.grey.shade400; -const dangerColor = const Color(0xffff0606); +const dangerColor = Color(0xffff0606); const hintTextColor = Color.fromARGB(255, 187, 187, 187); -const linkColor= Color(0xff0000EE); +const linkColor = Color(0xff0000EE); const oddColor = Color(0xffECF1F7); const TextStyle labelStyle = @@ -21,16 +21,7 @@ const TextStyle labelStyleMM = TextStyle( fontWeight: FontWeight.w500, height: 1, fontFamily: "Myanmar3"); -const TextStyle subMenuStyle = - TextStyle(fontSize: 14, color: Colors.white, fontWeight: FontWeight.w500); -const TextStyle subMenuStyleMM = TextStyle( - fontSize: 14, - color: Colors.white, - fontWeight: FontWeight.w500, - fontFamily: "Myanmar3"); -const TextStyle welcomeLabelStyle = - TextStyle(fontSize: 23, color: primaryColor, fontWeight: FontWeight.w500); const TextStyle welcomeSubLabelStyle = TextStyle(fontSize: 18, color: primaryColor, fontWeight: FontWeight.w500); const TextStyle siginButtonStyle = @@ -42,9 +33,9 @@ TextStyle newLabelStyle( FontWeight? fontWeight, bool underline = false}) { return TextStyle( - fontSize: fontSize == null ? 14 : fontSize, - color: color == null ? secondaryColor : color, - fontWeight: fontWeight == null ? FontWeight.w500 : fontWeight, + fontSize: fontSize ?? 14, + color: color ?? secondaryColor, + fontWeight: fontWeight ?? FontWeight.w500, decoration: underline ? TextDecoration.underline : TextDecoration.none); } @@ -54,66 +45,14 @@ TextStyle newLabelStyleMM( FontWeight? fontWeight, bool underline = false}) { return TextStyle( - fontSize: fontSize == null ? 13 : fontSize, - color: color == null ? secondaryColor : color, - fontWeight: fontWeight == null ? FontWeight.w500 : fontWeight, + fontSize: fontSize ?? 13, + color: color ?? secondaryColor, + fontWeight: fontWeight ?? FontWeight.w500, decoration: underline ? TextDecoration.underline : TextDecoration.none, fontFamily: "Myanmar3"); } -const TextStyle photoLabelStyle = - TextStyle(color: Colors.black, fontSize: 13.0); -const TextStyle photoLabelStyleMM = - TextStyle(color: Colors.black, fontSize: 13.0, fontFamily: "Myanmar3"); -const TextStyle textStyle = - TextStyle(fontSize: 14, color: Colors.black87, fontWeight: FontWeight.w500); -const TextStyle textStyleOdd = TextStyle( - fontSize: 15, color: Colors.blueAccent, fontWeight: FontWeight.w500); -const TextStyle textStrikeStyle = TextStyle( - fontSize: 15, - color: Colors.black87, - fontWeight: FontWeight.w500, - decoration: TextDecoration.lineThrough, -); -const TextStyle textHighlightRedStyle = TextStyle( - fontSize: 18, - color: Colors.white, - fontWeight: FontWeight.w500, - backgroundColor: Colors.red, -); -const TextStyle textHighlightGreenStyle = TextStyle( - fontSize: 18, - color: Colors.white, - fontWeight: FontWeight.w500, - backgroundColor: Colors.green, -); -const TextStyle textHighlightBlueStyle = TextStyle( - fontSize: 18, - color: Colors.white, - fontWeight: FontWeight.w500, - backgroundColor: Colors.blue, -); +const TextStyle textStyle = TextStyle(fontSize: 14, color: Colors.black); const TextStyle subTitleStyle = TextStyle(fontSize: 12, color: Colors.black45, fontWeight: FontWeight.w500); - -final BoxDecoration tableRowOdd = BoxDecoration( - color: Color(0x1F000000), -); -final BoxDecoration tableRowEven = BoxDecoration( - color: Colors.white54, -); - -class LoginColors { - const LoginColors(); - - static const Color loginGradientStart = const Color(0xfff00a21); - static const Color loginGradientEnd = const Color(0xfff00a21); - - static const primaryGradient = const LinearGradient( - colors: const [loginGradientStart, loginGradientEnd], - stops: const [0.0, 1.0], - begin: Alignment.topCenter, - end: Alignment.bottomCenter, - ); -} diff --git a/lib/pages/carton/carton_size_widget.dart b/lib/pages/carton/carton_size_widget.dart index 0259522..ec46cf7 100644 --- a/lib/pages/carton/carton_size_widget.dart +++ b/lib/pages/carton/carton_size_widget.dart @@ -334,7 +334,7 @@ class _CartonSizeWidgetState extends State { isDense: true, value: _selectStandardSize, style: TextStyle(color: Colors.black, fontSize: 14), - underline: Container(height: 1, color: Colors.grey), + underline: Container(height: 1, color: isStandardSize? primaryColor: Colors.grey), onChanged: (newValue) { setState(() { if (newValue?.name == MANAGE_CARTONSIZE) { diff --git a/lib/pages/carton/carton_submit.dart b/lib/pages/carton/carton_submit.dart index d33f1ab..c454f62 100644 --- a/lib/pages/carton/carton_submit.dart +++ b/lib/pages/carton/carton_submit.dart @@ -451,8 +451,11 @@ class CartonSubmit extends StatelessWidget { // packages.isNotEmpty ? packagesBox : const SizedBox(), // const SizedBox(height: 10), cargoTypes.isNotEmpty ? cargosBox : const SizedBox(), - const SizedBox(height: 10), - surchareItems.isNotEmpty ? surChargeItemsBox : const SizedBox(), + surchareItems.isNotEmpty + ? Padding( + padding: EdgeInsets.only(top: 10), + child: surChargeItemsBox) + : const SizedBox(), const SizedBox(height: 20), ], ), diff --git a/lib/pages/carton/mix_carton/carton_selection_result.dart b/lib/pages/carton/mix_carton/carton_selection_result.dart index 6681949..a2a7749 100644 --- a/lib/pages/carton/mix_carton/carton_selection_result.dart +++ b/lib/pages/carton/mix_carton/carton_selection_result.dart @@ -4,6 +4,7 @@ import 'package:provider/provider.dart'; import '../../../domain/entities/carton.dart'; import '../../../helpers/theme.dart'; +import '../../main/util.dart'; import '../model/carton_selection_model.dart'; typedef OnAction = Future Function(); @@ -72,20 +73,20 @@ class CartonSelectionResult extends StatelessWidget { child: Row( children: [ Expanded( - child: new Padding( + child: Padding( padding: const EdgeInsets.symmetric( vertical: 8.0), - child: new Column( + child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ - new Text(carton.cartonNumber ?? "", - style: new TextStyle( + Text(carton.cartonNumber ?? "", + style: TextStyle( fontSize: 15.0, color: Colors.black)), - new Text( - "${carton.cartonWeight.toStringAsFixed(2)} lb", - style: new TextStyle( + Text( + "${twoDecimalFormatted(carton.cartonWeight)} lb", + style: TextStyle( fontSize: 15.0, color: Colors.grey), ), diff --git a/lib/pages/carton/mix_carton/mix_carton_submit.dart b/lib/pages/carton/mix_carton/mix_carton_submit.dart index 6da9ce5..776f64e 100644 --- a/lib/pages/carton/mix_carton/mix_carton_submit.dart +++ b/lib/pages/carton/mix_carton/mix_carton_submit.dart @@ -29,7 +29,7 @@ class MixCartonSubmit extends StatefulWidget { final OnCreateMixCarton? onCreate; final OnPrevious? onPrevious; const MixCartonSubmit( - {Key? key, + {super.key, this.onCreate, this.onPrevious, required this.shipment, @@ -39,8 +39,7 @@ class MixCartonSubmit extends StatefulWidget { this.length = 0, this.width = 0, this.height = 0, - this.isNew = true}) - : super(key: key); + this.isNew = true}); @override State createState() => _MixCartonSubmitState(); @@ -48,8 +47,8 @@ class MixCartonSubmit extends StatefulWidget { class _MixCartonSubmitState extends State { final NumberFormat numberFormatter = NumberFormat("#,###"); - Map _mapCargos = {}; - Map _mapSurchargeItems = {}; + final Map _mapCargos = {}; + final Map _mapSurchargeItems = {}; double totalWeight = 0; @override @@ -60,15 +59,15 @@ class _MixCartonSubmitState extends State { _init() { // get cargos by weight - List _cargoTypes = []; + List cargoTypes = []; for (var c in widget.cartons) { - _cargoTypes.addAll(c.cargoTypes); + cargoTypes.addAll(c.cargoTypes); } - _cargoTypes.sort((a, b) => a.name!.compareTo(b.name!)); + cargoTypes.sort((a, b) => a.name!.compareTo(b.name!)); - Map> _cargosByWeight = groupCargos(_cargoTypes); - _cargosByWeight.forEach((key, value) { + Map> cargosByWeight = groupCargos(cargoTypes); + cargosByWeight.forEach((key, value) { double total = value.fold(0, (sum, item) => sum + item.weight); _mapCargos[key] = total; }); @@ -77,17 +76,17 @@ class _MixCartonSubmitState extends State { // get surcharge items - List _surchargeItems = []; + List surchargeItems = []; for (var c in widget.cartons) { - _surchargeItems.addAll(c.surchareItems); + surchargeItems.addAll(c.surchareItems); } - _surchargeItems.sort((a, b) => a.name!.compareTo(b.name!)); + surchargeItems.sort((a, b) => a.name!.compareTo(b.name!)); - Map> _cargosByCustomDutyFee = - groupCargos(_surchargeItems); + Map> cargosByCustomDutyFee = + groupCargos(surchargeItems); - _cargosByCustomDutyFee.forEach((key, value) { + cargosByCustomDutyFee.forEach((key, value) { double total = value.fold(0, (sum, item) => sum + item.qty); _mapSurchargeItems[key] = total; }); @@ -99,8 +98,8 @@ class _MixCartonSubmitState extends State { Map> groupCargos(List cargos) { var groups = groupBy(cargos, (CargoType e) { - String? _categoryName = e.name; - return _categoryName; + String? categoryName = e.name; + return categoryName; }); return groups; @@ -220,22 +219,80 @@ class _MixCartonSubmitState extends State { ), ); }).toList()), - const SizedBox(height: 10), + // const SizedBox(height: 10), + // Column( + // crossAxisAlignment: CrossAxisAlignment.start, + // children: _mapSurchargeItems.entries.map((e) { + // return Padding( + // padding: const EdgeInsets.symmetric(vertical: 3), + // child: Row( + // mainAxisAlignment: MainAxisAlignment.spaceBetween, + // children: [ + // Text( + // e.key ?? "", + // style: TextStyle(color: labelColor, fontSize: 15), + // ), + // Text("${numberFormatter.format(e.value)} pc", + // style: + // TextStyle(color: labelColor, fontSize: 15)) + // ], + // ), + // ); + // }).toList()), + ], + ), + ), + ), + ]), + ); + + final surChargeItemsBox = Padding( + padding: const EdgeInsets.only(top: 10), + child: Column(crossAxisAlignment: CrossAxisAlignment.stretch, children: [ + Padding( + padding: const EdgeInsets.only(left: 5, bottom: 5, right: 8), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + LocalText(context, 'box.input_surcharge_item', + color: primaryColor, + fontSize: 16, + fontWeight: FontWeight.normal), + ], + ), + ), + Container( + decoration: BoxDecoration( + border: Border.all(color: primaryColor), + borderRadius: BorderRadius.circular(5), + ), + child: Padding( + padding: const EdgeInsets.all(8.0), + child: Column( + children: [ Column( crossAxisAlignment: CrossAxisAlignment.start, children: _mapSurchargeItems.entries.map((e) { return Padding( padding: const EdgeInsets.symmetric(vertical: 3), - child: Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, children: [ - Text( - e.key ?? "", - style: TextStyle(color: labelColor, fontSize: 15), + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Text( + e.key ?? "", + style: TextStyle( + color: Colors.black, fontSize: 15), + ), + Text( + "${removeTrailingZeros((e.value).toDouble())} pc", + textAlign: TextAlign.end, + style: TextStyle( + color: Colors.black, fontSize: 15)) + ], ), - Text("${numberFormatter.format(e.value)} pc", - style: - TextStyle(color: labelColor, fontSize: 15)) ], ), ); @@ -302,7 +359,12 @@ class _MixCartonSubmitState extends State { const SizedBox(height: 10), widget.cartons.isNotEmpty ? cartonsBox : const SizedBox(), const SizedBox(height: 10), - cargosBox, + _mapCargos.isNotEmpty ? cargosBox : const SizedBox(), + _mapSurchargeItems.isNotEmpty + ? Padding( + padding: EdgeInsets.only(top: 10), + child: surChargeItemsBox) + : const SizedBox(), const SizedBox(height: 20), ], ), diff --git a/lib/pages/carton/mix_carton/type_widget.dart b/lib/pages/carton/mix_carton/type_widget.dart index 34833e7..0fb650a 100644 --- a/lib/pages/carton/mix_carton/type_widget.dart +++ b/lib/pages/carton/mix_carton/type_widget.dart @@ -172,7 +172,8 @@ class _TypeWidgetState extends State { isDense: true, value: _selectStandardSize, style: TextStyle(color: Colors.black, fontSize: 14), - underline: Container(height: 1, color: Colors.grey), + underline: Container( + height: 1, color: isStandardSize ? primaryColor : Colors.grey), onChanged: (newValue) { setState(() { if (newValue?.name == MANAGE_CARTONSIZE) { diff --git a/lib/pages/delivery_address/delivery_address_editor.dart b/lib/pages/delivery_address/delivery_address_editor.dart index 147242f..f6c265d 100644 --- a/lib/pages/delivery_address/delivery_address_editor.dart +++ b/lib/pages/delivery_address/delivery_address_editor.dart @@ -1,3 +1,5 @@ +// ignore_for_file: use_build_context_synchronously + import 'package:fcs/domain/entities/user.dart'; import 'package:fcs/domain/vo/delivery_address.dart'; import 'package:fcs/helpers/theme.dart'; @@ -13,21 +15,21 @@ import 'package:provider/provider.dart'; class DeliveryAddressEditor extends StatefulWidget { final DeliveryAddress? deliveryAddress; final User? user; - DeliveryAddressEditor({this.deliveryAddress, this.user}); + const DeliveryAddressEditor({super.key, this.deliveryAddress, this.user}); @override _DeliveryAddressEditorState createState() => _DeliveryAddressEditorState(); } class _DeliveryAddressEditorState extends State { - TextEditingController _nameController = new TextEditingController(); - TextEditingController _address1Controller = new TextEditingController(); - TextEditingController _address2Controller = new TextEditingController(); - TextEditingController _cityController = new TextEditingController(); - TextEditingController _stateController = new TextEditingController(); - TextEditingController _phoneController = new TextEditingController(); + final TextEditingController _nameController = TextEditingController(); + final TextEditingController _address1Controller = TextEditingController(); + final TextEditingController _address2Controller = TextEditingController(); + final TextEditingController _cityController = TextEditingController(); + final TextEditingController _stateController = TextEditingController(); + final TextEditingController _phoneController = TextEditingController(); - DeliveryAddress _deliveryAddress = new DeliveryAddress(); + DeliveryAddress _deliveryAddress = DeliveryAddress(); bool _isLoading = false; bool _isNew = true; @@ -180,9 +182,9 @@ class _DeliveryAddressEditorState extends State { cityBox, SizedBox(height: 5), regionBox, - SizedBox(height: 5), + SizedBox(height: 20), _isNew ? createBtn : updateBtn, - SizedBox(height: 10) + SizedBox(height: 20) ]), ), ), diff --git a/lib/pages/discount/discount_editor.dart b/lib/pages/discount/discount_editor.dart index bf20e46..ce8b42f 100644 --- a/lib/pages/discount/discount_editor.dart +++ b/lib/pages/discount/discount_editor.dart @@ -15,17 +15,17 @@ import 'package:provider/provider.dart'; class DiscountEditor extends StatefulWidget { final Discount? discount; - const DiscountEditor({Key? key, this.discount}) : super(key: key); + const DiscountEditor({super.key, this.discount}); @override _DiscountEditorState createState() => _DiscountEditorState(); } class _DiscountEditorState extends State { bool _isLoading = false; - Discount _discount = new Discount(); - TextEditingController _codeController = new TextEditingController(); - TextEditingController _amountController = new TextEditingController(); - TextEditingController _statusController = new TextEditingController(); + Discount _discount = Discount(); + final TextEditingController _codeController = TextEditingController(); + final TextEditingController _amountController = TextEditingController(); + final TextEditingController _statusController = TextEditingController(); bool _isNew = false; String customerName = ''; @@ -51,7 +51,7 @@ class _DiscountEditorState extends State { Widget build(BuildContext context) { final codeBox = InputText( labelTextKey: 'discount.code', - iconData: FontAwesomeIcons.algolia, + iconData: Ionicons.code_slash, controller: _codeController, autovalidateMode: AutovalidateMode.onUserInteraction, validator: (value) { @@ -128,13 +128,12 @@ class _DiscountEditorState extends State { children: [ codeBox, amountBox, - SizedBox(height: 7), + SizedBox(height: 15), customerBox, - SizedBox(height: 7), widget.discount == null ? Container() : Container( - padding: EdgeInsets.only(top: 5), + padding: EdgeInsets.only(top: 10), child: statusBox, ), ], diff --git a/lib/pages/discount/discount_list.dart b/lib/pages/discount/discount_list.dart index 8d4ce9d..03f422a 100644 --- a/lib/pages/discount/discount_list.dart +++ b/lib/pages/discount/discount_list.dart @@ -64,7 +64,7 @@ class _DiscountListState extends State { Expanded( child: ListView.separated( separatorBuilder: (context, index) => - Divider(color: Colors.black, height: 1), + Divider(color: dividerColor, height: 1), controller: _controller, itemCount: discountModel.discounts.length, itemBuilder: (BuildContext context, int index) { diff --git a/lib/pages/fcs_shipment/fcs_shipment_editor.dart b/lib/pages/fcs_shipment/fcs_shipment_editor.dart index eb6fe2a..74ffc94 100644 --- a/lib/pages/fcs_shipment/fcs_shipment_editor.dart +++ b/lib/pages/fcs_shipment/fcs_shipment_editor.dart @@ -21,7 +21,7 @@ import '../main/util.dart'; class FcsShipmentEditor extends StatefulWidget { final FcsShipment? shipment; - FcsShipmentEditor({this.shipment}); + const FcsShipmentEditor({super.key, this.shipment}); @override _FcsShipmentEditorState createState() => _FcsShipmentEditorState(); @@ -29,14 +29,14 @@ class FcsShipmentEditor extends StatefulWidget { class _FcsShipmentEditorState extends State { final _formKey = GlobalKey(); - var dateFormatter = new DateFormat('dd MMM yyyy'); - TextEditingController _shipmentNumberController = new TextEditingController(); - TextEditingController _cutoffDateController = new TextEditingController(); - TextEditingController _etaDateController = new TextEditingController(); + var dateFormatter = DateFormat('dd MMM yyyy'); + final _shipmentNumberController = TextEditingController(); + final _cutoffDateController = TextEditingController(); + final _etaDateController = TextEditingController(); - TextEditingController _statusController = new TextEditingController(); + final _statusController = TextEditingController(); - FcsShipment _shipment = new FcsShipment(); + FcsShipment _shipment = FcsShipment(); bool _isLoading = false; ShipmentType? _currentShipmentType; ShipmentConsignee? _currentConsignee; @@ -52,11 +52,13 @@ class _FcsShipmentEditorState extends State { if (widget.shipment != null) { _shipment = widget.shipment!; _shipmentNumberController.text = _shipment.shipmentNumber ?? ""; - if (_shipment.cutoffDate != null) + if (_shipment.cutoffDate != null) { _cutoffDateController.text = dateFormatter.format(_shipment.cutoffDate!); - if (_shipment.etaDate != null) + } + if (_shipment.etaDate != null) { _etaDateController.text = dateFormatter.format(_shipment.etaDate!); + } _statusController.text = _shipment.status ?? ""; @@ -111,6 +113,7 @@ class _FcsShipmentEditorState extends State { final shipmentTypeBox = DropdownButtonFormField( value: _currentShipmentType == "" ? null : _currentShipmentType, + style: TextStyle(fontSize: 14, color: Colors.black), decoration: InputDecoration( contentPadding: EdgeInsets.zero, enabledBorder: @@ -125,7 +128,7 @@ class _FcsShipmentEditorState extends State { AppTranslations.of(context)!.text('FCSshipment.shipment_type'), icon: Icon(Ionicons.ios_airplane, color: primaryColor)), items: shipmentTypes - .map((e) => DropdownMenuItem(child: Text(e.name), value: e)) + .map((e) => DropdownMenuItem(value: e, child: Text(e.name))) .toList(), onChanged: (selected) => { setState(() { @@ -136,6 +139,7 @@ class _FcsShipmentEditorState extends State { final consigneeBox = DropdownButtonFormField( value: _currentConsignee == "" ? null : _currentConsignee, + style: TextStyle(fontSize: 14, color: Colors.black), decoration: InputDecoration( contentPadding: EdgeInsets.zero, enabledBorder: @@ -160,6 +164,7 @@ class _FcsShipmentEditorState extends State { final loadingPortBox = DropdownButtonFormField( value: _currentLoadingPort == "" ? null : _currentLoadingPort, + style: TextStyle(fontSize: 14, color: Colors.black), decoration: InputDecoration( contentPadding: EdgeInsets.zero, enabledBorder: @@ -185,6 +190,7 @@ class _FcsShipmentEditorState extends State { final destinationBox = DropdownButtonFormField( value: _currentDestination == "" ? null : _currentDestination, + style: TextStyle(fontSize: 14, color: Colors.black), decoration: InputDecoration( contentPadding: EdgeInsets.zero, enabledBorder: @@ -293,7 +299,7 @@ class _FcsShipmentEditorState extends State { destinationBox, SizedBox(height: 30), _isNew ? createBtn : updateBtn, - SizedBox(height: 15) + SizedBox(height: 30) ]), ), ), diff --git a/lib/pages/fcs_shipment/fcs_shipment_info.dart b/lib/pages/fcs_shipment/fcs_shipment_info.dart index e58ceda..6454610 100644 --- a/lib/pages/fcs_shipment/fcs_shipment_info.dart +++ b/lib/pages/fcs_shipment/fcs_shipment_info.dart @@ -1,3 +1,5 @@ +// ignore_for_file: use_build_context_synchronously + import 'package:fcs/constants.dart'; import 'package:fcs/domain/entities/fcs_shipment.dart'; import 'package:fcs/helpers/theme.dart'; @@ -248,6 +250,7 @@ class _FcsShipmentInfoState extends State { padding: const EdgeInsets.only(left: 12.0, right: 12), child: ListView(children: [ statusBox, + const SizedBox(height: 5), Row(mainAxisAlignment: MainAxisAlignment.end, children: [ Expanded( child: cutoffDateDBox, @@ -255,6 +258,7 @@ class _FcsShipmentInfoState extends State { ), Flexible(child: etaBox), ]), + const SizedBox(height: 5), Row( children: [ Expanded( @@ -264,9 +268,13 @@ class _FcsShipmentInfoState extends State { Flexible(child: packageBox) ], ), + const SizedBox(height: 5), shipTypeBox, + const SizedBox(height: 5), consigneeBox, + const SizedBox(height: 5), portBox, + const SizedBox(height: 5), destinationBox, const SizedBox(height: 30), _fcsShipment.status == fcs_shipment_pending_status diff --git a/lib/pages/processing/package_editor.dart b/lib/pages/processing/package_editor.dart index 1fbf55b..a24915e 100644 --- a/lib/pages/processing/package_editor.dart +++ b/lib/pages/processing/package_editor.dart @@ -147,19 +147,15 @@ class _PackageEditorState extends State { ), img, Divider(), - SizedBox( - height: 15, - ), + SizedBox(height: 15), marketDropdown(), + SizedBox(height: 5), descBox, + SizedBox(height: 5), remarkBox, - SizedBox( - height: 20, - ), + SizedBox(height: 20), selectBtn, - SizedBox( - height: 20, - ) + SizedBox(height: 20) ], ), ), @@ -179,7 +175,7 @@ class _PackageEditorState extends State { return Row( children: [ Padding( - padding: const EdgeInsets.only(left: 0, right: 10), + padding: const EdgeInsets.only(right: 15), child: Icon(Icons.store, color: primaryColor), ), Expanded( @@ -199,10 +195,7 @@ class _PackageEditorState extends State { isDense: true, value: selectedMarket, style: TextStyle(color: Colors.black, fontSize: 14), - underline: Container( - height: 1, - color: Colors.grey, - ), + underline: Container(height: 1, color: primaryColor), onChanged: (String? newValue) { setState(() { if (newValue == MANAGE_MARKET) { @@ -222,7 +215,7 @@ class _PackageEditorState extends State { style: TextStyle( color: value == MANAGE_MARKET ? secondaryColor - : primaryColor)), + : Colors.black)), ); }).toList(), ), diff --git a/lib/pages/processing/processing_edit_editor.dart b/lib/pages/processing/processing_edit_editor.dart index 2fbf055..3643da4 100644 --- a/lib/pages/processing/processing_edit_editor.dart +++ b/lib/pages/processing/processing_edit_editor.dart @@ -36,8 +36,8 @@ class ProcessingEditEditor extends StatefulWidget { class _ProcessingEditEditorState extends State { final DateFormat dateFormat = DateFormat("d MMM yyyy"); - TextEditingController _remarkCtl = TextEditingController(); - TextEditingController _descCtl = TextEditingController(); + final TextEditingController _remarkCtl = TextEditingController(); + final TextEditingController _descCtl = TextEditingController(); Package? _package; User? _consignee; @@ -72,9 +72,10 @@ class _ProcessingEditEditorState extends State { var fcsShipments = await context.read().getActiveFcsShipments(); _shipments = fcsShipments; - + var s = FcsShipment( - id: widget.package.fcsShipmentId, shipmentNumber: widget.package.fcsShipmentNumber); + id: widget.package.fcsShipmentId, + shipmentNumber: widget.package.fcsShipmentNumber); if (_shipments.contains(s)) { _shipment = s; @@ -183,10 +184,13 @@ class _ProcessingEditEditorState extends State { ), const SizedBox(height: 8), fcsShipmentsBox, + SizedBox(height: 10), marketDropdown(), + SizedBox(height: 5), descBox, + SizedBox(height: 5), remarkBox, - const SizedBox(height: 10), + const SizedBox(height: 15), img, SizedBox(height: 20), completeProcessingBtn, @@ -207,63 +211,57 @@ class _ProcessingEditEditorState extends State { markets.insert(0, selectedMarket); } - return Padding( - padding: const EdgeInsets.only(left: 5.0, right: 0, top: 10), - child: Row( - children: [ - Padding( - padding: const EdgeInsets.only(left: 0, right: 10), - child: Icon(Icons.store, color: primaryColor), - ), - Expanded( - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Padding( - padding: const EdgeInsets.only(right: 18.0), - child: LocalText( - context, - "processing.market", - color: Colors.black54, - fontSize: 16, - ), + return Row( + children: [ + Padding( + padding: const EdgeInsets.only(left: 0, right: 15), + child: Icon(Icons.store, color: primaryColor), + ), + Expanded( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Padding( + padding: const EdgeInsets.only(right: 18.0), + child: LocalText( + context, + "processing.market", + color: Colors.black54, + fontSize: 16, ), - DropdownButton( - isDense: true, - value: selectedMarket, - style: TextStyle(color: Colors.black, fontSize: 14), - underline: Container( - height: 1, - color: Colors.grey, - ), - onChanged: (String? newValue) { - setState(() { - if (newValue == MANAGE_MARKET) { - selectedMarket = null; - _manageMarket(); - return; - } - selectedMarket = newValue; - }); - }, - isExpanded: true, - items: markets.map>((String? value) { - return DropdownMenuItem( - value: value, - child: Text(value ?? "", - overflow: TextOverflow.ellipsis, - style: TextStyle( - color: value == MANAGE_MARKET - ? secondaryColor - : primaryColor)), - ); - }).toList(), - ), - ], - ), + ), + DropdownButton( + isDense: true, + value: selectedMarket, + style: TextStyle(color: Colors.black, fontSize: 14), + underline: Container(height: 1, color: primaryColor), + onChanged: (String? newValue) { + setState(() { + if (newValue == MANAGE_MARKET) { + selectedMarket = null; + _manageMarket(); + return; + } + selectedMarket = newValue; + }); + }, + isExpanded: true, + items: markets.map>((String? value) { + return DropdownMenuItem( + value: value, + child: Text(value ?? "", + overflow: TextOverflow.ellipsis, + style: TextStyle( + color: value == MANAGE_MARKET + ? secondaryColor + : Colors.black)), + ); + }).toList(), + ), + ], ), - ], - ), + ), + ], ); } @@ -293,7 +291,7 @@ class _ProcessingEditEditorState extends State { _package!.fcsShipmentId = _shipment?.id; await packageModel.updateProcessing(_package!, multiImgController.getAddedFile, multiImgController.getDeletedUrl); - Navigator.pop(context,true); + Navigator.pop(context, true); } catch (e) { showMsgDialog(context, "Error", e.toString()); } finally { @@ -311,7 +309,7 @@ class _ProcessingEditEditorState extends State { desc: _descCtl.text, remark: _remarkCtl.text, photoUrls: widget.package.photoUrls, - fcsShipmentId: _shipment?.id); + fcsShipmentId: _shipment?.id ?? ""); return widget.package.isChangedForEditProcessing(package) || multiImgController.getAddedFile.isNotEmpty || multiImgController.getDeletedUrl.isNotEmpty; diff --git a/lib/pages/receiving/receiving_editor.dart b/lib/pages/receiving/receiving_editor.dart index d3f4ec9..dc5661d 100644 --- a/lib/pages/receiving/receiving_editor.dart +++ b/lib/pages/receiving/receiving_editor.dart @@ -1,3 +1,5 @@ +// ignore_for_file: use_build_context_synchronously + import 'package:fcs/domain/entities/package.dart'; import 'package:fcs/domain/entities/user.dart'; import 'package:fcs/helpers/theme.dart'; @@ -27,9 +29,9 @@ class _ReceivingEditorState extends State { late bool _isNew; User? _consignee; final _receiveFormKey = GlobalKey(); - TextEditingController _trackingIDCtl = new TextEditingController(); - TextEditingController _remarkCtl = new TextEditingController(); - MultiImgController _multiImgController = MultiImgController(); + final _trackingIDCtl = TextEditingController(); + final _remarkCtl = TextEditingController(); + final _multiImgController = MultiImgController(); @override void initState() { @@ -156,9 +158,7 @@ class _ReceivingEditorState extends State { child: ListView( children: [ trackingIDBox, - SizedBox( - height: 10, - ), + SizedBox(height: 5), remarkBox, Divider(), img, diff --git a/lib/pages/widgets/local_dropdown.dart b/lib/pages/widgets/local_dropdown.dart index fd32834..c88ab90 100644 --- a/lib/pages/widgets/local_dropdown.dart +++ b/lib/pages/widgets/local_dropdown.dart @@ -12,14 +12,13 @@ class LocalDropdown extends StatelessWidget { final String? labelKey; const LocalDropdown( - {Key? key, + {super.key, this.callback, this.iconData, this.selectedValue, this.values, this.labelKey, - this.display}) - : super(key: key); + this.display}); @override Widget build(BuildContext context) { @@ -50,10 +49,7 @@ class LocalDropdown extends StatelessWidget { isDense: true, value: selectedValue, style: TextStyle(color: Colors.black, fontSize: 14), - underline: Container( - height: 1, - color: Colors.grey, - ), + underline: Container(height: 1, color: primaryColor), onChanged: (T? newValue) { callback!(newValue!); },