app_pages.dart 6.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212
  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.native,
  57. curve: Curves.easeInOut,
  58. ),
  59. GetPage(
  60. name: _Paths.HOME,
  61. page: () => const HomeView(),
  62. binding: HomeBinding(),
  63. transition: Transition.noTransition,
  64. ),
  65. GetPage(
  66. name: _Paths.NODE,
  67. page: () => const NodeView(),
  68. binding: NodeBinding(),
  69. transition: Transition.native,
  70. curve: Curves.easeInOut,
  71. preventDuplicates: true, // 防止重复打开同一个页面
  72. ),
  73. GetPage(
  74. name: _Paths.WEB,
  75. page: () => const WebView(),
  76. binding: WebBinding(),
  77. transition: Transition.rightToLeftWithFade,
  78. curve: Curves.easeInOut,
  79. ),
  80. GetPage(
  81. name: _Paths.ABOUT,
  82. page: () => const AboutView(),
  83. binding: AboutBinding(),
  84. transition: Transition.native,
  85. curve: Curves.easeInOut,
  86. ),
  87. GetPage(
  88. name: _Paths.ACCOUNT,
  89. page: () => const AccountView(),
  90. binding: AccountBinding(),
  91. transition: Transition.native,
  92. curve: Curves.easeInOut,
  93. ),
  94. GetPage(
  95. name: _Paths.MARKDOWN,
  96. page: () => const MarkdownView(),
  97. binding: MarkdownBinding(),
  98. transition: Transition.native,
  99. curve: Curves.easeInOut,
  100. ),
  101. GetPage(
  102. name: _Paths.SETTING,
  103. page: () => const SettingView(),
  104. binding: SettingBinding(),
  105. transition: Transition.native,
  106. curve: Curves.easeInOut,
  107. ),
  108. GetPage(
  109. name: _Paths.PRECODE,
  110. page: () => const PrecodeView(),
  111. binding: PrecodeBinding(),
  112. transition: Transition.native,
  113. curve: Curves.easeInOut,
  114. children: [
  115. GetPage(
  116. name: _Paths.PRECODE_SENDEMAIL,
  117. page: () => const PrecodeSendemailView(),
  118. binding: PrecodeSendemailBinding(),
  119. transition: Transition.native,
  120. curve: Curves.easeInOut,
  121. ),
  122. ],
  123. ),
  124. GetPage(
  125. name: _Paths.DEVICEAUTH,
  126. page: () => const DeviceauthView(),
  127. binding: DeviceauthBinding(),
  128. transition: Transition.native,
  129. curve: Curves.easeInOut,
  130. ),
  131. GetPage(
  132. name: _Paths.ROUTINGMODE,
  133. page: () => const RoutingmodeView(),
  134. binding: RoutingmodeBinding(),
  135. transition: Transition.native,
  136. curve: Curves.easeInOut,
  137. ),
  138. GetPage(
  139. name: _Paths.LANGUAGE,
  140. page: () => const LanguageView(),
  141. binding: LanguageBinding(),
  142. transition: Transition.native,
  143. curve: Curves.easeInOut,
  144. ),
  145. GetPage(
  146. name: _Paths.FEEDBACK,
  147. page: () => const FeedbackView(),
  148. binding: FeedbackBinding(),
  149. transition: Transition.native,
  150. curve: Curves.easeInOut,
  151. ),
  152. GetPage(
  153. name: _Paths.SPLITTUNNELING,
  154. page: () => const SplittunnelingView(),
  155. binding: SplittunnelingBinding(),
  156. transition: Transition.native,
  157. curve: Curves.easeInOut,
  158. children: [
  159. GetPage(
  160. name: _Paths.SPLITTUNNELING_SELECTAPP,
  161. page: () => SplittunnelingSelectappView(),
  162. binding: SplittunnelingSelectappBinding(),
  163. transition: Transition.native,
  164. curve: Curves.easeInOut,
  165. ),
  166. ],
  167. ),
  168. GetPage(
  169. name: _Paths.SIGNUP,
  170. page: () => const SignupView(),
  171. binding: SignupBinding(),
  172. transition: Transition.native,
  173. curve: Curves.easeInOut,
  174. ),
  175. GetPage(
  176. name: _Paths.FORGOTPWD,
  177. page: () => const ForgotpwdView(),
  178. binding: ForgotpwdBinding(),
  179. transition: Transition.native,
  180. curve: Curves.easeInOut,
  181. ),
  182. GetPage(
  183. name: _Paths.LOGIN,
  184. page: () => const LoginView(),
  185. binding: LoginBinding(),
  186. transition: Transition.native,
  187. curve: Curves.easeInOut,
  188. ),
  189. GetPage(
  190. name: _Paths.SUBSCRIPTION,
  191. page: () => const SubscriptionView(),
  192. binding: SubscriptionBinding(),
  193. transition: Transition.downToUp,
  194. curve: Curves.easeInOut,
  195. ),
  196. GetPage(
  197. name: _Paths.MEDIALOCATION,
  198. page: () => const MedialocationView(),
  199. binding: MedialocationBinding(),
  200. transition: Transition.downToUp,
  201. curve: Curves.easeInOut,
  202. ),
  203. ];
  204. /// 私有构造函数,防止被实例化
  205. AppPages._();
  206. }