增加下拉刷新功能
This commit is contained in:
parent
c6957c182f
commit
938a5df35f
|
|
@ -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/data_model/login/login_result.dart';
|
||||||
import 'package:cashier_reserve/login/login_view.dart';
|
import 'package:cashier_reserve/login/login_view.dart';
|
||||||
import 'package:cashier_reserve/model/reserve_model.dart';
|
import 'package:cashier_reserve/model/reserve_model.dart';
|
||||||
|
import 'package:easy_refresh/easy_refresh.dart';
|
||||||
|
|
||||||
import '../base/ui.dart';
|
import '../base/ui.dart';
|
||||||
import '../channel/channel_event.dart';
|
import '../channel/channel_event.dart';
|
||||||
|
|
@ -18,6 +19,21 @@ class AppManager {
|
||||||
MyEventChannel.startListener();
|
MyEventChannel.startListener();
|
||||||
|
|
||||||
await HiveManager.initHive();
|
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) {
|
static void setGlobalContext(BuildContext context) {
|
||||||
|
|
|
||||||
|
|
@ -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/common/print/print.dart';
|
||||||
import 'package:cashier_reserve/data_model/reserve/reserve_log_model.dart';
|
import 'package:cashier_reserve/data_model/reserve/reserve_log_model.dart';
|
||||||
import 'package:cashier_reserve/home/reserve_view_model.dart';
|
import 'package:cashier_reserve/home/reserve_view_model.dart';
|
||||||
|
import 'package:easy_refresh/easy_refresh.dart';
|
||||||
import 'package:flutter/cupertino.dart';
|
import 'package:flutter/cupertino.dart';
|
||||||
|
|
||||||
class ReserveLeftContentView extends StatelessWidget {
|
class ReserveLeftContentView extends StatelessWidget {
|
||||||
|
|
@ -10,9 +11,7 @@ class ReserveLeftContentView extends StatelessWidget {
|
||||||
final double inputItemHeight = 36;
|
final double inputItemHeight = 36;
|
||||||
final ReserveViewModel provider;
|
final ReserveViewModel provider;
|
||||||
|
|
||||||
const ReserveLeftContentView(
|
const ReserveLeftContentView({super.key, required this.provider});
|
||||||
{super.key,
|
|
||||||
required this.provider});
|
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
|
|
@ -75,11 +74,17 @@ class ReserveLeftContentView extends StatelessWidget {
|
||||||
Expanded(
|
Expanded(
|
||||||
child: SizedBox(
|
child: SizedBox(
|
||||||
width: contentWidth,
|
width: contentWidth,
|
||||||
child: ListView.builder(
|
child: EasyRefresh(
|
||||||
itemCount: provider.callLogs?.length ?? 0,
|
onRefresh: () async {
|
||||||
itemBuilder: (context, index) {
|
provider.loadCallLog();
|
||||||
return _buildCallRecordItem(context, provider.callLogs?[index]);
|
yjPrint("onRefresh");
|
||||||
},
|
},
|
||||||
|
child: ListView.builder(
|
||||||
|
itemCount: provider.callLogs?.length ?? 0,
|
||||||
|
itemBuilder: (context, index) {
|
||||||
|
return _buildCallRecordItem(context, provider.callLogs?[index]);
|
||||||
|
},
|
||||||
|
),
|
||||||
),
|
),
|
||||||
)),
|
)),
|
||||||
Container(
|
Container(
|
||||||
|
|
@ -122,7 +127,8 @@ class ReserveLeftContentView extends StatelessWidget {
|
||||||
|
|
||||||
/// _buildCallRecordItem 通话记录item
|
/// _buildCallRecordItem 通话记录item
|
||||||
Widget _buildCallRecordItem(BuildContext context, CallLogModel? model) {
|
Widget _buildCallRecordItem(BuildContext context, CallLogModel? model) {
|
||||||
ReserveLogModel? reserveLogModel = provider.getReserveLogModel(model?.number ?? "");
|
ReserveLogModel? reserveLogModel =
|
||||||
|
provider.getReserveLogModel(model?.number ?? "");
|
||||||
return Container(
|
return Container(
|
||||||
padding: const EdgeInsets.fromLTRB(15, 15, 15, 5),
|
padding: const EdgeInsets.fromLTRB(15, 15, 15, 5),
|
||||||
child: Column(
|
child: Column(
|
||||||
|
|
@ -168,16 +174,16 @@ class ReserveLeftContentView extends StatelessWidget {
|
||||||
),
|
),
|
||||||
Text(
|
Text(
|
||||||
"已消费${reserveLogModel?.consumeOrders ?? '0'}单",
|
"已消费${reserveLogModel?.consumeOrders ?? '0'}单",
|
||||||
style:
|
style: const TextStyle(
|
||||||
const TextStyle(color: Color(0xff333333), fontSize: 14),
|
color: Color(0xff333333), fontSize: 14),
|
||||||
),
|
),
|
||||||
const SizedBox(
|
const SizedBox(
|
||||||
width: 15,
|
width: 15,
|
||||||
),
|
),
|
||||||
Text(
|
Text(
|
||||||
"已撤${reserveLogModel?.cancelOrders ?? '0'}单",
|
"已撤${reserveLogModel?.cancelOrders ?? '0'}单",
|
||||||
style:
|
style: const TextStyle(
|
||||||
const TextStyle(color: Color(0xff333333), fontSize: 14),
|
color: Color(0xff333333), fontSize: 14),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
|
|
@ -713,7 +719,9 @@ class ReserveLeftContentView extends StatelessWidget {
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
const SizedBox(width: 10,),
|
const SizedBox(
|
||||||
|
width: 10,
|
||||||
|
),
|
||||||
SizedBox(
|
SizedBox(
|
||||||
height: inputItemHeight,
|
height: inputItemHeight,
|
||||||
width: itemWidth,
|
width: itemWidth,
|
||||||
|
|
@ -727,7 +735,10 @@ class ReserveLeftContentView extends StatelessWidget {
|
||||||
provider.updateBookingStandard(value ?? "table");
|
provider.updateBookingStandard(value ?? "table");
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
const Text('元/桌', style: TextStyle(fontSize: 12, color: Color(0xff666666)),),
|
const Text(
|
||||||
|
'元/桌',
|
||||||
|
style: TextStyle(fontSize: 12, color: Color(0xff666666)),
|
||||||
|
),
|
||||||
Radio<String>(
|
Radio<String>(
|
||||||
value: "person",
|
value: "person",
|
||||||
groupValue: provider.bookingStandardType,
|
groupValue: provider.bookingStandardType,
|
||||||
|
|
@ -735,7 +746,10 @@ class ReserveLeftContentView extends StatelessWidget {
|
||||||
provider.updateBookingStandard(value ?? "person");
|
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(
|
return InkWell(
|
||||||
onTap: onTap,
|
onTap: onTap,
|
||||||
child: Container(
|
child: Container(
|
||||||
|
|
@ -796,7 +811,10 @@ class ReserveLeftContentView extends StatelessWidget {
|
||||||
color: Colors.blue,
|
color: Colors.blue,
|
||||||
),
|
),
|
||||||
padding: const EdgeInsets.fromLTRB(20, 5, 20, 5),
|
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),
|
||||||
|
),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
24
pubspec.lock
24
pubspec.lock
|
|
@ -158,6 +158,14 @@ packages:
|
||||||
url: "https://pub.flutter-io.cn"
|
url: "https://pub.flutter-io.cn"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.0.0"
|
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:
|
encrypt:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
|
|
@ -418,6 +426,22 @@ packages:
|
||||||
url: "https://pub.flutter-io.cn"
|
url: "https://pub.flutter-io.cn"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.9.0"
|
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:
|
path_provider:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
|
|
|
||||||
|
|
@ -49,6 +49,7 @@ dependencies:
|
||||||
encrypt: ^5.0.3
|
encrypt: ^5.0.3
|
||||||
pointycastle: ^3.9.1
|
pointycastle: ^3.9.1
|
||||||
url_launcher: ^6.3.1
|
url_launcher: ^6.3.1
|
||||||
|
easy_refresh: ^3.4.0
|
||||||
|
|
||||||
dev_dependencies:
|
dev_dependencies:
|
||||||
flutter_test:
|
flutter_test:
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue