From 13e6d11d22b42f46e7ee9c325ff3a8aa958683f2 Mon Sep 17 00:00:00 2001 From: lcy <2503978335@qq.com> Date: Mon, 26 Jun 2023 09:24:53 +0800 Subject: [PATCH] feat:首页课程模块接口 --- lib/common/request/dao/home_dao.dart | 16 ++++++++++++++++ lib/pages/home/bloc/home_bloc.dart | 19 +++++++++++++++++-- lib/pages/home/bloc/home_state.dart | 2 ++ lib/pages/home/home_page.dart | 4 +--- lib/pages/lessons/bloc/lesson_bloc.dart | 17 ++++++++++++++++- lib/pages/lessons/bloc/lesson_state.dart | 2 ++ lib/pages/lessons/lesson_page.dart | 3 ++- 7 files changed, 56 insertions(+), 7 deletions(-) create mode 100644 lib/common/request/dao/home_dao.dart diff --git a/lib/common/request/dao/home_dao.dart b/lib/common/request/dao/home_dao.dart new file mode 100644 index 0000000..dc73962 --- /dev/null +++ b/lib/common/request/dao/home_dao.dart @@ -0,0 +1,16 @@ +import 'package:wow_english/common/request/apis.dart'; +import 'package:wow_english/common/request/request_client.dart'; + +class HomeDao { + ///获取课程模块信息 + static Future courseModule() async { + var data = requestClient.get(Apis.courseModule); + return data; + } + + ///课程列表 + static Future courseLesson() async { + var data = requestClient.get(Apis.courseLesson); + return data; + } +} diff --git a/lib/pages/home/bloc/home_bloc.dart b/lib/pages/home/bloc/home_bloc.dart index d70e546..b3a0880 100644 --- a/lib/pages/home/bloc/home_bloc.dart +++ b/lib/pages/home/bloc/home_bloc.dart @@ -1,14 +1,29 @@ import 'package:flutter/cupertino.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; +import 'package:wow_english/common/request/dao/home_dao.dart'; +import 'package:wow_english/common/request/exception.dart'; +import 'package:wow_english/utils/loading.dart'; part 'home_event.dart'; part 'home_state.dart'; class HomeBloc extends Bloc { - final PageController pageController; - HomeBloc(this.pageController) : super(HomeInitial()) { + HomeBloc() : super(HomeInitial()) { on((event, emit) { // TODO: implement event handler }); } + + Future requestData() async { + try { + await loading(() async { + HomeDao.courseLesson(); + emit(HomeDataLoadState()); + }); + } catch (e) { + if (e is ApiException) { + + } + } + } } diff --git a/lib/pages/home/bloc/home_state.dart b/lib/pages/home/bloc/home_state.dart index 423dfab..8f83f67 100644 --- a/lib/pages/home/bloc/home_state.dart +++ b/lib/pages/home/bloc/home_state.dart @@ -4,3 +4,5 @@ part of 'home_bloc.dart'; abstract class HomeState {} class HomeInitial extends HomeState {} + +class HomeDataLoadState extends HomeState {} diff --git a/lib/pages/home/home_page.dart b/lib/pages/home/home_page.dart index 955b0b0..01e72d4 100644 --- a/lib/pages/home/home_page.dart +++ b/lib/pages/home/home_page.dart @@ -14,9 +14,7 @@ class HomePage extends StatelessWidget { @override Widget build(BuildContext context) { return BlocProvider( - create: (context) => HomeBloc(PageController( - initialPage: 0, - )), + create: (context) => HomeBloc()..requestData(), child: _HomePageView(), ); } diff --git a/lib/pages/lessons/bloc/lesson_bloc.dart b/lib/pages/lessons/bloc/lesson_bloc.dart index 91c603f..a14f013 100644 --- a/lib/pages/lessons/bloc/lesson_bloc.dart +++ b/lib/pages/lessons/bloc/lesson_bloc.dart @@ -1,6 +1,8 @@ - import 'package:flutter/cupertino.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; +import 'package:wow_english/common/request/dao/home_dao.dart'; +import 'package:wow_english/common/request/exception.dart'; +import 'package:wow_english/utils/loading.dart'; part 'lesson_event.dart'; part 'lesson_state.dart'; @@ -20,6 +22,19 @@ class LessonBloc extends Bloc { on(_pageIndexChange); } + Future requestData() async { + try { + await loading(() async { + HomeDao.courseModule(); + emit(LessonDataLoadState()); + }); + } catch (e) { + if (e is ApiException) { + + } + } + } + void _pageIndexChange(PageViewChangeIndexEvent event,Emitter emitter) async { _currentPageIndex = event.index; emitter(PageIndexChangeState()); diff --git a/lib/pages/lessons/bloc/lesson_state.dart b/lib/pages/lessons/bloc/lesson_state.dart index 5c21ecb..fac0b10 100644 --- a/lib/pages/lessons/bloc/lesson_state.dart +++ b/lib/pages/lessons/bloc/lesson_state.dart @@ -6,3 +6,5 @@ abstract class LessonState {} class LessonInitial extends LessonState {} class PageIndexChangeState extends LessonState {} + +class LessonDataLoadState extends LessonState {} diff --git a/lib/pages/lessons/lesson_page.dart b/lib/pages/lessons/lesson_page.dart index 6b1d5e6..9a3d294 100644 --- a/lib/pages/lessons/lesson_page.dart +++ b/lib/pages/lessons/lesson_page.dart @@ -21,7 +21,8 @@ class LessonPage extends StatelessWidget { PageController( initialPage: starPageIndex??0, viewportFraction: 0.3 - ),), + ), + )..requestData(), child: _LessonPageView(), ); } -- libgit2 0.22.2