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 | ... | ... |