Commit a117a5a3d6f709c2edfa9f9fbe1ab34597309eec

Authored by liangchengyou
1 parent 478f2c8c

feat:更新代码

lib/app/app.dart
@@ -2,8 +2,6 @@ import 'package:flutter/material.dart'; @@ -2,8 +2,6 @@ import 'package:flutter/material.dart';
2 import 'package:flutter_bloc/flutter_bloc.dart'; 2 import 'package:flutter_bloc/flutter_bloc.dart';
3 import 'package:flutter_easyloading/flutter_easyloading.dart'; 3 import 'package:flutter_easyloading/flutter_easyloading.dart';
4 import 'package:flutter_screenutil/flutter_screenutil.dart'; 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 import 'package:wow_english/route/route.dart'; 5 import 'package:wow_english/route/route.dart';
8 import 'package:wow_english/tab/blocs/tab_bloc.dart'; 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 import 'package:flutter/material.dart'; 2 import 'package:flutter/material.dart';
  3 +import 'package:wow_english/network/basic_configuration.dart';
2 import 'package:wow_english/route/route.dart'; 4 import 'package:wow_english/route/route.dart';
3 import 'package:wow_english/widgets/we_app_bar.dart'; 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 @override 10 @override
9 Widget build(BuildContext context) { 11 Widget build(BuildContext context) {
@@ -31,7 +33,11 @@ class _TransitionViewState extends State<TransitionView> { @@ -31,7 +33,11 @@ class _TransitionViewState extends State<TransitionView> {
31 body: Center( 33 body: Center(
32 child: GestureDetector( 34 child: GestureDetector(
33 onTap: (){ 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 child: const Text('登陆'), 42 child: const Text('登陆'),
37 ), 43 ),
lib/login/login_page.dart
@@ -13,7 +13,6 @@ class LoginPage extends StatelessWidget { @@ -13,7 +13,6 @@ class LoginPage extends StatelessWidget {
13 13
14 @override 14 @override
15 Widget build(BuildContext context) { 15 Widget build(BuildContext context) {
16 - // TODO: implement build  
17 return BlocProvider( 16 return BlocProvider(
18 create: (context) => LoginBloc(), 17 create: (context) => LoginBloc(),
19 child: _buildLoginViewWidget(), 18 child: _buildLoginViewWidget(),
@@ -25,7 +24,6 @@ class LoginPage extends StatelessWidget { @@ -25,7 +24,6 @@ class LoginPage extends StatelessWidget {
25 final bloc = BlocProvider.of<LoginBloc>(context); 24 final bloc = BlocProvider.of<LoginBloc>(context);
26 return Scaffold( 25 return Scaffold(
27 appBar: WEAppBar( 26 appBar: WEAppBar(
28 - backgroundColor: Theme.of(context).colorScheme.inversePrimary,  
29 titleText: title??'', 27 titleText: title??'',
30 ), 28 ),
31 body: Center( 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
1 class Api { 1 class Api {
2 - static const String testApi = 'https://dart.dev'; 2 + static const String testApi = 'home/courseLesson';
3 } 3 }
4 \ No newline at end of file 4 \ No newline at end of file
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 \ No newline at end of file 37 \ No newline at end of file
lib/network/network_manager.dart
@@ -3,6 +3,7 @@ import &#39;dart:io&#39;; @@ -3,6 +3,7 @@ import &#39;dart:io&#39;;
3 import 'package:dio/dio.dart'; 3 import 'package:dio/dio.dart';
4 import 'package:flutter/foundation.dart'; 4 import 'package:flutter/foundation.dart';
5 import 'package:flutter_easyloading/flutter_easyloading.dart'; 5 import 'package:flutter_easyloading/flutter_easyloading.dart';
  6 +import 'package:wow_english/network/basic_configuration.dart';
6 7
7 enum HttpMethod { 8 enum HttpMethod {
8 get, 9 get,
@@ -24,9 +25,10 @@ class DioUtil { @@ -24,9 +25,10 @@ class DioUtil {
24 25
25 static BaseOptions getDefOptions() { 26 static BaseOptions getDefOptions() {
26 final BaseOptions options = BaseOptions(); 27 final BaseOptions options = BaseOptions();
27 - options.baseUrl = ''; 28 + options.baseUrl = BasicConfigurationManager().baseUrl??'';
28 options.connectTimeout = const Duration(milliseconds: 1000); 29 options.connectTimeout = const Duration(milliseconds: 1000);
29 options.receiveTimeout = const Duration(milliseconds: 1000); 30 options.receiveTimeout = const Duration(milliseconds: 1000);
  31 + options.headers['content-type'] = 'application/x-www-form-urlencoded';
30 return options; 32 return options;
31 } 33 }
32 34
@@ -41,12 +43,17 @@ class DioUtil { @@ -41,12 +43,17 @@ class DioUtil {
41 required Function errorCallBack, 43 required Function errorCallBack,
42 }) async{ 44 }) async{
43 try { 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 Response<dynamic> response; 51 Response<dynamic> response;
45 response = await _dio.request( 52 response = await _dio.request(
46 path, 53 path,
47 data: data??{}, 54 data: data??{},
48 queryParameters: queryParameters, 55 queryParameters: queryParameters,
49 - options: Options(method: method.name), 56 + options: Options(method: method.name,headers: headers),
50 onSendProgress: onSendProgress, 57 onSendProgress: onSendProgress,
51 onReceiveProgress: onReceiveProgress); 58 onReceiveProgress: onReceiveProgress);
52 if (response.statusCode == HttpStatus.ok || 59 if (response.statusCode == HttpStatus.ok ||
lib/route/route.dart
1 import 'package:flutter/cupertino.dart'; 1 import 'package:flutter/cupertino.dart';
2 import 'package:flutter/material.dart'; 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 import 'package:wow_english/login/login_page.dart'; 4 import 'package:wow_english/login/login_page.dart';
5 import 'package:wow_english/tab/tab_page.dart'; 5 import 'package:wow_english/tab/tab_page.dart';
6 6
@@ -21,7 +21,7 @@ class AppRouter { @@ -21,7 +21,7 @@ class AppRouter {
21 case AppRouteName.splash: 21 case AppRouteName.splash:
22 return PageRouteBuilder( 22 return PageRouteBuilder(
23 opaque: false, 23 opaque: false,
24 - pageBuilder: (_,__,___) => const TransitionPage(), 24 + pageBuilder: (_,__,___) => const SplashPage(),
25 transitionDuration: Duration.zero, 25 transitionDuration: Duration.zero,
26 transitionsBuilder: (_, __, ___, child) => child); 26 transitionsBuilder: (_, __, ___, child) => child);
27 case AppRouteName.login: 27 case AppRouteName.login:
lib/widgets/we_app_bar.dart
@@ -19,7 +19,7 @@ class WEAppBar extends StatelessWidget implements PreferredSizeWidget { @@ -19,7 +19,7 @@ class WEAppBar extends StatelessWidget implements PreferredSizeWidget {
19 return AppBar( 19 return AppBar(
20 centerTitle: centerTitle, 20 centerTitle: centerTitle,
21 title: Text(titleText??''), 21 title: Text(titleText??''),
22 - backgroundColor: backgroundColor, 22 + backgroundColor: backgroundColor??Theme.of(context).colorScheme.inversePrimary,
23 ); 23 );
24 } 24 }
25 25