diff --git a/lib/provider/user_provider.dart b/lib/provider/user_provider.dart index 91a4348..29eba6a 100644 --- a/lib/provider/user_provider.dart +++ b/lib/provider/user_provider.dart @@ -56,6 +56,11 @@ class UserProvider extends ChangeNotifier { return USER_INFO.UserInfoModel.fromJson(model.data); } + logout() { + _isLogin = false; + notifyListeners(); + } + bool _isSigned = false; ///用户是否登陆 diff --git a/lib/ui/agreements/agreement_page.dart b/lib/ui/agreements/agreement_page.dart index 92e8ae7..4ddfb94 100644 --- a/lib/ui/agreements/agreement_page.dart +++ b/lib/ui/agreements/agreement_page.dart @@ -11,14 +11,8 @@ class AgreementPage extends StatelessWidget { title: '服务协议', body: SingleChildScrollView( padding: EdgeInsets.all(16.w), - child: Column( - children: [ - Text( - '《服务协议》', - style: TextStyle(fontWeight: FontWeight.w600, fontSize: 35.w), - ), - Text( - ''' + child: Text( + ''' 欢迎您使用“小蜜蜂智慧社区管家端”APP软件及服务! 为使用“小蜜蜂智慧社区管家端”APP软件(以下简称“许可软件”)及服务,您应当阅读并遵守《服务协议》(以下简称“本协议”)。请您务必审慎阅读、充分理解各条款内容,特别是免除或者限制责任的条款,以及开通或使用某项服务的单独协议,并选择接受或不接受。限制、免责条款可能以加粗形式提示您注意。 @@ -217,11 +211,9 @@ class AgreementPage extends StatelessWidget { 2020年10月21日 ''', - style: TextStyle( - fontSize: 30.w, - ), - ), - ], + style: TextStyle( + fontSize: 30.w, + ), ), ), ); diff --git a/lib/ui/home/home_page.dart b/lib/ui/home/home_page.dart index a00db6c..d577256 100644 --- a/lib/ui/home/home_page.dart +++ b/lib/ui/home/home_page.dart @@ -23,6 +23,7 @@ import 'package:aku_community_manager/ui/sub_pages/visitor_manager/visitor_manag import 'package:aku_community_manager/ui/sub_pages/business_and_fix/business_and_fix_page.dart'; import 'package:aku_community_manager/ui/tool_pages/scan_page.dart'; import 'package:aku_community_manager/ui/tool_pages/warning/warning_page.dart'; +import 'package:aku_community_manager/ui/widgets/app_widgets/aku_avatar.dart'; import 'package:aku_ui/aku_ui.dart'; import 'package:aku_ui/common_widgets/aku_material_button.dart'; import 'package:carousel_slider/carousel_slider.dart'; @@ -187,14 +188,7 @@ class _HomePageState extends State { onTap: () { Scaffold.of(context).openDrawer(); }, - child: userProvider.isLogin - ? FadeInImage.assetNetwork( - placeholder: R.ASSETS_PLACEHOLDER_WEBP, - image: API.image(userProvider - .profileModel.firstImg?.url ?? - ''), - ) - : Icon(Icons.person), + child: AkuAvatar(), ); }, ), @@ -450,7 +444,7 @@ class _HomePageState extends State { ), SizedBox(height: 16.w), //待办事项标题行 - !userProvider.isSigned + !userProvider.isLogin ? SizedBox() : Row( children: [ @@ -489,7 +483,7 @@ class _HomePageState extends State { ), SizedBox(height: 16.w), //待办事项栏 - !userProvider.isSigned + !userProvider.isLogin ? SizedBox() : Container( height: 480.w, @@ -520,7 +514,7 @@ class _HomePageState extends State { ), SizedBox(height: 24.w), //底部信息栏 - !userProvider.isSigned + !userProvider.isLogin ? SizedBox() : Container( width: double.infinity, diff --git a/lib/ui/home/personal_draw.dart b/lib/ui/home/personal_draw.dart index 7cda4de..b254934 100644 --- a/lib/ui/home/personal_draw.dart +++ b/lib/ui/home/personal_draw.dart @@ -5,6 +5,7 @@ import 'package:aku_community_manager/style/app_style.dart'; import 'package:aku_community_manager/ui/login/login_page.dart'; import 'package:aku_community_manager/ui/settings/settings_page.dart'; import 'package:aku_community_manager/ui/settings/user_info_page.dart'; +import 'package:aku_community_manager/ui/widgets/app_widgets/aku_avatar.dart'; import 'package:aku_ui/common_widgets/aku_button.dart'; import 'package:aku_ui/common_widgets/aku_round_button.dart'; import 'package:flutter/material.dart'; @@ -73,21 +74,7 @@ class _PersonalDrawState extends State { children: [ SizedBox(width: 32.w), //头像按钮 - Material( - borderRadius: BorderRadius.circular(36.w), - clipBehavior: Clip.antiAlias, - color: Colors.grey, - child: userProvider.isLogin - ? FadeInImage.assetNetwork( - placeholder: R.ASSETS_PLACEHOLDER_WEBP, - image: API.image( - userProvider.profileModel.firstImg?.url ?? '', - ), - height: 72.w, - width: 72.w, - ) - : Icon(Icons.person), - ), + AkuAvatar(), SizedBox(width: 24.w), Column( crossAxisAlignment: CrossAxisAlignment.start, @@ -131,7 +118,7 @@ class _PersonalDrawState extends State { R.ASSETS_USER_IC_PERSON_PNG, '个人信息', onPressed: () { - userProvider.isSigned + userProvider.isLogin ? Get.to(UserInfoPage()) : Get.to(LoginPage()); }, diff --git a/lib/ui/settings/settings_page.dart b/lib/ui/settings/settings_page.dart index 7c583c7..e46831a 100644 --- a/lib/ui/settings/settings_page.dart +++ b/lib/ui/settings/settings_page.dart @@ -76,14 +76,14 @@ class _SettingsPageState extends State { onTap: () => Get.to(AgreementPage()), ), AkuBox.h(320), - userProvider.isSigned + userProvider.isLogin ? Padding( padding: EdgeInsets.symmetric(horizontal: 64.w), child: AkuMaterialButton( radius: 8.w, color: AppStyle.primaryColor, onPressed: () { - userProvider.setisSigned(false); + userProvider.logout(); Get.offAll(HomePage()); }, child: Text( diff --git a/lib/ui/settings/user_info_page.dart b/lib/ui/settings/user_info_page.dart index 3008a57..42c60b4 100644 --- a/lib/ui/settings/user_info_page.dart +++ b/lib/ui/settings/user_info_page.dart @@ -1,6 +1,7 @@ import 'package:aku_community_manager/const/resource.dart'; import 'package:aku_community_manager/const/api.dart'; import 'package:aku_community_manager/provider/user_provider.dart'; +import 'package:aku_community_manager/ui/widgets/app_widgets/aku_avatar.dart'; import 'package:aku_community_manager/ui/widgets/common/aku_scaffold.dart'; import 'package:aku_community_manager/ui/widgets/common/aku_tile.dart'; import 'package:aku_community_manager/ui/widgets/inner/pick_image.dart'; @@ -33,21 +34,7 @@ class _UserInfoPageState extends State { }, title: Text('头像'), height: 168.w, - suffix: Material( - color: Colors.grey, - borderRadius: BorderRadius.circular(36.w), - clipBehavior: Clip.antiAlias, - child: userProvider.isLogin - ? FadeInImage.assetNetwork( - placeholder: R.ASSETS_PLACEHOLDER_WEBP, - image: API.image( - userProvider.profileModel.firstImg?.url ?? '', - ), - height: 72.w, - width: 72.w, - ) - : Icon(Icons.person), - ), + suffix: AkuAvatar(), ), AkuTile( onTap: () {}, diff --git a/lib/ui/widgets/app_widgets/aku_avatar.dart b/lib/ui/widgets/app_widgets/aku_avatar.dart new file mode 100644 index 0000000..fe6a6af --- /dev/null +++ b/lib/ui/widgets/app_widgets/aku_avatar.dart @@ -0,0 +1,29 @@ +import 'package:aku_community_manager/const/api.dart'; +import 'package:aku_community_manager/const/resource.dart'; +import 'package:aku_community_manager/provider/user_provider.dart'; +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; + +class AkuAvatar extends StatelessWidget { + final double size; + AkuAvatar({Key key, this.size}) : super(key: key); + + @override + Widget build(BuildContext context) { + final userProvider = Provider.of(context); + return userProvider.isLogin + ? Material( + color: Colors.grey, + child: FadeInImage.assetNetwork( + placeholder: R.ASSETS_PLACEHOLDER_WEBP, + image: API.image(userProvider.profileModel.firstImg?.url ?? ''), + height: size ?? 72.w, + width: size ?? 72.w, + ), + ) + : CircleAvatar( + child: Icon(Icons.person), + ); + } +}