mirror of
https://github.com/bggRGjQaUbCoE/PiliPlus.git
synced 2026-05-09 03:27:46 +08:00
55
lib/pages/member_video_web/season_series/controller.dart
Normal file
55
lib/pages/member_video_web/season_series/controller.dart
Normal file
@@ -0,0 +1,55 @@
|
||||
import 'package:PiliPlus/http/loading_state.dart';
|
||||
import 'package:PiliPlus/http/member.dart';
|
||||
import 'package:PiliPlus/models/common/member/archive_sort_type_app.dart';
|
||||
import 'package:PiliPlus/models/common/member/web_ss_type.dart';
|
||||
import 'package:PiliPlus/models_new/member/season_web/archive.dart';
|
||||
import 'package:PiliPlus/models_new/member/season_web/data.dart';
|
||||
import 'package:PiliPlus/pages/member_video_web/base/controller.dart';
|
||||
import 'package:get/get.dart';
|
||||
|
||||
class MemberSSWebCtr
|
||||
extends BaseVideoWebCtr<SeasonWebData, SeasonArchive, ArchiveSortTypeApp> {
|
||||
@override
|
||||
final Rx<ArchiveSortTypeApp> order = Rx(.desc);
|
||||
late final WebSsType _type;
|
||||
late final Object _id;
|
||||
|
||||
@override
|
||||
void onInit() {
|
||||
final args = Get.arguments;
|
||||
_type = args['type'];
|
||||
_id = args['id'];
|
||||
super.onInit();
|
||||
}
|
||||
|
||||
@override
|
||||
List<SeasonArchive>? getDataList(SeasonWebData response) {
|
||||
return response.archives;
|
||||
}
|
||||
|
||||
@override
|
||||
bool customHandleResponse(
|
||||
bool isRefresh,
|
||||
Success<SeasonWebData> response,
|
||||
) {
|
||||
if (isRefresh) {
|
||||
final data = response.response;
|
||||
if (data.page?.total case final total?) {
|
||||
count = total;
|
||||
totalPage = (total / ps).ceil();
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@override
|
||||
Future<LoadingState<SeasonWebData>> customGetData() =>
|
||||
MemberHttp.seasonSeriesWeb(
|
||||
type: _type,
|
||||
mid: mid,
|
||||
id: _id,
|
||||
ps: ps,
|
||||
pn: page,
|
||||
sort: order.value,
|
||||
);
|
||||
}
|
||||
55
lib/pages/member_video_web/season_series/view.dart
Normal file
55
lib/pages/member_video_web/season_series/view.dart
Normal file
@@ -0,0 +1,55 @@
|
||||
import 'package:PiliPlus/models/common/member/archive_sort_type_app.dart';
|
||||
import 'package:PiliPlus/models/common/member/web_ss_type.dart';
|
||||
import 'package:PiliPlus/models_new/member/season_web/archive.dart';
|
||||
import 'package:PiliPlus/models_new/member/season_web/data.dart';
|
||||
import 'package:PiliPlus/pages/member_video_web/base/view.dart';
|
||||
import 'package:PiliPlus/pages/member_video_web/season_series/controller.dart';
|
||||
import 'package:PiliPlus/utils/grid.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:get/get.dart';
|
||||
|
||||
class MemberSSWeb extends StatefulWidget {
|
||||
const MemberSSWeb({super.key});
|
||||
|
||||
@override
|
||||
State<MemberSSWeb> createState() => _MemberSSWebState();
|
||||
|
||||
static Future<void>? toMemberSSWeb({
|
||||
required WebSsType type,
|
||||
required Object id,
|
||||
required Object mid,
|
||||
required String name,
|
||||
}) {
|
||||
return Get.toNamed(
|
||||
'/ssWeb',
|
||||
arguments: {
|
||||
'type': type,
|
||||
'id': id,
|
||||
'mid': mid,
|
||||
'name': name,
|
||||
},
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
class _MemberSSWebState
|
||||
extends
|
||||
BaseVideoWebState<
|
||||
MemberSSWeb,
|
||||
SeasonWebData,
|
||||
SeasonArchive,
|
||||
ArchiveSortTypeApp
|
||||
>
|
||||
with GridMixin {
|
||||
@override
|
||||
late final MemberSSWebCtr controller;
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
controller = Get.put(MemberSSWebCtr(), tag: name);
|
||||
}
|
||||
|
||||
@override
|
||||
List<ArchiveSortTypeApp> get values => ArchiveSortTypeApp.values;
|
||||
}
|
||||
Reference in New Issue
Block a user