Commit bca1b3b6 authored by 杜欣's avatar 杜欣

Merge branch 'test' into featrue/duxin

parents f523ef59 790d0f59
...@@ -102,10 +102,10 @@ class LevelOneListState extends State<LevelOneList> ...@@ -102,10 +102,10 @@ class LevelOneListState extends State<LevelOneList>
widget.pageName, widget.pageName,
"${widget.planId}", "${widget.planId}",
_model.data[index].cardType == "hospital" _model.data[index].cardType == "hospital"
? _model.data[index].hospital ? _model.data[index].hospital.hosiptalId
: "", : "",
_model.data[index].cardType == "doctor" _model.data[index].cardType == "doctor"
? _model.data[index].doctor ? _model.data[index].doctor.doctor_id
: ""); : "");
}, },
compare: () { compare: () {
......
...@@ -16,6 +16,7 @@ import 'package:gm_flutter/ClueModel/page/levelOne/LevelOneModel.dart'; ...@@ -16,6 +16,7 @@ import 'package:gm_flutter/ClueModel/page/levelOne/LevelOneModel.dart';
import 'package:gm_flutter/commonModel/GMBase.dart'; import 'package:gm_flutter/commonModel/GMBase.dart';
import 'package:gm_flutter/commonModel/base/BaseComponent.dart'; import 'package:gm_flutter/commonModel/base/BaseComponent.dart';
import 'package:gm_flutter/commonModel/base/BaseState.dart'; import 'package:gm_flutter/commonModel/base/BaseState.dart';
import 'package:gm_flutter/commonModel/bean/Pair.dart';
import 'package:gm_flutter/commonModel/eventbus/SimpleEventBus.dart'; import 'package:gm_flutter/commonModel/eventbus/SimpleEventBus.dart';
import 'package:gm_flutter/commonModel/view/baseRefreshIndicator.dart'; import 'package:gm_flutter/commonModel/view/baseRefreshIndicator.dart';
import 'package:gm_flutter/main.mark.dart'; import 'package:gm_flutter/main.mark.dart';
...@@ -120,6 +121,7 @@ class LevelOneState extends BaseState<LevelOnePage> ...@@ -120,6 +121,7 @@ class LevelOneState extends BaseState<LevelOnePage>
}, },
child: newHomeWarp()), child: newHomeWarp()),
), () { ), () {
_model.stateLive.notifyView(LOADING);
_model.init(() { _model.init(() {
_initTabBar(); _initTabBar();
}); });
...@@ -409,28 +411,26 @@ class LevelOneState extends BaseState<LevelOnePage> ...@@ -409,28 +411,26 @@ class LevelOneState extends BaseState<LevelOnePage>
child: Row( child: Row(
children: <Widget>[ children: <Widget>[
Container( Container(
constraints: BoxConstraints( constraints: BoxConstraints(
maxWidth: 52, maxWidth: 52,
), ),
child: Text( child: Text(
element.attrName, element.attrName,
textScaleFactor: 1.0, textScaleFactor: 1.0,
softWrap: true, softWrap: true,
maxLines: 1, maxLines: 1,
overflow: TextOverflow.ellipsis, overflow: TextOverflow.ellipsis,
style: TextStyle( style: TextStyle(
decoration: TextDecoration.none, decoration: TextDecoration.none,
fontSize: 13, fontSize: 13,
color: Color(0xff999999), color: Color(0xff999999),
fontStyle: FontStyle.normal, fontStyle: FontStyle.normal,
fontWeight: FontWeight.w400), fontWeight: FontWeight.w400),
) )),
),
Expanded( Expanded(
child: Container( child: Container(
margin: EdgeInsets.only(left: 12), margin: EdgeInsets.only(left: 12),
child: child: Text(
Text(
element.attrValue, element.attrValue,
textScaleFactor: 1.0, textScaleFactor: 1.0,
softWrap: false, softWrap: false,
...@@ -446,7 +446,6 @@ class LevelOneState extends BaseState<LevelOnePage> ...@@ -446,7 +446,6 @@ class LevelOneState extends BaseState<LevelOnePage>
// ), // ),
), ),
) )
], ],
), ),
)); ));
......
...@@ -18,6 +18,7 @@ import 'package:gm_flutter/ClueModel/page/levelOne/LevelOneModel.dart'; ...@@ -18,6 +18,7 @@ import 'package:gm_flutter/ClueModel/page/levelOne/LevelOneModel.dart';
import 'package:gm_flutter/ClueModel/page/mechanismBox/MechanismBoxPage.dart'; import 'package:gm_flutter/ClueModel/page/mechanismBox/MechanismBoxPage.dart';
import 'package:gm_flutter/commonModel/base/BaseComponent.dart'; import 'package:gm_flutter/commonModel/base/BaseComponent.dart';
import 'package:gm_flutter/commonModel/base/BaseState.dart'; import 'package:gm_flutter/commonModel/base/BaseState.dart';
import 'package:gm_flutter/commonModel/bean/Pair.dart';
import 'package:gm_flutter/commonModel/eventbus/SimpleEventBus.dart'; import 'package:gm_flutter/commonModel/eventbus/SimpleEventBus.dart';
import 'package:gm_flutter/commonModel/net/DioUtil.dart'; import 'package:gm_flutter/commonModel/net/DioUtil.dart';
import 'package:gm_flutter/commonModel/view/baseRefreshIndicator.dart'; import 'package:gm_flutter/commonModel/view/baseRefreshIndicator.dart';
...@@ -125,6 +126,7 @@ class LevelTwoState extends BaseState<LevelTwoPage> ...@@ -125,6 +126,7 @@ class LevelTwoState extends BaseState<LevelTwoPage>
], ],
)), )),
), () { ), () {
_model.stateLive.notifyView(LOADING);
_model.init(() { _model.init(() {
_initTabBar(); _initTabBar();
}); });
......
...@@ -34,7 +34,7 @@ class PlanModel extends BaseModel { ...@@ -34,7 +34,7 @@ class PlanModel extends BaseModel {
List<Orders> sortList = []; List<Orders> sortList = [];
RxDispose rxDispose = RxDispose(); RxDispose rxDispose = RxDispose();
String tag_id = ""; String tag_id = "0";
String order_by = ""; String order_by = "";
String current_city_id = ""; String current_city_id = "";
String min_price = ""; String min_price = "";
......
...@@ -53,6 +53,7 @@ class PlanState extends BaseState<PlanPage> with TickerProviderStateMixin { ...@@ -53,6 +53,7 @@ class PlanState extends BaseState<PlanPage> with TickerProviderStateMixin {
ChangeNotifier hideAllMenuListener = new ChangeNotifier(); ChangeNotifier hideAllMenuListener = new ChangeNotifier();
GlobalKey globalKey = GlobalKey(); GlobalKey globalKey = GlobalKey();
PlanBarView planBarView; PlanBarView planBarView;
double stateBarHeight;
@override @override
void initState() { void initState() {
...@@ -81,6 +82,8 @@ class PlanState extends BaseState<PlanPage> with TickerProviderStateMixin { ...@@ -81,6 +82,8 @@ class PlanState extends BaseState<PlanPage> with TickerProviderStateMixin {
@override @override
Widget buildItem(BuildContext context) { Widget buildItem(BuildContext context) {
stateBarHeight = MediaQueryData.fromWindow(window).padding.top;
return Scaffold( return Scaffold(
body: MediaQuery.removePadding( body: MediaQuery.removePadding(
removeTop: true, removeTop: true,
...@@ -100,7 +103,7 @@ class PlanState extends BaseState<PlanPage> with TickerProviderStateMixin { ...@@ -100,7 +103,7 @@ class PlanState extends BaseState<PlanPage> with TickerProviderStateMixin {
children: <Widget>[ children: <Widget>[
Container( Container(
width: MediaQuery.of(context).size.width, width: MediaQuery.of(context).size.width,
height: MediaQuery.of(context).size.height - 86, height: MediaQuery.of(context).size.height - stateBarHeight,
child: child(), child: child(),
), ),
StreamBuilder<List<double>>( StreamBuilder<List<double>>(
...@@ -283,59 +286,59 @@ class PlanState extends BaseState<PlanPage> with TickerProviderStateMixin { ...@@ -283,59 +286,59 @@ class PlanState extends BaseState<PlanPage> with TickerProviderStateMixin {
Widget head() { Widget head() {
return Container( return Container(
height: 86, height: stateBarHeight,
child: Container( // child: Container(
margin: EdgeInsets.only(top: 48, left: 15, right: 15), // margin: EdgeInsets.only(top: 48, left: 15, right: 15),
width: double.maxFinite, // width: double.maxFinite,
height: 32, // height: 32,
child: TextField( // child: TextField(
cursorColor: Color(0xff20BDBB), // cursorColor: Color(0xff20BDBB),
style: TextStyle(fontSize: 12, color: Color(0xff999999)), // style: TextStyle(fontSize: 12, color: Color(0xff999999)),
decoration: InputDecoration( // decoration: InputDecoration(
isDense: true, // isDense: true,
prefixIcon: Container( // prefixIcon: Container(
child: Container( // child: Container(
margin: EdgeInsets.only(left: 12, right: 6), // margin: EdgeInsets.only(left: 12, right: 6),
width: 13, // width: 13,
height: 13, // height: 13,
child: Image.asset("assets/search.png"), // child: Image.asset("assets/search.png"),
), // ),
), // ),
prefixIconConstraints: // prefixIconConstraints:
BoxConstraints(maxWidth: 31, minWidth: 31, maxHeight: 13), // BoxConstraints(maxWidth: 31, minWidth: 31, maxHeight: 13),
suffixIconConstraints: // suffixIconConstraints:
BoxConstraints(maxWidth: 56.5, maxHeight: 32), // BoxConstraints(maxWidth: 56.5, maxHeight: 32),
suffixIcon: Container( // suffixIcon: Container(
decoration: BoxDecoration( // decoration: BoxDecoration(
color: Color(0xff51CDC7), // color: Color(0xff51CDC7),
borderRadius: BorderRadius.circular(16), // borderRadius: BorderRadius.circular(16),
), // ),
alignment: Alignment.center, // alignment: Alignment.center,
child: baseText("搜索", 14, Colors.white), // child: baseText("搜索", 14, Colors.white),
).gestureDetector(() { // ).gestureDetector(() {
//TODO // //TODO
}), // }),
contentPadding: // contentPadding:
const EdgeInsets.symmetric(horizontal: 12.0, vertical: 10.0), // const EdgeInsets.symmetric(horizontal: 12.0, vertical: 10.0),
border: OutlineInputBorder( // border: OutlineInputBorder(
borderRadius: BorderRadius.circular(19.5), // borderRadius: BorderRadius.circular(19.5),
borderSide: BorderSide.none), // borderSide: BorderSide.none),
filled: true, // filled: true,
fillColor: Color(0xffF7F6FA), // fillColor: Color(0xffF7F6FA),
hintStyle: TextStyle(fontSize: 12, color: Color(0xff999999)), // hintStyle: TextStyle(fontSize: 12, color: Color(0xff999999)),
hintText: "切开双眼皮"), // hintText: "切开双眼皮"),
maxLines: 1, // maxLines: 1,
enableInteractiveSelection: true, // enableInteractiveSelection: true,
focusNode: focusNode, // focusNode: focusNode,
autocorrect: false, // autocorrect: false,
autofocus: false, // autofocus: false,
textInputAction: TextInputAction.search, // textInputAction: TextInputAction.search,
controller: _editingController, // controller: _editingController,
minLines: null, // minLines: null,
onEditingComplete: () {}, // onEditingComplete: () {},
onSubmitted: (text) {}, // onSubmitted: (text) {},
), // ),
), // ),
); );
} }
...@@ -452,7 +455,7 @@ class PlanState extends BaseState<PlanPage> with TickerProviderStateMixin { ...@@ -452,7 +455,7 @@ class PlanState extends BaseState<PlanPage> with TickerProviderStateMixin {
double bottom = double bottom =
// WidgetUtil.buttonLeftMenuPosition(globalKey.currentContext)?.top ?? // WidgetUtil.buttonLeftMenuPosition(globalKey.currentContext)?.top ??
topPos == null ? 0.0 : topPos.dy + 45 - 86; topPos == null ? 0.0 : topPos.dy + 45 - stateBarHeight;
if (bottom < 45) { if (bottom < 45) {
bottom = 45; bottom = 45;
} }
...@@ -528,7 +531,7 @@ class PlanState extends BaseState<PlanPage> with TickerProviderStateMixin { ...@@ -528,7 +531,7 @@ class PlanState extends BaseState<PlanPage> with TickerProviderStateMixin {
void _onScroll(double offset) { void _onScroll(double offset) {
var topPos = PosUtil.findPos(globalKey); var topPos = PosUtil.findPos(globalKey);
if (topPos != null) { if (topPos != null) {
if (topPos.dy > 86) { if (topPos.dy > stateBarHeight) {
_model.showTab.notifyView(false); _model.showTab.notifyView(false);
} else { } else {
_model.showTab.notifyView(true); _model.showTab.notifyView(true);
......
...@@ -34,6 +34,7 @@ class ProjectViewState extends State<ProjectView> { ...@@ -34,6 +34,7 @@ class ProjectViewState extends State<ProjectView> {
children: <Widget>[ children: <Widget>[
Container( Container(
width: 75, width: 75,
color: Color(0xffF4F3F8),
child: ListView.builder( child: ListView.builder(
itemBuilder: (c, index) { itemBuilder: (c, index) {
return Container( return Container(
...@@ -78,13 +79,13 @@ class ProjectViewState extends State<ProjectView> { ...@@ -78,13 +79,13 @@ class ProjectViewState extends State<ProjectView> {
itemBuilder: (c, index) { itemBuilder: (c, index) {
return Container( return Container(
margin: EdgeInsets.only(left: 20, top: 18, bottom: 18), margin: EdgeInsets.only(left: 20, top: 18, bottom: 18),
child: baseText(widget.datas[selectIndex].subTags[index].name, child: baseText(widget.datas[selectIndex].subtags[index].name,
14, Color(0xff464646)), 14, Color(0xff464646)),
).gestureDetector(() { ).gestureDetector(() {
widget.clickCall(widget.datas[selectIndex].subTags[index].id); widget.clickCall("${widget.datas[selectIndex].subtags[index].tagId}");
}); });
}, },
itemCount: widget.datas[selectIndex].subTags.length, itemCount: widget.datas[selectIndex].subtags.length,
), ),
) )
], ],
......
...@@ -56,7 +56,7 @@ class TopListState extends State<TopList> ...@@ -56,7 +56,7 @@ class TopListState extends State<TopList>
return baseStateView(MediaQuery.of(context).size.width, return baseStateView(MediaQuery.of(context).size.width,
MediaQuery.of(context).size.height, _model.stateLive, home(), () { MediaQuery.of(context).size.height, _model.stateLive, home(), () {
_model.getData(true); _model.getData(true);
}); },paddingTop: widget.topHeight);
} }
Widget home() { Widget home() {
......
...@@ -16,6 +16,7 @@ import 'package:gm_flutter/ClueModel/util/PosUtil.dart'; ...@@ -16,6 +16,7 @@ import 'package:gm_flutter/ClueModel/util/PosUtil.dart';
import 'package:gm_flutter/commonModel/base/BaseComponent.dart'; import 'package:gm_flutter/commonModel/base/BaseComponent.dart';
import 'package:gm_flutter/commonModel/base/BaseState.dart'; import 'package:gm_flutter/commonModel/base/BaseState.dart';
import 'package:gm_flutter/commonModel/eventbus/SimpleEventBus.dart'; import 'package:gm_flutter/commonModel/eventbus/SimpleEventBus.dart';
import 'package:gm_flutter/commonModel/net/DioUtil.dart';
import 'package:gm_flutter/commonModel/util/DartUtil.dart'; import 'package:gm_flutter/commonModel/util/DartUtil.dart';
import 'package:gm_flutter/commonModel/view/baseRefreshIndicator.dart'; import 'package:gm_flutter/commonModel/view/baseRefreshIndicator.dart';
import 'package:pull_to_refresh/pull_to_refresh.dart'; import 'package:pull_to_refresh/pull_to_refresh.dart';
...@@ -42,6 +43,7 @@ class TopPageState extends BaseState<TopPage> with TickerProviderStateMixin { ...@@ -42,6 +43,7 @@ class TopPageState extends BaseState<TopPage> with TickerProviderStateMixin {
@override @override
void initState() { void initState() {
DioUtil.getInstance().setProxy("172.30.8.245");
_model.rank_type = widget.rank_type; _model.rank_type = widget.rank_type;
init(); init();
super.initState(); super.initState();
......
class ConsultQuestionsBean { class ConsultQuestionsBean {
int error; int error;
String message; String message;
Null extra; Map extra;
Null errorExtra; Map errorExtra;
UserType userType; UserType userType;
Data data; Data data;
......
...@@ -8,8 +8,8 @@ ...@@ -8,8 +8,8 @@
class DiscussLowPriceAuthBean { class DiscussLowPriceAuthBean {
int error; int error;
String message; String message;
Null extra; Map extra;
Null errorExtra; Map errorExtra;
UserType userType; UserType userType;
Data data; Data data;
......
...@@ -5,8 +5,8 @@ ...@@ -5,8 +5,8 @@
class LevelOneFeedList { class LevelOneFeedList {
int error; int error;
String message; String message;
Null extra; Map extra;
Null errorExtra; Map errorExtra;
UserType userType; UserType userType;
Data data; Data data;
...@@ -245,6 +245,7 @@ class Hospital { ...@@ -245,6 +245,7 @@ class Hospital {
class Doctor { class Doctor {
String portrait; String portrait;
String name; String name;
String doctor_id;
String minPrice; String minPrice;
String maxPrice; String maxPrice;
String star; String star;
...@@ -267,6 +268,7 @@ class Doctor { ...@@ -267,6 +268,7 @@ class Doctor {
name = json['name']; name = json['name'];
minPrice = json['min_price']; minPrice = json['min_price'];
maxPrice = json['max_price']; maxPrice = json['max_price'];
doctor_id = json['doctor_id'];
star = json['star']; star = json['star'];
title = json['title']; title = json['title'];
consultType = json['consult_type']; consultType = json['consult_type'];
...@@ -277,6 +279,7 @@ class Doctor { ...@@ -277,6 +279,7 @@ class Doctor {
final Map<String, dynamic> data = new Map<String, dynamic>(); final Map<String, dynamic> data = new Map<String, dynamic>();
data['portrait'] = this.portrait; data['portrait'] = this.portrait;
data['name'] = this.name; data['name'] = this.name;
data['doctor_id'] = this.doctor_id;
data['min_price'] = this.minPrice; data['min_price'] = this.minPrice;
data['max_price'] = this.maxPrice; data['max_price'] = this.maxPrice;
data['star'] = this.star; data['star'] = this.star;
......
...@@ -5,8 +5,8 @@ ...@@ -5,8 +5,8 @@
class PlanBarBean { class PlanBarBean {
int error; int error;
String message; String message;
Null extra; Map extra;
Null errorExtra; Map errorExtra;
UserType userType; UserType userType;
Data data; Data data;
......
...@@ -5,28 +5,22 @@ ...@@ -5,28 +5,22 @@
class PlanBean { class PlanBean {
int error; int error;
String message; String message;
String extra; Null extra;
String errorExtra; Null errorCode;
UserType userType; Null errorExtra;
Data data; Data data;
UserType userType;
PlanBean( PlanBean({this.error, this.message, this.extra, this.errorCode, this.errorExtra, this.data, this.userType});
{this.error,
this.message,
this.extra,
this.errorExtra,
this.userType,
this.data});
PlanBean.fromJson(Map<String, dynamic> json) { PlanBean.fromJson(Map<String, dynamic> json) {
error = json['error']; error = json['error'];
message = json['message']; message = json['message'];
extra = json['extra']??""; extra = json['extra'];
errorExtra = json['error_extra']??""; errorCode = json['error_code'];
userType = json['user_type'] != null errorExtra = json['error_extra'];
? new UserType.fromJson(json['user_type'])
: null;
data = json['data'] != null ? new Data.fromJson(json['data']) : null; data = json['data'] != null ? new Data.fromJson(json['data']) : null;
userType = json['user_type'] != null ? new UserType.fromJson(json['user_type']) : null;
} }
Map<String, dynamic> toJson() { Map<String, dynamic> toJson() {
...@@ -34,60 +28,39 @@ class PlanBean { ...@@ -34,60 +28,39 @@ class PlanBean {
data['error'] = this.error; data['error'] = this.error;
data['message'] = this.message; data['message'] = this.message;
data['extra'] = this.extra; data['extra'] = this.extra;
data['error_code'] = this.errorCode;
data['error_extra'] = this.errorExtra; data['error_extra'] = this.errorExtra;
if (this.userType != null) {
data['user_type'] = this.userType.toJson();
}
if (this.data != null) { if (this.data != null) {
data['data'] = this.data.toJson(); data['data'] = this.data.toJson();
} }
return data; if (this.userType != null) {
} data['user_type'] = this.userType.toJson();
} }
class UserType {
UserType();
UserType.fromJson(Map<String, dynamic> json) {}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
return data; return data;
} }
} }
class Data { class Data {
List<Ranks> ranks; List<Ranks> ranks;
List<Areas> areas;
List<Tags> tags; List<Tags> tags;
Areas areas;
List<Orders> orders; List<Orders> orders;
Data({this.ranks, this.areas, this.tags, this.orders}); Data({this.ranks, this.tags, this.areas, this.orders});
Data.fromJson(Map<String, dynamic> json) { Data.fromJson(Map<String, dynamic> json) {
if (json['ranks'] != null) { if (json['ranks'] != null) {
ranks = new List<Ranks>(); ranks = new List<Ranks>();
json['ranks'].forEach((v) { json['ranks'].forEach((v) { ranks.add(new Ranks.fromJson(v)); });
ranks.add(new Ranks.fromJson(v));
});
}
if (json['areas'] != null) {
areas = new List<Areas>();
json['areas'].forEach((v) {
areas.add(new Areas.fromJson(v));
});
} }
if (json['tags'] != null) { if (json['tags'] != null) {
tags = new List<Tags>(); tags = new List<Tags>();
json['tags'].forEach((v) { json['tags'].forEach((v) { tags.add(new Tags.fromJson(v)); });
tags.add(new Tags.fromJson(v));
});
} }
areas = json['areas'] != null ? new Areas.fromJson(json['areas']) : null;
if (json['orders'] != null) { if (json['orders'] != null) {
orders = new List<Orders>(); orders = new List<Orders>();
json['orders'].forEach((v) { json['orders'].forEach((v) { orders.add(new Orders.fromJson(v)); });
orders.add(new Orders.fromJson(v));
});
} }
} }
...@@ -96,12 +69,12 @@ class Data { ...@@ -96,12 +69,12 @@ class Data {
if (this.ranks != null) { if (this.ranks != null) {
data['ranks'] = this.ranks.map((v) => v.toJson()).toList(); data['ranks'] = this.ranks.map((v) => v.toJson()).toList();
} }
if (this.areas != null) {
data['areas'] = this.areas.map((v) => v.toJson()).toList();
}
if (this.tags != null) { if (this.tags != null) {
data['tags'] = this.tags.map((v) => v.toJson()).toList(); data['tags'] = this.tags.map((v) => v.toJson()).toList();
} }
if (this.areas != null) {
data['areas'] = this.areas.toJson();
}
if (this.orders != null) { if (this.orders != null) {
data['orders'] = this.orders.map((v) => v.toJson()).toList(); data['orders'] = this.orders.map((v) => v.toJson()).toList();
} }
...@@ -115,7 +88,7 @@ class Ranks { ...@@ -115,7 +88,7 @@ class Ranks {
String gmUrl; String gmUrl;
String icon; String icon;
Ranks({this.name, this.gmUrl, this.icon}); Ranks({this.id, this.name, this.gmUrl, this.icon});
Ranks.fromJson(Map<String, dynamic> json) { Ranks.fromJson(Map<String, dynamic> json) {
id = json['id']; id = json['id'];
...@@ -126,29 +99,127 @@ class Ranks { ...@@ -126,29 +99,127 @@ class Ranks {
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['name'] = this.name;
data['id'] = this.id; data['id'] = this.id;
data['name'] = this.name;
data['gm_url'] = this.gmUrl; data['gm_url'] = this.gmUrl;
data['icon'] = this.icon; data['icon'] = this.icon;
return data; return data;
} }
} }
class Tags {
List<Subtags> subtags;
int isNewTag;
String name;
int tagId;
Tags({this.subtags, this.isNewTag, this.name, this.tagId});
Tags.fromJson(Map<String, dynamic> json) {
if (json['subtags'] != null) {
subtags = new List<Subtags>();
json['subtags'].forEach((v) { subtags.add(new Subtags.fromJson(v)); });
}
isNewTag = json['is_new_tag'];
name = json['name'];
tagId = json['tag_id'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
if (this.subtags != null) {
data['subtags'] = this.subtags.map((v) => v.toJson()).toList();
}
data['is_new_tag'] = this.isNewTag;
data['name'] = this.name;
data['tag_id'] = this.tagId;
return data;
}
}
class Subtags {
int isNewTag;
String name;
int tagId;
Subtags({this.isNewTag, this.name, this.tagId});
Subtags.fromJson(Map<String, dynamic> json) {
isNewTag = json['is_new_tag'];
name = json['name'];
tagId = json['tag_id'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['is_new_tag'] = this.isNewTag;
data['name'] = this.name;
data['tag_id'] = this.tagId;
return data;
}
}
class Areas { class Areas {
AutoLocated autoLocated;
List<Countries> countries;
Areas({this.autoLocated, this.countries});
Areas.fromJson(Map<String, dynamic> json) {
autoLocated = json['auto_located'] != null ? new AutoLocated.fromJson(json['auto_located']) : null;
if (json['countries'] != null) {
countries = new List<Countries>();
json['countries'].forEach((v) { countries.add(new Countries.fromJson(v)); });
}
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
if (this.autoLocated != null) {
data['auto_located'] = this.autoLocated.toJson();
}
if (this.countries != null) {
data['countries'] = this.countries.map((v) => v.toJson()).toList();
}
return data;
}
}
class AutoLocated {
int type;
int id;
String name;
AutoLocated({this.type, this.id, this.name});
AutoLocated.fromJson(Map<String, dynamic> json) {
type = json['type'];
id = json['id'];
name = json['name'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['type'] = this.type;
data['id'] = this.id;
data['name'] = this.name;
return data;
}
}
class Countries {
bool isLocated; bool isLocated;
String name; String name;
List<Groups> groups; List<Groups> groups;
Areas({this.isLocated, this.name, this.groups}); Countries({this.isLocated, this.name, this.groups});
Areas.fromJson(Map<String, dynamic> json) { Countries.fromJson(Map<String, dynamic> json) {
isLocated = json['is_located']; isLocated = json['is_located'];
name = json['name']; name = json['name'];
if (json['groups'] != null) { if (json['groups'] != null) {
groups = new List<Groups>(); groups = new List<Groups>();
json['groups'].forEach((v) { json['groups'].forEach((v) { groups.add(new Groups.fromJson(v)); });
groups.add(new Groups.fromJson(v));
});
} }
} }
...@@ -176,9 +247,7 @@ class Groups { ...@@ -176,9 +247,7 @@ class Groups {
initial = json['initial']; initial = json['initial'];
if (json['cities'] != null) { if (json['cities'] != null) {
cities = new List<Cities>(); cities = new List<Cities>();
json['cities'].forEach((v) { json['cities'].forEach((v) { cities.add(new Cities.fromJson(v)); });
cities.add(new Cities.fromJson(v));
});
} }
title = json['title']; title = json['title'];
} }
...@@ -196,90 +265,57 @@ class Groups { ...@@ -196,90 +265,57 @@ class Groups {
} }
class Cities { class Cities {
String cityName;
String id; String id;
String name; String name;
int tagId;
Cities({this.cityName, this.id, this.name}); Cities({this.id, this.name, this.tagId});
Cities.fromJson(Map<String, dynamic> json) { Cities.fromJson(Map<String, dynamic> json) {
cityName = json['city_name']; id = json['id'];
id = json['id'].toString();
name = json['name']; name = json['name'];
tagId = json['tag_id'];
} }
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['city_name'] = this.cityName;
data['id'] = this.id; data['id'] = this.id;
data['name'] = this.name; data['name'] = this.name;
data['tag_id'] = this.tagId;
return data; return data;
} }
} }
class Tags { class Orders {
String id; int id;
List<SubTags> subTags;
String name; String name;
Tags({this.id, this.subTags, this.name}); Orders({this.id, this.name});
Tags.fromJson(Map<String, dynamic> json) { Orders.fromJson(Map<String, dynamic> json) {
id = json['id'].toString(); id = json['id'];
if (json['sub_tags'] != null) {
subTags = new List<SubTags>();
json['sub_tags'].forEach((v) {
subTags.add(new SubTags.fromJson(v));
});
}
name = json['name']; name = json['name'];
} }
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;
if (this.subTags != null) {
data['sub_tags'] = this.subTags.map((v) => v.toJson()).toList();
}
data['name'] = this.name; data['name'] = this.name;
return data; return data;
} }
} }
class SubTags { class UserType {
String id;
String name;
SubTags({this.id, this.name});
SubTags.fromJson(Map<String, dynamic> json) { UserType();
id = json['id'].toString();
name = json['name'];
}
Map<String, dynamic> toJson() { UserType.fromJson(Map<String, dynamic> json) {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['id'] = this.id;
data['name'] = this.name;
return data;
}
} }
class Orders { Map<String, dynamic> toJson() {
int id; final Map<String, dynamic> data = new Map<String, dynamic>();
String name; return data;
Orders({this.id, this.name});
Orders.fromJson(Map<String, dynamic> json) {
id = json['id'];
name = json['name'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['id'] = this.id;
data['name'] = this.name;
return data;
}
} }
}
...@@ -7,8 +7,8 @@ ...@@ -7,8 +7,8 @@
class PlanCompareDetail { class PlanCompareDetail {
int error; int error;
String message; String message;
Null extra; Map extra;
Null errorExtra; Map errorExtra;
UserType userType; UserType userType;
Data data; Data data;
......
class PlanConsultBean { class PlanConsultBean {
int error; int error;
String message; String message;
Null extra; Map extra;
Null errorExtra; Map errorExtra;
UserType userType; UserType userType;
Data data; Data data;
......
...@@ -5,8 +5,8 @@ ...@@ -5,8 +5,8 @@
class PlanFeedBean { class PlanFeedBean {
int error; int error;
String message; String message;
String extra; Map extra;
String errorExtra; Map errorExtra;
UserType userType; UserType userType;
Data data; Data data;
......
...@@ -5,8 +5,8 @@ ...@@ -5,8 +5,8 @@
class PlanOverViewBean { class PlanOverViewBean {
int error; int error;
String message; String message;
Null extra; Map extra;
Null errorExtra; Map errorExtra;
UserType userType; UserType userType;
PlanOverData data; PlanOverData data;
......
class PlansCompareFeed { class PlansCompareFeed {
int error; int error;
String message; String message;
String extra; Map extra;
String errorExtra; Map errorExtra;
UserType userType; UserType userType;
Data data; Data data;
......
...@@ -4,6 +4,7 @@ ...@@ -4,6 +4,7 @@
**/ **/
import 'package:app_settings/app_settings.dart'; import 'package:app_settings/app_settings.dart';
import 'package:cached_network_image/cached_network_image.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter/rendering.dart'; import 'package:flutter/rendering.dart';
import 'package:flutter_common/commonModel/live/LiveData.dart'; import 'package:flutter_common/commonModel/live/LiveData.dart';
...@@ -463,8 +464,8 @@ Widget baseSliverAppBar(String url, ...@@ -463,8 +464,8 @@ Widget baseSliverAppBar(String url,
automaticallyImplyLeading: false, automaticallyImplyLeading: false,
flexibleSpace: FlexibleSpaceBar( flexibleSpace: FlexibleSpaceBar(
background: needpic background: needpic
? Image.network( ? CachedNetworkImage(
url ?? '', imageUrl: url ?? '',
fit: BoxFit.cover, fit: BoxFit.cover,
) )
: Container(), : Container(),
...@@ -494,7 +495,7 @@ Widget baseSliverBack(VoidCallback tap) { ...@@ -494,7 +495,7 @@ Widget baseSliverBack(VoidCallback tap) {
Widget baseSliverTitle(String text, double width, LiveData liveData) { Widget baseSliverTitle(String text, double width, LiveData liveData) {
return Positioned( return Positioned(
top: 57, top: 48,
child: StreamBuilder( child: StreamBuilder(
stream: liveData.stream, stream: liveData.stream,
initialData: liveData.data ?? 0.0, initialData: liveData.data ?? 0.0,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment