Reason Pun

增加了登录状态判断

...@@ -6,6 +6,7 @@ import 'package:one_poem/extension/shared/size_fit.dart'; ...@@ -6,6 +6,7 @@ import 'package:one_poem/extension/shared/size_fit.dart';
6 import 'package:one_poem/login/login_router.dart'; 6 import 'package:one_poem/login/login_router.dart';
7 import 'package:one_poem/res/constant.dart'; 7 import 'package:one_poem/res/constant.dart';
8 import 'package:one_poem/routers/fluro_navigator.dart'; 8 import 'package:one_poem/routers/fluro_navigator.dart';
9 +import 'package:one_poem/routers/routers.dart';
9 import 'package:one_poem/util/device_utils.dart'; 10 import 'package:one_poem/util/device_utils.dart';
10 import 'package:one_poem/util/image_utils.dart'; 11 import 'package:one_poem/util/image_utils.dart';
11 import 'package:one_poem/util/theme_utils.dart'; 12 import 'package:one_poem/util/theme_utils.dart';
...@@ -83,7 +84,11 @@ class _SplashPageState extends State<SplashPage> { ...@@ -83,7 +84,11 @@ class _SplashPageState extends State<SplashPage> {
83 } 84 }
84 85
85 void _goLogin() { 86 void _goLogin() {
86 - NavigatorUtils.push(context, LoginRouter.loginPage, replace: true); 87 + if (SpUtil.containsKey(Constant.userToken)!) {
88 + NavigatorUtils.push(context, Routes.home, clearStack: true);
89 + } else {
90 + NavigatorUtils.push(context, LoginRouter.loginPage, replace: true);
91 + }
87 } 92 }
88 93
89 @override 94 @override
......
1 import 'package:flustars/flustars.dart'; 1 import 'package:flustars/flustars.dart';
2 +import 'package:flutter/cupertino.dart';
2 import 'package:flutter/foundation.dart'; 3 import 'package:flutter/foundation.dart';
3 import 'package:flutter/gestures.dart'; 4 import 'package:flutter/gestures.dart';
4 import 'package:flutter/material.dart'; 5 import 'package:flutter/material.dart';
...@@ -40,6 +41,7 @@ class _LoginPageState extends State<LoginPage> ...@@ -40,6 +41,7 @@ class _LoginPageState extends State<LoginPage>
40 final FocusNode _nodeText1 = FocusNode(); 41 final FocusNode _nodeText1 = FocusNode();
41 final FocusNode _nodeText2 = FocusNode(); 42 final FocusNode _nodeText2 = FocusNode();
42 bool _clickable = false; 43 bool _clickable = false;
44 + bool isLogin = false;
43 45
44 @override 46 @override
45 Map<ChangeNotifier, List<VoidCallback>?>? changeNotifier() { 47 Map<ChangeNotifier, List<VoidCallback>?>? changeNotifier() {
...@@ -117,8 +119,13 @@ class _LoginPageState extends State<LoginPage> ...@@ -117,8 +119,13 @@ class _LoginPageState extends State<LoginPage>
117 } 119 }
118 120
119 void _login() { 121 void _login() {
120 - SpUtil.putString(Constant.phone, _nameController.text); 122 + isLogin = true;
121 - NavigatorUtils.push(context, Routes.home, clearStack: true); 123 + setState(() {});
124 + Future.delayed(const Duration(seconds: 2), () {
125 + //TODO 接入接口后获得user token则表明登录成功
126 + SpUtil.putString(Constant.userToken, "this is user token!");
127 + NavigatorUtils.push(context, Routes.home, clearStack: true);
128 + });
122 } 129 }
123 130
124 @override 131 @override
...@@ -131,11 +138,28 @@ class _LoginPageState extends State<LoginPage> ...@@ -131,11 +138,28 @@ class _LoginPageState extends State<LoginPage>
131 NavigatorUtils.push(context, LoginRouter.smsLoginPage); 138 NavigatorUtils.push(context, LoginRouter.smsLoginPage);
132 }, 139 },
133 ), 140 ),
134 - body: MyScrollView( 141 + body: Stack(
135 - keyboardConfig: Utils.getKeyboardActionsConfig( 142 + children: [
136 - context, <FocusNode>[_nodeText1, _nodeText2]), 143 + MyScrollView(
137 - padding: EdgeInsets.only(left: 16.px, right: 16.px, top: 20.px), 144 + keyboardConfig: Utils.getKeyboardActionsConfig(context, <FocusNode>[
138 - children: _buildBody, 145 + _nodeText1,
146 + _nodeText2,
147 + ]),
148 + padding: EdgeInsets.only(
149 + left: 16.px,
150 + right: 16.px,
151 + top: 20.px,
152 + ),
153 + children: _buildBody,
154 + ),
155 + isLogin
156 + ? const Center(
157 + child: CupertinoActivityIndicator(
158 + radius: 16.0,
159 + ),
160 + )
161 + : Container(),
162 + ],
139 ), 163 ),
140 ); 164 );
141 } 165 }
...@@ -184,7 +208,7 @@ class _LoginPageState extends State<LoginPage> ...@@ -184,7 +208,7 @@ class _LoginPageState extends State<LoginPage>
184 })); 208 }));
185 }, 209 },
186 ), 210 ),
187 - const TextSpan(text: ''), 211 + const TextSpan(text: ' & '),
188 TextSpan( 212 TextSpan(
189 text: '《隐私政策》', 213 text: '《隐私政策》',
190 style: TextStyle(color: Theme.of(context).primaryColor), 214 style: TextStyle(color: Theme.of(context).primaryColor),
......
...@@ -23,4 +23,5 @@ class Constant { ...@@ -23,4 +23,5 @@ class Constant {
23 static const String theme = 'AppTheme'; 23 static const String theme = 'AppTheme';
24 static const String locale = 'locale'; 24 static const String locale = 'locale';
25 25
26 + static const String userToken = 'userToken';
26 } 27 }
......
...@@ -11,8 +11,6 @@ import 'package:one_poem/widgets/my_app_bar.dart'; ...@@ -11,8 +11,6 @@ import 'package:one_poem/widgets/my_app_bar.dart';
11 11
12 import '../setting_router.dart'; 12 import '../setting_router.dart';
13 13
14 -import 'package:one_poem/extension/int_extension.dart';
15 -
16 class SettingPage extends StatefulWidget { 14 class SettingPage extends StatefulWidget {
17 const SettingPage({Key? key}) : super(key: key); 15 const SettingPage({Key? key}) : super(key: key);
18 16
......
1 +import 'package:flustars/flustars.dart';
1 import 'package:flutter/material.dart'; 2 import 'package:flutter/material.dart';
2 import 'package:one_poem/login/login_router.dart'; 3 import 'package:one_poem/login/login_router.dart';
4 +import 'package:one_poem/res/constant.dart';
3 import 'package:one_poem/res/styles.dart'; 5 import 'package:one_poem/res/styles.dart';
4 import 'package:one_poem/routers/fluro_navigator.dart'; 6 import 'package:one_poem/routers/fluro_navigator.dart';
5 import 'package:one_poem/widgets/base_dialog.dart'; 7 import 'package:one_poem/widgets/base_dialog.dart';
...@@ -25,6 +27,7 @@ class _ExitDialog extends State<ExitDialog> { ...@@ -25,6 +27,7 @@ class _ExitDialog extends State<ExitDialog> {
25 child: const Text('您确定要退出登录吗?', style: TextStyles.textSize16), 27 child: const Text('您确定要退出登录吗?', style: TextStyles.textSize16),
26 ), 28 ),
27 onPressed: () { 29 onPressed: () {
30 + SpUtil.remove(Constant.userToken);
28 NavigatorUtils.push(context, LoginRouter.loginPage, clearStack: true); 31 NavigatorUtils.push(context, LoginRouter.loginPage, clearStack: true);
29 }, 32 },
30 ); 33 );
......