import 'package:flutter/material.dart'; import 'package:go_router/go_router.dart'; import '../../../../core/theme/design_tokens.dart'; import '../../../../shared/widgets/app_toggle_switch.dart'; import '../widgets/settings_page_scaffold.dart'; class FeaturesScreen extends StatefulWidget { const FeaturesScreen({super.key}); @override State createState() => _FeaturesScreenState(); } class _FeaturesScreenState extends State { bool _dailyReminderEnabled = true; bool _dailySummaryEnabled = false; bool _weeklyReportEnabled = true; bool _weeklyDigestEnabled = false; @override Widget build(BuildContext context) { return SettingsPageScaffold( title: '周期计划', onBack: () => context.pop(), body: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ _buildSectionTitle('每日'), const SizedBox(height: 8), _buildDailyList(), const SizedBox(height: 16), _buildSectionTitle('每周'), const SizedBox(height: 8), _buildWeeklyList(), ], ), ); } Widget _buildSectionTitle(String title) { return Text( title, style: const TextStyle( fontSize: 13, fontWeight: FontWeight.w600, color: AppColors.slate500, ), ); } Widget _buildDailyList() { return Column( crossAxisAlignment: CrossAxisAlignment.stretch, children: [ _buildFeatureCard( icon: Icons.alarm, iconColor: const Color(0xFF14B8A6), iconBg: const Color(0xFFECFEFF), iconBorder: const Color(0xFFC9F4F2), title: '会议提醒', subtitle: '每次会议前 15 分钟提醒', value: _dailyReminderEnabled, onChanged: (v) => setState(() => _dailyReminderEnabled = v), ), const SizedBox(height: 10), _buildFeatureCard( icon: Icons.summarize, iconColor: const Color(0xFF2563EB), iconBg: const Color(0xFFEEF6FF), iconBorder: const Color(0xFFDCEAFF), title: '每日摘要', subtitle: '每天 18:00 发送当日摘要', value: _dailySummaryEnabled, onChanged: (v) => setState(() => _dailySummaryEnabled = v), ), ], ); } Widget _buildWeeklyList() { return Column( crossAxisAlignment: CrossAxisAlignment.stretch, children: [ _buildFeatureCard( icon: Icons.calendar_view_week, iconColor: AppColors.success, iconBg: const Color(0xFFECFDF5), iconBorder: const Color(0xFFCDEEDC), title: '周报生成', subtitle: '每周一自动生成周报', value: _weeklyReportEnabled, onChanged: (v) => setState(() => _weeklyReportEnabled = v), ), const SizedBox(height: 10), _buildFeatureCard( icon: Icons.article, iconColor: AppColors.warning, iconBg: const Color(0xFFFFF7ED), iconBorder: const Color(0xFFFDE6CD), title: '每周摘要', subtitle: '每周日发送本周活动汇总', value: _weeklyDigestEnabled, onChanged: (v) => setState(() => _weeklyDigestEnabled = v), ), ], ); } Widget _buildFeatureCard({ required IconData icon, required Color iconColor, required Color iconBg, required Color iconBorder, required String title, required String subtitle, required bool value, required ValueChanged onChanged, }) { return Container( padding: const EdgeInsets.all(14), decoration: BoxDecoration( color: AppColors.white, borderRadius: BorderRadius.circular(16), border: Border.all(color: AppColors.borderSecondary), ), child: Row( crossAxisAlignment: CrossAxisAlignment.center, children: [ Container( width: 40, height: 40, decoration: BoxDecoration( color: iconBg, borderRadius: BorderRadius.circular(12), border: Border.all(color: iconBorder), ), child: Icon(icon, size: 18, color: iconColor), ), const SizedBox(width: 12), Expanded( child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ Text( title, style: const TextStyle( fontSize: 15, fontWeight: FontWeight.w600, color: AppColors.slate900, ), ), const SizedBox(height: 4), Text( subtitle, style: const TextStyle( fontSize: 12, fontWeight: FontWeight.normal, color: AppColors.slate500, ), ), ], ), ), AppToggleSwitch(value: value, onChanged: onChanged), ], ), ); } }