Merge branch 'master' of tzw/fcs into master
This commit is contained in:
@@ -28,6 +28,7 @@ class _CartonListState extends State<CartonList> {
|
||||
bool _isLoading = false;
|
||||
List<FcsShipment> _shipments = [];
|
||||
FcsShipment? _selectedShipment;
|
||||
bool _down = true;
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
@@ -119,6 +120,20 @@ class _CartonListState extends State<CartonList> {
|
||||
backgroundColor: primaryColor,
|
||||
),
|
||||
body: Column(
|
||||
children: [
|
||||
AnimatedSwitcher(
|
||||
duration: const Duration(milliseconds: 300),
|
||||
transitionBuilder: (Widget child, Animation<double> animation) =>
|
||||
FadeTransition(
|
||||
opacity: animation,
|
||||
child: SizeTransition(
|
||||
child: child,
|
||||
sizeFactor: animation,
|
||||
axis: Axis.vertical,
|
||||
),
|
||||
),
|
||||
child: _down
|
||||
? Column(
|
||||
children: [
|
||||
shipmentFilterBox,
|
||||
Wrap(
|
||||
@@ -135,24 +150,32 @@ class _CartonListState extends State<CartonList> {
|
||||
children: [
|
||||
const Text("Consignee: ",
|
||||
style: TextStyle(
|
||||
fontSize: 12, color: Colors.grey)),
|
||||
fontSize: 12,
|
||||
color: Colors.grey)),
|
||||
Text(
|
||||
cartonModel.filterByConsingee!.name ??
|
||||
cartonModel
|
||||
.filterByConsingee!
|
||||
.name ??
|
||||
"",
|
||||
style: const TextStyle(
|
||||
fontSize: 12, color: Colors.black)),
|
||||
fontSize: 12,
|
||||
color: Colors.black)),
|
||||
const SizedBox(width: 3),
|
||||
Text(
|
||||
cartonModel.filterByConsingee!.fcsID ??
|
||||
cartonModel
|
||||
.filterByConsingee!
|
||||
.fcsID ??
|
||||
"",
|
||||
style: const TextStyle(
|
||||
fontSize: 12, color: labelColor)),
|
||||
fontSize: 12,
|
||||
color: labelColor)),
|
||||
],
|
||||
)
|
||||
],
|
||||
),
|
||||
Padding(
|
||||
padding: const EdgeInsets.only(left: 5),
|
||||
padding:
|
||||
const EdgeInsets.only(left: 5),
|
||||
child: InkResponse(
|
||||
radius: 30,
|
||||
onTap: () {
|
||||
@@ -160,8 +183,10 @@ class _CartonListState extends State<CartonList> {
|
||||
.read<CartonModel>()
|
||||
.clearFilterConsignee();
|
||||
},
|
||||
child: const Icon(AntDesign.closecircleo,
|
||||
size: 20, color: dangerColor),
|
||||
child: const Icon(
|
||||
AntDesign.closecircleo,
|
||||
size: 20,
|
||||
color: dangerColor),
|
||||
),
|
||||
)
|
||||
],
|
||||
@@ -179,21 +204,30 @@ class _CartonListState extends State<CartonList> {
|
||||
children: [
|
||||
const Text("Sender: ",
|
||||
style: TextStyle(
|
||||
fontSize: 12, color: Colors.grey)),
|
||||
Text(cartonModel.filterBySender!.name ?? "",
|
||||
fontSize: 12,
|
||||
color: Colors.grey)),
|
||||
Text(
|
||||
cartonModel.filterBySender!
|
||||
.name ??
|
||||
"",
|
||||
style: const TextStyle(
|
||||
fontSize: 12, color: Colors.black)),
|
||||
fontSize: 12,
|
||||
color: Colors.black)),
|
||||
const SizedBox(width: 3),
|
||||
Text(
|
||||
cartonModel.filterBySender!.fcsID ?? "",
|
||||
cartonModel.filterBySender!
|
||||
.fcsID ??
|
||||
"",
|
||||
style: const TextStyle(
|
||||
fontSize: 12, color: labelColor)),
|
||||
fontSize: 12,
|
||||
color: labelColor)),
|
||||
],
|
||||
)
|
||||
],
|
||||
),
|
||||
Padding(
|
||||
padding: const EdgeInsets.only(left: 5),
|
||||
padding:
|
||||
const EdgeInsets.only(left: 5),
|
||||
child: InkResponse(
|
||||
radius: 30,
|
||||
onTap: () {
|
||||
@@ -201,8 +235,10 @@ class _CartonListState extends State<CartonList> {
|
||||
.read<CartonModel>()
|
||||
.clearFilterSender();
|
||||
},
|
||||
child: const Icon(AntDesign.closecircleo,
|
||||
size: 20, color: dangerColor),
|
||||
child: const Icon(
|
||||
AntDesign.closecircleo,
|
||||
size: 20,
|
||||
color: dangerColor),
|
||||
),
|
||||
)
|
||||
],
|
||||
@@ -212,13 +248,24 @@ class _CartonListState extends State<CartonList> {
|
||||
],
|
||||
),
|
||||
Divider(color: Colors.grey.shade400),
|
||||
],
|
||||
)
|
||||
: const SizedBox(),
|
||||
),
|
||||
Expanded(
|
||||
child: cartonModel.getBoxes == null
|
||||
? const SizedBox()
|
||||
: PaginatorListView<Carton>(
|
||||
paginatorListener: cartonModel.getBoxes!,
|
||||
rowBuilder: (p) => CartonListRow(box: p),
|
||||
color: primaryColor),
|
||||
color: primaryColor,
|
||||
onScroll: ((down) {
|
||||
if (_down == down) return;
|
||||
setState(() {
|
||||
_down = down;
|
||||
});
|
||||
}),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
|
||||
@@ -37,22 +37,22 @@ class DeliveryAddressRow extends StatelessWidget {
|
||||
deliveryAddress.addressLine1!=""
|
||||
?
|
||||
line(context, deliveryAddress.addressLine1,
|
||||
iconData: Icons.location_on,color: Colors.black, fontSize: 16):SizedBox(),
|
||||
iconData: Icons.location_on,color: Colors.grey, fontSize: 16):SizedBox(),
|
||||
deliveryAddress.addressLine2!=""
|
||||
?
|
||||
line(
|
||||
context,
|
||||
deliveryAddress.addressLine2,color: Colors.black, fontSize: 16
|
||||
deliveryAddress.addressLine2,color: Colors.grey, fontSize: 16
|
||||
):SizedBox(),
|
||||
deliveryAddress.city!=""
|
||||
?
|
||||
line(
|
||||
context,
|
||||
deliveryAddress.city,color: Colors.black, fontSize: 16
|
||||
deliveryAddress.city,color: Colors.grey, fontSize: 16
|
||||
):SizedBox(),
|
||||
deliveryAddress.state!=""
|
||||
?
|
||||
line(context, deliveryAddress.state,color: Colors.black, fontSize: 16):SizedBox(),
|
||||
line(context, deliveryAddress.state,color: Colors.grey, fontSize: 16):SizedBox(),
|
||||
],
|
||||
),
|
||||
),
|
||||
@@ -69,7 +69,7 @@ class DeliveryAddressRow extends StatelessWidget {
|
||||
? SizedBox(width: 40)
|
||||
: Padding(
|
||||
padding: const EdgeInsets.only(left: 8.0, right: 8),
|
||||
child: Icon(iconData, color: Colors.black38),
|
||||
child: Icon(iconData, color: Colors.grey),
|
||||
),
|
||||
Flexible(
|
||||
child: TextLocalStyle(
|
||||
|
||||
@@ -107,7 +107,7 @@ class _FcsShipmentListState extends State<FcsShipmentList> {
|
||||
value: choice,
|
||||
child: Row(
|
||||
children: <Widget>[
|
||||
Flexible(child: Text("${choice.text}")),
|
||||
Flexible(child: Text("${choice.text}",style: TextStyle(color: Colors.black))),
|
||||
const SizedBox(
|
||||
width: 10,
|
||||
),
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import 'package:fcs/helpers/theme.dart';
|
||||
import 'package:fcs/pages/widgets/local_app_bar.dart';
|
||||
import 'package:fcs/pages/main/util.dart';
|
||||
import 'package:fcs/pages/widgets/local_button.dart';
|
||||
import 'package:fcs/pages/widgets/local_text.dart';
|
||||
import 'package:fcs/pages/widgets/progress.dart';
|
||||
@@ -7,6 +7,7 @@ import 'package:flutter/material.dart';
|
||||
import 'package:pin_input_text_field/pin_input_text_field.dart';
|
||||
|
||||
class PinLoginPage extends StatefulWidget {
|
||||
//final User user;
|
||||
const PinLoginPage({super.key});
|
||||
|
||||
@override
|
||||
@@ -16,12 +17,17 @@ class PinLoginPage extends StatefulWidget {
|
||||
class _PinLoginPageState extends State<PinLoginPage> {
|
||||
bool _isLoading = false;
|
||||
late String pin;
|
||||
//late User _user;
|
||||
TextEditingController _fcsIdCtl = new TextEditingController();
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
pin = "";
|
||||
//_user=widget.user;
|
||||
//pin = _user.pinDigit ?? "";
|
||||
super.initState();
|
||||
if (mounted) {
|
||||
setState(() {});
|
||||
}
|
||||
}
|
||||
|
||||
Widget build(BuildContext context) {
|
||||
@@ -59,18 +65,19 @@ class _PinLoginPageState extends State<PinLoginPage> {
|
||||
padding: EdgeInsets.only(top: 30),
|
||||
child: LocalButton(
|
||||
textKey: "welcome.pinlogin",
|
||||
callBack: () {},
|
||||
callBack: _login,
|
||||
),
|
||||
);
|
||||
return LocalProgress(
|
||||
inAsyncCall: _isLoading,
|
||||
child: new Scaffold(
|
||||
appBar: LocalAppBar(
|
||||
backgroundColor: null,
|
||||
arrowColor: Colors.black,
|
||||
),
|
||||
// appBar: LocalAppBar(
|
||||
// backgroundColor: primaryColor,
|
||||
|
||||
|
||||
// ),
|
||||
body: ListView(
|
||||
padding: EdgeInsets.only(top: 20, left: 15, right: 15, bottom: 20),
|
||||
padding: EdgeInsets.only(top: 80, left: 15, right: 15, bottom: 20),
|
||||
children: [
|
||||
pinLoginLogo,
|
||||
Padding(
|
||||
@@ -117,4 +124,29 @@ class _PinLoginPageState extends State<PinLoginPage> {
|
||||
this.pin = pin;
|
||||
});
|
||||
}
|
||||
_login() async {
|
||||
if (pin == "") {
|
||||
showMsgDialog(context, "Error", "Invalid PIN");
|
||||
return;
|
||||
}
|
||||
|
||||
if (pin.length < 6) {
|
||||
showMsgDialog(context, "Error", "PIN must be 6 digits");
|
||||
return;
|
||||
}
|
||||
|
||||
setState(() {
|
||||
_isLoading = true;
|
||||
});
|
||||
|
||||
try {
|
||||
Navigator.pop(context, true);
|
||||
} catch (e) {
|
||||
showMsgDialog(context, "Error", e.toString());
|
||||
} finally {
|
||||
setState(() {
|
||||
_isLoading = false;
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -107,9 +107,9 @@ class _LocalPopupMenuButtonState extends State<LocalPopupMenuButton> {
|
||||
style: TextStyle(
|
||||
fontSize: 14,
|
||||
color:
|
||||
choice.enabled ? primaryColor : Colors.grey))
|
||||
choice.enabled ? Colors.black : Colors.grey))
|
||||
: LocalText(context, choice.textKey ?? "",
|
||||
color: choice.enabled ? primaryColor : Colors.grey,
|
||||
color: choice.enabled ? Colors.black : Colors.grey,
|
||||
fontSize: 14),
|
||||
SizedBox(
|
||||
width: 10,
|
||||
|
||||
Reference in New Issue
Block a user