From 31f286925086db1860c286fef6d9bad62543bce0 Mon Sep 17 00:00:00 2001 From: PH2 <1293456824@qq.com> Date: Mon, 14 Sep 2020 17:17:45 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81=E6=96=B0=E5=A2=9E=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E4=BF=A1=E6=81=AF=E7=AE=A1=E7=90=86provide=202=E3=80=81?= =?UTF-8?q?=E7=BD=91=E7=BB=9C=E8=AF=B7=E6=B1=82post=E6=96=B9=E6=B3=95?= =?UTF-8?q?=E6=96=B0=E5=A2=9E=E6=98=AF=E5=90=A6=E7=BC=93=E5=AD=98=E6=A0=87?= =?UTF-8?q?=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/models/user/user_info_model.dart | 44 +++++++++++++++++++ lib/models/user/user_info_model_notifier.dart | 35 +++++++++++++++ lib/util/net_util.dart | 2 +- lib/zhiying_comm.dart | 5 +++ pubspec.yaml | 4 +- 5 files changed, 88 insertions(+), 2 deletions(-) create mode 100644 lib/models/user/user_info_model.dart create mode 100644 lib/models/user/user_info_model_notifier.dart diff --git a/lib/models/user/user_info_model.dart b/lib/models/user/user_info_model.dart new file mode 100644 index 0000000..7a8e292 --- /dev/null +++ b/lib/models/user/user_info_model.dart @@ -0,0 +1,44 @@ + +/// +/// 用户信息类 +/// +class UserInfoModel { + String token; + String mobile; + String userId; + String username; + List perms; + String registerInviteCodeEnable; + + UserInfoModel( + {this.token, + this.userId, + this.username, + this.perms, + this.registerInviteCodeEnable}); + + UserInfoModel.fromJson(Map json) { + token = json['token']; + userId = json['user_id']; + username = json['username']; + mobile = json['mobile']; + perms = json['perms']?.cast(); + registerInviteCodeEnable = json['register_invite_code_enable']; + } + + Map toJson() { + final Map data = new Map(); + data['token'] = this.token; + data['user_id'] = this.userId; + data['username'] = this.username; + data['perms'] = this.perms; + data['mobile'] = this.mobile; + data['register_invite_code_enable'] = this.registerInviteCodeEnable; + return data; + } + + @override + String toString() { + return 'LoginUser{token: $token, userId: $userId, username: $username, perms: $perms, registerInviteCodeEnable: $registerInviteCodeEnable}'; + } +} diff --git a/lib/models/user/user_info_model_notifier.dart b/lib/models/user/user_info_model_notifier.dart new file mode 100644 index 0000000..04ef29a --- /dev/null +++ b/lib/models/user/user_info_model_notifier.dart @@ -0,0 +1,35 @@ +import 'package:flutter/material.dart'; +import 'package:zhiying_comm/models/user/user_info_model.dart'; + +/// +/// 用户信息 +/// +class UserInfoNotifier with ChangeNotifier { + UserInfoModel _userInfo; + + /// 初始化,是否需要读取缓存信息? + UserInfoNotifier(); + + /// 更新用户数据 + void setUserInfo(UserInfoModel loginUser) async { + print('${loginUser.toString()}'); + this._userInfo = loginUser; + // 缓存数据 TODO + /// token + } + + /// 退出登陆 + void unLogin() { + this._userInfo = null; + // 清除缓存数据 TODO + } + + /// 获取登陆数据 + UserInfoModel getUserInfoModel() { + if (null != _userInfo) { + return _userInfo; + } + // TODO 需要读取缓存的数据? + return null; + } +} diff --git a/lib/util/net_util.dart b/lib/util/net_util.dart index d4af294..156efd7 100644 --- a/lib/util/net_util.dart +++ b/lib/util/net_util.dart @@ -86,7 +86,7 @@ class NetUtil { /// 同步请求 static Future post(String path, - {Map params, NetMethod method = NetMethod.POST, bool cache = true}) async { + {Map params, NetMethod method = NetMethod.POST, bool cache = false}) async { if (params == null) { params = {}; } diff --git a/lib/zhiying_comm.dart b/lib/zhiying_comm.dart index d6c6ca2..d4f07d0 100644 --- a/lib/zhiying_comm.dart +++ b/lib/zhiying_comm.dart @@ -15,6 +15,11 @@ export 'util/page_factory.dart'; export 'util/widget_factory.dart'; export 'util/router_util.dart'; export 'util/log/let_log.dart'; +export 'util/empty_util.dart'; + +// 用户信息 +export 'models/user/user_info_model.dart'; +export 'models/user/user_info_model_notifier.dart'; // 屏幕适配 export 'package:flutter_screenutil/flutter_screenutil.dart'; diff --git a/pubspec.yaml b/pubspec.yaml index 69d702f..cc91d2c 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -12,10 +12,11 @@ dependencies: sdk: flutter dio: ^3.0.9 + provider: ^4.0.0 package_info: ^0.4.0+17 device_info: ^0.4.0+1 flutter_native_image: ^0.0.5 - fluttertoast: ^7.0.4 + fluttertoast: 4.0.1 cached_network_image: ^2.2.0+1 equatable: ^1.2.0 json_serializable: ^3.3.0 @@ -26,6 +27,7 @@ dependencies: shared_preferences: ^0.5.10 + dev_dependencies: flutter_test: sdk: flutter