Browse Source

feat : 使用EasyRefresh 下拉同步

dev
徐振升 2 months ago
parent
commit
bf6966bb30
  1. 5
      README.md
  2. 24
      lib/app/features/enterprise/presentation/pages/enterprise_list_page.dart
  3. 24
      lib/app/features/problem/presentation/pages/problem_list_page.dart
  4. 24
      lib/main.dart

5
README.md

@ -77,6 +77,11 @@ Image Picker: 用于从图库或相机选择图片。
HTTP/Dio: 网络请求库。推荐使用 Dio,因为它提供了更强大的拦截器、表单数据处理和错误处理功能。
1.0.0
feat : 问题功能
1.0.1
feat : 企业功能
TODO//
/// 定义了一个通用的 CRUD (Create, Read, Update, Delete) 仓库必须具备的核心能力

24
lib/app/features/enterprise/presentation/pages/enterprise_list_page.dart

@ -1,3 +1,4 @@
import 'package:easy_refresh/easy_refresh.dart';
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:get/get.dart';
@ -181,7 +182,7 @@ class EnterpriseListPage extends GetView<EnterpriseListController> {
///
Widget _buildEnterpriseList() {
// 使
return RefreshIndicator(
return EasyRefresh(
onRefresh: () async => controller.loadAndSyncEnterprises(),
child: Obx(() {
// 3.
@ -205,17 +206,32 @@ class EnterpriseListPage extends GetView<EnterpriseListController> {
mainAxisAlignment: MainAxisAlignment.center,
children: [
Icon(
Icons.folder_off_outlined,
Icons.search_off,
size: 60.sp,
color: Colors.grey[400],
),
SizedBox(height: 16.h),
Text(
'没有找到相关企业',
'找到相关企业',
style: TextStyle(
fontSize: 16.sp,
fontSize: 20.sp,
color: Colors.black87,
fontWeight: FontWeight.bold,
),
maxLines: 3,
textAlign: TextAlign.center,
),
Padding(
padding: EdgeInsetsGeometry.all(16.w),
child: Text(
'尝试调整您的筛选条件,或下拉页面以同步最新数据',
style: TextStyle(
fontSize: 18.sp,
color: Colors.grey[600],
),
maxLines: 3,
textAlign: TextAlign.center,
),
),
],
),

24
lib/app/features/problem/presentation/pages/problem_list_page.dart

@ -1,3 +1,4 @@
import 'package:easy_refresh/easy_refresh.dart';
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:get/get.dart';
@ -274,7 +275,7 @@ class ProblemListPage extends GetView<ProblemListController> {
///
Widget _buildProblemListList() {
// 使
return RefreshIndicator(
return EasyRefresh(
onRefresh: () async => controller.loadAndSyncProblems(),
child: Obx(() {
// 3.
@ -298,17 +299,32 @@ class ProblemListPage extends GetView<ProblemListController> {
mainAxisAlignment: MainAxisAlignment.center,
children: [
Icon(
Icons.folder_off_outlined,
Icons.search_off,
size: 60.sp,
color: Colors.grey[400],
),
SizedBox(height: 16.h),
Text(
'没有找到相关问题',
'找到相关问题',
style: TextStyle(
fontSize: 16.sp,
fontSize: 20.sp,
color: Colors.black87,
fontWeight: FontWeight.bold,
),
maxLines: 3,
textAlign: TextAlign.center,
),
Padding(
padding: EdgeInsetsGeometry.all(16.w),
child: Text(
'尝试调整您的筛选条件,或下拉页面以同步最新数据',
style: TextStyle(
fontSize: 18.sp,
color: Colors.grey[600],
),
maxLines: 3,
textAlign: TextAlign.center,
),
),
],
),

24
lib/main.dart

@ -1,3 +1,4 @@
import 'package:easy_refresh/easy_refresh.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
@ -7,6 +8,29 @@ import 'package:problem_check_system/app/app.dart';
void main() async {
// Flutter Binding
WidgetsFlutterBinding.ensureInitialized();
// --- EasyRefresh ---
EasyRefresh.defaultHeaderBuilder = () => const ClassicHeader(
dragText: '下拉同步',
armedText: '释放同步',
readyText: '准备同步',
processingText: '正在同步...',
processedText: '同步完成',
noMoreText: '没有更多了',
failedText: '同步失败',
messageText: '上次同步于 %T', // %T
);
EasyRefresh.defaultFooterBuilder = () => const ClassicFooter(
dragText: '上拉加载',
armedText: '释放加载',
readyText: '准备加载',
processingText: '正在加载...',
processedText: '加载完成',
noMoreText: '没有更多了',
failedText: '加载失败',
messageText: '上次更新于 %T',
);
// --- ---
//
SystemChrome.setPreferredOrientations([
DeviceOrientation.portraitUp,

Loading…
Cancel
Save