Commit b27b01e9 by Mobile : Ball (Apprentice)

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

# Conflicts:
#	lib/main.dart
#	lib/service/api.dart
parents e3282036 486f6e83
65bf9efbfad64e1b5e4b50eeaed8247f 13553ffa98d5b0aaa390f5899ef7a33e
\ No newline at end of file \ No newline at end of file
...@@ -8,6 +8,7 @@ import 'package:feelverapp/ui/login/login.dart'; ...@@ -8,6 +8,7 @@ import 'package:feelverapp/ui/login/login.dart';
import 'package:feelverapp/ui/my_reviews/my_reviews_page.dart'; import 'package:feelverapp/ui/my_reviews/my_reviews_page.dart';
import 'package:feelverapp/ui/review_shop/review_shop_page.dart'; import 'package:feelverapp/ui/review_shop/review_shop_page.dart';
import 'package:feelverapp/ui/shop/shop_list.dart'; import 'package:feelverapp/ui/shop/shop_list.dart';
import 'package:feelverapp/ui/shop/shop_list_detail.dart';
import 'package:feelverapp/ui/shop/shop_main.dart'; import 'package:feelverapp/ui/shop/shop_main.dart';
import 'package:feelverapp/ui/splashscreen/splash_screen_page.dart'; import 'package:feelverapp/ui/splashscreen/splash_screen_page.dart';
...@@ -32,8 +33,9 @@ class MyApp extends StatelessWidget { ...@@ -32,8 +33,9 @@ class MyApp extends StatelessWidget {
), ),
home: SplashScreenPage()
home: Favorite()
//home: EditProfile(), //home: EditProfile(),
......
class categoryModel { class CategoryModel {
List<DATA> dATA; List<Result> result;
categoryModel({this.dATA}); CategoryModel({this.result});
categoryModel.fromJson(Map<String, dynamic> json) {
if (json['DATA'] != null) { CategoryModel.fromJson(Map<String, dynamic> json) {
dATA = new List<DATA>(); if (json['result'] != null) {
json['DATA'].forEach((v) { result = new List<Result>();
dATA.add(new DATA.fromJson(v)); json['result'].forEach((v) {
result.add(new Result.fromJson(v));
}); });
} }
} }
Map<String, dynamic> toJson() { Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>(); final Map<String, dynamic> data = new Map<String, dynamic>();
if (this.dATA != null) {
data['DATA'] = this.dATA.map((v) => v.toJson()).toList(); if (this.result != null) {
data['result'] = this.result.map((v) => v.toJson()).toList();
} }
return data; return data;
} }
} }
class DATA { class Result {
int id; int id;
int parentId; int parentId;
String name; String name;
...@@ -29,16 +31,16 @@ class DATA { ...@@ -29,16 +31,16 @@ class DATA {
String displayName; String displayName;
String cover; String cover;
String detail; String detail;
dynamic type; Null type;
String status; String status;
int sortOrder; int sortOrder;
dynamic storeId; Null storeId;
dynamic vendorId; Null vendorId;
dynamic createdAt; Null createdAt;
String updatedAt; String updatedAt;
String visibility; String visibility;
DATA( Result(
{this.id, {this.id,
this.parentId, this.parentId,
this.name, this.name,
...@@ -55,7 +57,8 @@ class DATA { ...@@ -55,7 +57,8 @@ class DATA {
this.updatedAt, this.updatedAt,
this.visibility}); this.visibility});
DATA.fromJson(Map<String, dynamic> json) {
Result.fromJson(Map<String, dynamic> json) {
id = json['id']; id = json['id'];
parentId = json['parent_id']; parentId = json['parent_id'];
name = json['name']; name = json['name'];
......
...@@ -30,6 +30,7 @@ class Api<T> { ...@@ -30,6 +30,7 @@ class Api<T> {
"Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwczpcL1wvYmFja2VuZC11YXQuZmVlbHZlci5jb21cL2FwaVwvbG9naW4iLCJpYXQiOjE1OTYxMDAzNTgsImV4cCI6MTYwMzMwMDM1OCwibmJmIjoxNTk2MTAwMzU4LCJqdGkiOiJ2YjA2S0FHR1JtZDFseEw1Iiwic3ViIjozNzMsInBydiI6Ijg3ZTBhZjFlZjlmZDE1ODEyZmRlYzk3MTUzYTE0ZTBiMDQ3NTQ2YWEifQ.UkY70AshvW5O4M63XY_Iv2IPBohSUUwnRF1oi46p2zs", "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwczpcL1wvYmFja2VuZC11YXQuZmVlbHZlci5jb21cL2FwaVwvbG9naW4iLCJpYXQiOjE1OTYxMDAzNTgsImV4cCI6MTYwMzMwMDM1OCwibmJmIjoxNTk2MTAwMzU4LCJqdGkiOiJ2YjA2S0FHR1JtZDFseEw1Iiwic3ViIjozNzMsInBydiI6Ijg3ZTBhZjFlZjlmZDE1ODEyZmRlYzk3MTUzYTE0ZTBiMDQ3NTQ2YWEifQ.UkY70AshvW5O4M63XY_Iv2IPBohSUUwnRF1oi46p2zs",
}; };
<<<<<<< HEAD
static final String baseApi = "https://backend-uat.feelver.com/api"; static final String baseApi = "https://backend-uat.feelver.com/api";
Future<Response<T>> deletefavorite(Object body) async { Future<Response<T>> deletefavorite(Object body) async {
...@@ -51,6 +52,9 @@ class Api<T> { ...@@ -51,6 +52,9 @@ class Api<T> {
} }
=======
static final String baseApi = "https://backend-uat.feelver.com/api/storage/";
>>>>>>> 486f6e832d80edd16c36936915cf4f3a1838c9a8
Future<Response<T>> favorite(Object body) async { Future<Response<T>> favorite(Object body) async {
var _model; var _model;
var _fail; var _fail;
...@@ -241,21 +245,18 @@ class Api<T> { ...@@ -241,21 +245,18 @@ class Api<T> {
return result; return result;
} }
Future<Response<T>> category(Object body) async {
Future<Response<T>> category(Object body) async {
var _model; var _model;
var _fail; var _fail;
var result; var result;
print("Result test ");
// (body as Map)['lang'] = allTranslations.currentLanguage;
await _httpConnection("${this._baseApi}/category", this._headerApi, body) await _httpConnection("${this._baseApi}/category", this._headerApi, body)
.then((response) { .then((response) {
print("ผลลัพท์ เท่ากับ " "${response.body}"); print("ผลลัพ เท่ากับบบบ " + "${response.body}");
if (response.statusCode == 200) { if (response.statusCode == 200) {
// Array to Map Json _model = CategoryModel.fromJson(json.decode(response.body));
Map<String, dynamic> myData = arrayToJson(response.body);
_model = categoryModel.fromJson(myData);
print('myModel ' + _model);
} else { } else {
_fail = FailModel.fromJson(json.decode(response.body)); _fail = FailModel.fromJson(json.decode(response.body));
} }
...@@ -264,6 +265,10 @@ class Api<T> { ...@@ -264,6 +265,10 @@ class Api<T> {
return result; return result;
} }
Future<Response<T>> shoplist(Object body) async { Future<Response<T>> shoplist(Object body) async {
var _model; var _model;
var _fail; var _fail;
......
...@@ -11,10 +11,9 @@ class BookingDetail extends StatefulWidget { ...@@ -11,10 +11,9 @@ class BookingDetail extends StatefulWidget {
class _BookingDetailState extends State<BookingDetail> { class _BookingDetailState extends State<BookingDetail> {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Scaffold( return ListView(padding: EdgeInsets.all(0), children: <Widget>[
body: _setupView(), _setupView(),
]);
);
} }
_setupView() { _setupView() {
...@@ -29,20 +28,7 @@ class _BookingDetailState extends State<BookingDetail> { ...@@ -29,20 +28,7 @@ class _BookingDetailState extends State<BookingDetail> {
height: SizeConfig.getHeight(450), height: SizeConfig.getHeight(450),
fit: BoxFit.cover, fit: BoxFit.cover,
), ),
Positioned(
top: SizeConfig.getPadding(44),
left: SizeConfig.getPadding(16),
child: InkWell(
onTap: () {
Navigator.pop(context);
},
child: Image.asset(
'assets/images/ic_back.png',
width: SizeConfig.getWidth(20),
height: SizeConfig.getWidth(20),
),
),
),
], ],
), ),
Container( Container(
...@@ -143,11 +129,11 @@ class _BookingDetailState extends State<BookingDetail> { ...@@ -143,11 +129,11 @@ class _BookingDetailState extends State<BookingDetail> {
SizedBox( SizedBox(
width: SizeConfig.getWidth(20), width: SizeConfig.getWidth(20),
), ),
ImageIcon( // ImageIcon(
AssetImage('assets/images/ic_twitter.png'), // AssetImage('assets/images/ic_twitter.png'),
color: Colors.grey, // color: Colors.grey,
size: SizeConfig.getFontSize(24), // size: SizeConfig.getFontSize(24),
), // ),
], ],
), ),
SizedBox( SizedBox(
......
...@@ -21,7 +21,7 @@ class HomePresenter extends BasePresenter<HomePage> { ...@@ -21,7 +21,7 @@ class HomePresenter extends BasePresenter<HomePage> {
GetprofileModel getmodel; GetprofileModel getmodel;
LoginModel logmodel; LoginModel logmodel;
categoryModel CatModel; CategoryModel CatModel;
TextEditingController searchCtrl = TextEditingController(); TextEditingController searchCtrl = TextEditingController();
SearchhomeModel searchhomeModel; SearchhomeModel searchhomeModel;
...@@ -29,19 +29,21 @@ class HomePresenter extends BasePresenter<HomePage> { ...@@ -29,19 +29,21 @@ class HomePresenter extends BasePresenter<HomePage> {
HomePresenter(State<HomePage> state) : super(state); HomePresenter(State<HomePage> state) : super(state);
Listitem() async { Listitem() async {
_api = Api<categoryModel>();
_api = Api<CategoryModel>();
var res = await _api.category({ var res = await _api.category({
"access_type": "portal", "access_type": "mobile",
}); });
if (res.fail == null){ // LoadingView(state.context).hide();
if (res.success != null){
setState(() { setState(() {
CatModel = res.success; CatModel = res.success;
print("dddddddddddddddd");
print('${CatModel.dATA[0].name}');
}); });
} else { } else {
...@@ -50,21 +52,23 @@ class HomePresenter extends BasePresenter<HomePage> { ...@@ -50,21 +52,23 @@ class HomePresenter extends BasePresenter<HomePage> {
} }
getSearch() async{ getSearch() async{
LoadingView(state.context).show();
_api = Api<SearchhomeModel>(); _api = Api<SearchhomeModel>();
var res = await _api.homesearch({ var res = await _api.homesearch({
"keyword_shop" : searchCtrl.text, "keyword_shop" : searchCtrl.text,
"lang" : "all", "lang" : "all",
"access" : "portal", "access" : "portal",
}); });
LoadingView(state.context).hide();
print('$searchCtrl'); print('$searchCtrl');
if (res.fail == null) if (res.success.status) { if (res.fail == null)
setState(() { setState(() {
searchhomeModel = res.success; searchhomeModel = res.success;
category_model = res.success; category_model = res.success;
}); });
}
else{ else{
} }
......
import 'package:feelverapp/service/api.dart';
import 'package:feelverapp/ui/nearme/near_me_detail.dart'; import 'package:feelverapp/ui/nearme/near_me_detail.dart';
import 'package:feelverapp/ui/nearme/near_me_list_presenter.dart'; import 'package:feelverapp/ui/nearme/near_me_list_presenter.dart';
import 'package:feelverapp/util/SizeConfig.dart'; import 'package:feelverapp/util/SizeConfig.dart';
...@@ -217,7 +218,7 @@ class _NearmeListState extends State<NearmeList> with TickerProviderStateMixin { ...@@ -217,7 +218,7 @@ class _NearmeListState extends State<NearmeList> with TickerProviderStateMixin {
), ),
Expanded( Expanded(
child: Image.network( child: Image.network(
'https://backend.feelver.com/storage/' + img, Api.baseApi + img,
// width: SizeConfig.getWidth(50), // width: SizeConfig.getWidth(50),
height: SizeConfig.getHeight(160), height: SizeConfig.getHeight(160),
fit: BoxFit.fitHeight, fit: BoxFit.fitHeight,
......
...@@ -345,6 +345,24 @@ class _ShopListState extends State<ShopList> with TickerProviderStateMixin { ...@@ -345,6 +345,24 @@ class _ShopListState extends State<ShopList> with TickerProviderStateMixin {
fontWeight: FontWeight.w700), fontWeight: FontWeight.w700),
), ),
), ),
Positioned(
left: SizeConfig.getPadding(280),
top: SizeConfig.getPadding(190),
child:Icon(Icons.star,color: Colors.orangeAccent,size: SizeConfig.getFontSize(18),),
),
Positioned(
left: SizeConfig.getPadding(300),
top: SizeConfig.getPadding(190),
child: Text(
"4.9",
textAlign: TextAlign.left,
style: TextStyle(
color: Colors.black,
fontSize: SizeConfig.getFontSize(12),
fontFamily: "SF_Pro_Text",
fontWeight: FontWeight.w700),
),
),
], ],
), ),
), ),
...@@ -390,104 +408,8 @@ class _ShopListState extends State<ShopList> with TickerProviderStateMixin { ...@@ -390,104 +408,8 @@ class _ShopListState extends State<ShopList> with TickerProviderStateMixin {
fontWeight: FontWeight.w700), fontWeight: FontWeight.w700),
), ),
), ),
Row(
children: <Widget>[
SizedBox(
width: SizeConfig.getWidth(20),
),
Image.asset(
'assets/images/clock.png',
width: SizeConfig.getWidth(20),
height: SizeConfig.getWidth(20),
),
SizedBox(
width: SizeConfig.getWidth(10),
),
Text(
'90 นาที',
textAlign: TextAlign.left,
style: TextStyle(
color: Colors.black87,
fontSize: SizeConfig.getFontSize(12),
fontFamily: "SF_Pro_Text",
fontWeight: FontWeight.w500),
),
SizedBox(
width: SizeConfig.getWidth(30),
),
Image.asset(
'assets/images/sell.png',
width: SizeConfig.getWidth(20),
height: SizeConfig.getWidth(20),
),
SizedBox(
width: SizeConfig.getWidth(5),
),
Text(
'฿1,599.00 ',
textAlign: TextAlign.left,
style: TextStyle(
color: Color.fromRGBO(238, 175, 183, 1),
fontSize: SizeConfig.getFontSize(12),
decoration: TextDecoration.lineThrough,
fontFamily: "SF_Pro_Text",
fontWeight: FontWeight.w500),
),
SizedBox(
width: SizeConfig.getWidth(5),
),
Text(
'฿1,599.00 ',
textAlign: TextAlign.left,
style: TextStyle(
color: Color.fromRGBO(253, 41, 86, 1),
fontSize: SizeConfig.getFontSize(22),
fontFamily: "SF_Pro_Text",
fontWeight: FontWeight.w700),
),
],
),
InkWell(
onTap: () {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => ShopListDetail(),
),
);
},
child: Stack(
children: <Widget>[
Container(
child: Image.asset('assets/images/btn_shoplist.png'),
padding: EdgeInsets.only(
left: SizeConfig.getPadding(20),
right: SizeConfig.getPadding(20),
top: SizeConfig.getPadding(20),
bottom: SizeConfig.getPadding(20),
),
),
Container(
alignment: Alignment.center,
child: Text(
'หยิบใส่รถเข็น',
textAlign: TextAlign.center,
style: TextStyle(
color: Colors.white,
fontSize: SizeConfig.getFontSize(14),
fontFamily: "SF_Pro_Text",
fontWeight: FontWeight.w700),
),
padding: EdgeInsets.only(
left: SizeConfig.getPadding(60),
right: SizeConfig.getPadding(20),
top: SizeConfig.getPadding(30),
bottom: SizeConfig.getPadding(20),
),
)
],
),
)
], ],
), ),
); );
......
...@@ -47,12 +47,6 @@ class _ShopServicePageState extends State<ShopServicePage> ...@@ -47,12 +47,6 @@ class _ShopServicePageState extends State<ShopServicePage>
); );
}) })
// ListView(
// children: <Widget>[
// myCard();
//
// ],
// ),
); );
} }
...@@ -82,9 +76,9 @@ class _ShopServicePageState extends State<ShopServicePage> ...@@ -82,9 +76,9 @@ class _ShopServicePageState extends State<ShopServicePage>
fit: BoxFit.cover, fit: BoxFit.cover,
) )
: Image.network( : Image.network(
Api.baseApi+ image, Api.baseApi + image,
fit: BoxFit.cover, fit: BoxFit.cover,
)), ),),
), ),
Expanded( Expanded(
flex: 5, flex: 5,
......
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/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';
...@@ -8,16 +9,24 @@ import 'package:flutter/material.dart'; ...@@ -8,16 +9,24 @@ import 'package:flutter/material.dart';
class ShoplistdetailPresenter extends BasePresenter<ShopListDetail>{ class ShoplistdetailPresenter extends BasePresenter<ShopListDetail>{
Api _api; Api _api;
final formkey = GlobalKey<FormState>(); final formkey = GlobalKey<FormState>();
shoplistdetailModel model;
ShoplistdetailPresenter(State<ShopListDetail> state) : super(state); ShoplistdetailPresenter(State<ShopListDetail> state) : super(state);
Detai() async{ Detai(String id) async{
_api = Api<shoplistdetailModel>(); _api = Api<shoplistdetailModel>();
var res = await _api.shoplistDetail({ var res = await _api.shoplistDetail({
"id": "406", "id": id,
}); });
if (res.fail == null) { if (res.fail == null) {
setState(() {
model = res.success;
print("complete");
});
print('res Success'); print('res Success');
} else { } else {
print('res Fail'); print('res Fail');
......
import 'package:feelverapp/model/Login/login_model.dart';
import 'package:feelverapp/model/category/category_model.dart';
import 'package:feelverapp/model/editprofile/getprofilemodel.dart';
import 'package:feelverapp/model/home/home_model.dart';
import 'package:feelverapp/model/nearme/nearme_list_model.dart';
import 'package:feelverapp/service/Loading.dart';
import 'package:feelverapp/service/api.dart';
import 'package:feelverapp/service/base_presenter.dart';
import 'package:feelverapp/ui/home/home.dart';
import 'package:feelverapp/util/Accout_util.dart';
import 'package:flutter/material.dart';
import 'package:rflutter_alert/rflutter_alert.dart';
import 'package:shared_preferences/shared_preferences.dart';
import 'package:feelverapp/ui/shop/shop_Nearby_places.dart';
class ShopNearByPlacePresenter extends BasePresenter<ShopNearbyPlacesPage> {
final formkey = GlobalKey<FormState>();
Api _api;
String type = '3';
NearMeListModel getmodel ;
ShopNearByPlacePresenter(State<ShopNearbyPlacesPage> state) : super(state);
getnearme() async {
_api = Api<NearMeListModel>();
var res = await _api.getNearList({});
if(res.fail == null){
if(res.success.status){
setState((){
print("AAAA :${res.success}");
getmodel = res.success;
// print(getmodel.results.data.length);
// print("getmodel" + getmodel[0].results.data[0].storeName);
},);
}
}else{
Alert(
style: AlertStyle(
animationType: AnimationType.fromTop,
isCloseButton: false,
),
context: state.context,
title: "ไม่พบข้อมูล",
content: Icon(
Icons.warning,
color: Colors.orange,
size: 80,
),
buttons: [
DialogButton(
color: Color.fromRGBO(106, 179, 170, 1),
onPressed: () => Navigator.pop(state.context),
child: Text(
"ลองอีกครั้ง",
style: TextStyle(color: Colors.white, fontSize: 20),
),
)
]).show();
}
}
// getnearme() async {
// _api = Api<NearMeListModel>();
//
// var res = await _api.getNearList({});
// print("Hii" + getmodel[0].storeName);
// print("Hii2" + res.success);
//
// if (res.fail == null) {
// setState(() {
// NearMeListModel model = res.success;
//
//// getmodel = res.success
// }
// );
// } else {
// Alert(
// style: AlertStyle(
// animationType: AnimationType.fromTop,
// isCloseButton: false,
// ),
// context: state.context,
// title: "ไม่สามารถติดต่อ\nเซิร์ฟเวอร์ได้",
// content: Icon(
// Icons.warning,
// color: Colors.orange,
// size: 80,
// ),
// buttons: [
// DialogButton(
// color: Color.fromRGBO(106, 179, 170, 1),
// onPressed: () => Navigator.pop(state.context),
// child: Text(
// "ลองอีกครั้ง",
// style: TextStyle(color: Colors.white, fontSize: 20),
// ),
// )
// ]).show();
// }
// }
}
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