Commit 2cb9eec3 by Mobile : Art

update

parents 456dbfdd 949fc67f
...@@ -29,7 +29,8 @@ class MyApp extends StatelessWidget { ...@@ -29,7 +29,8 @@ class MyApp extends StatelessWidget {
primarySwatch: Colors.blue, primarySwatch: Colors.blue,
), ),
home: HomePage()
home: SplashScreenPage()
//home: EditProfile(), //home: EditProfile(),
......
...@@ -57,40 +57,40 @@ class DATA { ...@@ -57,40 +57,40 @@ class DATA {
this.visibility}); this.visibility});
DATA.fromJson(Map<String, dynamic> json) { DATA.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'];
code = json['code']; // code = json['code'];
displayName = json['display_name']; // displayName = json['display_name'];
cover = json['cover']; // cover = json['cover'];
detail = json['detail']; // detail = json['detail'];
type = json['type']; // type = json['type'];
status = json['status']; // status = json['status'];
sortOrder = json['sort_order']; // sortOrder = json['sort_order'];
storeId = json['store_id']; // storeId = json['store_id'];
vendorId = json['vendor_id']; // vendorId = json['vendor_id'];
createdAt = json['created_at']; // createdAt = json['created_at'];
updatedAt = json['updated_at']; // updatedAt = json['updated_at'];
visibility = json['visibility']; // visibility = json['visibility'];
} }
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>();
data['id'] = this.id; // data['id'] = this.id;
data['parent_id'] = this.parentId; // data['parent_id'] = this.parentId;
data['name'] = this.name; data['name'] = this.name;
data['code'] = this.code; // data['code'] = this.code;
data['display_name'] = this.displayName; // data['display_name'] = this.displayName;
data['cover'] = this.cover; // data['cover'] = this.cover;
data['detail'] = this.detail; // data['detail'] = this.detail;
data['type'] = this.type; // data['type'] = this.type;
data['status'] = this.status; // data['status'] = this.status;
data['sort_order'] = this.sortOrder; // data['sort_order'] = this.sortOrder;
data['store_id'] = this.storeId; // data['store_id'] = this.storeId;
data['vendor_id'] = this.vendorId; // data['vendor_id'] = this.vendorId;
data['created_at'] = this.createdAt; // data['created_at'] = this.createdAt;
data['updated_at'] = this.updatedAt; // data['updated_at'] = this.updatedAt;
data['visibility'] = this.visibility; // data['visibility'] = this.visibility;
return data; return data;
} }
} }
import 'dart:convert'; import 'dart:convert';
import 'package:feelverapp/home_search/searchhomepage_model.dart';
import 'package:feelverapp/model/Login/login_model.dart'; import 'package:feelverapp/model/Login/login_model.dart';
import 'package:feelverapp/model/base/base.dart'; import 'package:feelverapp/model/base/base.dart';
...@@ -11,6 +11,8 @@ import 'package:feelverapp/model/forgetpassword/forgetpassModel.dart'; ...@@ -11,6 +11,8 @@ import 'package:feelverapp/model/forgetpassword/forgetpassModel.dart';
import 'package:feelverapp/model/home/home_model.dart'; import 'package:feelverapp/model/home/home_model.dart';
import 'package:feelverapp/model/nearme/nearme_list_model.dart'; import 'package:feelverapp/model/nearme/nearme_list_model.dart';
import 'package:feelverapp/model/home_search/searchhomepage_model.dart';
import 'package:feelverapp/model/register/register_model.dart'; import 'package:feelverapp/model/register/register_model.dart';
import 'package:feelverapp/model/category/category_model.dart'; import 'package:feelverapp/model/category/category_model.dart';
import 'package:feelverapp/model/shoplist/shoplist_Model.dart'; import 'package:feelverapp/model/shoplist/shoplist_Model.dart';
...@@ -29,7 +31,7 @@ class Api<T> { ...@@ -29,7 +31,7 @@ class Api<T> {
var _model; var _model;
var _fail; var _fail;
var result; var result;
print("this is body "+body.toString());
// (body as Map)['lang'] = allTranslations.currentLanguage; // (body as Map)['lang'] = allTranslations.currentLanguage;
await _httpConnection( await _httpConnection(
"${this._baseApi}/store/shop-list", this._headerApi, body) "${this._baseApi}/store/shop-list", this._headerApi, body)
...@@ -185,9 +187,6 @@ class Api<T> { ...@@ -185,9 +187,6 @@ class Api<T> {
if (response.statusCode == 200) { if (response.statusCode == 200) {
// Array to Map Json // Array to Map Json
Map<String, dynamic> myData = arrayToJson(response.body); Map<String, dynamic> myData = arrayToJson(response.body);
print(myData);
_model = categoryModel.fromJson(myData); _model = categoryModel.fromJson(myData);
print('myModel ' + _model); print('myModel ' + _model);
...@@ -268,7 +267,7 @@ class Api<T> { ...@@ -268,7 +267,7 @@ class Api<T> {
Map<String, dynamic> myJson = {}; Map<String, dynamic> myJson = {};
if (data != null && data.length > 0) { if (data != null && data.length > 0) {
myJson['data'] = data; myJson['DATA'] = data;
} }
return myJson; return myJson;
......
import 'package:feelverapp/model/category/category_model.dart';
import 'package:feelverapp/ui/home/home_presenter.dart'; import 'package:feelverapp/ui/home/home_presenter.dart';
import 'package:feelverapp/ui/login/login.dart'; import 'package:feelverapp/ui/login/login.dart';
import 'package:feelverapp/ui/menu/menu.dart'; import 'package:feelverapp/ui/menu/menu.dart';
...@@ -13,13 +14,17 @@ class HomePage extends StatefulWidget { ...@@ -13,13 +14,17 @@ class HomePage extends StatefulWidget {
String id; String id;
String image; String image;
HomePage({Key key, this.id, this.image}) : super(key: key); String search;
HomePage({Key key, this.id, this.image, this.search}) : super(key: key);
@override @override
_HomePageState createState() => _HomePageState(); _HomePageState createState() => _HomePageState();
} }
class _HomePageState extends State<HomePage> with TickerProviderStateMixin { class _HomePageState extends State<HomePage> with TickerProviderStateMixin {
TabController _tabController;
HomePresenter presenter; HomePresenter presenter;
@override @override
...@@ -32,12 +37,16 @@ class _HomePageState extends State<HomePage> with TickerProviderStateMixin { ...@@ -32,12 +37,16 @@ class _HomePageState extends State<HomePage> with TickerProviderStateMixin {
// presenter.getid(); // presenter.getid();
presenter.getprofile(); presenter.getprofile();
// presenter.Search();
// presenter.getSearch(widget.search);
} }
@override @override
void dispose() { void dispose() {
super.dispose(); super.dispose();
_tabController.dispose();
} }
@override @override
...@@ -258,91 +267,52 @@ class _HomePageState extends State<HomePage> with TickerProviderStateMixin { ...@@ -258,91 +267,52 @@ class _HomePageState extends State<HomePage> with TickerProviderStateMixin {
], ],
), ),
Expanded( Expanded(
child: SingleChildScrollView( child: Container(
child: _listView(), child: presenter.CatModel == null ? Container() : ListView.builder(
itemCount: presenter.CatModel.dATA[0].name.length,
itemBuilder: (context, i) {
return list(i);
}),
), ),
), ),
], ],
); );
} }
_listView() {
return Column( list(int index) {
children: <Widget>[ return Container(
_listItem( padding: EdgeInsets.only(
Image.asset( top: SizeConfig.getPadding(16),
'assets/images/banner_spa.png', left: SizeConfig.getPadding(16),
height: SizeConfig.getWidth(130), right: SizeConfig.getPadding(16),
width: MediaQuery.of(context).size.width, bottom: SizeConfig.getPadding(10),
fit: BoxFit.fill, ),
), child: Column(
'SPA', children: <Widget>[
'99 View', _listItem(
ShopList()), presenter.CatModel == null
_listItem( ? Image.asset(
Image.asset( 'assets/images/banner_spa.png',
'assets/images/banner_massage.png', height: SizeConfig.getWidth(130),
height: SizeConfig.getWidth(130), width: MediaQuery.of(context).size.width,
width: MediaQuery.of(context).size.width, fit: BoxFit.fill,
fit: BoxFit.fill, )
), : Image.network(
'Massage', presenter.CatModel.dATA[0].cover,
'99 View', height: SizeConfig.getWidth(130),
ShopList()), width: MediaQuery.of(context).size.width,
_listItem( fit: BoxFit.fill,
Image.asset( ),
'assets/images/banner_beauty.png', presenter.CatModel.dATA[index].name,
height: SizeConfig.getWidth(130), '',
width: MediaQuery.of(context).size.width, ShopList(),
fit: BoxFit.fill,
),
'BEAUTY',
'99 View',
ShopList()),
_listItem(
Image.asset(
'assets/images/banner_nearme.png',
height: SizeConfig.getWidth(130),
width: MediaQuery.of(context).size.width,
fit: BoxFit.fill,
),
'NEAR ME',
'99 View',
ShopList()),
_listItem(
Image.asset(
'assets/images/banner_promotion.png',
height: SizeConfig.getWidth(130),
width: MediaQuery.of(context).size.width,
fit: BoxFit.fill,
),
'PROMOTION',
'99 View',
ShopList()),
_listItem(
Image.asset(
'assets/images/banner_mostpopular.png',
height: SizeConfig.getWidth(130),
width: MediaQuery.of(context).size.width,
fit: BoxFit.fill,
), ),
'MOST POPULAR', SizedBox(
'99 Vidw', height: 30,
ShopList()),
_listItem(
Image.asset(
'assets/images/banner_recommended.png',
height: SizeConfig.getWidth(130),
width: MediaQuery.of(context).size.width,
fit: BoxFit.fill,
), ),
'presenter.homemodel.name[0].toString()', ],
'99 View',
ShopList()),
SizedBox(
height: 30,
), ),
],
); );
} }
...@@ -375,7 +345,7 @@ class _HomePageState extends State<HomePage> with TickerProviderStateMixin { ...@@ -375,7 +345,7 @@ class _HomePageState extends State<HomePage> with TickerProviderStateMixin {
child: Text( child: Text(
title, title,
style: TextStyle( style: TextStyle(
color: Colors.white, color: Colors.black,
fontSize: SizeConfig.getFontSize(30), fontSize: SizeConfig.getFontSize(30),
fontWeight: FontWeight.w600, fontWeight: FontWeight.w600,
), ),
...@@ -410,6 +380,7 @@ class _HomePageState extends State<HomePage> with TickerProviderStateMixin { ...@@ -410,6 +380,7 @@ class _HomePageState extends State<HomePage> with TickerProviderStateMixin {
), ),
height: 55, height: 55,
child: TextField( child: TextField(
controller: presenter.searchCtrl,
decoration: new InputDecoration( decoration: new InputDecoration(
border: new OutlineInputBorder( border: new OutlineInputBorder(
borderRadius: const BorderRadius.all( borderRadius: const BorderRadius.all(
......
import 'package:feelverapp/home_search/searchhomepage_model.dart';
import 'package:feelverapp/model/Login/login_model.dart'; import 'package:feelverapp/model/Login/login_model.dart';
import 'package:feelverapp/model/category/category_model.dart'; import 'package:feelverapp/model/category/category_model.dart';
import 'package:feelverapp/model/editprofile/getprofilemodel.dart'; import 'package:feelverapp/model/editprofile/getprofilemodel.dart';
import 'package:feelverapp/model/home/home_model.dart'; import 'package:feelverapp/model/home/home_model.dart';
import 'package:feelverapp/model/home_search/searchhomepage_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';
...@@ -15,65 +15,60 @@ import 'package:shared_preferences/shared_preferences.dart'; ...@@ -15,65 +15,60 @@ import 'package:shared_preferences/shared_preferences.dart';
class HomePresenter extends BasePresenter<HomePage> { class HomePresenter extends BasePresenter<HomePage> {
Api _api; Api _api;
var category_model;
String uid; String uid;
final formkey = GlobalKey<FormState>(); final formkey = GlobalKey<FormState>();
GetprofileModel getmodel; GetprofileModel getmodel;
LoginModel logmodel; LoginModel logmodel;
categoryModel CatModel;
TextEditingController searchCtrl = TextEditingController();
SearchhomeModel searchhomeModel;
HomePresenter(State<HomePage> state) : super(state); HomePresenter(State<HomePage> state) : super(state);
categoryModel catmodel;
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": "portal",
}); });
if (res.fail == null) {
setState( if (res.fail == null){
() { setState(() {
catmodel == res.success;
print('res Success' + catmodel.dATA[0].displayName);
}, CatModel = res.success;
); print("dddddddddddddddd");
print('${CatModel.dATA[0].name}');
});
} else { } else {
print('res Fail'); print('res Fail');
} }
} }
Search() async {
getSearch(String search) async{
_api = Api<SearchhomeModel>(); _api = Api<SearchhomeModel>();
var res = await _api.homesearch({ var res = await _api.homesearch({
"keyword_shop": "spa", "keyword_shop" : searchCtrl.text,
"lang": "all", "lang" : "all",
"access": "portal", "access" : "portal",
}); });
print('$searchCtrl');
if (res.fail == null) if (res.success.status) {
setState(() {
searchhomeModel = res.success;
category_model = res.success;
});
}else{
if (res.fail == null) {
print('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();
} }
} }
getid() async { getid() async {
...@@ -119,4 +114,5 @@ class HomePresenter extends BasePresenter<HomePage> { ...@@ -119,4 +114,5 @@ class HomePresenter extends BasePresenter<HomePage> {
]).show(); ]).show();
} }
} }
} }
import 'package:feelverapp/home_search/searchhomepage_model.dart';
import 'package:feelverapp/model/Login/login_model.dart'; import 'package:feelverapp/model/Login/login_model.dart';
import 'package:feelverapp/model/category/category_model.dart'; import 'package:feelverapp/model/category/category_model.dart';
import 'package:feelverapp/model/editprofile/getprofilemodel.dart'; import 'package:feelverapp/model/editprofile/getprofilemodel.dart';
......
...@@ -2,9 +2,12 @@ import 'package:feelverapp/ui/booking/bookingflow.dart'; ...@@ -2,9 +2,12 @@ import 'package:feelverapp/ui/booking/bookingflow.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';
import 'package:flutter_datetime_picker/flutter_datetime_picker.dart';
class ReserveDateTime extends StatefulWidget { class ReserveDateTime extends StatefulWidget {
String bith = 'ปี / เดือน / วัน';
DateTime day;
@override @override
_ReserveDateTimeState createState() => _ReserveDateTimeState(); _ReserveDateTimeState createState() => _ReserveDateTimeState();
} }
...@@ -84,6 +87,7 @@ class _ReserveDateTimeState extends State<ReserveDateTime> { ...@@ -84,6 +87,7 @@ class _ReserveDateTimeState extends State<ReserveDateTime> {
), ),
); );
} }
_setupView() { _setupView() {
return SingleChildScrollView( return SingleChildScrollView(
child: Column( child: Column(
...@@ -229,7 +233,9 @@ class _ReserveDateTimeState extends State<ReserveDateTime> { ...@@ -229,7 +233,9 @@ class _ReserveDateTimeState extends State<ReserveDateTime> {
children: <Widget>[ children: <Widget>[
Container( Container(
alignment: Alignment.topLeft, alignment: Alignment.topLeft,
padding: EdgeInsets.only(left: SizeConfig.getPadding(30),top: SizeConfig.getPadding(24)), padding: EdgeInsets.only(
left: SizeConfig.getPadding(30),
top: SizeConfig.getPadding(24)),
child: Text( child: Text(
'ระบุวันที่เข้าใช้บริการ', 'ระบุวันที่เข้าใช้บริการ',
style: TextStyle( style: TextStyle(
...@@ -239,38 +245,47 @@ class _ReserveDateTimeState extends State<ReserveDateTime> { ...@@ -239,38 +245,47 @@ class _ReserveDateTimeState extends State<ReserveDateTime> {
fontWeight: FontWeight.w500), fontWeight: FontWeight.w500),
), ),
), ),
Padding( Container(width: MediaQuery.of(context).size.width / 1,
padding: EdgeInsets.symmetric( margin: EdgeInsets.only(left: SizeConfig.getPadding(24),right: SizeConfig.getPadding(24)),
vertical: SizeConfig.getPadding(8.0),
horizontal: SizeConfig.getPadding(24),
),
child: Card( child: Card(
shape: RoundedRectangleBorder( shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular( borderRadius: BorderRadius.circular(
SizeConfig.getPadding(50.0), SizeConfig.getPadding(50.0),
), ),
), ),
child: TextFormField( child: FlatButton(
// controller: loginBloc.emailCtrl, onPressed: () {
// validator: loginBloc.validateField, DatePicker.showDatePicker(context,
decoration: InputDecoration( showTitleActions: true,
contentPadding: EdgeInsets.symmetric( minTime: DateTime(1980, 3, 5),
vertical: SizeConfig.getPadding(20), maxTime: DateTime(2025, 6, 7), onChanged: (date) {
horizontal: SizeConfig.getPadding(16), print('change $date');
), }, onConfirm: (date) {
// hintText: setState(() {
// allTranslations.text(key2: 'email', key: 'login') + widget.day = date;
// ' / ' + widget.bith =
// allTranslations.text( "${widget.day.year}-${widget.day.month}-${widget.day.day}";
// key2: 'tel_number', key: 'register'), print(
border: OutlineInputBorder(borderSide: BorderSide.none), '${widget.day.year} / ${widget.day.month} / ${widget.day.day}');
), print(widget.bith);
});
}, currentTime: DateTime.now(), locale: LocaleType.th);
},
child: widget.bith == 'ปี / เดือน / วัน'
? Text(
'ปี / เดือน / วัน',
style: TextStyle(color: Colors.black),
)
: Text(
'${widget.bith}',
style: TextStyle(color: Colors.black),
),
), ),
), ),
), ),
Container( Container(
alignment: Alignment.topLeft, alignment: Alignment.topLeft,
padding: EdgeInsets.only(left: SizeConfig.getPadding(30)), padding: EdgeInsets.only(left: SizeConfig.getPadding(30),top: SizeConfig.getPadding(16)),
child: Text( child: Text(
'ระบุเวลาที่เข้าใช้บริการ', 'ระบุเวลาที่เข้าใช้บริการ',
style: TextStyle( style: TextStyle(
...@@ -287,7 +302,7 @@ class _ReserveDateTimeState extends State<ReserveDateTime> { ...@@ -287,7 +302,7 @@ class _ReserveDateTimeState extends State<ReserveDateTime> {
child: Card( child: Card(
shape: RoundedRectangleBorder( shape: RoundedRectangleBorder(
borderRadius: borderRadius:
BorderRadius.circular(SizeConfig.getPadding(50.0)), BorderRadius.circular(SizeConfig.getPadding(50.0)),
), ),
child: TextFormField( child: TextFormField(
// controller: loginBloc.passCtrl, // controller: loginBloc.passCtrl,
...@@ -313,5 +328,4 @@ class _ReserveDateTimeState extends State<ReserveDateTime> { ...@@ -313,5 +328,4 @@ class _ReserveDateTimeState extends State<ReserveDateTime> {
), ),
); );
} }
} }
...@@ -53,7 +53,7 @@ class _ReserveListState extends State<ReserveList> { ...@@ -53,7 +53,7 @@ class _ReserveListState extends State<ReserveList> {
Navigator.push( Navigator.push(
context, context,
MaterialPageRoute( MaterialPageRoute(
builder: (context) => BookingFlow(), builder: (context) => ReserveDateTime(),
), ),
); );
}, },
......
...@@ -6,14 +6,13 @@ import 'package:feelverapp/util/SizeConfig.dart'; ...@@ -6,14 +6,13 @@ 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 ShopList extends StatefulWidget { class ShopList extends StatefulWidget {
@override @override
_ShopListState createState() => _ShopListState(); _ShopListState createState() => _ShopListState();
} }
class _ShopListState extends State<ShopList> with TickerProviderStateMixin { class _ShopListState extends State<ShopList> with TickerProviderStateMixin {
var entries = new List<String>.generate(1, (i) => "Item $i"); // var entries = new List<String>.generate(2, (i) => "Item $i");
ShoplistPresenter presenter; ShoplistPresenter presenter;
...@@ -23,8 +22,6 @@ class _ShopListState extends State<ShopList> with TickerProviderStateMixin { ...@@ -23,8 +22,6 @@ class _ShopListState extends State<ShopList> with TickerProviderStateMixin {
presenter = ShoplistPresenter(this); presenter = ShoplistPresenter(this);
presenter.Listitem(); presenter.Listitem();
} }
@override @override
...@@ -256,11 +253,6 @@ class _ShopListState extends State<ShopList> with TickerProviderStateMixin { ...@@ -256,11 +253,6 @@ class _ShopListState extends State<ShopList> with TickerProviderStateMixin {
} }
_getlist() { _getlist() {
final List<String> entries = <String>[
'Ivory Relax and Spa',
'Sunshine Spa & Massage',
'Mandarin Ginger Spa'
];
return Expanded( return Expanded(
child: Container( child: Container(
padding: EdgeInsets.only( padding: EdgeInsets.only(
...@@ -269,36 +261,39 @@ class _ShopListState extends State<ShopList> with TickerProviderStateMixin { ...@@ -269,36 +261,39 @@ class _ShopListState extends State<ShopList> with TickerProviderStateMixin {
right: SizeConfig.getPadding(16), right: SizeConfig.getPadding(16),
bottom: SizeConfig.getPadding(10), bottom: SizeConfig.getPadding(10),
), ),
child: ListView.builder( child: presenter.shopModel == null
itemCount: entries.length, ? Container()
itemBuilder: (context, i) { : ListView.builder(
final widgetItem = (i == entries.length); itemCount: presenter.shopModel.dATA[0].storeCode.length,
new RaisedButton( itemBuilder: (context, i) {
child: new Text( // new RaisedButton(
'Load more ...', // child: new Text(
style: new TextStyle( // 'Load more ...',
color: Colors.black, // style: new TextStyle(
fontWeight: FontWeight.bold, // color: Colors.black,
), // fontWeight: FontWeight.bold,
), // ),
onPressed: () { // ),
var nextItems = new List<String>.generate(1, (i) { // onPressed: () {
var itemId = i + entries.length; // var nextItems = new List<String>.generate(2, (i) {
return "Item $itemId"; // var itemId = i + presenter.shopModel.dATA[i].storeName.length;
}); // return "Item $itemId";
setState(() { // });
entries.addAll(nextItems); // setState(() {
}); // entries.addAll(nextItems);
}); // });
return _shopItem(entries[i]); // });
return _shopItem(
}), presenter.shopModel.dATA[i].storeName,
presenter.shopModel.dATA[i].storeCover,
presenter.shopModel.dATA[i].address,
presenter.shopModel.dATA[i].detail == null ? "" : presenter.shopModel.dATA[i].detail);
}),
), ),
); );
} }
Widget _shopItem(String title) { Widget _shopItem(String title, String image, String address, String detail) {
return Card( return Card(
child: Column( child: Column(
children: <Widget>[ children: <Widget>[
...@@ -306,12 +301,19 @@ class _ShopListState extends State<ShopList> with TickerProviderStateMixin { ...@@ -306,12 +301,19 @@ class _ShopListState extends State<ShopList> with TickerProviderStateMixin {
height: SizeConfig.getHeight(270), height: SizeConfig.getHeight(270),
child: Stack( child: Stack(
children: <Widget>[ children: <Widget>[
Image.network( presenter.shopModel == null
'https://image.freepik.com/free-photo/girl-massage-spa-salon_110955-422.jpg', ? Image.network(
height: SizeConfig.getWidth(180), 'https://image.freepik.com/free-photo/girl-massage-spa-salon_110955-422.jpg',
width: MediaQuery.of(context).size.width, height: SizeConfig.getWidth(180),
fit: BoxFit.cover, width: MediaQuery.of(context).size.width,
), fit: BoxFit.cover,
)
: Image.network(
image,
height: SizeConfig.getWidth(180),
width: MediaQuery.of(context).size.width,
fit: BoxFit.cover,
),
Positioned( Positioned(
right: SizeConfig.getPadding(16), right: SizeConfig.getPadding(16),
top: SizeConfig.getPadding(16), top: SizeConfig.getPadding(16),
...@@ -351,15 +353,25 @@ class _ShopListState extends State<ShopList> with TickerProviderStateMixin { ...@@ -351,15 +353,25 @@ class _ShopListState extends State<ShopList> with TickerProviderStateMixin {
left: SizeConfig.getPadding(24), left: SizeConfig.getPadding(24),
right: SizeConfig.getPadding(24)), right: SizeConfig.getPadding(24)),
alignment: Alignment.topLeft, alignment: Alignment.topLeft,
child: Text( child: presenter.shopModel == null
'4/18, 4/21 BTS Nana Exit4 Sukhumvit Soi 8 , KlongToey Bangkok, Thailand 10110', ? Text(
textAlign: TextAlign.left, "",
style: TextStyle( textAlign: TextAlign.left,
color: Colors.grey, style: TextStyle(
fontSize: SizeConfig.getFontSize(12), color: Colors.grey,
fontFamily: "SF_Pro_Text", fontSize: SizeConfig.getFontSize(12),
fontWeight: FontWeight.w500), fontFamily: "SF_Pro_Text",
), fontWeight: FontWeight.w500),
)
: Text(
address,
textAlign: TextAlign.left,
style: TextStyle(
color: Colors.grey,
fontSize: SizeConfig.getFontSize(12),
fontFamily: "SF_Pro_Text",
fontWeight: FontWeight.w500),
),
), ),
Container( Container(
padding: EdgeInsets.only( padding: EdgeInsets.only(
...@@ -369,7 +381,7 @@ class _ShopListState extends State<ShopList> with TickerProviderStateMixin { ...@@ -369,7 +381,7 @@ class _ShopListState extends State<ShopList> with TickerProviderStateMixin {
bottom: SizeConfig.getPadding(10)), bottom: SizeConfig.getPadding(10)),
alignment: Alignment.topLeft, alignment: Alignment.topLeft,
child: Text( child: Text(
'Body Scrub', detail,
textAlign: TextAlign.left, textAlign: TextAlign.left,
style: TextStyle( style: TextStyle(
color: Colors.black, color: Colors.black,
......
...@@ -4,11 +4,10 @@ import 'package:feelverapp/service/base_presenter.dart'; ...@@ -4,11 +4,10 @@ import 'package:feelverapp/service/base_presenter.dart';
import 'package:feelverapp/ui/shop/shop_list.dart'; import 'package:feelverapp/ui/shop/shop_list.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
class ShoplistPresenter extends BasePresenter<ShopList> {
class ShoplistPresenter extends BasePresenter<ShopList>{
Api _api; Api _api;
final formkey = GlobalKey<FormState>(); final formkey = GlobalKey<FormState>();
shoplistModel shopModel;
ShoplistPresenter(State<ShopList> state) : super(state); ShoplistPresenter(State<ShopList> state) : super(state);
...@@ -18,11 +17,18 @@ class ShoplistPresenter extends BasePresenter<ShopList>{ ...@@ -18,11 +17,18 @@ class ShoplistPresenter extends BasePresenter<ShopList>{
"sort": "asc", "sort": "asc",
"lang": "en_US", "lang": "en_US",
"limit": "8", "limit": "8",
"offset": "10",
"near_location": "18.78635785784557,98.97981414149695",
}); });
if (res.fail == null) { if (res.fail == null) {
print('res Success'); setState(() {
shopModel = res.success;
print("gggggggggggg");
print('${shopModel.dATA[0].storeName}');
});
} else { } else {
print('res Fail'); print('res Fail');
} }
} }
} }
\ No newline at end of file
...@@ -83,6 +83,13 @@ packages: ...@@ -83,6 +83,13 @@ packages:
description: flutter description: flutter
source: sdk source: sdk
version: "0.0.0" version: "0.0.0"
flutter_datetime_picker:
dependency: "direct main"
description:
name: flutter_datetime_picker
url: "https://pub.dartlang.org"
source: hosted
version: "1.4.0"
flutter_plugin_android_lifecycle: flutter_plugin_android_lifecycle:
dependency: transitive dependency: transitive
description: description:
......
...@@ -34,6 +34,7 @@ dependencies: ...@@ -34,6 +34,7 @@ dependencies:
html: ^0.14.0+3 html: ^0.14.0+3
url_launcher: ^5.4.2 url_launcher: ^5.4.2
date_format: ^1.0.8 date_format: ^1.0.8
flutter_datetime_picker: ^1.4.0
dev_dependencies: dev_dependencies:
......
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