|
@@ -1,10 +1,14 @@
|
|
|
import 'package:domain/entity/response/attendance_entity.dart';
|
|
|
import 'package:domain/repository/job_repository.dart';
|
|
|
+import 'package:flutter/material.dart';
|
|
|
import 'package:get/get.dart';
|
|
|
import 'package:plugin_basic/service/user_service.dart';
|
|
|
import 'package:plugin_platform/engine/toast/toast_engine.dart';
|
|
|
import 'package:plugin_platform/http/dio/dio_cancelable_mixin.dart';
|
|
|
+import 'package:shared/utils/date_time_utils.dart';
|
|
|
import 'package:widgets/load_state_layout.dart';
|
|
|
+import 'package:widgets/picker/option_pick_util.dart';
|
|
|
+import 'package:widgets/picker/date_picker_util.dart';
|
|
|
import 'package:widgets/widget_export.dart';
|
|
|
|
|
|
import 'sign_in_sign_out_state.dart';
|
|
@@ -18,6 +22,8 @@ class SignInSignOutController extends GetxController with DioCancelableMixin {
|
|
|
//页面的列表数据
|
|
|
List<AttendanceList> datas = [];
|
|
|
String? keyword;
|
|
|
+ Rx<DateTime> startDate = DateTime.now().obs;
|
|
|
+ Rx<DateTime> endDate = DateTime.now().obs;
|
|
|
|
|
|
//页面PlaceHolder的展示
|
|
|
LoadState loadingState = LoadState.State_Success;
|
|
@@ -54,7 +60,13 @@ class SignInSignOutController extends GetxController with DioCancelableMixin {
|
|
|
|
|
|
final String? token = UserService.to.token;
|
|
|
//获取到数据
|
|
|
- var result = await jobRepository.fetchAttendanceList(token, keyword, "2023-07-01", "2025-07-02", cancelToken: cancelToken);
|
|
|
+ var result = await jobRepository.fetchAttendanceList(
|
|
|
+ token,
|
|
|
+ keyword,
|
|
|
+ DateTimeUtils.formatDate(startDate.value, format: "yyyy-MM-dd"),
|
|
|
+ DateTimeUtils.formatDate(endDate.value, format: "yyyy-MM-dd"),
|
|
|
+ cancelToken: cancelToken,
|
|
|
+ );
|
|
|
|
|
|
//处理数据
|
|
|
if (result.isSuccess) {
|
|
@@ -76,12 +88,8 @@ class SignInSignOutController extends GetxController with DioCancelableMixin {
|
|
|
//有数据,判断是刷新还是加载更多的数据
|
|
|
datas.clear();
|
|
|
datas.addAll(list);
|
|
|
-
|
|
|
- //更新展示的状态
|
|
|
- if (loadingState != LoadState.State_Success){
|
|
|
- changeLoadingState(LoadState.State_Success);
|
|
|
- }
|
|
|
-
|
|
|
+ //更新状态
|
|
|
+ changeLoadingState(LoadState.State_Success);
|
|
|
} else {
|
|
|
//展示无数据的布局
|
|
|
datas.clear();
|
|
@@ -93,7 +101,7 @@ class SignInSignOutController extends GetxController with DioCancelableMixin {
|
|
|
void doSearch() {
|
|
|
var keywordController = state.formData['keyword']!['controller'];
|
|
|
keyword = keywordController.text;
|
|
|
- fetchAttendanceList();
|
|
|
+ refreshController.callRefresh();
|
|
|
}
|
|
|
|
|
|
@override
|
|
@@ -120,17 +128,33 @@ class SignInSignOutController extends GetxController with DioCancelableMixin {
|
|
|
|
|
|
/// 重置筛选条件
|
|
|
void resetFiltering() {
|
|
|
- ToastEngine.show("重置筛选条件");
|
|
|
+ var keywordController = state.formData['keyword']!['controller'];
|
|
|
+ keywordController.text = "";
|
|
|
+ keyword = null;
|
|
|
+ startDate.value = DateTime.now();
|
|
|
+ endDate.value = DateTime.now();
|
|
|
+ refreshController.callRefresh();
|
|
|
}
|
|
|
|
|
|
/// 筛选开始日期
|
|
|
void pickerStartDate() {
|
|
|
- ToastEngine.show("筛选开始日期");
|
|
|
+ DatePickerUtil.showCupertinoDatePicker(
|
|
|
+ onDateTimeChanged: (date) {
|
|
|
+ startDate.value = date;
|
|
|
+ refreshController.callRefresh();
|
|
|
+ },
|
|
|
+ title: "Start Date".tr,
|
|
|
+ );
|
|
|
}
|
|
|
|
|
|
/// 筛选结束日期
|
|
|
void pickerEndDate() {
|
|
|
- ToastEngine.show("筛选结束日期");
|
|
|
+ DatePickerUtil.showCupertinoDatePicker(
|
|
|
+ onDateTimeChanged: (date) {
|
|
|
+ endDate.value = date;
|
|
|
+ refreshController.callRefresh();
|
|
|
+ },
|
|
|
+ title: "End Date".tr,
|
|
|
+ );
|
|
|
}
|
|
|
-
|
|
|
}
|