ar_tourism_flutter_unity/lib/router/index.dart
2025-05-14 17:04:13 +08:00

113 lines
4.5 KiB
Dart

import '../pages/center/centerPage.dart';
import '../pages/home/infoDetail.dart';
import '../pages/home/more.dart';
import '../pages/home/otherMine.dart';
import '../pages/login/login.dart';
import '../pages/login/register.dart';
import '../pages/login/login_code.dart';
import '../pages/login/forget_pwd.dart';
import '../pages/login/resetPwd.dart';
import '../pages/login/successPage.dart';
import '../pages/message/guanZhu.dart';
import '../pages/message/messageDetail.dart';
import '../pages/message/recieveLike.dart';
import '../pages/mine/account.dart';
import '../pages/mine/changeBackground.dart';
import '../pages/mine/clip.dart';
import '../pages/mine/drafts.dart';
import '../pages/mine/historyDetail.dart';
import '../pages/mine/like.dart';
import '../pages/mine/help/help.dart';
import '../pages/mine/history.dart';
import '../pages/mine/realName.dart';
import '../pages/mine/setting/aboutUs.dart';
import '../pages/mine/setting/checkAuthentication.dart';
import '../pages/mine/setting/myInfo.dart';
import '../pages/mine/setting/setting.dart';
import '../pages/mine/show.dart';
import '../pages/mine/work/workEdit.dart';
import '../pages/mine/work/works.dart';
import '../pages/mine/work/worksDetail.dart';
import '../pages/publish/choiceWorks.dart';
import '../pages/publish/orderDetail.dart';
import '../pages/publish/pay.dart';
import 'package:flutter/cupertino.dart';
import '../pages/tabs/tabs.dart';
// 配置路由
// 1.配置路由
Map routes = {
"/tabs": (context, {arguments}) => Tabs(
initialIndex: arguments != null && arguments is Map<String, dynamic>
? arguments['initialIndex']
: 0,
),
"/login": (context) => const LoginPage(),
"/register": (context) => const RegisterPage(),
"/login-code": (context, {arguments}) => LoginCodePage(arguments: arguments),
"/forget-pwd": (context, {arguments}) => ForgetPwdPage(arguments: arguments),
"/reset-pwd": (context, {arguments}) => ResetPwdPage(argument: arguments),
"/more": (context) => const MorePage(),
"/history": (context) => const HistoryPage(),
"/account": (context) => const AccountPage(),
"/drafts": (context) => const DraftsPage(),
"/choiceWorks": (context, {arguments}) =>
ChoiceWorksPage(data: arguments),
"/help": (context) => const HelpPage(),
"/setting": (context, {arguments}) => SettingPage(userInfo: arguments),
"/show": (context) => const ShowPage(),
"/infoDetail": (context, {arguments}) =>
InfoDetailPage( arguments: arguments),
"/otherMine": (context,{arguments}) => OtherMinePage(work: arguments),
"/center": (context) => const CenterPage(),
"/like": (context, {arguments}) => LikePage(initialTabIndex: arguments),
"/works": (context) => const WorksPage(),
"/historyDetail": (context, {arguments}) =>
HistoryDetailPage(order: arguments),
"/realName": (context) => const RealNamePage(),
"/myInfo": (context, {arguments}) => MyInfoPage(userInfo: arguments),
"/aboutUs": (context) => const AboutUsPage(),
"/change": (context, {arguments}) =>
ChangeBackgroundPage(imagePath: arguments),
"/checkAuthentication": (context) => const CheckAuthenticationPage(),
"/worksDetail": (context, {arguments}) => WorksDetailPage(id: arguments['id'],type: arguments['type']),
"/workEdit": (context, {arguments}) => WorkEditPage(draft: arguments),
"/clip": (context, {arguments}) => ClipPage(arguments: arguments),
"/messageDetail": (context, {arguments}) =>
MessageDetailPage(id: arguments),
'/guanZhu': (context) => GuanZhuPage(),
'/recevieLike': (context) => ReceiveLikePage(),
'/pay': (context, {arguments}) => PayPage(orderId: arguments['orderId'],totalPrice: arguments['totalPrice']),
'/orderDetail': (context, {arguments}) {
return OrderDetailPage(orderId: arguments);
},
'/success': (context, {arguments}) => SuccessPage(argument: arguments),
};
// 2.配置onGenerateRoute
var onGenerateRoute = (RouteSettings settings) {
// 统一处理
final String? name = settings.name;
///news 或者 /search
final Function? pageContentBuilder =
routes[name]; //Function (context) => const NewsPages()
if (pageContentBuilder != null) {
if (settings.arguments != null) {
// 2.MaterialPageRoute替换为CupertinoPageRoute
final Route route = CupertinoPageRoute(
builder: (context) =>
pageContentBuilder(context, arguments: settings.arguments));
return route;
} else {
final Route route = CupertinoPageRoute(
builder: (context) => pageContentBuilder(context),
);
return route;
}
}
return null;
};