no message

parent 07a87a4b
...@@ -33,7 +33,7 @@ class MyApp extends StatelessWidget { ...@@ -33,7 +33,7 @@ class MyApp extends StatelessWidget {
), ),
home: Favorite() home: SplashScreenPage()
......
class AddfavModel {
String message;
AddfavModel({this.message});
AddfavModel.fromJson(Map<String, dynamic> json) {
message = json['message'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['message'] = this.message;
return data;
}
}
...@@ -5,6 +5,7 @@ import 'package:feelverapp/model/Login/login_model.dart'; ...@@ -5,6 +5,7 @@ import 'package:feelverapp/model/Login/login_model.dart';
import 'package:feelverapp/model/base/base.dart'; import 'package:feelverapp/model/base/base.dart';
import 'package:feelverapp/model/editprofile/getprofilemodel.dart'; import 'package:feelverapp/model/editprofile/getprofilemodel.dart';
import 'package:feelverapp/model/favorite/addfav_model.dart';
import 'package:feelverapp/model/favorite/delete_favorite_Model.dart'; import 'package:feelverapp/model/favorite/delete_favorite_Model.dart';
import 'package:feelverapp/model/favorite/favorite_Model.dart'; import 'package:feelverapp/model/favorite/favorite_Model.dart';
...@@ -311,6 +312,28 @@ class Api<T> { ...@@ -311,6 +312,28 @@ class Api<T> {
return result; return result;
} }
Future<Response<T>> addfav(Object body) async {
var _model;
var _fail;
var result;
await _httpConnection(
"${this._baseApi}/wish-list/add", this._headerApi, body)
.then((response) {
print("ผลลัพท์ เท่ากับ " "${response.body}");
if (response.statusCode == 200) {
_model = AddfavModel.fromJson(json.decode(response.body));
} else {
_fail = FailModel.fromJson(json.decode(response.body));
}
result = new Response<T>(_model, _fail);
});
return result;
}
///api environment ///api environment
Future<http.Response> _httpConnection( Future<http.Response> _httpConnection(
String url, Map<String, String> headers, Object body) async { String url, Map<String, String> headers, Object body) async {
......
...@@ -24,6 +24,7 @@ class _ShopListDetailState extends State<ShopListDetail> { ...@@ -24,6 +24,7 @@ class _ShopListDetailState extends State<ShopListDetail> {
print(widget.id); print(widget.id);
presenter = ShoplistdetailPresenter(this); presenter = ShoplistdetailPresenter(this);
presenter.Detai(widget.id); presenter.Detai(widget.id);
presenter.getid();
// List values = presenter.model.result[0].location.split(","); // split() will split from . and gives new List with separated elements. // List values = presenter.model.result[0].location.split(","); // split() will split from . and gives new List with separated elements.
//values.forEach(print); //values.forEach(print);
...@@ -142,32 +143,23 @@ class _ShopListDetailState extends State<ShopListDetail> { ...@@ -142,32 +143,23 @@ class _ShopListDetailState extends State<ShopListDetail> {
focusColor:Color(0xFFDD175F), focusColor:Color(0xFFDD175F),
splashColor: Color(0xFFDD175F), splashColor: Color(0xFFDD175F),
onTap: () { onTap: () {
print("add fav");
setState(() { setState(() {
fav?fav=false:fav=true; presenter.fav?presenter.fav=false:
presenter.Addfav(widget.id);
}); });
showDialog(
context: context,
builder: (context) {
Future.delayed(Duration(seconds: 1), () {
Navigator.of(context).pop(true);
});
return AlertDialog(
content:ImageIcon(
AssetImage('assets/images/ic_fav_list.png'),
color:fav?Color(0xFFDD175F): Colors.grey,
size: SizeConfig.getFontSize(30),
) ,
title:Center(child: Text('บันทึกสำเร็จ')),
);
});
}, },
child:ImageIcon( child:ImageIcon(
AssetImage('assets/images/ic_fav_list.png'), AssetImage('assets/images/ic_fav_list.png'),
color:fav?Color(0xFFDD175F): Colors.white, color:presenter.fav?Color(0xFFDD175F): Colors.white,
size: SizeConfig.getFontSize(30), size: SizeConfig.getFontSize(30),
), ),
),), ),),
...@@ -306,7 +298,8 @@ class _ShopListDetailState extends State<ShopListDetail> { ...@@ -306,7 +298,8 @@ class _ShopListDetailState extends State<ShopListDetail> {
height: SizeConfig.getHeight(20), height: SizeConfig.getHeight(20),
), ),
_detail(), _detail(),
_servicelist(), _servicelist(),
], ],
), ),
); );
...@@ -314,196 +307,197 @@ class _ShopListDetailState extends State<ShopListDetail> { ...@@ -314,196 +307,197 @@ class _ShopListDetailState extends State<ShopListDetail> {
_servicelist() { _servicelist() {
return Column( return Container(
children: <Widget>[
Container(
padding: EdgeInsets.only(
top: SizeConfig.getPadding(15),
left: SizeConfig.getPadding(24),
right: SizeConfig.getPadding(24),
bottom: SizeConfig.getPadding(5),
),
alignment: Alignment.topLeft,
child: Text(
'บริการ',
textAlign: TextAlign.left,
style: TextStyle(
color: Colors.black87,
fontSize: SizeConfig.getFontSize(16),
fontFamily: "SF_Pro_Text",
fontWeight: FontWeight.w700),
),
),
Container( padding: EdgeInsets.only(left:10,right:10),
height: 600, child:
padding: EdgeInsets.only(
top: SizeConfig.getPadding(0), Column(
left: SizeConfig.getPadding(24), children: <Widget>[
right: SizeConfig.getPadding(24),
bottom: SizeConfig.getPadding(5),
Container(
padding: EdgeInsets.only(
top: SizeConfig.getPadding(15),
left: SizeConfig.getPadding(24),
right: SizeConfig.getPadding(24),
bottom: SizeConfig.getPadding(5),
),
alignment: Alignment.topLeft,
child: Text(
'บริการ',
textAlign: TextAlign.left,
style: TextStyle(
color: Colors.black87,
fontSize: SizeConfig.getFontSize(16),
fontFamily: "SF_Pro_Text",
fontWeight: FontWeight.w700),
),
), ),
alignment: Alignment.topLeft,
child:ListView.builder( Column(
itemCount: presenter.model.result[0].openHour.length, children:
itemBuilder: (context, i) { List.generate( presenter.model.result[0].openHour.length,(i) {
return Column(children: [
SizedBox(height: 30,), return Column(children: [
SizedBox(height: 30,),
Align( Align(
alignment: Alignment.topLeft, alignment: Alignment.topLeft,
child:Text( child:Text(
presenter.model.result[0].storeProduct[i].product.name, presenter.model.result[0].storeProduct[i].product.name,
textAlign: TextAlign.left, textAlign: TextAlign.left,
style: TextStyle( style: TextStyle(
color: Colors.black87, color: Colors.black87,
fontSize: SizeConfig.getFontSize(16), fontSize: SizeConfig.getFontSize(16),
fontFamily: "SF_Pro_Text", fontFamily: "SF_Pro_Text",
fontWeight: FontWeight.w700), fontWeight: FontWeight.w700),
),), ),),
SizedBox(height: 30,), SizedBox(height: 30,),
Row(children: [ Row(children: [
Icon( Icon(
Icons.timer, Icons.timer,
color: Colors.pinkAccent, color: Colors.pinkAccent,
size: 20, size: 20,
), ),
Text( Text(
" "+presenter.model.result[0].storeProduct[i].product.duration+" ชม.", " "+presenter.model.result[0].storeProduct[i].product.duration+" ชม.",
textAlign: TextAlign.left, textAlign: TextAlign.left,
style: TextStyle( style: TextStyle(
color: Colors.black87, color: Colors.black87,
fontSize: SizeConfig.getFontSize(12), fontSize: SizeConfig.getFontSize(12),
fontFamily: "SF_Pro_Text", fontFamily: "SF_Pro_Text",
fontWeight: FontWeight.w200), fontWeight: FontWeight.w200),
),Spacer(), ),Spacer(),
presenter.model.result[0].storeProduct[i].product.specialPrice==null? presenter.model.result[0].storeProduct[i].product.specialPrice==null?
Text( Text(
"฿"+presenter.model.result[0].storeProduct[i].product.price, "฿"+presenter.model.result[0].storeProduct[i].product.price,
textAlign: TextAlign.left, textAlign: TextAlign.left,
style: TextStyle( style: TextStyle(
color: Colors.red, color: Colors.red,
fontSize: SizeConfig.getFontSize(18), fontSize: SizeConfig.getFontSize(18),
fontFamily: "SF_Pro_Text", fontFamily: "SF_Pro_Text",
fontWeight: FontWeight.w700), fontWeight: FontWeight.w700),
): ):
Container(child: Container(child:
Row(children: [ Row(children: [
Icon( Icon(
Icons.local_offer, Icons.local_offer,
color: Colors.pinkAccent, color: Colors.pinkAccent,
size: 20, size: 20,
), ),
Text( Text(
" ฿"+presenter.model.result[0].storeProduct[i].product.price, " ฿"+presenter.model.result[0].storeProduct[i].product.price,
textAlign: TextAlign.left, textAlign: TextAlign.left,
style: TextStyle( style: TextStyle(
decoration: TextDecoration.lineThrough, decoration: TextDecoration.lineThrough,
color: Colors.pinkAccent, color: Colors.pinkAccent,
fontSize: SizeConfig.getFontSize(14), fontSize: SizeConfig.getFontSize(14),
fontFamily: "SF_Pro_Text", fontFamily: "SF_Pro_Text",
fontWeight: FontWeight.w700), fontWeight: FontWeight.w700),
), ),
Text( Text(
" ฿"+presenter.model.result[0].storeProduct[i].product.specialPrice, " ฿"+presenter.model.result[0].storeProduct[i].product.specialPrice,
textAlign: TextAlign.left, textAlign: TextAlign.left,
style: TextStyle( style: TextStyle(
color: Colors.red, color: Colors.red,
fontSize: SizeConfig.getFontSize(18), fontSize: SizeConfig.getFontSize(18),
fontFamily: "SF_Pro_Text", fontFamily: "SF_Pro_Text",
fontWeight: FontWeight.w700), fontWeight: FontWeight.w700),
) )
],) ],)
) )
]), ]),
SizedBox(height: 20,), SizedBox(height: 20,),
Padding( Padding(
padding: EdgeInsets.fromLTRB(0.0, 5.0, 0.0, 0.0), padding: EdgeInsets.fromLTRB(0.0, 5.0, 0.0, 0.0),
child: Material( //Wrap with Material child: Material( //Wrap with Material
shape: RoundedRectangleBorder(borderRadius:BorderRadius.circular(30.0) ), shape: RoundedRectangleBorder(borderRadius:BorderRadius.circular(30.0) ),
elevation: 0.0, elevation: 0.0,
color: Color.fromRGBO(106, 179, 170, 1), color: Color.fromRGBO(106, 179, 170, 1),
clipBehavior: Clip.antiAlias, // Add This clipBehavior: Clip.antiAlias, // Add This
child: MaterialButton( child: MaterialButton(
minWidth:MediaQuery.of(context).size.width - 50, minWidth:MediaQuery.of(context).size.width - 50,
height: 55, height: 55,
color: Color(0xff3694A3), color: Color(0xff3694A3),
child: child:
Row( Row(
mainAxisAlignment: MainAxisAlignment.center, mainAxisAlignment: MainAxisAlignment.center,
children: [ children: [
Icon( Icon(
Icons.shopping_cart, Icons.shopping_cart,
color: Colors.white, color: Colors.white,
size: 25, size: 25,
), ),
new Text(' หยิบใส่รถเข็น', new Text(' หยิบใส่รถเข็น',
style: new TextStyle(fontSize: 16.0, color: Colors.white)), style: new TextStyle(fontSize: 16.0, color: Colors.white)),
],), ],),
onPressed: () { onPressed: () {
print(" Go to cart"); print(" Go to cart");
}, },
),
), ),
), ),
), SizedBox(height: 30,),
SizedBox(height: 30,),
Container( Container(
padding: EdgeInsets.only( padding: EdgeInsets.only(
left: SizeConfig.getPadding(20), left: SizeConfig.getPadding(20),
right: SizeConfig.getPadding(20), right: SizeConfig.getPadding(20),
top: SizeConfig.getPadding(40), top: SizeConfig.getPadding(40),
bottom: SizeConfig.getPadding(20), bottom: SizeConfig.getPadding(20),
), ),
height: SizeConfig.getHeight(1), height: SizeConfig.getHeight(1),
width: MediaQuery.of(context).size.width - 40, width: MediaQuery.of(context).size.width - 40,
color: Colors.grey, color: Colors.grey,
) )
],); ],);
}, },
), ),
), ),
Container( Container(
padding: EdgeInsets.only( padding: EdgeInsets.only(
left: SizeConfig.getPadding(20), left: SizeConfig.getPadding(20),
right: SizeConfig.getPadding(20), right: SizeConfig.getPadding(20),
top: SizeConfig.getPadding(40), top: SizeConfig.getPadding(40),
bottom: SizeConfig.getPadding(20), bottom: SizeConfig.getPadding(20),
),
height: SizeConfig.getHeight(1),
width: MediaQuery.of(context).size.width - 40,
color: Colors.grey,
), ),
height: SizeConfig.getHeight(1),
width: MediaQuery.of(context).size.width - 40, ],
color: Colors.grey, ),
),
],
); );
} }
......
import 'package:feelverapp/model/favorite/addfav_model.dart';
import 'package:feelverapp/model/shoplistdetail/shoplistdetail_Model.dart'; import 'package:feelverapp/model/shoplistdetail/shoplistdetail_Model.dart';
import 'package:feelverapp/service/Loading.dart'; import 'package:feelverapp/service/Loading.dart';
import 'package:feelverapp/service/api.dart'; import 'package:feelverapp/service/api.dart';
import 'package:feelverapp/service/base_presenter.dart'; import 'package:feelverapp/service/base_presenter.dart';
import 'package:feelverapp/ui/shop/shop_list_detail.dart'; import 'package:feelverapp/ui/shop/shop_list_detail.dart';
import 'package:feelverapp/util/SizeConfig.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:shared_preferences/shared_preferences.dart';
import 'package:url_launcher/url_launcher.dart'; import 'package:url_launcher/url_launcher.dart';
...@@ -11,7 +14,13 @@ class ShoplistdetailPresenter extends BasePresenter<ShopListDetail>{ ...@@ -11,7 +14,13 @@ class ShoplistdetailPresenter extends BasePresenter<ShopListDetail>{
Api _api; Api _api;
final formkey = GlobalKey<FormState>(); final formkey = GlobalKey<FormState>();
shoplistdetailModel model; shoplistdetailModel model;
AddfavModel addmodel;
bool fav=false;
ShoplistdetailPresenter(State<ShopListDetail> state) : super(state); ShoplistdetailPresenter(State<ShopListDetail> state) : super(state);
String uid;
Detai(String id) async{ Detai(String id) async{
...@@ -33,6 +42,54 @@ class ShoplistdetailPresenter extends BasePresenter<ShopListDetail>{ ...@@ -33,6 +42,54 @@ class ShoplistdetailPresenter extends BasePresenter<ShopListDetail>{
print('res Fail'); print('res Fail');
} }
} }
getid() async {
SharedPreferences pref = await SharedPreferences.getInstance();
setState(() {
uid = pref.getString('Id');
});
return uid;
}
Addfav(String id) async{
LoadingView(state.context).show();
_api = Api<AddfavModel>();
var res = await _api.addfav({
"customer_id": uid,
"store_id":id,
"vendor_id":id,
"product_id":id,
});
LoadingView(state.context).hide();
if (res.fail == null) {
setState(() {
addmodel = res.success;
print("complete");
fav=true;
});
showDialog(
context: state.context,
builder: (context) {
Future.delayed(Duration(seconds: 1), () {
Navigator.of(context).pop(true);
});
return AlertDialog(
content:ImageIcon(
AssetImage('assets/images/ic_fav_list.png'),
color:fav?Color(0xFFDD175F): Colors.grey,
size: SizeConfig.getFontSize(30),
) ,
title:Center(child: Text('บันทึกสำเร็จ')),
);
});
} else {
print('res Fail');
}
}
gotoDirection(String lat,String lng){ gotoDirection(String lat,String lng){
print("debug"); print("debug");
......
# Generated by pub # Generated by pub
# See https://dart.dev/tools/pub/glossary#lockfile # See https://dart.dev/tools/pub/glossary#lockfile
packages: packages:
archive:
dependency: transitive
description:
name: archive
url: "https://pub.dartlang.org"
source: hosted
version: "2.0.13"
args:
dependency: transitive
description:
name: args
url: "https://pub.dartlang.org"
source: hosted
version: "1.6.0"
async: async:
dependency: transitive dependency: transitive
description: description:
name: async name: async
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "2.4.1" version: "2.4.2"
boolean_selector: boolean_selector:
dependency: transitive dependency: transitive
description: description:
...@@ -43,34 +29,34 @@ packages: ...@@ -43,34 +29,34 @@ packages:
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "2.2.1" version: "2.2.1"
charcode: characters:
dependency: transitive dependency: transitive
description: description:
name: charcode name: characters
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.1.3" version: "1.0.0"
collection: charcode:
dependency: transitive dependency: transitive
description: description:
name: collection name: charcode
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.14.12" version: "1.1.3"
convert: clock:
dependency: transitive dependency: transitive
description: description:
name: convert name: clock
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "2.1.1" version: "1.0.1"
crypto: collection:
dependency: transitive dependency: transitive
description: description:
name: crypto name: collection
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "2.1.4" version: "1.14.13"
csslib: csslib:
dependency: transitive dependency: transitive
description: description:
...@@ -92,6 +78,13 @@ packages: ...@@ -92,6 +78,13 @@ packages:
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.0.8" version: "1.0.8"
fake_async:
dependency: transitive
description:
name: fake_async
url: "https://pub.dartlang.org"
source: hosted
version: "1.1.0"
file: file:
dependency: transitive dependency: transitive
description: description:
...@@ -156,13 +149,6 @@ packages: ...@@ -156,13 +149,6 @@ packages:
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "3.1.4" version: "3.1.4"
image:
dependency: transitive
description:
name: image
url: "https://pub.dartlang.org"
source: hosted
version: "2.1.12"
image_cropper: image_cropper:
dependency: "direct main" dependency: "direct main"
description: description:
...@@ -211,7 +197,7 @@ packages: ...@@ -211,7 +197,7 @@ packages:
name: matcher name: matcher
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "0.12.6" version: "0.12.8"
meta: meta:
dependency: transitive dependency: transitive
description: description:
...@@ -225,7 +211,7 @@ packages: ...@@ -225,7 +211,7 @@ packages:
name: path name: path
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.6.4" version: "1.7.0"
path_provider_linux: path_provider_linux:
dependency: transitive dependency: transitive
description: description:
...@@ -247,13 +233,6 @@ packages: ...@@ -247,13 +233,6 @@ packages:
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.9.0" version: "1.9.0"
petitparser:
dependency: transitive
description:
name: petitparser
url: "https://pub.dartlang.org"
source: hosted
version: "2.4.0"
platform: platform:
dependency: transitive dependency: transitive
description: description:
...@@ -289,13 +268,6 @@ packages: ...@@ -289,13 +268,6 @@ packages:
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.4.4" version: "1.4.4"
quiver:
dependency: transitive
description:
name: quiver
url: "https://pub.dartlang.org"
source: hosted
version: "2.1.3"
rflutter_alert: rflutter_alert:
dependency: "direct main" dependency: "direct main"
description: description:
...@@ -356,7 +328,7 @@ packages: ...@@ -356,7 +328,7 @@ packages:
name: stack_trace name: stack_trace
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.9.3" version: "1.9.5"
stream_channel: stream_channel:
dependency: transitive dependency: transitive
description: description:
...@@ -384,14 +356,14 @@ packages: ...@@ -384,14 +356,14 @@ packages:
name: test_api name: test_api
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "0.2.15" version: "0.2.17"
typed_data: typed_data:
dependency: transitive dependency: transitive
description: description:
name: typed_data name: typed_data
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.1.6" version: "1.2.0"
url_launcher: url_launcher:
dependency: "direct main" dependency: "direct main"
description: description:
...@@ -441,13 +413,6 @@ packages: ...@@ -441,13 +413,6 @@ packages:
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "0.1.0" version: "0.1.0"
xml:
dependency: transitive
description:
name: xml
url: "https://pub.dartlang.org"
source: hosted
version: "3.6.1"
sdks: sdks:
dart: ">=2.6.0 <3.0.0" dart: ">=2.9.0-14.0.dev <3.0.0"
flutter: ">=1.12.13+hotfix.5 <2.0.0" flutter: ">=1.12.13+hotfix.5 <2.0.0"
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment