Commit a117a5a3d6f709c2edfa9f9fbe1ab34597309eec
1 parent
478f2c8c
feat:更新代码
Showing
10 changed files
with
95 additions
and
13 deletions
lib/app/app.dart
... | ... | @@ -2,8 +2,6 @@ import 'package:flutter/material.dart'; |
2 | 2 | import 'package:flutter_bloc/flutter_bloc.dart'; |
3 | 3 | import 'package:flutter_easyloading/flutter_easyloading.dart'; |
4 | 4 | import 'package:flutter_screenutil/flutter_screenutil.dart'; |
5 | -import 'package:wow_english/app/transition_page.dart'; | |
6 | -import 'package:wow_english/login/login_page.dart'; | |
7 | 5 | import 'package:wow_english/route/route.dart'; |
8 | 6 | import 'package:wow_english/tab/blocs/tab_bloc.dart'; |
9 | 7 | ... | ... |
lib/app/transition_page.dart renamed to lib/app/splash_page.dart
1 | +import 'package:flutter/foundation.dart'; | |
1 | 2 | import 'package:flutter/material.dart'; |
3 | +import 'package:wow_english/network/basic_configuration.dart'; | |
2 | 4 | import 'package:wow_english/route/route.dart'; |
3 | 5 | import 'package:wow_english/widgets/we_app_bar.dart'; |
4 | 6 | |
5 | -class TransitionPage extends StatelessWidget { | |
6 | - const TransitionPage({super.key}); | |
7 | +class SplashPage extends StatelessWidget { | |
8 | + const SplashPage({super.key}); | |
7 | 9 | |
8 | 10 | @override |
9 | 11 | Widget build(BuildContext context) { |
... | ... | @@ -31,7 +33,11 @@ class _TransitionViewState extends State<TransitionView> { |
31 | 33 | body: Center( |
32 | 34 | child: GestureDetector( |
33 | 35 | onTap: (){ |
34 | - Navigator.of(context).pushNamed(AppRouteName.login,arguments: {'title':'登陆'}); | |
36 | + if(BasicConfigurationManager().sessionId!.isNotEmpty) { | |
37 | + Navigator.of(context).pushNamedAndRemoveUntil(AppRouteName.tab, (route) => false); | |
38 | + } else { | |
39 | + Navigator.of(context).pushNamed(AppRouteName.login,arguments: {'title':'登陆'}); | |
40 | + } | |
35 | 41 | }, |
36 | 42 | child: const Text('登陆'), |
37 | 43 | ), | ... | ... |
lib/login/login_page.dart
... | ... | @@ -13,7 +13,6 @@ class LoginPage extends StatelessWidget { |
13 | 13 | |
14 | 14 | @override |
15 | 15 | Widget build(BuildContext context) { |
16 | - // TODO: implement build | |
17 | 16 | return BlocProvider( |
18 | 17 | create: (context) => LoginBloc(), |
19 | 18 | child: _buildLoginViewWidget(), |
... | ... | @@ -25,7 +24,6 @@ class LoginPage extends StatelessWidget { |
25 | 24 | final bloc = BlocProvider.of<LoginBloc>(context); |
26 | 25 | return Scaffold( |
27 | 26 | appBar: WEAppBar( |
28 | - backgroundColor: Theme.of(context).colorScheme.inversePrimary, | |
29 | 27 | titleText: title??'', |
30 | 28 | ), |
31 | 29 | body: Center( | ... | ... |
lib/modes/response_model.dart
0 → 100644
1 | +import 'package:json_annotation/json_annotation.dart'; | |
2 | + | |
3 | +part 'response_model.g.dart'; | |
4 | + | |
5 | +@JsonSerializable() | |
6 | +class ResponseModel { | |
7 | + int? code; | |
8 | + dynamic data; | |
9 | + String? msg; | |
10 | + | |
11 | + ResponseModel(this.code,this.data,this.msg); | |
12 | + | |
13 | + factory ResponseModel.fromJson(Map<String, dynamic> json) => _$ResponseModelFromJson(json); | |
14 | + | |
15 | + Map<String, dynamic> toJson() => _$ResponseModelToJson(this); | |
16 | +} | ... | ... |
lib/modes/response_model.g.dart
0 → 100644
1 | +// GENERATED CODE - DO NOT MODIFY BY HAND | |
2 | + | |
3 | +part of 'response_model.dart'; | |
4 | + | |
5 | +// ************************************************************************** | |
6 | +// JsonSerializableGenerator | |
7 | +// ************************************************************************** | |
8 | + | |
9 | +ResponseModel _$ResponseModelFromJson(Map<String, dynamic> json) => | |
10 | + ResponseModel( | |
11 | + json['code'] as int?, | |
12 | + json['data'], | |
13 | + json['msg'] as String?, | |
14 | + ); | |
15 | + | |
16 | +Map<String, dynamic> _$ResponseModelToJson(ResponseModel instance) => | |
17 | + <String, dynamic>{ | |
18 | + 'code': instance.code, | |
19 | + 'data': instance.data, | |
20 | + 'msg': instance.msg, | |
21 | + }; | ... | ... |
lib/network/api.dart
lib/network/basic_configuration.dart
0 → 100644
1 | +enum DevelopEvent { | |
2 | + ///开发环境 | |
3 | + dev, | |
4 | + ///测试环境 | |
5 | + test, | |
6 | + ///正式环境 | |
7 | + formal | |
8 | +} | |
9 | + | |
10 | +class BasicConfigurationManager { | |
11 | + factory BasicConfigurationManager() => _getInstance(); | |
12 | + | |
13 | + static BasicConfigurationManager? _instance; | |
14 | + | |
15 | + //服务器地址 | |
16 | + String? baseUrl; | |
17 | + //SessionId | |
18 | + String? sessionId; | |
19 | + | |
20 | + BasicConfigurationManager._internal(){ | |
21 | + DevelopEvent developType = DevelopEvent.dev; | |
22 | + if (developType == DevelopEvent.test) { | |
23 | + baseUrl = 'http://wow-app.dev.kouyuxingqiu.com'; | |
24 | + } else if(developType == DevelopEvent.dev) { | |
25 | + baseUrl = 'http://wow-app.dev.kouyuxingqiu.com'; | |
26 | + } else { | |
27 | + baseUrl = 'http://wow-app.dev.kouyuxingqiu.com'; | |
28 | + } | |
29 | + sessionId = ''; | |
30 | + } | |
31 | + | |
32 | + static BasicConfigurationManager _getInstance() { | |
33 | + _instance ??= BasicConfigurationManager._internal(); | |
34 | + return _instance!; | |
35 | + } | |
36 | +} | |
0 | 37 | \ No newline at end of file | ... | ... |
lib/network/network_manager.dart
... | ... | @@ -3,6 +3,7 @@ import 'dart:io'; |
3 | 3 | import 'package:dio/dio.dart'; |
4 | 4 | import 'package:flutter/foundation.dart'; |
5 | 5 | import 'package:flutter_easyloading/flutter_easyloading.dart'; |
6 | +import 'package:wow_english/network/basic_configuration.dart'; | |
6 | 7 | |
7 | 8 | enum HttpMethod { |
8 | 9 | get, |
... | ... | @@ -24,9 +25,10 @@ class DioUtil { |
24 | 25 | |
25 | 26 | static BaseOptions getDefOptions() { |
26 | 27 | final BaseOptions options = BaseOptions(); |
27 | - options.baseUrl = ''; | |
28 | + options.baseUrl = BasicConfigurationManager().baseUrl??''; | |
28 | 29 | options.connectTimeout = const Duration(milliseconds: 1000); |
29 | 30 | options.receiveTimeout = const Duration(milliseconds: 1000); |
31 | + options.headers['content-type'] = 'application/x-www-form-urlencoded'; | |
30 | 32 | return options; |
31 | 33 | } |
32 | 34 | |
... | ... | @@ -41,12 +43,17 @@ class DioUtil { |
41 | 43 | required Function errorCallBack, |
42 | 44 | }) async{ |
43 | 45 | try { |
46 | + Map<String, dynamic> headers = <String, dynamic>{}; | |
47 | + | |
48 | + if (method == HttpMethod.post) { | |
49 | + headers['content-type'] = 'application/x-www-form-urlencoded'; | |
50 | + } | |
44 | 51 | Response<dynamic> response; |
45 | 52 | response = await _dio.request( |
46 | 53 | path, |
47 | 54 | data: data??{}, |
48 | 55 | queryParameters: queryParameters, |
49 | - options: Options(method: method.name), | |
56 | + options: Options(method: method.name,headers: headers), | |
50 | 57 | onSendProgress: onSendProgress, |
51 | 58 | onReceiveProgress: onReceiveProgress); |
52 | 59 | if (response.statusCode == HttpStatus.ok || | ... | ... |
lib/route/route.dart
1 | 1 | import 'package:flutter/cupertino.dart'; |
2 | 2 | import 'package:flutter/material.dart'; |
3 | -import 'package:wow_english/app/transition_page.dart'; | |
3 | +import 'package:wow_english/app/splash_page.dart'; | |
4 | 4 | import 'package:wow_english/login/login_page.dart'; |
5 | 5 | import 'package:wow_english/tab/tab_page.dart'; |
6 | 6 | |
... | ... | @@ -21,7 +21,7 @@ class AppRouter { |
21 | 21 | case AppRouteName.splash: |
22 | 22 | return PageRouteBuilder( |
23 | 23 | opaque: false, |
24 | - pageBuilder: (_,__,___) => const TransitionPage(), | |
24 | + pageBuilder: (_,__,___) => const SplashPage(), | |
25 | 25 | transitionDuration: Duration.zero, |
26 | 26 | transitionsBuilder: (_, __, ___, child) => child); |
27 | 27 | case AppRouteName.login: | ... | ... |
lib/widgets/we_app_bar.dart
... | ... | @@ -19,7 +19,7 @@ class WEAppBar extends StatelessWidget implements PreferredSizeWidget { |
19 | 19 | return AppBar( |
20 | 20 | centerTitle: centerTitle, |
21 | 21 | title: Text(titleText??''), |
22 | - backgroundColor: backgroundColor, | |
22 | + backgroundColor: backgroundColor??Theme.of(context).colorScheme.inversePrimary, | |
23 | 23 | ); |
24 | 24 | } |
25 | 25 | ... | ... |