Commit f97a4ff7 by Mobile : Ball (Apprentice)

Merge branch 'develop' of https://gitlab.2fellows.com/art/feelver into develop

# Conflicts:
#	lib/main.dart
parents 5497e545 633285b5
...@@ -34,7 +34,9 @@ class MyApp extends StatelessWidget { ...@@ -34,7 +34,9 @@ class MyApp extends StatelessWidget {
), ),
home: ReviewShopPage()
home: SplashScreenPage()
......
...@@ -14,17 +14,17 @@ class shopserviceModel { ...@@ -14,17 +14,17 @@ class shopserviceModel {
shopserviceModel( shopserviceModel(
{this.currentPage, {this.currentPage,
this.data, this.data,
this.firstPageUrl, this.firstPageUrl,
this.from, this.from,
this.lastPage, this.lastPage,
this.lastPageUrl, this.lastPageUrl,
this.nextPageUrl, this.nextPageUrl,
this.path, this.path,
this.perPage, this.perPage,
this.prevPageUrl, this.prevPageUrl,
this.to, this.to,
this.total}); this.total});
shopserviceModel.fromJson(Map<String, dynamic> json) { shopserviceModel.fromJson(Map<String, dynamic> json) {
currentPage = json['current_page']; currentPage = json['current_page'];
...@@ -76,20 +76,20 @@ class Data { ...@@ -76,20 +76,20 @@ class Data {
String price; String price;
String specialPrice; String specialPrice;
String sku; String sku;
dynamic tax; Null tax;
int quantity; int quantity;
dynamic weight; Null weight;
String visibility; String visibility;
dynamic newsFromDate; Null newsFromDate;
dynamic newsToDate; Null newsToDate;
dynamic layout; Null layout;
dynamic theme; Null theme;
String duration; String duration;
dynamic sellingStartTime; Null sellingStartTime;
dynamic sellingEndTime; Null sellingEndTime;
dynamic redemptionStartTime; Null redemptionStartTime;
dynamic redemptionEndTime; Null redemptionEndTime;
dynamic availibility; Null availibility;
String isFeatured; String isFeatured;
String isDeal; String isDeal;
String hasTeam; String hasTeam;
...@@ -107,13 +107,13 @@ class Data { ...@@ -107,13 +107,13 @@ class Data {
int attributeSetId; int attributeSetId;
int vendorId; int vendorId;
String allowRoute; String allowRoute;
String type; Null type;
int star; int star;
List<CategoryByProductId> categoryByProductId; List<CategoryByProductId> categoryByProductId;
List<Null> ratings; List<Null> ratings;
int storeProductId; int storeProductId;
String typeRateService; Null typeRateService;
String priceRateService; Null priceRateService;
int productId; int productId;
int storeId; int storeId;
String storeCode; String storeCode;
...@@ -127,62 +127,62 @@ class Data { ...@@ -127,62 +127,62 @@ class Data {
Data( Data(
{this.id, {this.id,
this.urlCode, this.urlCode,
this.name, this.name,
this.cover, this.cover,
this.excerpt, this.excerpt,
this.detail, this.detail,
this.price, this.price,
this.specialPrice, this.specialPrice,
this.sku, this.sku,
this.tax, this.tax,
this.quantity, this.quantity,
this.weight, this.weight,
this.visibility, this.visibility,
this.newsFromDate, this.newsFromDate,
this.newsToDate, this.newsToDate,
this.layout, this.layout,
this.theme, this.theme,
this.duration, this.duration,
this.sellingStartTime, this.sellingStartTime,
this.sellingEndTime, this.sellingEndTime,
this.redemptionStartTime, this.redemptionStartTime,
this.redemptionEndTime, this.redemptionEndTime,
this.availibility, this.availibility,
this.isFeatured, this.isFeatured,
this.isDeal, this.isDeal,
this.hasTeam, this.hasTeam,
this.offpeak, this.offpeak,
this.reviewStatus, this.reviewStatus,
this.relatedStatus, this.relatedStatus,
this.upSellsStatus, this.upSellsStatus,
this.crossSellsStatus, this.crossSellsStatus,
this.allowGiftMessage, this.allowGiftMessage,
this.stockStatus, this.stockStatus,
this.status, this.status,
this.businessTypeId, this.businessTypeId,
this.businessCateId, this.businessCateId,
this.businessServiceId, this.businessServiceId,
this.attributeSetId, this.attributeSetId,
this.vendorId, this.vendorId,
this.allowRoute, this.allowRoute,
this.type, this.type,
this.star, this.star,
this.categoryByProductId, this.categoryByProductId,
this.ratings, this.ratings,
this.storeProductId, this.storeProductId,
this.typeRateService, this.typeRateService,
this.priceRateService, this.priceRateService,
this.productId, this.productId,
this.storeId, this.storeId,
this.storeCode, this.storeCode,
this.storeName, this.storeName,
this.location, this.location,
this.storeStatus, this.storeStatus,
this.vendorStatus, this.vendorStatus,
this.latitude, this.latitude,
this.longitude, this.longitude,
this.popular}); this.popular});
Data.fromJson(Map<String, dynamic> json) { Data.fromJson(Map<String, dynamic> json) {
id = json['id']; id = json['id'];
...@@ -233,7 +233,12 @@ class Data { ...@@ -233,7 +233,12 @@ class Data {
categoryByProductId.add(new CategoryByProductId.fromJson(v)); categoryByProductId.add(new CategoryByProductId.fromJson(v));
}); });
} }
// if (json['ratings'] != null) {
// ratings = new List<Null>();
// json['ratings'].forEach((v) {
// ratings.add(new Null.fromJson(v));
// });
// }
storeProductId = json['store_product_id']; storeProductId = json['store_product_id'];
typeRateService = json['type_rate_service']; typeRateService = json['type_rate_service'];
priceRateService = json['price_rate_service']; priceRateService = json['price_rate_service'];
...@@ -297,7 +302,9 @@ class Data { ...@@ -297,7 +302,9 @@ class Data {
data['category_by_product_id'] = data['category_by_product_id'] =
this.categoryByProductId.map((v) => v.toJson()).toList(); this.categoryByProductId.map((v) => v.toJson()).toList();
} }
// if (this.ratings != null) {
// data['ratings'] = this.ratings.map((v) => v.toJson()).toList();
// }
data['store_product_id'] = this.storeProductId; data['store_product_id'] = this.storeProductId;
data['type_rate_service'] = this.typeRateService; data['type_rate_service'] = this.typeRateService;
data['price_rate_service'] = this.priceRateService; data['price_rate_service'] = this.priceRateService;
...@@ -326,8 +333,8 @@ class CategoryByProductId { ...@@ -326,8 +333,8 @@ class CategoryByProductId {
Null type; Null type;
String status; String status;
int sortOrder; int sortOrder;
int storeId; Null storeId;
int vendorId; Null vendorId;
Null createdAt; Null createdAt;
String updatedAt; String updatedAt;
String visibility; String visibility;
...@@ -335,21 +342,21 @@ class CategoryByProductId { ...@@ -335,21 +342,21 @@ class CategoryByProductId {
CategoryByProductId( CategoryByProductId(
{this.id, {this.id,
this.parentId, this.parentId,
this.name, this.name,
this.code, this.code,
this.displayName, this.displayName,
this.cover, this.cover,
this.detail, this.detail,
this.type, this.type,
this.status, this.status,
this.sortOrder, this.sortOrder,
this.storeId, this.storeId,
this.vendorId, this.vendorId,
this.createdAt, this.createdAt,
this.updatedAt, this.updatedAt,
this.visibility, this.visibility,
this.pivot}); this.pivot});
CategoryByProductId.fromJson(Map<String, dynamic> json) { CategoryByProductId.fromJson(Map<String, dynamic> json) {
id = json['id']; id = json['id'];
......
...@@ -107,16 +107,16 @@ class Api<T> { ...@@ -107,16 +107,16 @@ class Api<T> {
} }
Future<Response<T>> shopservice(Object body) async { Future<Response<T>> shopservice(String url) async {
var _model; var _model;
var _fail; var _fail;
var result; var result;
print("this is body"+body.toString()); print("this is body "+url.toString());
// (body as Map)['lang'] = allTranslations.currentLanguage; // (body as Map)['lang'] = allTranslations.currentLanguage;
await _httpConnection("${this._baseApi}/product/getListsProductFormat?vendor_id=9&store_id=284&is_paginate=1&per_page=1&v=1", this._headerApi, null) await _httpConnection(url.toString(), this._headerApi, null)
.then((response){ .then((response){
print("ผลลัพท์ เท่ากับ" + "${response.body}"); print("ผลลัพท์ เท่ากับ" + "${response.body}");
if(response.statusCode == 200){ if(response.statusCode == 200){
...@@ -199,20 +199,20 @@ class Api<T> { ...@@ -199,20 +199,20 @@ class Api<T> {
return result; return result;
} }
Future<Response<T>> getProductDetail(Object body) async{ Future<Response<T>> getProductDetail(String url) async{
var _model; var _model;
var _fail; var _fail;
var result; var result;
print("this is body " + body.toString()); print("this is body " + url.toString());
// (body as Map)['lang'] = allTranslations.currentLanguage; // (body as Map)['lang'] = allTranslations.currentLanguage;
await http.get(Uri.encodeFull("https://backend.feelver.com/api/product/1000?store_id=284&vendor_id=9"), headers: this._headerApi ).then((response) { await http.get(Uri.encodeFull(url.toString()), headers: this._headerApi, ).then((response) {
print("ผลลัพ เท่ากับบบบ2 " + "${response.body}"); print("ผลลัพ เท่ากับบบบ2 " + "${response.body}");
print("statusCode=${response.statusCode}"); print("statusCode=${response.statusCode}");
if (response.statusCode == 200) { if (response.statusCode == 200) {
print("INif"); print("INif");
// https://backend.feelver.com/api/product/1000?store_id=284&vendor_id=9
_model = ProductModel.fromJson(json.decode(response.body)); _model = ProductModel.fromJson(json.decode(response.body));
} else { } else {
......
import 'package:feelverapp/ui/booking/booking_detail_presenter.dart'; import 'package:feelverapp/ui/booking/booking_detail_presenter.dart';
import 'package:feelverapp/ui/booking/bookingform.dart'; import 'package:feelverapp/ui/booking/bookingform.dart';
import 'package:feelverapp/ui/payment/mycart.dart';
import 'package:feelverapp/util/SizeConfig.dart'; import 'package:feelverapp/util/SizeConfig.dart';
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
...@@ -27,6 +28,8 @@ class _BookingDetailState extends State<BookingDetail> { ...@@ -27,6 +28,8 @@ class _BookingDetailState extends State<BookingDetail> {
// print(widget.getid); // print(widget.getid);
presenter = BookingDetailtPresenter(this); presenter = BookingDetailtPresenter(this);
setState(() { setState(() {
presenter.vendor_id = widget.vendor_id;
presenter.store_id = widget.store_id;
presenter.getid = widget.getid; presenter.getid = widget.getid;
}); });
presenter.getDetail(); presenter.getDetail();
...@@ -98,6 +101,7 @@ class _BookingDetailState extends State<BookingDetail> { ...@@ -98,6 +101,7 @@ class _BookingDetailState extends State<BookingDetail> {
: Container( : Container(
padding: EdgeInsets.only( padding: EdgeInsets.only(
left: SizeConfig.getPadding(24), left: SizeConfig.getPadding(24),
right: SizeConfig.getPadding(24),
top: SizeConfig.getPadding(16), top: SizeConfig.getPadding(16),
bottom: SizeConfig.getPadding(16)), bottom: SizeConfig.getPadding(16)),
alignment: Alignment.topLeft, alignment: Alignment.topLeft,
...@@ -243,6 +247,12 @@ class _BookingDetailState extends State<BookingDetail> { ...@@ -243,6 +247,12 @@ class _BookingDetailState extends State<BookingDetail> {
// fontWeight: FontWeight.w500), // fontWeight: FontWeight.w500),
// ), // ),
// ), // ),
Divider(
color: Colors.black,
height: SizeConfig.getHeight(35),
indent: 20,
endIndent: 20,
),
SizedBox( SizedBox(
height: SizeConfig.getHeight(16), height: SizeConfig.getHeight(16),
), ),
...@@ -372,28 +382,43 @@ class _BookingDetailState extends State<BookingDetail> { ...@@ -372,28 +382,43 @@ class _BookingDetailState extends State<BookingDetail> {
fontWeight: FontWeight.w500), fontWeight: FontWeight.w500),
), ),
), ),
Container( InkWell(onTap: (){
margin: EdgeInsets.only( Navigator.push(
top: SizeConfig.getPadding(20), context,
left: SizeConfig.getPadding(250)), CupertinoPageRoute(
builder: (context) => MyCart(
// getid: presenter.model.result[0]
// .storeProduct[i].product.id,
// vendor_id: presenter.model.result[0].storeProduct[i]
// .product.vendorId,
// store_id: presenter.model.result[0].storeProduct[i].storeId,
),
),
);
},
child: Container(
margin: EdgeInsets.only(
top: SizeConfig.getPadding(20),
left: SizeConfig.getPadding(250)),
// color: Colors.red, // color: Colors.red,
width: SizeConfig.getWidth(100), width: SizeConfig.getWidth(100),
height: SizeConfig.getHeight(45), height: SizeConfig.getHeight(45),
decoration: BoxDecoration( decoration: BoxDecoration(
borderRadius: BorderRadius.circular(0), borderRadius: BorderRadius.circular(0),
color: Color.fromRGBO(238, 175, 183, 1), color: Color.fromRGBO(238, 175, 183, 1),
), ),
child: Container( child: Container(
padding: EdgeInsets.only(top: SizeConfig.getPadding(6)), padding: EdgeInsets.only(top: SizeConfig.getPadding(6)),
child: Text( child: Text(
'หยิบใส่รถเข็น', 'หยิบใส่รถเข็น',
textAlign: TextAlign.center, textAlign: TextAlign.center,
style: TextStyle( style: TextStyle(
color: Colors.white, color: Colors.white,
fontSize: SizeConfig.getFontSize(14), fontSize: SizeConfig.getFontSize(14),
fontFamily: "SF_Pro_Text", fontFamily: "SF_Pro_Text",
fontWeight: FontWeight.w500), fontWeight: FontWeight.w500),
),
), ),
), ),
), ),
......
...@@ -32,7 +32,9 @@ class BookingDetailtPresenter extends BasePresenter<BookingDetail> { ...@@ -32,7 +32,9 @@ class BookingDetailtPresenter extends BasePresenter<BookingDetail> {
_api = Api<ProductModel>(); _api = Api<ProductModel>();
var res = await _api.getProductDetail({}); var res = await _api.getProductDetail(
'https://backend.feelver.com/api/product/' + getid.toString() + '?store_id=' + store_id.toString() + '&vendor_id=' + vendor_id.toString()
);
if (res.fail == null) { if (res.fail == null) {
if (res.success.status) { if (res.success.status) {
......
...@@ -61,7 +61,21 @@ class _FavoriteState extends State<Favorite> { ...@@ -61,7 +61,21 @@ class _FavoriteState extends State<Favorite> {
), ),
child: Container( child: Container(
child: presenter.favoriteModel == null child: presenter.favoriteModel == null
? Container() ? Container(
child: Center(
child: Column(
crossAxisAlignment: CrossAxisAlignment.center,
children: <Widget>[
SizedBox(
child: CircularProgressIndicator( valueColor: new AlwaysStoppedAnimation<Color>(
Color.fromRGBO(69, 85, 79, 1),
),),
height: 30.0,
width: 30.0,
),]
))
)
: ListView.builder( : ListView.builder(
itemCount: presenter.favoriteModel.wishListItem.length, itemCount: presenter.favoriteModel.wishListItem.length,
itemBuilder: (context, i) { itemBuilder: (context, i) {
...@@ -98,7 +112,7 @@ class _FavoriteState extends State<Favorite> { ...@@ -98,7 +112,7 @@ class _FavoriteState extends State<Favorite> {
.cover, .cover,
width: SizeConfig.getWidth(110), width: SizeConfig.getWidth(110),
height: SizeConfig.getHeight(150), height: SizeConfig.getHeight(150),
fit: BoxFit.fitWidth, fit: BoxFit.cover,
), ),
Expanded( Expanded(
child: Container( child: Container(
...@@ -114,18 +128,20 @@ class _FavoriteState extends State<Favorite> { ...@@ -114,18 +128,20 @@ class _FavoriteState extends State<Favorite> {
// color: Colors.blue, // color: Colors.blue,
child: Row( child: Row(
children: <Widget>[ children: <Widget>[
Expanded( Expanded(
child: Container(
child: Container( child: Text(
child: Text( presenter.favoriteModel.wishListItem[index]
presenter.favoriteModel.wishListItem[index].product.name, .product.name,
style: TextStyle( style: TextStyle(
color: Colors.black, color: Colors.black,
fontSize: SizeConfig.getFontSize(15)), fontSize: SizeConfig.getFontSize(15),
maxLines: 2, fontFamily: "SF_Pro_Text",
), fontWeight: FontWeight.w700),
maxLines: 2,
), ),
), ),
),
// Spacer(), // Spacer(),
IconButton( IconButton(
onPressed: () { onPressed: () {
...@@ -145,8 +161,10 @@ class _FavoriteState extends State<Favorite> { ...@@ -145,8 +161,10 @@ class _FavoriteState extends State<Favorite> {
child: Text( child: Text(
'นวดเเผนไทย', 'นวดเเผนไทย',
style: TextStyle( style: TextStyle(
color: Colors.black, color: Colors.black,
), fontSize: SizeConfig.getFontSize(14),
fontFamily: "SF_Pro_Text",
fontWeight: FontWeight.w500),
), ),
), ),
SizedBox( SizedBox(
...@@ -223,7 +241,7 @@ class _FavoriteState extends State<Favorite> { ...@@ -223,7 +241,7 @@ class _FavoriteState extends State<Favorite> {
children: <Widget>[ children: <Widget>[
Container( Container(
color: Color.fromRGBO(69, 85, 79, 1), color: Color.fromRGBO(69, 85, 79, 1),
height: SizeConfig.getHeight(200), height: SizeConfig.getHeight(180),
width: MediaQuery.of(context).size.width, width: MediaQuery.of(context).size.width,
), ),
Positioned( Positioned(
...@@ -239,23 +257,17 @@ class _FavoriteState extends State<Favorite> { ...@@ -239,23 +257,17 @@ class _FavoriteState extends State<Favorite> {
), ),
), ),
Positioned( Positioned(
top: SizeConfig.getPadding(77), top: SizeConfig.getPadding(70),
left: SizeConfig.getPadding(16), left: SizeConfig.getPadding(16),
child: Container( child: Container(
child: GestureDetector( child: GestureDetector(
onTap: () { onTap: () {
showDialog( Navigator.pop(context);
context: context,
builder: (BuildContext context) {
return NavDrawer();
},
);
}, },
child: Image.asset( child: Icon(
'assets/images/ic_menu.png', Icons.keyboard_arrow_left,
height: SizeConfig.getWidth(24), color: Colors.white,
width: SizeConfig.getWidth(30), size: SizeConfig.getFontSize(40),
fit: BoxFit.cover,
), ),
), ),
), ),
......
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';
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/favorite/favorite.dart'; import 'package:feelverapp/ui/favorite/favorite.dart';
...@@ -14,16 +15,16 @@ class FavoritePresenter extends BasePresenter<Favorite> { ...@@ -14,16 +15,16 @@ class FavoritePresenter extends BasePresenter<Favorite> {
FavoritePresenter(State<Favorite> state) : super(state); FavoritePresenter(State<Favorite> state) : super(state);
Favoriteitem() async { Favoriteitem() async {
var _id = await AccountUtil.getID(); var _id = await AccountUtil.getID();
print(_id);
print("555555555555");
_api = Api<FavoriteModel>(); _api = Api<FavoriteModel>();
var res = await _api.favorite({ var res = await _api.favorite({
"customer_id": _id, "customer_id": _id,
}); });
if (res.fail == null) { if (res.fail == null) {
setState(() { setState(() {
favoriteModel = res.success; favoriteModel = res.success;
...@@ -34,11 +35,13 @@ class FavoritePresenter extends BasePresenter<Favorite> { ...@@ -34,11 +35,13 @@ class FavoritePresenter extends BasePresenter<Favorite> {
} }
Deletefavoriteitem(String id) async { Deletefavoriteitem(String id) async {
LoadingView(state.context).show();
_api = Api<DeletefavoriteModel>(); _api = Api<DeletefavoriteModel>();
var res = await _api.deletefavorite({ var res = await _api.deletefavorite({
"id": id, "id": id,
}); });
LoadingView(state.context).hide();
if (res.fail == null) { if (res.fail == null) {
setState(() { setState(() {
deletefavoriteModel = res.success; deletefavoriteModel = res.success;
......
...@@ -77,6 +77,12 @@ class _HomePageState extends State<HomePage> with TickerProviderStateMixin { ...@@ -77,6 +77,12 @@ class _HomePageState extends State<HomePage> with TickerProviderStateMixin {
height: SizeConfig.getWidth(24), height: SizeConfig.getWidth(24),
), ),
onPressed: () { onPressed: () {
setState(() {
Navigator.push(
context,
MaterialPageRoute(builder: (context) => HomePage()),
);
});
print("Pressed"); print("Pressed");
}, },
), ),
...@@ -259,7 +265,7 @@ class _HomePageState extends State<HomePage> with TickerProviderStateMixin { ...@@ -259,7 +265,7 @@ class _HomePageState extends State<HomePage> with TickerProviderStateMixin {
child: ClipRRect( child: ClipRRect(
borderRadius: BorderRadius.all( borderRadius: BorderRadius.all(
Radius.circular(SizeConfig.getWidth(56))), Radius.circular(SizeConfig.getWidth(56))),
child: Image.network( child: presenter.getmodel.result[0].image==null?Container(): Image.network(
presenter.getmodel.result[0].image, presenter.getmodel.result[0].image,
fit: BoxFit.contain, fit: BoxFit.contain,
width: SizeConfig.getWidth(30), width: SizeConfig.getWidth(30),
...@@ -285,7 +291,7 @@ class _HomePageState extends State<HomePage> with TickerProviderStateMixin { ...@@ -285,7 +291,7 @@ class _HomePageState extends State<HomePage> with TickerProviderStateMixin {
child: ClipRRect( child: ClipRRect(
borderRadius: BorderRadius.all( borderRadius: BorderRadius.all(
Radius.circular(SizeConfig.getWidth(56))), Radius.circular(SizeConfig.getWidth(56))),
child: Image.network( child: presenter.getmodel.result[0].image==null?Container(): Image.network(
presenter.getmodel.result[0].image, presenter.getmodel.result[0].image,
fit: BoxFit.contain, fit: BoxFit.contain,
width: SizeConfig.getWidth(30), width: SizeConfig.getWidth(30),
......
...@@ -155,7 +155,7 @@ class _NavDrawerState extends State<NavDrawer> with TickerProviderStateMixin { ...@@ -155,7 +155,7 @@ class _NavDrawerState extends State<NavDrawer> with TickerProviderStateMixin {
left: SizeConfig.getPadding(30)), left: SizeConfig.getPadding(30)),
alignment: Alignment.topLeft, alignment: Alignment.topLeft,
child: Text( child: Text(
'My order Status', 'My order ',
style: TextStyle( style: TextStyle(
color: Colors.black, color: Colors.black,
fontSize: SizeConfig.getFontSize(16), fontSize: SizeConfig.getFontSize(16),
...@@ -164,165 +164,166 @@ class _NavDrawerState extends State<NavDrawer> with TickerProviderStateMixin { ...@@ -164,165 +164,166 @@ class _NavDrawerState extends State<NavDrawer> with TickerProviderStateMixin {
), ),
), ),
), ),
GestureDetector( // GestureDetector(
onTap: () {}, // onTap: () {},
child: Container( // child: Container(
padding: EdgeInsets.only( // padding: EdgeInsets.only(
top: SizeConfig.getPadding(12), // top: SizeConfig.getPadding(12),
left: SizeConfig.getPadding(30)), // left: SizeConfig.getPadding(30)),
alignment: Alignment.topLeft, // alignment: Alignment.topLeft,
child: Text( // child: Text(
'รายการสั่งซื้อที่สำเร็จ', // 'รายการสั่งซื้อที่สำเร็จ',
style: TextStyle( // style: TextStyle(
color: Colors.black, // color: Colors.black,
fontSize: SizeConfig.getFontSize(16), // fontSize: SizeConfig.getFontSize(16),
fontFamily: "SF_Pro_Text", // fontFamily: "SF_Pro_Text",
fontWeight: FontWeight.w600), // fontWeight: FontWeight.w600),
), // ),
), // ),
), // ),
GestureDetector( // GestureDetector(
onTap: () {}, // onTap: () {},
child: Container( // child: Container(
padding: EdgeInsets.only( // padding: EdgeInsets.only(
top: SizeConfig.getPadding(12), // top: SizeConfig.getPadding(12),
left: SizeConfig.getPadding(30)), // left: SizeConfig.getPadding(30)),
alignment: Alignment.topLeft, // alignment: Alignment.topLeft,
child: Text( // child: Text(
'จองแล้ว', // 'จองแล้ว',
style: TextStyle( // style: TextStyle(
color: Colors.black, // color: Colors.black,
fontSize: SizeConfig.getFontSize(16), // fontSize: SizeConfig.getFontSize(16),
fontFamily: "SF_Pro_Text", // fontFamily: "SF_Pro_Text",
fontWeight: FontWeight.w600), // fontWeight: FontWeight.w600),
), // ),
), // ),
), // ),
GestureDetector( // GestureDetector(
onTap: () {}, // onTap: () {},
child: Container( // child: Container(
padding: EdgeInsets.only( // padding: EdgeInsets.only(
top: SizeConfig.getPadding(12), // top: SizeConfig.getPadding(12),
left: SizeConfig.getPadding(30)), // left: SizeConfig.getPadding(30)),
alignment: Alignment.topLeft, // alignment: Alignment.topLeft,
child: Text( // child: Text(
'ยังไม่ได้จอง', // 'ยังไม่ได้จอง',
style: TextStyle( // style: TextStyle(
color: Colors.black, // color: Colors.black,
fontSize: SizeConfig.getFontSize(16), // fontSize: SizeConfig.getFontSize(16),
fontFamily: "SF_Pro_Text", // fontFamily: "SF_Pro_Text",
fontWeight: FontWeight.w600), // fontWeight: FontWeight.w600),
), // ),
), // ),
), // ),
GestureDetector( // GestureDetector(
onTap: () {}, // onTap: () {},
child: Container( // child: Container(
padding: EdgeInsets.only( // padding: EdgeInsets.only(
top: SizeConfig.getPadding(12), // top: SizeConfig.getPadding(12),
left: SizeConfig.getPadding(30)), // left: SizeConfig.getPadding(30)),
alignment: Alignment.topLeft, // alignment: Alignment.topLeft,
child: Text( // child: Text(
'รายการสั่งซื้อไม่สำเร็จ', // 'รายการสั่งซื้อไม่สำเร็จ',
style: TextStyle( // style: TextStyle(
color: Colors.black, // color: Colors.black,
fontSize: SizeConfig.getFontSize(16), // fontSize: SizeConfig.getFontSize(16),
fontFamily: "SF_Pro_Text", // fontFamily: "SF_Pro_Text",
fontWeight: FontWeight.w600), // fontWeight: FontWeight.w600),
), // ),
), // ),
), // ),
Container( // Container(
padding: EdgeInsets.only( // padding: EdgeInsets.only(
top: SizeConfig.getPadding(30), // top: SizeConfig.getPadding(30),
left: SizeConfig.getPadding(30)), // left: SizeConfig.getPadding(30)),
alignment: Alignment.topLeft, // alignment: Alignment.topLeft,
child: Text( // child: Text(
'language', // 'language',
style: TextStyle( // style: TextStyle(
color: Colors.black, // color: Colors.black,
fontSize: SizeConfig.getFontSize(16), // fontSize: SizeConfig.getFontSize(16),
fontFamily: "SF_Pro_Text", // fontFamily: "SF_Pro_Text",
fontWeight: FontWeight.w600), // fontWeight: FontWeight.w600),
), // ),
), // ),
Row( // Row(
children: <Widget>[ // children: <Widget>[
Container( // Container(
padding: EdgeInsets.only( // padding: EdgeInsets.only(
left: SizeConfig.getPadding(30), // left: SizeConfig.getPadding(30),
top: SizeConfig.getPadding(16)), // top: SizeConfig.getPadding(16)),
child: Image.asset( // child: Image.asset(
'assets/images/ic_th.png', // 'assets/images/ic_th.png',
width: SizeConfig.getWidth(50), // width: SizeConfig.getWidth(50),
height: SizeConfig.getWidth(50), // height: SizeConfig.getWidth(50),
), // ),
), // ),
Container( // Container(
padding: EdgeInsets.only( // padding: EdgeInsets.only(
left: SizeConfig.getPadding(30), // left: SizeConfig.getPadding(30),
top: SizeConfig.getPadding(16)), // top: SizeConfig.getPadding(16)),
child: Image.asset( // child: Image.asset(
'assets/images/ic_en.png', // 'assets/images/ic_en.png',
width: SizeConfig.getWidth(50), // width: SizeConfig.getWidth(50),
height: SizeConfig.getWidth(50), // height: SizeConfig.getWidth(50),
), // ),
), // ),
Container( // Container(
padding: EdgeInsets.only( // padding: EdgeInsets.only(
left: SizeConfig.getPadding(30), // left: SizeConfig.getPadding(30),
top: SizeConfig.getPadding(16)), // top: SizeConfig.getPadding(16)),
child: Image.asset( // child: Image.asset(
'assets/images/ic_ch.png', // 'assets/images/ic_ch.png',
width: SizeConfig.getWidth(50), // width: SizeConfig.getWidth(50),
height: SizeConfig.getWidth(50), // height: SizeConfig.getWidth(50),
), // ),
), // ),
], // ],
), // ),
Row( // Row(
children: <Widget>[ // children: <Widget>[
Container( // Container(
padding: EdgeInsets.only( // padding: EdgeInsets.only(
top: 0, left: SizeConfig.getPadding(42)), // top: 0, left: SizeConfig.getPadding(42)),
alignment: Alignment.topLeft, // alignment: Alignment.topLeft,
child: Text( // child: Text(
'TH', // 'TH',
style: TextStyle( // style: TextStyle(
color: Colors.black, // color: Colors.black,
fontSize: SizeConfig.getFontSize(16), // fontSize: SizeConfig.getFontSize(16),
fontFamily: "SF_Pro_Text", // fontFamily: "SF_Pro_Text",
fontWeight: FontWeight.w600), // fontWeight: FontWeight.w600),
), // ),
), // ),
Container( // Container(
padding: EdgeInsets.only( // padding: EdgeInsets.only(
top: 0, left: SizeConfig.getPadding(60)), // top: 0, left: SizeConfig.getPadding(60)),
alignment: Alignment.topLeft, // alignment: Alignment.topLeft,
child: Text( // child: Text(
'EN', // 'EN',
style: TextStyle( // style: TextStyle(
color: Colors.black, // color: Colors.black,
fontSize: SizeConfig.getFontSize(16), // fontSize: SizeConfig.getFontSize(16),
fontFamily: "SF_Pro_Text", // fontFamily: "SF_Pro_Text",
fontWeight: FontWeight.w600), // fontWeight: FontWeight.w600),
), // ),
), // ),
Container( // Container(
padding: EdgeInsets.only( // padding: EdgeInsets.only(
top: 0, left: SizeConfig.getPadding(60)), // top: 0, left: SizeConfig.getPadding(60)),
alignment: Alignment.topLeft, // alignment: Alignment.topLeft,
child: Text( // child: Text(
'CH', // 'CH',
style: TextStyle( // style: TextStyle(
color: Colors.black, // color: Colors.black,
fontSize: SizeConfig.getFontSize(16), // fontSize: SizeConfig.getFontSize(16),
fontFamily: "SF_Pro_Text", // fontFamily: "SF_Pro_Text",
fontWeight: FontWeight.w600), // fontWeight: FontWeight.w600),
), // ),
), // ),
], // ],
), // ),
SizedBox(height:50),
Row( Row(
children: <Widget>[ children: <Widget>[
Container( Container(
......
...@@ -48,9 +48,8 @@ class _MyCartState extends State<MyCart> { ...@@ -48,9 +48,8 @@ class _MyCartState extends State<MyCart> {
), ),
), ),
Container( Container(
height: SizeConfig.getHeight(40), height: SizeConfig.getHeight(40),
width: SizeConfig.getWidth(200), width: SizeConfig.getWidth(180),
color: Colors.white, color: Colors.white,
child: TextField( child: TextField(
decoration: InputDecoration( decoration: InputDecoration(
...@@ -62,7 +61,7 @@ class _MyCartState extends State<MyCart> { ...@@ -62,7 +61,7 @@ class _MyCartState extends State<MyCart> {
icon: Icon( icon: Icon(
Icons.keyboard_arrow_right, Icons.keyboard_arrow_right,
color: Colors.white, color: Colors.white,
size: 40, size: 30,
), ),
onPressed: () {}), onPressed: () {}),
], ],
...@@ -121,7 +120,6 @@ class _MyCartState extends State<MyCart> { ...@@ -121,7 +120,6 @@ class _MyCartState extends State<MyCart> {
), ),
Spacer(), Spacer(),
Container( Container(
child: RaisedButton( child: RaisedButton(
shape: RoundedRectangleBorder( shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(30.0), borderRadius: BorderRadius.circular(30.0),
...@@ -163,50 +161,52 @@ class _MyCartState extends State<MyCart> { ...@@ -163,50 +161,52 @@ class _MyCartState extends State<MyCart> {
return Column( return Column(
children: <Widget>[ children: <Widget>[
header(), header(),
containt(), SizedBox(
height: SizeConfig.getHeight(15),
),
list1(),
], ],
); );
} }
Widget containt() { // Widget containt() {
return Expanded( // return Expanded(
child: SingleChildScrollView( // child: SingleChildScrollView(
padding: EdgeInsets.only( // padding: EdgeInsets.only(
left: SizeConfig.getPadding(10), // left: SizeConfig.getPadding(10),
right: SizeConfig.getPadding(10), // right: SizeConfig.getPadding(10),
top: SizeConfig.getPadding(8), // top: SizeConfig.getPadding(8),
bottom: SizeConfig.getPadding(8), // bottom: SizeConfig.getPadding(8),
), // ),
child: Container( // child: Container(
alignment: FractionalOffset.topLeft, // alignment: FractionalOffset.topLeft,
child: Column( // child: Column(
crossAxisAlignment: CrossAxisAlignment.start, // crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[ // children: <Widget>[
SizedBox( // SizedBox(
height: SizeConfig.getHeight(15), // height: SizeConfig.getHeight(15),
), // ),
list1(), // list1(),
list2(), // Divider(
Divider( // color: Colors.black,
color: Colors.black, // height: SizeConfig.getHeight(40),
height: SizeConfig.getHeight(40), // ),
), //// list3(),
// list3(), // ],
], // ),
), // ),
), // ),
), // );
); // }
}
Widget list1() { Widget list1() {
return Card( return Card(
elevation: 5, elevation: 5,
child: Container( child: Container(
padding: EdgeInsets.only( padding: EdgeInsets.only(
left: SizeConfig.getPadding(12), left: SizeConfig.getPadding(16),
top: SizeConfig.getPadding(8), top: SizeConfig.getPadding(8),
right: SizeConfig.getPadding(10), right: SizeConfig.getPadding(16),
bottom: SizeConfig.getPadding(8), bottom: SizeConfig.getPadding(8),
), ),
// color: Colors.red, // color: Colors.red,
...@@ -222,7 +222,7 @@ class _MyCartState extends State<MyCart> { ...@@ -222,7 +222,7 @@ class _MyCartState extends State<MyCart> {
Expanded( Expanded(
child: Container( child: Container(
padding: EdgeInsets.only( padding: EdgeInsets.only(
left: SizeConfig.getPadding(10), left: SizeConfig.getPadding(5),
right: SizeConfig.getPadding(5), right: SizeConfig.getPadding(5),
), ),
child: Column( child: Column(
...@@ -269,168 +269,6 @@ class _MyCartState extends State<MyCart> { ...@@ -269,168 +269,6 @@ class _MyCartState extends State<MyCart> {
// color: Colors.yellow, // color: Colors.yellow,
child: Row( child: Row(
children: <Widget>[ children: <Widget>[
Image.asset(
'assets/images/clock.png',
height: SizeConfig.getHeight(20),
width: SizeConfig.getWidth(20),
),
SizedBox(
width: SizeConfig.getWidth(5),
),
Text('90 นาที'),
Spacer(),
Icon(
Icons.local_offer,
color: Color(0xFFEEAFB7),
),
Text(
'฿1,599.00',
style: TextStyle(
decoration: TextDecoration.lineThrough,
fontSize: SizeConfig.getFontSize(16),
fontFamily: "SF_Pro_Text",
color: Color(0xFFEEAFB7),
),
),
],
),
),
SizedBox(
height: SizeConfig.getHeight(5),
),
Container(
// color: Colors.orangeAccent,
child: Row(
children: <Widget>[
SizedBox(
width: SizeConfig.getPadding(20),
height: SizeConfig.getPadding(20),
child: RaisedButton(
child: Text('-'),
padding: EdgeInsets.only(
right: SizeConfig.getPadding(0),
),
onPressed: () {
setState(() {
a = a - 1;
});
},
),
),
Padding(
padding: const EdgeInsets.only(right: 8, left: 8),
child: Text('$a'),
),
SizedBox(
width: SizeConfig.getPadding(20),
height: SizeConfig.getPadding(20),
child: RaisedButton(
child: Text('+'),
padding: EdgeInsets.only(
right: SizeConfig.getPadding(0),
),
onPressed: () {
setState(() {
a = a + 1;
});
},
),
),
Spacer(),
Text(
'฿1,200.00',
style: TextStyle(
fontSize: SizeConfig.getFontSize(20),
color: Color(0xFFFD2956),
fontFamily: "SF_Pro_Text",
fontWeight: FontWeight.bold,
),
),
],
),
),
],
),
),
),
],
),
),
);
}
Widget list2() {
return Card(
child: Container(
// color: Colors.red,
padding: EdgeInsets.only(
left: SizeConfig.getPadding(12),
top: SizeConfig.getPadding(8),
right: SizeConfig.getPadding(10),
bottom: SizeConfig.getPadding(8),
),
child: Row(
mainAxisAlignment: MainAxisAlignment.start,
children: <Widget>[
Image.asset(
'assets/images/demo_img.png',
width: SizeConfig.getWidth(110),
height: SizeConfig.getHeight(150),
fit: BoxFit.fitWidth,
),
Expanded(
child: Container(
padding: EdgeInsets.only(
left: SizeConfig.getPadding(10),
right: SizeConfig.getPadding(5),
),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Container(
// color: Colors.blue,
child: Row(
children: <Widget>[
Text(
'Ivory Relax and Spa',
style: TextStyle(
color: Colors.black,
fontWeight: FontWeight.bold,
fontSize: SizeConfig.getFontSize(16),
),
),
Spacer(),
IconButton(
icon: Icon(Icons.delete),
color: Colors.black,
onPressed: () {
print('delete');
},
),
],
),
),
Container(
// color: Colors.white,
child: Text(
'นวดเเผนไทย',
style: TextStyle(
color: Colors.black,
fontWeight: FontWeight.bold,
fontSize: SizeConfig.getFontSize(16),
),
),
),
SizedBox(
height: SizeConfig.getHeight(5),
),
Container(
// color: Colors.yellow,
child: Row(
children: <Widget>[
Image.asset( Image.asset(
'assets/images/clock.png', 'assets/images/clock.png',
height: SizeConfig.getHeight(20), height: SizeConfig.getHeight(20),
...@@ -522,82 +360,41 @@ class _MyCartState extends State<MyCart> { ...@@ -522,82 +360,41 @@ class _MyCartState extends State<MyCart> {
} }
Widget header() { Widget header() {
return Container( return Stack(
child: Stack( children: <Widget>[
children: <Widget>[ Container(
Container( color: Color.fromRGBO(69, 85, 79, 1),
color: Color.fromRGBO(69, 85, 79, 1), height: SizeConfig.getHeight(150),
height: SizeConfig.getHeight(200), width: MediaQuery.of(context).size.width,
width: MediaQuery.of(context).size.width, ),
), Positioned(
Positioned( top: SizeConfig.getPadding(50),
top: SizeConfig.getPadding(50), left: SizeConfig.getPadding(MediaQuery.of(context).size.width / 3.5),
left: child: Container(
SizeConfig.getPadding(MediaQuery.of(context).size.width / 3.5), alignment: Alignment.topCenter,
child: Container( child: Image.asset(
alignment: Alignment.topCenter, 'assets/images/feelver_banner.png',
child: Image.asset( width: MediaQuery.of(context).size.width / 2.5,
'assets/images/feelver_banner.png',
width: MediaQuery.of(context).size.width / 2.5,
),
),
),
Positioned(
top: SizeConfig.getPadding(77),
left: SizeConfig.getPadding(16),
child: Container(
child: GestureDetector(
onTap: () {
showDialog(
context: context,
builder: (BuildContext context) {
return NavDrawer();
},
);
},
child: Image.asset(
'assets/images/ic_menu.png',
height: SizeConfig.getWidth(24),
width: SizeConfig.getWidth(30),
fit: BoxFit.cover,
),
),
),
),
Positioned(
top: SizeConfig.getPadding(77),
right: SizeConfig.getPadding(60),
child: Container(
child: Image.asset(
'assets/images/ic_noti.png',
height: SizeConfig.getWidth(30),
width: SizeConfig.getWidth(30),
fit: BoxFit.cover,
),
), ),
), ),
Positioned( ),
top: SizeConfig.getPadding(77), Positioned(
right: SizeConfig.getPadding(20), top: SizeConfig.getPadding(70),
child: InkWell( left: SizeConfig.getPadding(16),
// onTap: () { child: Container(
// Navigator.push( child: GestureDetector(
// context, onTap: () {
// MaterialPageRoute(builder: (context) => LoginPage()), Navigator.pop(context);
// ); },
// }, child: Icon(
child: Container( Icons.keyboard_arrow_left,
child: Image.asset( color: Colors.white,
'assets/images/ic_userimg.png', size: SizeConfig.getFontSize(40),
height: SizeConfig.getWidth(30),
width: SizeConfig.getWidth(30),
fit: BoxFit.cover,
),
), ),
), ),
), ),
], ),
), ],
); );
} }
} }
...@@ -187,9 +187,11 @@ class _ShopNearbyPlacesPageState extends State<ShopNearbyPlacesPage> ...@@ -187,9 +187,11 @@ class _ShopNearbyPlacesPageState extends State<ShopNearbyPlacesPage>
return presenter.getmodel == null return presenter.getmodel == null
? Container( ? Container(
child: Center( child: Center(
child: CircularProgressIndicator( child: CircularProgressIndicator(
valueColor: new AlwaysStoppedAnimation<Color>(Colors.teal), valueColor: new AlwaysStoppedAnimation<Color>(Colors.teal),
))) ),
),
)
: Container( : Container(
padding: EdgeInsets.only( padding: EdgeInsets.only(
top: SizeConfig.getPadding(80), top: SizeConfig.getPadding(80),
...@@ -223,7 +225,7 @@ class _ShopNearbyPlacesPageState extends State<ShopNearbyPlacesPage> ...@@ -223,7 +225,7 @@ class _ShopNearbyPlacesPageState extends State<ShopNearbyPlacesPage>
CupertinoPageRoute( CupertinoPageRoute(
builder: (context) => ShopListDetail( builder: (context) => ShopListDetail(
// id: id, // id: id,
), ),
), ),
); );
}); });
......
import 'package:carousel_pro/carousel_pro.dart'; import 'package:carousel_pro/carousel_pro.dart';
import 'package:feelverapp/service/api.dart'; import 'package:feelverapp/service/api.dart';
import 'package:feelverapp/ui/booking/bookingflow.dart';
import 'package:feelverapp/ui/home/home.dart'; import 'package:feelverapp/ui/home/home.dart';
import 'package:feelverapp/ui/menu/menu.dart'; import 'package:feelverapp/ui/menu/menu.dart';
import 'package:feelverapp/ui/payment/mycart.dart';
import 'package:feelverapp/ui/review_shop/review_shop_page.dart';
import 'package:feelverapp/ui/shop/shop_main.dart';
import 'package:feelverapp/ui/shop/shop_reviews.dart';
import 'package:feelverapp/ui/shop/shop_main.dart';
import 'package:feelverapp/ui/shop/shoplistdetail_presenter.dart'; import 'package:feelverapp/ui/shop/shoplistdetail_presenter.dart';
import 'package:feelverapp/util/SizeConfig.dart'; import 'package:feelverapp/util/SizeConfig.dart';
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
class ShopListDetail extends StatefulWidget { class ShopListDetail extends StatefulWidget {
String id; String id;
ShopListDetail({Key key, this.id,}) : super(key: key);
ShopListDetail({
Key key,
this.id,
}) : super(key: key);
@override @override
_ShopListDetailState createState() => _ShopListDetailState(); _ShopListDetailState createState() => _ShopListDetailState();
} }
class _ShopListDetailState extends State<ShopListDetail> { class _ShopListDetailState extends State<ShopListDetail> {
bool fav=false; bool fav = false;
ShoplistdetailPresenter presenter; ShoplistdetailPresenter presenter;
@override @override
...@@ -26,9 +37,8 @@ class _ShopListDetailState extends State<ShopListDetail> { ...@@ -26,9 +37,8 @@ class _ShopListDetailState extends State<ShopListDetail> {
presenter.Detai(widget.id); presenter.Detai(widget.id);
presenter.getid(); 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);
} }
@override @override
...@@ -40,19 +50,22 @@ class _ShopListDetailState extends State<ShopListDetail> { ...@@ -40,19 +50,22 @@ class _ShopListDetailState extends State<ShopListDetail> {
Widget build(BuildContext context) { Widget build(BuildContext context) {
SizeConfig(context); SizeConfig(context);
return Scaffold( return Scaffold(
body:presenter.model==null?Container(child: body: presenter.model == null
Center( child: CircularProgressIndicator( ? Container(
child: Center(
child: CircularProgressIndicator(
valueColor: new AlwaysStoppedAnimation<Color>( valueColor: new AlwaysStoppedAnimation<Color>(
Color.fromRGBO(69, 85, 79, 1), Color.fromRGBO(69, 85, 79, 1),
), ),
),), ),
): _setupView(), ),
)
: _setupView(),
); );
} }
_setupView() { _setupView() {
return SingleChildScrollView( return SingleChildScrollView(
child: Column( child: Column(
children: <Widget>[ children: <Widget>[
Stack( Stack(
...@@ -72,151 +85,153 @@ class _ShopListDetailState extends State<ShopListDetail> { ...@@ -72,151 +85,153 @@ class _ShopListDetailState extends State<ShopListDetail> {
'assets/images/feelver_banner.png', 'assets/images/feelver_banner.png',
width: MediaQuery.of(context).size.width / 2.5, width: MediaQuery.of(context).size.width / 2.5,
), ),
// Image.network( // Image.network(
// Api.baseApiforimage+ presenter.model.result[0].storeLogo, // Api.baseApiforimage+ presenter.model.result[0].storeLogo,
// height: SizeConfig.getWidth(180), // height: SizeConfig.getWidth(180),
// width: MediaQuery.of(context).size.width, // width: MediaQuery.of(context).size.width,
// fit: BoxFit.cover, // fit: BoxFit.cover,
// ), // ),
), ),
), ),
Positioned( Positioned(
top: SizeConfig.getPadding(77), top: SizeConfig.getPadding(70),
left: SizeConfig.getPadding(16), left: SizeConfig.getPadding(16),
child: Container( child: Container(
child: GestureDetector( child: GestureDetector(
onTap: () { onTap: () {
Navigator.pop(context); Navigator.pop(context);
}, },
child: Icon( child: Icon(
Icons.keyboard_arrow_left, Icons.keyboard_arrow_left,
color: Colors.white, color: Colors.white,
size: SizeConfig.getFontSize(24), size: SizeConfig.getFontSize(40),
),
), ),
), ),
),
), ),
], ],
), ),
Container( Container(
height: SizeConfig.getHeight(240), height: SizeConfig.getHeight(270),
child: Stack( child: Stack(
children: <Widget>[ children: <Widget>[
Container( Container(
height: SizeConfig.getHeight(190), height: SizeConfig.getHeight(230),
width: SizeConfig.getHeight(350), width: SizeConfig.getWidth(MediaQuery.of(context).size.width),
child: Carousel( child: Carousel(
images: [
images: [ Image.network(
presenter.model.result[0].storeCover,
fit: BoxFit.cover,
Image.network(presenter.model.result[0].storeCover,fit: BoxFit.cover,), ),
Image.network(presenter.model.result[0].storeCover,fit: BoxFit.cover,), Image.network(
Image.network(presenter.model.result[0].storeCover,fit: BoxFit.cover,), presenter.model.result[0].storeCover,
Image.network(presenter.model.result[0].storeCover,fit: BoxFit.cover,), fit: BoxFit.cover,
], ),
animationDuration: const Duration(milliseconds: 300), Image.network(
dotSize: 8.0, presenter.model.result[0].storeCover,
dotSpacing: 25.0, fit: BoxFit.cover,
dotIncreaseSize: 2.0, ),
dotColor: Colors.white, Image.network(
dotBgColor: Colors.transparent, presenter.model.result[0].storeCover,
// showIndicator: true, fit: BoxFit.cover,
indicatorBgPadding: 20.0, ),
boxFit: BoxFit.cover, ],
radius: Radius.circular(0.0), animationDuration: const Duration(milliseconds: 300),
overlayShadow: false, dotSize: 8.0,
// overlayShadowColors: Colors.transparent, dotSpacing: 25.0,
// overlayShadowSize: 0.5, dotIncreaseSize: 2.0,
autoplay: true, dotColor: Colors.white,
), dotBgColor: Colors.transparent,
), // showIndicator: true,
Positioned( indicatorBgPadding: 20.0,
boxFit: BoxFit.cover,
radius: Radius.circular(0.0),
overlayShadow: false,
// overlayShadowColors: Colors.transparent,
// overlayShadowSize: 0.5,
autoplay: true,
),
),
Positioned(
right: SizeConfig.getPadding(16), right: SizeConfig.getPadding(16),
top: SizeConfig.getPadding(16), top: SizeConfig.getPadding(16),
child: InkResponse( child: InkResponse(
highlightShape: BoxShape.circle, highlightShape: BoxShape.circle,
highlightColor: Color(0xFFDD175F), highlightColor: Color(0xFFDD175F),
focusColor:Color(0xFFDD175F), focusColor: Color(0xFFDD175F),
splashColor: Color(0xFFDD175F), splashColor: Color(0xFFDD175F),
onTap: () { onTap: () {
setState(() {
presenter.fav
? presenter.fav = false
setState(() { : presenter.Addfav(widget.id);
presenter.fav?presenter.fav=false: });
},
presenter.Addfav(widget.id); child: ImageIcon(
AssetImage('assets/images/ic_fav_list.png'),
color: presenter.fav ? Color(0xFFDD175F) : Colors.white,
size: SizeConfig.getFontSize(30),
}); ),
},
child:ImageIcon(
AssetImage('assets/images/ic_fav_list.png'),
color:presenter.fav?Color(0xFFDD175F): Colors.white,
size: SizeConfig.getFontSize(30),
), ),
),), ),
Positioned( Positioned(
left: SizeConfig.getPadding(16), left: SizeConfig.getPadding(16),
top: SizeConfig.getPadding(165), top: SizeConfig.getPadding(165),
child: Image.asset( child: Image.asset(
'assets/images/pin_list.png', 'assets/images/pin_list.png',
width: SizeConfig.getWidth(50), width: SizeConfig.getWidth(60),
height: SizeConfig.getWidth(50), height: SizeConfig.getWidth(60),
), ),
), ),
Positioned( Positioned(
left: SizeConfig.getPadding(75), left: SizeConfig.getPadding(80),
top: SizeConfig.getPadding(190), top: SizeConfig.getPadding(200),
child: GestureDetector( child: GestureDetector(
onTap: (){ onTap: () {
print( presenter.model.result[0].location); print(presenter.model.result[0].location);
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(
values.forEach(print); ","); // split() will split from . and gives new List with separated elements.
print("lat ="+values[0]); values.forEach(print);
print("lng ="+values[1]); print("lat =" + values[0]);
presenter.gotoDirection(values[0], values[1]); print("lng =" + values[1]);
}, presenter.gotoDirection(values[0], values[1]);
child: Text( },
"นำทาง", child: Text(
textAlign: TextAlign.left, "นำทาง",
style: TextStyle( textAlign: TextAlign.left,
decoration: TextDecoration.underline, style: TextStyle(
color: Colors.grey, decoration: TextDecoration.underline,
fontSize: SizeConfig.getFontSize(13), color: Colors.grey,
fontFamily: "SF_Pro_Text", fontSize: SizeConfig.getFontSize(13),
fontWeight: FontWeight.w700), fontFamily: "SF_Pro_Text",
),) fontWeight: FontWeight.w700),
), ),
)),
], ],
), ),
), ),
Container( SizedBox(
padding: EdgeInsets.only( height: SizeConfig.getHeight(16),
left: SizeConfig.getPadding(24),
right: SizeConfig.getPadding(24),
bottom: SizeConfig.getPadding(5),
), ),
alignment: Alignment.topLeft, Container(
child: Text( padding: EdgeInsets.only(
left: SizeConfig.getPadding(24),
right: SizeConfig.getPadding(24),
bottom: SizeConfig.getPadding(5),
),
alignment: Alignment.topLeft,
child: Text(
presenter.model.result[0].storeName, presenter.model.result[0].storeName,
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),
),
), ),
),
Container( Container(
padding: EdgeInsets.only( padding: EdgeInsets.only(
left: SizeConfig.getPadding(24), left: SizeConfig.getPadding(24),
...@@ -224,7 +239,7 @@ class _ShopListDetailState extends State<ShopListDetail> { ...@@ -224,7 +239,7 @@ class _ShopListDetailState extends State<ShopListDetail> {
bottom: SizeConfig.getPadding(15)), bottom: SizeConfig.getPadding(15)),
alignment: Alignment.topLeft, alignment: Alignment.topLeft,
child: Text( child: Text(
"โทร "+presenter.model.result[0].phone, "โทร " + presenter.model.result[0].phone,
textAlign: TextAlign.left, textAlign: TextAlign.left,
style: TextStyle( style: TextStyle(
color: Colors.grey, color: Colors.grey,
...@@ -233,14 +248,14 @@ class _ShopListDetailState extends State<ShopListDetail> { ...@@ -233,14 +248,14 @@ class _ShopListDetailState extends State<ShopListDetail> {
fontWeight: FontWeight.w500), fontWeight: FontWeight.w500),
), ),
), ),
Container( Container(
padding: EdgeInsets.only( padding: EdgeInsets.only(
left: SizeConfig.getPadding(24), left: SizeConfig.getPadding(24),
right: SizeConfig.getPadding(24), right: SizeConfig.getPadding(24),
bottom: SizeConfig.getPadding(15)), bottom: SizeConfig.getPadding(15)),
alignment: Alignment.topLeft, alignment: Alignment.topLeft,
child: Text( child: Text(
"email "+presenter.model.result[0].email, "email " + presenter.model.result[0].email,
textAlign: TextAlign.left, textAlign: TextAlign.left,
style: TextStyle( style: TextStyle(
color: Colors.grey, color: Colors.grey,
...@@ -249,7 +264,6 @@ class _ShopListDetailState extends State<ShopListDetail> { ...@@ -249,7 +264,6 @@ class _ShopListDetailState extends State<ShopListDetail> {
fontWeight: FontWeight.w500), fontWeight: FontWeight.w500),
), ),
), ),
Container( Container(
padding: EdgeInsets.only( padding: EdgeInsets.only(
left: SizeConfig.getPadding(24), left: SizeConfig.getPadding(24),
...@@ -257,7 +271,7 @@ class _ShopListDetailState extends State<ShopListDetail> { ...@@ -257,7 +271,7 @@ class _ShopListDetailState extends State<ShopListDetail> {
bottom: SizeConfig.getPadding(15)), bottom: SizeConfig.getPadding(15)),
alignment: Alignment.topLeft, alignment: Alignment.topLeft,
child: Text( child: Text(
"ที่อยู่ "+ presenter.model.result[0].address, "ที่อยู่ " + presenter.model.result[0].address,
textAlign: TextAlign.left, textAlign: TextAlign.left,
style: TextStyle( style: TextStyle(
color: Colors.grey, color: Colors.grey,
...@@ -298,25 +312,18 @@ class _ShopListDetailState extends State<ShopListDetail> { ...@@ -298,25 +312,18 @@ class _ShopListDetailState extends State<ShopListDetail> {
height: SizeConfig.getHeight(20), height: SizeConfig.getHeight(20),
), ),
_detail(), _detail(),
_servicelist(), _servicelist(),
], ],
), ),
); );
} }
_servicelist() {
_servicelist() { return Container(
return Container( padding: EdgeInsets.only(left: SizeConfig.getPadding(16), right: SizeConfig.getPadding(16)
),
child: Column(
padding: EdgeInsets.only(left:10,right:10),
child:
Column(
children: <Widget>[ children: <Widget>[
Container( Container(
padding: EdgeInsets.only( padding: EdgeInsets.only(
top: SizeConfig.getPadding(15), top: SizeConfig.getPadding(15),
...@@ -325,165 +332,198 @@ class _ShopListDetailState extends State<ShopListDetail> { ...@@ -325,165 +332,198 @@ class _ShopListDetailState extends State<ShopListDetail> {
bottom: SizeConfig.getPadding(5), bottom: SizeConfig.getPadding(5),
), ),
alignment: Alignment.topLeft, alignment: Alignment.topLeft,
child: Text( // child: Text(
'บริการ', // 'บริการ',
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),
), // ),
), ),
Column(
Column( children: List.generate(
children: presenter.model.result[0].openHour.length,
List.generate( presenter.model.result[0].openHour.length,(i) { (i) {
return InkWell(
return Column(children: [ onTap: () {
SizedBox(height: 30,), Navigator.push(
Align( context,
alignment: Alignment.topLeft, CupertinoPageRoute(
child:Text( builder: (context) => MainShop(
getid: presenter
presenter.model.result[0].storeProduct[i].product.name, .model.result[0].storeProduct[i].product.id,
textAlign: TextAlign.left, vendor_id: presenter
style: TextStyle( .model.result[0].storeProduct[i].product.vendorId,
color: Colors.black87, store_id:
fontSize: SizeConfig.getFontSize(16), presenter.model.result[0].storeProduct[i].storeId,
fontFamily: "SF_Pro_Text", ),
fontWeight: FontWeight.w700), ),
),), );
SizedBox(height: 30,), },
Row(children: [ child: Column(
children: [
SizedBox(
height: 5,
),
Align(
alignment: Alignment.topLeft,
child: Text(
presenter
.model.result[0].storeProduct[i].product.name,
textAlign: TextAlign.left,
style: TextStyle(
color: Colors.black87,
fontSize: SizeConfig.getFontSize(16),
fontFamily: "SF_Pro_Text",
fontWeight: FontWeight.w700),
),
),
SizedBox(
height: 16,
),
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
textAlign: TextAlign.left, .duration +
style: TextStyle( " ชม.",
color: Colors.black87, textAlign: TextAlign.left,
fontSize: SizeConfig.getFontSize(12), style: TextStyle(
fontFamily: "SF_Pro_Text", color: Colors.black87,
fontWeight: FontWeight.w200), fontSize: SizeConfig.getFontSize(12),
),Spacer(), fontFamily: "SF_Pro_Text",
presenter.model.result[0].storeProduct[i].product.specialPrice==null? fontWeight: FontWeight.w200),
Text(
"฿"+presenter.model.result[0].storeProduct[i].product.price,
textAlign: TextAlign.left,
style: TextStyle(
color: Colors.red,
fontSize: SizeConfig.getFontSize(18),
fontFamily: "SF_Pro_Text",
fontWeight: FontWeight.w700),
):
Container(child:
Row(children: [
Icon(
Icons.local_offer,
color: Colors.pinkAccent,
size: 20,
), ),
Text( Spacer(),
presenter.model.result[0].storeProduct[i].product
" ฿"+presenter.model.result[0].storeProduct[i].product.price, .specialPrice ==
textAlign: TextAlign.left, null
style: TextStyle( ? Text(
decoration: TextDecoration.lineThrough, "฿" +
color: Colors.pinkAccent, presenter.model.result[0].storeProduct[i]
fontSize: SizeConfig.getFontSize(14), .product.price,
fontFamily: "SF_Pro_Text", textAlign: TextAlign.left,
fontWeight: FontWeight.w700), style: TextStyle(
), color: Colors.red,
fontSize: SizeConfig.getFontSize(18),
Text( fontFamily: "SF_Pro_Text",
fontWeight: FontWeight.w700),
" ฿"+presenter.model.result[0].storeProduct[i].product.specialPrice, )
textAlign: TextAlign.left, : Container(
style: TextStyle( child: Row(
color: Colors.red, children: [
fontSize: SizeConfig.getFontSize(18), Icon(
fontFamily: "SF_Pro_Text", Icons.local_offer,
fontWeight: FontWeight.w700), color: Colors.pinkAccent,
) size: 20,
],) ),
Text(
) " ฿" +
presenter.model.result[0]
.storeProduct[i].product.price,
textAlign: TextAlign.left,
style: TextStyle(
decoration: TextDecoration.lineThrough,
]), color: Colors.pinkAccent,
SizedBox(height: 20,), fontSize: SizeConfig.getFontSize(14),
Padding( fontFamily: "SF_Pro_Text",
padding: EdgeInsets.fromLTRB(0.0, 5.0, 0.0, 0.0), fontWeight: FontWeight.w700),
child: Material( //Wrap with Material ),
Text(
shape: RoundedRectangleBorder(borderRadius:BorderRadius.circular(30.0) ), " ฿" +
elevation: 0.0, presenter
color: Color.fromRGBO(106, 179, 170, 1), .model
clipBehavior: Clip.antiAlias, // Add This .result[0]
child: MaterialButton( .storeProduct[i]
.product
minWidth:MediaQuery.of(context).size.width - 50, .specialPrice,
height: 55, textAlign: TextAlign.left,
style: TextStyle(
color: Color(0xff3694A3), color: Colors.red,
child: fontSize: SizeConfig.getFontSize(18),
fontFamily: "SF_Pro_Text",
Row( fontWeight: FontWeight.w700),
mainAxisAlignment: MainAxisAlignment.center, )
children: [ ],
))
]),
Icon( SizedBox(
Icons.shopping_cart, height: 10,
color: Colors.white, ),
size: 25, Padding(
padding: EdgeInsets.fromLTRB(0.0, 5.0, 0.0, 0.0),
child: Material(
//Wrap with Material
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(30.0)),
elevation: 0.0,
color: Color(0xff3694A3),
clipBehavior: Clip.antiAlias,
// Add This
child: MaterialButton(
minWidth: MediaQuery.of(context).size.width - 50,
height: SizeConfig.getHeight(50),
color: Color(0xff3694A3),
child: Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Icon(
Icons.shopping_cart,
color: Colors.white,
size: 25,
),
new Text(' หยิบใส่รถเข็น',
style: new TextStyle(
fontSize: 16.0, color: Colors.white)),
],
),
onPressed: () {
Navigator.push(
context,
CupertinoPageRoute(
builder: (context) => MyCart(
// getid: presenter.model.result[0]
// .storeProduct[i].product.id,
// vendor_id: presenter.model.result[0].storeProduct[i]
// .product.vendorId,
// store_id: presenter.model.result[0].storeProduct[i].storeId,
),
),
);
print(" Go to cart");
},
),
), ),
new Text(' หยิบใส่รถเข็น', ),
style: new TextStyle(fontSize: 16.0, color: Colors.white)), SizedBox(
],), height: 30,
),
Container(
padding: EdgeInsets.only(
onPressed: () { left: SizeConfig.getPadding(20),
print(" Go to cart"); right: SizeConfig.getPadding(20),
}, top: SizeConfig.getPadding(40),
), bottom: SizeConfig.getPadding(20),
), ),
), height: SizeConfig.getHeight(1),
SizedBox(height: 30,), width: MediaQuery.of(context).size.width - 40,
color: Colors.grey,
Container( )
padding: EdgeInsets.only( ],
left: SizeConfig.getPadding(20), ),
right: SizeConfig.getPadding(20), );
top: SizeConfig.getPadding(40), },
bottom: SizeConfig.getPadding(20),
), ),
height: SizeConfig.getHeight(1),
width: MediaQuery.of(context).size.width - 40,
color: Colors.grey,
)
],);
},
),
), ),
Container( Container(
padding: EdgeInsets.only( padding: EdgeInsets.only(
left: SizeConfig.getPadding(20), left: SizeConfig.getPadding(20),
...@@ -495,7 +535,6 @@ class _ShopListDetailState extends State<ShopListDetail> { ...@@ -495,7 +535,6 @@ class _ShopListDetailState extends State<ShopListDetail> {
width: MediaQuery.of(context).size.width - 40, width: MediaQuery.of(context).size.width - 40,
color: Colors.grey, color: Colors.grey,
), ),
], ],
), ),
); );
...@@ -522,8 +561,6 @@ class _ShopListDetailState extends State<ShopListDetail> { ...@@ -522,8 +561,6 @@ class _ShopListDetailState extends State<ShopListDetail> {
fontWeight: FontWeight.w700), fontWeight: FontWeight.w700),
), ),
), ),
Container( Container(
height: 200, height: 200,
padding: EdgeInsets.only( padding: EdgeInsets.only(
...@@ -533,24 +570,22 @@ class _ShopListDetailState extends State<ShopListDetail> { ...@@ -533,24 +570,22 @@ class _ShopListDetailState extends State<ShopListDetail> {
bottom: SizeConfig.getPadding(5), bottom: SizeConfig.getPadding(5),
), ),
alignment: Alignment.topLeft, alignment: Alignment.topLeft,
child:ListView.builder( child: ListView.builder(
itemCount: presenter.model.result[0].openHour.length, physics: const NeverScrollableScrollPhysics(),
itemBuilder: (context, i) { itemCount: presenter.model.result[0].openHour.length,
return itemBuilder: (context, i) {
Text( return Text(
"${presenter.model.result[0].openHour[i].name} ${presenter.model.result[0].openHour[i].open} - ${presenter.model.result[0].openHour[i].closed} ", "${presenter.model.result[0].openHour[i].name} ${presenter.model.result[0].openHour[i].open} - ${presenter.model.result[0].openHour[i].closed} ",
textAlign: TextAlign.left, textAlign: TextAlign.left,
style: TextStyle( style: TextStyle(
color: Colors.black54, color: Colors.black54,
fontSize: SizeConfig.getFontSize(12), fontSize: SizeConfig.getFontSize(12),
fontFamily: "SF_Pro_Text", fontFamily: "SF_Pro_Text",
fontWeight: FontWeight.w500), fontWeight: FontWeight.w500),
);
); },
}, ),
),
), ),
Container( Container(
padding: EdgeInsets.only( padding: EdgeInsets.only(
left: SizeConfig.getPadding(20), left: SizeConfig.getPadding(20),
...@@ -736,7 +771,7 @@ class _ShopListDetailState extends State<ShopListDetail> { ...@@ -736,7 +771,7 @@ class _ShopListDetailState extends State<ShopListDetail> {
top: SizeConfig.getPadding(10), top: SizeConfig.getPadding(10),
), ),
child: Text( child: Text(
presenter.model.result[0].excerpt, presenter.model.result[0].excerpt,
textAlign: TextAlign.left, textAlign: TextAlign.left,
style: TextStyle( style: TextStyle(
// decoration: TextDecoration.underline, // decoration: TextDecoration.underline,
...@@ -754,7 +789,7 @@ class _ShopListDetailState extends State<ShopListDetail> { ...@@ -754,7 +789,7 @@ class _ShopListDetailState extends State<ShopListDetail> {
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(10),
), ),
height: SizeConfig.getHeight(1), height: SizeConfig.getHeight(1),
width: MediaQuery.of(context).size.width - 40, width: MediaQuery.of(context).size.width - 40,
......
...@@ -9,12 +9,14 @@ import 'package:flutter/material.dart'; ...@@ -9,12 +9,14 @@ import 'package:flutter/material.dart';
import 'dart:math'; import 'dart:math';
class MainShop extends StatefulWidget { class MainShop extends StatefulWidget {
int getid; int getid;
int vendor_id; int vendor_id;
int store_id; int store_id;
MainShop({Key key, this.title,this.getid,this.vendor_id,this.store_id}) : super(key: key); MainShop({Key key, this.title,this.getid,this.vendor_id,this.store_id}) : super(key: key);
final String title; final String title;
...@@ -285,7 +287,7 @@ class _MainShopState extends State<MainShop> ...@@ -285,7 +287,7 @@ class _MainShopState extends State<MainShop>
child: Container( child: Container(
// color: Colors.blue, // color: Colors.blue,
// height: double.maxFinite, // height: double.maxFinite,
child: ShopServicePage(), child: ShopServicePage(getid: widget.getid,vendor_id: widget.vendor_id,store_id: widget.store_id,),
), ),
), ),
], ],
...@@ -295,7 +297,7 @@ class _MainShopState extends State<MainShop> ...@@ -295,7 +297,7 @@ class _MainShopState extends State<MainShop>
Container( Container(
// color: Colors.red, // color: Colors.red,
child: ShopReviewsPage(), child: ShopReviewsPage(getid: widget.getid,vendor_id: widget.vendor_id,store_id: widget.store_id,),
// child: getlist(), // child: getlist(),
//width: 20, //width: 20,
), ),
......
...@@ -3,8 +3,19 @@ import 'package:feelverapp/util/rating_star.dart'; ...@@ -3,8 +3,19 @@ import 'package:feelverapp/util/rating_star.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
class ShopReviewsPage extends StatefulWidget { class ShopReviewsPage extends StatefulWidget {
int getid;
int vendor_id;
int store_id;
ShopReviewsPage({Key key, this.getid,this.vendor_id,this.store_id}) : super(key: key);
@override @override
_ShopReviewsPageState createState() => _ShopReviewsPageState(); _ShopReviewsPageState createState() => _ShopReviewsPageState();
// setState(() {
// presenter.vendor_id = widget.vendor_id;
// presenter.store_id = widget.store_id;
// presenter.getid = widget.getid;
// });
} }
class _ShopReviewsPageState extends State<ShopReviewsPage> { class _ShopReviewsPageState extends State<ShopReviewsPage> {
......
...@@ -9,6 +9,13 @@ import '../booking/booking_detail.dart'; ...@@ -9,6 +9,13 @@ import '../booking/booking_detail.dart';
import 'shop_main.dart'; import 'shop_main.dart';
class ShopServicePage extends StatefulWidget { class ShopServicePage extends StatefulWidget {
int getid;
int vendor_id;
int store_id;
ShopServicePage({Key key, this.getid, this.vendor_id, this.store_id})
: super(key: key);
@override @override
_ShopServicePageState createState() => _ShopServicePageState(); _ShopServicePageState createState() => _ShopServicePageState();
} }
...@@ -24,6 +31,12 @@ class _ShopServicePageState extends State<ShopServicePage> ...@@ -24,6 +31,12 @@ class _ShopServicePageState extends State<ShopServicePage>
super.initState(); super.initState();
presenter = ShopServicePresenter(this); presenter = ShopServicePresenter(this);
setState(() {
presenter.vendor_id = widget.vendor_id;
presenter.store_id = widget.store_id;
presenter.getid = widget.getid;
});
presenter.Servicelistitem(); presenter.Servicelistitem();
} }
...@@ -35,31 +48,44 @@ class _ShopServicePageState extends State<ShopServicePage> ...@@ -35,31 +48,44 @@ class _ShopServicePageState extends State<ShopServicePage>
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
SizeConfig(context); SizeConfig(context);
return Container(
child: presenter.serviceModel == null return presenter.serviceModel == null
? Container() ? Container(
: ListView.builder( child: Center(
itemCount: presenter.serviceModel.data.length, child: CircularProgressIndicator(
itemBuilder: (context, i) { valueColor: new AlwaysStoppedAnimation<Color>(Colors.teal),
return myCard( ),
presenter.serviceModel.data[i].name,
presenter.serviceModel.data[i].cover,
presenter.serviceModel.data[i].price,
presenter.serviceModel.data[i].duration,
presenter.serviceModel.data[i].id,
presenter.serviceModel.data[i].specialPrice == null
? ""
: presenter.serviceModel.data[i].specialPrice,
presenter.serviceModel.data[i].vendorId,
presenter.serviceModel.data[i].storeId,
);
},
), ),
); )
: Container(
child: presenter.serviceModel.data == null
? Container()
: ListView.builder(
itemCount: presenter.serviceModel.data.length,
itemBuilder: (context, i) {
// print(presenter.serviceModel.data.length);
return myCard(
presenter.serviceModel.data[i].name,
presenter.serviceModel.data[i].cover == null
? "https://heart.kku.ac.th/media/tz_portfolio_plus/article/cache/dujdao-sahasthas-2-14_o.png"
: presenter.serviceModel.data[i].cover,
presenter.serviceModel.data[i].excerpt,
presenter.serviceModel.data[i].price,
presenter.serviceModel.data[i].duration,
presenter.serviceModel.data[i].id,
presenter.serviceModel.data[i].specialPrice == null
? ""
: presenter.serviceModel.data[i].specialPrice,
presenter.serviceModel.data[i].vendorId,
presenter.serviceModel.data[i].storeId,
);
},
),
);
} }
Widget myCard(String title, String image, String price, String time, int id, Widget myCard(String title, String image, String detail, String price,
String special_price , int vendor_id,int store_id) { String time, int id, String special_price, int vendor_id, int store_id) {
return InkWell( return InkWell(
onTap: () { onTap: () {
setState( setState(
...@@ -68,8 +94,9 @@ class _ShopServicePageState extends State<ShopServicePage> ...@@ -68,8 +94,9 @@ class _ShopServicePageState extends State<ShopServicePage>
context, context,
CupertinoPageRoute( CupertinoPageRoute(
builder: (context) => MainShop( builder: (context) => MainShop(
getid: id,vendor_id: vendor_id,store_id: store_id, getid: id,
vendor_id: vendor_id,
store_id: store_id,
), ),
), ),
); );
...@@ -96,7 +123,7 @@ class _ShopServicePageState extends State<ShopServicePage> ...@@ -96,7 +123,7 @@ class _ShopServicePageState extends State<ShopServicePage>
// color: Colors.blue, // color: Colors.blue,
height: SizeConfig.getHeight(250), height: SizeConfig.getHeight(250),
child: presenter.serviceModel == null child: presenter.serviceModel == null
? Image.asset( ? Image.network(
"assets/images/demo_img.png", "assets/images/demo_img.png",
fit: BoxFit.cover, fit: BoxFit.cover,
) )
...@@ -133,12 +160,12 @@ class _ShopServicePageState extends State<ShopServicePage> ...@@ -133,12 +160,12 @@ class _ShopServicePageState extends State<ShopServicePage>
height: 5, height: 5,
), ),
Text( Text(
"SPA Cenvaree @ Centara Grand CentralWorld Bangkok", detail,
style: TextStyle( style: TextStyle(
color: Color(0xff969696), color: Color(0xff969696),
fontSize: SizeConfig.getFontSize(11), fontSize: SizeConfig.getFontSize(11),
fontFamily: "SF_Pro_Text", fontFamily: "SF_Pro_Text",
fontWeight: FontWeight.w500), fontWeight: FontWeight.w500),maxLines: 3,
), ),
], ],
), ),
...@@ -149,30 +176,28 @@ class _ShopServicePageState extends State<ShopServicePage> ...@@ -149,30 +176,28 @@ class _ShopServicePageState extends State<ShopServicePage>
child: Column( child: Column(
mainAxisAlignment: MainAxisAlignment.start, mainAxisAlignment: MainAxisAlignment.start,
children: <Widget>[ children: <Widget>[
Row( // Row(
crossAxisAlignment: CrossAxisAlignment.center, // crossAxisAlignment: CrossAxisAlignment.center,
children: <Widget>[ // children: <Widget>[
Image.asset( // Image.asset(
'assets/images/pin_drop.png', // 'assets/images/pin_drop.png',
height: 20, // height: 20,
width: 20, // width: 20,
), // ),
SizedBox( // SizedBox(
width: 5, // width: 5,
), // ),
Text( // Text(
"พญาไท กรุงเทพฯ", // addres,
style: TextStyle( // style: TextStyle(
color: Colors.black, // color: Colors.black,
fontSize: SizeConfig.getFontSize(13), // fontSize: SizeConfig.getFontSize(13),
fontFamily: "SF_Pro_Text", // fontFamily: "SF_Pro_Text",
), // ),
), // ),
], // ],
), // ),
SizedBox(
height: 10,
),
Row( Row(
crossAxisAlignment: CrossAxisAlignment.center, crossAxisAlignment: CrossAxisAlignment.center,
children: <Widget>[ children: <Widget>[
......
...@@ -6,6 +6,10 @@ import 'package:flutter/material.dart'; ...@@ -6,6 +6,10 @@ import 'package:flutter/material.dart';
class ShopServicePresenter extends BasePresenter<ShopServicePage> { class ShopServicePresenter extends BasePresenter<ShopServicePage> {
Api _api; Api _api;
int getid;
int vendor_id;
int store_id;
final formkey = GlobalKey<FormState>(); final formkey = GlobalKey<FormState>();
shopserviceModel serviceModel; shopserviceModel serviceModel;
...@@ -13,20 +17,17 @@ class ShopServicePresenter extends BasePresenter<ShopServicePage> { ...@@ -13,20 +17,17 @@ class ShopServicePresenter extends BasePresenter<ShopServicePage> {
Servicelistitem() async { Servicelistitem() async {
_api = Api<shopserviceModel>(); _api = Api<shopserviceModel>();
var res = await _api.shopservice({ var res = await _api.shopservice(
"vendor_id": "9", 'https://backend-uat.feelver.com/api/product/getListsProductFormat?vendor_id=' +
"store_id": "284", vendor_id.toString() +
"is_paginate": "1", '&store_id=' +
"per_page": "1", store_id.toString() +
"v": "1", '&is_paginate=1&per_page=99&v=1');
});
if (res.fail == null) { if (res.fail == null) {
setState(() { setState(() {
serviceModel = res.success; serviceModel = res.success;
print("sssssssssssss"); print('${serviceModel.data[1].name}');
print('${serviceModel.data[0].name}');
}); });
} else { } else {
print('res Fail'); print('res Fail');
......
...@@ -99,6 +99,13 @@ packages: ...@@ -99,6 +99,13 @@ packages:
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "5.2.1" version: "5.2.1"
firebase_crashlytics:
dependency: "direct main"
description:
name: firebase_crashlytics
url: "https://pub.dartlang.org"
source: hosted
version: "0.1.4+1"
flutter: flutter:
dependency: "direct main" dependency: "direct main"
description: flutter description: flutter
......
...@@ -37,6 +37,7 @@ dependencies: ...@@ -37,6 +37,7 @@ dependencies:
date_format: ^1.0.8 date_format: ^1.0.8
flutter_datetime_picker: ^1.4.0 flutter_datetime_picker: ^1.4.0
carousel_slider: ^2.2.1 carousel_slider: ^2.2.1
firebase_crashlytics: ^0.1.4+1
......
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