flutter/lib/router/index.dart

54 lines
1.4 KiB
Dart
Raw Normal View History

2025-07-21 15:46:30 +08:00
/// Getx路由管理
library;
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:loopin/pages/chat/chat.dart';
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(),
// '/upload': const UploadVideoPage(),
'/goods': const Goods(),
'/chat': const Chat(),
'/order': const Order(),
'/order/detail': const OrderDetail(),
};
final List<GetPage> routeList = routes.entries
.map((e) => GetPage(
name: e.key, // 路由名称
page: () => e.value, // 路由页面
transition: Transition.rightToLeftWithFade, // 跳转路由动画
middlewares: [RouteMiddleware()], // 路由中间件
))
.toList();
final List<GetPage> routePages = [
GetPage(name: '/login', page: () => const Login()),
...routeList,
];
// 路由中间件拦截验证
class RouteMiddleware extends GetMiddleware {
@override
RouteSettings? redirect(String? route) {
return Common.isLogin()
? null
: const RouteSettings(
name: '/login',
);
}
}