Commit d18aa2b8 authored by 杜欣's avatar 杜欣

Merge branch 'test' into featrue/duxin

parents aceea30b d94ecc47
...@@ -2,6 +2,7 @@ ...@@ -2,6 +2,7 @@
* @author lsy * @author lsy
* @date 2020/6/24 * @date 2020/6/24
**/ **/
import 'package:flutter/cupertino.dart';
import 'package:flutter_common/Annotations/RouterBaser.dart'; import 'package:flutter_common/Annotations/RouterBaser.dart';
import 'package:flutter_common/Annotations/anno/Router.dart'; import 'package:flutter_common/Annotations/anno/Router.dart';
import 'package:flutter_common/Annotations/anno/RouterCenter.dart'; import 'package:flutter_common/Annotations/anno/RouterCenter.dart';
...@@ -10,4 +11,5 @@ import 'package:gm_flutter/ClueModel/ClueRouterImpl.dart'; ...@@ -10,4 +11,5 @@ import 'package:gm_flutter/ClueModel/ClueRouterImpl.dart';
@Router("ClueRouter",ClueRouterImpl,true) @Router("ClueRouter",ClueRouterImpl,true)
abstract class ClueRouter implements RouterBaser{ abstract class ClueRouter implements RouterBaser{
Widget getLevelOnePage();
} }
\ No newline at end of file
...@@ -2,8 +2,13 @@ ...@@ -2,8 +2,13 @@
* @author lsy * @author lsy
* @date 2020/6/24 * @date 2020/6/24
**/ **/
import 'package:flutter/src/widgets/framework.dart';
import 'package:gm_flutter/ClueModel/ClueRouter.dart'; import 'package:gm_flutter/ClueModel/ClueRouter.dart';
import 'package:gm_flutter/ClueModel/page/levelOne/LevelOnePage.dart';
class ClueRouterImpl implements ClueRouter{ class ClueRouterImpl implements ClueRouter {
@override
Widget getLevelOnePage() {
return LevelOnePage();
}
} }
/*
* @author lsy
* @date 2020/6/29
**/
import 'package:cached_network_image/cached_network_image.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:gm_flutter/ClueModel/server/entity/LevelOneFeedList.dart';
import 'package:gm_flutter/commonModel/base/BaseComponent.dart';
import 'package:gm_flutter/commonModel/base/BaseUtil.dart';
class LevelOneItem extends StatelessWidget {
final Cards cards;
VoidCallback lowPrice;
VoidCallback ask;
LevelOneItem(this.cards, {this.lowPrice, this.ask});
@override
Widget build(BuildContext context) {
if (cards.cardType == "plan") {
return PlanItem(context);
} else if (cards.cardType == "hospital") {
return HospitalItem(context);
}
}
Widget DoctorItem(BuildContext context) {
if (cards.doctor == null && isDebug) {
throw new Exception();
}
return GestureDetector(
child: Container(
margin: EdgeInsets.only(left: 15, right: 15),
height: 127,
child: Stack(
children: <Widget>[
Positioned(
top: 15,
child: Container(
width: 45,
height: 45,
child: ClipOval(
child: CachedNetworkImage(
imageUrl: cards.doctor.portrait,
),
),
),
),
Positioned(
left: 57,
top: 18,
child: Row(
mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.end,
children: <Widget>[
baseText(cards.doctor.name, 15, Color(0xff333333),
bold: true),
Container(
margin: EdgeInsets.only(left: 4),
child: baseText(cards.doctor.name, 15, Color(0xff333333),
bold: true),
)
],
),
),
Positioned(
top: 42,
right: 0,
child: Row(
crossAxisAlignment: CrossAxisAlignment.end,
mainAxisSize: MainAxisSize.min,
children: <Widget>[
baseText("¥", 12, Color(0xffFF5963)),
baseText("${cards.doctor.minPrice}-${cards.doctor.maxPrice}",
15, Color(0xffFF5963)),
],
),
),
Positioned(
bottom: 15,
right: 0,
child: lowPriceWidget(),
),
Positioned(
bottom: 15,
right: 187,
child: askWidget(),
),
Positioned(
left: 4.5,
bottom: 25,
child: compareWidget(),
),
],
),
),
);
}
Widget HospitalItem(BuildContext context) {
if (cards.hospital == null && isDebug) {
throw new Exception();
}
return GestureDetector(
onTap: () {},
child: Container(
margin: EdgeInsets.only(left: 15, right: 15),
height: 149,
child: Stack(
children: <Widget>[
Positioned(
left: 0,
top: 15,
child: Container(
width: 45,
height: 45,
child: ClipOval(
child: CachedNetworkImage(
imageUrl: cards.hospital.portrait,
),
),
),
),
Positioned(
left: 57,
top: 17.5,
child: baseText(cards.hospital.name, 15, Color(0xff333333),
bold: true),
),
Positioned(
top: 42.5,
right: 0,
child: Row(
crossAxisAlignment: CrossAxisAlignment.end,
mainAxisSize: MainAxisSize.min,
children: <Widget>[
baseText("¥", 12, Color(0xffFF5963)),
baseText(
"${cards.hospital.minPrice}-${cards.hospital.maxPrice}",
15,
Color(0xffFF5963)),
],
),
),
Positioned(
bottom: 15,
right: 0,
child: lowPriceWidget(),
),
Positioned(
bottom: 15,
right: 187,
child: askWidget(),
),
Positioned(
left: 4.5,
bottom: 25,
child: compareWidget(),
),
Positioned(
bottom: 67,
left: 57,
child: baseText(cards.hospital.name, 12, Color(0xff666666)),
)
],
),
));
}
Widget PlanItem(BuildContext context) {
if (cards.plan == null && isDebug) {
throw new Exception();
}
return Container(
height: 118,
margin: EdgeInsets.only(left: 15, right: 15),
child: Stack(
children: <Widget>[
Positioned(
left: 0,
top: 15,
child: baseText(cards.plan.planName, 15, Color(0xff282828),
bold: true),
),
Positioned(
right: 0,
top: 15,
child: Row(
mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.end,
children: <Widget>[
baseText("¥", 12, Color(0xffFF5963)),
baseText(cards.plan, 15, Color(0xffFF5963))
],
),
),
Positioned(
left: 4.5,
bottom: 25,
child: compareWidget(),
),
Positioned(bottom: 15, right: 0, child: lowPriceWidget()),
Positioned(
right: 152,
bottom: 15,
child: askWidget(),
),
Positioned(
top: 40,
right: 0,
child: baseText(
"指导价:¥${cards.plan.minPrice}-${cards.plan.maxPrice}",
11,
Color(0xff666666)),
),
Positioned(
left: 15,
bottom: 0,
child: Container(
width: MediaQuery.of(context).size.width - 30,
height: 0.5,
color: Color(0xffE5E5E5),
),
)
],
),
);
}
Widget lowPriceWidget() {
return GestureDetector(
onTap: lowPrice,
behavior: HitTestBehavior.opaque,
child: Container(
width: 122,
height: 37,
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(18.5),
color: Color(0xffFFF5F5)),
alignment: Alignment.center,
child: baseText("获取底价", 14, Color(0xffFF5963), bold: true),
),
);
}
Widget askWidget() {
return GestureDetector(
onTap: ask,
behavior: HitTestBehavior.opaque,
child: Container(
width: 122,
height: 37,
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(18.5),
color: Color(0xffEEFDFD)),
alignment: Alignment.center,
child: baseText("咨询", 14, Color(0xff3FB5AF), bold: true),
),
);
}
Widget compareWidget() {
return Row(
mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.center,
children: <Widget>[
Container(
width: 18,
height: 18,
child: Image.asset("assets/vs.png"),
),
Container(
margin: EdgeInsets.only(left: 1.5),
child: baseText("去比较", 13, Color(0xff282828), bold: true),
)
],
);
}
}
...@@ -3,6 +3,8 @@ ...@@ -3,6 +3,8 @@
* @date 2020/6/29 * @date 2020/6/29
**/ **/
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:gm_flutter/ClueModel/view/FiveStarView.dart';
import 'package:gm_flutter/commonModel/base/BaseState.dart'; import 'package:gm_flutter/commonModel/base/BaseState.dart';
class LevelOnePage extends StatefulWidget { class LevelOnePage extends StatefulWidget {
...@@ -13,5 +15,12 @@ class LevelOnePage extends StatefulWidget { ...@@ -13,5 +15,12 @@ class LevelOnePage extends StatefulWidget {
class LevelOneState extends BaseState<LevelOnePage> { class LevelOneState extends BaseState<LevelOnePage> {
@override @override
Widget buildItem(BuildContext context) { Widget buildItem(BuildContext context) {
return Scaffold(
backgroundColor: Colors.white,
body: Stack(
children: <Widget>[ FiveStarView(3, 5),
],
),
);
} }
} }
...@@ -7,4 +7,6 @@ import 'package:flutter_common/Annotations/anno/ServiceCenter.dart'; ...@@ -7,4 +7,6 @@ import 'package:flutter_common/Annotations/anno/ServiceCenter.dart';
@ServiceCenter() @ServiceCenter()
class ClueApi { class ClueApi {
} }
\ No newline at end of file
This diff is collapsed.
/*
* @author lsy
* @date 2020/6/29
**/
import 'package:flutter/cupertino.dart';
class FiveStarView extends StatelessWidget {
final int allStarCount;
final int lightStarCount;
FiveStarView(this.lightStarCount, this.allStarCount);
@override
Widget build(BuildContext context) {
List<Widget> list = new List();
for (int i = 0; i < allStarCount; i++) {
if (i <= lightStarCount) {
list.add(Container(
height: 13,
width: 13,
child: Image.asset("assets/sel_star.png"),
));
if (i != 0 && i != allStarCount - 1) {
list.add(Container(
height: 1,
width: 2,
));
}
} else {
list.add(Container(
height: 13,
width: 13,
child: Image.asset("assets/normal_star.png"),
));
if (i != 0 && i != allStarCount - 1) {
list.add(Container(
height: 1,
width: 2,
));
}
}
}
return Row(
mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.center,
children: list,
);
}
}
...@@ -58,7 +58,8 @@ class MyApp extends State<MyAppWidget> { ...@@ -58,7 +58,8 @@ class MyApp extends State<MyAppWidget> {
return DemoPage1(); return DemoPage1();
}, },
}); });
FlutterBoost.singleton.addBoostContainerLifeCycleObserver((state, settings) { FlutterBoost.singleton.addBoostContainerLifeCycleObserver((state,
settings) {
print("LSY ${state}"); print("LSY ${state}");
}); });
// FlutterBoost.singleton.addBoostNavigatorObserver(TestBoostNavigatorObserver()); // FlutterBoost.singleton.addBoostNavigatorObserver(TestBoostNavigatorObserver());
...@@ -70,24 +71,12 @@ class MyApp extends State<MyAppWidget> { ...@@ -70,24 +71,12 @@ class MyApp extends State<MyAppWidget> {
return MaterialApp( return MaterialApp(
theme: ThemeData(), theme: ThemeData(),
builder: FlutterBoost.init(postPush: _onRoutePushed), builder: FlutterBoost.init(postPush: _onRoutePushed),
home: isDebug home: RouterCenterImpl().findClueRouter().getLevelOnePage());
? Container(
color: Colors.red,
)
: Container(
color: Colors.white,
child: Center(
child: loadingItem(),
),
)
);
} }
void _onRoutePushed( void _onRoutePushed(String pageName,
String pageName,
String uniqueId, String uniqueId,
Map<String, dynamic> params, Map<String, dynamic> params,
Route<dynamic> route, Route<dynamic> route,
Future<dynamic> _, Future<dynamic> _,) {}
) {}
} }
...@@ -32,6 +32,7 @@ dependencies: ...@@ -32,6 +32,7 @@ dependencies:
#轻量级存储 #轻量级存储
shared_preferences: ^0.5.7+1 shared_preferences: ^0.5.7+1
dev_dependencies: dev_dependencies:
flutter_test: flutter_test:
sdk: flutter sdk: flutter
...@@ -40,7 +41,8 @@ dev_dependencies: ...@@ -40,7 +41,8 @@ dev_dependencies:
flutter: flutter:
uses-material-design: true uses-material-design: true
assets:
- assets/
module: module:
androidX: true androidX: true
androidPackage: com.example.gm_flutter androidPackage: com.example.gm_flutter
......
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