Browse Source

feat : 查询问题

dev
徐振升 2 weeks ago
parent
commit
b99c1826e9
  1. 7
      lib/app/routes/app_pages.dart
  2. 7
      lib/app/routes/app_routes.dart
  3. 1
      lib/data/repositories/problem_repository.dart
  4. 11
      lib/modules/problem/bindings/problem_form_binding.dart
  5. 10
      lib/modules/problem/controllers/problem_controller.dart
  6. 11
      lib/modules/problem/controllers/problem_form_controller.dart
  7. 2
      lib/modules/problem/views/problem_page.dart

7
lib/app/routes/app_pages.dart

@ -5,6 +5,8 @@ import 'package:problem_check_system/modules/auth/bindings/login_binding.dart';
import 'package:problem_check_system/modules/auth/views/login_page.dart'; import 'package:problem_check_system/modules/auth/views/login_page.dart';
import 'package:problem_check_system/modules/my/bindings/change_password_binding.dart'; import 'package:problem_check_system/modules/my/bindings/change_password_binding.dart';
import 'package:problem_check_system/modules/my/views/change_password.dart'; import 'package:problem_check_system/modules/my/views/change_password.dart';
import 'package:problem_check_system/modules/problem/bindings/problem_form_binding.dart';
import 'package:problem_check_system/modules/problem/views/problem_form_page.dart';
import 'package:problem_check_system/modules/problem/views/problem_upload_page.dart'; import 'package:problem_check_system/modules/problem/views/problem_upload_page.dart';
import 'app_routes.dart'; import 'app_routes.dart';
@ -32,5 +34,10 @@ abstract class AppPages {
name: AppRoutes.problemUpload, name: AppRoutes.problemUpload,
page: () => const ProblemUploadPage(), page: () => const ProblemUploadPage(),
), ),
GetPage(
name: AppRoutes.problemForm,
page: () => const ProblemFormPage(),
binding: ProblemFormBinding(),
),
]; ];
} }

7
lib/app/routes/app_routes.dart

@ -2,8 +2,13 @@ abstract class AppRoutes {
// 使 const // 使 const
static const home = '/home'; static const home = '/home';
static const login = '/login'; static const login = '/login';
static const problem = '/problem';
static const my = '/my'; static const my = '/my';
static const changePassword = '/changePassword'; static const changePassword = '/changePassword';
// #region
static const problem = '/problem';
static const problemUpload = '/problemUpload'; static const problemUpload = '/problemUpload';
static const problemForm = '/problemForm';
// #endregion
} }

1
lib/data/repositories/problem_repository.dart

@ -54,7 +54,6 @@ class ProblemRepository extends GetxService {
return await sqliteProvider.getProblems( return await sqliteProvider.getProblems(
startDate: startDate, startDate: startDate,
endDate: endDate, endDate: endDate,
syncStatus: SyncStatus.notSynced,
); );
} }

11
lib/modules/problem/bindings/problem_form_binding.dart

@ -0,0 +1,11 @@
import 'package:get/get.dart';
import 'package:problem_check_system/modules/problem/controllers/problem_form_controller.dart';
class ProblemFormBinding extends Bindings {
@override
void dependencies() {
Get.lazyPut<ProblemFormController>(
() => ProblemFormController(problemRepository: Get.find()),
);
}
}

10
lib/modules/problem/controllers/problem_controller.dart

@ -287,7 +287,15 @@ class ProblemController extends GetxController
} }
} }
/// // todo ,
void search({
DateRange? newDateRange,
String? newUploadStatus,
String? newBindingStatus,
}) {}
///
///
void updateFiltersAndLoadProblems({ void updateFiltersAndLoadProblems({
DateRange? newDateRange, DateRange? newDateRange,
String? newUploadStatus, String? newUploadStatus,

11
lib/modules/problem/controllers/problem_form_controller.dart

@ -8,10 +8,10 @@ import 'package:problem_check_system/data/models/enum_model.dart';
import 'package:problem_check_system/data/models/image_metadata_model.dart'; import 'package:problem_check_system/data/models/image_metadata_model.dart';
import 'dart:io'; import 'dart:io';
import 'package:problem_check_system/data/models/problem_model.dart'; import 'package:problem_check_system/data/models/problem_model.dart';
import 'problem_controller.dart'; import 'package:problem_check_system/data/repositories/problem_repository.dart';
class ProblemFormController extends GetxController { class ProblemFormController extends GetxController {
final ProblemController problemController; final ProblemRepository problemRepository;
final TextEditingController descriptionController = TextEditingController(); final TextEditingController descriptionController = TextEditingController();
final TextEditingController locationController = TextEditingController(); final TextEditingController locationController = TextEditingController();
final RxList<XFile> selectedImages = <XFile>[].obs; final RxList<XFile> selectedImages = <XFile>[].obs;
@ -21,7 +21,7 @@ class ProblemFormController extends GetxController {
Problem? _currentProblem; Problem? _currentProblem;
// 使便 // 使便
ProblemFormController({required this.problemController}); ProblemFormController({required this.problemRepository});
/// ///
void init(Problem? problem) { void init(Problem? problem) {
@ -153,7 +153,7 @@ class ProblemFormController extends GetxController {
creationTime: DateTime.now(), // creationTime: DateTime.now(), //
); );
await problemController.updateProblem(updatedProblem); await problemRepository.updateProblem(updatedProblem);
Get.back(result: true); // Get.back(result: true); //
Get.snackbar('成功', '问题已更新'); Get.snackbar('成功', '问题已更新');
} else { } else {
@ -163,10 +163,9 @@ class ProblemFormController extends GetxController {
location: locationController.text, location: locationController.text,
imageUrls: imagePaths, imageUrls: imagePaths,
creationTime: DateTime.now(), creationTime: DateTime.now(),
syncStatus: SyncStatus.synced,
); );
await problemController.addProblem(problem); await problemRepository.insertProblem(problem);
Get.back(result: true); // Get.back(result: true); //
Get.snackbar('成功', '问题已保存'); Get.snackbar('成功', '问题已保存');
} }

2
lib/modules/problem/views/problem_page.dart

@ -182,7 +182,7 @@ class ProblemPage extends GetView<ProblemController> {
child: FloatingActionButton( child: FloatingActionButton(
heroTag: "btn_add", heroTag: "btn_add",
onPressed: () { onPressed: () {
Get.to(() => ProblemFormPage()); Get.toNamed(AppRoutes.problemForm);
}, },
shape: const CircleBorder(), shape: const CircleBorder(),
backgroundColor: Colors.blue[300], backgroundColor: Colors.blue[300],

Loading…
Cancel
Save