import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:go_router/go_router.dart'; import 'package:sino_med_cloud/l10n/app_localizations.dart'; import '../../main_tab_provider.dart'; import '../domain/mine_service.dart'; class MinePage extends ConsumerStatefulWidget { const MinePage({super.key}); @override ConsumerState createState() => _MinePageState(); } class _MinePageState extends ConsumerState with SingleTickerProviderStateMixin { @override Widget build(BuildContext context) { final l10n = AppLocalizations.of(context)!; return Scaffold( appBar: AppBar( title: Text(l10n.mine), elevation: 0, ), body: ListView.builder( itemCount: 2, itemBuilder: (BuildContext context, int index) { if (index == 0) { return ListTile( leading: const Icon(Icons.lock_outline), title: Text(l10n.changePassword), trailing: const Icon(Icons.chevron_right), onTap: _handleChangePassword, ); } else if (index == 1) { return ListTile( leading: const Icon(Icons.logout, color: Colors.red), title: Text( l10n.logout, style: const TextStyle(color: Colors.red), ), trailing: const Icon(Icons.chevron_right), onTap: _handleLogout, ); } return const SizedBox.shrink(); }, ), ); } // 退出登录 void _handleLogout() async { await MineService.logout(loginSystem: "YUN_HIS_PC_WEB"); ref.read(currentTabIndexProvider.notifier).state = 0; Future.microtask(() { if (mounted) { context.replace('/'); } }); } void _handleChangePassword() { if (mounted) { context.push('/ChangePassword'); } } }