opt: seasons layout

This commit is contained in:
guozhigq
2024-11-17 22:33:53 +08:00
parent 1252b609a9
commit 5c8a822c2f
2 changed files with 38 additions and 7 deletions

View File

@ -2,6 +2,7 @@ import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:pilipala/http/member.dart';
import 'package:pilipala/models/member/seasons.dart';
import 'package:pilipala/utils/global_data_cache.dart';
class MemberSeasonsController extends GetxController {
final ScrollController scrollController = ScrollController();
@ -58,7 +59,7 @@ class MemberSeasonsController extends GetxController {
mid: mid,
seriesId: seriesId!,
pn: pn,
currentMid: 17340771,
currentMid: GlobalDataCache().userInfo?.mid ?? -1,
);
if (res['status']) {
seasonsList.addAll(res['data'].seriesList);

View File

@ -2,6 +2,8 @@ import 'package:easy_debounce/easy_throttle.dart';
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:pilipala/common/constants.dart';
import 'package:pilipala/common/skeleton/video_card_h.dart';
import 'package:pilipala/common/widgets/http_error.dart';
import 'controller.dart';
import 'widgets/item.dart';
@ -54,9 +56,9 @@ class _MemberSeasonsPageState extends State<MemberSeasonsPage> {
builder: (context, snapshot) {
if (snapshot.connectionState == ConnectionState.done) {
if (snapshot.data != null) {
Map data = snapshot.data as Map;
Map? data = snapshot.data;
List list = _memberSeasonsController.seasonsList;
if (data['status']) {
if (data?['status']) {
return Obx(
() => list.isNotEmpty
? LayoutBuilder(
@ -82,16 +84,44 @@ class _MemberSeasonsPageState extends State<MemberSeasonsPage> {
);
},
)
: const SizedBox(),
: const HttpError(
errMsg: '没有数据',
isInSliver: false,
isShowBtn: false,
),
);
} else {
return const SizedBox();
return HttpError(
errMsg: snapshot.data['msg'],
isInSliver: false,
fn: () {
setState(() {
_futureBuilderFuture =
_memberSeasonsController.onRefresh();
});
},
);
}
} else {
return const SizedBox();
return HttpError(
errMsg: snapshot.data['msg'] ?? '请求异常',
isInSliver: false,
fn: () {
setState(() {
_futureBuilderFuture =
_memberSeasonsController.onRefresh();
});
},
);
}
} else {
return const SizedBox();
return ListView.builder(
itemCount: 10,
shrinkWrap: true,
itemBuilder: (context, index) {
return const VideoCardHSkeleton();
},
);
}
},
),