app_pages.dart 6.9 KB

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