import 'package:flutter/material.dart'; import 'package:get/get.dart'; import 'package:pilipala/http/member.dart'; import 'package:pilipala/models/member/archive.dart'; class MemberArchiveController extends GetxController { final ScrollController scrollController = ScrollController(); late int mid; int pn = 1; int count = 0; RxMap currentOrder = {}.obs; List> orderList = [ {'type': 'pubdate', 'label': '最新发布'}, {'type': 'click', 'label': '最多播放'}, {'type': 'stow', 'label': '最多收藏'}, ]; RxList archivesList = [].obs; @override void onInit() { super.onInit(); mid = int.parse(Get.parameters['mid']!); currentOrder.value = orderList.first; } // 获取用户投稿 Future getMemberArchive(type) async { if (type == 'init') { pn = 1; } var res = await MemberHttp.memberArchive( mid: mid, pn: pn, order: currentOrder['type']!, ); if (res['status']) { 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; } return res; } toggleSort() async { List 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'); } // 上拉加载 Future onLoad() async { getMemberArchive('onLoad'); } }