Files
DMZJ_F/lib/routes/app_pages.dart
2026-03-07 17:24:59 +08:00

282 lines
9.8 KiB
Dart

import 'package:flutter/material.dart';
import 'package:flutter_dmzj/modules/comic/author_detail/author_detail_page.dart';
import 'package:flutter_dmzj/modules/comic/category_detail/category_detail_page.dart';
import 'package:flutter_dmzj/modules/comic/detail/comic_detail_page.dart';
import 'package:flutter_dmzj/modules/comic/home/comic_home_controller.dart';
import 'package:flutter_dmzj/modules/comic/reader/comic_reader_controller.dart';
import 'package:flutter_dmzj/modules/comic/reader/comic_reader_page.dart';
import 'package:flutter_dmzj/modules/comic/search/comic_search_page.dart';
import 'package:flutter_dmzj/modules/comic/select_chapter/comic_select_chapter_page.dart';
import 'package:flutter_dmzj/modules/comic/special_detail/special_detail_page.dart';
import 'package:flutter_dmzj/modules/common/comment/add_comment_page.dart';
import 'package:flutter_dmzj/modules/common/comment/comment_page.dart';
import 'package:flutter_dmzj/modules/common/download/comic/comic_download_page.dart';
import 'package:flutter_dmzj/modules/common/download/comic/comic_downloaded_detail_page.dart';
import 'package:flutter_dmzj/modules/common/download/novel/novel_download_page.dart';
import 'package:flutter_dmzj/modules/common/download/novel/novel_downloaded_detail_page.dart';
import 'package:flutter_dmzj/modules/common/empty_page.dart';
import 'package:flutter_dmzj/modules/common/test_subroute_page.dart';
import 'package:flutter_dmzj/modules/common/webview/webview_page.dart';
import 'package:flutter_dmzj/modules/index/index_controller.dart';
import 'package:flutter_dmzj/modules/index/index_page.dart';
import 'package:flutter_dmzj/modules/news/detail/news_detail_page.dart';
import 'package:flutter_dmzj/modules/novel/category_detail/novel_category_detail_page.dart';
import 'package:flutter_dmzj/modules/novel/detail/novel_detail_page.dart';
import 'package:flutter_dmzj/modules/novel/reader/novel_reader_controller.dart';
import 'package:flutter_dmzj/modules/novel/reader/novel_reader_page.dart';
import 'package:flutter_dmzj/modules/novel/search/novel_search_page.dart';
import 'package:flutter_dmzj/modules/novel/select_chapter/novel_select_chapter_page.dart';
import 'package:flutter_dmzj/modules/user/comment/user_comment_page.dart';
import 'package:flutter_dmzj/modules/user/history/user_history_page.dart';
import 'package:flutter_dmzj/modules/user/local_favorite/local_favorite_page.dart';
import 'package:flutter_dmzj/modules/user/local_history/local_history_page.dart';
import 'package:flutter_dmzj/modules/user/settings/settings_page.dart';
import 'package:flutter_dmzj/modules/user/subscribe/user_subscribe_pgae.dart';
import 'package:flutter_dmzj/modules/user/user_home_controller.dart';
import 'package:flutter_dmzj/routes/route_path.dart';
import 'package:flutter_dmzj/services/comic_download_service.dart';
import 'package:flutter_dmzj/services/novel_download_service.dart';
import 'package:get/get.dart';
class AppPages {
AppPages._();
static const kIndex = RoutePath.kIndex;
static final routes = [
GetPage(
name: RoutePath.kIndex,
page: () => const IndexPage(),
bindings: [
BindingsBuilder.put(
() => IndexController(),
),
BindingsBuilder.put(
() => ComicHomeController(),
),
BindingsBuilder.put(
() => UserHomeController(),
),
],
),
GetPage(
name: RoutePath.kComicReader,
page: () => const ComicReaderPage(),
binding: BindingsBuilder.put(
() => ComicReaderController(
comicId: Get.arguments["comicId"],
comicTitle: Get.arguments["comicTitle"],
comicCover: Get.arguments["comicCover"],
chapters: Get.arguments["chapters"],
chapter: Get.arguments["chapter"],
isLongComic: Get.arguments["isLongComic"] ?? false,
),
),
),
GetPage(
name: RoutePath.kNovelReader,
page: () => const NovelReaderPage(),
binding: BindingsBuilder.put(
() => NovelReaderController(
novelId: Get.arguments["novelId"],
novelTitle: Get.arguments["novelTitle"],
novelCover: Get.arguments["novelCover"],
chapters: Get.arguments["chapters"],
chapter: Get.arguments["chapter"],
),
),
),
];
/// 定义子路由
static Route<dynamic>? generateSubRoute(RouteSettings settings) {
switch (settings.name) {
case "/":
return GetPageRoute(
settings: settings,
page: () => const EmptyPage(),
);
case RoutePath.kTestSubRoute:
return GetPageRoute(
settings: settings,
transition: Transition.native,
page: () => const TestSubRoutePage(),
);
case RoutePath.kNewsDetail:
var parameter = settings.arguments as Map;
return GetPageRoute(
settings: settings,
page: () => NewsDetailPage(
title: parameter["title"],
newsUrl: parameter["newsUrl"],
newsId: parameter["newsId"],
),
);
case RoutePath.kComment:
var parameter = settings.arguments as Map;
return GetPageRoute(
settings: settings,
page: () => CommentPage(
objId: parameter["objId"],
type: parameter["type"],
),
);
case RoutePath.kCommentAdd:
var parameter = settings.arguments as Map;
return GetPageRoute(
settings: settings,
page: () => AddCommentPage(
objId: parameter["objId"],
type: parameter["type"],
replyItem: parameter["replyItem"],
),
);
case RoutePath.kWebView:
return GetPageRoute(
settings: settings,
page: () => WebViewPage(
url: settings.arguments.toString(),
),
);
case RoutePath.kComicCategoryDetail:
return GetPageRoute(
settings: settings,
page: () => CategoryDetailPage(
settings.arguments as int,
),
);
case RoutePath.kSpecialDetail:
return GetPageRoute(
settings: settings,
page: () => SpecialDetailPage(
settings.arguments as int,
),
);
case RoutePath.kComicAuthorDetail:
return GetPageRoute(
settings: settings,
page: () => ComicAuthorDetailPage(
settings.arguments as int,
),
);
case RoutePath.kComicDetail:
return GetPageRoute(
settings: settings,
page: () => ComicDetailPage(
settings.arguments as int,
),
);
case RoutePath.kComicSearch:
return GetPageRoute(
settings: settings,
page: () => ComicSearchPage(
keyword: settings.arguments.toString(),
),
);
case RoutePath.kNovelSearch:
return GetPageRoute(
settings: settings,
page: () => NovelSearchPage(
keyword: settings.arguments.toString(),
),
);
case RoutePath.kNovelCategoryDetail:
return GetPageRoute(
settings: settings,
page: () => NovelCategoryDetailPage(
settings.arguments as int,
),
);
case RoutePath.kUserSubscribe:
return GetPageRoute(
settings: settings,
page: () => UserSubscribePage(
type: settings.arguments as int,
),
);
case RoutePath.kUserHistory:
return GetPageRoute(
settings: settings,
page: () => UserHistoryPage(
type: settings.arguments as int,
),
);
case RoutePath.kLocalHistory:
return GetPageRoute(
settings: settings,
page: () => LocalHistoryPage(
type: settings.arguments as int,
),
);
case RoutePath.kSettings:
return GetPageRoute(
settings: settings,
page: () => SettingsPage(
index: settings.arguments as int,
),
);
case RoutePath.kNovelDetail:
return GetPageRoute(
settings: settings,
page: () => NovelDetailPage(
settings.arguments as int,
),
);
case RoutePath.kComicDownloadSelect:
return GetPageRoute(
settings: settings,
page: () => ComicSelectChapterPage(
settings.arguments as int,
),
);
case RoutePath.kComicDownload:
return GetPageRoute(
settings: settings,
page: () => ComicDownloadPage(
settings.arguments as int,
),
);
case RoutePath.kComicDownloadDetail:
return GetPageRoute(
settings: settings,
page: () => ComicDownloadedDetailPage(
settings.arguments as ComicDownloadedItem,
),
);
case RoutePath.kNovelDownloadSelect:
return GetPageRoute(
settings: settings,
page: () => NovelSelectChapterPage(
settings.arguments as int,
),
);
case RoutePath.kNovelDownload:
return GetPageRoute(
settings: settings,
page: () => NovelDownloadPage(
settings.arguments as int,
),
);
case RoutePath.kNovelDownloadDetail:
return GetPageRoute(
settings: settings,
page: () => NovelDownloadedDetailPage(
settings.arguments as NovelDownloadedItem,
),
);
case RoutePath.kUserComment:
return GetPageRoute(
settings: settings,
page: () => UserCommentPage(
settings.arguments as int,
),
);
case RoutePath.kLocalFavorite:
return GetPageRoute(
settings: settings,
page: () => LocalFavoritePage(),
);
default:
return GetPageRoute(page: () => const EmptyPage());
}
}
}