mirror of
https://github.com/bggRGjQaUbCoE/PiliPlus.git
synced 2026-06-22 02:03:58 +08:00
opt: space tab
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
This commit is contained in:
@@ -76,7 +76,7 @@ class SearchHttp {
|
||||
queryParameters: params,
|
||||
);
|
||||
if (res.data is! Map) {
|
||||
return Error('没有相关数据');
|
||||
return const Error('没有相关数据');
|
||||
}
|
||||
if (res.data['code'] == 0) {
|
||||
dynamic data;
|
||||
@@ -144,7 +144,7 @@ class SearchHttp {
|
||||
queryParameters: params,
|
||||
);
|
||||
if (res.data is! Map) {
|
||||
return Error('没有相关数据');
|
||||
return const Error('没有相关数据');
|
||||
}
|
||||
if (res.data['code'] == 0) {
|
||||
try {
|
||||
|
||||
@@ -241,7 +241,7 @@ class UserHttp {
|
||||
);
|
||||
if (res.data['code'] == 0) {
|
||||
if (res.data['data']['count'] == 0) {
|
||||
return Success({'count': 0});
|
||||
return const Success({'count': 0});
|
||||
}
|
||||
List<HotVideoItemModel> list = <HotVideoItemModel>[];
|
||||
if (res.data['data']?['list'] != null) {
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
import 'package:PiliPlus/models/space/filter.dart';
|
||||
import 'package:json_annotation/json_annotation.dart';
|
||||
|
||||
part 'item.g.dart';
|
||||
@@ -47,8 +46,6 @@ class SpaceItem {
|
||||
bool? state;
|
||||
String? bvid;
|
||||
int? videos;
|
||||
// @JsonKey(name: 'three_point')
|
||||
// List<ThreePoint>? threePoint;
|
||||
@JsonKey(name: 'first_cid')
|
||||
int? firstCid;
|
||||
@JsonKey(name: 'view_content')
|
||||
@@ -57,7 +54,6 @@ class SpaceItem {
|
||||
int? iconType;
|
||||
@JsonKey(name: 'publish_time_text')
|
||||
String? publishTimeText;
|
||||
List<SpaceTabFilter>? filter;
|
||||
|
||||
SpaceItem({
|
||||
this.title,
|
||||
@@ -89,12 +85,10 @@ class SpaceItem {
|
||||
this.state,
|
||||
this.bvid,
|
||||
this.videos,
|
||||
// this.threePoint,
|
||||
this.firstCid,
|
||||
this.viewContent,
|
||||
this.iconType,
|
||||
this.publishTimeText,
|
||||
this.filter,
|
||||
});
|
||||
|
||||
factory SpaceItem.fromJson(Map<String, dynamic> json) => _$ItemFromJson(json);
|
||||
|
||||
@@ -36,16 +36,10 @@ SpaceItem _$ItemFromJson(Map<String, dynamic> json) => SpaceItem(
|
||||
state: json['state'] as bool?,
|
||||
bvid: json['bvid'] as String?,
|
||||
videos: (json['videos'] as num?)?.toInt(),
|
||||
// threePoint: (json['three_point'] as List<dynamic>?)
|
||||
// ?.map((e) => ThreePoint.fromJson(e as Map<String, dynamic>))
|
||||
// .toList(),
|
||||
firstCid: (json['first_cid'] as num?)?.toInt(),
|
||||
viewContent: json['view_content'] as String?,
|
||||
iconType: (json['icon_type'] as num?)?.toInt(),
|
||||
publishTimeText: json['publish_time_text'] as String?,
|
||||
filter: (json['filter'] as List?)
|
||||
?.map((e) => SpaceTabFilter.fromJson(e))
|
||||
.toList(),
|
||||
);
|
||||
|
||||
Map<String, dynamic> _$ItemToJson(SpaceItem instance) => <String, dynamic>{
|
||||
@@ -78,7 +72,6 @@ Map<String, dynamic> _$ItemToJson(SpaceItem instance) => <String, dynamic>{
|
||||
'state': instance.state,
|
||||
'bvid': instance.bvid,
|
||||
'videos': instance.videos,
|
||||
// 'three_point': instance.threePoint,
|
||||
'first_cid': instance.firstCid,
|
||||
'view_content': instance.viewContent,
|
||||
'icon_type': instance.iconType,
|
||||
|
||||
@@ -1,16 +1,15 @@
|
||||
import 'package:PiliPlus/models/space/tab_item.dart';
|
||||
import 'package:json_annotation/json_annotation.dart';
|
||||
|
||||
import 'package:PiliPlus/models/space/item.dart';
|
||||
|
||||
part 'tab2.g.dart';
|
||||
|
||||
@JsonSerializable()
|
||||
class Tab2 {
|
||||
String? title;
|
||||
String? param;
|
||||
List<SpaceItem>? items;
|
||||
final String? title;
|
||||
final String? param;
|
||||
final List<SpaceTabItem>? items;
|
||||
|
||||
Tab2({this.title, this.param, this.items});
|
||||
const Tab2({this.title, this.param, this.items});
|
||||
|
||||
factory Tab2.fromJson(Map<String, dynamic> json) => _$Tab2FromJson(json);
|
||||
|
||||
|
||||
@@ -10,7 +10,7 @@ Tab2 _$Tab2FromJson(Map<String, dynamic> json) => Tab2(
|
||||
title: json['title'] as String?,
|
||||
param: json['param'] as String?,
|
||||
items: (json['items'] as List<dynamic>?)
|
||||
?.map((e) => SpaceItem.fromJson(e as Map<String, dynamic>))
|
||||
?.map((e) => SpaceTabItem.fromJson(e as Map<String, dynamic>))
|
||||
.toList(),
|
||||
);
|
||||
|
||||
|
||||
27
lib/models/space/tab_item.dart
Normal file
27
lib/models/space/tab_item.dart
Normal file
@@ -0,0 +1,27 @@
|
||||
import 'package:PiliPlus/models/space/filter.dart';
|
||||
|
||||
class SpaceTabItem {
|
||||
final String? title;
|
||||
final String? param;
|
||||
final int? seriesId;
|
||||
final int? seasonId;
|
||||
final List<SpaceTabFilter>? filter;
|
||||
|
||||
const SpaceTabItem({
|
||||
this.title,
|
||||
this.param,
|
||||
this.seriesId,
|
||||
this.seasonId,
|
||||
this.filter,
|
||||
});
|
||||
|
||||
factory SpaceTabItem.fromJson(Map<String, dynamic> json) => SpaceTabItem(
|
||||
title: json['title'] as String?,
|
||||
param: json['param'] as String?,
|
||||
seriesId: (json['series_id'] as num?)?.toInt(),
|
||||
seasonId: (json['season_id'] as num?)?.toInt(),
|
||||
filter: (json['filter'] as List?)
|
||||
?.map((e) => SpaceTabFilter.fromJson(e))
|
||||
.toList(),
|
||||
);
|
||||
}
|
||||
@@ -63,7 +63,7 @@ abstract class CommonWhisperController<R>
|
||||
Future<void> onDeleteList() async {
|
||||
var res = await ImGrpc.deleteSessionList(pageType: sessionPageType);
|
||||
if (res.isSuccess) {
|
||||
loadingState.value = Success(null);
|
||||
loadingState.value = const Success(null);
|
||||
} else {
|
||||
res.toast();
|
||||
}
|
||||
|
||||
@@ -17,7 +17,7 @@ class FavController
|
||||
@override
|
||||
Future<void> queryData([bool isRefresh = true]) {
|
||||
if (mid == 0) {
|
||||
loadingState.value = Error('账号未登录');
|
||||
loadingState.value = const Error('账号未登录');
|
||||
return Future.value();
|
||||
}
|
||||
return super.queryData(isRefresh);
|
||||
|
||||
@@ -90,7 +90,7 @@ class _HistoryPageState extends State<HistoryPage>
|
||||
_historyController.baseCtr
|
||||
.onClearHistory(context, () {
|
||||
_historyController.loadingState.value =
|
||||
Success(null);
|
||||
const Success(null);
|
||||
if (_historyController.tabController !=
|
||||
null) {
|
||||
for (final item
|
||||
@@ -99,7 +99,7 @@ class _HistoryPageState extends State<HistoryPage>
|
||||
Get.find<HistoryController>(
|
||||
tag: item.type)
|
||||
.loadingState
|
||||
.value = Success(null);
|
||||
.value = const Success(null);
|
||||
} catch (_) {}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,8 +5,8 @@ import 'package:PiliPlus/http/member.dart';
|
||||
import 'package:PiliPlus/http/video.dart';
|
||||
import 'package:PiliPlus/models/common/member/tab_type.dart';
|
||||
import 'package:PiliPlus/models/space/data.dart';
|
||||
import 'package:PiliPlus/models/space/item.dart';
|
||||
import 'package:PiliPlus/models/space/tab2.dart';
|
||||
import 'package:PiliPlus/models/space/tab_item.dart';
|
||||
import 'package:PiliPlus/pages/common/common_data_controller.dart';
|
||||
import 'package:PiliPlus/utils/request_utils.dart';
|
||||
import 'package:PiliPlus/utils/storage.dart';
|
||||
@@ -123,12 +123,12 @@ class MemberController extends CommonDataController<SpaceData, SpaceData?>
|
||||
|
||||
@override
|
||||
bool handleError(String? errMsg) {
|
||||
tab2 = [
|
||||
tab2 = const [
|
||||
Tab2(title: '动态', param: 'dynamic'),
|
||||
Tab2(
|
||||
title: '投稿',
|
||||
param: 'contribute',
|
||||
items: [SpaceItem(title: '视频', param: 'video')],
|
||||
items: [SpaceTabItem(title: '视频', param: 'video')],
|
||||
),
|
||||
Tab2(title: '收藏', param: 'favorite'),
|
||||
Tab2(title: '追番', param: 'bangumi'),
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
import 'dart:math';
|
||||
|
||||
import 'package:PiliPlus/http/loading_state.dart';
|
||||
import 'package:PiliPlus/models/space/item.dart';
|
||||
import 'package:PiliPlus/models/space/tab2.dart';
|
||||
import 'package:PiliPlus/models/space/tab_item.dart';
|
||||
import 'package:PiliPlus/pages/common/common_data_controller.dart';
|
||||
import 'package:PiliPlus/pages/member/controller.dart';
|
||||
import 'package:PiliPlus/utils/extension.dart';
|
||||
@@ -21,7 +21,7 @@ class MemberContributeCtr extends CommonDataController
|
||||
TabController? tabController;
|
||||
List<Tab>? tabs;
|
||||
late final _ctr = Get.find<MemberController>(tag: heroTag);
|
||||
List<SpaceItem>? items;
|
||||
List<SpaceTabItem>? items;
|
||||
|
||||
@override
|
||||
void onInit() {
|
||||
@@ -34,7 +34,7 @@ class MemberContributeCtr extends CommonDataController
|
||||
// show if exist
|
||||
if (_ctr.hasSeasonOrSeries == true) {
|
||||
items!.add(
|
||||
SpaceItem(
|
||||
const SpaceTabItem(
|
||||
param: 'ugcSeason',
|
||||
title: '全部合集/列表',
|
||||
),
|
||||
|
||||
@@ -5,7 +5,7 @@ import 'package:PiliPlus/common/widgets/loading_widget/loading_widget.dart';
|
||||
import 'package:PiliPlus/common/widgets/video_card/video_card_v_member_home.dart';
|
||||
import 'package:PiliPlus/http/loading_state.dart';
|
||||
import 'package:PiliPlus/models/space/data.dart';
|
||||
import 'package:PiliPlus/models/space/item.dart';
|
||||
import 'package:PiliPlus/models/space/tab_item.dart';
|
||||
import 'package:PiliPlus/pages/bangumi/widgets/bangumi_card_v_member_home.dart';
|
||||
import 'package:PiliPlus/pages/member/controller.dart';
|
||||
import 'package:PiliPlus/pages/member_article/widget/item.dart';
|
||||
@@ -257,7 +257,7 @@ class _MemberHomeState extends State<MemberHome>
|
||||
_ctr.tab2!.indexWhere((item) => item.param == param);
|
||||
if (index != -1) {
|
||||
if (['video', 'article', 'audio'].contains(param1)) {
|
||||
List<SpaceItem> items = _ctr.tab2!
|
||||
List<SpaceTabItem> items = _ctr.tab2!
|
||||
.firstWhere((item) => item.param == param)
|
||||
.items!;
|
||||
int index1 =
|
||||
|
||||
@@ -21,7 +21,7 @@ class SubController
|
||||
@override
|
||||
Future<void> queryData([bool isRefresh = true]) {
|
||||
if (mid == 0) {
|
||||
loadingState.value = Error('账号未登录');
|
||||
loadingState.value = const Error('账号未登录');
|
||||
return Future.value();
|
||||
}
|
||||
return super.queryData(isRefresh);
|
||||
|
||||
@@ -1092,7 +1092,7 @@ class VideoDetailController extends GetxController
|
||||
subType: videoType == SearchType.media_bangumi ? subType : null,
|
||||
callback: () {
|
||||
if (videoState.value is! Success) {
|
||||
videoState.value = Success(null);
|
||||
videoState.value = const Success(null);
|
||||
}
|
||||
setSubtitle(vttSubtitlesIndex.value);
|
||||
},
|
||||
@@ -1186,7 +1186,7 @@ class VideoDetailController extends GetxController
|
||||
SmartDialog.showToast('视频资源不存在');
|
||||
autoPlay.value = false;
|
||||
isShowCover.value = true;
|
||||
videoState.value = Error('视频资源不存在');
|
||||
videoState.value = const Error('视频资源不存在');
|
||||
if (plPlayerController.isFullScreen.value) {
|
||||
plPlayerController.toggleFullScreen(false);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user