Commit c9f21205 authored by 朱璇's avatar 朱璇

conflict fix

parents 4c4b591d 3d293fff
...@@ -80,7 +80,7 @@ class LevelOneItem extends StatelessWidget { ...@@ -80,7 +80,7 @@ class LevelOneItem extends StatelessWidget {
}; };
RouterCenterImpl() RouterCenterImpl()
.findMainRouter() .findMainRouter()
.jumpPage(context, cards.doctor.messageUrl, map, true); .jumpPage(context, cards.doctor.gm_url, map, true);
}, },
child: Container( child: Container(
margin: EdgeInsets.only(left: 15, right: 15), margin: EdgeInsets.only(left: 15, right: 15),
...@@ -107,7 +107,7 @@ class LevelOneItem extends StatelessWidget { ...@@ -107,7 +107,7 @@ class LevelOneItem extends StatelessWidget {
), ),
Positioned( Positioned(
left: 57, left: 57,
top: 18, top: 17,
child: Row( child: Row(
mainAxisSize: MainAxisSize.min, mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.baseline, crossAxisAlignment: CrossAxisAlignment.baseline,
...@@ -117,8 +117,7 @@ class LevelOneItem extends StatelessWidget { ...@@ -117,8 +117,7 @@ class LevelOneItem extends StatelessWidget {
bold: true), bold: true),
Container( Container(
margin: EdgeInsets.only(left: 4), margin: EdgeInsets.only(left: 4),
child: baseText(cards.doctor.title, 13, Color(0xff999999), child: baseText(cards.doctor.title, 13, Color(0xff999999)),
bold: true),
) )
], ],
), ),
...@@ -181,7 +180,7 @@ class LevelOneItem extends StatelessWidget { ...@@ -181,7 +180,7 @@ class LevelOneItem extends StatelessWidget {
Positioned( Positioned(
left: 0, left: 0,
bottom: 0, bottom: 0,
child: Container( child: Container(
width: MediaQuery.of(context).size.width - 30, width: MediaQuery.of(context).size.width - 30,
height: 0.5, height: 0.5,
color: Color(0xffE5E5E5), color: Color(0xffE5E5E5),
...@@ -210,7 +209,7 @@ class LevelOneItem extends StatelessWidget { ...@@ -210,7 +209,7 @@ class LevelOneItem extends StatelessWidget {
}; };
RouterCenterImpl() RouterCenterImpl()
.findMainRouter() .findMainRouter()
.jumpPage(context, cards.hospital.messageUrl, map, true); .jumpPage(context, cards.hospital.gm_url, map, true);
}, },
child: Container( child: Container(
margin: EdgeInsets.only(left: 15, right: 15), margin: EdgeInsets.only(left: 15, right: 15),
...@@ -233,7 +232,7 @@ class LevelOneItem extends StatelessWidget { ...@@ -233,7 +232,7 @@ class LevelOneItem extends StatelessWidget {
), ),
Positioned( Positioned(
left: 57, left: 57,
top: 17.5, top: 15,
child: Container( child: Container(
width: MediaQuery.of(context).size.width - 30 - 57, width: MediaQuery.of(context).size.width - 30 - 57,
child: baseText(cards.hospital.name, 15, Color(0xff333333), child: baseText(cards.hospital.name, 15, Color(0xff333333),
......
...@@ -278,7 +278,7 @@ class LevelOneState extends BaseState<LevelOnePage> ...@@ -278,7 +278,7 @@ class LevelOneState extends BaseState<LevelOnePage>
return Container( return Container(
width: MediaQuery.of(context).size.width, width: MediaQuery.of(context).size.width,
height: 54, height: 54,
margin: EdgeInsets.only(top: 18, bottom: 12), margin: EdgeInsets.only(top: 14, bottom: 12),
child: Stack( child: Stack(
children: <Widget>[ children: <Widget>[
Positioned( Positioned(
...@@ -288,7 +288,7 @@ class LevelOneState extends BaseState<LevelOnePage> ...@@ -288,7 +288,7 @@ class LevelOneState extends BaseState<LevelOnePage>
bold: true), bold: true),
), ),
Positioned( Positioned(
bottom: 8, bottom: 6,
left: 15, left: 15,
child: Container( child: Container(
width: MediaQuery.of(context).size.width - 30 - 100, width: MediaQuery.of(context).size.width - 30 - 100,
...@@ -358,18 +358,8 @@ class LevelOneState extends BaseState<LevelOnePage> ...@@ -358,18 +358,8 @@ class LevelOneState extends BaseState<LevelOnePage>
children: <Widget>[ children: <Widget>[
Container( Container(
margin: EdgeInsets.only(left: 2, right: 2), margin: EdgeInsets.only(left: 2, right: 2),
child: Text( child: baseText(element.attrValue, 14, Color(0xff282828),
element.attrValue, bold: true),
textScaleFactor: 1.0,
maxLines: 1,
overflow: TextOverflow.ellipsis,
style: TextStyle(
decoration: TextDecoration.none,
fontSize: 14,
color: Color(0xff282828),
fontStyle: FontStyle.normal,
fontWeight: FontWeight.w400),
),
), ),
Container( Container(
margin: EdgeInsets.only(left: 2, right: 2), margin: EdgeInsets.only(left: 2, right: 2),
......
...@@ -58,6 +58,7 @@ class LevelTwoState extends BaseState<LevelTwoPage> ...@@ -58,6 +58,7 @@ class LevelTwoState extends BaseState<LevelTwoPage>
@override @override
void initState() { void initState() {
DioUtil.getInstance().setProxy('172.30.9.253');
super.initState(); super.initState();
_model.plan_id = widget.planId; _model.plan_id = widget.planId;
_model.init(() { _model.init(() {
...@@ -340,7 +341,11 @@ class LevelTwoState extends BaseState<LevelTwoPage> ...@@ -340,7 +341,11 @@ class LevelTwoState extends BaseState<LevelTwoPage>
mainAxisSize: MainAxisSize.min, mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.center, crossAxisAlignment: CrossAxisAlignment.center,
children: <Widget>[ children: <Widget>[
baseText(element.attrName, 14, Color(0xff282828), bold: true), Container(
margin: EdgeInsets.only(left: 2, right: 2),
child: baseText(element.attrName, 14, Color(0xff282828),
bold: true),
),
baseText(element.attrValue, 11, Color(0xff999999)), baseText(element.attrValue, 11, Color(0xff999999)),
], ],
), ),
...@@ -362,7 +367,7 @@ class LevelTwoState extends BaseState<LevelTwoPage> ...@@ -362,7 +367,7 @@ class LevelTwoState extends BaseState<LevelTwoPage>
), ),
width: double.maxFinite, width: double.maxFinite,
height: 62, height: 62,
margin: EdgeInsets.only(left: 15, right: 15, bottom: 20), margin: EdgeInsets.only(left: 15, right: 15, bottom: 12),
child: Row( child: Row(
crossAxisAlignment: CrossAxisAlignment.center, crossAxisAlignment: CrossAxisAlignment.center,
children: list, children: list,
...@@ -373,6 +378,7 @@ class LevelTwoState extends BaseState<LevelTwoPage> ...@@ -373,6 +378,7 @@ class LevelTwoState extends BaseState<LevelTwoPage>
Widget explain() { Widget explain() {
List<Widget> list = []; List<Widget> list = [];
list.add(Container( list.add(Container(
margin: EdgeInsets.only(bottom: 4),
height: 31, height: 31,
child: Row( child: Row(
children: <Widget>[ children: <Widget>[
...@@ -400,12 +406,12 @@ class LevelTwoState extends BaseState<LevelTwoPage> ...@@ -400,12 +406,12 @@ class LevelTwoState extends BaseState<LevelTwoPage>
if (_model.planoverItem != null) { if (_model.planoverItem != null) {
_model.planoverItem.explanationAttrs.forEach((element) { _model.planoverItem.explanationAttrs.forEach((element) {
list.add(Container( list.add(Container(
margin: EdgeInsets.only(bottom: 15), margin: EdgeInsets.only(bottom: 10),
child: Row( child: Row(
children: <Widget>[ children: <Widget>[
Container( Container(
constraints: BoxConstraints( constraints: BoxConstraints(
maxWidth: 52, maxWidth: 54,
), ),
child: Text( child: Text(
element.attrName, element.attrName,
...@@ -445,7 +451,7 @@ class LevelTwoState extends BaseState<LevelTwoPage> ...@@ -445,7 +451,7 @@ class LevelTwoState extends BaseState<LevelTwoPage>
}); });
} }
return Container( return Container(
margin: EdgeInsets.only(left: 15, right: 15, bottom: 20), margin: EdgeInsets.only(left: 15, right: 15, bottom: 3),
child: Column( child: Column(
mainAxisSize: MainAxisSize.min, mainAxisSize: MainAxisSize.min,
children: list, children: list,
......
...@@ -3,6 +3,7 @@ import 'package:flutter/material.dart'; ...@@ -3,6 +3,7 @@ import 'package:flutter/material.dart';
import 'package:flutter_common/commonModel/picker/base/BaseBottomPicker.dart'; import 'package:flutter_common/commonModel/picker/base/BaseBottomPicker.dart';
import 'package:flutter_common/commonModel/toast/NativeToast.dart'; import 'package:flutter_common/commonModel/toast/NativeToast.dart';
import 'package:gm_flutter/ClueModel/page/levelOne/LevelOneListModel.dart'; import 'package:gm_flutter/ClueModel/page/levelOne/LevelOneListModel.dart';
import 'package:gm_flutter/ClueModel/server/entity/ConsultHospitalsBean.dart';
import 'package:gm_flutter/ClueModel/server/entity/LevelOneFeedList.dart'; import 'package:gm_flutter/ClueModel/server/entity/LevelOneFeedList.dart';
import 'package:gm_flutter/ClueModel/view/FiveStarView.dart'; import 'package:gm_flutter/ClueModel/view/FiveStarView.dart';
import 'package:gm_flutter/commonModel/base/BaseComponent.dart'; import 'package:gm_flutter/commonModel/base/BaseComponent.dart';
...@@ -16,9 +17,7 @@ class MechanismBox implements IBottomPicker { ...@@ -16,9 +17,7 @@ class MechanismBox implements IBottomPicker {
VoidCallback dismissCall; VoidCallback dismissCall;
TextEditingController textController = TextEditingController(); TextEditingController textController = TextEditingController();
MechanismModel _model = new MechanismModel(); MechanismModel _model = new MechanismModel();
List<String> doctor_ids = new List();
LevelOneListModel _levelModel = LevelOneListModel();
RefreshController refreshController = RefreshController(); RefreshController refreshController = RefreshController();
Function(String str) refresh; Function(String str) refresh;
...@@ -35,13 +34,13 @@ class MechanismBox implements IBottomPicker { ...@@ -35,13 +34,13 @@ class MechanismBox implements IBottomPicker {
@override @override
initState(dismissCall, BuildContext context) { initState(dismissCall, BuildContext context) {
this.dismissCall = dismissCall; this.dismissCall = dismissCall;
_levelModel.plan_id = plan_id; _model.plan_id = plan_id;
_levelModel.tab_type = "hospital"; _model.tab_type = "hospital";
_model.getQuestions(plan_id); _model.getQuestions(plan_id);
_levelModel.refreshView(true); _model.refreshView(true);
refresh = (str) { refresh = (str) {
_levelModel.stateLive.notifyView(LOADING); _model.stateLive.notifyView(LOADING);
_levelModel.refreshView(true); _model.refreshView(true);
}; };
} }
...@@ -93,7 +92,7 @@ class MechanismBox implements IBottomPicker { ...@@ -93,7 +92,7 @@ class MechanismBox implements IBottomPicker {
RouterCenterImpl().findMainRouter().buriedEvent("page_view", map); RouterCenterImpl().findMainRouter().buriedEvent("page_view", map);
textController.dispose(); textController.dispose();
refreshController.dispose(); refreshController.dispose();
_levelModel.dispose(); _model.dispose();
_model.dispose(); _model.dispose();
focusNode.dispose(); focusNode.dispose();
} }
...@@ -104,8 +103,8 @@ class MechanismBox implements IBottomPicker { ...@@ -104,8 +103,8 @@ class MechanismBox implements IBottomPicker {
children: <Widget>[ children: <Widget>[
title(mq), title(mq),
StreamBuilder( StreamBuilder(
stream: _levelModel.stateLive.stream, stream: _model.stateLive.stream,
initialData: _levelModel.stateLive.data ?? LOADING, initialData: _model.stateLive.data ?? LOADING,
builder: (c, data) { builder: (c, data) {
if (data.data == LOADING) { if (data.data == LOADING) {
return Container( return Container(
...@@ -117,7 +116,7 @@ class MechanismBox implements IBottomPicker { ...@@ -117,7 +116,7 @@ class MechanismBox implements IBottomPicker {
if (data.data == FAIL) { if (data.data == FAIL) {
return errorItem(MediaQuery.of(context).size.width, return errorItem(MediaQuery.of(context).size.width,
mq.size.height - 140 - 96 - 50 - keyHeight, () { mq.size.height - 140 - 96 - 50 - keyHeight, () {
_levelModel.refreshView(true); _model.refreshView(true);
}); });
} }
if (data.data == EMPTY) { if (data.data == EMPTY) {
...@@ -137,45 +136,41 @@ class MechanismBox implements IBottomPicker { ...@@ -137,45 +136,41 @@ class MechanismBox implements IBottomPicker {
// 弹窗标题 // 弹窗标题
Widget title(mq) { Widget title(mq) {
return Container( return GestureDetector(
margin: EdgeInsets.only(left: 15, right: 15), onTap: () {
width: mq.size.width, dismissCall();
decoration: BoxDecoration( },
border: child: Container(
Border(bottom: BorderSide(width: .5, color: Color(0xffE5E5E5)))), margin: EdgeInsets.only(left: 15, right: 15),
height: 50, width: mq.size.width,
child: Stack( decoration: BoxDecoration(
alignment: Alignment.center, border: Border(
children: <Widget>[ bottom: BorderSide(width: .5, color: Color(0xffE5E5E5)))),
Container( height: 50,
child: Text( child: Stack(
'请选择要咨询的机构', alignment: Alignment.center,
style: TextStyle(color: Color(0xff282828), fontSize: 17), children: <Widget>[
), Container(
), child: Text(
Positioned( '请选择要咨询的机构',
right: 5, style: TextStyle(color: Color(0xff282828), fontSize: 17),
top: 16.5,
child: GestureDetector(
onTap: () {
dismissCall();
},
child: Container(
width: 13.5,
height: 13.5,
child: Image.asset("assets/close-btn.png"),
), ),
)) ),
], Positioned(
), right: 5,
); top: 16.5,
child: Container(
width: 13.5,
height: 13.5,
child: Image.asset("assets/close-btn.png"),
))
],
),
));
} }
// 机构列表 // 机构列表
Widget mechanismList(mq, keyHeight) { Widget mechanismList(mq, keyHeight) {
Hospital firstHospital = _levelModel.cardsLive.data[0].hospital;
firstHospital.isCheck = true;
doctor_ids.add(firstHospital.doctorId);
return Container( return Container(
height: mq.size.height - 286 - keyHeight, height: mq.size.height - 286 - keyHeight,
width: mq.size.width, width: mq.size.width,
...@@ -184,11 +179,11 @@ class MechanismBox implements IBottomPicker { ...@@ -184,11 +179,11 @@ class MechanismBox implements IBottomPicker {
customScrollView: CustomScrollView( customScrollView: CustomScrollView(
physics: ClampingScrollPhysics(), physics: ClampingScrollPhysics(),
slivers: <Widget>[ slivers: <Widget>[
StreamBuilder<List<Cards>>( StreamBuilder<List<Hospitals>>(
stream: _levelModel.cardsLive.stream, stream: _model.cardsLive.stream,
initialData: _levelModel.cardsLive.data ?? [], initialData: _model.cardsLive.data ?? [],
builder: (c, data) { builder: (c, data) {
if (data.data.isEmpty && _levelModel.page > 1) { if (data.data.isEmpty && _model.page > 1) {
refreshController.loadNoData(); refreshController.loadNoData();
} else { } else {
refreshController.loadComplete(); refreshController.loadComplete();
...@@ -196,44 +191,42 @@ class MechanismBox implements IBottomPicker { ...@@ -196,44 +191,42 @@ class MechanismBox implements IBottomPicker {
return SliverList( return SliverList(
delegate: SliverChildBuilderDelegate( delegate: SliverChildBuilderDelegate(
(BuildContext context, int index) { (BuildContext context, int index) {
if (index == _levelModel.data.length) { if (index == _model.data.length) {
return Container( return Container(
height: 0, height: 0,
color: Color(0xffF7F6FA), color: Color(0xffF7F6FA),
); );
} }
if (_levelModel.data[index].cardType == 'hospital') { return HospitalItem(_model.data[index], index);
return HospitalItem(
_levelModel.data[index].hospital, index);
} else {
return Container();
}
}, },
childCount: _levelModel.data.length + 1, childCount: _model.data.length + 1,
), ),
); );
}, },
), ),
], ],
), onLoading: () { ), onLoading: () {
_levelModel.loadMore(); _model.loadMore();
}, pullDown: false, pullUp: true)); }, pullDown: false, pullUp: true));
} }
// 机构卡片 // 机构卡片
Widget HospitalItem(Hospital hospital, index) { Widget HospitalItem(Hospitals hospital, index) {
return GestureDetector( return GestureDetector(
behavior: HitTestBehavior.opaque, behavior: HitTestBehavior.opaque,
onTap: () { onTap: () {
if (doctor_ids.contains(hospital.doctorId)) { if (_model.doctor_ids.contains(hospital.doctorId)) {
doctor_ids.remove(hospital.doctorId); _model.doctor_ids.remove(hospital.doctorId);
_model.hospital_ids.remove(hospital.hospitalId);
} else { } else {
doctor_ids.add(hospital.doctorId); _model.doctor_ids.add(hospital.doctorId);
_model.hospital_ids.add(hospital.hospitalId);
} }
hospital.isCheck = !hospital.isCheck; hospital.isCheck = !hospital.isCheck;
focusNode.unfocus(); focusNode.unfocus();
_levelModel.cardsLive.notifyView(_levelModel.cardsLive.data); _model.cardsLive.notifyView(_model.cardsLive.data);
if (doctor_ids.length > 3 || doctor_ids.length == 0) { int length = _model.doctor_ids.length;
if (length > 3 || length == 0) {
NativeToast.showNativeToast('请选择1-3个机构咨询'); NativeToast.showNativeToast('请选择1-3个机构咨询');
} }
}, },
...@@ -267,8 +260,11 @@ class MechanismBox implements IBottomPicker { ...@@ -267,8 +260,11 @@ class MechanismBox implements IBottomPicker {
), ),
Positioned( Positioned(
left: 89, left: 89,
top: 16, top: 13,
child: baseText(hospital.name, 15, Color(0xff333333)), child: Container(
width: 230,
child: baseText(hospital.name, 15, Color(0xff282828)),
),
), ),
Positioned( Positioned(
top: 38, top: 38,
...@@ -278,18 +274,22 @@ class MechanismBox implements IBottomPicker { ...@@ -278,18 +274,22 @@ class MechanismBox implements IBottomPicker {
mainAxisSize: MainAxisSize.min, mainAxisSize: MainAxisSize.min,
children: <Widget>[ children: <Widget>[
baseText("¥", 12, Color(0xffFF5963)), baseText("¥", 12, Color(0xffFF5963)),
baseText("${hospital.minPrice}-${hospital.maxPrice}", 15, baseText(
hospital.minPrice == hospital.maxPrice
? "${hospital.minPrice}-${hospital.maxPrice}"
: "${hospital.minPrice}",
15,
Color(0xffFF5963), Color(0xffFF5963),
bold: true), bold: true)
], ],
), ),
), ),
Positioned( Positioned(
bottom: 16, bottom: 14,
left: 89, left: 89,
child: Container( child: Container(
width: 230, width: 230,
child: baseText(hospital.address, 12, Color(0xff666666)), child: baseText(hospital.address, 12, Color(0xff999999)),
), ),
), ),
Positioned( Positioned(
...@@ -386,19 +386,19 @@ class MechanismBox implements IBottomPicker { ...@@ -386,19 +386,19 @@ class MechanismBox implements IBottomPicker {
focusNode: focusNode, focusNode: focusNode,
textInputAction: TextInputAction.send, textInputAction: TextInputAction.send,
onSubmitted: (txt) { onSubmitted: (txt) {
if (doctor_ids.length > 3 || doctor_ids.length < 1) { print(_model.hospital_ids.toList());
NativeToast.showNativeToast('请选择1-3个机构咨询'); if (txt.isNotEmpty) {
} else { _model.sendMessage(
if (txt.isNotEmpty) { _model.doctor_ids.join(','),
_model.sendMessage( _model.hospital_ids.join(','),
doctor_ids.join(','), txt, plan_id, (i) { txt,
if (i == 0) { plan_id, (i) {
dismissCall(); if (i == 0) {
textController.text = ''; dismissCall();
NativeToast.showNativeToast('消息已发送成功'); textController.text = '';
} NativeToast.showNativeToast('消息已发送成功');
}); }
} });
} }
}, },
style: style:
...@@ -411,7 +411,7 @@ class MechanismBox implements IBottomPicker { ...@@ -411,7 +411,7 @@ class MechanismBox implements IBottomPicker {
hintStyle: TextStyle( hintStyle: TextStyle(
color: Color(0xff999999), color: Color(0xff999999),
fontSize: 12, fontSize: 12,
height: 2.2), height: 2.3),
border: InputBorder.none)); border: InputBorder.none));
}, },
)) ))
......
...@@ -2,17 +2,18 @@ ...@@ -2,17 +2,18 @@
* @author lsy * @author lsy
* @date 2020/6/29 * @date 2020/6/29
**/ **/
import 'dart:math';
import 'package:flutter/material.dart';
import 'package:flutter_common/commonModel/live/BaseModel.dart'; import 'package:flutter_common/commonModel/live/BaseModel.dart';
import 'package:flutter_common/commonModel/live/LiveData.dart'; import 'package:flutter_common/commonModel/live/LiveData.dart';
import 'package:flutter_common/commonModel/toast/NativeToast.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/ClueApi.serv.dart';
import 'package:gm_flutter/ClueModel/server/entity/ConsultHospitalsBean.dart';
import 'package:gm_flutter/ClueModel/server/entity/LevelOneFeedList.dart';
import 'package:gm_flutter/commonModel/net/DioUtil.dart'; import 'package:gm_flutter/commonModel/net/DioUtil.dart';
import 'package:gm_flutter/commonModel/rx/RxDispose.dart'; import 'package:gm_flutter/commonModel/rx/RxDispose.dart';
import 'package:gm_flutter/commonModel/util/PrintUtil.dart'; import 'package:gm_flutter/commonModel/util/PrintUtil.dart';
import 'package:gm_flutter/commonModel/bean/Pair.dart'; import 'package:gm_flutter/commonModel/bean/Pair.dart';
import 'package:pull_to_refresh/pull_to_refresh.dart';
class MechanismModel extends BaseModel { class MechanismModel extends BaseModel {
LiveData<List<String>> questionsLive = LiveData(); LiveData<List<String>> questionsLive = LiveData();
...@@ -21,6 +22,59 @@ class MechanismModel extends BaseModel { ...@@ -21,6 +22,59 @@ class MechanismModel extends BaseModel {
LiveData messageLive = LiveData(); LiveData messageLive = LiveData();
RxDispose rxDispose = RxDispose(); RxDispose rxDispose = RxDispose();
List<String> doctor_ids = new List();
List<String> hospital_ids = new List();
int plan_id;
String tab_type;
int page = 1;
LiveData<int> levelStateLive = LiveData();
LiveData<List<Hospitals>> cardsLive = LiveData();
List<Hospitals> data = [];
void refreshView(bool clear, {RefreshController refreshListener}) {
if (clear) {
data.clear();
page = 1;
}
ClueApiImpl.getInstance()
.getLevelMechanismList(DioUtil.getInstance().getDio(), plan_id, page)
.listen((event) {
if (event.error == 0) {
if ((event.data.hospitals == null ||
event.data.hospitals.isEmpty)) {
if (page == 1) {
levelStateLive.notifyView(EMPTY);
} else {
cardsLive.notifyView([]);
}
} else {
if (page == 1) {
for (var i = 0; i < event.data.hospitals.length; i++) {
if (i < 3) {
event.data.hospitals[i].isCheck = true;
doctor_ids.add(event.data.hospitals[i].doctorId);
hospital_ids.add(event.data.hospitals[i].hospitalId);
}
}
}
data.addAll(event.data.hospitals);
cardsLive.notifyView(data);
levelStateLive.notifyView(ENDLOADING);
}
} else {
NativeToast.showNativeToast(event.message);
levelStateLive.notifyView(FAIL);
}
})
.addToDispose(rxDispose)
.onError((err) {
PrintUtil.printBug(err);
levelStateLive.notifyView(FAIL);
});
}
getQuestions(int plan_id) { getQuestions(int plan_id) {
ClueApiImpl.getInstance() ClueApiImpl.getInstance()
.getConsultQuestions(DioUtil.getInstance().getDio(), plan_id) .getConsultQuestions(DioUtil.getInstance().getDio(), plan_id)
...@@ -42,11 +96,11 @@ class MechanismModel extends BaseModel { ...@@ -42,11 +96,11 @@ class MechanismModel extends BaseModel {
}); });
} }
sendMessage(String doctor_ids, String question, int plan_id, sendMessage(String doctor_ids, String hospital_ids, String question,
Function(int state) func) { int plan_id, Function(int state) func) {
ClueApiImpl.getInstance() ClueApiImpl.getInstance()
.sendMessage( .sendMessage(DioUtil.getInstance().getDio(), doctor_ids, hospital_ids,
DioUtil.getInstance().getDio(), doctor_ids, question, plan_id) question, plan_id)
.listen((event) { .listen((event) {
print(event.toJson()); print(event.toJson());
if (event.error == 0) { if (event.error == 0) {
...@@ -67,5 +121,12 @@ class MechanismModel extends BaseModel { ...@@ -67,5 +121,12 @@ class MechanismModel extends BaseModel {
questionsLive.dispost(); questionsLive.dispost();
stateLive.dispost(); stateLive.dispost();
rxDispose.dispose(); rxDispose.dispose();
levelStateLive.dispost();
cardsLive.dispost();
}
void loadMore() {
page++;
refreshView(false);
} }
} }
...@@ -56,6 +56,22 @@ class FilterViewState extends State<FilterView> { ...@@ -56,6 +56,22 @@ class FilterViewState extends State<FilterView> {
height: 186, height: 186,
child: Stack( child: Stack(
children: <Widget>[ children: <Widget>[
Positioned(
top: 0,
child: Container(
width: MediaQuery.of(context).size.width,
height: 1,
decoration: BoxDecoration(
boxShadow: [
BoxShadow(
color: Color(0x08000000),
offset: Offset(0.0,1.0),
blurRadius: 6.0,
spreadRadius: 0.0),
],
),
),
),
Positioned( Positioned(
top: 54.5, top: 54.5,
right: 15, right: 15,
......
...@@ -66,17 +66,21 @@ class PlanBarView extends StatelessWidget { ...@@ -66,17 +66,21 @@ class PlanBarView extends StatelessWidget {
}, },
child: Container( child: Container(
alignment: Alignment.center, alignment: Alignment.center,
height: double.maxFinite,
child: Row( child: Row(
mainAxisSize: MainAxisSize.min, mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.end,
children: <Widget>[ children: <Widget>[
baseText(text, 14, Container(
index == showIndex ? Color(0xff3FB5AF) : Color(0xff666666)), height: double.maxFinite,
alignment: Alignment.center,
child: baseText(text, 14,
index == showIndex ? Color(0xff3FB5AF) : Color(0xff666666)),
)
,
Container( Container(
width: 10, width: 10,
height: 13, alignment: Alignment.center,
padding: EdgeInsets.only(top: 3), height: double.maxFinite,
alignment: Alignment.topCenter,
child: Container( child: Container(
width: 6, width: 6,
height: 3.5, height: 3.5,
......
...@@ -56,7 +56,7 @@ class PlanItem extends StatelessWidget { ...@@ -56,7 +56,7 @@ class PlanItem extends StatelessWidget {
showOprea = showOprea.length > 4 ? showOprea.substring(0, 4) : showOprea; showOprea = showOprea.length > 4 ? showOprea.substring(0, 4) : showOprea;
} }
return Container( return Container(
margin: EdgeInsets.only(top: 10, left: 10, right: 10), margin: EdgeInsets.only(top: 4, left: 10, right: 10),
child: Card( child: Card(
elevation: 3.0, elevation: 3.0,
child: Container( child: Container(
...@@ -82,13 +82,13 @@ class PlanItem extends StatelessWidget { ...@@ -82,13 +82,13 @@ class PlanItem extends StatelessWidget {
), ),
Positioned( Positioned(
left: 92, left: 92,
top: 14, top: 10,
child: Row( child: Row(
crossAxisAlignment: CrossAxisAlignment.center, crossAxisAlignment: CrossAxisAlignment.center,
mainAxisSize: MainAxisSize.min, mainAxisSize: MainAxisSize.min,
children: <Widget>[ children: <Widget>[
Container( Container(
constraints: BoxConstraints(maxWidth: 126), constraints: BoxConstraints(maxWidth: 116),
child: baseText(plans.name, 14, Color(0xff282828), child: baseText(plans.name, 14, Color(0xff282828),
bold: true), bold: true),
), ),
...@@ -107,16 +107,15 @@ class PlanItem extends StatelessWidget { ...@@ -107,16 +107,15 @@ class PlanItem extends StatelessWidget {
borderRadius: BorderRadius.circular(2), borderRadius: BorderRadius.circular(2),
color: Color(0xffF0F9F7)), color: Color(0xffF0F9F7)),
alignment: Alignment.center, alignment: Alignment.center,
child: baseText( child:
showOprea, 11, Color(0xff3FB5AF), baseText(showOprea, 11, Color(0xff3FB5AF)),
bold: true),
), ),
) )
], ],
), ),
), ),
Positioned( Positioned(
top: 15, top: 12,
right: 10, right: 10,
child: Row( child: Row(
textBaseline: TextBaseline.alphabetic, textBaseline: TextBaseline.alphabetic,
...@@ -132,34 +131,35 @@ class PlanItem extends StatelessWidget { ...@@ -132,34 +131,35 @@ class PlanItem extends StatelessWidget {
], ],
), ),
), ),
Positioned(
bottom: 16,
right: 10,
child:
baseText("销量${plans.salesCount}", 11, Color(0xff282828)),
),
Positioned( Positioned(
left: 91, left: 91,
bottom: 14, bottom: 8,
child: Row( child: Container(
textBaseline: TextBaseline.alphabetic, width: MediaQuery.of(context).size.width - 30 - 91 - 10,
crossAxisAlignment: CrossAxisAlignment.baseline, child: Row(
mainAxisSize: MainAxisSize.min, textBaseline: TextBaseline.alphabetic,
children: <Widget>[ crossAxisAlignment: CrossAxisAlignment.baseline,
price == "暂无报价" mainAxisSize: MainAxisSize.min,
? Container( children: <Widget>[
width: 0, price == "暂无报价"
height: 0, ? Container(
) width: 0,
: baseText("¥", 12, Color(0xffFF5963)), height: 0,
baseText( )
price, : baseText("¥", 12, Color(0xffFF5963)),
price == "暂无报价" ? 13 : 15, baseText(
price == "暂无报价" price,
? Color(0xff999999) price == "暂无报价" ? 13 : 15,
: Color(0xffFF5963), price == "暂无报价"
bold: price != "暂无报价") ? Color(0xff999999)
], : Color(0xffFF5963),
bold: price != "暂无报价"),
Expanded(
child: Container(),
),
baseText("销量${plans.salesCount}", 11, Color(0xff282828))
],
),
), ),
), ),
Positioned( Positioned(
......
...@@ -497,10 +497,10 @@ class PlanState extends BaseState<PlanPage> with TickerProviderStateMixin { ...@@ -497,10 +497,10 @@ class PlanState extends BaseState<PlanPage> with TickerProviderStateMixin {
decoration: BoxDecoration( decoration: BoxDecoration(
boxShadow: [ boxShadow: [
BoxShadow( BoxShadow(
color: Colors.black12, color: Color(0x08000000),
offset: Offset(0.0, 2.0), offset: Offset(0.0, 2.0),
blurRadius: 0.5, blurRadius: 12,
spreadRadius: 0.5) spreadRadius: 0)
], ],
color: Colors.white, color: Colors.white,
), ),
......
...@@ -102,7 +102,7 @@ class ProjectViewState extends State<ProjectView> { ...@@ -102,7 +102,7 @@ class ProjectViewState extends State<ProjectView> {
child: ListView.builder( child: ListView.builder(
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: 15, 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(() {
......
...@@ -31,7 +31,7 @@ class SortView extends StatelessWidget { ...@@ -31,7 +31,7 @@ class SortView extends StatelessWidget {
child: Stack( child: Stack(
children: <Widget>[ children: <Widget>[
Positioned( Positioned(
top: 16, top: 13,
child: baseText( child: baseText(
datas[index].name, datas[index].name,
13, 13,
......
...@@ -83,7 +83,9 @@ class TopPageState extends BaseState<TopPage> with TickerProviderStateMixin { ...@@ -83,7 +83,9 @@ class TopPageState extends BaseState<TopPage> with TickerProviderStateMixin {
@override @override
Widget buildItem(BuildContext context) { Widget buildItem(BuildContext context) {
return Scaffold( return Scaffold(
body: baseStateView( body: SafeArea(
top: false,
child: baseStateView(
MediaQuery.of(context).size.width, MediaQuery.of(context).size.width,
MediaQuery.of(context).size.height, MediaQuery.of(context).size.height,
_model.stateLive, _model.stateLive,
...@@ -104,7 +106,7 @@ class TopPageState extends BaseState<TopPage> with TickerProviderStateMixin { ...@@ -104,7 +106,7 @@ class TopPageState extends BaseState<TopPage> with TickerProviderStateMixin {
}, },
paddingTop: paddingTop:
MediaQueryData.fromWindow(window).padding.top + kToolbarHeight), MediaQueryData.fromWindow(window).padding.top + kToolbarHeight),
); ));
} }
Widget homeWarp() { Widget homeWarp() {
...@@ -138,7 +140,10 @@ class TopPageState extends BaseState<TopPage> with TickerProviderStateMixin { ...@@ -138,7 +140,10 @@ class TopPageState extends BaseState<TopPage> with TickerProviderStateMixin {
} }
return false; return false;
}, },
child: home(), child: Container(
color: Color(0xffF7F6FA),
child: home(),
),
), ),
), ),
baseSliverBack(() { baseSliverBack(() {
......
...@@ -6,6 +6,7 @@ import 'package:flutter_common/Annotations/anno/Get.dart'; ...@@ -6,6 +6,7 @@ import 'package:flutter_common/Annotations/anno/Get.dart';
import 'package:flutter_common/Annotations/anno/Post.dart'; import 'package:flutter_common/Annotations/anno/Post.dart';
import 'package:flutter_common/Annotations/anno/Query.dart'; import 'package:flutter_common/Annotations/anno/Query.dart';
import 'package:flutter_common/Annotations/anno/ServiceCenter.dart'; import 'package:flutter_common/Annotations/anno/ServiceCenter.dart';
import 'package:gm_flutter/ClueModel/server/entity/ConsultHospitalsBean.dart';
import 'package:gm_flutter/ClueModel/server/entity/ConsultQuestionsBean.dart'; import 'package:gm_flutter/ClueModel/server/entity/ConsultQuestionsBean.dart';
import 'package:gm_flutter/ClueModel/server/entity/LevelOneFeedList.dart'; import 'package:gm_flutter/ClueModel/server/entity/LevelOneFeedList.dart';
import 'package:gm_flutter/ClueModel/server/entity/PlanBarBean.dart'; import 'package:gm_flutter/ClueModel/server/entity/PlanBarBean.dart';
...@@ -31,6 +32,10 @@ abstract class ClueApi { ...@@ -31,6 +32,10 @@ abstract class ClueApi {
LevelOneFeedList getLevelOneList(@Query("plan_id") int plan_id, LevelOneFeedList getLevelOneList(@Query("plan_id") int plan_id,
@Query("tab_type") String tab_type, @Query("page") int page); @Query("tab_type") String tab_type, @Query("page") int page);
@Get("api/janus/plans/consult_hospitals")
ConsultHospitalsBean getLevelMechanismList(
@Query("plan_id") int plan_id, @Query("page") int page);
@Get("api/janus/plans/plan_compare") @Get("api/janus/plans/plan_compare")
PlanCompareDetail getPlanCompareDetail(@Query("plan_ids") String planIds); PlanCompareDetail getPlanCompareDetail(@Query("plan_ids") String planIds);
...@@ -52,8 +57,11 @@ abstract class ClueApi { ...@@ -52,8 +57,11 @@ abstract class ClueApi {
ConsultQuestionsBean getConsultQuestions(@Query("plan_id") int plan_id); ConsultQuestionsBean getConsultQuestions(@Query("plan_id") int plan_id);
@Post("api/janus/plans/plan_consult") @Post("api/janus/plans/plan_consult")
PlanConsultBean sendMessage(@Query("doctor_ids") List<int> doctor_ids, PlanConsultBean sendMessage(
@Query("question") String question, @Query("plan_id") int plan_id); @Query("doctor_ids") String doctor_ids,
@Query("hospital_ids") String hospital_ids,
@Query("question") String question,
@Query("plan_id") int plan_id);
@Get("api/janus/plans/rank") @Get("api/janus/plans/rank")
PlanBarBean getPlanBar(@Query("rank_type") String rank_type); PlanBarBean getPlanBar(@Query("rank_type") String rank_type);
......
...@@ -17,6 +17,7 @@ import 'package:flutter/foundation.dart'; ...@@ -17,6 +17,7 @@ import 'package:flutter/foundation.dart';
import 'package:gm_flutter/ClueModel/server/entity/ProjectDetailsItem.dart'; import 'package:gm_flutter/ClueModel/server/entity/ProjectDetailsItem.dart';
import 'package:gm_flutter/ClueModel/server/entity/PlansCompareFeed.dart'; import 'package:gm_flutter/ClueModel/server/entity/PlansCompareFeed.dart';
import 'package:gm_flutter/ClueModel/server/entity/LevelOneFeedList.dart'; import 'package:gm_flutter/ClueModel/server/entity/LevelOneFeedList.dart';
import 'package:gm_flutter/ClueModel/server/entity/ConsultHospitalsBean.dart';
import 'package:gm_flutter/ClueModel/server/entity/PlanCompareDetail.dart'; import 'package:gm_flutter/ClueModel/server/entity/PlanCompareDetail.dart';
import 'package:gm_flutter/ClueModel/server/entity/PlanBean.dart'; import 'package:gm_flutter/ClueModel/server/entity/PlanBean.dart';
import 'package:gm_flutter/ClueModel/server/entity/PlanFeedBean.dart'; import 'package:gm_flutter/ClueModel/server/entity/PlanFeedBean.dart';
...@@ -89,6 +90,23 @@ class ClueApiImpl { ...@@ -89,6 +90,23 @@ class ClueApiImpl {
}); });
} }
Stream<ConsultHospitalsBean> getLevelMechanismList(
Dio _dio, int plan_id, int page) {
return Stream.fromFuture(
get(_dio, 'api/janus/plans/consult_hospitals', data: {
'plan_id': plan_id,
'page': page,
})).flatMap((value) {
if (value != null &&
(value.statusCode >= 200 && value.statusCode < 300)) {
return Stream.fromFuture(
compute(parseConsultHospitalsBean, value.toString()));
} else {
throw Exception("--未知网络错误--");
}
});
}
Stream<PlanCompareDetail> getPlanCompareDetail(Dio _dio, String planIds) { Stream<PlanCompareDetail> getPlanCompareDetail(Dio _dio, String planIds) {
return Stream.fromFuture(get(_dio, 'api/janus/plans/plan_compare', data: { return Stream.fromFuture(get(_dio, 'api/janus/plans/plan_compare', data: {
'plan_ids': planIds, 'plan_ids': planIds,
...@@ -159,10 +177,11 @@ class ClueApiImpl { ...@@ -159,10 +177,11 @@ class ClueApiImpl {
}); });
} }
Stream<PlanConsultBean> sendMessage( Stream<PlanConsultBean> sendMessage(Dio _dio, String doctor_ids,
Dio _dio, String doctor_ids, String question, int plan_id) { String hospital_ids, String question, int plan_id) {
return Stream.fromFuture(post(_dio, 'api/janus/plans/plan_consult', data: { return Stream.fromFuture(post(_dio, 'api/janus/plans/plan_consult', data: {
'doctor_ids': doctor_ids, 'doctor_ids': doctor_ids,
'hospital_ids': hospital_ids,
'question': question, 'question': question,
'plan_id': plan_id, 'plan_id': plan_id,
})).flatMap((value) { })).flatMap((value) {
...@@ -372,6 +391,10 @@ LevelOneFeedList parseLevelOneFeedList(String value) { ...@@ -372,6 +391,10 @@ LevelOneFeedList parseLevelOneFeedList(String value) {
return LevelOneFeedList.fromJson(json.decode(value)); return LevelOneFeedList.fromJson(json.decode(value));
} }
ConsultHospitalsBean parseConsultHospitalsBean(String value) {
return ConsultHospitalsBean.fromJson(json.decode(value));
}
PlanCompareDetail parsePlanCompareDetail(String value) { PlanCompareDetail parsePlanCompareDetail(String value) {
return PlanCompareDetail.fromJson(json.decode(value)); return PlanCompareDetail.fromJson(json.decode(value));
} }
......
class ConsultHospitalsBean {
int error;
String message;
Map extra;
Map errorExtra;
UserType userType;
Data data;
ConsultHospitalsBean(
{this.error,
this.message,
this.extra,
this.errorExtra,
this.userType,
this.data});
ConsultHospitalsBean.fromJson(Map<String, dynamic> json) {
error = json['error'];
message = json['message'];
extra = json['extra'];
errorExtra = json['error_extra'];
userType = json['user_type'] != null
? new UserType.fromJson(json['user_type'])
: null;
data = json['data'] != null ? new Data.fromJson(json['data']) : null;
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['error'] = this.error;
data['message'] = this.message;
data['extra'] = this.extra;
data['error_extra'] = this.errorExtra;
if (this.userType != null) {
data['user_type'] = this.userType.toJson();
}
if (this.data != null) {
data['data'] = this.data.toJson();
}
return data;
}
}
class UserType {
UserType();
UserType.fromJson(Map<String, dynamic> json) {}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
return data;
}
}
class Data {
List<Hospitals> hospitals;
Data({this.hospitals});
Data.fromJson(Map<String, dynamic> json) {
if (json['hospitals'] != null) {
hospitals = new List<Hospitals>();
json['hospitals'].forEach((v) {
hospitals.add(new Hospitals.fromJson(v));
});
}
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
if (this.hospitals != null) {
data['hospitals'] = this.hospitals.map((v) => v.toJson()).toList();
}
return data;
}
}
class Hospitals {
String hospitalId;
String doctorId;
String portrait;
String name;
String minPrice;
String maxPrice;
String star;
String address;
String consultType;
String messageUrl;
bool isCheck = false;
Hospitals(
{this.hospitalId,
this.doctorId,
this.portrait,
this.name,
this.minPrice,
this.maxPrice,
this.star,
this.address,
this.consultType,
this.messageUrl});
Hospitals.fromJson(Map<String, dynamic> json) {
hospitalId = json['hospital_id'];
doctorId = json['doctor_id'];
portrait = json['portrait'];
name = json['name'];
minPrice = json['min_price'];
maxPrice = json['max_price'];
star = json['star'];
address = json['address'];
consultType = json['consult_type'];
messageUrl = json['message_url'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['hosiptal_id'] = this.hospitalId;
data['doctor_id'] = this.doctorId;
data['portrait'] = this.portrait;
data['name'] = this.name;
data['min_price'] = this.minPrice;
data['max_price'] = this.maxPrice;
data['star'] = this.star;
data['address'] = this.address;
data['consult_type'] = this.consultType;
data['message_url'] = this.messageUrl;
return data;
}
}
...@@ -211,6 +211,7 @@ class Hospital { ...@@ -211,6 +211,7 @@ class Hospital {
String consultType; String consultType;
String messageUrl; String messageUrl;
bool isCheck = false; bool isCheck = false;
String gm_url;
Hospital( Hospital(
{this.portrait, {this.portrait,
...@@ -229,6 +230,7 @@ class Hospital { ...@@ -229,6 +230,7 @@ class Hospital {
name = json['name']; name = json['name'];
minPrice = json['min_price']; minPrice = json['min_price'];
maxPrice = json['max_price']; maxPrice = json['max_price'];
gm_url = json['gm_url'];
star = json['star']; star = json['star'];
address = json['address']; address = json['address'];
consultType = json['consult_type']; consultType = json['consult_type'];
...@@ -244,6 +246,7 @@ class Hospital { ...@@ -244,6 +246,7 @@ class Hospital {
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;
data['gm_url'] = this.gm_url;
data['address'] = this.address; data['address'] = this.address;
data['consult_type'] = this.consultType; data['consult_type'] = this.consultType;
data['message_url'] = this.messageUrl; data['message_url'] = this.messageUrl;
...@@ -261,6 +264,7 @@ class Doctor { ...@@ -261,6 +264,7 @@ class Doctor {
String title; String title;
String consultType; String consultType;
String messageUrl; String messageUrl;
String gm_url;
Doctor( Doctor(
{this.portrait, {this.portrait,
...@@ -278,6 +282,7 @@ class Doctor { ...@@ -278,6 +282,7 @@ class Doctor {
minPrice = json['min_price']; minPrice = json['min_price'];
maxPrice = json['max_price']; maxPrice = json['max_price'];
doctor_id = json['doctor_id']; doctor_id = json['doctor_id'];
gm_url = json['gm_url'];
star = json['star']; star = json['star'];
title = json['title']; title = json['title'];
consultType = json['consult_type']; consultType = json['consult_type'];
...@@ -290,6 +295,7 @@ class Doctor { ...@@ -290,6 +295,7 @@ class Doctor {
data['name'] = this.name; data['name'] = this.name;
data['doctor_id'] = this.doctor_id; data['doctor_id'] = this.doctor_id;
data['min_price'] = this.minPrice; data['min_price'] = this.minPrice;
data['gm_url'] = this.gm_url;
data['max_price'] = this.maxPrice; data['max_price'] = this.maxPrice;
data['star'] = this.star; data['star'] = this.star;
data['title'] = this.title; data['title'] = this.title;
......
...@@ -319,7 +319,7 @@ Widget baseRefreshView(RefreshController refreshController, ...@@ -319,7 +319,7 @@ Widget baseRefreshView(RefreshController refreshController,
// body = baseText("加载失败", 12, Color(0xff545454)); // body = baseText("加载失败", 12, Color(0xff545454));
// } else // } else
if (mode == LoadStatus.noMore) { if (mode == LoadStatus.noMore) {
body = baseText("没有更多数据了", 12, Color(0xff545454)); body = baseText("我们是有底线的", 12, Color(0xff545454));
} }
// else { // else {
// body = Container(); // body = Container();
...@@ -433,10 +433,10 @@ Widget baseTabBar( ...@@ -433,10 +433,10 @@ Widget baseTabBar(
color: Colors.white, color: Colors.white,
boxShadow: [ boxShadow: [
BoxShadow( BoxShadow(
color: Colors.black12, color: Color(0x08000000),
offset: Offset(0.0, 2.0), offset: Offset(0.0, 2.0),
blurRadius: 0.5, blurRadius: 12,
spreadRadius: 0.5) spreadRadius: 0)
], ],
), ),
child: TabBar( child: TabBar(
...@@ -447,9 +447,9 @@ Widget baseTabBar( ...@@ -447,9 +447,9 @@ Widget baseTabBar(
unselectedLabelColor: color ?? Color(0xffB5B5B5), unselectedLabelColor: color ?? Color(0xffB5B5B5),
labelColor: color ?? Color(0xff282828), labelColor: color ?? Color(0xff282828),
labelStyle: labelStyle:
TextStyle(fontSize: fontSize ?? 16, fontWeight: FontWeight.w500), TextStyle(fontSize: fontSize ?? 16, fontWeight: FontWeight.w600),
unselectedLabelStyle: unselectedLabelStyle:
TextStyle(fontSize: fontSize ?? 16, fontWeight: FontWeight.w500), TextStyle(fontSize: fontSize ?? 16, fontWeight: FontWeight.w600),
labelPadding: EdgeInsets.only(), labelPadding: EdgeInsets.only(),
indicator: baseIndicator ?? BaseIndicator(), indicator: baseIndicator ?? BaseIndicator(),
tabs: list, tabs: list,
......
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