Commit a117a5a3d6f709c2edfa9f9fbe1ab34597309eec

Authored by liangchengyou
1 parent 478f2c8c

feat:更新代码

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
1 1 class Api {
2   - static const String testApi = 'https://dart.dev';
  2 + static const String testApi = 'home/courseLesson';
3 3 }
4 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 37 \ No newline at end of file
... ...
lib/network/network_manager.dart
... ... @@ -3,6 +3,7 @@ import &#39;dart:io&#39;;
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  
... ...