2026-07-01 18:25:58 +08:00

336 lines
11 KiB
Dart
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import 'dart:convert';
import 'package:fluro/fluro.dart';
import 'package:aslan/chatvibe_domain/models/res/login_res.dart';
import 'package:aslan/chatvibe_domain/models/res/room_res.dart';
import 'package:aslan/chatvibe_features/user/fans/fans_user_list_page.dart';
import 'package:aslan/chatvibe_features/settings/language/language_page.dart';
import 'package:aslan/chatvibe_features/report/report_page.dart';
import 'package:aslan/chatvibe_features/task/at_task_list_page.dart';
import 'package:aslan/chatvibe_features/webview/webview_page.dart';
import 'package:aslan/chatvibe_core/routes/at_router_init.dart';
import 'package:aslan/chatvibe_features/admin/editing/editing_user_room_page.dart';
import 'package:aslan/chatvibe_features/admin/search/edit_room_search_admin_page.dart';
import 'package:aslan/chatvibe_features/admin/search/edit_user_search_admin_page.dart';
import 'package:aslan/chatvibe_features/user/profile/person_detail_page.dart';
import 'package:aslan/chatvibe_features/user/profile/relation/cp/cp_list_page.dart';
import 'package:aslan/chatvibe_features/room/inv_game/inv_game_page.dart';
import 'package:aslan/chatvibe_features/search/at_search_page.dart';
import 'package:aslan/chatvibe_features/media/image_preview_page.dart';
import 'package:aslan/chatvibe_features/media/video_player_page.dart';
import 'package:aslan/chatvibe_features/webview/game_bs_webview_page.dart';
import 'package:aslan/chatvibe_features/webview/game_lx_webview_page.dart';
import 'package:aslan/chatvibe_features/webview/game_ry_webview_page.dart';
import 'package:aslan/chatvibe_features/webview/game_ym_webview_page.dart';
import 'package:aslan/chatvibe_features/home/honor/honor_list_page.dart';
import 'package:aslan/chatvibe_features/home/medals/medals_list_page.dart';
import 'package:aslan/chatvibe_features/home/vip/vip_list_page.dart';
import 'package:aslan/chatvibe_features/user/follow/follow_user_list_page.dart';
import 'package:aslan/chatvibe_features/user/level/level_page.dart';
import 'package:aslan/chatvibe_features/user/visitor/visitor_user_list_page.dart';
import '../chat/message/at_message_page.dart';
import '../home/medals_honor/medals_honor_list_page.dart';
import '../user/edit/edit_user_info_page2.dart';
class MainRoute implements ATIRouterProvider {
static String report = '/at/main/report';
static String person = '/at/main/person';
static String edit = '/at/main/person/edit';
static String follow = '/at/main/me/follow';
static String vistors = '/at/main/me/vistors';
static String fans = '/at/main/me/fans';
static String mainSearch = '/at/main/at/mainSearch';
static String cpList = '/at/main/person/cp/cpList';
static String language = '/at/main/language';
static String medalsList = '/at/main/medalsList';
static String medalsHonorListPage = '/at/main/medalsHonorListPage';
static String vipList = '/at/main/vipList';
static String levelList = '/level/levelList';
static String videoPlayer = '/at/main/videoPlayer';
static String imagePreview = '/at/main/imagePreview';
static String taskList = '/at/main/taskList';
static String honorList = '/at/main/honorList';
static String invGamePage = '/at/main/invGamePage';
static String message = '/at/main/messagePage';
static String editRoomSearchAdmin = '/at/main/editRoomSearchAdmin';
static String editUserSearchAdmin = '/at/main/editUserSearchAdmin';
static String editingUserRoomAdmin = '/at/main/editingUserRoomAdmin';
static String webViewPage = '/at/main/webViewPage';
static String gameBsWebviewPage = '/at/main/gameBsWebviewPage';
static String gameRyWebviewPage = '/at/main/gameRyWebviewPage';
static String gameLxWebviewPage = '/at/main/gameLxWebviewPage';
static String gameYmWebviewPage = '/at/main/gameYmWebviewPage';
@override
void initRouter(FluroRouter router) {
router.define(
report,
handler: Handler(
handlerFunc:
(_, params) =>
ReportPage(
type: params['type']!.first,
tageId: params['tageId']!.first,
),
),
);
router.define(
person,
handler: Handler(
handlerFunc:
(_, params) =>
PersonDetailPage(
isMe: params['isMe']!.first,
tageId: params['tageId']!.first,
),
),
);
router.define(
mainSearch,
handler: Handler(handlerFunc: (_, params) => SearchPage()),
);
router.define(
message,
handler: Handler(
handlerFunc: (_, Map<String, List<String>> params) {
String? isFromRoom = params['isFromRoom']?.first;
return ATMessagePage(isFromRoom: isFromRoom == "true");
},
),
);
router.define(
cpList,
handler: Handler(handlerFunc: (_, params) => CpListPage()),
);
router.define(
language,
handler: Handler(handlerFunc: (_, params) => LanguagePage()),
);
router.define(
edit,
handler: Handler(handlerFunc: (_, params) => EditUserInfoPage2()),
);
router.define(
follow,
handler: Handler(
handlerFunc:
(_, params) => FollowUserListPage(
removePreviousPersonDetail:
params['removePreviousPersonDetail']?.first == 'true',
),
),
);
router.define(
vistors,
handler: Handler(
handlerFunc:
(_, params) => VisitorUserListPage(
removePreviousPersonDetail:
params['removePreviousPersonDetail']?.first == 'true',
),
),
);
router.define(
fans,
handler: Handler(
handlerFunc:
(_, params) => FansUserListPage(
removePreviousPersonDetail:
params['removePreviousPersonDetail']?.first == 'true',
),
),
);
router.define(
medalsList,
handler: Handler(handlerFunc: (_, params) => MedalsListPage()),
);
router.define(
vipList,
handler: Handler(handlerFunc: (_, params) => VipListPage()),
);
router.define(
levelList,
handler: Handler(handlerFunc: (_, params) => LevelPage()),
);
router.define(
taskList,
handler: Handler(handlerFunc: (_, params) => ATTaskListPage()),
);
router.define(
honorList,
handler: Handler(handlerFunc: (_, params) => HonorListPage()),
);
router.define(
editRoomSearchAdmin,
handler: Handler(handlerFunc: (_, params) => EditRoomSearchAdminPage()),
);
router.define(
editUserSearchAdmin,
handler: Handler(handlerFunc: (_, params) => EditUserSearchAdminPage()),
);
router.define(
invGamePage,
handler: Handler(handlerFunc: (_, params) => InvGamePage()),
);
router.define(
videoPlayer,
handler: Handler(
handlerFunc: (_, Map<String, List<String>> params) {
String? rawUrl = params['videoUrl']?.first;
String decodedVideoUrl =
rawUrl != null ? Uri.decodeComponent(rawUrl) : "";
return VideoPlayerPage(videoUrl: decodedVideoUrl);
},
),
);
router.define(
imagePreview,
handler: Handler(
handlerFunc: (_, Map<String, List<String>> params) {
List<String> imageUrls = [];
int initialIndex = 0;
try {
// 解析 imageUrls 参数JSON 字符串)
if (params['imageUrls'] != null &&
params['imageUrls']!.isNotEmpty) {
String encodedUrls = params['imageUrls']!.first;
String decodedUrls = Uri.decodeComponent(encodedUrls);
List<dynamic> urlList = jsonDecode(decodedUrls);
imageUrls = urlList.map((item) => item.toString()).toList();
}
// 解析 initialIndex
if (params['initialIndex'] != null &&
params['initialIndex']!.isNotEmpty) {
initialIndex = int.tryParse(params['initialIndex']!.first) ?? 0;
}
} catch (e) {
print('解析图片预览参数失败: $e');
// 可以返回错误页面或默认页面
}
return ImagePreviewPage(
imageUrls: imageUrls,
initialIndex: initialIndex,
);
},
),
);
router.define(
editingUserRoomAdmin,
handler: Handler(
handlerFunc: (_, Map<String, List<String>> params) {
String? type = params['type']?.first;
String? profileJson = params['profile']?.first;
ChatVibeUserProfile? userProfile;
ChatVibeRoomRes? roomProfile;
if (type == "User") {
userProfile = ChatVibeUserProfile.fromJson(
jsonDecode(profileJson ?? ""),
);
} else {
roomProfile = ChatVibeRoomRes.fromJson(
jsonDecode(profileJson ?? ""),
);
}
return EditingUserRoomPage(
type: type ?? "",
userProfile: userProfile,
roomProfile: roomProfile,
);
},
),
);
router.define(
webViewPage,
handler: Handler(
handlerFunc: (_, params) {
String? url = params['url']?.first;
String decodedUrl = url != null ? Uri.decodeComponent(url) : "";
return WebViewPage(
title: params['title']?.first ?? "",
url: decodedUrl,
showTitle: params['showTitle']?.first ?? "",
);
},
),
);
router.define(
gameBsWebviewPage,
handler: Handler(
handlerFunc: (_, params) {
String? url = params['url']?.first;
String decodedUrl = url != null ? Uri.decodeComponent(url) : "";
return GameBsWebviewPage(
url: decodedUrl,
height: double.parse(params['height']?.first ?? "0"),
width: double.parse(params['width']?.first ?? "0"),
gameId:params['gameId']?.first??"",
);
},
),
);
router.define(
gameRyWebviewPage,
handler: Handler(
handlerFunc: (_, params) {
String? url = params['url']?.first;
String decodedUrl = url != null ? Uri.decodeComponent(url) : "";
return GameRyWebviewPage(
url: decodedUrl,
height: double.parse(params['height']?.first ?? "0"),
width: double.parse(params['width']?.first ?? "0"),
gameId:params['gameId']?.first??"",
);
},
),
);
router.define(
gameLxWebviewPage,
handler: Handler(
handlerFunc: (_, params) {
String? url = params['url']?.first;
String decodedUrl = url != null ? Uri.decodeComponent(url) : "";
return GameLxWebviewPage(
url: decodedUrl,
height: double.parse(params['height']?.first ?? "0"),
width: double.parse(params['width']?.first ?? "0"),
gameId:params['gameId']?.first??"",
);
},
),
);
router.define(
gameYmWebviewPage,
handler: Handler(
handlerFunc: (_, params) {
String? url = params['url']?.first;
String decodedUrl = url != null ? Uri.decodeComponent(url) : "";
return GameYmWebviewPage(
url: decodedUrl,
height: double.parse(params['height']?.first ?? "0"),
width: double.parse(params['width']?.first ?? "0"),
gameId:params['gameId']?.first??"",
);
},
),
);
router.define(
medalsHonorListPage,
handler: Handler(handlerFunc: (_, params) => MedalsHonorListPage()),
);
}
}