Commit 826c7070 authored by 林生雨's avatar 林生雨

Merge branch 'zcc/flutter' into 'test'

Zcc/flutter

See merge request !11
parents afd0de6b 1212aedc
......@@ -10,9 +10,9 @@ import 'package:gm_flutter/ClueModel/ClueRouterImpl.dart';
@Router("ClueRouter", ClueRouterImpl, true)
abstract class ClueRouter implements RouterBaser {
Widget getProjectDetailsPage();
Widget getProjectDetailsPage(Map<String,dynamic> params);
Widget getPlansCompareFeed();
Widget getPlansCompareFeed(Map<String,dynamic> params);
Widget getLevelOnePage(Map<String,dynamic> params);
......
......@@ -5,22 +5,22 @@
import 'package:flutter/material.dart';
import 'package:flutter/src/widgets/framework.dart';
import 'package:gm_flutter/ClueModel/ClueRouter.dart';
import 'package:gm_flutter/ClueModel/page/PlanCompareDetail/PlanCompareDetailPage.dart';
import 'package:gm_flutter/ClueModel/page/PlansCompareFeed/PlansCompareFeedPage.dart';
import 'package:gm_flutter/ClueModel/page/ProjectDetails/ProjectDetailsPage.dart';
import 'package:gm_flutter/ClueModel/page/levelOne/LevelOnePage.dart';
import 'package:gm_flutter/ClueModel/page/levelTwo/LevelTwoPage.dart';
import 'package:gm_flutter/ClueModel/page/plan/PlanPage.dart';
import 'package:gm_flutter/ClueModel/page/PlanCompareDetail/PlanCompareDetailPage.dart';
import 'package:gm_flutter/ClueModel/page/top/TopPage.dart';
class ClueRouterImpl implements ClueRouter {
@override
Widget getProjectDetailsPage() {
return ProjectDetailsPage(1);
Widget getProjectDetailsPage(Map<String, dynamic> params) {
return ProjectDetailsPage(params);
}
@override
Widget getLevelOnePage(Map<String,dynamic> params) {
Widget getLevelOnePage(Map<String, dynamic> params) {
return LevelOnePage(params);
}
......@@ -30,8 +30,8 @@ class ClueRouterImpl implements ClueRouter {
}
@override
Widget getPlansCompareFeed() {
return PlansCompareFeedPage(123,1);
Widget getPlansCompareFeed(Map<String, dynamic> params) {
return PlansCompareFeedPage(params);
}
@override
......
......@@ -20,11 +20,9 @@ class PlansCompareFeedItemView extends StatefulWidget {
class _PlansCompareFeedItemViewState
extends BaseState<PlansCompareFeedItemView> {
ImageIcon _checked = ImageIcon(AssetImage("assets/icon_compare_select.png"));
ImageIcon _unchecked =
ImageIcon(AssetImage("assets/icon_compare_unselect.png"));
ImageIcon _icon = ImageIcon(AssetImage("assets/icon_compare_unselect.png"));
String _checked = "assets/icon_compare_select.png";
String _unchecked = "assets/icon_compare_unselect.png";
String _icon = "assets/icon_compare_unselect.png";
@override
Widget buildItem(BuildContext context) {
......@@ -48,10 +46,19 @@ class _PlansCompareFeedItemViewState
padding: EdgeInsets.only(top: 20, bottom: 20),
child: Row(
children: <Widget>[
IconButton(
icon: _icon,
onPressed: () => onClickCheckBox(_icon),
),
GestureDetector(
behavior: HitTestBehavior.opaque,
onTap: () => onClickCheckBox(_icon),
child: Container(
alignment: Alignment.center,
child: ClipRRect(
child: Image.asset(
_icon,
width: 17,
height: 17,
fit: BoxFit.fill,
)),
)),
Container(
margin: EdgeInsets.only(left: 15, right: 15),
child: ClipRRect(
......@@ -64,29 +71,33 @@ class _PlansCompareFeedItemViewState
),
),
),
Container(
height: 50,
Expanded(
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Container(
margin: EdgeInsets.only(top: 2, bottom: 5),
margin: EdgeInsets.only(top: 2, bottom: 8),
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: <Widget>[
baseText(widget.plan.name, 14, Color(0xFF282828),
bold: true),
baseText(" 好评率 ", 11, Color(0xFF282828)),
baseText(widget.plan.positiveRate, 14, Color(0xFFFF5963),
bold: true),
Row(children: <Widget>[
baseText("好评率 ", 11, Color(0xFF282828)),
baseText(
widget.plan.positiveRate, 14, Color(0xFFFF5963),
bold: true)
]),
],
),
),
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: <Widget>[
baseText('¥${widget.plan.minPrice}-${widget.plan.maxPrice}',
13, Color(0xFFFF5963)),
baseText(" 销量${widget.plan.salesCount}", 11,
Color(0xFF282828))
baseText(
"销量${widget.plan.salesCount}", 11, Color(0xFF282828))
],
)
],
......@@ -105,12 +116,22 @@ class _PlansCompareFeedItemViewState
Container(
margin: EdgeInsets.only(right: 15.0),
alignment: Alignment.centerLeft,
child: IconButton(
icon: _icon,
onPressed: () => onClickCheckBox(_icon),
),
child: GestureDetector(
behavior: HitTestBehavior.opaque,
onTap: () => onClickCheckBox(_icon),
child: Container(
alignment: Alignment.center,
child: ClipRRect(
child: Image.asset(
_icon,
width: 17,
height: 17,
fit: BoxFit.fill,
)),
)),
),
Column(
Expanded(
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Container(
......@@ -119,24 +140,23 @@ class _PlansCompareFeedItemViewState
bold: true),
),
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: <Widget>[
baseText('¥${widget.plan.minPrice}-${widget.plan.maxPrice}',
13, Color(0xFFFF5963)),
Container(
width: 160,
alignment: Alignment.centerRight,
child: baseText("指导价:¥${widget.plan.guidePrice}", 11,
Color(0xFF282828))),
baseText("指导价:¥${widget.plan.guidePrice}", 11,
Color(0xFF282828)),
],
),
],
),
)
],
),
);
}
onClickCheckBox(ImageIcon icon) {
onClickCheckBox(String icon) {
if (icon == _checked) {
_icon = _unchecked;
} else {
......
......@@ -5,11 +5,11 @@
**/
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter_boost/flutter_boost.dart';
import 'package:gm_flutter/ClueModel/page/PlansCompareFeed/PlansCompareFeedModel.dart';
import 'package:gm_flutter/ClueModel/server/entity/PlansCompareFeed.dart';
import 'package:gm_flutter/commonModel/base/BaseComponent.dart';
import 'package:gm_flutter/commonModel/base/BaseState.dart';
import 'package:gm_flutter/main.mark.dart';
import 'CallBackCompareItem.dart';
import 'PlansCompareFeedItemView.dart';
......@@ -18,7 +18,10 @@ class PlansCompareFeedPage extends StatefulWidget {
int _planType;
int _planId;
PlansCompareFeedPage(this._planType, this._planId);
PlansCompareFeedPage(Map<String, dynamic> params) {
this._planType = params["planType"];
this._planId = params["planId"];
}
@override
State<StatefulWidget> createState() => _PlansCompareFeedState();
......@@ -75,7 +78,9 @@ class _PlansCompareFeedState extends BaseState<PlansCompareFeedPage>
}
if (item.error != 0) {
return errorItem(MediaQuery.of(context).size.width,
MediaQuery.of(context).size.height, () {});
MediaQuery.of(context).size.height, () {
_model.init(widget._planType, widget._planId);
});
}
return getList(item.data.plans);
},
......@@ -107,9 +112,9 @@ class _PlansCompareFeedState extends BaseState<PlansCompareFeedPage>
onClickCompare() {
if (_compareColor == Color(0xFFCCCCCC)) return;
setState(() {
Map<String, dynamic> map = {};
map["ids"] = _setCompare;
FlutterBoost.singleton.open("sample", urlParams: map);
RouterCenterImpl()
.findMainRouter()
.jumpPage(context, "pageName", {"ids": _setCompare}, false);
});
}
......
......@@ -15,7 +15,9 @@ import '../../server/entity/ProjectDetailsItem.dart';
class ProjectDetailsPage extends StatefulWidget {
int _planId;
ProjectDetailsPage(this._planId);
ProjectDetailsPage(Map<String, dynamic> params) {
this._planId = params["planId"];
}
@override
State<StatefulWidget> createState() => _ProjectDetailsState();
......@@ -62,24 +64,14 @@ class _ProjectDetailsState extends BaseState<ProjectDetailsPage> {
}
ProjectDetailsItem item = data.data;
if (item == null || item.data == null || item.data.groups == null) {
return emptyItem(MediaQuery
.of(context)
.size
.width,
MediaQuery
.of(context)
.size
.height);
return emptyItem(MediaQuery.of(context).size.width,
MediaQuery.of(context).size.height);
}
if (item.error != 0) {
return errorItem(MediaQuery
.of(context)
.size
.width,
MediaQuery
.of(context)
.size
.height, () {});
return errorItem(MediaQuery.of(context).size.width,
MediaQuery.of(context).size.height, () {
_model.init(widget._planId);
});
}
return ListView.builder(
itemCount: item.data.groups.length,
......
......@@ -35,9 +35,10 @@ class JumpManager {
return {
"flutter://clueLevelOne":
RouterCenterImpl().findClueRouter().getLevelOnePage(params),
"flutter://cluePlan":
RouterCenterImpl().findClueRouter().getPlanPage(),
"flutter://clueProjectDetails":
RouterCenterImpl().findClueRouter().getProjectDetailsPage(params),
"flutter://cluePlansCompareFeed":
RouterCenterImpl().findClueRouter().getPlansCompareFeed(params),
};
}
}
......@@ -46,11 +46,11 @@ class TestState extends BaseState<TestPage> {
}));
list.add(listItem("项目说明", () {
JumpUtil.jumpToPageRight(
context, RouterCenterImpl().findClueRouter().getProjectDetailsPage());
context, RouterCenterImpl().findClueRouter().getProjectDetailsPage({"planId":1}));
}));
list.add(listItem("方案对比", () {
JumpUtil.jumpToPageRight(
context, RouterCenterImpl().findClueRouter().getPlansCompareFeed());
context, RouterCenterImpl().findClueRouter().getPlansCompareFeed({"planId":1,"planType":1}));
}));
list.add(listItem("榜单", () {
JumpUtil.jumpToPageRight(
......
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