feat:添加取餐页面

This commit is contained in:
dzc committed 2025-04-02 16:36:20 +08:00
1 parent 096b247fdd
commit 3c5ba3ae8a
12 files changed
+114 -18

No files matched your search

@@ -14,6 +14,7 @@ class PanelItem {
enum PanelType implements BaseEnum {
supermarketOrder("10", "超市购买"),
canteenOrder("20", "点餐"),
canteenReserve("25", "预定"),
takeFood("30", "取餐"),
orderHistory("40", "交易查询"),
setting("50", "设置"),
+3
View File
@@ -17,6 +17,9 @@ class RouteNames {
/// 取餐
static const takeFood = '/take_food';
/// 食堂预定
static const canteenReserve = '/canteen_reserve';
/// 交易查询
static const orderHistory = '/order_history';
+8
View File
@@ -41,6 +41,14 @@ class RoutePages {
Get.lazyPut(() => SupermarketOrderController());
}),
),
GetPage(
name: RouteNames.canteenReserve,
page: () => const CanteenReservePage(),
binding: BindingsBuilder(() {
Get.lazyPut(() => PanelController());
Get.lazyPut(() => CanteenReserveController());
}),
),
GetPage(
name: RouteNames.takeFood,
page: () => const TakeFoodPage(),
+27
View File
@@ -0,0 +1,27 @@
import 'package:get/get.dart';
class CanteenReserveController extends GetxController {
CanteenReserveController();
_initData() {
update(["canteen_reserve"]);
}
void onTap() {}
@override
void onInit() {
super.onInit();
}
@override
void onReady() {
super.onReady();
_initData();
}
@override
void onClose() {
super.onClose();
}
}
+4
View File
@@ -0,0 +1,4 @@
library canteen_reserve;
export './controller.dart';
export './view.dart';
+34
View File
@@ -0,0 +1,34 @@
import 'package:ducafe_ui_core/ducafe_ui_core.dart';
import 'package:flutter/material.dart';
import 'package:forui/forui.dart';
import 'package:get/get.dart';
import 'package:pj_supermarket_cloud/common/index.dart';
import 'index.dart';
class CanteenReservePage extends GetView<CanteenReserveController> {
const CanteenReservePage({super.key});
// 主视图
Widget _buildView(BuildContext context) {
return const Center(
child: Text("CanteenReservePage"),
);
}
@override
Widget build(BuildContext context) {
return GetBuilder<CanteenReserveController>(
init: CanteenReserveController(),
id: "canteen_reserve",
builder: (_) {
return FScaffold(
header: appDefaultNav(context, title: "预定"),
content: _buildView(context).marginOnly(top: 20.h),
resizeToAvoidBottomInset: false,
);
},
);
}
}
+1
View File
@@ -1,6 +1,7 @@
library;
export './canteen_product/index.dart';
export './canteen_reserve/index.dart';
export './card_active/index.dart';
export './load/index.dart';
export './login/index.dart';
+21 -1
View File
@@ -1,6 +1,7 @@
import 'dart:async';
import 'package:common_utils/common_utils.dart';
import 'package:flutter_easyloading/flutter_easyloading.dart';
import 'package:get/get.dart';
import 'package:pj_supermarket_cloud/common/index.dart';
@@ -13,6 +14,7 @@ class PanelController extends GetxController {
RxList<PanelItem> panelBtnList = <PanelItem>[
PanelItem(title: "购买", visible: false, type: PanelType.supermarketOrder),
PanelItem(title: "点餐", visible: false, type: PanelType.canteenOrder),
PanelItem(title: "预定", visible: false, type: PanelType.canteenReserve),
PanelItem(title: "取餐", visible: false, type: PanelType.takeFood),
PanelItem(title: "交易查询", visible: true, type: PanelType.orderHistory),
PanelItem(title: "开卡管理", visible: true, type: PanelType.cardActive),
@@ -24,6 +26,7 @@ class PanelController extends GetxController {
final canteenMenus = [
PanelType.canteenOrder,
PanelType.takeFood,
PanelType.canteenReserve,
];
final supermarketMenus = [
@@ -47,7 +50,15 @@ class PanelController extends GetxController {
mqUpdateListen = appC.mqUpdateEventBus.on<MqtActionEnum>().listen(
(event) async {
if (event == MqtActionEnum.CONFIG) {
await _updateMenus();
EasyLoading.show(
status: '配置修改中...',
maskType: EasyLoadingMaskType.black,
);
try {
await _updateMenus();
} finally {
EasyLoading.dismiss();
}
}
},
);
@@ -80,6 +91,10 @@ class PanelController extends GetxController {
if (!await _checkIsBind()) return;
Get.toNamed(RouteNames.canteenProduct);
break;
case PanelType.canteenReserve:
if (!await _checkIsBind()) return;
Get.toNamed(RouteNames.canteenReserve);
break;
case PanelType.takeFood:
if (!await _checkIsBind()) return;
Get.toNamed(RouteNames.takeFood);
@@ -130,6 +145,11 @@ class PanelController extends GetxController {
Future<void> _updateMenus() async {
final sysSetting = await AppSettingTool.getSysSetting();
final sysType = sysSetting.sysType;
for (final v in panelBtnList) {
if (canteenMenus.contains(v.type) || supermarketMenus.contains(v.type)) {
v.visible = false;
}
}
for (final v in panelBtnList) {
if (sysType == SysType.CANTEEN) {
if (canteenMenus.contains(v.type)) {
+14 -14
View File
@@ -16,10 +16,10 @@ class PanelPage extends GetView<PanelController> {
return SizedBox(
width: Get.context!.sizes.width * 0.2,
height: double.infinity,
child: <Widget>[
appLogo(),
Obx(
() => controller.panelBtnList
child: Obx(
() => <Widget>[
appLogo(),
controller.panelBtnList
.map((v) {
if (!v.visible) return SizedBox.shrink();
return FButton(
@@ -34,16 +34,16 @@ class PanelPage extends GetView<PanelController> {
})
.toList()
.toColumn(),
),
]
.toColumnSpace(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
mainAxisSize: MainAxisSize.max,
space: 20.h,
)
.scrollable()
.center(),
]
.toColumnSpace(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
mainAxisSize: MainAxisSize.max,
space: 20.h,
)
.scrollable()
.center(),
),
);
}
+1 -1
View File
@@ -1,4 +1,4 @@
library;
export './controller.dart';
export 'widgets/controller.dart';
export './view.dart';
-2
View File
@@ -139,8 +139,6 @@ class TakeFoodPage extends GetView<TakeFoodController> {
@override
Widget build(BuildContext context) {
final theme = FTheme.of(context);
final height = 100;
return GetBuilder<TakeFoodController>(
init: TakeFoodController(),
id: "take_food",