Merge branch 'delivery_confirmed' of https://gitlab.com/Cloud_Solution/driver-app into merge_delivery_into_dev
Conflicts: lib/pages/dashboard/dashboard_screen.dartlogut
commit
0de2156b1e
@ -0,0 +1,155 @@
|
|||||||
|
import 'package:driverapp/widgets/delivery/customer_brief_card.dart';
|
||||||
|
import 'package:flutter/cupertino.dart';
|
||||||
|
import 'package:flutter/material.dart';
|
||||||
|
|
||||||
|
import '../../widgets/others/app_scaffold_widget.dart';
|
||||||
|
|
||||||
|
class DeliveryConfirmedPage extends StatelessWidget {
|
||||||
|
final dynamic item;
|
||||||
|
|
||||||
|
DeliveryConfirmedPage(this.item);
|
||||||
|
|
||||||
|
@override
|
||||||
|
Widget build(BuildContext context) {
|
||||||
|
return AppScaffold(
|
||||||
|
body: SafeArea(
|
||||||
|
child: Container(
|
||||||
|
color: Color(0xff41bdbb),
|
||||||
|
child: ListView(
|
||||||
|
children: <Widget>[
|
||||||
|
Column(
|
||||||
|
children: <Widget>[
|
||||||
|
Column(
|
||||||
|
children: <Widget>[
|
||||||
|
Container(
|
||||||
|
child: Container(
|
||||||
|
alignment: Alignment.topLeft,
|
||||||
|
child: IconButton(
|
||||||
|
color: Colors.white,
|
||||||
|
iconSize: 40,
|
||||||
|
icon: Icon(Icons.arrow_back),
|
||||||
|
onPressed: () {
|
||||||
|
Navigator.pop(context);
|
||||||
|
},
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
Container(
|
||||||
|
child: Column(
|
||||||
|
children: <Widget>[
|
||||||
|
Container(
|
||||||
|
width: 300,
|
||||||
|
height: 300,
|
||||||
|
padding: EdgeInsets.only(top:60),
|
||||||
|
decoration: BoxDecoration(
|
||||||
|
color: Colors.white10,
|
||||||
|
shape: BoxShape.circle
|
||||||
|
),
|
||||||
|
child: Column(
|
||||||
|
children: <Widget>[
|
||||||
|
Icon(
|
||||||
|
Icons.check_circle,
|
||||||
|
color: Colors.white,
|
||||||
|
size: 60,
|
||||||
|
),
|
||||||
|
Text(
|
||||||
|
'Delivery Confirmed',
|
||||||
|
style: TextStyle(
|
||||||
|
color: Colors.white,
|
||||||
|
fontSize: 20,
|
||||||
|
fontWeight: FontWeight.bold),
|
||||||
|
),
|
||||||
|
Text(
|
||||||
|
'Confirmation email and SMS has been sent',
|
||||||
|
style: TextStyle(
|
||||||
|
color: Colors.white,
|
||||||
|
fontSize: 13,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
|
||||||
|
Stack(
|
||||||
|
children: <Widget>[
|
||||||
|
Container(
|
||||||
|
width: 400,
|
||||||
|
height: 500,
|
||||||
|
),
|
||||||
|
Container(
|
||||||
|
width: 800,
|
||||||
|
height: 440,
|
||||||
|
margin: EdgeInsets.only(top: 60),
|
||||||
|
decoration: BoxDecoration(
|
||||||
|
color: Colors.white,
|
||||||
|
borderRadius: BorderRadius.only(
|
||||||
|
topLeft: Radius.circular(80),
|
||||||
|
topRight: Radius.circular(80)),
|
||||||
|
),
|
||||||
|
child: Column(
|
||||||
|
mainAxisAlignment: MainAxisAlignment.end,
|
||||||
|
crossAxisAlignment: CrossAxisAlignment.center,
|
||||||
|
children: <Widget>[
|
||||||
|
Container(
|
||||||
|
margin: EdgeInsets.only(bottom: 50),
|
||||||
|
child: Column(
|
||||||
|
children: <Widget>[
|
||||||
|
FlatButton.icon(
|
||||||
|
padding: EdgeInsets.all(8),
|
||||||
|
color: Colors.orangeAccent,
|
||||||
|
shape: RoundedRectangleBorder(
|
||||||
|
borderRadius: new BorderRadius.circular(10.0),
|
||||||
|
),
|
||||||
|
icon: Icon(
|
||||||
|
Icons.mode_edit,
|
||||||
|
color: Colors.white,
|
||||||
|
),
|
||||||
|
label: Text(
|
||||||
|
'Add Note',
|
||||||
|
style: TextStyle(color: Colors.white),
|
||||||
|
),
|
||||||
|
onPressed: () {},
|
||||||
|
),
|
||||||
|
SizedBox(height: 20,),
|
||||||
|
FlatButton(
|
||||||
|
color: Color(0xff41bdbb),
|
||||||
|
padding: EdgeInsets.only(right: 100, left: 100),
|
||||||
|
shape: RoundedRectangleBorder(
|
||||||
|
borderRadius: new BorderRadius.circular(18.0),
|
||||||
|
side: BorderSide(color: Color(0xff41bdbb)),
|
||||||
|
),
|
||||||
|
child: Text(
|
||||||
|
'Next Delivery',
|
||||||
|
style: TextStyle(color: Colors.white),
|
||||||
|
),
|
||||||
|
onPressed: () {},
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
CustomerBrief(
|
||||||
|
itemId: item.driverID,
|
||||||
|
customerFirstName: item.firstName,
|
||||||
|
customerLastName: item.lastName,
|
||||||
|
mobileNo: item.mobileNumber
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,225 @@
|
|||||||
|
import 'package:driverapp/pages/delivery/delivery_confirmed_page.dart';
|
||||||
|
import 'package:driverapp/widgets/delivery/customer_brief_card.dart';
|
||||||
|
import 'package:driverapp/widgets/delivery/delivery_action_button.dart';
|
||||||
|
import 'package:driverapp/widgets/delivery/package_content.dart';
|
||||||
|
import 'package:flutter/cupertino.dart';
|
||||||
|
import 'package:flutter/material.dart';
|
||||||
|
|
||||||
|
import '../../widgets/others/app_scaffold_widget.dart';
|
||||||
|
|
||||||
|
class InformationPage extends StatelessWidget {
|
||||||
|
final dynamic item;
|
||||||
|
|
||||||
|
InformationPage(this.item);
|
||||||
|
|
||||||
|
@override
|
||||||
|
Widget build(BuildContext context) {
|
||||||
|
// return AppScaffold(
|
||||||
|
// body: Center(
|
||||||
|
// child: InkWell(onTap: () {},
|
||||||
|
// child: Texts('Replay Page')),
|
||||||
|
// ),
|
||||||
|
// );
|
||||||
|
return AppScaffold(
|
||||||
|
body: Container(
|
||||||
|
color: Color(0xff41bdbb),
|
||||||
|
child: ListView(
|
||||||
|
children: <Widget>[
|
||||||
|
Column(
|
||||||
|
children: <Widget>[
|
||||||
|
Row(
|
||||||
|
crossAxisAlignment: CrossAxisAlignment.center,
|
||||||
|
children: <Widget>[
|
||||||
|
Container(
|
||||||
|
margin: EdgeInsets.only(right: 50),
|
||||||
|
child: IconButton(
|
||||||
|
color: Colors.white,
|
||||||
|
iconSize: 50,
|
||||||
|
icon: Icon(Icons.arrow_back),
|
||||||
|
onPressed: () {
|
||||||
|
Navigator.pop(context);
|
||||||
|
},
|
||||||
|
),
|
||||||
|
),
|
||||||
|
Container(
|
||||||
|
child: Text(
|
||||||
|
'Delivery information',
|
||||||
|
style: TextStyle(
|
||||||
|
color: Colors.white,
|
||||||
|
fontSize: 20,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
Stack(
|
||||||
|
children: <Widget>[
|
||||||
|
Container(
|
||||||
|
width: 400,
|
||||||
|
height: 500,
|
||||||
|
),
|
||||||
|
Container(
|
||||||
|
width: 800,
|
||||||
|
height: 700,
|
||||||
|
margin: EdgeInsets.only(top: 100),
|
||||||
|
decoration: BoxDecoration(
|
||||||
|
color: Colors.white,
|
||||||
|
borderRadius: BorderRadius.only(
|
||||||
|
topLeft: Radius.circular(45),
|
||||||
|
topRight: Radius.circular(45)),
|
||||||
|
),
|
||||||
|
child: Column(
|
||||||
|
mainAxisAlignment: MainAxisAlignment.center,
|
||||||
|
children: <Widget>[
|
||||||
|
SizedBox(
|
||||||
|
height: 170,
|
||||||
|
),
|
||||||
|
Row(
|
||||||
|
mainAxisAlignment: MainAxisAlignment.center,
|
||||||
|
children: <Widget>[
|
||||||
|
delivery_info_button(
|
||||||
|
btnColor: Color(0xfff44336),
|
||||||
|
btnIcon: Icon(
|
||||||
|
Icons.near_me,
|
||||||
|
size: 30,
|
||||||
|
color: Colors.white,
|
||||||
|
),
|
||||||
|
btnName: 'Location',
|
||||||
|
btnFunction: () {},
|
||||||
|
),
|
||||||
|
delivery_info_button(
|
||||||
|
btnColor: Colors.green,
|
||||||
|
btnIcon: Icon(
|
||||||
|
Icons.whatshot,
|
||||||
|
size: 30,
|
||||||
|
color: Colors.white,
|
||||||
|
),
|
||||||
|
btnName: 'Whatsapp',
|
||||||
|
btnFunction: () {},
|
||||||
|
),
|
||||||
|
delivery_info_button(
|
||||||
|
btnColor: Colors.orangeAccent,
|
||||||
|
btnIcon: Icon(
|
||||||
|
Icons.mail_outline,
|
||||||
|
size: 30,
|
||||||
|
color: Colors.white,
|
||||||
|
),
|
||||||
|
btnName: 'SMS',
|
||||||
|
btnFunction: () {},
|
||||||
|
),
|
||||||
|
delivery_info_button(
|
||||||
|
btnColor: Color(0xff41bdbb),
|
||||||
|
btnIcon: Icon(
|
||||||
|
Icons.phone,
|
||||||
|
size: 30,
|
||||||
|
color: Colors.white,
|
||||||
|
),
|
||||||
|
btnName: 'Call',
|
||||||
|
btnFunction: () {},
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
SizedBox(
|
||||||
|
height: 30,
|
||||||
|
),
|
||||||
|
Container(
|
||||||
|
margin: EdgeInsets.only(left: 15, right: 15),
|
||||||
|
child: Column(
|
||||||
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
|
children: <Widget>[
|
||||||
|
Text(
|
||||||
|
'Package Content',
|
||||||
|
style: TextStyle(
|
||||||
|
fontWeight: FontWeight.bold,
|
||||||
|
fontSize: 20),
|
||||||
|
),
|
||||||
|
SizedBox(
|
||||||
|
height: 20,
|
||||||
|
),
|
||||||
|
package_content(
|
||||||
|
packageName: 'Panadol Extra 50 tablet',
|
||||||
|
packageCount: '5 box',
|
||||||
|
),
|
||||||
|
SizedBox(
|
||||||
|
height: 10,
|
||||||
|
),
|
||||||
|
package_content(
|
||||||
|
packageName: 'Xeractan 20MG 30 Capsules',
|
||||||
|
packageCount: '1 PCS',
|
||||||
|
),
|
||||||
|
SizedBox(
|
||||||
|
height: 10,
|
||||||
|
),
|
||||||
|
package_content(
|
||||||
|
packageName: 'Oltment for Rash unbranded 50 ml',
|
||||||
|
packageCount: '1 tube',
|
||||||
|
),
|
||||||
|
SizedBox(
|
||||||
|
height: 10,
|
||||||
|
),
|
||||||
|
package_content(
|
||||||
|
packageName: 'Face Mask 50 Pieces',
|
||||||
|
packageCount: '1 box',
|
||||||
|
),
|
||||||
|
SizedBox(
|
||||||
|
height: 10,
|
||||||
|
),
|
||||||
|
package_content(
|
||||||
|
packageName: 'Panadol Extra 50 tablet',
|
||||||
|
packageCount: '5 box',
|
||||||
|
),
|
||||||
|
SizedBox(
|
||||||
|
height: 10,
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
SizedBox(
|
||||||
|
height: 30,
|
||||||
|
),
|
||||||
|
FlatButton(
|
||||||
|
color: Color(0xff41bdbb),
|
||||||
|
padding: EdgeInsets.only(
|
||||||
|
right: 100, left: 100, bottom: 15, top: 15),
|
||||||
|
shape: RoundedRectangleBorder(
|
||||||
|
borderRadius: new BorderRadius.circular(30.0),
|
||||||
|
side: BorderSide(color: Color(0xff41bdbb)),
|
||||||
|
),
|
||||||
|
child: Text(
|
||||||
|
'Client Reached',
|
||||||
|
style: TextStyle(
|
||||||
|
color: Colors.white,
|
||||||
|
fontWeight: FontWeight.bold,
|
||||||
|
fontSize: 16),
|
||||||
|
),
|
||||||
|
onPressed: () {
|
||||||
|
Navigator.push(
|
||||||
|
context, MaterialPageRoute(
|
||||||
|
builder: (context) =>
|
||||||
|
DeliveryConfirmedPage(item)));
|
||||||
|
},
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
CustomerBrief(
|
||||||
|
itemId: item.driverID,
|
||||||
|
customerFirstName: item.firstName,
|
||||||
|
customerLastName: item.lastName,
|
||||||
|
mobileNo: item.mobileNumber
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -0,0 +1,144 @@
|
|||||||
|
import 'package:flutter/material.dart';
|
||||||
|
|
||||||
|
class CustomerBrief extends StatelessWidget {
|
||||||
|
final int itemId;
|
||||||
|
final String time;
|
||||||
|
final String customerFirstName;
|
||||||
|
final String customerLastName;
|
||||||
|
final String mobileNo;
|
||||||
|
final String direction;
|
||||||
|
final String totalPayment;
|
||||||
|
final String deliveryTime;
|
||||||
|
|
||||||
|
CustomerBrief(
|
||||||
|
{this.itemId,
|
||||||
|
this.time,
|
||||||
|
this.customerFirstName,
|
||||||
|
this.customerLastName,
|
||||||
|
this.mobileNo,
|
||||||
|
this.direction,
|
||||||
|
this.totalPayment,
|
||||||
|
this.deliveryTime});
|
||||||
|
|
||||||
|
@override
|
||||||
|
Widget build(BuildContext context) {
|
||||||
|
return Center(
|
||||||
|
child: Container(
|
||||||
|
width: 350,
|
||||||
|
height: 300,
|
||||||
|
decoration: BoxDecoration(
|
||||||
|
color: Colors.white,
|
||||||
|
borderRadius: BorderRadius.only(
|
||||||
|
topLeft: Radius.circular(45),
|
||||||
|
topRight: Radius.circular(45),
|
||||||
|
bottomRight: Radius.circular(45),
|
||||||
|
bottomLeft: Radius.circular(45)),
|
||||||
|
boxShadow: [
|
||||||
|
BoxShadow(
|
||||||
|
color: Colors.grey.withOpacity(0.3),
|
||||||
|
spreadRadius: 5,
|
||||||
|
blurRadius: 7,
|
||||||
|
offset: Offset(0, 3),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
child: Container(
|
||||||
|
padding: EdgeInsets.only(left: 30, top: 10, right: 30),
|
||||||
|
child: Column(
|
||||||
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
|
children: <Widget>[
|
||||||
|
Row(
|
||||||
|
children: <Widget>[
|
||||||
|
Expanded(
|
||||||
|
child: Text('ID: ${itemId}'),
|
||||||
|
),
|
||||||
|
Expanded(
|
||||||
|
child: Container(
|
||||||
|
margin: EdgeInsets.only(left: 83),
|
||||||
|
width: 10,
|
||||||
|
height: 60,
|
||||||
|
decoration: BoxDecoration(
|
||||||
|
border: Border.all(
|
||||||
|
width: 2.0,
|
||||||
|
color: Color(0xff41bdbb),
|
||||||
|
),
|
||||||
|
borderRadius: BorderRadius.only(
|
||||||
|
topLeft: Radius.circular(45),
|
||||||
|
topRight: Radius.circular(45),
|
||||||
|
bottomRight: Radius.circular(45),
|
||||||
|
bottomLeft: Radius.circular(45),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
child: Container(
|
||||||
|
margin: EdgeInsets.only(left: 12, top: 10),
|
||||||
|
child: Text(
|
||||||
|
'3 min away',
|
||||||
|
style: TextStyle(color: Color(0xff41bdbb)),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
Text(
|
||||||
|
'${customerFirstName} ${customerLastName}',
|
||||||
|
style: TextStyle(fontSize: 20, fontWeight: FontWeight.bold),
|
||||||
|
),
|
||||||
|
Text(
|
||||||
|
mobileNo,
|
||||||
|
style: TextStyle(color: Colors.lightBlue),
|
||||||
|
),
|
||||||
|
SizedBox(
|
||||||
|
height: 10,
|
||||||
|
),
|
||||||
|
Text(
|
||||||
|
'Olaya street, behind KFC resturant, next to kingdom towers 2ND floor ofice 277',
|
||||||
|
style: TextStyle(fontWeight: FontWeight.w600),
|
||||||
|
),
|
||||||
|
SizedBox(
|
||||||
|
height: 10,
|
||||||
|
),
|
||||||
|
Divider(
|
||||||
|
color: Colors.grey,
|
||||||
|
),
|
||||||
|
SizedBox(
|
||||||
|
height: 20,
|
||||||
|
),
|
||||||
|
Column(
|
||||||
|
children: <Widget>[
|
||||||
|
Row(
|
||||||
|
children: <Widget>[
|
||||||
|
Text(
|
||||||
|
'payment',
|
||||||
|
),
|
||||||
|
SizedBox(
|
||||||
|
width: 170,
|
||||||
|
),
|
||||||
|
Text(
|
||||||
|
'SAR 70',
|
||||||
|
style: TextStyle(fontWeight: FontWeight.bold),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
SizedBox(
|
||||||
|
height: 20,
|
||||||
|
),
|
||||||
|
Row(
|
||||||
|
children: <Widget>[
|
||||||
|
Text('Delivery Time'),
|
||||||
|
SizedBox(
|
||||||
|
width: 50,
|
||||||
|
),
|
||||||
|
Text('05 Aug 20 - 10:00 AM',
|
||||||
|
style: TextStyle(fontWeight: FontWeight.bold)),
|
||||||
|
],
|
||||||
|
)
|
||||||
|
],
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,45 @@
|
|||||||
|
import 'package:flutter/material.dart';
|
||||||
|
|
||||||
|
class delivery_info_button extends StatelessWidget {
|
||||||
|
final Color btnColor;
|
||||||
|
final Icon btnIcon;
|
||||||
|
final Function btnFunction;
|
||||||
|
final String btnName;
|
||||||
|
|
||||||
|
delivery_info_button(
|
||||||
|
{this.btnColor, this.btnIcon, this.btnFunction, this.btnName});
|
||||||
|
@override
|
||||||
|
Widget build(BuildContext context) {
|
||||||
|
print(btnColor);
|
||||||
|
return Padding(
|
||||||
|
padding: EdgeInsets.all(8.0),
|
||||||
|
child: Column(
|
||||||
|
children: <Widget>[
|
||||||
|
SizedBox(
|
||||||
|
height: 50,
|
||||||
|
width: 60, // specific value
|
||||||
|
child: RaisedButton(
|
||||||
|
padding: EdgeInsets.only(left: 2),
|
||||||
|
color: btnColor,
|
||||||
|
shape: RoundedRectangleBorder(
|
||||||
|
borderRadius: new BorderRadius.circular(8.0),
|
||||||
|
),
|
||||||
|
child: btnIcon,
|
||||||
|
onPressed: btnFunction,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
SizedBox(
|
||||||
|
height: 10,
|
||||||
|
),
|
||||||
|
Text(
|
||||||
|
btnName,
|
||||||
|
style: TextStyle(
|
||||||
|
fontWeight: FontWeight.bold,
|
||||||
|
fontSize: 10,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,30 @@
|
|||||||
|
import 'package:flutter/material.dart';
|
||||||
|
|
||||||
|
class package_content extends StatelessWidget {
|
||||||
|
final String packageName;
|
||||||
|
final String packageCount;
|
||||||
|
|
||||||
|
package_content({this.packageName, this.packageCount});
|
||||||
|
|
||||||
|
@override
|
||||||
|
Widget build(BuildContext context) {
|
||||||
|
return Row(
|
||||||
|
children: <Widget>[
|
||||||
|
Expanded(
|
||||||
|
flex: 2,
|
||||||
|
child: Text(
|
||||||
|
packageName,
|
||||||
|
style: TextStyle(color: Colors.grey, fontWeight: FontWeight.w400),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
Expanded(
|
||||||
|
child: Text(
|
||||||
|
packageCount,
|
||||||
|
textAlign: TextAlign.end,
|
||||||
|
style: TextStyle(color: Colors.grey, fontWeight: FontWeight.w400),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue