import 'package:flutter/material.dart'; import 'package:qhd_prevention/customWidget/custom_alert_dialog.dart'; import 'package:qhd_prevention/customWidget/toast_util.dart'; import 'package:qhd_prevention/pages/home/study/face_ecognition_page.dart'; import 'package:qhd_prevention/pages/login_page.dart'; import 'package:qhd_prevention/pages/mine/mine_first_sign_page.dart'; import 'package:qhd_prevention/pages/mine/mine_set_pwd_page.dart'; import 'package:qhd_prevention/pages/my_appbar.dart'; import 'package:qhd_prevention/services/auth_service.dart'; import 'package:qhd_prevention/tools/h_colors.dart'; import 'package:qhd_prevention/tools/update/update_dialogs.dart'; import '../../tools/tools.dart'; class MineSetPage extends StatefulWidget { const MineSetPage({super.key}); @override State createState() => _MineSetPageState(); } class _MineSetPageState extends State { /// 检查更新 Future _checkUpdate() async { LoadingDialogHelper.show(); final result = await AuthService.checkUpdate(); LoadingDialogHelper.hide(); if (FormUtils.hasValue(result, 'pd')) { Map pd = result['pd']; final versionInfo = await getAppVersion(); bool isWifi = true; if (versionInfo.versionName != pd['VERSION']) { //有更新 提示更新 final ok = await CustomAlertDialog.showConfirm( context, barrierDismissible:false, title: '更新通知', content: isWifi ? '发现新版本,是否更新?为了更好的体验,请更新到最新版本。' : '发现新版本,检查到您当前使用的是移动网络,是否更新?更新时请注意流量消耗。为了更好的体验,请更新到最新版本。', cancelText: pd['ISUPDATE'] == '1' ? '' : '稍后更新', confirmText: '立即更新' ); if (ok) { final apkUrl = pd['FILEURL'] ?? ''; await showUpdateConfirm(context, apkUrl: apkUrl); } return; } }else{ _loadAppVersion(); } } Future _loadAppVersion() async { final versionInfo = await getAppVersion(); ToastUtil.showNormal(context, '已经是最新版本!当前版本号:${versionInfo.fullVersion}'); } @override Widget build(BuildContext context) { return Scaffold( appBar: MyAppbar(title: "设置"), backgroundColor: h_backGroundColor(), body: Column( children: [ GestureDetector( child: _setItemWidget("修改密码"), onTap: () { pushPage(const MineSetPwdPage("0"), context); }, ), const Divider(height: 1, color: Colors.black12), GestureDetector( child: _setItemWidget("更新人脸信息"), onTap: () { pushPage( const FaceRecognitionPage(studentId: '',data: {}, mode: FaceMode.setUpdata), context, ); }, ), const Divider(height: 1, color: Colors.black12), GestureDetector( child: _setItemWidget("更新签字信息"), onTap: () { pushPage(const FirstSignPage(), context); // pushPage(MineSignPage(), context); }, ), const Divider(height: 1, color: Colors.black12), GestureDetector( child: _setItemWidget("检查更新"), onTap: () { _checkUpdate(); }, ), const SizedBox(height: 15), GestureDetector( child: Container( padding: const EdgeInsets.symmetric(vertical: 15), color: Colors.white, child: const Center( child: Text("退出当前账户", style: TextStyle(fontSize: 14)), ), ), onTap: () async { CustomAlertDialog.showConfirm( context, title: '确认退出', content: '确定要退出当前账号吗', onConfirm: () async { await AuthService.logout(); // ✅ 等待登出完成 if (!mounted) return; Navigator.pushAndRemoveUntil( context, MaterialPageRoute(builder: (context) => const LoginPage()), (Route route) => false, ); }, ); }, ), ], ), ); } Widget _setItemWidget(final String text) { return Container( height: 55, color: Colors.white, child: Padding( padding: const EdgeInsets.all(15), child: Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ Text(text, style: const TextStyle(fontSize: 14)), const Icon(Icons.chevron_right), ], ), ), ); } }