Merge remote-tracking branch 'upstream/main'

This commit is contained in:
orz12
2024-02-14 08:26:14 +08:00
32 changed files with 1128 additions and 293 deletions

View File

@@ -26,7 +26,7 @@ class MemberArchiveController extends GetxController {
// 获取用户投稿
Future getMemberArchive(type) async {
if (type == 'onRefresh') {
if (type == 'init') {
pn = 1;
}
var res = await MemberHttp.memberArchive(
@@ -35,7 +35,12 @@ class MemberArchiveController extends GetxController {
order: currentOrder['type']!,
);
if (res['status']) {
archivesList.addAll(res['data'].list.vlist);
if (type == 'init') {
archivesList.value = res['data'].list.vlist;
}
if (type == 'onLoad') {
archivesList.addAll(res['data'].list.vlist);
}
count = res['data'].page['count'];
pn += 1;
} else {
@@ -45,13 +50,14 @@ class MemberArchiveController extends GetxController {
}
toggleSort() async {
pn = 1;
int index = orderList.indexOf(currentOrder);
List<String> typeList = orderList.map((e) => e['type']!).toList();
int index = typeList.indexOf(currentOrder['type']!);
if (index == orderList.length - 1) {
currentOrder.value = orderList.first;
} else {
currentOrder.value = orderList[index + 1];
}
getMemberArchive('init');
}
// 上拉加载

View File

@@ -25,8 +25,7 @@ class _MemberArchivePageState extends State<MemberArchivePage> {
final String heroTag = Utils.makeHeroTag(mid);
_memberArchivesController =
Get.put(MemberArchiveController(), tag: heroTag);
_futureBuilderFuture =
_memberArchivesController.getMemberArchive('onRefresh');
_futureBuilderFuture = _memberArchivesController.getMemberArchive('init');
scrollController = _memberArchivesController.scrollController;
scrollController.addListener(
() {
@@ -48,39 +47,16 @@ class _MemberArchivePageState extends State<MemberArchivePage> {
titleSpacing: 0,
centerTitle: false,
title: Text('他的投稿', style: Theme.of(context).textTheme.titleMedium),
// actions: [
// Obx(
// () => PopupMenuButton<String>(
// padding: EdgeInsets.zero,
// tooltip: '投稿排序',
// icon: Icon(
// Icons.more_vert_outlined,
// color: Theme.of(context).colorScheme.outline,
// ),
// position: PopupMenuPosition.under,
// onSelected: (String type) {},
// itemBuilder: (BuildContext context) => <PopupMenuEntry<String>>[
// for (var i in _memberArchivesController.orderList) ...[
// PopupMenuItem<String>(
// onTap: () {},
// value: _memberArchivesController.currentOrder['label'],
// child: Row(
// mainAxisSize: MainAxisSize.min,
// children: [
// Text(i['label']!),
// if (_memberArchivesController.currentOrder['label'] ==
// i['label']) ...[
// const SizedBox(width: 10),
// const Icon(Icons.done, size: 20),
// ],
// ],
// ),
// ),
// ]
// ],
// ),
// ),
// ],
actions: [
Obx(
() => TextButton.icon(
icon: const Icon(Icons.sort, size: 20),
onPressed: _memberArchivesController.toggleSort,
label: Text(_memberArchivesController.currentOrder['label']!),
),
),
const SizedBox(width: 6),
],
),
body: CustomScrollView(
controller: _memberArchivesController.scrollController,