import 'package:flutter/material.dart'; import '../../../../app/theme/app_colors.dart'; import '../../../../app/router.dart'; /// 发行方设置页面(我的) /// /// 企业信息、门店管理、员工管理、专属客服、安全设置 class SettingsPage extends StatelessWidget { const SettingsPage({super.key}); @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar(title: const Text('我的')), body: SingleChildScrollView( child: Column( children: [ // Profile Card _buildProfileCard(context), // Tier & Benefits _buildTierCard(context), const SizedBox(height: 8), // Menu Groups _buildMenuGroup('企业管理', [ _MenuItem('企业信息', Icons.business_rounded, () { // TODO: Navigate to company info page when available }), _MenuItem('门店管理', Icons.store_rounded, () { Navigator.pushNamed(context, AppRouter.storeManagement); }), _MenuItem('员工管理', Icons.people_rounded, () { Navigator.pushNamed(context, AppRouter.storeManagement); }), _MenuItem('权限设置', Icons.admin_panel_settings_rounded, () { // TODO: Navigate to permissions page when available }), ]), _buildMenuGroup('服务支持', [ _MenuItem('AI 助手', Icons.auto_awesome_rounded, () { Navigator.pushNamed(context, AppRouter.aiAgent); }), _MenuItem('专属客服', Icons.headset_mic_rounded, () { // TODO: Navigate to customer service page when available }), _MenuItem('帮助中心', Icons.help_outline_rounded, () { // TODO: Navigate to help center page when available }), _MenuItem('意见反馈', Icons.feedback_rounded, () { // TODO: Navigate to feedback page when available }), ]), _buildMenuGroup('安全与账号', [ _MenuItem('修改密码', Icons.lock_outline_rounded, () { // TODO: Navigate to change password page when available }), _MenuItem('操作日志', Icons.history_rounded, () { // TODO: Navigate to operation log page when available }), _MenuItem('关于 Genex', Icons.info_outline_rounded, () { // TODO: Navigate to about page when available }), ]), // Logout Padding( padding: const EdgeInsets.all(20), child: SizedBox( width: double.infinity, child: OutlinedButton( onPressed: () { Navigator.pushNamedAndRemoveUntil(context, AppRouter.login, (_) => false); }, style: OutlinedButton.styleFrom( foregroundColor: AppColors.error, side: const BorderSide(color: AppColors.error), ), child: const Text('退出登录'), ), ), ), ], ), ), ); } Widget _buildProfileCard(BuildContext context) { return Container( padding: const EdgeInsets.fromLTRB(20, 20, 20, 16), color: AppColors.surface, child: Row( children: [ Container( width: 56, height: 56, decoration: BoxDecoration( gradient: AppColors.primaryGradient, borderRadius: BorderRadius.circular(14), ), child: const Icon(Icons.storefront_rounded, color: Colors.white, size: 28), ), const SizedBox(width: 14), const Expanded( child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ Text('Starbucks China', style: TextStyle(fontSize: 18, fontWeight: FontWeight.w700)), SizedBox(height: 4), Text('管理员:张经理', style: TextStyle(fontSize: 13, color: AppColors.textSecondary)), ], ), ), const Icon(Icons.chevron_right_rounded, color: AppColors.textTertiary), ], ), ); } Widget _buildTierCard(BuildContext context) { return Container( margin: const EdgeInsets.fromLTRB(20, 12, 20, 0), padding: const EdgeInsets.all(16), decoration: BoxDecoration( gradient: const LinearGradient( colors: [Color(0xFFFFF7E6), Color(0xFFFFECC7)], ), borderRadius: BorderRadius.circular(12), ), child: Row( children: [ const Icon(Icons.star_rounded, color: AppColors.tierGold, size: 28), const SizedBox(width: 12), const Expanded( child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ Text('黄金发行方', style: TextStyle(fontSize: 15, fontWeight: FontWeight.w700, color: AppColors.tierGold)), Text('手续费率 1.2% · 高级数据分析', style: TextStyle(fontSize: 12, color: AppColors.textSecondary)), ], ), ), TextButton( onPressed: () { Navigator.pushNamed(context, AppRouter.credit); }, child: const Text('升级', style: TextStyle(color: AppColors.tierGold)), ), ], ), ); } Widget _buildMenuGroup(String title, List<_MenuItem> items) { return Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ Padding( padding: const EdgeInsets.fromLTRB(20, 20, 20, 8), child: Text(title, style: const TextStyle(fontSize: 13, color: AppColors.textTertiary, fontWeight: FontWeight.w500)), ), Container( color: AppColors.surface, child: Column( children: items.map((item) { return ListTile( leading: Icon(item.icon, color: AppColors.textSecondary, size: 22), title: Text(item.title, style: const TextStyle(fontSize: 15)), trailing: const Icon(Icons.chevron_right_rounded, size: 20, color: AppColors.textTertiary), onTap: item.onTap, ); }).toList(), ), ), ], ); } } class _MenuItem { final String title; final IconData icon; final VoidCallback onTap; const _MenuItem(this.title, this.icon, this.onTap); }