Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in
Toggle navigation
G
gm_flutter
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
林生雨
gm_flutter
Commits
f5a032ba
Commit
f5a032ba
authored
Jul 02, 2020
by
林生雨
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'zx/gmFlutter' into 'test'
Zx/gm flutter See merge request
!2
parents
f50eb013
d8bc4810
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
275 additions
and
4 deletions
+275
-4
launch.json
.vscode/launch.json
+14
-0
ClueRouter.dart
lib/ClueModel/ClueRouter.dart
+2
-1
ClueRouterImpl.dart
lib/ClueModel/ClueRouterImpl.dart
+5
-0
PlanCompareDetailModel.dart
...eModel/page/PlanCompareDetail/PlanCompareDetailModel.dart
+35
-0
PlanCompareDetailPage.dart
...ueModel/page/PlanCompareDetail/PlanCompareDetailPage.dart
+0
-0
ClueApi.dart
lib/ClueModel/server/api/ClueApi.dart
+4
-1
ClueApi.serv.dart
lib/ClueModel/server/api/ClueApi.serv.dart
+19
-0
PlanCompareDetail.dart
lib/ClueModel/server/entity/PlanCompareDetail.dart
+192
-0
TestPage.dart
lib/MainRouter/page/test/TestPage.dart
+3
-1
main.dart
lib/main.dart
+1
-1
No files found.
.vscode/launch.json
0 → 100644
View file @
f5a032ba
{
//
Use
IntelliSense
to
learn
about
possible
attributes.
//
Hover
to
view
descriptions
of
existing
attributes.
//
For
more
information
,
visit
:
https
:
//go.microsoft.com/fwlink/?linkid=
830387
"version"
:
"0.2.0"
,
"configurations"
:
[
{
"name"
:
"Flutter"
,
"request"
:
"launch"
,
"type"
:
"dart"
}
]
}
\ No newline at end of file
lib/ClueModel/ClueRouter.dart
View file @
f5a032ba
...
...
@@ -16,5 +16,6 @@ abstract class ClueRouter implements RouterBaser {
Widget
getLevelOnePage
();
Widget
getPlanPage
();
Widget
getPlanPage
();
Widget
getPlanCompareDetailPage
();
}
lib/ClueModel/ClueRouterImpl.dart
View file @
f5a032ba
...
...
@@ -8,6 +8,7 @@ import 'package:gm_flutter/ClueModel/page/PlansCompareFeed/PlansCompareFeedPage.
import
'package:gm_flutter/ClueModel/page/ProjectDetails/ProjectDetailsPage.dart'
;
import
'package:gm_flutter/ClueModel/page/levelOne/LevelOnePage.dart'
;
import
'package:gm_flutter/ClueModel/page/plan/PlanPage.dart'
;
import
'package:gm_flutter/ClueModel/page/PlanCompareDetail/PlanCompareDetailPage.dart'
;
class
ClueRouterImpl
implements
ClueRouter
{
@override
...
...
@@ -29,4 +30,8 @@ class ClueRouterImpl implements ClueRouter {
Widget
getPlanPage
()
{
return
PlanPage
();
}
Widget
getPlanCompareDetailPage
()
{
return
PlanCompareDetailPage
();
}
}
lib/ClueModel/page/PlanCompareDetail/PlanCompareDetailModel.dart
0 → 100644
View file @
f5a032ba
/*
* @Author: zx
* @Date: 2020-06-30 17:43:13
* @Last Modified by: zx
* @Last Modified time: 2020-07-01 20:04:23
*/
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'
;
import
'package:gm_flutter/ClueModel/server/entity/PlanCompareDetail.dart'
;
import
'package:gm_flutter/commonModel/GMBase.dart'
;
import
'package:gm_flutter/commonModel/rx/RxDispose.dart'
;
class
PlanCompareDetailModel
extends
BaseModel
{
LiveData
<
PlanCompareDetail
>
detailLive
=
LiveData
();
RxDispose
rxDispose
=
RxDispose
();
void
init
()
{
ClueApiImpl
.
getInstance
()
.
getPlanCompareDetail
(
DioUtil
.
getInstance
().
getDio
(),
[
1
,
2
])
.
listen
((
event
)
{
if
(
event
.
error
==
0
)
{
detailLive
.
notifyView
(
event
);
}
})
.
addToDispose
(
rxDispose
)
.
onError
((
err
)
{});
}
@override
void
dispose
()
{
detailLive
.
dispost
();
}
}
\ No newline at end of file
lib/ClueModel/page/PlanCompareDetail/PlanCompareDetailPage.dart
0 → 100644
View file @
f5a032ba
This diff is collapsed.
Click to expand it.
lib/ClueModel/server/api/ClueApi.dart
View file @
f5a032ba
...
...
@@ -6,11 +6,11 @@ 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/LevelOneFeedList.dart'
;
import
'package:gm_flutter/ClueModel/server/entity/PlanCompareDetail.dart'
;
import
'package:gm_flutter/ClueModel/server/entity/PlansCompareFeed.dart'
;
import
'package:gm_flutter/ClueModel/server/entity/ProjectDetailsItem.dart'
;
import
'package:gm_flutter/ClueModel/server/entity/PlanBean.dart'
;
import
'package:gm_flutter/ClueModel/server/entity/PlanFeedBean.dart'
;
@ServiceCenter
()
abstract
class
ClueApi
{
@Get
(
"/api/janus/plans/plan_detail"
)
...
...
@@ -24,6 +24,9 @@ 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
>
plan_ids
);
@Get
(
"api/janus/plans/options"
)
PlanBean
getPlan
();
...
...
lib/ClueModel/server/api/ClueApi.serv.dart
View file @
f5a032ba
...
...
@@ -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/PlansCompareFeed.dart'
;
import
'package:gm_flutter/ClueModel/server/entity/LevelOneFeedList.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/PlanFeedBean.dart'
;
...
...
@@ -83,6 +84,20 @@ class ClueApiImpl {
});
}
Stream
<
PlanCompareDetail
>
getPlanCompareDetail
(
Dio
_dio
,
List
<
int
>
plan_ids
)
{
return
Stream
.
fromFuture
(
get
(
_dio
,
'api/janus/plans/compare'
,
data:
{
'plan_ids'
:
plan_ids
,
})).
flatMap
((
value
)
{
if
(
value
!=
null
&&
(
value
.
statusCode
>=
200
&&
value
.
statusCode
<
300
))
{
return
Stream
.
fromFuture
(
compute
(
parsePlanCompareDetail
,
value
.
toString
()));
}
else
{
throw
Exception
(
"--未知网络错误--"
);
}
});
}
Stream
<
PlanBean
>
getPlan
(
Dio
_dio
,
)
{
...
...
@@ -273,6 +288,10 @@ LevelOneFeedList parseLevelOneFeedList(String value) {
return
LevelOneFeedList
.
fromJson
(
json
.
decode
(
value
));
}
PlanCompareDetail
parsePlanCompareDetail
(
String
value
)
{
return
PlanCompareDetail
.
fromJson
(
json
.
decode
(
value
));
}
PlanBean
parsePlanBean
(
String
value
)
{
return
PlanBean
.
fromJson
(
json
.
decode
(
value
));
}
...
...
lib/ClueModel/server/entity/PlanCompareDetail.dart
0 → 100644
View file @
f5a032ba
/*
* @Author: zx
* @Date: 2020-06-30 19:31:32
* @Last Modified by: zx
* @Last Modified time: 2020-07-01 20:31:42
*/
import
'dart:convert'
;
class
PlanCompareDetail
{
int
error
;
String
message
;
Null
extra
;
Null
errorExtra
;
UserType
userType
;
Data
data
;
PlanCompareDetail
({
this
.
error
,
this
.
message
,
this
.
extra
,
this
.
errorExtra
,
this
.
userType
,
this
.
data
});
PlanCompareDetail
.
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
<
PlansInfo
>
plansInfo
;
List
<
Groups
>
groups
;
Data
({
this
.
plansInfo
,
this
.
groups
});
Data
.
fromJson
(
Map
<
String
,
dynamic
>
json
)
{
if
(
json
[
'plans_info'
]
!=
null
)
{
plansInfo
=
new
List
<
PlansInfo
>();
json
[
'plans_info'
].
forEach
((
v
)
{
plansInfo
.
add
(
new
PlansInfo
.
fromJson
(
v
));
});
}
if
(
json
[
'groups'
]
!=
null
)
{
groups
=
new
List
<
Groups
>();
json
[
'groups'
].
forEach
((
v
)
{
groups
.
add
(
new
Groups
.
fromJson
(
v
));
});
}
}
Map
<
String
,
dynamic
>
toJson
()
{
final
Map
<
String
,
dynamic
>
data
=
new
Map
<
String
,
dynamic
>();
if
(
this
.
plansInfo
!=
null
)
{
data
[
'plans_info'
]
=
this
.
plansInfo
.
map
((
v
)
=>
v
.
toJson
()).
toList
();
}
if
(
this
.
groups
!=
null
)
{
data
[
'groups'
]
=
this
.
groups
.
map
((
v
)
=>
v
.
toJson
()).
toList
();
}
return
data
;
}
}
class
PlansInfo
{
int
planId
;
String
planName
;
String
minPrice
;
String
maxPrice
;
PlansInfo
({
this
.
planId
,
this
.
planName
,
this
.
minPrice
,
this
.
maxPrice
});
PlansInfo
.
fromJson
(
Map
<
String
,
dynamic
>
json
)
{
planId
=
json
[
'plan_id'
];
planName
=
json
[
'plan_name'
];
minPrice
=
json
[
'min_price'
];
maxPrice
=
json
[
'max_price'
];
}
Map
<
String
,
dynamic
>
toJson
()
{
final
Map
<
String
,
dynamic
>
data
=
new
Map
<
String
,
dynamic
>();
data
[
'plan_id'
]
=
this
.
planId
;
data
[
'plan_name'
]
=
this
.
planName
;
data
[
'min_price'
]
=
this
.
minPrice
;
data
[
'max_price'
]
=
this
.
maxPrice
;
return
data
;
}
}
class
Groups
{
String
groupType
;
String
groupName
;
List
<
Plans
>
plans
;
Groups
({
this
.
groupType
,
this
.
groupName
,
this
.
plans
});
Groups
.
fromJson
(
Map
<
String
,
dynamic
>
json
)
{
groupType
=
json
[
'group_type'
];
groupName
=
json
[
'group_name'
];
if
(
json
[
'plans'
]
!=
null
)
{
plans
=
new
List
<
Plans
>();
json
[
'plans'
].
forEach
((
v
)
{
plans
.
add
(
new
Plans
.
fromJson
(
v
));
});
}
}
Map
<
String
,
dynamic
>
toJson
()
{
final
Map
<
String
,
dynamic
>
data
=
new
Map
<
String
,
dynamic
>();
data
[
'group_type'
]
=
this
.
groupType
;
data
[
'group_name'
]
=
this
.
groupName
;
if
(
this
.
plans
!=
null
)
{
data
[
'plans'
]
=
this
.
plans
.
map
((
v
)
=>
v
.
toJson
()).
toList
();
}
return
data
;
}
}
class
Plans
{
int
planId
;
String
positiveRate
;
String
salesCount
;
List
<
Attrs
>
attrs
;
Plans
({
this
.
planId
,
this
.
positiveRate
,
this
.
salesCount
,
this
.
attrs
});
Plans
.
fromJson
(
Map
<
String
,
dynamic
>
json
)
{
planId
=
json
[
'plan_id'
];
positiveRate
=
json
[
'positive_rate'
];
salesCount
=
json
[
'sales_count'
];
if
(
json
[
'attrs'
]
!=
null
)
{
attrs
=
new
List
<
Attrs
>();
json
[
'attrs'
].
forEach
((
v
)
{
attrs
.
add
(
new
Attrs
.
fromJson
(
v
));
});
}
}
Map
<
String
,
dynamic
>
toJson
()
{
final
Map
<
String
,
dynamic
>
data
=
new
Map
<
String
,
dynamic
>();
data
[
'plan_id'
]
=
this
.
planId
;
data
[
'positive_rate'
]
=
this
.
positiveRate
;
data
[
'sales_count'
]
=
this
.
salesCount
;
if
(
this
.
attrs
!=
null
)
{
data
[
'attrs'
]
=
this
.
attrs
.
map
((
v
)
=>
v
.
toJson
()).
toList
();
}
return
data
;
}
}
class
Attrs
{
String
attrName
;
String
attrValue
;
Attrs
({
this
.
attrName
,
this
.
attrValue
});
Attrs
.
fromJson
(
Map
<
String
,
dynamic
>
json
)
{
attrName
=
json
[
'attr_name'
];
attrValue
=
json
[
'attr_value'
];
}
Map
<
String
,
dynamic
>
toJson
()
{
final
Map
<
String
,
dynamic
>
data
=
new
Map
<
String
,
dynamic
>();
data
[
'attr_name'
]
=
this
.
attrName
;
data
[
'attr_value'
]
=
this
.
attrValue
;
return
data
;
}
}
lib/MainRouter/page/test/TestPage.dart
View file @
f5a032ba
...
...
@@ -31,10 +31,12 @@ class TestState extends BaseState<TestPage> {
list
.
add
(
listItem
(
"方案页面"
,
()
{
JumpUtil
.
jumpToPageRight
(
context
,
RouterCenterImpl
().
findClueRouter
().
getPlanPage
());
}));
list
.
add
(
listItem
(
"对比详情页"
,
()
{
JumpUtil
.
jumpToPageRight
(
context
,
RouterCenterImpl
().
findClueRouter
().
getPlanCompareDetailPage
());
}));
list
.
add
(
listItem
(
"项目说明"
,
()
{
JumpUtil
.
jumpToPageRight
(
context
,
RouterCenterImpl
().
findClueRouter
().
getProjectDetailsPage
());
}));
return
list
;
}
...
...
lib/main.dart
View file @
f5a032ba
...
...
@@ -6,7 +6,7 @@ import 'package:flutter_common/Annotations/anno/RouterCenter.dart';
import
'package:flutter_common/commonModel/util/WindowUtil.dart'
;
import
'package:gm_flutter/main.mark.dart'
;
import
'package:shared_preferences/shared_preferences.dart'
;
import
'package:gm_flutter/ClueModel/page/PlanCompareDetail/PlanCompareDetailPage.dart'
;
import
'DemoPage.dart'
;
import
'DemoPage1.dart'
;
import
'commonModel/base/BaseComponent.dart'
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment