feat: up投稿显示充电专属
This commit is contained in:
@ -96,7 +96,14 @@ class MemberHttp {
|
||||
'dm_img_str': dmImgStr.substring(0, dmImgStr.length - 2),
|
||||
'dm_cover_img_str': dmCoverImgStr.substring(0, dmCoverImgStr.length - 2),
|
||||
'dm_img_inter': '{"ds":[],"wh":[0,0,0],"of":[0,0,0]}',
|
||||
...order == 'charge'
|
||||
? {
|
||||
'order': 'pubdate',
|
||||
'special_type': 'charging',
|
||||
}
|
||||
: {}
|
||||
});
|
||||
|
||||
var res = await Request().get(
|
||||
Api.memberArchive,
|
||||
data: params,
|
||||
|
@ -9,12 +9,14 @@ class MemberArchiveController extends GetxController {
|
||||
int pn = 1;
|
||||
int count = 0;
|
||||
RxMap<String, String> currentOrder = <String, String>{}.obs;
|
||||
List<Map<String, String>> orderList = [
|
||||
RxList<Map<String, String>> orderList = [
|
||||
{'type': 'pubdate', 'label': '最新发布'},
|
||||
{'type': 'click', 'label': '最多播放'},
|
||||
{'type': 'stow', 'label': '最多收藏'},
|
||||
];
|
||||
{'type': 'charge', 'label': '充电专属'},
|
||||
].obs;
|
||||
RxList<VListItemModel> archivesList = <VListItemModel>[].obs;
|
||||
RxBool isLoading = false.obs;
|
||||
|
||||
@override
|
||||
void onInit() {
|
||||
@ -27,6 +29,8 @@ class MemberArchiveController extends GetxController {
|
||||
Future getMemberArchive(type) async {
|
||||
if (type == 'init') {
|
||||
pn = 1;
|
||||
archivesList.clear();
|
||||
isLoading.value = true;
|
||||
}
|
||||
var res = await MemberHttp.memberArchive(
|
||||
mid: mid,
|
||||
@ -43,6 +47,7 @@ class MemberArchiveController extends GetxController {
|
||||
count = res['data'].page['count'];
|
||||
pn += 1;
|
||||
}
|
||||
isLoading.value = false;
|
||||
return res;
|
||||
}
|
||||
|
||||
|
@ -1,6 +1,8 @@
|
||||
import 'package:easy_debounce/easy_throttle.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:get/get.dart';
|
||||
import 'package:pilipala/common/skeleton/video_card_h.dart';
|
||||
import 'package:pilipala/common/widgets/no_data.dart';
|
||||
import 'package:pilipala/common/widgets/video_card_h.dart';
|
||||
import 'package:pilipala/utils/utils.dart';
|
||||
import '../../common/widgets/http_error.dart';
|
||||
@ -47,14 +49,29 @@ class _MemberArchivePageState extends State<MemberArchivePage> {
|
||||
appBar: AppBar(
|
||||
titleSpacing: 0,
|
||||
centerTitle: false,
|
||||
title: Text('他的投稿', style: Theme.of(context).textTheme.titleMedium),
|
||||
title: Obx(
|
||||
() => Text(
|
||||
'他的投稿 - ${_memberArchivesController.currentOrder['label']}',
|
||||
style: Theme.of(context).textTheme.titleMedium),
|
||||
),
|
||||
actions: [
|
||||
Obx(
|
||||
() => TextButton.icon(
|
||||
icon: const Icon(Icons.sort, size: 20),
|
||||
onPressed: _memberArchivesController.toggleSort,
|
||||
label: Text(_memberArchivesController.currentOrder['label']!),
|
||||
),
|
||||
// Obx(
|
||||
PopupMenuButton(
|
||||
icon: const Icon(Icons.more_vert),
|
||||
onSelected: (value) {
|
||||
// 这里处理选择逻辑
|
||||
_memberArchivesController.currentOrder.value = value;
|
||||
_memberArchivesController.getMemberArchive('init');
|
||||
},
|
||||
itemBuilder: (BuildContext context) =>
|
||||
_memberArchivesController.orderList.map(
|
||||
(e) {
|
||||
return PopupMenuItem(
|
||||
value: e,
|
||||
child: Text(e['label']!),
|
||||
);
|
||||
},
|
||||
).toList(),
|
||||
),
|
||||
const SizedBox(width: 6),
|
||||
],
|
||||
@ -85,7 +102,14 @@ class _MemberArchivePageState extends State<MemberArchivePage> {
|
||||
childCount: list.length,
|
||||
),
|
||||
)
|
||||
: const SliverToBoxAdapter(),
|
||||
: _memberArchivesController.isLoading.value
|
||||
? SliverList(
|
||||
delegate: SliverChildBuilderDelegate(
|
||||
(context, index) {
|
||||
return const VideoCardHSkeleton();
|
||||
}, childCount: 10),
|
||||
)
|
||||
: const NoData(),
|
||||
);
|
||||
} else {
|
||||
return HttpError(
|
||||
@ -100,7 +124,11 @@ class _MemberArchivePageState extends State<MemberArchivePage> {
|
||||
);
|
||||
}
|
||||
} else {
|
||||
return const SliverToBoxAdapter();
|
||||
return SliverList(
|
||||
delegate: SliverChildBuilderDelegate((context, index) {
|
||||
return const VideoCardHSkeleton();
|
||||
}, childCount: 10),
|
||||
);
|
||||
}
|
||||
},
|
||||
),
|
||||
|
Reference in New Issue
Block a user