Merge branch 'master' of tzw/fcs into master

This commit is contained in:
2024-02-15 17:53:50 +06:30
committed by Gogs
5 changed files with 184 additions and 105 deletions

View File

@@ -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;
});
}),
),
),
],
),

View File

@@ -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(

View File

@@ -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,
),

View File

@@ -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;
});
}
}
}

View File

@@ -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,