This commit is contained in:
zhutao
2025-11-20 18:00:34 +08:00
parent 701b99b138
commit b7239292d1
45 changed files with 1499 additions and 354 deletions

View File

@@ -1,14 +1,16 @@
import 'dart:async';
import 'package:app/providers/user_store.dart';
import 'package:app/request/api/user_api.dart';
import 'package:app/router/route_paths.dart';
import 'package:app/widgets/base/button/index.dart';
import 'package:flutter/material.dart';
import 'package:flutter_easyloading/flutter_easyloading.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:go_router/go_router.dart';
import 'package:provider/provider.dart';
import 'package:remixicon/remixicon.dart';
import 'widgets/login_agree.dart';
import 'widgets/login_input.dart';
class LoginPage extends StatefulWidget {
@@ -23,8 +25,11 @@ class _LoginPageState extends State<LoginPage> {
bool _agree = false;
///输入框
final TextEditingController _telController = TextEditingController();
final TextEditingController _codeController = TextEditingController();
final TextEditingController _telController = TextEditingController(text: "13343214321");
final TextEditingController _codeController = TextEditingController(text: "1111");
///登录中
bool _loading = false;
///验证码倒计时
var _countDown = 0;
@@ -42,6 +47,7 @@ class _LoginPageState extends State<LoginPage> {
EasyLoading.showToast("请填写正确的手机号");
return;
}
sendCodeApi(_telController.text);
setState(() {
_countDown = 60;
});
@@ -63,7 +69,29 @@ class _LoginPageState extends State<LoginPage> {
EasyLoading.showToast("请填写完整手机号或验证码");
return;
}
context.go(RoutePaths.sHome);
try {
setState(() {
_loading = true;
});
var loginRes = await loginApi(_telController.text, _codeController.text);
if (mounted) {
UserStore userStore = context.read<UserStore>();
//设置登录信息l
await userStore.setToken(loginRes.accessToken);
await userStore.asyncUserInfo();
if (!mounted) return;
if (userStore.userInfo?.accountType == 1) {
context.go(RoutePaths.sHome);
} else {
context.go(RoutePaths.sHome);
}
}
} finally {
setState(() {
_loading = false;
});
}
}
@override
@@ -130,21 +158,25 @@ class _LoginPageState extends State<LoginPage> {
Container(
margin: EdgeInsets.only(top: 40),
height: 50,
child: Button(text: "登 录", onPressed: _handSubmit),
),
Container(
width: double.infinity,
margin: EdgeInsets.only(top: 20),
alignment: Alignment.center,
child: LoginAgree(
value: _agree,
onChanged: (value) {
setState(() {
_agree = value!;
});
},
child: Button(
text: "登 录",
loading: _loading,
onPressed: _handSubmit,
),
),
// Container(
// width: double.infinity,
// margin: EdgeInsets.only(top: 20),
// alignment: Alignment.center,
// child: LoginAgree(
// value: _agree,
// onChanged: (value) {
// setState(() {
// _agree = value!;
// });
// },
// ),
// ),
],
),
),

View File

@@ -1,6 +1,8 @@
import 'package:app/providers/user_store.dart';
import 'package:app/router/route_paths.dart';
import 'package:flutter/material.dart';
import 'package:go_router/go_router.dart';
import 'package:provider/provider.dart';
class SplashPage extends StatefulWidget {
const SplashPage({super.key});
@@ -19,7 +21,24 @@ class _SplashPageState extends State<SplashPage> {
///权限效验初始化
void initPermission() async {
WidgetsBinding.instance.addPostFrameCallback((_) async {
context.go(RoutePaths.login);
String token = await UserStore.getToken();
if (mounted) {
// 未登录
if (token.isEmpty) {
context.go(RoutePaths.login);
} else {
UserStore userStore = context.read<UserStore>();
userStore.setUserInfo();
//去学生主页
if (userStore.userInfo?.accountType == 1) {
context.go(RoutePaths.sHome);
} else {
context.go(RoutePaths.tHome);
}
print("执行用户数据同步了");
userStore.asyncUserInfo();
}
}
});
}