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