From e12dbc82499e691d5b76251f67cc117c6cc18a33 Mon Sep 17 00:00:00 2001 From: Key Date: Sun, 25 Jun 2023 16:41:47 +0800 Subject: [PATCH] user module --- assets/images/ic_vip.png | Bin 0 -> 3428 bytes lib/common/core/assets_const.dart | 5 +++++ lib/common/core/const.dart | 3 --- lib/common/core/sp_const.dart | 3 +++ lib/common/core/user_util.dart | 2 +- lib/common/request/request_client.dart | 2 +- lib/models/user_entity.dart | 7 ++++--- lib/pages/user/user_page.dart | 78 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----- 8 files changed, 87 insertions(+), 13 deletions(-) create mode 100644 assets/images/ic_vip.png create mode 100644 lib/common/core/assets_const.dart delete mode 100644 lib/common/core/const.dart create mode 100644 lib/common/core/sp_const.dart diff --git a/assets/images/ic_vip.png b/assets/images/ic_vip.png new file mode 100644 index 0000000..f090db6 Binary files /dev/null and b/assets/images/ic_vip.png differ diff --git a/lib/common/core/assets_const.dart b/lib/common/core/assets_const.dart new file mode 100644 index 0000000..bdaa341 --- /dev/null +++ b/lib/common/core/assets_const.dart @@ -0,0 +1,5 @@ +class AssetsConst { + static const String _assetImagePrefix = "assets/images/"; + static const String wowLogo = "wow_logo.png"; + static const String icVip = "ic_vip.png"; +} diff --git a/lib/common/core/const.dart b/lib/common/core/const.dart deleted file mode 100644 index 608f51f..0000000 --- a/lib/common/core/const.dart +++ /dev/null @@ -1,3 +0,0 @@ -class SpConst { - static const String prefsKeyUserInfo = "key_user_info"; -} diff --git a/lib/common/core/sp_const.dart b/lib/common/core/sp_const.dart new file mode 100644 index 0000000..608f51f --- /dev/null +++ b/lib/common/core/sp_const.dart @@ -0,0 +1,3 @@ +class SpConst { + static const String prefsKeyUserInfo = "key_user_info"; +} diff --git a/lib/common/core/user_util.dart b/lib/common/core/user_util.dart index 08fc988..747490d 100644 --- a/lib/common/core/user_util.dart +++ b/lib/common/core/user_util.dart @@ -1,7 +1,7 @@ import 'dart:convert'; import 'package:flutter/material.dart'; -import 'package:wow_english/common/core/const.dart'; +import 'package:wow_english/common/core/sp_const.dart'; import 'package:wow_english/models/user_entity.dart'; import 'package:wow_english/route/route.dart'; import 'package:wow_english/utils/sp_util.dart'; diff --git a/lib/common/request/request_client.dart b/lib/common/request/request_client.dart index 89961f2..dded184 100644 --- a/lib/common/request/request_client.dart +++ b/lib/common/request/request_client.dart @@ -17,7 +17,7 @@ class RequestClient { RequestClient() { _dio = Dio(BaseOptions(baseUrl: RequestConfig.baseUrl, connectTimeout: RequestConfig.connectTimeout)); _dio.interceptors.add(TokenInterceptor()); - _dio.interceptors.add(PrettyDioLogger(requestHeader: true, requestBody: true, responseHeader: true)); + _dio.interceptors.add(PrettyDioLogger(requestHeader: true, requestBody: true)); } Future request( diff --git a/lib/models/user_entity.dart b/lib/models/user_entity.dart index 6efa7bd..b6aa797 100644 --- a/lib/models/user_entity.dart +++ b/lib/models/user_entity.dart @@ -7,9 +7,10 @@ import 'package:wow_english/generated/json/user_entity.g.dart'; class UserEntity { late int id; late String name; - late int age; - late int gender; - late String avatarUrl; + late int? age; + /// 性别:0, 1 + late int? gender; + late String? avatarUrl; late String phoneNum; late String token; late int expireTime; diff --git a/lib/pages/user/user_page.dart b/lib/pages/user/user_page.dart index a0a107d..d6c2374 100644 --- a/lib/pages/user/user_page.dart +++ b/lib/pages/user/user_page.dart @@ -1,21 +1,89 @@ import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:wow_english/common/blocs/cachebloc/cache_bloc.dart'; +import 'package:wow_english/common/core/assets_const.dart'; +import 'package:wow_english/common/extension/string_extension.dart'; import 'package:wow_english/common/widgets/we_app_bar.dart'; import 'package:wow_english/models/user_entity.dart'; +import 'package:wow_english/pages/user/bloc/user_bloc.dart'; class UserPage extends StatelessWidget { const UserPage({super.key}); @override Widget build(BuildContext context) { + return BlocProvider( + create: (context) => UserBloc(), + child: _UserView(), + ); + } +} + +class _UserView extends StatelessWidget { + const _UserView({super.key}); + + @override + Widget build(BuildContext context) { UserEntity? user = context.read().userEntity; return Scaffold( - backgroundColor: Colors.white, - appBar: WEAppBar( - titleText: user?.name ?? '????', - ), - body: Row(), + backgroundColor: Colors.white, + appBar: WEAppBar( + // 测试用的 + titleText: user?.name ?? '个人中心', + ), + body: SingleChildScrollView( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Container( + child: Image.asset(AssetsConst.wowLogo.assetImg), constraints: BoxConstraints(maxHeight: 196.h)), + _userInfo(context), + ], + ), + )); + } + + Widget _userInfo(BuildContext context) { + return Row( + children: [ + Image.asset( + AssetsConst.wowLogo.assetImg, + width: 80, + height: 80, + ), + Column( + children: [ + Row( + children: [ + Text( + context.read().userEntity?.name ?? '----', + style: TextStyle( + color: const Color(0xFF333333), + fontSize: 21.sp, + ), + ), + //Text(context.read().userEntity?.gender ?? '--'), + Image.asset( + AssetsConst.wowLogo.assetImg, + height: 18.h, + ), + ], + ), + Row( + children: [ + Text( + "什么时候到期", + style: TextStyle( + color: const Color(0xFFE11212), + fontSize: 17.sp, + ), + ) + ], + ) + ], + ), + ], ); } } -- libgit2 0.22.2