From a117a5a3d6f709c2edfa9f9fbe1ab34597309eec Mon Sep 17 00:00:00 2001 From: lcy <2503978335@qq.com> Date: Mon, 5 Jun 2023 09:10:25 +0800 Subject: [PATCH] feat:更新代码 --- lib/app/app.dart | 2 -- lib/app/splash_page.dart | 47 +++++++++++++++++++++++++++++++++++++++++++++++ lib/app/transition_page.dart | 41 ----------------------------------------- lib/login/login_page.dart | 2 -- lib/modes/response_model.dart | 16 ++++++++++++++++ lib/modes/response_model.g.dart | 21 +++++++++++++++++++++ lib/network/api.dart | 2 +- lib/network/basic_configuration.dart | 36 ++++++++++++++++++++++++++++++++++++ lib/network/network_manager.dart | 11 +++++++++-- lib/route/route.dart | 4 ++-- lib/widgets/we_app_bar.dart | 2 +- 11 files changed, 133 insertions(+), 51 deletions(-) create mode 100644 lib/app/splash_page.dart delete mode 100644 lib/app/transition_page.dart create mode 100644 lib/modes/response_model.dart create mode 100644 lib/modes/response_model.g.dart create mode 100644 lib/network/basic_configuration.dart diff --git a/lib/app/app.dart b/lib/app/app.dart index 924be47..292f38d 100644 --- a/lib/app/app.dart +++ b/lib/app/app.dart @@ -2,8 +2,6 @@ import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:flutter_easyloading/flutter_easyloading.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; -import 'package:wow_english/app/transition_page.dart'; -import 'package:wow_english/login/login_page.dart'; import 'package:wow_english/route/route.dart'; import 'package:wow_english/tab/blocs/tab_bloc.dart'; diff --git a/lib/app/splash_page.dart b/lib/app/splash_page.dart new file mode 100644 index 0000000..c0ac356 --- /dev/null +++ b/lib/app/splash_page.dart @@ -0,0 +1,47 @@ +import 'package:flutter/foundation.dart'; +import 'package:flutter/material.dart'; +import 'package:wow_english/network/basic_configuration.dart'; +import 'package:wow_english/route/route.dart'; +import 'package:wow_english/widgets/we_app_bar.dart'; + +class SplashPage extends StatelessWidget { + const SplashPage({super.key}); + + @override + Widget build(BuildContext context) { + return const TransitionView(); + } +} + +class TransitionView extends StatefulWidget { + const TransitionView({super.key}); + + @override + State createState() { + return _TransitionViewState(); + } +} + +class _TransitionViewState extends State { + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: WEAppBar( + titleText: '首页', + backgroundColor: Theme.of(context).colorScheme.inversePrimary + ), + body: Center( + child: GestureDetector( + onTap: (){ + if(BasicConfigurationManager().sessionId!.isNotEmpty) { + Navigator.of(context).pushNamedAndRemoveUntil(AppRouteName.tab, (route) => false); + } else { + Navigator.of(context).pushNamed(AppRouteName.login,arguments: {'title':'登陆'}); + } + }, + child: const Text('登陆'), + ), + ), + ); + } +} \ No newline at end of file diff --git a/lib/app/transition_page.dart b/lib/app/transition_page.dart deleted file mode 100644 index ee4421d..0000000 --- a/lib/app/transition_page.dart +++ /dev/null @@ -1,41 +0,0 @@ -import 'package:flutter/material.dart'; -import 'package:wow_english/route/route.dart'; -import 'package:wow_english/widgets/we_app_bar.dart'; - -class TransitionPage extends StatelessWidget { - const TransitionPage({super.key}); - - @override - Widget build(BuildContext context) { - return const TransitionView(); - } -} - -class TransitionView extends StatefulWidget { - const TransitionView({super.key}); - - @override - State createState() { - return _TransitionViewState(); - } -} - -class _TransitionViewState extends State { - @override - Widget build(BuildContext context) { - return Scaffold( - appBar: WEAppBar( - titleText: '首页', - backgroundColor: Theme.of(context).colorScheme.inversePrimary - ), - body: Center( - child: GestureDetector( - onTap: (){ - Navigator.of(context).pushNamed(AppRouteName.login,arguments: {'title':'登陆'}); - }, - child: const Text('登陆'), - ), - ), - ); - } -} \ No newline at end of file diff --git a/lib/login/login_page.dart b/lib/login/login_page.dart index 1a043d5..a42a079 100644 --- a/lib/login/login_page.dart +++ b/lib/login/login_page.dart @@ -13,7 +13,6 @@ class LoginPage extends StatelessWidget { @override Widget build(BuildContext context) { - // TODO: implement build return BlocProvider( create: (context) => LoginBloc(), child: _buildLoginViewWidget(), @@ -25,7 +24,6 @@ class LoginPage extends StatelessWidget { final bloc = BlocProvider.of(context); return Scaffold( appBar: WEAppBar( - backgroundColor: Theme.of(context).colorScheme.inversePrimary, titleText: title??'', ), body: Center( diff --git a/lib/modes/response_model.dart b/lib/modes/response_model.dart new file mode 100644 index 0000000..3f891db --- /dev/null +++ b/lib/modes/response_model.dart @@ -0,0 +1,16 @@ +import 'package:json_annotation/json_annotation.dart'; + +part 'response_model.g.dart'; + +@JsonSerializable() +class ResponseModel { + int? code; + dynamic data; + String? msg; + + ResponseModel(this.code,this.data,this.msg); + + factory ResponseModel.fromJson(Map json) => _$ResponseModelFromJson(json); + + Map toJson() => _$ResponseModelToJson(this); +} diff --git a/lib/modes/response_model.g.dart b/lib/modes/response_model.g.dart new file mode 100644 index 0000000..81a714a --- /dev/null +++ b/lib/modes/response_model.g.dart @@ -0,0 +1,21 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +part of 'response_model.dart'; + +// ************************************************************************** +// JsonSerializableGenerator +// ************************************************************************** + +ResponseModel _$ResponseModelFromJson(Map json) => + ResponseModel( + json['code'] as int?, + json['data'], + json['msg'] as String?, + ); + +Map _$ResponseModelToJson(ResponseModel instance) => + { + 'code': instance.code, + 'data': instance.data, + 'msg': instance.msg, + }; diff --git a/lib/network/api.dart b/lib/network/api.dart index d882419..98cf196 100644 --- a/lib/network/api.dart +++ b/lib/network/api.dart @@ -1,3 +1,3 @@ class Api { - static const String testApi = 'https://dart.dev'; + static const String testApi = 'home/courseLesson'; } \ No newline at end of file diff --git a/lib/network/basic_configuration.dart b/lib/network/basic_configuration.dart new file mode 100644 index 0000000..ed65158 --- /dev/null +++ b/lib/network/basic_configuration.dart @@ -0,0 +1,36 @@ +enum DevelopEvent { + ///开发环境 + dev, + ///测试环境 + test, + ///正式环境 + formal +} + +class BasicConfigurationManager { + factory BasicConfigurationManager() => _getInstance(); + + static BasicConfigurationManager? _instance; + + //服务器地址 + String? baseUrl; + //SessionId + String? sessionId; + + BasicConfigurationManager._internal(){ + DevelopEvent developType = DevelopEvent.dev; + if (developType == DevelopEvent.test) { + baseUrl = 'http://wow-app.dev.kouyuxingqiu.com'; + } else if(developType == DevelopEvent.dev) { + baseUrl = 'http://wow-app.dev.kouyuxingqiu.com'; + } else { + baseUrl = 'http://wow-app.dev.kouyuxingqiu.com'; + } + sessionId = ''; + } + + static BasicConfigurationManager _getInstance() { + _instance ??= BasicConfigurationManager._internal(); + return _instance!; + } +} \ No newline at end of file diff --git a/lib/network/network_manager.dart b/lib/network/network_manager.dart index 98a7cb7..e56514d 100644 --- a/lib/network/network_manager.dart +++ b/lib/network/network_manager.dart @@ -3,6 +3,7 @@ import 'dart:io'; import 'package:dio/dio.dart'; import 'package:flutter/foundation.dart'; import 'package:flutter_easyloading/flutter_easyloading.dart'; +import 'package:wow_english/network/basic_configuration.dart'; enum HttpMethod { get, @@ -24,9 +25,10 @@ class DioUtil { static BaseOptions getDefOptions() { final BaseOptions options = BaseOptions(); - options.baseUrl = ''; + options.baseUrl = BasicConfigurationManager().baseUrl??''; options.connectTimeout = const Duration(milliseconds: 1000); options.receiveTimeout = const Duration(milliseconds: 1000); + options.headers['content-type'] = 'application/x-www-form-urlencoded'; return options; } @@ -41,12 +43,17 @@ class DioUtil { required Function errorCallBack, }) async{ try { + Map headers = {}; + + if (method == HttpMethod.post) { + headers['content-type'] = 'application/x-www-form-urlencoded'; + } Response response; response = await _dio.request( path, data: data??{}, queryParameters: queryParameters, - options: Options(method: method.name), + options: Options(method: method.name,headers: headers), onSendProgress: onSendProgress, onReceiveProgress: onReceiveProgress); if (response.statusCode == HttpStatus.ok || diff --git a/lib/route/route.dart b/lib/route/route.dart index 9300d65..a62269a 100644 --- a/lib/route/route.dart +++ b/lib/route/route.dart @@ -1,6 +1,6 @@ import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; -import 'package:wow_english/app/transition_page.dart'; +import 'package:wow_english/app/splash_page.dart'; import 'package:wow_english/login/login_page.dart'; import 'package:wow_english/tab/tab_page.dart'; @@ -21,7 +21,7 @@ class AppRouter { case AppRouteName.splash: return PageRouteBuilder( opaque: false, - pageBuilder: (_,__,___) => const TransitionPage(), + pageBuilder: (_,__,___) => const SplashPage(), transitionDuration: Duration.zero, transitionsBuilder: (_, __, ___, child) => child); case AppRouteName.login: diff --git a/lib/widgets/we_app_bar.dart b/lib/widgets/we_app_bar.dart index 0ee0da1..a40fae7 100644 --- a/lib/widgets/we_app_bar.dart +++ b/lib/widgets/we_app_bar.dart @@ -19,7 +19,7 @@ class WEAppBar extends StatelessWidget implements PreferredSizeWidget { return AppBar( centerTitle: centerTitle, title: Text(titleText??''), - backgroundColor: backgroundColor, + backgroundColor: backgroundColor??Theme.of(context).colorScheme.inversePrimary, ); } -- libgit2 0.22.2