feat:餐段设置

This commit is contained in:
dzc committed 2026-09-07 12:53:05 +08:00
1 parent 67950343a7
commit 07a3141934
14 files changed
+285 -18

No files matched your search

@@ -60,6 +60,9 @@ class SettingController extends GetxController with WidgetsBindingObserver {
/// 收银页右下角“更多”快捷操作是否展示。
final cashierShowMoreAction = true.obs;
/// 收银页是否允许主动修改餐段;关闭后餐段严格按餐段配置时间自动切换。
final cashierAllowManualMealPeriodChange = true.obs;
/// 预约查询识别方式的展示顺序,持久化到现有设置 JSON。
final reservationQueryMethodOrder = <ReservationRecognitionMethod>[
...ReservationRecognitionMethod.values,
@@ -83,6 +86,9 @@ class SettingController extends GetxController with WidgetsBindingObserver {
/// 查询菜单是否在识别成功后直接打开今天预选餐段的核销弹框。
final reservationQueryQuickVerificationEnabled = false.obs;
/// 查询菜单是否允许主动修改餐段;关闭后餐段严格按餐段配置时间自动切换。
final reservationQueryAllowManualMealPeriodChange = true.obs;
/// 查询菜单核销允许的日期范围,默认仅限当天。
final reservationQueryVerificationDateScope =
ReservationVerificationDateScope.today.obs;
@@ -249,6 +255,8 @@ class SettingController extends GetxController with WidgetsBindingObserver {
cashierReidentifiablePayTypes.assignAll(reidentifiablePayTypes);
cashierShowHoldAction.value = cashierPagePreferences.showHoldAction;
cashierShowMoreAction.value = cashierPagePreferences.showMoreAction;
cashierAllowManualMealPeriodChange.value =
cashierPagePreferences.allowManualMealPeriodChange;
reservationQueryMethodOrder.assignAll(
reservationQueryPreferences.methodOrder,
);
@@ -264,6 +272,8 @@ class SettingController extends GetxController with WidgetsBindingObserver {
reservationQueryPreferences.verificationEnabled;
reservationQueryQuickVerificationEnabled.value =
reservationQueryPreferences.quickVerificationEnabled;
reservationQueryAllowManualMealPeriodChange.value =
reservationQueryPreferences.allowManualMealPeriodChange;
reservationQueryVerificationDateScope.value =
reservationQueryPreferences.verificationDateScope;
productMealPeriodSchedule.value = restoredProductMealPeriodSchedule;
@@ -385,6 +395,13 @@ class SettingController extends GetxController with WidgetsBindingObserver {
_scheduleReservationQueryPreferencesPersist();
}
/// 切换查询菜单是否允许主动修改餐段并安排持久化。
void setReservationQueryAllowManualMealPeriodChange(bool allowed) {
if (reservationQueryAllowManualMealPeriodChange.value == allowed) return;
reservationQueryAllowManualMealPeriodChange.value = allowed;
_scheduleReservationQueryPreferencesPersist();
}
/// 将预约查询页面偏好恢复为产品默认值并安排持久化。
void resetReservationQueryPreferences() {
reservationQueryMethodOrder.assignAll(
@@ -396,6 +413,7 @@ class SettingController extends GetxController with WidgetsBindingObserver {
reservationQueryNameMaskEnabled.value = true;
reservationQueryVerificationEnabled.value = false;
reservationQueryQuickVerificationEnabled.value = false;
reservationQueryAllowManualMealPeriodChange.value = true;
reservationQueryVerificationDateScope.value =
ReservationVerificationDateScope.today;
_scheduleReservationQueryPreferencesPersist();
@@ -425,6 +443,8 @@ class SettingController extends GetxController with WidgetsBindingObserver {
verificationEnabled: reservationQueryVerificationEnabled.value,
quickVerificationEnabled:
reservationQueryQuickVerificationEnabled.value,
allowManualMealPeriodChange:
reservationQueryAllowManualMealPeriodChange.value,
verificationDateScope: reservationQueryVerificationDateScope.value,
);
} catch (e, stack) {
@@ -654,10 +674,18 @@ class SettingController extends GetxController with WidgetsBindingObserver {
_scheduleCashierPagePreferencesPersist();
}
/// 切换收银页是否允许主动修改餐段并安排持久化。
void setCashierAllowManualMealPeriodChange(bool allowed) {
if (cashierAllowManualMealPeriodChange.value == allowed) return;
cashierAllowManualMealPeriodChange.value = allowed;
_scheduleCashierPagePreferencesPersist();
}
/// 将收银页面快捷操作恢复为默认显示状态。
void resetCashierPagePreferences() {
cashierShowHoldAction.value = true;
cashierShowMoreAction.value = true;
cashierAllowManualMealPeriodChange.value = true;
_scheduleCashierPagePreferencesPersist();
}
@@ -678,6 +706,7 @@ class SettingController extends GetxController with WidgetsBindingObserver {
await AppSettingTool.setCashierPagePreferences(
showHoldAction: cashierShowHoldAction.value,
showMoreAction: cashierShowMoreAction.value,
allowManualMealPeriodChange: cashierAllowManualMealPeriodChange.value,
);
} catch (e, stack) {
logger.e('|$_tag|保存收银页面配置失败error:|$e|stack:|$stack|');