Commit ccf6761f authored by 何碧荣's avatar 何碧荣

发现页

parent 12d0bb1a
......@@ -4,26 +4,29 @@
// RouterCenterGenerator
// **************************************************************************
//NewMessageRouterImpl is resign : true
//PrestigeImpl is resign : true
//BuriedImpl is resign : true
//AlbumRouterImpl is resign : true
//ActivityReportRouterImpl is resign : true
//BuriedImpl is resign : true
//FindRouterImpl is resign : true
//MessageRouterImpl is resign : true
//NewMessageRouterImpl is resign : true
//PrestigeImpl is resign : true
//UserRouterImpl is resign : true
import "package:gmalpha_flutter/NewMessageModel/NewMessageRouterImpl.dart";
import "package:gmalpha_flutter/NewMessageModel/NewMessageRouter.dart";
import "package:gmalpha_flutter/PrestigeModel/PrestigeImpl.dart";
import "package:gmalpha_flutter/PrestigeModel/PrestigeRouter.dart";
import "package:gmalpha_flutter/BuriedLib/BuriedImpl.dart";
import "package:gmalpha_flutter/BuriedLib/BuriedRouter.dart";
import "package:gmalpha_flutter/AlbumModel/AlbumRouterImpl.dart";
import "package:gmalpha_flutter/AlbumModel/AlbumRouter.dart";
import "package:gmalpha_flutter/ActivityReportModel/ActivityReportRouterImpl.dart";
import "package:gmalpha_flutter/ActivityReportModel/ActivityReportRouter.dart";
import "package:gmalpha_flutter/BuriedLib/BuriedImpl.dart";
import "package:gmalpha_flutter/BuriedLib/BuriedRouter.dart";
import "package:gmalpha_flutter/FindModel/FindRouterImpl.dart";
import "package:gmalpha_flutter/FindModel/FindRouter.dart";
import "package:gmalpha_flutter/messageModel/MessageRouterImpl.dart";
import "package:gmalpha_flutter/messageModel/MessageRouter.dart";
import "package:gmalpha_flutter/NewMessageModel/NewMessageRouterImpl.dart";
import "package:gmalpha_flutter/NewMessageModel/NewMessageRouter.dart";
import "package:gmalpha_flutter/PrestigeModel/PrestigeImpl.dart";
import "package:gmalpha_flutter/PrestigeModel/PrestigeRouter.dart";
import "package:gmalpha_flutter/userModel/UserRouterImpl.dart";
import "package:gmalpha_flutter/userModel/UserRouter.dart";
......@@ -54,12 +57,13 @@ class RouterCenterImpl {
}
void init() {
map.putIfAbsent("NewMessageModel", () => NewMessageRouterImpl());
map.putIfAbsent("prestigeModel", () => PrestigeImpl());
map.putIfAbsent("buried_router", () => BuriedImpl());
map.putIfAbsent("albumModel", () => AlbumRouterImpl());
map.putIfAbsent("ActivityReportModel", () => ActivityReportRouterImpl());
map.putIfAbsent("buried_router", () => BuriedImpl());
map.putIfAbsent("FindModel", () => FindRouterImpl());
map.putIfAbsent("messageModel", () => MessageRouterImpl());
map.putIfAbsent("NewMessageModel", () => NewMessageRouterImpl());
map.putIfAbsent("prestigeModel", () => PrestigeImpl());
map.putIfAbsent("userModel", () => UserRouterImpl());
}
......@@ -67,18 +71,18 @@ class RouterCenterImpl {
return map[modelName];
}
NewMessageRouter findNewMessageRouter() {
if (map["NewMessageModel"] == null) {
AlbumRouter findAlbumRouter() {
if (map["albumModel"] == null) {
return null;
}
return map["NewMessageModel"] as NewMessageRouter;
return map["albumModel"] as AlbumRouter;
}
PrestigeRouter findPrestigeRouter() {
if (map["prestigeModel"] == null) {
ActivityReportRouter findActivityReportRouter() {
if (map["ActivityReportModel"] == null) {
return null;
}
return map["prestigeModel"] as PrestigeRouter;
return map["ActivityReportModel"] as ActivityReportRouter;
}
BuriedRouter findBuriedRouter() {
......@@ -88,25 +92,32 @@ class RouterCenterImpl {
return map["buried_router"] as BuriedRouter;
}
AlbumRouter findAlbumRouter() {
if (map["albumModel"] == null) {
FindRouter findFindRouter() {
if (map["FindModel"] == null) {
return null;
}
return map["albumModel"] as AlbumRouter;
return map["FindModel"] as FindRouter;
}
ActivityReportRouter findActivityReportRouter() {
if (map["ActivityReportModel"] == null) {
MessageRouter findMessageRouter() {
if (map["messageModel"] == null) {
return null;
}
return map["ActivityReportModel"] as ActivityReportRouter;
return map["messageModel"] as MessageRouter;
}
MessageRouter findMessageRouter() {
if (map["messageModel"] == null) {
NewMessageRouter findNewMessageRouter() {
if (map["NewMessageModel"] == null) {
return null;
}
return map["messageModel"] as MessageRouter;
return map["NewMessageModel"] as NewMessageRouter;
}
PrestigeRouter findPrestigeRouter() {
if (map["prestigeModel"] == null) {
return null;
}
return map["prestigeModel"] as PrestigeRouter;
}
UserRouter findUserRouter() {
......
import 'package:flutter/material.dart';
import 'package:gmalpha_flutter/Annotations/RouterBaser.dart';
import 'package:gmalpha_flutter/Annotations/anno/Router.dart';
import 'package:gmalpha_flutter/FindModel/FindRouterImpl.dart';
@Router("FindModel",FindRouterImpl,true)
abstract class FindRouter implements RouterBaser{
Widget getFindPage(String fromPage);
}
\ No newline at end of file
import 'package:flutter/widgets.dart';
import 'package:gmalpha_flutter/FindModel/FindRouter.dart';
import 'package:gmalpha_flutter/FindModel/page/FindPage.dart';
class FindRouterImpl implements FindRouter {
@override
Widget getFindPage(String fromPage) {
return FindPage(fromPage);
}
}
\ No newline at end of file
import 'package:flutter/cupertino.dart';
import 'package:gmalpha_flutter/FindModel/service/FindRepository.dart';
import 'package:gmalpha_flutter/FindModel/service/remote/entity/FindEntity.dart';
import 'package:gmalpha_flutter/commonModel/live/BaseModel.dart';
import 'package:gmalpha_flutter/commonModel/live/LiveData.dart';
import 'package:gmalpha_flutter/commonModel/toast/toast.dart';
class FindModel extends BaseModel{
final int page;
final int count;
LiveData<FindEntity> findLive = new LiveData();
FindEntity findList;
FindModel(this.page, this.count);
init(BuildContext context){
getFindPage(page,count);
}
getFindPage(page,count,[callback]){
FindRepository.getInstance()
.getFindPage(page, count)
.listen((value){
if(value != null){
findList.data.cards?.addAll(value.data.cards);
}
else{
findList = value;
}
if(callback !=null) callback(value);
findLive.notifyView(findList);
}).onError((error) {
Toast.show(error, "${error.toString()}");
print(error);
});
}
@override
void dispose() {
findLive.dispost();
}
}
\ No newline at end of file
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:gmalpha_flutter/FindModel/page/FindModel.dart';
import 'package:gmalpha_flutter/NewMessageModel/page/messagePage/common.dart';
import 'package:gmalpha_flutter/commonModel/base/BasePage.dart';
import 'package:gmalpha_flutter/res/value/ALColors.dart';
class FindPage extends StatefulWidget {
FindModel _findModel;
final String fromPage;
FindPage(this.fromPage) {
_findModel = new FindModel(1, 8);
}
@override
_FindPageState createState() => _FindPageState(_findModel);
}
class _FindPageState extends BasePage<FindPage> {
FindModel _findModel;
static int count = 8;
static int page = 1;
_FindPageState(this._findModel);
@override
Widget build(BuildContext context) {
ScreenUtil.instance = ScreenUtil(width: 375.0, height: 667.0)
..init(context);
return Scaffold(
appBar: AppBar(
centerTitle: false,
leading: messageTitle('发现'),
elevation: 0,
backgroundColor: ALColors.ColorFFFFFF,
),
);
}
@override
void dispose() {
super.dispose();
}
@override
String pageName() {
return 'find_home';
}
@override
String referrer() {
return widget.fromPage;
}
}
import 'package:gmalpha_flutter/FindModel/service/local/FindLocal.dart';
import 'package:gmalpha_flutter/FindModel/service/remote/FindRemote.dart';
import 'package:gmalpha_flutter/FindModel/service/remote/entity/FindEntity.dart';
import 'package:rxdart/rxdart.dart';
class FindRepository {
FindRemote _remote;
FindLocal _local;
static FindRepository _findRepository;
FindRepository._(){
_remote = FindRemote.getInstance();
_local = FindLocal.getInstance();
}
static FindRepository getInstance(){
if(_findRepository == null){
_findRepository = FindRepository._();
}
return _findRepository;
}
Observable<FindEntity> getFindPage(int page, int count){
return _remote.getFindPage(page, count).map((value){
if(value != null){
}
return value;
});
}
}
\ No newline at end of file
class FindLocal {
static FindLocal _findRemote;
FindLocal._(){}
static FindLocal getInstance(){
if(_findRemote == null){
_findRemote = new FindLocal._();
}
return _findRemote;
}
}
\ No newline at end of file
import 'package:gmalpha_flutter/FindModel/service/remote/api/FindApi.serv.dart';
import 'package:gmalpha_flutter/FindModel/service/remote/entity/FindEntity.dart';
import 'package:rxdart/rxdart.dart';
class FindRemote{
static FindRemote _findRemote;
FindRemote._(){}
static FindRemote getInstance(){
if(_findRemote == null){
_findRemote = new FindRemote._();
}
return _findRemote;
}
Observable<FindEntity> getFindPage(int page,int count){
return FindApiImpl().getFindPage(page,count);
}
}
\ No newline at end of file
import 'package:gmalpha_flutter/Annotations/anno/Get.dart';
import 'package:gmalpha_flutter/Annotations/anno/Query.dart';
import 'package:gmalpha_flutter/Annotations/anno/ServiceCenter.dart';
import 'package:gmalpha_flutter/FindModel/service/remote/entity/FindEntity.dart';
@ServiceCenter()
abstract class FindApi {
@Get("api/v1/discover")
FindEntity getFindPage(@Query('page') int page, @Query('count') int count);
}
\ 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:gmalpha_flutter/FindModel/service/remote/entity/FindEntity.dart';
import 'package:gmalpha_flutter/commonModel/net/DioUtil.dart';
class FindApiImpl {
factory FindApiImpl() => _sharedInstance();
static FindApiImpl _instance;
FindApiImpl._() {}
static FindApiImpl _sharedInstance() {
if (_instance == null) {
_instance = FindApiImpl._();
}
return _instance;
}
Observable<FindEntity> getFindPage(int page, int count) {
return Observable.fromFuture(DioUtil().get('api/v1/discover',
data: {'page': page, 'count': count})).flatMap((value) {
if (value != null && value.statusCode == 200) {
return Observable.fromFuture(compute(paseFindEntity, value.toString()));
} else {
return Observable.fromFuture(null);
}
});
}
}
FindEntity paseFindEntity(String value) {
return FindEntity.fromJson(json.decode(value));
}
class FindEntity {
int error;
String message;
Null extra;
Data data;
FindEntity({this.error, this.message, this.extra, this.data});
FindEntity.fromJson(Map<String, dynamic> json) {
error = json['error'];
message = json['message'];
extra = json['extra'];
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;
if (this.data != null) {
data['data'] = this.data.toJson();
}
return data;
}
}
class Data {
List<Cards> cards;
Data({this.cards});
Data.fromJson(Map<String, dynamic> json) {
if (json['cards'] != null) {
cards = new List<Cards>();
json['cards'].forEach((v) {
cards.add(new Cards.fromJson(v));
});
}
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
if (this.cards != null) {
data['cards'] = this.cards.map((v) => v.toJson()).toList();
}
return data;
}
}
class Cards {
List<Topics> topics;
int layout;
Cards({this.topics, this.layout});
Cards.fromJson(Map<String, dynamic> json) {
if (json['topics'] != null) {
topics = new List<Topics>();
json['topics'].forEach((v) {
topics.add(new Topics.fromJson(v));
});
}
layout = json['layout'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
if (this.topics != null) {
data['topics'] = this.topics.map((v) => v.toJson()).toList();
}
data['layout'] = this.layout;
return data;
}
}
class Topics {
int topicId;
String imageUrl;
int imageId;
Topics({this.topicId, this.imageUrl, this.imageId});
Topics.fromJson(Map<String, dynamic> json) {
topicId = json['topic_id'];
imageUrl = json['image_url'];
imageId = json['image_id'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['topic_id'] = this.topicId;
data['image_url'] = this.imageUrl;
data['image_id'] = this.imageId;
return data;
}
}
\ No newline at end of file
......@@ -10,7 +10,7 @@ import 'package:gmalpha_flutter/res/value/ALColors.dart';
messageTitle(String text) {
return Text(text,
style: TextStyle(
color: ALColors.Color323232, fontSize: ScreenUtil().setSp(20)));
color: ALColors.Color323232, fontSize: ScreenUtil.instance.setSp(20)));
}
var width = ScreenUtil.instance.setWidth(16);
......
......@@ -32,6 +32,7 @@ class TestPage extends StatelessWidget {
testMessagePage(context),
likePage(context),
focusPage(context),
findPage(context),
],
),
));
......@@ -125,4 +126,14 @@ class TestPage extends StatelessWidget {
);
}, "关注页面");
}
findPage(BuildContext context) {
return base(context, () {
Navigator.push(
context,
new CustomRoute(RouterCenterImpl()
.findFindRouter()?.getFindPage('find_home'))
);
}, "发现页面");
}
}
......@@ -130,7 +130,16 @@ class _MyAppState extends State<MyApp> {
return RouterCenterImpl()
.findNewMessageRouter()
?.getLikePage(params["fromPage"]);
},
'find_home': (pageName, params, _) {
if (!Api.getInstance().setDioCookie(params) ||
params["fromPage"] == null) {
return ErrorPage("出错:需要传递的参数为空");
}
return RouterCenterImpl()
.findFindRouter()
?.getFindPage(params["fromPage"]);
},
});
FlutterBoost.handleOnStartPage();
}
......@@ -140,11 +149,11 @@ class _MyAppState extends State<MyApp> {
return MaterialApp(
title: 'Flutter Boost example',
debugShowCheckedModeBanner: false,
// routes: {
// '/': (context) {
// return TestPage();
// },
// },
routes: {
'/': (context) {
return TestPage();
},
},
builder: buildOnce,
theme: new ThemeData(
primaryColor: Colors.white,
......
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