diff --git a/lib/http/search.dart b/lib/http/search.dart index e05c296f3..9ff98aaf8 100644 --- a/lib/http/search.dart +++ b/lib/http/search.dart @@ -82,7 +82,7 @@ class SearchHttp { int? pubEnd, }) async { var reqData = { - 'search_type': searchType.type, + 'search_type': searchType.name, 'keyword': keyword, // 'order_sort': 0, // 'user_type': 0, @@ -117,7 +117,7 @@ class SearchHttp { case SearchType.bili_user: data = SearchUserModel.fromJson(res.data['data']); break; - case SearchType.media_bangumi: + case SearchType.media_bangumi || SearchType.media_ft: data = SearchMBangumiModel.fromJson(res.data['data']); break; case SearchType.article: diff --git a/lib/models/common/search_type.dart b/lib/models/common/search_type.dart index d7d13aec6..b2d834415 100644 --- a/lib/models/common/search_type.dart +++ b/lib/models/common/search_type.dart @@ -5,7 +5,7 @@ enum SearchType { // 番剧:media_bangumi, media_bangumi, // 影视:media_ft - // media_ft, + media_ft, // 直播间及主播:live // live, // 直播间:live_room @@ -23,9 +23,7 @@ enum SearchType { } extension SearchTypeExtension on SearchType { - String get type => - ['video', 'media_bangumi', 'live_room', 'bili_user', 'article'][index]; - String get label => ['视频', '番剧', '直播间', '用户', '专栏'][index]; + String get label => ['视频', '番剧', '影视', '直播间', '用户', '专栏'][index]; } // 搜索类型为视频、专栏及相簿时 diff --git a/lib/pages/search_panel/controller.dart b/lib/pages/search_panel/controller.dart index 90a564d2c..f1b5aaa7b 100644 --- a/lib/pages/search_panel/controller.dart +++ b/lib/pages/search_panel/controller.dart @@ -98,7 +98,7 @@ class SearchPanelController extends CommonController { keyword: keyword!, page: currentPage, order: order.value, - duration: searchType!.type != 'video' ? null : duration.value, + duration: searchType!.name != 'video' ? null : duration.value, tids: tids, orderSort: orderSort, userType: userType, diff --git a/lib/pages/search_panel/view.dart b/lib/pages/search_panel/view.dart index 137dc1596..d465016e6 100644 --- a/lib/pages/search_panel/view.dart +++ b/lib/pages/search_panel/view.dart @@ -46,7 +46,7 @@ class _SearchPanelState extends State searchType: widget.searchType, tag: widget.tag, ), - tag: widget.searchType!.type + widget.keyword!, + tag: widget.searchType!.name + widget.keyword!, ); } @@ -71,14 +71,17 @@ class _SearchPanelState extends State mainAxisSpacing: 2, maxCrossAxisExtent: Grid.maxRowWidth * 2, childAspectRatio: StyleString.aspectRatio * - (widget.searchType == SearchType.media_bangumi ? 1.5 : 2.2), + (widget.searchType == SearchType.media_bangumi || + widget.searchType == SearchType.media_ft + ? 1.5 + : 2.2), ), delegate: SliverChildBuilderDelegate( (context, index) { switch (widget.searchType) { case SearchType.video: return const VideoCardHSkeleton(); - case SearchType.media_bangumi: + case SearchType.media_bangumi || SearchType.media_ft: return const MediaBangumiSkeleton(); case SearchType.bili_user: return const VideoCardHSkeleton(); @@ -101,7 +104,7 @@ class _SearchPanelState extends State _searchPanelController, loadingState, ); - case SearchType.media_bangumi: + case SearchType.media_bangumi || SearchType.media_ft: return searchBangumiPanel( context, _searchPanelController, diff --git a/lib/pages/search_result/controller.dart b/lib/pages/search_result/controller.dart index c356d65bd..6e9d8bc6c 100644 --- a/lib/pages/search_result/controller.dart +++ b/lib/pages/search_result/controller.dart @@ -1,9 +1,11 @@ +import 'package:PiliPlus/models/common/search_type.dart'; import 'package:get/get.dart'; class SearchResultController extends GetxController { String? keyword; - RxList count = List.generate(5, (_) => -1).toList().obs; + RxList count = + List.generate(SearchType.values.length, (_) => -1).toList().obs; @override void onInit() { diff --git a/lib/pages/search_result/view.dart b/lib/pages/search_result/view.dart index 460184a6a..2f9dbb08f 100644 --- a/lib/pages/search_result/view.dart +++ b/lib/pages/search_result/view.dart @@ -56,7 +56,7 @@ class _SearchResultPageState extends State ), ), title: GestureDetector( - onTap: () => Get.back(), + onTap: Get.back, child: SizedBox( width: double.infinity, child: Text( @@ -110,7 +110,7 @@ class _SearchResultPageState extends State onTap: (index) { if (_tabController.indexIsChanging.not) { Get.find( - tag: SearchType.values[index].type + + tag: SearchType.values[index].name + _searchResultController.keyword!) .animateToTop(); }