Browse Source

fix : 图片仓库依赖注入失效

dev
徐振升 15 hours ago
parent
commit
038d0553f8
  1. 5
      lib/data/repositories/file_repository.dart
  2. 2
      lib/data/repositories/image_repository_impl.dart
  3. 22
      lib/modules/problem/controllers/problem_controller.dart
  4. 4
      lib/modules/problem/controllers/problem_form_controller.dart
  5. 4
      lib/modules/problem/views/problem_list_page.dart

5
lib/data/repositories/file_repository.dart

@ -6,7 +6,7 @@ import 'package:problem_check_system/core/extensions/http_response_extension.dar
import 'package:problem_check_system/core/utils/constants/api_endpoints.dart'; import 'package:problem_check_system/core/utils/constants/api_endpoints.dart';
import 'package:problem_check_system/data/providers/http_provider.dart'; import 'package:problem_check_system/data/providers/http_provider.dart';
class FileRepository { class FileRepository extends GetxService {
final HttpProvider _httpProvider = Get.find<HttpProvider>(); final HttpProvider _httpProvider = Get.find<HttpProvider>();
/// @param imageFilePath /// @param imageFilePath
@ -47,7 +47,8 @@ class FileRepository {
final Map<String, dynamic> data = response.data; final Map<String, dynamic> data = response.data;
// URL 'url' // URL 'url'
String imageUrl = data['fileName']; String imageUrl =
"${ApiEndpoints.baseUrl}${ApiEndpoints.postUploadFile}/${data['objectName']}";
return imageUrl; return imageUrl;
} else { } else {

2
lib/data/repositories/image_repository_impl.dart

@ -7,7 +7,7 @@ import 'package:path/path.dart' as path;
import 'package:problem_check_system/data/providers/http_provider.dart'; import 'package:problem_check_system/data/providers/http_provider.dart';
import 'package:problem_check_system/data/repositories/image_repository.dart'; import 'package:problem_check_system/data/repositories/image_repository.dart';
class ImageRepositoryImpl implements ImageRepository { class ImageRepositoryImpl extends GetxService implements ImageRepository {
final HttpProvider httpProvider; final HttpProvider httpProvider;
ImageRepositoryImpl({required this.httpProvider}); ImageRepositoryImpl({required this.httpProvider});

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

@ -370,21 +370,23 @@ class ProblemController extends GetxController
// 4. // 4.
if (response.isSuccess) { if (response.isSuccess) {
final problem = Problem.fromJson(response.data); if (problem.syncStatus != ProblemSyncStatus.pendingDelete) {
final serverProblem = ServerProblem.fromJson(response.data);
// //
final updatedImageMetadata = final updatedImageMetadata = _updateImageMetadata(
problem.syncStatus != ProblemSyncStatus.pendingDelete problem.imageUrls,
? _updateImageMetadata(problem.imageUrls, remoteUrls) remoteUrls,
: problem.imageUrls; );
Get.log(problem.lastModifiedTime.toUtc().toIso8601String());
// none // none
return problem.copyWith( return problem.copyWith(
syncStatus: problem.syncStatus != ProblemSyncStatus.pendingDelete syncStatus: ProblemSyncStatus.synced,
? ProblemSyncStatus.synced
: ProblemSyncStatus.untracked, // none
imageUrls: updatedImageMetadata, imageUrls: updatedImageMetadata,
lastModifiedTime: serverProblem.lastModificationTime,
); );
} else {
//
return problem.copyWith(syncStatus: ProblemSyncStatus.untracked);
}
} else { } else {
throw Exception('操作失败,状态码: ${response.statusCode}'); throw Exception('操作失败,状态码: ${response.statusCode}');
} }

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

@ -10,6 +10,7 @@ import 'dart:io';
import 'package:problem_check_system/data/models/problem_model.dart'; import 'package:problem_check_system/data/models/problem_model.dart';
import 'package:problem_check_system/data/models/problem_sync_status.dart'; import 'package:problem_check_system/data/models/problem_sync_status.dart';
import 'package:problem_check_system/data/repositories/problem_repository.dart'; import 'package:problem_check_system/data/repositories/problem_repository.dart';
import 'package:uuid/uuid.dart';
class ProblemFormController extends GetxController { class ProblemFormController extends GetxController {
final Problem? problem; final Problem? problem;
@ -184,8 +185,7 @@ class ProblemFormController extends GetxController {
for (var image in selectedImages) { for (var image in selectedImages) {
try { try {
final String fileName = final String fileName = '${Uuid().v4()}_${path.basename(image.name)}';
'problem_${DateTime.now().millisecondsSinceEpoch}_${path.basename(image.name)}';
final String imagePath = '${imagesDir.path}/$fileName'; final String imagePath = '${imagesDir.path}/$fileName';
final ImageMetadata imageData = ImageMetadata( final ImageMetadata imageData = ImageMetadata(
localPath: imagePath, localPath: imagePath,

4
lib/modules/problem/views/problem_list_page.dart

@ -113,6 +113,10 @@ class ProblemListPage extends GetView<ProblemController> {
} }
Future<bool> _showDeleteConfirmationDialog(Problem problem) async { Future<bool> _showDeleteConfirmationDialog(Problem problem) async {
// snackbar
if (Get.isSnackbarOpen) {
Get.closeCurrentSnackbar();
}
return await Get.bottomSheet<bool>( return await Get.bottomSheet<bool>(
Container( Container(
padding: const EdgeInsets.symmetric(horizontal: 16.0), padding: const EdgeInsets.symmetric(horizontal: 16.0),

Loading…
Cancel
Save