flutter_integrated_whb/lib/pages/mine/mine_set_page.dart

117 lines
3.8 KiB
Dart
Raw Normal View History

2025-07-11 11:03:21 +08:00
import 'package:flutter/material.dart';
2025-07-17 16:10:46 +08:00
import 'package:qhd_prevention/pages/home/study/face_ecognition_page.dart';
2025-07-11 11:03:21 +08:00
import 'package:qhd_prevention/pages/login_page.dart';
import 'package:qhd_prevention/pages/mine/mine_first_sign_page.dart';
2025-07-11 11:03:21 +08:00
import 'package:qhd_prevention/pages/mine/mine_set_pwd_page.dart';
import 'package:qhd_prevention/pages/mine/mine_sign_page.dart';
2025-07-11 11:03:21 +08:00
import 'package:qhd_prevention/pages/my_appbar.dart';
import 'package:qhd_prevention/tools/h_colors.dart';
import 'package:shared_preferences/shared_preferences.dart';
import '../../tools/tools.dart';
class MineSetPage extends StatelessWidget {
const MineSetPage({super.key});
Future<void> _clearUserSession() async {
final prefs = await SharedPreferences.getInstance();
await prefs.remove('isLoggedIn'); // 清除登录状态
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: MyAppbar(title: "设置"),
backgroundColor: h_backGroundColor(),
body: Column(
children: [
GestureDetector(
child: _setItemWidget("修改密码"),
onTap: () {
pushPage(MineSetPwdPage(), context);
},
),
2025-07-17 16:10:46 +08:00
Divider(height: 1, color: Colors.black12),
GestureDetector(
child: _setItemWidget("更新人脸信息"),
onTap: () {
pushPage(FaceRecognitionPage(studentId: '', mode: FaceMode.manual,), context);
},
),
2025-07-11 11:03:21 +08:00
Divider(height: 1, color: Colors.black12),
GestureDetector(
child: _setItemWidget("更新签字信息"),
onTap: () {
pushPage(FirstSignPage(), context);
// pushPage(MineSignPage(), context);
}
),
2025-07-11 11:03:21 +08:00
Divider(height: 1, color: Colors.black12),
GestureDetector(child: _setItemWidget("检查更新"), onTap: () {}),
SizedBox(height: 15),
GestureDetector(
child: Container(
padding: EdgeInsets.symmetric(vertical: 15),
color: Colors.white,
child: Center(child: Text("退出当前账户", style: TextStyle(fontSize: 16),)),
),
onTap: () async {
// 显示确认对话框
bool? confirm = await showDialog(
context: context,
builder: (context) => AlertDialog(
title: Text("确认退出"),
content: Text("确定要退出当前账号吗?"),
actions: [
TextButton(
onPressed: () => Navigator.pop(context, false),
child: Text("取消"),
),
TextButton(
onPressed: () => Navigator.pop(context, true),
child: Text("确定", style: TextStyle(color: Colors.red)),
),
],
),
);
if (confirm == true) {
// 清除用户登录状态
await _clearUserSession();
// 跳转到登录页并清除所有历史路由
Navigator.pushAndRemoveUntil(
context,
MaterialPageRoute(builder: (context) => LoginPage()),
(Route<dynamic> route) => false, // 移除所有历史路由
);
}
},
),
],
),
);
}
Widget _setItemWidget(final String text) {
return Container(
height: 55,
color: Colors.white,
child: Padding(
padding: EdgeInsets.all(15),
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Text(text, style: TextStyle(fontSize: 16)),
Icon(Icons.chevron_right),
],
),
),
);
}
}