From 4bf03d234b9503af1f7d981738024b46ce5b4b9e Mon Sep 17 00:00:00 2001 From: Jason Date: Fri, 21 Oct 2022 14:03:48 +0800 Subject: [PATCH] =?UTF-8?q?=E7=99=BB=E5=BD=95=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- assets/images/empty.png | Bin 0 -> 11937 bytes lib/models/auth/auth_model.dart | 7 +- lib/models/user_info_model.dart | 18 +- lib/providers/auth_provider.dart | 2 +- lib/services/auth_service.dart | 8 +- lib/utils/request/http_options.dart | 2 +- lib/views/auth/create/index_page.dart | 164 +++++++++--------- lib/views/auth/import/index_page.dart | 57 +++--- lib/views/auth/index/index_page.dart | 27 +-- .../index/widgets/quick_reply_bar.dart | 2 +- lib/views/user/index/user_page.dart | 2 +- 11 files changed, 154 insertions(+), 135 deletions(-) create mode 100644 assets/images/empty.png diff --git a/assets/images/empty.png b/assets/images/empty.png new file mode 100644 index 0000000000000000000000000000000000000000..45118389abdb1b6a160dd263fddbb6404a35ee65 GIT binary patch literal 11937 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 HeEdjrpc(OMt6`fl}RE(5mY4r z(UIv4T!$9=(CpLM$=R7&Jc6D!)E+ z?v5|?J*thOp~T^xB!LUzkhBI^t%Y?wbX+b1A}HLaVvu{K*v^tP7T`WwY}z(|hZtn% z2&O%Ld{$L;_2q-5`%)o8H*;WdG%es<>kDp;>osI@Fz`<1?a|d``k$DSK}L%S*HoQv zR!2tG`n$?73D6j_LG@6tKhzkC<}dHc%F5c?+sAxVk(toZ6AcnhY;gY^j$S14s4mvM z;y%+}<7)lPb)4+C3Ibkv1g$`)=7V zW=5GiUFeE!ce_Vq%5ME)+gq3uGPuk{ba}8+G45sl(vv '$tokenType $accessToken'; - AuthModel({ - required this.tokenType, required this.accessToken, required this.userID, required this.userSig, @@ -18,9 +14,8 @@ class AuthModel { }); factory AuthModel.fromJson(Map json) => AuthModel( - tokenType: json['token_type'], accessToken: json['access_token'], - userID: json['user_id'], + userID: json['user_id'].toString(), userSig: json['user_sig'], userInfo: UserInfoModel.fromJson(json['user_info']), ); diff --git a/lib/models/user_info_model.dart b/lib/models/user_info_model.dart index dc7aa71..d416c3c 100644 --- a/lib/models/user_info_model.dart +++ b/lib/models/user_info_model.dart @@ -7,14 +7,14 @@ class UserInfoModel { required this.address, }); - int userId; + String userId; String username; - String nickname; - String avatar; + String? nickname; + String? avatar; String? address; factory UserInfoModel.fromJson(Map json) => UserInfoModel( - userId: json['user_id'], + userId: json['user_id'].toString(), username: json['username'], nickname: json['nickname'], avatar: json['avatar'], @@ -22,10 +22,18 @@ class UserInfoModel { ); factory UserInfoModel.empty() => UserInfoModel( - userId: 0, + userId: '', username: '', nickname: '', avatar: '', address: '', ); + + Map toJson() => { + "userId": userId, + "username": username, + "nickname": nickname, + "avatar": avatar, + "address": address, + }; } diff --git a/lib/providers/auth_provider.dart b/lib/providers/auth_provider.dart index 44e4f94..74ade00 100644 --- a/lib/providers/auth_provider.dart +++ b/lib/providers/auth_provider.dart @@ -14,7 +14,7 @@ class AuthProvider { return AuthModel.fromJson(result); } catch (e) { - UiTools.toast('区块链地址获取失败'); + UiTools.toast('区块链地址获取失败 ${e.toString()}'); return null; } } diff --git a/lib/services/auth_service.dart b/lib/services/auth_service.dart index e05bd17..10b5dc7 100644 --- a/lib/services/auth_service.dart +++ b/lib/services/auth_service.dart @@ -25,6 +25,7 @@ class AuthService extends GetxService { String get _userId => _box.read('userId') ?? ''; String get _userSig => _box.read('userSig') ?? ''; String get _userToken => _box.read('userToken') ?? ''; + Map get _userInfo => _box.read('userInfo') ?? {}; Rx userInfo = UserInfoModel.empty().obs; @@ -37,6 +38,7 @@ class AuthService extends GetxService { userSig = _userSig; userId = _userId; userToken = _userToken; + userInfo.value = UserInfoModel.fromJson(_userInfo); } } @@ -46,11 +48,13 @@ class AuthService extends GetxService { if (result != null) { _box.write('userId', result.userID); _box.write('userSig', result.userSig); - _box.write('userToken', result.userToken); + _box.write('userToken', result.accessToken); + _box.write('userInfo', result.userInfo.toJson()); userId = result.userID; userSig = result.userSig; - userToken = result.userToken; + userToken = result.accessToken; + userInfo.value = result.userInfo; isLogin.value = true; diff --git a/lib/utils/request/http_options.dart b/lib/utils/request/http_options.dart index 54fd532..94f52de 100644 --- a/lib/utils/request/http_options.dart +++ b/lib/utils/request/http_options.dart @@ -1,5 +1,5 @@ class HttpOptions { - static const String baseUrl = 'http://api.gl.shangkelian.cn/api/'; + static const String baseUrl = 'https://zh-chat.cnskl.com/api/'; static const int connectTimeout = 15000; static const int receiveTimeout = 15000; } diff --git a/lib/views/auth/create/index_page.dart b/lib/views/auth/create/index_page.dart index 32d06e9..5a6c87e 100644 --- a/lib/views/auth/create/index_page.dart +++ b/lib/views/auth/create/index_page.dart @@ -46,93 +46,95 @@ class _AuthCreatePageState extends State @override Widget build(BuildContext context) { - return Scaffold( - appBar: AppBar( - title: const Text('备份助记词'), - actions: [ - TextButton( - onPressed: () {}, - child: const Text('跳过备份'), - ), - ], - ), - body: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - TabBar( - controller: _tabController, - isScrollable: true, - indicatorColor: AppColors.primary, - indicatorWeight: 5, - indicatorSize: TabBarIndicatorSize.label, - tabs: const [ - Tab( - text: 'English', - ), - Tab( - text: '中文', - ), - ], - ), - const Padding( - padding: EdgeInsets.only(right: 8.0), - child: Text( - '请务必抄下助记词,确定之后将进行校验', - style: TextStyle( - fontSize: 12, + return SafeArea( + child: Scaffold( + appBar: AppBar( + title: const Text('备份助记词'), + actions: [ + TextButton( + onPressed: () {}, + child: const Text('跳过备份'), + ), + ], + ), + body: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + TabBar( + controller: _tabController, + isScrollable: true, + indicatorColor: AppColors.primary, + indicatorWeight: 5, + indicatorSize: TabBarIndicatorSize.label, + tabs: const [ + Tab( + text: 'English', + ), + Tab( + text: '中文', + ), + ], + ), + const Padding( + padding: EdgeInsets.only(right: 8.0), + child: Text( + '请务必抄下助记词,确定之后将进行校验', + style: TextStyle( + fontSize: 12, + ), ), ), - ), - ], - ), - Expanded( - child: TabBarView( - controller: _tabController, - children: [ - _moArea(_englishMnemonic), - _moArea(_chineseMnemonic), ], ), - ), - Container( - height: Get.height * 0.382, - padding: const EdgeInsets.all(16), - child: const Text( - '提示:请勿截图!如果有人获取您的助记词将直接获取您的资产,请抄写助记词并存放在安全的地方,我们会在下一屏幕进行校验,', + Expanded( + child: TabBarView( + controller: _tabController, + children: [ + _moArea(_englishMnemonic), + _moArea(_chineseMnemonic), + ], + ), ), - ), - Row( - mainAxisAlignment: MainAxisAlignment.spaceAround, - children: [ - ElevatedButton( - onPressed: () { - _generateMnemonic(); - }, - child: const Text('更换助记词'), + Container( + height: Get.height * 0.382, + padding: const EdgeInsets.all(16), + child: const Text( + '提示:请勿截图!如果有人获取您的助记词将直接获取您的资产,请抄写助记词并存放在安全的地方,我们会在下一屏幕进行校验,', ), - ElevatedButton( - onPressed: () { - var language = _tabController.index; - Get.toNamed( - AuthRoutes.createVerify, - arguments: { - 'language': language == 0 ? 'english' : 'chinese', - 'mnemonic': - language == 0 ? _englishMnemonic : _chineseMnemonic - }, - ); - }, - child: const Text('开始备份'), - ), - ], - ), - const SizedBox( - height: 16, - ), - ], + ), + Row( + mainAxisAlignment: MainAxisAlignment.spaceAround, + children: [ + ElevatedButton( + onPressed: () { + _generateMnemonic(); + }, + child: const Text('更换助记词'), + ), + ElevatedButton( + onPressed: () { + var language = _tabController.index; + Get.toNamed( + AuthRoutes.createVerify, + arguments: { + 'language': language == 0 ? 'english' : 'chinese', + 'mnemonic': + language == 0 ? _englishMnemonic : _chineseMnemonic + }, + ); + }, + child: const Text('开始备份'), + ), + ], + ), + const SizedBox( + height: 16, + ), + ], + ), ), ); } diff --git a/lib/views/auth/import/index_page.dart b/lib/views/auth/import/index_page.dart index a89cfcb..87d94c9 100644 --- a/lib/views/auth/import/index_page.dart +++ b/lib/views/auth/import/index_page.dart @@ -37,36 +37,41 @@ class _AuthImportPageState extends State { appBar: AppBar( title: const Text('导入账户'), ), - body: Column( - children: [ - TextField( - controller: _editingController, - maxLines: 4, - decoration: const InputDecoration( - hintText: '请输入您的助记词', - border: OutlineInputBorder( - borderSide: BorderSide( - color: AppColors.border, - width: 0.4, + body: Padding( + padding: const EdgeInsets.all(16.0), + child: Column( + children: [ + TextField( + controller: _editingController, + maxLines: 5, + decoration: const InputDecoration( + hintText: '请输入您的助记词,以空格分割单词或汉字', + border: OutlineInputBorder( + borderSide: BorderSide( + color: AppColors.border, + width: 0.4, + ), ), ), ), - ), - const Text('支持导入所有遵循BIP标准生成的助记词'), - ElevatedButton( - onPressed: () async { - String? address = - HDWallet.mnemonicToAddress(_editingController.text); - if (address != null) { - var result = await AuthService.to.login(address); - if (result) { - Get.offAllNamed(AppRoutes.app); + const SizedBox(height: 16), + const Text('支持导入所有遵循BIP标准生成的助记词'), + const SizedBox(height: 16), + ElevatedButton( + onPressed: () async { + String? address = + HDWallet.mnemonicToAddress(_editingController.text); + if (address != null) { + var result = await AuthService.to.login(address); + if (result) { + Get.offAllNamed(AppRoutes.app); + } } - } - }, - child: const Text('开始导入'), - ), - ], + }, + child: const Text('开始导入'), + ), + ], + ), ), ); } diff --git a/lib/views/auth/index/index_page.dart b/lib/views/auth/index/index_page.dart index 9e8514d..8c76401 100644 --- a/lib/views/auth/index/index_page.dart +++ b/lib/views/auth/index/index_page.dart @@ -18,17 +18,22 @@ class _AuthPageState extends State { ), body: Column( children: [ - ElevatedButton( - onPressed: () { - Get.toNamed(AuthRoutes.create); - }, - child: const Text('创建账户'), - ), - ElevatedButton( - onPressed: () { - Get.toNamed(AuthRoutes.import); - }, - child: const Text('导入账户'), + Row( + mainAxisAlignment: MainAxisAlignment.spaceAround, + children: [ + ElevatedButton( + onPressed: () { + Get.toNamed(AuthRoutes.create); + }, + child: const Text('创建账户'), + ), + ElevatedButton( + onPressed: () { + Get.toNamed(AuthRoutes.import); + }, + child: const Text('导入账户'), + ), + ], ), ], ), diff --git a/lib/views/moments/index/widgets/quick_reply_bar.dart b/lib/views/moments/index/widgets/quick_reply_bar.dart index d49183e..031d17a 100644 --- a/lib/views/moments/index/widgets/quick_reply_bar.dart +++ b/lib/views/moments/index/widgets/quick_reply_bar.dart @@ -49,7 +49,7 @@ class _QuickReplyBarState extends State { border: QuickReplyBar._border, focusedBorder: QuickReplyBar._border, disabledBorder: QuickReplyBar._border, - hintText: widget.comment?.user?.nickname.isNotEmpty ?? false + hintText: widget.comment?.user?.nickname != null ? '回复:${widget.comment?.user?.nickname}' : '评论', filled: true, diff --git a/lib/views/user/index/user_page.dart b/lib/views/user/index/user_page.dart index ea76fb9..0ed503a 100644 --- a/lib/views/user/index/user_page.dart +++ b/lib/views/user/index/user_page.dart @@ -27,7 +27,7 @@ class _UserPageState extends State { ), Column( children: [ - Text(_.userInfo.value.nickname), + Text(_.userInfo.value.nickname ?? ''), Text('${_.userInfo.value.address}'), ], ),