app_pages.dart 7.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228
  1. import 'package:flutter/material.dart';
  2. import 'package:get/get.dart';
  3. import '../modules/about/bindings/about_binding.dart';
  4. import '../modules/about/views/about_view.dart';
  5. import '../modules/notfound/views/notfound_view.dart';
  6. import '../modules/account/bindings/account_binding.dart';
  7. import '../modules/account/views/account_view.dart';
  8. import '../modules/deviceauth/bindings/deviceauth_binding.dart';
  9. import '../modules/deviceauth/views/deviceauth_view.dart';
  10. import '../modules/feedback/bindings/feedback_binding.dart';
  11. import '../modules/feedback/views/feedback_view.dart';
  12. import '../modules/forgotpwd/bindings/forgotpwd_binding.dart';
  13. import '../modules/forgotpwd/views/forgotpwd_view.dart';
  14. import '../modules/home/bindings/home_binding.dart';
  15. import '../modules/home/views/home_view.dart';
  16. import '../modules/language/bindings/language_binding.dart';
  17. import '../modules/language/views/language_view.dart';
  18. import '../modules/login/bindings/login_binding.dart';
  19. import '../modules/login/views/login_view.dart';
  20. import '../modules/markdown/bindings/markdown_binding.dart';
  21. import '../modules/markdown/views/markdown_view.dart';
  22. import '../modules/medialocation/bindings/medialocation_binding.dart';
  23. import '../modules/medialocation/views/medialocation_view.dart';
  24. import '../modules/node/bindings/node_binding.dart';
  25. import '../modules/node/views/node_view.dart';
  26. import '../modules/precode/bindings/precode_binding.dart';
  27. import '../modules/precode/sendemail/bindings/precode_sendemail_binding.dart';
  28. import '../modules/precode/sendemail/views/precode_sendemail_view.dart';
  29. import '../modules/precode/views/precode_view.dart';
  30. import '../modules/routingmode/bindings/routingmode_binding.dart';
  31. import '../modules/routingmode/views/routingmode_view.dart';
  32. import '../modules/setting/bindings/setting_binding.dart';
  33. import '../modules/setting/views/setting_view.dart';
  34. import '../modules/signup/bindings/signup_binding.dart';
  35. import '../modules/signup/views/signup_view.dart';
  36. import '../modules/splash/bindings/splash_binding.dart';
  37. import '../modules/splash/views/splash_view.dart';
  38. import '../modules/splittunneling/bindings/splittunneling_binding.dart';
  39. import '../modules/splittunneling/selectapp/bindings/splittunneling_selectapp_binding.dart';
  40. import '../modules/splittunneling/selectapp/views/splittunneling_selectapp_view.dart';
  41. import '../modules/splittunneling/views/splittunneling_view.dart';
  42. import '../modules/subscription/bindings/subscription_binding.dart';
  43. import '../modules/subscription/views/subscription_view.dart';
  44. import '../modules/theme/bindings/theme_binding.dart';
  45. import '../modules/theme/views/theme_view.dart';
  46. import '../modules/web/bindings/web_binding.dart';
  47. import '../modules/web/views/web_view.dart';
  48. part 'app_routes.dart';
  49. /// 路由页面配置类
  50. class AppPages {
  51. /// 初始路由
  52. static const initial = Routes.SPLASH;
  53. /// 未知路由(404页面)
  54. static final unknownRoute = GetPage(
  55. name: '/notfound',
  56. page: () => const NotFoundView(),
  57. transition: Transition.fade,
  58. );
  59. /// 路由页面列表
  60. static final routes = [
  61. GetPage(
  62. name: _Paths.SPLASH,
  63. page: () => const SplashView(),
  64. binding: SplashBinding(),
  65. transition: Transition.noTransition,
  66. ),
  67. GetPage(
  68. name: _Paths.HOME,
  69. page: () => const HomeView(),
  70. binding: HomeBinding(),
  71. transition: Transition.noTransition,
  72. ),
  73. GetPage(
  74. name: _Paths.NODE,
  75. page: () => const NodeView(),
  76. binding: NodeBinding(),
  77. transition: Transition.rightToLeftWithFade,
  78. curve: Curves.easeInOut,
  79. preventDuplicates: true, // 防止重复打开同一个页面
  80. ),
  81. GetPage(
  82. name: _Paths.WEB,
  83. page: () => const WebView(),
  84. binding: WebBinding(),
  85. transition: Transition.rightToLeftWithFade,
  86. curve: Curves.easeInOut,
  87. ),
  88. GetPage(
  89. name: _Paths.ABOUT,
  90. page: () => const AboutView(),
  91. binding: AboutBinding(),
  92. transition: Transition.native,
  93. curve: Curves.easeInOut,
  94. ),
  95. GetPage(
  96. name: _Paths.ACCOUNT,
  97. page: () => const AccountView(),
  98. binding: AccountBinding(),
  99. transition: Transition.native,
  100. curve: Curves.easeInOut,
  101. ),
  102. GetPage(
  103. name: _Paths.MARKDOWN,
  104. page: () => const MarkdownView(),
  105. binding: MarkdownBinding(),
  106. transition: Transition.native,
  107. curve: Curves.easeInOut,
  108. ),
  109. GetPage(
  110. name: _Paths.SETTING,
  111. page: () => const SettingView(),
  112. binding: SettingBinding(),
  113. transition: Transition.native,
  114. curve: Curves.easeInOut,
  115. ),
  116. GetPage(
  117. name: _Paths.PRECODE,
  118. page: () => const PrecodeView(),
  119. binding: PrecodeBinding(),
  120. transition: Transition.native,
  121. curve: Curves.easeInOut,
  122. children: [
  123. GetPage(
  124. name: _Paths.PRECODE_SENDEMAIL,
  125. page: () => const PrecodeSendemailView(),
  126. binding: PrecodeSendemailBinding(),
  127. transition: Transition.native,
  128. curve: Curves.easeInOut,
  129. ),
  130. ],
  131. ),
  132. GetPage(
  133. name: _Paths.DEVICEAUTH,
  134. page: () => const DeviceauthView(),
  135. binding: DeviceauthBinding(),
  136. transition: Transition.native,
  137. curve: Curves.easeInOut,
  138. ),
  139. GetPage(
  140. name: _Paths.ROUTINGMODE,
  141. page: () => const RoutingmodeView(),
  142. binding: RoutingmodeBinding(),
  143. transition: Transition.native,
  144. curve: Curves.easeInOut,
  145. ),
  146. GetPage(
  147. name: _Paths.LANGUAGE,
  148. page: () => const LanguageView(),
  149. binding: LanguageBinding(),
  150. transition: Transition.native,
  151. curve: Curves.easeInOut,
  152. ),
  153. GetPage(
  154. name: _Paths.FEEDBACK,
  155. page: () => const FeedbackView(),
  156. binding: FeedbackBinding(),
  157. transition: Transition.native,
  158. curve: Curves.easeInOut,
  159. ),
  160. GetPage(
  161. name: _Paths.SPLITTUNNELING,
  162. page: () => const SplittunnelingView(),
  163. binding: SplittunnelingBinding(),
  164. transition: Transition.native,
  165. curve: Curves.easeInOut,
  166. children: [
  167. GetPage(
  168. name: _Paths.SPLITTUNNELING_SELECTAPP,
  169. page: () => SplittunnelingSelectappView(),
  170. binding: SplittunnelingSelectappBinding(),
  171. transition: Transition.native,
  172. curve: Curves.easeInOut,
  173. ),
  174. ],
  175. ),
  176. GetPage(
  177. name: _Paths.SIGNUP,
  178. page: () => const SignupView(),
  179. binding: SignupBinding(),
  180. transition: Transition.native,
  181. curve: Curves.easeInOut,
  182. ),
  183. GetPage(
  184. name: _Paths.FORGOTPWD,
  185. page: () => const ForgotpwdView(),
  186. binding: ForgotpwdBinding(),
  187. transition: Transition.native,
  188. curve: Curves.easeInOut,
  189. ),
  190. GetPage(
  191. name: _Paths.LOGIN,
  192. page: () => const LoginView(),
  193. binding: LoginBinding(),
  194. transition: Transition.native,
  195. curve: Curves.easeInOut,
  196. ),
  197. GetPage(
  198. name: _Paths.SUBSCRIPTION,
  199. page: () => const SubscriptionView(),
  200. binding: SubscriptionBinding(),
  201. transition: Transition.downToUp,
  202. curve: Curves.easeInOut,
  203. ),
  204. GetPage(
  205. name: _Paths.MEDIALOCATION,
  206. page: () => const MedialocationView(),
  207. binding: MedialocationBinding(),
  208. transition: Transition.downToUp,
  209. curve: Curves.easeInOut,
  210. ),
  211. GetPage(
  212. name: _Paths.THEME,
  213. page: () => const ThemeView(),
  214. binding: ThemeBinding(),
  215. transition: Transition.native,
  216. curve: Curves.easeInOut,
  217. ),
  218. ];
  219. /// 私有构造函数,防止被实例化
  220. AppPages._();
  221. }