gcx/frontend/admin-app/lib/app/router.dart

69 lines
3.1 KiB
Dart

import 'package:flutter/material.dart';
import '../features/auth/presentation/pages/issuer_login_page.dart';
import '../features/onboarding/presentation/pages/onboarding_page.dart';
import '../features/dashboard/presentation/pages/issuer_dashboard_page.dart';
import '../features/coupon_management/presentation/pages/coupon_list_page.dart';
import '../features/coupon_management/presentation/pages/create_coupon_page.dart';
import '../features/coupon_management/presentation/pages/coupon_detail_page.dart';
import '../features/redemption/presentation/pages/redemption_page.dart';
import '../features/finance/presentation/pages/finance_page.dart';
import '../features/credit/presentation/pages/credit_page.dart';
import '../features/ai_agent/presentation/pages/ai_agent_page.dart';
import '../features/settings/presentation/pages/settings_page.dart';
import '../features/store_management/presentation/pages/store_management_page.dart';
import '../app/issuer_main_shell.dart';
/// 发行方App路由配置
class AppRouter {
static const String splash = '/';
static const String login = '/login';
static const String onboarding = '/onboarding';
static const String main = '/main';
static const String couponList = '/coupons';
static const String createCoupon = '/coupons/create';
static const String couponDetail = '/coupons/detail';
static const String redemption = '/redemption';
static const String finance = '/finance';
static const String credit = '/credit';
static const String aiAgent = '/ai-agent';
static const String settings = '/settings';
static const String storeManagement = '/stores';
static Route<dynamic> generateRoute(RouteSettings routeSettings) {
switch (routeSettings.name) {
case splash:
case login:
return MaterialPageRoute(builder: (_) => const IssuerLoginPage());
case onboarding:
return MaterialPageRoute(builder: (_) => const OnboardingPage());
case main:
return MaterialPageRoute(builder: (_) => const IssuerMainShell());
case couponList:
return MaterialPageRoute(builder: (_) => const CouponListPage());
case createCoupon:
return MaterialPageRoute(builder: (_) => const CreateCouponPage());
case couponDetail:
final couponId = routeSettings.arguments as String?;
return MaterialPageRoute(builder: (_) => IssuerCouponDetailPage(couponId: couponId));
case redemption:
return MaterialPageRoute(builder: (_) => const RedemptionPage());
case finance:
return MaterialPageRoute(builder: (_) => const FinancePage());
case credit:
return MaterialPageRoute(builder: (_) => const CreditPage());
case aiAgent:
return MaterialPageRoute(builder: (_) => const AiAgentPage());
case settings:
return MaterialPageRoute(builder: (_) => const SettingsPage());
case storeManagement:
return MaterialPageRoute(builder: (_) => const StoreManagementPage());
default:
return MaterialPageRoute(
builder: (_) => Scaffold(
body: Center(child: Text('Route not found: ${routeSettings.name}')),
),
);
}
}
}