forked from lxm_flutter/FlutterUnit
✨ 用户头像处理
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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';
|
||||
|
||||
@@ -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';
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -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';
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -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';
|
||||
@@ -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
|
||||
@@ -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];
|
||||
}
|
||||
@@ -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 {
|
||||
@@ -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
|
||||
@@ -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';
|
||||
@@ -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';
|
||||
|
||||
@@ -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(),
|
||||
],
|
||||
),
|
||||
),
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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"),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user