52 lines
1.3 KiB
Dart
52 lines
1.3 KiB
Dart
import 'package:flutter/material.dart';
|
|
import 'package:get/get.dart';
|
|
import 'package:pilipala/http/member.dart';
|
|
import 'package:pilipala/models/dynamics/result.dart';
|
|
import 'package:pilipala/utils/global_data_cache.dart';
|
|
|
|
class MemberDynamicsController extends GetxController {
|
|
final ScrollController scrollController = ScrollController();
|
|
late int mid;
|
|
String offset = '';
|
|
int count = 0;
|
|
bool hasMore = true;
|
|
RxList<DynamicItemModel> dynamicsList = <DynamicItemModel>[].obs;
|
|
late int ownerMid;
|
|
RxBool isOwner = false.obs;
|
|
|
|
@override
|
|
void onInit() {
|
|
super.onInit();
|
|
mid = int.parse(Get.parameters['mid']!);
|
|
ownerMid = GlobalDataCache().userInfo != null
|
|
? GlobalDataCache().userInfo!.mid!
|
|
: -1;
|
|
isOwner.value = mid == -1 || mid == ownerMid;
|
|
}
|
|
|
|
Future getMemberDynamic(type) async {
|
|
if (type == 'onRefresh') {
|
|
offset = '';
|
|
dynamicsList.clear();
|
|
}
|
|
if (offset == '-1') {
|
|
return;
|
|
}
|
|
var res = await MemberHttp.memberDynamic(
|
|
offset: offset,
|
|
mid: mid,
|
|
);
|
|
if (res['status']) {
|
|
dynamicsList.addAll(res['data'].items);
|
|
offset = res['data'].offset != '' ? res['data'].offset : '-1';
|
|
hasMore = res['data'].hasMore;
|
|
}
|
|
return res;
|
|
}
|
|
|
|
// 上拉加载
|
|
Future onLoad() async {
|
|
getMemberDynamic('onLoad');
|
|
}
|
|
}
|