Skip to content

Commit 7f7a566

Browse files
committed
✨ 收藏夹完成
1 parent 810f9af commit 7f7a566

29 files changed

+745
-254
lines changed

assets/flutter.db

0 Bytes
Binary file not shown.

lib/app/res/cons.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import 'package:flutter_unit/app/style/TolyIcon.dart';
33
import 'package:flutter_unit/components/permanent/code/highlighter_style.dart';
44

55
class Cons {
6-
static String version = 'V1.0.0';
6+
static String version = 'V1.1.0';
77

88
static const MENU_INFO = <String>["关于", "帮助", "问题反馈"]; //菜单栏
99
static const ICONS_MAP = {

lib/app/router.dart

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import 'package:flutter/material.dart';
22
import 'package:flutter_unit/views/pages/about/about_me_page.dart';
33
import 'package:flutter_unit/views/pages/about/about_app_page.dart';
4+
import 'package:flutter_unit/views/pages/collect/category_show.dart';
45
import 'package:flutter_unit/views/pages/collect/collect_page.dart';
56
import 'package:flutter_unit/views/pages/search/serach_page.dart';
67
import 'package:flutter_unit/views/pages/setting/code_style_setting.dart';
@@ -33,6 +34,9 @@ class Router {
3334
static const String code_style_setting = 'CodeStyleSettingPage';
3435
static const String item_style_setting = 'ItemStyleSettingPage';
3536

37+
38+
static const String category_show = 'CategoryShow';
39+
3640
static const String attr = 'AttrUnitPage';
3741
static const String bug = 'BugUnitPage';
3842
static const String paint = 'PaintUnitPage';
@@ -75,6 +79,9 @@ class Router {
7579
case about_me:
7680
return Right2LeftRouter(child: AboutMePage());
7781

82+
case category_show:
83+
return Right2LeftRouter(child: CategoryShow(model: settings.arguments,));
84+
7885
default:
7986
return MaterialPageRoute(
8087
builder: (_) => Scaffold(

lib/app/utils/Toast.dart

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,11 @@ import 'package:flutter/material.dart';
33

44
class Toast {
55
static toast(BuildContext context, String msg,
6-
{duration = const Duration(milliseconds: 600)}) {
6+
{duration = const Duration(milliseconds: 600),SnackBarAction action}) {
77
Scaffold.of(context).showSnackBar(SnackBar(
88
content: Text(msg),
99
duration: duration,
10+
action: action,
1011
backgroundColor: Theme.of(context).primaryColor,
1112
));
1213
}

lib/blocs/category/category_bloc.dart

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,10 @@ class CategoryBloc extends Bloc<CategoryEvent, CategoryState> {
4343
await repository.deleteCategory(event.id);
4444
add(EventLoadCategory());
4545
}
46+
if (event is EventToggleWidget) {
47+
await repository.toggleCategory(event.categoryId,event.widgetId);
48+
add(EventLoadCategory());
49+
}
4650

4751
if (event is EventAddCategory) {
4852
var categoryPo = CategoryPo(
@@ -62,6 +66,7 @@ class CategoryBloc extends Bloc<CategoryEvent, CategoryState> {
6266
}
6367
}
6468

69+
6570
// if (event is EventAddCategory) {
6671
// var collectPo = CategoryPo(
6772
// name: event.name,

lib/blocs/category/category_event.dart

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,16 @@ class EventLoadCategory extends CategoryEvent{
1515
List<Object> get props => [];
1616
}
1717

18+
class EventToggleWidget extends CategoryEvent{
19+
final int widgetId;
20+
final int categoryId;
21+
22+
EventToggleWidget({this.widgetId, this.categoryId});
23+
24+
@override
25+
List<Object> get props => [widgetId,categoryId];
26+
}
27+
1828
class EventDeleteCategory extends CategoryEvent{
1929
final int id;
2030

lib/blocs/category/category_state.dart

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import 'package:equatable/equatable.dart';
22
import 'package:flutter_unit/model/category_model.dart';
3+
import 'package:flutter_unit/model/widget_model.dart';
34

45
/// create by 张风捷特烈 on 2020-04-21
56
/// contact me by email [email protected]
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
import 'package:flutter/material.dart';
2+
import 'package:flutter_bloc/flutter_bloc.dart';
3+
import 'package:flutter_unit/blocs/category/category_bloc.dart';
4+
import 'package:flutter_unit/blocs/category/category_event.dart';
5+
import 'package:flutter_unit/repositories/itf/category_repository.dart';
6+
7+
import 'category_widget_event.dart';
8+
import 'category_widget_state.dart';
9+
10+
/// create by 张风捷特烈 on 2020-04-21
11+
/// contact me by email [email protected]
12+
/// 说明:
13+
14+
class CategoryWidgetBloc
15+
extends Bloc<CategoryWidgetEvent, CategoryWidgetState> {
16+
final CategoryBloc categoryBloc;
17+
18+
CategoryWidgetBloc({@required this.categoryBloc}) {
19+
print('CategoryBloc');
20+
}
21+
22+
CategoryRepository get repository => categoryBloc.repository;
23+
24+
@override
25+
CategoryWidgetState get initialState => CategoryWidgetEmptyState(); //初始状态
26+
27+
@override
28+
Stream<CategoryWidgetState> mapEventToState(
29+
CategoryWidgetEvent event) async* {
30+
if (event is EventLoadCategoryWidget) {
31+
final widgets =
32+
await repository.loadCategoryWidgets(categoryId: event.categoryId);
33+
yield widgets.isNotEmpty
34+
? CategoryWidgetLoadedState(widgets)
35+
: CategoryWidgetEmptyState();
36+
categoryBloc.add(EventLoadCategory());
37+
}
38+
39+
if (event is EventToggleCategoryWidget) {
40+
await repository.toggleCategory(event.categoryId, event.widgetId);
41+
add(EventLoadCategoryWidget(event.categoryId));
42+
}
43+
}
44+
}
Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
import 'package:equatable/equatable.dart';
2+
import 'package:flutter/material.dart';
3+
4+
/// create by 张风捷特烈 on 2020-04-21
5+
/// contact me by email [email protected]
6+
/// 说明:
7+
8+
abstract class CategoryWidgetEvent extends Equatable{
9+
@override
10+
List<Object> get props => [];
11+
}
12+
13+
//class EventLoadCategory extends CategoryWidgetEvent{
14+
// @override
15+
// List<Object> get props => [];
16+
//}
17+
18+
class EventLoadCategoryWidget extends CategoryWidgetEvent{
19+
final int categoryId;
20+
21+
EventLoadCategoryWidget(this.categoryId);
22+
23+
@override
24+
List<Object> get props => [categoryId];
25+
}
26+
27+
class EventToggleCategoryWidget extends CategoryWidgetEvent{
28+
final int categoryId;
29+
final int widgetId;
30+
31+
EventToggleCategoryWidget(this.categoryId,this.widgetId);
32+
33+
@override
34+
List<Object> get props => [categoryId,widgetId];
35+
}
36+
37+
//class EventDeleteCategory extends CategoryWidgetEvent{
38+
// final int id;
39+
//
40+
// EventDeleteCategory({@required this.id});
41+
//
42+
// @override
43+
// List<Object> get props => [id];
44+
//}
45+
//
46+
//class EventAddCategory extends CategoryWidgetEvent{
47+
// final String name;
48+
// final String info;
49+
// final String color;
50+
//
51+
// EventAddCategory({@required this.name, this.info, this.color});
52+
//
53+
// @override
54+
// List<Object> get props => [name,info,color];
55+
//}
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
import 'package:equatable/equatable.dart';
2+
import 'package:flutter_unit/model/category_model.dart';
3+
import 'package:flutter_unit/model/widget_model.dart';
4+
5+
/// create by 张风捷特烈 on 2020-04-21
6+
/// contact me by email [email protected]
7+
/// 说明:
8+
9+
class CategoryWidgetState extends Equatable{
10+
@override
11+
List<Object> get props => [];
12+
13+
}
14+
15+
16+
class CategoryWidgetLoadedState extends CategoryWidgetState {
17+
final List<WidgetModel> widgets;
18+
19+
CategoryWidgetLoadedState(this.widgets);
20+
21+
List<Object> get props => [widgets];
22+
23+
}
24+
25+
class CategoryWidgetEmptyState extends CategoryWidgetState{
26+
List<Object> get props => [];
27+
}
28+
29+
30+
class AddCategoryFailed extends CategoryWidgetState{
31+
32+
}

0 commit comments

Comments
 (0)