add route from dashboard and delivery info with item data step 2

logut
enadhilal 6 years ago
parent 5b35d5d09a
commit fac6230205

@ -1,11 +1,12 @@
import 'package:driverapp/config/size_config.dart'; import 'package:driverapp/config/size_config.dart';
import 'package:driverapp/core/viewModels/pending_orders_view_model.dart'; import 'package:driverapp/core/viewModels/pending_orders_view_model.dart';
import 'package:driverapp/pages/delivery/information_page.dart';
import 'package:driverapp/pages/orders/pending_orders_page.dart';
import 'package:driverapp/widgets/others/rounded_container.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import '../base/base_view.dart'; import '../base/base_view.dart';
import 'package:flutter/cupertino.dart';
import 'package:driverapp/app-icons/driver_app_icons.dart';
import 'package:driverapp/widgets/others/rounded_container.dart';
import 'package:driverapp/pages/orders/pending_orders_page.dart';
class DashboardScreen extends StatefulWidget { class DashboardScreen extends StatefulWidget {
@override @override
@ -315,72 +316,80 @@ class _DashboardScreenState extends State<DashboardScreen> {
itemCount: //model.orders == null ? 0 : model.orders.length, itemCount: //model.orders == null ? 0 : model.orders.length,
2, 2,
itemBuilder: (BuildContext context, int index) { itemBuilder: (BuildContext context, int index) {
return Padding( return GestureDetector(
padding: EdgeInsets.symmetric(horizontal: 12.0), onTap: () {
child: RoundedContainer( Navigator.push(
height: SizeConfig.heightMultiplier * 10.5, context, MaterialPageRoute(builder: (context) =>
child: Row( InformationPage(model.orders[index])));
mainAxisAlignment: MainAxisAlignment.spaceBetween, },
children: <Widget>[ child: Padding(
Column( padding: EdgeInsets.symmetric(horizontal: 12.0),
mainAxisAlignment: MainAxisAlignment.center, child: RoundedContainer(
children: <Widget>[ height: SizeConfig.heightMultiplier * 10.5,
Padding( child: Row(
padding: EdgeInsets.only(left: 22.0), mainAxisAlignment: MainAxisAlignment.spaceBetween,
child: Image.asset( children: <Widget>[
'assets/images/location.png'),
)
],
),
if (model.orders.length != 0)
Column( Column(
crossAxisAlignment: CrossAxisAlignment.start, mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[ children: <Widget>[
Text( Padding(
model.orders[index].firstName + padding: EdgeInsets.only(left: 22.0),
' ' + child: Image.asset(
model.orders[index].lastName, 'assets/images/location.png'),
style: TextStyle(fontSize: 20.0),
),
Text(
model.orders[index].mobileNumber,
style: TextStyle(
color: Color(0xff30B7B9),
fontWeight: FontWeight.w600,
fontSize: 15.0),
),
Text(
'Olaya ST, Behind kfc next to king-\ndom tower 2nd floor n.o 247',
style: TextStyle(color: Colors.black45),
) )
], ],
), ),
Padding( if (model.orders.length != 0)
padding: EdgeInsets.all(10.0), Column(
child: Column( crossAxisAlignment: CrossAxisAlignment
mainAxisAlignment: MainAxisAlignment.center, .start,
children: <Widget>[ children: <Widget>[
CircleAvatar( Text(
backgroundColor: Colors.black45, model.orders[index].firstName +
radius: 30.0, ' ' +
child: CircleAvatar( model.orders[index].lastName,
backgroundColor: Colors.white, style: TextStyle(fontSize: 20.0),
maxRadius: 28.9, ),
child: Padding( Text(
padding: const EdgeInsets.all(8.0), model.orders[index].mobileNumber,
child: Text( style: TextStyle(
'3 K.m \n away', color: Color(0xff30B7B9),
style: TextStyle( fontWeight: FontWeight.w600,
color: Color(0xff30B7B9), fontSize: 15.0),
fontSize: 14.0), ),
Text(
'Olaya ST, Behind kfc next to king-\ndom tower 2nd floor n.o 247',
style: TextStyle(color: Colors.black45),
)
],
),
Padding(
padding: EdgeInsets.all(10.0),
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
CircleAvatar(
backgroundColor: Colors.black45,
radius: 30.0,
child: CircleAvatar(
backgroundColor: Colors.white,
maxRadius: 28.9,
child: Padding(
padding: const EdgeInsets.all(8.0),
child: Text(
'3 K.m \n away',
style: TextStyle(
color: Color(0xff30B7B9),
fontSize: 14.0),
),
), ),
), ),
), )
) ],
], ),
), )
) ],
], ),
), ),
), ),
); );

@ -1,13 +1,15 @@
import 'package:driverapp/widgets/data_display/text.dart';
import 'package:driverapp/widgets/others/app_scaffold_widget.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:driverapp/pages/delivery/delivery_confirmed_page.dart'; import 'package:driverapp/pages/delivery/delivery_confirmed_page.dart';
import 'package:driverapp/widgets/delivery/customer_brief_card.dart'; import 'package:driverapp/widgets/delivery/customer_brief_card.dart';
import 'package:driverapp/widgets/delivery/delivery_action_button.dart'; import 'package:driverapp/widgets/delivery/delivery_action_button.dart';
import 'package:driverapp/widgets/delivery/package_content.dart'; import 'package:driverapp/widgets/delivery/package_content.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
class InformationPage extends StatelessWidget { class InformationPage extends StatelessWidget {
final dynamic item;
InformationPage(this.item);
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
// return AppScaffold( // return AppScaffold(
@ -16,188 +18,200 @@ class InformationPage extends StatelessWidget {
// child: Texts('Replay Page')), // child: Texts('Replay Page')),
// ), // ),
// ); // );
return Container( return Scaffold(
color: Color(0xff41bdbb), body: Container(
child: ListView( color: Color(0xff41bdbb),
children: <Widget>[ child: ListView(
Column( children: <Widget>[
children: <Widget>[ Column(
Row( children: <Widget>[
crossAxisAlignment: CrossAxisAlignment.center, Row(
children: <Widget>[ crossAxisAlignment: CrossAxisAlignment.center,
Container( children: <Widget>[
margin: EdgeInsets.only(right: 50), Container(
child: IconButton( margin: EdgeInsets.only(right: 50),
color: Colors.white, child: IconButton(
iconSize: 50,
icon: Icon(Icons.arrow_back),
onPressed: () {},
),
),
Container(
child: Text(
'Delivery information',
style: TextStyle(
color: Colors.white, color: Colors.white,
fontSize: 20, iconSize: 50,
icon: Icon(Icons.arrow_back),
onPressed: () {
Navigator.pop(context);
},
), ),
), ),
), Container(
], child: Text(
), 'Delivery information',
Stack( style: TextStyle(
children: <Widget>[ color: Colors.white,
Container( fontSize: 20,
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), Stack(
btnIcon: Icon( children: <Widget>[
Icons.near_me, Container(
size: 30, width: 400,
color: Colors.white, height: 500,
), ),
btnName: 'Location', Container(
btnFunction: () {}, width: 800,
), height: 700,
delivery_info_button( margin: EdgeInsets.only(top: 100),
btnColor: Colors.green, decoration: BoxDecoration(
btnIcon: Icon( color: Colors.white,
Icons.whatshot, borderRadius: BorderRadius.only(
size: 30, topLeft: Radius.circular(45),
color: Colors.white, topRight: Radius.circular(45)),
), ),
btnName: 'Whatsapp', child: Column(
btnFunction: () {}, mainAxisAlignment: MainAxisAlignment.center,
), children: <Widget>[
delivery_info_button( SizedBox(
btnColor: Colors.orangeAccent, height: 170,
btnIcon: Icon( ),
Icons.mail_outline, Row(
size: 30, mainAxisAlignment: MainAxisAlignment.center,
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>[ children: <Widget>[
Text( delivery_info_button(
'Package Content', btnColor: Color(0xfff44336),
style: TextStyle( btnIcon: Icon(
fontWeight: FontWeight.bold, fontSize: 20), Icons.near_me,
), size: 30,
SizedBox( color: Colors.white,
height: 20, ),
), btnName: 'Location',
package_content( btnFunction: () {},
packageName: 'Panadol Extra 50 tablet', ),
packageCount: '5 box', delivery_info_button(
), btnColor: Colors.green,
SizedBox( btnIcon: Icon(
height: 10, Icons.whatshot,
), size: 30,
package_content( color: Colors.white,
packageName: 'Xeractan 20MG 30 Capsules', ),
packageCount: '1 PCS', btnName: 'Whatsapp',
), btnFunction: () {},
SizedBox( ),
height: 10, delivery_info_button(
), btnColor: Colors.orangeAccent,
package_content( btnIcon: Icon(
packageName: 'Oltment for Rash unbranded 50 ml', Icons.mail_outline,
packageCount: '1 tube', size: 30,
), color: Colors.white,
SizedBox( ),
height: 10, btnName: 'SMS',
), btnFunction: () {},
package_content( ),
packageName: 'Face Mask 50 Pieces', delivery_info_button(
packageCount: '1 box', btnColor: Color(0xff41bdbb),
), btnIcon: Icon(
SizedBox( Icons.phone,
height: 10, size: 30,
), color: Colors.white,
package_content( ),
packageName: 'Panadol Extra 50 tablet', btnName: 'Call',
packageCount: '5 box', btnFunction: () {},
),
SizedBox(
height: 10,
), ),
], ],
), ),
), SizedBox(
SizedBox( height: 30,
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( Container(
'Client Reached', margin: EdgeInsets.only(left: 15, right: 15),
style: TextStyle( child: Column(
color: Colors.white, crossAxisAlignment: CrossAxisAlignment.start,
fontWeight: FontWeight.bold, children: <Widget>[
fontSize: 16), 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,
),
],
),
), ),
onPressed: () { SizedBox(
Navigator.push( height: 30,
context, MaterialPageRoute(builder: (context) => DeliveryConfirmedPage())); ),
}, 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()));
},
),
],
),
),
CustomerBrief(
itemId: item.driverID,
customerFirstName: item.firstName,
customerLastName: item.lastName,
mobileNo: item.mobileNumber
), ),
), ],
CustomerBrief(), ),
], ],
), ),
], ],
), ),
],
), ),
); );
} }

@ -1,11 +1,10 @@
import 'package:driverapp/pages/landing/replay_page.dart'; import 'package:driverapp/pages/delivery/delivery_confirmed_page.dart';
import 'package:driverapp/pages/delivery/information_page.dart';
import 'package:driverapp/uitl/translations_delegate_base.dart'; import 'package:driverapp/uitl/translations_delegate_base.dart';
import 'package:driverapp/widgets/bottom_navigation/bottom_nav_bar.dart'; import 'package:driverapp/widgets/bottom_navigation/bottom_nav_bar.dart';
import 'package:driverapp/widgets/drawer/app_drawer_widget.dart'; import 'package:driverapp/widgets/drawer/app_drawer_widget.dart';
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:driverapp/pages/delivery/information_page.dart';
import 'package:driverapp/pages/delivery/delivery_confirmed_page.dart';
import 'home_page.dart'; import 'home_page.dart';
@ -57,7 +56,12 @@ class _LandingPageState extends State<LandingPage> {
body: PageView( body: PageView(
physics: NeverScrollableScrollPhysics(), physics: NeverScrollableScrollPhysics(),
controller: pageController, controller: pageController,
children: [HomePage(), InformationPage(), DeliveryConfirmedPage(), Container()], children: [
HomePage(),
InformationPage(null),
DeliveryConfirmedPage(),
Container()
],
), ),
bottomNavigationBar: BottomNavBar(changeIndex: _changeCurrentTab), bottomNavigationBar: BottomNavBar(changeIndex: _changeCurrentTab),
); );

@ -1,9 +1,10 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
class CustomerBrief extends StatelessWidget { class CustomerBrief extends StatelessWidget {
final String itemId; final int itemId;
final String time; final String time;
final String customerName; final String customerFirstName;
final String customerLastName;
final String mobileNo; final String mobileNo;
final String direction; final String direction;
final String totalPayment; final String totalPayment;
@ -12,7 +13,8 @@ class CustomerBrief extends StatelessWidget {
CustomerBrief( CustomerBrief(
{this.itemId, {this.itemId,
this.time, this.time,
this.customerName, this.customerFirstName,
this.customerLastName,
this.mobileNo, this.mobileNo,
this.direction, this.direction,
this.totalPayment, this.totalPayment,
@ -48,7 +50,7 @@ class CustomerBrief extends StatelessWidget {
Row( Row(
children: <Widget>[ children: <Widget>[
Expanded( Expanded(
child: Text('ID: 123456789'), child: Text('ID: ${itemId}'),
), ),
Expanded( Expanded(
child: Container( child: Container(
@ -79,11 +81,11 @@ class CustomerBrief extends StatelessWidget {
], ],
), ),
Text( Text(
'Abdullah Olyan', '${customerFirstName} ${customerLastName}',
style: TextStyle(fontSize: 20, fontWeight: FontWeight.bold), style: TextStyle(fontSize: 20, fontWeight: FontWeight.bold),
), ),
Text( Text(
'05XXXXXXXX', mobileNo,
style: TextStyle(color: Colors.lightBlue), style: TextStyle(color: Colors.lightBlue),
), ),
SizedBox( SizedBox(

Loading…
Cancel
Save