增加下拉刷新功能

This commit is contained in:
GYJ 2024-11-27 16:31:20 +08:00
parent c6957c182f
commit 938a5df35f
4 changed files with 76 additions and 17 deletions

View File

@ -2,6 +2,7 @@ import 'package:cashier_reserve/common/push/push.dart';
import 'package:cashier_reserve/data_model/login/login_result.dart';
import 'package:cashier_reserve/login/login_view.dart';
import 'package:cashier_reserve/model/reserve_model.dart';
import 'package:easy_refresh/easy_refresh.dart';
import '../base/ui.dart';
import '../channel/channel_event.dart';
@ -18,6 +19,21 @@ class AppManager {
MyEventChannel.startListener();
await HiveManager.initHive();
EasyRefresh.defaultHeaderBuilder = () => const ClassicHeader(
dragText: "下拉刷新",
readyText: "释放刷新",
armedText: "正在刷新",
processingText: "正在刷新",
processedText: "刷新完成",
noMoreText: "没有更多数据了",
failedText: "刷新失败",
messageText: "上次刷新时间:%T",
showText: true,
showMessage: true,
iconDimension: 30,
spacing: 10,
);
}
static void setGlobalContext(BuildContext context) {

View File

@ -3,6 +3,7 @@ import 'package:cashier_reserve/common/channel/call_log_model.dart';
import 'package:cashier_reserve/common/print/print.dart';
import 'package:cashier_reserve/data_model/reserve/reserve_log_model.dart';
import 'package:cashier_reserve/home/reserve_view_model.dart';
import 'package:easy_refresh/easy_refresh.dart';
import 'package:flutter/cupertino.dart';
class ReserveLeftContentView extends StatelessWidget {
@ -10,9 +11,7 @@ class ReserveLeftContentView extends StatelessWidget {
final double inputItemHeight = 36;
final ReserveViewModel provider;
const ReserveLeftContentView(
{super.key,
required this.provider});
const ReserveLeftContentView({super.key, required this.provider});
@override
Widget build(BuildContext context) {
@ -75,11 +74,17 @@ class ReserveLeftContentView extends StatelessWidget {
Expanded(
child: SizedBox(
width: contentWidth,
child: ListView.builder(
itemCount: provider.callLogs?.length ?? 0,
itemBuilder: (context, index) {
return _buildCallRecordItem(context, provider.callLogs?[index]);
child: EasyRefresh(
onRefresh: () async {
provider.loadCallLog();
yjPrint("onRefresh");
},
child: ListView.builder(
itemCount: provider.callLogs?.length ?? 0,
itemBuilder: (context, index) {
return _buildCallRecordItem(context, provider.callLogs?[index]);
},
),
),
)),
Container(
@ -122,7 +127,8 @@ class ReserveLeftContentView extends StatelessWidget {
/// _buildCallRecordItem item
Widget _buildCallRecordItem(BuildContext context, CallLogModel? model) {
ReserveLogModel? reserveLogModel = provider.getReserveLogModel(model?.number ?? "");
ReserveLogModel? reserveLogModel =
provider.getReserveLogModel(model?.number ?? "");
return Container(
padding: const EdgeInsets.fromLTRB(15, 15, 15, 5),
child: Column(
@ -168,16 +174,16 @@ class ReserveLeftContentView extends StatelessWidget {
),
Text(
"已消费${reserveLogModel?.consumeOrders ?? '0'}",
style:
const TextStyle(color: Color(0xff333333), fontSize: 14),
style: const TextStyle(
color: Color(0xff333333), fontSize: 14),
),
const SizedBox(
width: 15,
),
Text(
"已撤${reserveLogModel?.cancelOrders ?? '0'}",
style:
const TextStyle(color: Color(0xff333333), fontSize: 14),
style: const TextStyle(
color: Color(0xff333333), fontSize: 14),
),
],
),
@ -713,7 +719,9 @@ class ReserveLeftContentView extends StatelessWidget {
],
),
),
const SizedBox(width: 10,),
const SizedBox(
width: 10,
),
SizedBox(
height: inputItemHeight,
width: itemWidth,
@ -727,7 +735,10 @@ class ReserveLeftContentView extends StatelessWidget {
provider.updateBookingStandard(value ?? "table");
},
),
const Text('元/桌', style: TextStyle(fontSize: 12, color: Color(0xff666666)),),
const Text(
'元/桌',
style: TextStyle(fontSize: 12, color: Color(0xff666666)),
),
Radio<String>(
value: "person",
groupValue: provider.bookingStandardType,
@ -735,7 +746,10 @@ class ReserveLeftContentView extends StatelessWidget {
provider.updateBookingStandard(value ?? "person");
},
),
const Text('元/人', style: TextStyle(fontSize: 12, color: Color(0xff666666)),),
const Text(
'元/人',
style: TextStyle(fontSize: 12, color: Color(0xff666666)),
),
],
),
)
@ -787,7 +801,8 @@ class ReserveLeftContentView extends StatelessWidget {
);
}
Widget _buildBookingActionBtn(BuildContext context, String title, Function() onTap) {
Widget _buildBookingActionBtn(
BuildContext context, String title, Function() onTap) {
return InkWell(
onTap: onTap,
child: Container(
@ -796,7 +811,10 @@ class ReserveLeftContentView extends StatelessWidget {
color: Colors.blue,
),
padding: const EdgeInsets.fromLTRB(20, 5, 20, 5),
child: Text(title, style: const TextStyle(color: Colors.white, fontSize: 14),),
child: Text(
title,
style: const TextStyle(color: Colors.white, fontSize: 14),
),
),
);
}

View File

@ -158,6 +158,14 @@ packages:
url: "https://pub.flutter-io.cn"
source: hosted
version: "2.0.0"
easy_refresh:
dependency: "direct main"
description:
name: easy_refresh
sha256: "486e30abfcaae66c0f2c2798a10de2298eb9dc5e0bb7e1dba9328308968cae0c"
url: "https://pub.flutter-io.cn"
source: hosted
version: "3.4.0"
encrypt:
dependency: "direct main"
description:
@ -418,6 +426,22 @@ packages:
url: "https://pub.flutter-io.cn"
source: hosted
version: "1.9.0"
path_drawing:
dependency: transitive
description:
name: path_drawing
sha256: bbb1934c0cbb03091af082a6389ca2080345291ef07a5fa6d6e078ba8682f977
url: "https://pub.flutter-io.cn"
source: hosted
version: "1.0.1"
path_parsing:
dependency: transitive
description:
name: path_parsing
sha256: "883402936929eac138ee0a45da5b0f2c80f89913e6dc3bf77eb65b84b409c6ca"
url: "https://pub.flutter-io.cn"
source: hosted
version: "1.1.0"
path_provider:
dependency: "direct main"
description:

View File

@ -49,6 +49,7 @@ dependencies:
encrypt: ^5.0.3
pointycastle: ^3.9.1
url_launcher: ^6.3.1
easy_refresh: ^3.4.0
dev_dependencies:
flutter_test: