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 onMyRefresh(EasyRefreshController controller, int tab) async { /* params.page = RequestConfig.basePage.page; List lists = await getData(controller, params, isReFresh: true); try { tab == 1 ? (markingDatas1 = lists) : (markingDatas2 = lists); } catch (e) {} toUpState(setState, () {}, mounted);*/ getList(); } /// 加载方法 Future onMyLoad(EasyRefreshController controller, int tab) async { /*params.page++; List 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 showStudents( BuildContext context, [ bool? submitted = false, String? className, ]) async { ToastUtils.showLoading(); List 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(); } }