Browse Source

fate : 问题上传页面 problem_upload_page

dev
徐振升 2 weeks ago
parent
commit
17a1791d92
  1. 13
      lib/app/routes/app_pages.dart
  2. 1
      lib/app/routes/app_routes.dart
  3. 1
      lib/modules/home/bindings/home_binding.dart
  4. 2
      lib/modules/problem/bindings/problem_binding.dart
  5. 2
      lib/modules/problem/controllers/problem_controller.dart
  6. 2
      lib/modules/problem/controllers/problem_upload_controller.dart
  7. 64
      lib/modules/problem/views/problem_page.dart
  8. 7
      lib/modules/problem/views/problem_upload_page.dart

13
lib/app/routes/app_pages.dart

@ -5,6 +5,8 @@ import 'package:problem_check_system/modules/auth/bindings/auth_binding.dart';
import 'package:problem_check_system/modules/auth/views/login_page.dart';
import 'package:problem_check_system/modules/my/bingdings/change_password_binding.dart';
import 'package:problem_check_system/modules/my/views/change_password.dart';
import 'package:problem_check_system/modules/problem/bindings/problem_binding.dart';
import 'package:problem_check_system/modules/problem/views/problem_upload_page.dart';
import 'app_routes.dart';
@ -27,11 +29,10 @@ abstract class AppPages {
page: () => const ChangePasswordPage(),
binding: ChangePasswordBinding(),
),
// // Problem
// GetPage(
// name: AppRoutes.problem, // app_routes.dart
// page: () => const ProblemPage(),
// binding: null,
// ),
GetPage(
name: AppRoutes.problemUpload,
page: () => const ProblemUploadPage(),
binding: ProblemBinding(),
),
];
}

1
lib/app/routes/app_routes.dart

@ -5,4 +5,5 @@ abstract class AppRoutes {
static const problem = '/problem';
static const my = '/my';
static const changePassword = '/changePassword';
static const problemUpload = '/problemUpload';
}

1
lib/modules/home/bindings/home_binding.dart

@ -24,6 +24,7 @@ class HomeBinding implements Bindings {
dio: dio,
connectivityProvider: connectivityProvider,
),
fenix: true,
);
Get.lazyPut<MyController>(() => MyController());
Get.lazyPut<AuthProvider>(() => AuthProvider(dio: dio));

2
lib/modules/problem/bindings/problem_binding.dart

@ -3,6 +3,7 @@ import 'package:dio/dio.dart';
import 'package:problem_check_system/data/providers/connectivity_provider.dart';
import 'package:problem_check_system/modules/problem/controllers/problem_controller.dart';
import 'package:problem_check_system/data/providers/local_database.dart';
import 'package:problem_check_system/modules/problem/controllers/problem_upload_controller.dart';
class ProblemBinding implements Bindings {
@override
@ -17,5 +18,6 @@ class ProblemBinding implements Bindings {
connectivityProvider: Get.find<ConnectivityProvider>(),
),
);
Get.lazyPut<ProblemUploadController>(() => ProblemUploadController());
}
}

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

@ -49,7 +49,7 @@ class ProblemController extends GetxController
final double _edgePaddingX = 27.0.w; //
final double _edgePaddingY = 111.0.h; //
// 使 Rx<Offset>
final fabUploadPosition = Offset(301.w, 660.h).obs;
final fabUploadPosition = Offset(337.0, 703.7).obs;
void updateFabUploadPosition(Offset delta) {
final screenWidth = ScreenUtil().screenWidth;

2
lib/modules/problem/controllers/problem_upload_controller.dart

@ -4,6 +4,8 @@ import 'package:problem_check_system/data/models/problem_model.dart';
// import 'package:problem_check_system/services/problem_service.dart';
class ProblemUploadController extends GetxController {
ProblemUploadController();
//
final RxList<Problem> problems = <Problem>[].obs;

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

@ -1,6 +1,7 @@
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:get/get.dart';
import 'package:problem_check_system/app/routes/app_routes.dart';
import 'package:problem_check_system/modules/problem/controllers/problem_controller.dart';
import 'package:problem_check_system/modules/problem/views/problem_list_page.dart'; // ProblemListPage
import 'package:problem_check_system/modules/problem/views/problem_form_page.dart';
@ -35,7 +36,7 @@ class ProblemPage extends GetView<ProblemController> {
controller: controller.tabController,
indicatorSize: TabBarIndicatorSize.tab,
indicator: const BoxDecoration(
color: Color(0xfffff7f7),
color: Color(0xfff7f7f7),
borderRadius: BorderRadius.only(
topLeft: Radius.circular(8),
topRight: Radius.circular(60),
@ -56,7 +57,7 @@ class ProblemPage extends GetView<ProblemController> {
fontSize: 14.sp,
),
labelColor: Colors.black,
unselectedLabelColor: Colors.white,
unselectedLabelColor: Color(0xfff7f7f7),
),
),
Expanded(
@ -64,7 +65,9 @@ class ProblemPage extends GetView<ProblemController> {
controller: controller.tabController,
children: [
// Tab
Column(
DecoratedBox(
decoration: BoxDecoration(color: Color(0xfff7f7f7)),
child: Column(
children: [
Container(
padding: EdgeInsets.symmetric(horizontal: 17.w),
@ -111,8 +114,11 @@ class ProblemPage extends GetView<ProblemController> {
),
],
),
),
// Tab
Column(
DecoratedBox(
decoration: BoxDecoration(color: Color(0xfff7f7f7)),
child: Column(
children: [
Container(
padding: EdgeInsets.symmetric(horizontal: 17.w),
@ -159,57 +165,13 @@ class ProblemPage extends GetView<ProblemController> {
),
],
),
),
],
),
),
],
),
// floatingActionButtonLocation: FloatingActionButtonLocation.centerFloat,
// floatingActionButton: Stack(
// children: [
// Align(
// alignment: Alignment.bottomCenter,
// child: FloatingActionButton(
// heroTag: "btn_add",
// onPressed: () {
// Get.to(() => ProblemFormPage());
// },
// shape: const CircleBorder(),
// backgroundColor: Colors.blue[300],
// foregroundColor: Colors.white,
// child: const Icon(Icons.add),
// ),
// ),
// Positioned(
// right: controller.fabPosition.value.dx, //27.w,
// bottom: controller.fabPosition.value.dy, //56.h,
// child: Obx(() {
// final bool isOnline = controller.isOnline.value;
// return GestureDetector(
// onPanUpdate: (details) {
// //
// controller.updatePosition(details.delta);
// },
// child: FloatingActionButton(
// heroTag: "btn_upload",
// onPressed: isOnline
// ? () => controller.uploadAllUnuploaded()
// : null,
// foregroundColor: Colors.white,
// backgroundColor: isOnline
// ? Colors.red[300]
// : Colors.grey[400],
// child: Icon(
// isOnline
// ? Icons.file_upload_outlined
// : Icons.cloud_off_outlined,
// ),
// ),
// );
// }),
// ),
// ],
// ),
floatingActionButtonLocation: FloatingActionButtonLocation.centerDocked,
// 使 Stack
floatingActionButton: Stack(
@ -252,7 +214,7 @@ class ProblemPage extends GetView<ProblemController> {
child: FloatingActionButton(
heroTag: "btn_upload",
onPressed: isOnline
? () => controller.uploadAllUnuploaded()
? () => Get.toNamed(AppRoutes.problemUpload)
: null,
foregroundColor: Colors.white,
backgroundColor: isOnline

7
lib/modules/problem/views/problem_upload_page.dart

@ -4,10 +4,9 @@ import 'package:get/get.dart';
import 'package:problem_check_system/modules/problem/controllers/problem_upload_controller.dart';
import 'package:problem_check_system/modules/problem/views/widgets/problem_card.dart';
class ProblemUploadPage extends StatelessWidget {
ProblemUploadPage({super.key});
final ProblemUploadController controller = Get.put(ProblemUploadController());
// todo 使problem_list_page,problem_controller
class ProblemUploadPage extends GetView<ProblemUploadController> {
const ProblemUploadPage({super.key});
@override
Widget build(BuildContext context) {

Loading…
Cancel
Save