更新预约单数
This commit is contained in:
@@ -2,13 +2,17 @@ import 'package:cashier_reserve/common/base/ui.dart';
|
||||
import 'package:cashier_reserve/common/base/ui_model.dart';
|
||||
import 'package:cashier_reserve/common/channel/call_log_model.dart';
|
||||
import 'package:cashier_reserve/common/channel/channel_manager.dart';
|
||||
import 'package:cashier_reserve/common/manager/app_manager.dart';
|
||||
import 'package:cashier_reserve/common/manager/event_manager.dart';
|
||||
import 'package:cashier_reserve/common/print/print.dart';
|
||||
import 'package:cashier_reserve/common/utils/utils.dart';
|
||||
import 'package:cashier_reserve/data_model/reserve/reserve_log_model.dart';
|
||||
import 'package:cashier_reserve/data_model/reserve/table_area_model.dart';
|
||||
import 'package:cashier_reserve/data_model/reserve/table_model.dart';
|
||||
import 'package:cashier_reserve/model/reserve_model.dart';
|
||||
import 'package:url_launcher/url_launcher.dart';
|
||||
|
||||
class ReserveViewModel extends BaseUIModel {
|
||||
class ReserveViewModel extends BaseUIModel {
|
||||
Map<int, String> weekdayMap = {
|
||||
1: "星期一",
|
||||
2: "星期二",
|
||||
@@ -38,39 +42,54 @@ class ReserveViewModel extends BaseUIModel {
|
||||
String bookingType = "lunch";
|
||||
|
||||
List<TableAreaModel?>? _tableAreaList;
|
||||
|
||||
List<TableAreaModel?>? get tableAreaList => _tableAreaList;
|
||||
Map<num, TableAreaModel?> _tableAreaMap = {};
|
||||
|
||||
List<TableModel?>? _tableList;
|
||||
|
||||
List<TableModel?>? get tableList => _tableList;
|
||||
Map<String, List<TableModel?>> tableMap = {};
|
||||
|
||||
List<CallLogModel?>? callLogs = [];
|
||||
|
||||
Map<String, ReserveLogModel?>? _reserveLogMap;
|
||||
|
||||
bool _isShowReserveInfoView = false;
|
||||
|
||||
/// bookingGender 预订人性别 1: 男 2: 女
|
||||
int bookingGender = 1;
|
||||
|
||||
/// bookingNumController 就餐人数
|
||||
TextEditingController bookingNumController = TextEditingController();
|
||||
|
||||
/// bookingPhoneController 联系电话
|
||||
TextEditingController bookingPhoneController = TextEditingController();
|
||||
|
||||
/// bookingNameController 预订人姓名
|
||||
TextEditingController bookingNameController = TextEditingController();
|
||||
|
||||
/// bookingTypeController 预订类型
|
||||
TextEditingController bookingTypeController = TextEditingController();
|
||||
|
||||
/// bookingTableNumController 预订台桌数量
|
||||
TextEditingController bookingTableNumController = TextEditingController();
|
||||
|
||||
/// bookingStandardController 预定餐标
|
||||
TextEditingController bookingStandardController = TextEditingController();
|
||||
|
||||
/// bookingRemarkController 备注
|
||||
TextEditingController bookingRemarkController = TextEditingController();
|
||||
|
||||
/// bookingSelectedTime 预订时间
|
||||
String bookingSelectedTime = "";
|
||||
|
||||
/// bookingFocus 重点关注
|
||||
bool bookingFocus = false;
|
||||
|
||||
/// bookingSms 短信通知
|
||||
bool bookingSms = false;
|
||||
|
||||
/// bookingStandardType 餐标类型
|
||||
String bookingStandardType = "table";
|
||||
|
||||
@@ -86,8 +105,11 @@ class ReserveViewModel extends BaseUIModel {
|
||||
if (!event.isSuccess) {
|
||||
return;
|
||||
}
|
||||
|
||||
callLogs = event.callLogs;
|
||||
notifyListeners();
|
||||
|
||||
loadUserReserveLog();
|
||||
}
|
||||
});
|
||||
|
||||
@@ -113,12 +135,23 @@ class ReserveViewModel extends BaseUIModel {
|
||||
loadCallLog();
|
||||
loadTableAreaList();
|
||||
loadAreaTableList(0);
|
||||
loadReserveSms();
|
||||
}
|
||||
|
||||
void loadCallLog() {
|
||||
ChannelManager.getCallLog("getCallLog");
|
||||
}
|
||||
|
||||
void loadUserReserveLog() async {
|
||||
List<String> phoneNos = [];
|
||||
for (var item in callLogs!) {
|
||||
phoneNos.add(item!.number ?? '');
|
||||
}
|
||||
_reserveLogMap = await ReserveModel.getUserReserveLog(phoneNos);
|
||||
|
||||
notifyListeners();
|
||||
}
|
||||
|
||||
void loadTableAreaList() async {
|
||||
final r = await ReserveModel.getShopTableAreaList();
|
||||
|
||||
@@ -137,7 +170,8 @@ class ReserveViewModel extends BaseUIModel {
|
||||
}
|
||||
|
||||
void loadAreaTableList(int areaId) async {
|
||||
final r = await ReserveModel.getAreaTableList(areaId, selectedDate, bookingType);
|
||||
final r =
|
||||
await ReserveModel.getAreaTableList(areaId, selectedDate, bookingType);
|
||||
|
||||
_tableList = r;
|
||||
|
||||
@@ -156,7 +190,11 @@ class ReserveViewModel extends BaseUIModel {
|
||||
notifyListeners();
|
||||
}
|
||||
|
||||
void commitReserveInfo() async {
|
||||
loadReserveSms() async {
|
||||
AppManager.loadReserveSms();
|
||||
}
|
||||
|
||||
void commitReserveInfo({bool sendSms = false}) async {
|
||||
if (!_checkReserveInfo()) {
|
||||
return;
|
||||
}
|
||||
@@ -184,6 +222,31 @@ class ReserveViewModel extends BaseUIModel {
|
||||
Utils.toast("预定成功", context);
|
||||
hideReserveInfoView();
|
||||
loadAreaTableList(0);
|
||||
|
||||
if (sendSms) {
|
||||
String smsContent = await AppManager.loadReserveSms();
|
||||
if (smsContent.isNotEmpty) {
|
||||
yjPrint("send sms: $smsContent, phone: ${bookingPhoneController.text}");
|
||||
|
||||
goSendSms(phone: bookingPhoneController.text, message: smsContent);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
goSendSms({required String phone, required String message}) async {
|
||||
final Uri smsUri = Uri(
|
||||
scheme: 'sms',
|
||||
path: phone,
|
||||
queryParameters: {
|
||||
'body': message,
|
||||
},
|
||||
);
|
||||
if (await canLaunchUrl(smsUri)) {
|
||||
await launchUrl(smsUri);
|
||||
} else {
|
||||
// 如果无法启动短信发送,可在此处添加相应的提示逻辑,比如打印错误信息等
|
||||
yjPrint('Could not launch SMS');
|
||||
}
|
||||
}
|
||||
|
||||
void setSelectedDateIndex(int index) {
|
||||
@@ -198,11 +261,16 @@ class ReserveViewModel extends BaseUIModel {
|
||||
loadAreaTableList(0);
|
||||
}
|
||||
|
||||
void setAnimationController(AnimationController controller, Animation<double> sizeFactor) {
|
||||
void setAnimationController(
|
||||
AnimationController controller, Animation<double> sizeFactor) {
|
||||
_animationController = controller;
|
||||
_animationSizeFactor = sizeFactor;
|
||||
}
|
||||
|
||||
ReserveLogModel? getReserveLogModel(String phone) {
|
||||
return _reserveLogMap?[phone];
|
||||
}
|
||||
|
||||
showReserveInfoView() {
|
||||
_resetReserveData();
|
||||
_isShowReserveInfoView = true;
|
||||
@@ -223,7 +291,8 @@ class ReserveViewModel extends BaseUIModel {
|
||||
}
|
||||
|
||||
updateBookingTime(int hour, int minute) {
|
||||
bookingSelectedTime = "${hour.toString().padLeft(2, '0')}:${minute.toString().padLeft(2, '0')}";
|
||||
bookingSelectedTime =
|
||||
"${hour.toString().padLeft(2, '0')}:${minute.toString().padLeft(2, '0')}";
|
||||
notifyListeners();
|
||||
}
|
||||
|
||||
@@ -326,4 +395,4 @@ class ReserveViewModel extends BaseUIModel {
|
||||
DateTime offsetDay = now.add(Duration(days: offset));
|
||||
return weekdayMap[offsetDay.weekday] ?? "";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user