Making.School.Asignment.app/lib/page/home_page/home_logic.dart

143 lines
4.9 KiB
Dart

import 'package:flutter/material.dart';
import 'package:flutter_easyrefresh/easy_refresh.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:get/get.dart';
import 'package:school_asignment_app/common/job/enum_subject.dart';
import 'package:school_asignment_app/common/job/work_student.dart';
import 'package:school_asignment_app/common/job/work_student_params.dart';
import 'package:school_asignment_app/common/mixins/request_tool_mixin.dart';
import 'package:school_asignment_app/common/store/user_store.dart';
import 'package:school_asignment_app/common/utils/toast_utils.dart';
import 'package:school_asignment_app/page/global_widget/my_text.dart';
import 'home_state.dart';
class HomeLogic extends GetxController with RequestToolMixin,GetTickerProviderStateMixin{
final HomeState state = HomeState();
late TabController tabController;
/* 待阅卷 */
late final EasyRefreshController refreshController1;
late final EasyRefreshController refreshController2;
@override
void onInit(){
super.onInit();
state.userInfo = UserStore.to.userInfo;
state.active = Get.arguments ?? 1;
refreshController1 = EasyRefreshController();
refreshController2 = EasyRefreshController();
tabController = TabController(
length: 2,
vsync: this,
);
getList();
}
void getList() async{
WorkStudentParams params = WorkStudentParams(assessType: state.tabIndex.value,);
WorkStudent data = await getClient().getWorkList(params);
state.workList.value = data.items;
refreshController1.finishRefresh();
refreshController2.finishRefresh();
print('state.workList.length=');
print(state.workList.length);
}
/// 刷新方法
Future<void> onMyRefresh(EasyRefreshController controller, int tab) async {
/* params.page = RequestConfig.basePage.page;
List<JobTaskItem> lists = await getData(controller, params, isReFresh: true);
try {
tab == 1 ? (markingDatas1 = lists) : (markingDatas2 = lists);
} catch (e) {}
toUpState(setState, () {}, mounted);*/
getList();
}
/// 加载方法
Future<void> onMyLoad(EasyRefreshController controller, int tab) async {
/*params.page++;
List<JobTaskItem> lists = await getData(controller, params);
if (lists.isNotEmpty) {
tab == 1 ? markingDatas1.addAll(lists) : markingDatas2.addAll(lists);
toUpState(setState, () {}, mounted);
}*/
}
String formatSubject(int id){
if(UserStore.to.subjectList.isEmpty){
return '';
}
EnumSubject item = UserStore.to.subjectList.firstWhere((element) => element.id == id);
return item.name??'';
}
/* Future<void> showStudents(
BuildContext context, [
bool? submitted = false,
String? className,
]) async {
ToastUtils.showLoading();
List<JobConcernedWithStudent> students = [];
showModalBottomSheet(
context: context,
elevation: 10,
backgroundColor: Colors.white,
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.only(
topLeft: Radius.circular(20.r),
topRight: Radius.circular(20.r),
),
),
builder: (BuildContext context) {
return Padding(
padding: EdgeInsets.symmetric(horizontal: 2.w),
child: Column(
children: [
Container(
margin: EdgeInsets.only(top: 14.h),
child: quickText(
'${className ?? ''}${submitted! ? '已提交' : '未提交'}作业学生',
size: 18.sp,
fontWeight: FontWeight.bold,
color: Color.fromRGBO(60, 60, 60, 1),
),
),
Expanded(
child: ListView(
padding: EdgeInsets.symmetric(vertical: 8.h, horizontal: 4.w),
children: [
Wrap(
spacing: 6.0, // 主轴(水平)方向间距
runSpacing: 4.0, // 纵轴(垂直)方向间距
alignment: WrapAlignment.spaceAround, //沿主轴方向居中
children: students.map((e) {
return Chip(
backgroundColor: Color.fromRGBO(239, 242, 255, 1),
avatar: CircleAvatar(
backgroundColor: Colors.white,
child: quickText(e.studentName.substring(0, 1),
size: 12.sp, color: Theme.of(context).primaryColor),
),
label: quickText(e.studentName, color: Color.fromRGBO(80, 94, 110, 1), size: 12.sp),
);
}).toList(),
),
],
),
)
],
),
);
},
);
}*/
@override
void dispose(){
super.dispose();
tabController.dispose();
refreshController1.dispose();
refreshController2.dispose();
}
}