54 lines
1.4 KiB
Dart
54 lines
1.4 KiB
Dart
![]() |
/// 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',
|
||
|
);
|
||
|
}
|
||
|
}
|