diff --git a/lib/routes/user_routes.dart b/lib/routes/user_routes.dart index 0ec1bae..983b999 100644 --- a/lib/routes/user_routes.dart +++ b/lib/routes/user_routes.dart @@ -3,9 +3,12 @@ import 'package:chat/views/contact/index/index_page.dart'; import 'package:chat/views/user/info/index_page.dart'; import 'package:chat/views/user/info/nickname_page.dart'; import 'package:chat/views/user/qr_code/index_page.dart'; -import 'package:chat/views/user/safe/index_page.dart'; import 'package:chat/views/user/serve/index_page.dart'; +import 'package:chat/views/user/setting/about/index_page.dart'; import 'package:chat/views/user/setting/index_page.dart'; +import 'package:chat/views/user/setting/privacy/index_page.dart'; +import 'package:chat/views/user/setting/safe/index_page.dart'; +import 'package:chat/views/user/setting/sugguest/index_page.dart'; import 'package:chat/views/user/share/index_page.dart'; import 'package:get/get.dart'; @@ -13,11 +16,18 @@ abstract class UserRoutes { /// 身份验证页面 static const String index = '/user'; static const String qrCode = '/user/qrCode'; + static const String setting = '/user/setting'; + static const String settingPrivacy = '/user/setting/privacy'; + static const String settingAbout = '/user/setting/about'; + static const String settingSafe = '/user/setting/safe'; + static const String settingSugguest = '/user/setting/sugguest'; + static const String share = '/user/share'; - static const String safe = '/user/safe'; + static const String info = '/user/info'; static const String infoNickname = '/user/info/nickname'; + static const String serve = '/user/serve'; static GetPage router = GetPage( @@ -38,10 +48,24 @@ abstract class UserRoutes { GetPage( name: '/setting', page: () => const UserSettingPage(), - ), - GetPage( - name: '/safe', - page: () => const UserSafePage(), + children: [ + GetPage( + name: '/about', + page: () => const UserSettingAboutPage(), + ), + GetPage( + name: '/rivacy', + page: () => const UserSettingPrivacyPage(), + ), + GetPage( + name: '/safe', + page: () => const UserSettingSafePage(), + ), + GetPage( + name: '/sugguest', + page: () => const UserSettingSugguestPage(), + ), + ], ), GetPage( name: '/info', diff --git a/lib/services/auth_service.dart b/lib/services/auth_service.dart index 62a66d9..0722d41 100644 --- a/lib/services/auth_service.dart +++ b/lib/services/auth_service.dart @@ -55,6 +55,7 @@ class AuthService extends GetxService { var result = await AuthProvider.login(address); if (result != null) { + _box.write('mnemonic', mnemonic); _box.write('userId', result.userID); _box.write('userSig', result.userSig); _box.write('userToken', result.userToken); @@ -82,6 +83,9 @@ class AuthService extends GetxService { _box.remove('userSig'); _box.remove('userId'); _box.remove('userToken'); + _box.remove('mnemonic'); + _box.remove('userInfo'); + userSig = ''; userId = ''; userToken = ''; diff --git a/lib/views/user/safe/index_page.dart b/lib/views/user/safe/index_page.dart deleted file mode 100644 index ca72550..0000000 --- a/lib/views/user/safe/index_page.dart +++ /dev/null @@ -1,20 +0,0 @@ -import 'package:flutter/material.dart'; - -class UserSafePage extends StatefulWidget { - const UserSafePage({Key? key}) : super(key: key); - - @override - State createState() => _UserSafePageState(); -} - -class _UserSafePageState extends State { - @override - Widget build(BuildContext context) { - return Scaffold( - appBar: AppBar( - title: const Text('安全设置'), - ), - body: Container(), - ); - } -} diff --git a/lib/views/user/setting/about/index_page.dart b/lib/views/user/setting/about/index_page.dart new file mode 100644 index 0000000..07fca90 --- /dev/null +++ b/lib/views/user/setting/about/index_page.dart @@ -0,0 +1,15 @@ +import 'package:flutter/material.dart'; + +class UserSettingAboutPage extends StatefulWidget { + const UserSettingAboutPage({Key? key}) : super(key: key); + + @override + _UserSettingAboutPageState createState() => _UserSettingAboutPageState(); +} + +class _UserSettingAboutPageState extends State { + @override + Widget build(BuildContext context) { + return Container(); + } +} diff --git a/lib/views/user/setting/index_page.dart b/lib/views/user/setting/index_page.dart index e7c0305..44b911c 100644 --- a/lib/views/user/setting/index_page.dart +++ b/lib/views/user/setting/index_page.dart @@ -1,3 +1,4 @@ +import 'package:adaptive_dialog/adaptive_dialog.dart'; import 'package:chat/configs/app_colors.dart'; import 'package:chat/routes/user_routes.dart'; import 'package:chat/services/auth_service.dart'; @@ -25,7 +26,7 @@ class _UserSettingPageState extends State { ActionItem( '账号与安全', onTap: () { - Get.toNamed(UserRoutes.safe); + Get.toNamed(UserRoutes.settingSafe); }, ), const Divider( @@ -40,7 +41,7 @@ class _UserSettingPageState extends State { ActionItem( '新消息通知', onTap: () { - Get.toNamed(UserRoutes.safe); + Get.toNamed(UserRoutes.settingSafe); }, ), const Divider( @@ -51,7 +52,7 @@ class _UserSettingPageState extends State { ActionItem( '隐私权限', onTap: () { - Get.toNamed(UserRoutes.safe); + Get.toNamed(UserRoutes.settingPrivacy); }, ), const Divider( @@ -62,7 +63,7 @@ class _UserSettingPageState extends State { ActionItem( '关于ZH-CHAT', onTap: () { - Get.toNamed(UserRoutes.safe); + Get.toNamed(UserRoutes.settingAbout); }, ), const Divider( @@ -73,7 +74,7 @@ class _UserSettingPageState extends State { ActionItem( '帮助与反馈', onTap: () { - Get.toNamed(UserRoutes.safe); + Get.toNamed(UserRoutes.settingSugguest); }, ), const SizedBox(height: 8), @@ -83,9 +84,7 @@ class _UserSettingPageState extends State { ), ActionItem( '版本更新', - onTap: () { - Get.toNamed(UserRoutes.safe); - }, + onTap: () {}, ), const Divider( height: 0, @@ -100,7 +99,18 @@ class _UserSettingPageState extends State { '退出', color: AppColors.primary, onTap: () async { - AuthService.to.logout(); + OkCancelResult result = await showOkCancelAlertDialog( + style: AdaptiveStyle.iOS, + context: context, + title: '退出登录', + message: '确认您已备份助记词并保存好了么?退出登录后助记词将无法导出。', + okLabel: '确定', + cancelLabel: '取消', + defaultType: OkCancelAlertDefaultType.cancel, + ); + if (result == OkCancelResult.ok) { + AuthService.to.logout(); + } }, ), const Divider( diff --git a/lib/views/user/setting/privacy/index_page.dart b/lib/views/user/setting/privacy/index_page.dart new file mode 100644 index 0000000..81b4c6d --- /dev/null +++ b/lib/views/user/setting/privacy/index_page.dart @@ -0,0 +1,15 @@ +import 'package:flutter/material.dart'; + +class UserSettingPrivacyPage extends StatefulWidget { + const UserSettingPrivacyPage({Key? key}) : super(key: key); + + @override + _UserSettingPrivacyPageState createState() => _UserSettingPrivacyPageState(); +} + +class _UserSettingPrivacyPageState extends State { + @override + Widget build(BuildContext context) { + return Container(); + } +} diff --git a/lib/views/user/setting/safe/index_page.dart b/lib/views/user/setting/safe/index_page.dart new file mode 100644 index 0000000..3e1e962 --- /dev/null +++ b/lib/views/user/setting/safe/index_page.dart @@ -0,0 +1,55 @@ +import 'package:chat/configs/app_colors.dart'; +import 'package:chat/views/home/widgets/action_item.dart'; +import 'package:flutter/material.dart'; + +class UserSettingSafePage extends StatefulWidget { + const UserSettingSafePage({Key? key}) : super(key: key); + + @override + State createState() => _UserSettingSafePageState(); +} + +class _UserSettingSafePageState extends State { + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + title: const Text('安全设置'), + ), + body: Column( + children: [ + ActionItem( + '导出助记词', + onTap: () {}, + ), + const Divider( + height: 0, + color: AppColors.border, + ), + const SizedBox(height: 8), + const Divider( + height: 0, + color: AppColors.border, + ), + ActionItem( + '绑定手机', + onTap: () {}, + ), + const Divider( + height: 0, + indent: 16, + color: AppColors.border, + ), + ActionItem( + '绑定邮箱', + onTap: () {}, + ), + const Divider( + height: 0, + color: AppColors.border, + ), + ], + ), + ); + } +} diff --git a/lib/views/user/setting/sugguest/index_page.dart b/lib/views/user/setting/sugguest/index_page.dart new file mode 100644 index 0000000..b44cdf8 --- /dev/null +++ b/lib/views/user/setting/sugguest/index_page.dart @@ -0,0 +1,16 @@ +import 'package:flutter/material.dart'; + +class UserSettingSugguestPage extends StatefulWidget { + const UserSettingSugguestPage({Key? key}) : super(key: key); + + @override + _UserSettingSugguestPageState createState() => + _UserSettingSugguestPageState(); +} + +class _UserSettingSugguestPageState extends State { + @override + Widget build(BuildContext context) { + return Container(); + } +}