docs: 删除过时的功能规格文档

feat(ui): 重构资产页面UI,移除shadcn_ui依赖并简化设计

- 删除三个过时的功能规格文档(apply-new-styles.md、bottom-nav-labels.md、theme-dynamic-colors.md)
- 重构充值页面(deposit_page.dart):移除shadcn_ui依赖,简化表单验证和UI设计,使用动态主题颜色
- 重构划转页面(transfer_page.dart):移除复杂动画和shadcn_ui依赖,简化UI布局和交互逻辑
- 重构提现页面(withdraw_page.dart):移除shadcn_ui依赖,简化表单验证和网络选择器
- 重构我的页面相关组件:统一使用动态主题颜色,简化菜单项设计和KYC状态显示
- 所有页面现在使用Theme.of(context)获取动态颜色,支持明暗主题切换
- 移除硬编码的颜色引用,提高代码可维护性和主题一致性
This commit is contained in:
2026-04-08 01:47:51 +08:00
parent 007915b6f2
commit dc6a8afc9a
13 changed files with 1271 additions and 2074 deletions

View File

@@ -1,19 +1,16 @@
import 'package:flutter/material.dart';
import 'package:shadcn_ui/shadcn_ui.dart';
import 'package:provider/provider.dart';
import '../../../core/theme/app_color_scheme.dart';
import '../../../core/theme/app_spacing.dart';
import '../../../core/theme/app_theme.dart';
import '../../../core/theme/app_spacing.dart';
import '../../../providers/auth_provider.dart';
import '../auth/login_page.dart';
import 'components/about_dialog_helpers.dart';
import 'components/avatar_circle.dart';
import 'components/logout_button.dart';
import 'components/menu_group1.dart';
import 'components/menu_group2.dart';
import 'components/profile_card.dart';
/// 我的頁面 - 匹配 .pen 設計稿
/// 我的页面
class MinePage extends StatefulWidget {
const MinePage({super.key});
@@ -32,7 +29,7 @@ class _MinePageState extends State<MinePage>
final colorScheme = Theme.of(context).colorScheme;
return Scaffold(
backgroundColor: colorScheme.background,
backgroundColor: colorScheme.surface,
body: Consumer<AuthProvider>(
builder: (context, auth, _) {
return SingleChildScrollView(
@@ -55,12 +52,6 @@ class _MinePageState extends State<MinePage>
SizedBox(height: AppSpacing.lg),
LogoutButton(onLogout: () => _handleLogout(auth)),
SizedBox(height: AppSpacing.md),
Text(
'System Build v1.0.0',
style: AppTextStyles.bodySmall(context).copyWith(
color: colorScheme.onSurfaceVariant.withOpacity(0.5),
),
),
],
),
);
@@ -70,21 +61,15 @@ class _MinePageState extends State<MinePage>
}
void _showComingSoon(String feature) {
showShadDialog(
showDialog(
context: context,
builder: (context) => ShadDialog.alert(
title: Row(
children: [
Icon(Icons.construction, color: AppColorScheme.warning, size: 20),
SizedBox(width: AppSpacing.sm),
const Text('功能開發中'),
],
),
description: Text('$feature功能正在開發中,敬請期待~'),
builder: (ctx) => AlertDialog(
title: const Text('功能開發中'),
content: Text('$feature功能正在開發中,敬請期待'),
actions: [
ShadButton(
TextButton(
onPressed: () => Navigator.of(ctx).pop(),
child: const Text('知道了'),
onPressed: () => Navigator.of(context).pop(),
),
],
),
@@ -92,37 +77,29 @@ class _MinePageState extends State<MinePage>
}
void _showAboutDialog() {
final colorScheme = Theme.of(context).colorScheme;
showShadDialog(
showDialog(
context: context,
builder: (context) => ShadDialog(
builder: (ctx) => AlertDialog(
title: Row(
children: [
AvatarCircle(radius: 20, fontSize: 16),
SizedBox(width: AppSpacing.sm + AppSpacing.xs),
AvatarCircle(radius: 16, fontSize: 12),
const SizedBox(width: 8),
const Text('模擬所'),
],
),
child: Column(
content: const Column(
mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(
'虛擬貨幣模擬交易平臺',
style: TextStyle(color: colorScheme.onSurfaceVariant),
),
SizedBox(height: AppSpacing.md),
InfoRow(icon: Icons.code, text: '版本: 1.0.0'),
SizedBox(height: AppSpacing.sm),
InfoRow(
icon: Icons.favorite,
text: 'Built with Flutter & Material Design 3'),
Text('虛擬貨幣模擬交易平臺'),
SizedBox(height: 8),
Text('版本: 1.0.0'),
],
),
actions: [
ShadButton(
child: const Text('確定'),
onPressed: () => Navigator.of(context).pop(),
TextButton(
onPressed: () => Navigator.of(ctx).pop(),
child: const Text('确定'),
),
],
),
@@ -130,18 +107,19 @@ class _MinePageState extends State<MinePage>
}
void _handleLogout(AuthProvider auth) {
showShadDialog(
final colorScheme = Theme.of(context).colorScheme;
showDialog(
context: context,
builder: (ctx) => ShadDialog.alert(
title: const Text('確認退出'),
description: const Text('確定要退出登錄嗎?'),
builder: (ctx) => AlertDialog(
title: const Text('退出登錄'),
content: const Text('確定要退出登錄嗎?'),
actions: [
ShadButton.outline(
child: const Text('取消'),
TextButton(
onPressed: () => Navigator.of(ctx).pop(),
child: Text('取消',
style: TextStyle(color: colorScheme.onSurfaceVariant)),
),
ShadButton.destructive(
child: const Text('退出'),
TextButton(
onPressed: () async {
Navigator.of(ctx).pop();
await auth.logout();
@@ -152,6 +130,8 @@ class _MinePageState extends State<MinePage>
);
}
},
child: Text('退出', style: TextStyle(color: colorScheme.error)),
),
],
),