no message

This commit is contained in:
1147192855@qq.com 2024-04-11 14:29:27 +08:00
parent 1c17e014a4
commit 5a43ccffcf
2 changed files with 152 additions and 11 deletions

View File

@ -0,0 +1,146 @@
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:marking_app/common/mixin/common.dart';
import 'package:marking_app/common/model/marking/marking_list_params.dart';
import 'package:marking_app/utils/index.dart';
import 'package:marking_app/utils/my_text.dart';
import '../../utils/my_future_builder.dart';
class JobHome extends StatefulWidget {
const JobHome({super.key});
@override
State<JobHome> createState() => _JobHomeState();
}
class _JobHomeState extends State<JobHome> with CommonMixin, AutomaticKeepAliveClientMixin {
@override
bool get wantKeepAlive => true;
late Future _future;
List<EntranceModel> entrances = [
EntranceModel(
title: '作业批阅',
image: '',
navigationUrl: '',
),
EntranceModel(
title: '学生历史作业',
image: '',
navigationUrl: '',
),
EntranceModel(
title: '知识点掌握',
image: '',
navigationUrl: '',
),
EntranceModel(
title: '答题轨迹',
image: '',
navigationUrl: '',
),
EntranceModel(
title: '优先批阅设定',
image: '',
navigationUrl: '',
),
EntranceModel(
title: '批阅设置',
image: '',
navigationUrl: '',
),
];
@override
void initState() {
_future = getData();
super.initState();
}
Future getData() async {
var _client = await getClient();
var _result = await _client.getJobsByPage(MarkingListParams(
isFinish: false,
page: 1,
limit: 1,
pageType: 0,
));
if (_result == null) return 0;
return _result.data?.total ?? 0;
}
@override
Widget build(BuildContext context) {
super.build(context);
return AnnotatedRegion(
value: const SystemUiOverlayStyle(
systemNavigationBarColor: Color(0xFF000000),
systemNavigationBarDividerColor: null,
statusBarColor: Colors.white,
systemNavigationBarIconBrightness: Brightness.light,
statusBarIconBrightness: Brightness.dark,
statusBarBrightness: Brightness.light,
),
child: Scaffold(
appBar: AppBar(
backgroundColor: Colors.white,
centerTitle: true, //
title: quickText('我的作业管理'),
systemOverlayStyle: SystemUiOverlayStyle.dark,
),
backgroundColor: Color.fromRGBO(244, 244, 244, 1),
body: RefreshIndicator(
onRefresh: () async {
_future = getData();
toUpState(setState, () {}, mounted);
},
child: MyFutureBuilder.buildFutureBuilderOfSingleInstance(context, _future, (data) {
if (data == null)
return Center(
child: Container(
child: TextButton(
onPressed: () {
_future = getData();
toUpState(setState, () {}, mounted);
},
child: quickText('没有获取到数据,点击重试'),
),
),
);
return Container(
child: GridView(
gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
crossAxisCount: 2,
mainAxisSpacing: 10.r,
crossAxisSpacing: 10.r,
childAspectRatio: 556 / 112,
),
children: entrances.map((e) {
return Container(
alignment: Alignment.center,
child: Row(
children: [
quickText(e.title),
],
),
);
}).toList(),
),
);
}),
),
),
);
}
}
class EntranceModel extends Object {
String title;
String image;
String navigationUrl;
EntranceModel({required this.title, required this.image, required this.navigationUrl});
}

View File

@ -16,11 +16,9 @@ import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:marking_app/common/mixin/common.dart'; import 'package:marking_app/common/mixin/common.dart';
import 'package:marking_app/common/model/common/base_structure_result.dart'; import 'package:marking_app/common/model/common/base_structure_result.dart';
import 'package:marking_app/common/model/user/user_info.dart'; import 'package:marking_app/common/model/user/user_info.dart';
import 'package:marking_app/pages/homework_correction/index.dart';
import 'package:marking_app/pages/reports/index.dart'; import 'package:marking_app/pages/reports/index.dart';
import 'package:marking_app/provider/do_marking_provider.dart'; import 'package:marking_app/provider/do_marking_provider.dart';
import 'package:marking_app/provider/upload_file_provider.dart'; import 'package:marking_app/provider/upload_file_provider.dart';
import 'package:marking_app/routes/RouterManager.dart';
import 'package:marking_app/utils/app_upgrade/UpdateDialog.dart'; import 'package:marking_app/utils/app_upgrade/UpdateDialog.dart';
import 'package:marking_app/utils/app_upgrade/model/UpdateAppEvent.dart'; import 'package:marking_app/utils/app_upgrade/model/UpdateAppEvent.dart';
import 'package:marking_app/common/model/sys/system_version.dart'; import 'package:marking_app/common/model/sys/system_version.dart';
@ -31,6 +29,8 @@ import 'package:marking_app/utils/index.dart';
import 'package:marking_app/utils/request/rest_client.dart'; import 'package:marking_app/utils/request/rest_client.dart';
import 'package:package_info/package_info.dart'; import 'package:package_info/package_info.dart';
import 'homework_correction/job_home.dart';
class TheMainPage extends StatefulHookConsumerWidget { class TheMainPage extends StatefulHookConsumerWidget {
const TheMainPage({Key? key}) : super(key: key); const TheMainPage({Key? key}) : super(key: key);
@ -49,7 +49,8 @@ class TheMainPageState extends ConsumerState<TheMainPage> with CommonMixin {
final List<Widget> _bodyList = [ final List<Widget> _bodyList = [
const TheHomePage(), const TheHomePage(),
const TheMarking(), const TheMarking(),
const HomeworkCorrection(), // const HomeworkCorrection(),
const JobHome(),
const TheReport() const TheReport()
]; ];
int tabIndex = 0; int tabIndex = 0;
@ -130,14 +131,8 @@ class TheMainPageState extends ConsumerState<TheMainPage> with CommonMixin {
// String buildNumber = packageInfo.buildNumber; // // String buildNumber = packageInfo.buildNumber; //
SystemVersion data = result.data!; SystemVersion data = result.data!;
Map json = { Map json = {'downloadPath': data.apkUrl, 'version': data.version, 'systemType': deviceType, 'description': data.description};
'downloadPath': data.apkUrl, UpdateAppEvent updateAppEvent = UpdateAppEvent.fromJson(json, localVersion, deviceInfo, appName, packageName, typeName: 'systemType');
'version': data.version,
'systemType': deviceType,
'description': data.description
};
UpdateAppEvent updateAppEvent =
UpdateAppEvent.fromJson(json, localVersion, deviceInfo, appName, packageName, typeName: 'systemType');
if (updateAppEvent.upgrade) { if (updateAppEvent.upgrade) {
await UpdateDialog.showUpdateDialog(context, updateAppEvent); await UpdateDialog.showUpdateDialog(context, updateAppEvent);
} }