2025-07-21 15:46:30 +08:00
|
|
|
/// Getx路由管理
|
|
|
|
library;
|
|
|
|
|
|
|
|
import 'package:flutter/material.dart';
|
|
|
|
import 'package:get/get.dart';
|
2025-08-21 10:50:38 +08:00
|
|
|
import 'package:loopin/bings/chat_binding.dart';
|
2025-07-21 15:46:30 +08:00
|
|
|
import 'package:loopin/pages/chat/chat.dart';
|
2025-08-21 10:50:38 +08:00
|
|
|
import 'package:loopin/pages/chat/chat_group.dart';
|
|
|
|
import 'package:loopin/pages/chat/chat_no_friend.dart';
|
2025-08-26 17:38:59 +08:00
|
|
|
import 'package:loopin/pages/chat/notify/interaction.dart';
|
|
|
|
import 'package:loopin/pages/chat/notify/noFriend.dart';
|
|
|
|
import 'package:loopin/pages/chat/notify/system.dart';
|
2025-09-09 10:57:52 +08:00
|
|
|
import 'package:loopin/pages/groupChat/groupList.dart';
|
2025-09-03 11:25:31 +08:00
|
|
|
import 'package:loopin/pages/groupChat/index.dart';
|
2025-08-21 10:50:38 +08:00
|
|
|
import 'package:loopin/pages/my/des.dart';
|
2025-09-03 11:25:31 +08:00
|
|
|
import 'package:loopin/pages/my/fans.dart';
|
|
|
|
import 'package:loopin/pages/my/flowing.dart';
|
|
|
|
import 'package:loopin/pages/my/mutual_followers.dart';
|
2025-08-21 10:50:38 +08:00
|
|
|
import 'package:loopin/pages/my/nick_name.dart';
|
|
|
|
import 'package:loopin/pages/my/setting.dart';
|
|
|
|
import 'package:loopin/pages/my/user_info.dart';
|
|
|
|
import 'package:loopin/pages/my/vloger.dart';
|
2025-09-11 16:42:35 +08:00
|
|
|
import 'package:loopin/pages/my/all_function.dart';
|
|
|
|
import 'package:loopin/pages/my/merchant/income.dart';
|
|
|
|
import 'package:loopin/pages/my/merchant/order.dart';
|
2025-09-06 14:57:47 +08:00
|
|
|
import 'package:loopin/pages/order/seller.dart';
|
2025-08-27 18:14:45 +08:00
|
|
|
import 'package:loopin/pages/search/index.dart';
|
|
|
|
import 'package:loopin/pages/search/search-result.dart';
|
2025-08-30 16:49:21 +08:00
|
|
|
import 'package:loopin/pages/video/commonVideo.dart';
|
2025-09-03 11:25:31 +08:00
|
|
|
import 'package:loopin/pages/video/report.dart';
|
2025-07-21 15:46:30 +08:00
|
|
|
|
|
|
|
import '../layouts/index.dart';
|
|
|
|
/* 引入路由页面 */
|
|
|
|
import '../pages/auth/login.dart';
|
|
|
|
// 商品详细
|
|
|
|
import '../pages/goods/detail.dart';
|
|
|
|
import '../pages/order/detail.dart';
|
|
|
|
// 订单
|
|
|
|
import '../pages/order/index.dart';
|
|
|
|
// 引入工具类
|
|
|
|
import '../utils/common.dart';
|
|
|
|
|
|
|
|
// 路由地址集合
|
|
|
|
final Map<String, Widget> routes = {
|
|
|
|
'/': const Layout(),
|
|
|
|
'/goods': const Goods(),
|
2025-08-21 10:50:38 +08:00
|
|
|
// '/chatNoFriend': const ChatNoFriend(),
|
|
|
|
// '/chatGroup': const ChatGroup(),
|
2025-07-21 15:46:30 +08:00
|
|
|
'/order': const Order(),
|
2025-09-06 14:57:47 +08:00
|
|
|
'/sellerOrder': const Seller(),
|
2025-07-21 15:46:30 +08:00
|
|
|
'/order/detail': const OrderDetail(),
|
2025-08-21 10:50:38 +08:00
|
|
|
'/vloger': const Vloger(),
|
2025-08-27 15:11:37 +08:00
|
|
|
'/report': const ReportPage(),
|
2025-08-30 16:49:21 +08:00
|
|
|
'/videoDetail': const VideoDetailPage(),
|
2025-09-03 11:25:31 +08:00
|
|
|
'/search': const SearchPage(),
|
|
|
|
'/search-result': const SearchResultPage(),
|
2025-08-21 10:50:38 +08:00
|
|
|
//settins
|
|
|
|
'/setting': const Setting(),
|
2025-09-11 16:42:35 +08:00
|
|
|
'/functions': const AllFunctionsPage(),
|
|
|
|
'/merchant/income': const SellerRevenue(),
|
|
|
|
//'/merchant/order': const SellerRevenue(),
|
2025-08-21 10:50:38 +08:00
|
|
|
'/userInfo': const UserInfo(),
|
|
|
|
'/notifications': const Setting(),
|
|
|
|
'/privacy': const Setting(),
|
|
|
|
'/about': const Setting(),
|
|
|
|
'/des': const Des(),
|
|
|
|
'/nickName': const NickName(),
|
2025-08-26 17:38:59 +08:00
|
|
|
//通知相关
|
|
|
|
'/noFriend': const Nofriend(),
|
|
|
|
'/system': const System(),
|
|
|
|
'/interaction': const Interaction(),
|
2025-09-03 11:25:31 +08:00
|
|
|
//关系链
|
|
|
|
'/fans': const Fans(),
|
|
|
|
'/flow': const Flowing(),
|
|
|
|
'/eachFlow': const MutualFollowers(),
|
|
|
|
//群
|
2025-09-09 10:57:52 +08:00
|
|
|
'/group': const StartGroupChatPage(), // 创建群聊
|
|
|
|
'/groupList': const Grouplist(), // 已入群列表
|
2025-07-21 15:46:30 +08:00
|
|
|
};
|
|
|
|
|
|
|
|
final List<GetPage> routeList = routes.entries
|
|
|
|
.map((e) => GetPage(
|
|
|
|
name: e.key, // 路由名称
|
|
|
|
page: () => e.value, // 路由页面
|
2025-08-21 10:50:38 +08:00
|
|
|
// transition: Transition.rightToLeftWithFade, // 跳转路由动画
|
|
|
|
transition: Transition.rightToLeft, // 跳转路由动画
|
2025-07-21 15:46:30 +08:00
|
|
|
middlewares: [RouteMiddleware()], // 路由中间件
|
|
|
|
))
|
|
|
|
.toList();
|
|
|
|
|
2025-08-21 10:50:38 +08:00
|
|
|
final List<GetPage> bingsRoutes = [
|
|
|
|
GetPage(
|
|
|
|
name: '/chat',
|
|
|
|
page: () => const Chat(),
|
|
|
|
binding: ChatBinding(),
|
|
|
|
transition: Transition.rightToLeft,
|
|
|
|
middlewares: [RouteMiddleware()],
|
|
|
|
),
|
|
|
|
GetPage(
|
|
|
|
name: '/chatNoFriend',
|
|
|
|
page: () => const ChatNoFriend(),
|
|
|
|
binding: ChatBinding(),
|
|
|
|
transition: Transition.rightToLeft,
|
|
|
|
middlewares: [RouteMiddleware()],
|
|
|
|
),
|
|
|
|
GetPage(
|
|
|
|
name: '/chatGroup',
|
|
|
|
page: () => const ChatGroup(),
|
|
|
|
binding: ChatBinding(),
|
|
|
|
transition: Transition.rightToLeft,
|
|
|
|
middlewares: [RouteMiddleware()],
|
|
|
|
),
|
|
|
|
];
|
|
|
|
|
2025-07-21 15:46:30 +08:00
|
|
|
final List<GetPage> routePages = [
|
|
|
|
GetPage(name: '/login', page: () => const Login()),
|
|
|
|
...routeList,
|
2025-08-21 10:50:38 +08:00
|
|
|
...bingsRoutes,
|
2025-07-21 15:46:30 +08:00
|
|
|
];
|
|
|
|
|
|
|
|
// 路由中间件拦截验证
|
|
|
|
class RouteMiddleware extends GetMiddleware {
|
|
|
|
@override
|
|
|
|
RouteSettings? redirect(String? route) {
|
|
|
|
return Common.isLogin()
|
|
|
|
? null
|
|
|
|
: const RouteSettings(
|
|
|
|
name: '/login',
|
|
|
|
);
|
|
|
|
}
|
|
|
|
}
|