diff --git a/lib/app/api/user_api.dart b/lib/app/api/user_api.dart index 400f08f..c649937 100644 --- a/lib/app/api/user_api.dart +++ b/lib/app/api/user_api.dart @@ -1,7 +1,7 @@ import 'package:flutter_unit/app/res/path_unit.dart'; import 'package:flutter_unit/app/utils/http_utils/http_util.dart'; import 'package:flutter_unit/app/utils/http_utils/result_bean.dart'; -import 'package:flutter_unit/model/user.dart'; +import 'package:flutter_unit/user_system/model/user.dart'; /// create by 张风捷特烈 on 2021/1/17 /// contact me by email 1981462002@qq.com diff --git a/lib/app/router/unit_router.dart b/lib/app/router/unit_router.dart index 564dac7..56507d8 100644 --- a/lib/app/router/unit_router.dart +++ b/lib/app/router/unit_router.dart @@ -8,8 +8,8 @@ import 'package:flutter_unit/views/pages/category/collect_page.dart'; import 'package:flutter_unit/views/pages/gallery/gallery_page.dart'; import 'package:flutter_unit/views/pages/issues_point/issues_detail.dart'; import 'package:flutter_unit/views/pages/issues_point/issues_point_page.dart'; -import 'package:flutter_unit/views/pages/login/login_page.dart'; -import 'package:flutter_unit/views/pages/register/register_page.dart'; +import 'package:flutter_unit/user_system/pages/login/login_page.dart'; +import 'package:flutter_unit/user_system/pages/register/register_page.dart'; import 'package:flutter_unit/views/pages/search/serach_page.dart'; import 'package:flutter_unit/views/pages/setting/code_style_setting.dart'; import 'package:flutter_unit/views/pages/setting/font_setting.dart'; diff --git a/lib/blocs/authentic/event.dart b/lib/blocs/authentic/event.dart index e77f29c..e4d9b57 100644 --- a/lib/blocs/authentic/event.dart +++ b/lib/blocs/authentic/event.dart @@ -1,6 +1,6 @@ import 'package:equatable/equatable.dart'; import 'package:flutter/material.dart'; -import 'package:flutter_unit/model/user.dart'; +import 'package:flutter_unit/user_system/model/user.dart'; diff --git a/lib/blocs/authentic/state.dart b/lib/blocs/authentic/state.dart index ade7cc4..af8b943 100644 --- a/lib/blocs/authentic/state.dart +++ b/lib/blocs/authentic/state.dart @@ -1,6 +1,6 @@ import 'package:equatable/equatable.dart'; -import 'package:flutter_unit/model/user.dart'; +import 'package:flutter_unit/user_system/model/user.dart'; diff --git a/lib/blocs/login/bloc.dart b/lib/user_system/bloc/login/bloc.dart similarity index 95% rename from lib/blocs/login/bloc.dart rename to lib/user_system/bloc/login/bloc.dart index 9280ae7..1b84986 100644 --- a/lib/blocs/login/bloc.dart +++ b/lib/user_system/bloc/login/bloc.dart @@ -4,7 +4,7 @@ import 'package:flutter_unit/app/api/user_api.dart'; import 'package:flutter_unit/app/utils/http_utils/result_bean.dart'; import 'package:flutter_unit/blocs/authentic/bloc.dart'; import 'package:flutter_unit/blocs/authentic/event.dart'; -import 'package:flutter_unit/model/user.dart'; +import 'package:flutter_unit/user_system/model/user.dart'; import 'event.dart'; import 'state.dart'; diff --git a/lib/blocs/login/event.dart b/lib/user_system/bloc/login/event.dart similarity index 100% rename from lib/blocs/login/event.dart rename to lib/user_system/bloc/login/event.dart diff --git a/lib/blocs/login/state.dart b/lib/user_system/bloc/login/state.dart similarity index 93% rename from lib/blocs/login/state.dart rename to lib/user_system/bloc/login/state.dart index 3f3ab40..f7aef39 100644 --- a/lib/blocs/login/state.dart +++ b/lib/user_system/bloc/login/state.dart @@ -1,5 +1,5 @@ import 'package:equatable/equatable.dart'; -import 'package:flutter_unit/model/user.dart'; +import 'package:flutter_unit/user_system/model/user.dart'; /// create by 张风捷特烈 on 2020-03-03 /// contact me by email 1981462002@qq.com diff --git a/lib/blocs/register/bloc.dart b/lib/user_system/bloc/register/bloc.dart similarity index 100% rename from lib/blocs/register/bloc.dart rename to lib/user_system/bloc/register/bloc.dart diff --git a/lib/blocs/register/event.dart b/lib/user_system/bloc/register/event.dart similarity index 100% rename from lib/blocs/register/event.dart rename to lib/user_system/bloc/register/event.dart diff --git a/lib/blocs/register/state.dart b/lib/user_system/bloc/register/state.dart similarity index 100% rename from lib/blocs/register/state.dart rename to lib/user_system/bloc/register/state.dart diff --git a/lib/model/user.dart b/lib/user_system/model/user.dart similarity index 84% rename from lib/model/user.dart rename to lib/user_system/model/user.dart index da4a647..43bcd7d 100644 --- a/lib/model/user.dart +++ b/lib/user_system/model/user.dart @@ -14,11 +14,12 @@ import 'package:equatable/equatable.dart'; class User extends Equatable{ final String username; + final String userAvatar; final String email; final String roles; final int userId; - const User({this.username, this.email, this.roles, this.userId}); + const User({this.username, this.email, this.roles, this.userId,this.userAvatar}); factory User.fromJson(Map map) { return User( @@ -26,11 +27,12 @@ class User extends Equatable{ email: map['email'], roles: map['roles'], userId: map['userId'], + userAvatar: map['userAvatar'], ); } bool get isHonour => roles.contains('honour'); @override - List get props => [username,email,roles,userId]; + List get props => [username,email,roles,userId,userAvatar]; } diff --git a/lib/views/pages/login/login_form.dart b/lib/user_system/pages/login/login_form.dart similarity index 97% rename from lib/views/pages/login/login_form.dart rename to lib/user_system/pages/login/login_form.dart index 172311b..2004de8 100644 --- a/lib/views/pages/login/login_form.dart +++ b/lib/user_system/pages/login/login_form.dart @@ -4,9 +4,9 @@ import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:flutter_unit/app/res/toly_icon.dart'; import 'package:flutter_unit/app/router/unit_router.dart'; import 'package:flutter_unit/app/utils/Toast.dart'; -import 'package:flutter_unit/blocs/login/bloc.dart'; -import 'package:flutter_unit/blocs/login/event.dart'; -import 'package:flutter_unit/blocs/login/state.dart'; +import 'package:flutter_unit/user_system/bloc/login/bloc.dart'; +import 'package:flutter_unit/user_system/bloc/login/event.dart'; +import 'package:flutter_unit/user_system/bloc/login/state.dart'; import 'package:flutter_unit/views/components/permanent/feedback_widget.dart'; class LoginFrom extends StatefulWidget { diff --git a/lib/views/pages/login/login_page.dart b/lib/user_system/pages/login/login_page.dart similarity index 91% rename from lib/views/pages/login/login_page.dart rename to lib/user_system/pages/login/login_page.dart index 2ba31cf..8be30d0 100644 --- a/lib/views/pages/login/login_page.dart +++ b/lib/user_system/pages/login/login_page.dart @@ -1,5 +1,5 @@ import 'package:flutter/material.dart'; -import 'package:flutter_unit/views/pages/register/arc_clipper.dart'; +import 'package:flutter_unit/user_system/pages/register/arc_clipper.dart'; import 'login_form.dart'; /// create by 张风捷特烈 on 2020/4/24 diff --git a/lib/views/pages/register/arc_clipper.dart b/lib/user_system/pages/register/arc_clipper.dart similarity index 100% rename from lib/views/pages/register/arc_clipper.dart rename to lib/user_system/pages/register/arc_clipper.dart diff --git a/lib/views/pages/register/register_page.dart b/lib/user_system/pages/register/register_page.dart similarity index 94% rename from lib/views/pages/register/register_page.dart rename to lib/user_system/pages/register/register_page.dart index 76b0e62..9dfb06c 100644 --- a/lib/views/pages/register/register_page.dart +++ b/lib/user_system/pages/register/register_page.dart @@ -5,11 +5,11 @@ import 'package:flutter_unit/app/utils/Toast.dart'; import 'package:flutter_unit/app/utils/http_utils/result_bean.dart'; import 'package:flutter_unit/blocs/authentic/bloc.dart'; import 'package:flutter_unit/blocs/authentic/state.dart'; -import 'package:flutter_unit/blocs/login/bloc.dart'; -import 'package:flutter_unit/blocs/login/event.dart'; -import 'package:flutter_unit/blocs/register/bloc.dart'; -import 'package:flutter_unit/blocs/register/event.dart'; -import 'package:flutter_unit/blocs/register/state.dart'; +import 'package:flutter_unit/user_system/bloc/login/bloc.dart'; +import 'package:flutter_unit/user_system/bloc/login/event.dart'; +import 'package:flutter_unit/user_system/bloc/register/bloc.dart'; +import 'package:flutter_unit/user_system/bloc/register/event.dart'; +import 'package:flutter_unit/user_system/bloc/register/state.dart'; import 'package:flutter_unit/views/components/permanent/icon_input.dart'; import 'arc_clipper.dart'; diff --git a/lib/views/pages/register/send_code.dart b/lib/user_system/pages/register/send_code.dart similarity index 100% rename from lib/views/pages/register/send_code.dart rename to lib/user_system/pages/register/send_code.dart diff --git a/lib/views/pages/app/bloc_wrapper.dart b/lib/views/pages/app/bloc_wrapper.dart index 5338e70..5a75d76 100644 --- a/lib/views/pages/app/bloc_wrapper.dart +++ b/lib/views/pages/app/bloc_wrapper.dart @@ -1,8 +1,8 @@ import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:flutter_unit/blocs/authentic/bloc.dart'; -import 'package:flutter_unit/blocs/login/bloc.dart'; -import 'package:flutter_unit/blocs/register/bloc.dart'; +import 'package:flutter_unit/user_system/bloc/login/bloc.dart'; +import 'package:flutter_unit/user_system/bloc/register/bloc.dart'; import 'package:flutter_unit/model/enums.dart'; import 'package:flutter_unit/blocs/bloc_exp.dart'; import 'package:flutter_unit/repositories/impl/catagory_db_repository.dart'; diff --git a/lib/views/pages/app/unit_navigation.dart b/lib/views/pages/app/unit_navigation.dart index a216349..7d091e5 100644 --- a/lib/views/pages/app/unit_navigation.dart +++ b/lib/views/pages/app/unit_navigation.dart @@ -7,7 +7,7 @@ import 'package:flutter_unit/views/pages/app/unit_bottom_bar.dart'; import 'package:flutter_unit/views/pages/category/collect_page.dart'; import 'package:flutter_unit/views/pages/category/home_right_drawer.dart'; import 'package:flutter_unit/views/pages/gallery/gallery_unit.dart'; -import 'package:flutter_unit/views/pages/me/me_page.dart'; +import 'package:flutter_unit/views/pages/user/user_page.dart'; import 'package:flutter_unit/views/pages/widget_home/home_drawer.dart'; import 'package:flutter_unit/views/pages/widget_home/home_page.dart'; @@ -52,7 +52,7 @@ class _UnitNavigationState extends State { HomePage(), GalleryUnit(), CollectPage(), - MePage(), + UserPage(), ], ), ), diff --git a/lib/views/pages/gallery/base/draw_picture.dart b/lib/views/pages/gallery/base/draw_picture.dart index f408f8b..55ab1ca 100644 --- a/lib/views/pages/gallery/base/draw_picture.dart +++ b/lib/views/pages/gallery/base/draw_picture.dart @@ -25,7 +25,7 @@ class _DrawPictureState extends State { void _loadImage() async { _image = await loadImageFromAssets('assets/images/sabar.webp'); - setState(() {}); + if (mounted) setState(() {}); } //读取 assets 中的图片 @@ -51,11 +51,10 @@ class PaperPainter extends CustomPainter { final ui.Image image; - PaperPainter(this.image) { - _paint = Paint() - ..filterQuality = FilterQuality.high - ..color = Colors.black.withAlpha(180); - } + PaperPainter(this.image) + : _paint = Paint() + ..filterQuality = FilterQuality.high + ..color = Colors.black.withAlpha(180); @override void paint(Canvas canvas, Size size) { @@ -65,7 +64,7 @@ class PaperPainter extends CustomPainter { } void _drawLine(Size size, Canvas canvas) { - _paint..color = Color(0xFFF0F0F0); + _paint..color = const Color(0xFFF0F0F0); double step = 10.0; for (int i = 1; i <= size.height / step; i++) { canvas.drawLine(Offset(step * i, 0), Offset(0, step * i), _paint); diff --git a/lib/views/pages/me/page_item.dart b/lib/views/pages/user/page_item.dart similarity index 100% rename from lib/views/pages/me/page_item.dart rename to lib/views/pages/user/page_item.dart diff --git a/lib/views/pages/me/unit_drawer_header.dart b/lib/views/pages/user/unit_drawer_header.dart similarity index 100% rename from lib/views/pages/me/unit_drawer_header.dart rename to lib/views/pages/user/unit_drawer_header.dart diff --git a/lib/views/pages/me/me_page.dart b/lib/views/pages/user/user_page.dart similarity index 68% rename from lib/views/pages/me/me_page.dart rename to lib/views/pages/user/user_page.dart index 998a57e..7ad6864 100644 --- a/lib/views/pages/me/me_page.dart +++ b/lib/views/pages/user/user_page.dart @@ -1,3 +1,5 @@ +import 'dart:ui'; + import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:flutter_unit/app/router/unit_router.dart'; @@ -13,7 +15,7 @@ import 'page_item.dart'; /// contact me by email 1981462002@qq.com /// 说明: -class MePage extends StatelessWidget { +class UserPage extends StatelessWidget { @override Widget build(BuildContext context) { return Scaffold( @@ -33,15 +35,8 @@ class MePage extends StatelessWidget { Positioned( bottom: 0, left: 40, - child: FeedbackWidget( - onEnd: () { - Navigator.of(context).pushNamed(UnitRouter.login); - }, - child: CircleImage( - size: 80, - shadowColor: Theme.of(context).primaryColor.withAlpha(33), - image: AssetImage("assets/images/icon_head.webp"), - ), + child: BlocBuilder( + builder: _buildAvatarByState, ), ), Positioned( @@ -73,4 +68,29 @@ class MePage extends StatelessWidget { style: TextStyle(fontSize: 18, color: Theme.of(context).primaryColor), ); } + + Widget _buildAvatarByState(BuildContext context, AuthenticState state) { + if (state is AuthSuccess) { + return FeedbackWidget( + onEnd: () { + // Navigator.of(context).pushNamed(UnitRouter.login); + }, + child: CircleImage( + size: 80, + shadowColor: Theme.of(context).primaryColor.withAlpha(33), + image: NetworkImage(state.user.userAvatar), + ), + ); + } + return FeedbackWidget( + onEnd: () { + Navigator.of(context).pushNamed(UnitRouter.login); + }, + child: CircleImage( + size: 80, + shadowColor: Theme.of(context).primaryColor.withAlpha(33), + image: AssetImage("assets/images/icon_head.webp"), + ), + ); + } }