add FCS UI

This commit is contained in:
Thinzar Win
2020-12-01 19:02:21 +06:30
parent a2c9e41f55
commit 230e6f9e66
24 changed files with 2121 additions and 245 deletions

View File

@@ -1,7 +1,9 @@
import 'package:fcs/domain/constants.dart';
import 'package:fcs/domain/entities/carton.dart';
import 'package:fcs/domain/entities/cargo_type.dart';
import 'package:fcs/domain/entities/carton_size.dart';
import 'package:fcs/domain/entities/fcs_shipment.dart';
import 'package:fcs/domain/entities/market.dart';
import 'package:fcs/domain/entities/package.dart';
import 'package:fcs/domain/entities/user.dart';
import 'package:fcs/domain/vo/delivery_address.dart';
@@ -10,13 +12,17 @@ import 'package:fcs/localization/app_translations.dart';
import 'package:fcs/pages/carton/carton_cargo_table.dart';
import 'package:fcs/pages/carton/carton_mix_table.dart';
import 'package:fcs/pages/carton/carton_package_table.dart';
import 'package:fcs/pages/carton_size/carton_size_list.dart';
import 'package:fcs/pages/delivery_address/delivery_address_list.dart';
import 'package:fcs/pages/delivery_address/delivery_address_row.dart';
import 'package:fcs/pages/delivery_address/model/delivery_address_model.dart';
import 'package:fcs/pages/fcs_shipment/model/fcs_shipment_model.dart';
import 'package:fcs/pages/main/model/language_model.dart';
import 'package:fcs/pages/main/model/main_model.dart';
import 'package:fcs/pages/main/util.dart';
import 'package:fcs/pages/market/model/market_model.dart';
import 'package:fcs/pages/package/model/package_model.dart';
import 'package:fcs/pages/package/tracking_id_page.dart';
import 'package:fcs/pages/rates/model/shipment_rate_model.dart';
import 'package:fcs/pages/user_search/user_serach.dart';
import 'package:fcs/pages/widgets/bottom_up_page_route.dart';
@@ -38,8 +44,11 @@ import 'package:flutter_icons/flutter_icons.dart';
import 'package:provider/provider.dart';
import 'cargo_type_editor.dart';
import 'model/carton_model.dart';
import '../carton_size/model/carton_size_model.dart';
import 'widgets.dart';
const MANAGE_CARTONSIZE = "Manage Carton Size";
class CartonEditor extends StatefulWidget {
final Carton box;
CartonEditor({this.box});
@@ -367,7 +376,9 @@ class _CartonEditorState extends State<CartonEditor> {
LocalTitle(textKey: "box.shipment_info"),
_isNew ? fcsShipmentsBox : shipmentBox,
isSmallBag
? _isNew ? mixCartonsBox : mixCartonNumberBox
? _isNew
? mixCartonsBox
: mixCartonNumberBox
: Container(),
...(isMixBox
? [
@@ -402,12 +413,25 @@ class _CartonEditorState extends State<CartonEditor> {
isSmallBag
? Container()
: LocalTitle(textKey: "box.dimension"),
isSmallBag ? Container() : dimBox,
isSmallBag ? Container() : cartonSizeDropdown(),
// isSmallBag ? Container() : dimBox,
isSmallBag ? Container() : shipmentWeightBox,
LocalTitle(textKey: "box.delivery_address"),
DefaultDeliveryAddress(
deliveryAddress: _deliveryAddress,
labelKey: "box.delivery_address",
onTap: () async {
DeliveryAddress _address = await Navigator.push(
context,
CupertinoPageRoute(
builder: (context) => DeliveryAddressList(
isAdminCreation: true,
deliveryAddress: _deliveryAddress)));
if (_address == null) return;
setState(() {
_deliveryAddress = _address;
});
},
),
]),
_isNew ? createBtn : saveBtn,
@@ -421,6 +445,82 @@ class _CartonEditorState extends State<CartonEditor> {
);
}
String selectedCatonSize;
Widget cartonSizeDropdown() {
List<CartonSize> _cartonSizes =
Provider.of<CartonSizeModel>(context).cartonSizes;
List<String> cartonSizes = _cartonSizes.map((e) => e.name).toList();
cartonSizes.insert(0, MANAGE_CARTONSIZE);
return Padding(
padding: const EdgeInsets.only(top: 10, bottom: 10),
child: Row(
children: [
Padding(
padding: const EdgeInsets.only(left: 0, right: 10),
child: Icon(AntDesign.CodeSandbox, color: primaryColor),
),
Expanded(
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Padding(
padding: const EdgeInsets.only(right: 18.0),
child: LocalText(
context,
"box.carton_size",
color: Colors.black54,
fontSize: 16,
),
),
DropdownButton<String>(
isDense: true,
value: selectedCatonSize,
style: TextStyle(color: Colors.black, fontSize: 14),
underline: Container(
height: 1,
color: Colors.grey,
),
onChanged: (String newValue) {
setState(() {
if (newValue == MANAGE_CARTONSIZE) {
selectedCatonSize = null;
_manageCartonSize();
return;
}
selectedCatonSize = newValue;
});
},
isExpanded: true,
items:
cartonSizes.map<DropdownMenuItem<String>>((String value) {
return DropdownMenuItem<String>(
value: value,
child: Text(value ?? "",
overflow: TextOverflow.ellipsis,
style: TextStyle(
color: value == MANAGE_CARTONSIZE
? secondaryColor
: primaryColor)),
);
}).toList(),
),
],
),
),
],
),
);
}
_manageCartonSize() {
Navigator.push<Package>(
context,
CupertinoPageRoute(builder: (context) => CartonSizeList()),
);
}
List<Widget> getAddressList(
BuildContext context, List<DeliveryAddress> addresses) {
return addresses.asMap().entries.map((s) {