Commit 6e0f38b1 authored by 杜欣's avatar 杜欣

Merge branch 'test' into featrue/duxin

parents fb47c408 2af42286
......@@ -18,7 +18,7 @@ abstract class ClueRouter implements RouterBaser {
Widget getLevelTwoPage(Map<String, dynamic> params);
Widget getPlanPage();
Widget getPlanPage( Map<String, dynamic> params);
Widget getPlanCompareDetailPage(Map<String, dynamic> params);
......
......@@ -35,8 +35,8 @@ class ClueRouterImpl implements ClueRouter {
}
@override
Widget getPlanPage() {
return PlanPage();
Widget getPlanPage(Map<String, dynamic> params) {
return PlanPage(params);
}
@override
......
......@@ -5,6 +5,7 @@
* @Last Modified time: 2020-07-04 14:41:41
*/
import 'package:dio/dio.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter_common/commonModel/live/BaseModel.dart';
import 'package:flutter_common/commonModel/live/LiveData.dart';
import 'package:gm_flutter/ClueModel/server/api/ClueApi.serv.dart';
......@@ -18,7 +19,8 @@ class DiscussLowPriceModel extends BaseModel {
LiveData<Pair<int, DiscussLowPriceModelBean>> popViewLive = LiveData();
RxDispose rxDispose = RxDispose();
fetchPopviewData(String planId, String hospitalId, String doctorId) {
fetchPopviewData(
String planId, String hospitalId, String doctorId, VoidCallback fail) {
ClueApiImpl.getInstance()
.getPopviewData(
DioUtil.getInstance().getDio(), planId, hospitalId, doctorId)
......@@ -31,13 +33,15 @@ class DiscussLowPriceModel extends BaseModel {
}
} else {
NativeToast.showNativeToast(event.message);
popViewLive.notifyView(Pair(FAIL, null));
// popViewLive.notifyView(Pair(FAIL, null));
fail();
}
})
.addToDispose(rxDispose)
.onError((err) {
popViewLive.notifyView(Pair(FAIL, null));
// popViewLive.notifyView(Pair(FAIL, null));
NativeToast.showNativeToast(err.message);
fail();
});
}
......
......@@ -15,14 +15,20 @@ import 'package:gm_flutter/commonModel/base/BaseUtil.dart';
import 'package:gm_flutter/main.mark.dart';
class DiscussLowPricePopView {
static void showPopView(BuildContext content) {
static void showPopView(BuildContext content, String pageName, String planId,
String hospitalId, String doctorId) {
BaseCenterPicker()
..setPicker(_PopView())
..setPicker(_PopView(pageName, planId, hospitalId, doctorId))
..show(content);
}
}
class _PopView implements ICenterPicker {
String planId;
String hospitalId;
String doctorId;
String pageName;
_PopView(this.pageName, this.planId, this.hospitalId, this.doctorId);
VoidCallback dismissCallback;
double contentWidth;
DiscussLowPriceModel _model = new DiscussLowPriceModel();
......@@ -40,7 +46,9 @@ class _PopView implements ICenterPicker {
if (data.data.second == null || data.data.first == FAIL) {
return errorItem(contentWidth, 308.5, () {});
}
RouterCenterImpl().findMainRouter().buriedEvent("popup_view", {});
RouterCenterImpl()
.findMainRouter()
.buriedEvent("popup_view", phobosData());
return Opacity(
opacity: alp / 255.0,
child: Container(
......@@ -60,9 +68,6 @@ class _PopView implements ICenterPicker {
height: 13.5,
child: GestureDetector(
onTap: () {
RouterCenterImpl()
.findMainRouter()
.buriedEvent("popup_view", {});
dismissCallback();
},
child: Image.asset(
......@@ -156,10 +161,12 @@ class _PopView implements ICenterPicker {
// ),
child: Image.asset(
"assets/discuss_loe_price_auth.png",
fit: BoxFit.cover,
),
).gestureDetector(() {
// 一键授权
_model.givePhoneAuth(111, () {
_model.givePhoneAuth(
_model.popViewLive.data.second.leadPhoneRequestId, () {
dismissCallback();
});
}),
......@@ -170,6 +177,19 @@ class _PopView implements ICenterPicker {
]);
}
Map<String, dynamic> phobosData() {
Map<String, dynamic> params = Map();
params['page_name'] = this.pageName;
if (this.hospitalId.length > 0) {
params['popup_name'] = 'interested_hospital';
} else if (this.doctorId.length > 0) {
params['popup_name'] = 'interested_doctor';
} else {
params['popup_name'] = 'interested_plan';
}
return params;
}
@override
void dispose() {
_model.dispose();
......@@ -178,6 +198,8 @@ class _PopView implements ICenterPicker {
@override
void initState(VoidCallback dismissCall, BuildContext context) {
this.dismissCallback = dismissCall;
_model.fetchPopviewData('1', '2', '3');
_model.fetchPopviewData(this.planId, this.hospitalId, this.doctorId, () {
dismissCallback();
});
}
}
......@@ -20,7 +20,7 @@ class PlanCompareDetailModel extends BaseModel {
RxDispose rxDispose = RxDispose();
void init(List<int> planIds) {
void init(String planIds) {
ClueApiImpl.getInstance()
.getPlanCompareDetail(DioUtil.getInstance().getDio(), planIds)
.listen((event) {
......
......@@ -12,12 +12,14 @@ import 'package:gm_flutter/ClueModel/view/FiveStarView.dart';
import 'package:gm_flutter/commonModel/base/BaseComponent.dart';
import 'package:gm_flutter/commonModel/base/BaseState.dart';
import 'package:gm_flutter/commonModel/bean/Pair.dart';
import 'dart:convert';
class PlanCompareDetailPage extends StatefulWidget {
List<int> _planIds;
String _planIds;
PlanCompareDetailPage(Map<String, dynamic> params) {
this._planIds = params["planIds"];
String planIds = json.encode(params["planIds"]);
this._planIds = planIds;
}
@override
......@@ -86,7 +88,7 @@ class PlanCompareDetailPageState extends BaseState<PlanCompareDetailPage> {
if (data.data.first == FAIL) {
return errorItem(MediaQuery.of(context).size.width,
MediaQuery.of(context).size.height, () {
_model.init([1, 2]);
_model.init(widget._planIds);
});
}
return ListView.builder(
......@@ -440,4 +442,3 @@ class PlanCompareDetailPageState extends BaseState<PlanCompareDetailPage> {
),
]));
}
}
......@@ -122,15 +122,13 @@ class _PlansCompareFeedState extends BaseState<PlansCompareFeedPage>
onClickCompare() {
if (_compareColor == Color(0xFFCCCCCC)) return;
setState(() {
RouterCenterImpl().findMainRouter().jumpPage(
context,
widget._planType == 1
? "level_one_plan_compare_detail"
: "level_two_plan_compare_deatil",
{"planIds": _setCompare.toList()},
false);
});
RouterCenterImpl().findMainRouter().jumpPage(
context,
widget._planType == 1
? "level_one_plan_compare_detail"
: "level_two_plan_compare_deatil",
{"planIds": _setCompare.toList()},
false);
}
@override
......
......@@ -6,7 +6,6 @@
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:gm_flutter/ClueModel/server/entity/ProjectDetailsItem.dart';
import 'package:gm_flutter/commonModel/base/BaseComponent.dart';
class ProjectDetailsItemView extends StatelessWidget {
Groups listData;
......@@ -65,4 +64,20 @@ class ProjectDetailsItemView extends StatelessWidget {
),
);
}
baseText(String text, double fontSize, Color color, {bool bold = false}) {
return Text(
text,
textScaleFactor: 1.0,
style: TextStyle(
decoration: TextDecoration.none,
fontSize: fontSize,
color: color,
fontStyle: FontStyle.normal,
fontWeight: bold ? FontWeight.w500 : FontWeight.w400),
textAlign: TextAlign.left,
maxLines: 2,
overflow: TextOverflow.ellipsis,
);
}
}
......@@ -9,6 +9,7 @@ import 'package:gm_flutter/ClueModel/server/entity/LevelOneFeedList.dart';
import 'package:gm_flutter/ClueModel/view/FiveStarView.dart';
import 'package:gm_flutter/commonModel/base/BaseComponent.dart';
import 'package:gm_flutter/commonModel/base/BaseUtil.dart';
import 'package:gm_flutter/main.mark.dart';
class LevelOneItem extends StatelessWidget {
final Cards cards;
......@@ -54,6 +55,12 @@ class LevelOneItem extends StatelessWidget {
throw new Exception();
}
return GestureDetector(
behavior: HitTestBehavior.opaque,
onTap: () {
RouterCenterImpl()
.findMainRouter()
.jumpPage(context, cards.doctor.messageUrl, {}, true);
},
child: Container(
margin: EdgeInsets.only(left: 15, right: 15),
height: 127,
......@@ -67,10 +74,16 @@ class LevelOneItem extends StatelessWidget {
child: ClipOval(
child: CachedNetworkImage(
imageUrl: cards.doctor.portrait,
fit: BoxFit.cover,
),
),
),
),
Positioned(
left: 57,
top: 44,
child: FiveStarView(int.parse(cards.doctor.star), 5),
),
Positioned(
left: 57,
top: 18,
......@@ -82,7 +95,7 @@ class LevelOneItem extends StatelessWidget {
bold: true),
Container(
margin: EdgeInsets.only(left: 4),
child: baseText(cards.doctor.name, 15, Color(0xff333333),
child: baseText(cards.doctor.title, 15, Color(0xff333333),
bold: true),
)
],
......@@ -111,11 +124,11 @@ class LevelOneItem extends StatelessWidget {
right: 137,
child: askWidget(),
),
Positioned(
left: 4.5,
bottom: 25,
child: compareWidget(),
),
// Positioned(
// left: 4.5,
// bottom: 25,
// child: compareWidget(),
// ),
Positioned(
left: 0,
bottom: 0,
......
......@@ -4,6 +4,7 @@
**/
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:gm_flutter/ClueModel/page/DiscussLowPrice/DiscussLowPricePopView.dart';
import 'package:gm_flutter/ClueModel/page/levelOne/LevelOneListModel.dart';
import 'package:gm_flutter/ClueModel/server/entity/LevelOneFeedList.dart';
import 'package:gm_flutter/commonModel/base/BaseComponent.dart';
......@@ -55,8 +56,11 @@ class LevelOneListState extends State<LevelOneList>
@override
Widget build(BuildContext context) {
super.build(context);
return baseStateView(MediaQuery.of(context).size.width,
MediaQuery.of(context).size.height, _model.stateLive, pages(), () {
return baseStateView(
MediaQuery.of(context).size.width,
MediaQuery.of(context).size.height ,
_model.stateLive,
pages(), () {
_model.refreshView(true);
}, paddingTop: widget.topHeight);
}
......@@ -89,9 +93,20 @@ class LevelOneListState extends State<LevelOneList>
color: Color(0xffF7F6FA),
);
}
return LevelOneItem(_model.data[index]
,lowPrice: (){
},);
return LevelOneItem(
_model.data[index],
lowPrice: () {
DiscussLowPricePopView.showPopView(
context,
"${widget.planId}",
_model.data[index].cardType == "hospital"
? _model.data[index].hospital
: "",
_model.data[index].cardType == "doctor"
? _model.data[index].doctor
: "");
},
);
},
childCount: _model.data.length + 1,
),
......
......@@ -7,6 +7,7 @@ import 'package:flutter_common/commonModel/live/BaseModel.dart';
import 'package:flutter_common/commonModel/live/LiveData.dart';
import 'package:flutter_common/commonModel/toast/NativeToast.dart';
import 'package:gm_flutter/ClueModel/server/api/ClueApi.serv.dart';
import 'package:gm_flutter/ClueModel/server/api/ClueTApi.serv.dart';
import 'package:gm_flutter/ClueModel/server/entity/LevelOneFeedList.dart';
import 'package:gm_flutter/ClueModel/server/entity/PlanOverViewBean.dart';
import 'package:gm_flutter/commonModel/GMBase.dart';
......@@ -27,7 +28,7 @@ class LevelOneModel extends BaseModel {
String imageUrl = "";
void init(VoidCallback callback) {
ClueApiImpl.getInstance()
ClueTApiImpl.getInstance()
.getPlanOverView(DioUtil.getInstance().getDio(), plan_id)
.listen((event) {
if (event.error == 0) {
......
......@@ -47,8 +47,11 @@ class LevelOneState extends BaseState<LevelOnePage>
int index = 0;
double stateBarHeight = 0;
@override
void initState() {
DioUtil.getInstance().setProxy("172.30.8.245");
super.initState();
_model.plan_id = widget.planId;
_model.init(() {
......@@ -83,6 +86,8 @@ class LevelOneState extends BaseState<LevelOnePage>
@override
Widget buildItem(BuildContext context) {
stateBarHeight = MediaQueryData.fromWindow(window).padding.top;
oneList.clear();
oneList.add(good());
oneList.add(rect());
......@@ -164,12 +169,11 @@ class LevelOneState extends BaseState<LevelOnePage>
Widget newHome() {
List<Widget> list = [];
var d = MediaQueryData.fromWindow(window).padding.top;
for (int i = 0; i < _model.tabsList.length; i++) {
list.add(extend.NestedScrollViewInnerScrollPositionKeyWidget(
Key("Tab${i}"),
LevelOneList(
widget.planId, _model.tabsList[i].tabType, kToolbarHeight + d)));
LevelOneList(widget.planId, _model.tabsList[i].tabType,
kToolbarHeight + stateBarHeight)));
}
final double statusBarHeight = MediaQuery.of(context).padding.top;
final double pinnedHeaderHeight = statusBarHeight + kToolbarHeight;
......@@ -183,8 +187,7 @@ class LevelOneState extends BaseState<LevelOnePage>
SliverOverlapAbsorber(
handle: extend.NestedScrollView.sliverOverlapAbsorberHandleFor(
context),
sliver: baseSliverAppBar(
_model.imageUrl)),
sliver: baseSliverAppBar(_model.imageUrl)),
SliverList(
delegate: SliverChildBuilderDelegate((BuildContext c, int i) {
if (i == 0) {
......@@ -358,14 +361,9 @@ class LevelOneState extends BaseState<LevelOnePage>
),
GestureDetector(
onTap: () {
//TODO
Map<String, dynamic> map = {};
map["page_name"] = "plan_home";
map["referrer_link"] = [];
RouterCenterImpl()
.findMainRouter()
.buriedEvent("on_click_navbar_search", map);
.jumpPage(context, "", {}, false);
},
behavior: HitTestBehavior.opaque,
child: baseText("了解更多", 12, Color(0xff3FB5AF)),
......
......@@ -7,6 +7,7 @@ import 'package:flutter_common/commonModel/live/BaseModel.dart';
import 'package:flutter_common/commonModel/live/LiveData.dart';
import 'package:flutter_common/commonModel/toast/NativeToast.dart';
import 'package:gm_flutter/ClueModel/server/api/ClueApi.serv.dart';
import 'package:gm_flutter/ClueModel/server/api/ClueTApi.serv.dart';
import 'package:gm_flutter/ClueModel/server/entity/PlanOverViewBean.dart';
import 'package:gm_flutter/commonModel/GMBase.dart';
import 'package:gm_flutter/commonModel/bean/Pair.dart';
......@@ -24,7 +25,7 @@ class LevelOneModel extends BaseModel {
PlanOverData planoverItem;
void init(VoidCallback callback) {
ClueApiImpl.getInstance()
ClueTApiImpl.getInstance()
.getPlanOverView(DioUtil.getInstance().getDio(), plan_id)
.listen((event) {
if (event.error == 0) {
......
......@@ -34,6 +34,8 @@ import 'PlanModel.dart';
import 'ProjectView.dart';
class PlanPage extends StatefulWidget {
PlanPage(Map<String, dynamic> params) {}
@override
State<StatefulWidget> createState() => PlanState();
}
......
......@@ -26,6 +26,7 @@ class TopPage extends StatefulWidget {
String rank_type;
TopPage(Map<String, dynamic> map) {
print("LSY ${map.toString()}");
this.rank_type = map["rank_type"];
}
......
......@@ -32,8 +32,8 @@ abstract class ClueApi {
LevelOneFeedList getLevelOneList(@Query("plan_id") int plan_id,
@Query("tab_type") String tab_type, @Query("page") int page);
@Get("api/janus/plans/compare")
PlanCompareDetail getPlanCompareDetail(@Query("plan_ids") List<int> planIds);
@Get("api/janus/plans/plan_compare")
PlanCompareDetail getPlanCompareDetail(@Query("plan_ids") String planIds);
@Get("api/janus/plans/options")
PlanBean getPlan();
......@@ -55,11 +55,11 @@ abstract class ClueApi {
@Post("api/janus/plans/plan_consult")
PlanConsultBean sendMessage(@Query("doctor_ids") List<int> doctor_ids,
@Query("question") String question, @Query("plan_id") int plan_id);
@Get("api/janus/plans/rank")
PlanBarBean getPlanBar(@Query("rank_type") String rank_type);
@Get("api/janus/plans/plan_phone_authorize")
@Post("api/janus/plans/plan_phone_authorize")
DiscussLowPriceModelBean getPopviewData(
@Query("plan_id") String planId,
@Query("hospital_id") String hospitalId,
......@@ -70,6 +70,6 @@ abstract class ClueApi {
DiscussLowPriceAuthBean givePhoneAuth(
@Query("lead_phone_request_id") int leadPhoneRequestId);
@Get("api/janus/plans/plan_overview")
PlanOverViewBean getPlanOverView(@Query("plan_id") int plan_id);
// @Get("api/janus/plans/plan_overview")
// PlanOverViewBean getPlanOverView(@Query("plan_id") int plan_id);
}
......@@ -25,7 +25,6 @@ import 'package:gm_flutter/ClueModel/server/entity/PlanConsultBean.dart';
import 'package:gm_flutter/ClueModel/server/entity/PlanBarBean.dart';
import 'package:gm_flutter/ClueModel/server/entity/DiscussLowPriceModelBean.dart';
import 'package:gm_flutter/ClueModel/server/entity/DiscussLowPriceAuthBean.dart';
import 'package:gm_flutter/ClueModel/server/entity/PlanOverViewBean.dart';
const bool inProduction = const bool.fromEnvironment("dart.vm.product");
......@@ -90,8 +89,8 @@ class ClueApiImpl {
});
}
Stream<PlanCompareDetail> getPlanCompareDetail(Dio _dio, List<int> planIds) {
return Stream.fromFuture(get(_dio, 'api/janus/plans/compare', data: {
Stream<PlanCompareDetail> getPlanCompareDetail(Dio _dio, String planIds) {
return Stream.fromFuture(get(_dio, 'api/janus/plans/plan_compare', data: {
'plan_ids': planIds,
})).flatMap((value) {
if (value != null &&
......@@ -193,7 +192,7 @@ class ClueApiImpl {
Stream<DiscussLowPriceModelBean> getPopviewData(
Dio _dio, String planId, String hospitalId, String doctorId) {
return Stream.fromFuture(
get(_dio, 'api/janus/plans/plan_phone_authorize', data: {
post(_dio, 'api/janus/plans/plan_phone_authorize', data: {
'plan_id': planId,
'hospital_id': hospitalId,
'doctor_id': doctorId,
......@@ -224,20 +223,6 @@ class ClueApiImpl {
});
}
Stream<PlanOverViewBean> getPlanOverView(Dio _dio, int plan_id) {
return Stream.fromFuture(get(_dio, 'api/janus/plans/plan_overview', data: {
'plan_id': plan_id,
})).flatMap((value) {
if (value != null &&
(value.statusCode >= 200 && value.statusCode < 300)) {
return Stream.fromFuture(
compute(parsePlanOverViewBean, value.toString()));
} else {
throw Exception("--未知网络错误--");
}
});
}
///==================base method==================
Future<Response> get(Dio _dio, url, {data, options, cancelToken}) async {
......@@ -418,7 +403,3 @@ DiscussLowPriceModelBean parseDiscussLowPriceModelBean(String value) {
DiscussLowPriceAuthBean parseDiscussLowPriceAuthBean(String value) {
return DiscussLowPriceAuthBean.fromJson(json.decode(value));
}
PlanOverViewBean parsePlanOverViewBean(String value) {
return PlanOverViewBean.fromJson(json.decode(value));
}
/*
* @author lsy
* @date 2020/7/7
**/
import 'package:flutter_common/Annotations/anno/Get.dart';
import 'package:flutter_common/Annotations/anno/Query.dart';
import 'package:flutter_common/Annotations/anno/ServiceCenter.dart';
import 'package:gm_flutter/ClueModel/server/entity/PlanOverviewBean.dart';
@ServiceCenter()
abstract class ClueTApi{
@Get("api/janus/plans/plan_overview")
PlanOverViewBean getPlanOverView(@Query("plan_id") int plan_id);
}
\ No newline at end of file
// GENERATED CODE - DO NOT MODIFY BY HAND
// **************************************************************************
// ServiceGenerator
// **************************************************************************
import 'dart:convert';
import 'dart:io';
import 'package:rxdart/rxdart.dart';
import 'package:dio/dio.dart';
import 'package:flutter/foundation.dart';
import 'package:gm_flutter/ClueModel/server/entity/PlanOverViewBean.dart';
const bool inProduction = const bool.fromEnvironment("dart.vm.product");
class ClueTApiImpl {
static JsonEncoder encoder = JsonEncoder.withIndent(' ');
static ClueTApiImpl _instance;
ClueTApiImpl._() {}
static ClueTApiImpl getInstance() {
if (_instance == null) {
_instance = ClueTApiImpl._();
}
return _instance;
}
Stream<PlanOverViewBean> getPlanOverView(Dio _dio, int plan_id) {
return Stream.fromFuture(get(_dio, 'api/janus/plans/plan_overview', data: {
'plan_id': plan_id,
})).flatMap((value) {
if (value != null &&
(value.statusCode >= 200 && value.statusCode < 300)) {
return Stream.fromFuture(
compute(parsePlanOverViewBean, value.toString()));
} else {
throw Exception("--未知网络错误--");
}
});
}
///==================base method==================
Future<Response> get(Dio _dio, url, {data, options, cancelToken}) async {
Response response;
try {
response = await _dio.get(url,
queryParameters: data, options: options, cancelToken: cancelToken);
_printHttpLog(response);
} on DioError catch (e) {
print('get error---------$e ${formatError(e)}');
throw e;
}
return response;
}
Future<Response> post(Dio _dio, url, {data, options, cancelToken}) async {
Response response;
try {
response = await _dio.post(url,
data: FormData.fromMap(data),
options: options,
cancelToken: cancelToken);
_printHttpLog(response);
} on DioError catch (e) {
print('get error---------$e ${formatError(e)}');
throw e;
}
return response;
}
Future<Response> put(Dio _dio, url, {data, options, cancelToken}) async {
Response response;
try {
response = await _dio.put(url,
data: FormData.fromMap(data),
options: options,
cancelToken: cancelToken);
_printHttpLog(response);
} on DioError catch (e) {
print('get error---------$e ${formatError(e)}');
throw e;
}
return response;
}
Future<Response> delete(Dio _dio, url, {data, options, cancelToken}) async {
Response response;
try {
response = await _dio.delete(url,
data: FormData.fromMap(data),
options: options,
cancelToken: cancelToken);
_printHttpLog(response);
} on DioError catch (e) {
print('get error---------$e ${formatError(e)}');
throw e;
}
return response;
}
Future<Response> upload(Dio _dio, url, String key, String path,
{Map<String, dynamic> data, options, cancelToken}) async {
Response response;
print("UPLOAD===> URL:$url {$key : $path } data:$data");
MultipartFile file = await MultipartFile.fromFile(path,
filename: path.substring(path.lastIndexOf("/") + 1, path.length));
if (data == null) {
data = new Map<String, dynamic>();
}
data.putIfAbsent(key, () => file);
try {
response = await _dio.post(url,
data: FormData.fromMap(data),
options: options,
cancelToken: cancelToken);
_printHttpLog(response);
} on DioError catch (e) {
print('get error---------$e ${formatError(e)}');
throw e;
}
return response;
}
void _printHttpLog(Response response) {
if (!inProduction) {
try {
printRespond(response);
} catch (ex) {
print("Http Log" + " error......");
}
}
}
static void printRespond(Response response) {
Map httpLogMap = Map();
httpLogMap.putIfAbsent("requestMethod", () => "${response.request.method}");
httpLogMap.putIfAbsent("requestUrl", () => "${response.request.uri}");
httpLogMap.putIfAbsent("requestHeaders", () => response.request.headers);
httpLogMap.putIfAbsent(
"requestQueryParameters", () => response.request.queryParameters);
if (response.request.data is FormData) {
httpLogMap.putIfAbsent("requestDataFields",
() => ((response.request.data as FormData).fields.toString()));
}
httpLogMap.putIfAbsent(
"respondData", () => json.decode(response.toString()));
printJson(httpLogMap);
}
static void printJson(Object object) {
try {
var encoderString = encoder.convert(object);
debugPrint(encoderString);
} catch (e) {
print(e);
}
}
String formatError(DioError e) {
String reason = "";
if (e.type == DioErrorType.CONNECT_TIMEOUT) {
reason = "连接超时 ${e.message}";
} else if (e.type == DioErrorType.SEND_TIMEOUT) {
reason = "请求超时 ${e.message}";
} else if (e.type == DioErrorType.RECEIVE_TIMEOUT) {
reason = "响应超时 ${e.message}";
} else if (e.type == DioErrorType.RESPONSE) {
reason = "出现异常 ${e.message}";
} else if (e.type == DioErrorType.CANCEL) {
reason = "请求取消 ${e.message}";
} else {
reason = "未知错误 ${e.message}";
}
return reason;
}
}
PlanOverViewBean parsePlanOverViewBean(String value) {
return PlanOverViewBean.fromJson(json.decode(value));
}
......@@ -554,7 +554,7 @@ class TagsNewEra {
}
class User {
Null city;
String city;
int userId;
int topicNumPosted;
int voteNumGained;
......
......@@ -21,8 +21,8 @@ class PlanBean {
PlanBean.fromJson(Map<String, dynamic> json) {
error = json['error'];
message = json['message'];
extra = json['extra'];
errorExtra = json['error_extra'];
extra = json['extra']??"";
errorExtra = json['error_extra']??"";
userType = json['user_type'] != null
? new UserType.fromJson(json['user_type'])
: null;
......
......@@ -4,10 +4,6 @@
* @Last Modified by: zx
* @Last Modified time: 2020-07-01 20:31:42
*/
import 'dart:convert';
class PlanCompareDetail {
int error;
String message;
......
......@@ -21,7 +21,7 @@ class FiveStarView extends StatelessWidget {
width: 13,
child: Image.asset(starAssets ?? "assets/sel_star.png"),
));
if (i != 0 && i != allStarCount - 1) {
if ( i != allStarCount - 1) {
list.add(Container(
height: 1,
width: 2,
......@@ -33,7 +33,7 @@ class FiveStarView extends StatelessWidget {
width: 13,
child: Image.asset("assets/normal_star.png"),
));
if (i != 0 && i != allStarCount - 1) {
if ( i != allStarCount - 1) {
list.add(Container(
height: 1,
width: 2,
......
......@@ -27,8 +27,6 @@ class JumpManager {
String pageNameWrap =
nativePage ? "gm://${pageName}" : "flutter://${pageName}";
if (!MainManager.getInstance().isInit) {
CacheManager.getInstance().get(MEMORY_CACHE).save(COOKIE,
"_gtid=3123e178b91a11eaa2d87e40d376ac134112; sessionid=pq9wf8equ4h26ia3yspzmquqn2rjs6mx; _gm_token=4091a81593419225");
JumpUtil.jumpToPageRight(context, initMap(params)[pageNameWrap]);
} else {
FlutterBoost.singleton.open(pageNameWrap, urlParams: params);
......@@ -47,7 +45,7 @@ class JumpManager {
RouterCenterImpl().findClueRouter().getPlansCompareFeed(params),
"flutter://level_two_plan_compare":
RouterCenterImpl().findClueRouter().getPlansCompareFeed(params),
"flutter://plan_home": RouterCenterImpl().findClueRouter().getPlanPage(),
"flutter://plan_home": RouterCenterImpl().findClueRouter().getPlanPage(params),
"flutter://favor_plan":
RouterCenterImpl().findClueRouter().getTopPage(params),
"flutter://hot_plan":
......
......@@ -6,8 +6,10 @@ import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter_common/commonModel/util/JumpUtil.dart';
import 'package:gm_flutter/MainRouter/page/proxy/NetProxyPage.dart';
import 'package:gm_flutter/commonModel/App.dart';
import 'package:gm_flutter/commonModel/base/BaseComponent.dart';
import 'package:gm_flutter/commonModel/base/BaseState.dart';
import 'package:gm_flutter/commonModel/cache/CacheManager.dart';
import 'package:gm_flutter/main.mark.dart';
import 'package:gm_flutter/ClueModel/page/DiscussLowPrice/DiscussLowPricePopView.dart';
import 'TP.dart';
......@@ -25,6 +27,7 @@ class TestState extends BaseState<TestPage> {
list.add(listItem("设置代理页面", () {
JumpUtil.jumpToPageRight(context, NetProxyPage());
}));
list.add(listItem("一级列表页", () {
RouterCenterImpl()
.findMainRouter()
......@@ -35,23 +38,26 @@ class TestState extends BaseState<TestPage> {
.findMainRouter()
.jumpPage(context, "level_two_plan_deatil", {"planId": 192}, false);
}));
list.add(listItem("方案页面", () {
list.add(listItem("项目首页", () {
RouterCenterImpl()
.findMainRouter()
.jumpPage(context, "plan_home", {"planId": 137}, false);
.jumpPage(context, "plan_home", {}, false);
}));
list.add(listItem("对比详情页", () {
list.add(listItem("方案页面", () {
RouterCenterImpl()
.findMainRouter()
.jumpPage(context, "level_one_plan_compare_detail", {"planId": 137}, false);
.jumpPage(context, "plan_home", {"planId": 137}, false);
}));
list.add(listItem("项目说明", () {
JumpUtil.jumpToPageRight(
list.add(listItem("对比详情页", () {
RouterCenterImpl().findMainRouter().jumpPage(
context,
RouterCenterImpl()
.findClueRouter()
.getProjectDetailsPage({"planId": 1}));
"level_one_plan_compare_detail",
{
"planIds": [137, 139]
},
false);
}));
list.add(listItem("方案对比", () {
JumpUtil.jumpToPageRight(
context,
......@@ -64,13 +70,15 @@ class TestState extends BaseState<TestPage> {
RouterCenterImpl().findClueRouter().getTopPage({"rank_type": "0"}));
}));
list.add(listItem("弹窗", () {
DiscussLowPricePopView.showPopView(context);
DiscussLowPricePopView.showPopView(context, "hahaha", "1", "", "112");
}));
return list;
}
@override
Widget buildItem(BuildContext context) {
CacheManager.getInstance().get(MEMORY_CACHE).save(COOKIE,
"_gm_token=1da6071594101423; csrftoken=rUrkkYYMOVZfIIQnU2IH09QIGmsfe8tE; sessionid=uz7f70uap76r6og48znci5l2hbr9vm5c; _gtid=5af9a5deba8511ea8d4082a085c393c93393");
return Scaffold(
appBar: baseAppBar(
title: "测试页面",
......
......@@ -59,7 +59,7 @@ class MyApp extends State<MyAppWidget> {
super.initState();
FlutterBoost.singleton.registerPageBuilders({
'plan_home': (pageName, params, _) =>
RouterCenterImpl().findClueRouter().getPlanPage(),
RouterCenterImpl().findClueRouter().getPlanPage(params),
'level_one_plan_detail': (pageName, params, _) =>
RouterCenterImpl().findClueRouter().getLevelOnePage(params),
'level_two_plan_deatil': (pageName, params, _) =>
......
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