用户头像处理

This commit is contained in:
toly
2021-02-03 20:04:14 +08:00
parent a161373aa6
commit f1cc06963c
22 changed files with 60 additions and 39 deletions

View File

@@ -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

View File

@@ -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';

View File

@@ -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';

View File

@@ -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';

View File

@@ -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';

View File

@@ -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

View File

@@ -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<String, dynamic> 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<Object> get props => [username,email,roles,userId];
List<Object> get props => [username,email,roles,userId,userAvatar];
}

View File

@@ -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 {

View File

@@ -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

View File

@@ -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';

View File

@@ -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';

View File

@@ -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<UnitNavigation> {
HomePage(),
GalleryUnit(),
CollectPage(),
MePage(),
UserPage(),
],
),
),

View File

@@ -25,7 +25,7 @@ class _DrawPictureState extends State<DrawPicture> {
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);

View File

@@ -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<AuthenticBloc, AuthenticState>(
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"),
),
);
}
}