diff --git a/lib/common/models/page/order_page_enum_models.dart b/lib/common/models/page/order_page_enum_models.dart index 89589e3..2102805 100644 --- a/lib/common/models/page/order_page_enum_models.dart +++ b/lib/common/models/page/order_page_enum_models.dart @@ -52,3 +52,16 @@ enum OrderPayDisplayType implements BaseEnum { this.order, ); } + +enum OrderMoreTypeEnum implements BaseEnum { + addHoldBill("10", "加入挂单"), + holdBillList("20", "挂单列表"), + ; + + @override + final String code; + @override + final String title; + + const OrderMoreTypeEnum(this.code, this.title); +} diff --git a/lib/common/models/page/order_page_models.dart b/lib/common/models/page/order_page_models.dart index 9001274..7eff2d2 100644 --- a/lib/common/models/page/order_page_models.dart +++ b/lib/common/models/page/order_page_models.dart @@ -9,3 +9,14 @@ class OrderHistoryTableItem { this.total = 0, }); } + +class OrderMoreItem { + String title; + bool visible; + OrderMoreTypeEnum type; + OrderMoreItem({ + required this.title, + required this.visible, + required this.type, + }); +} diff --git a/lib/common/widgets/index.dart b/lib/common/widgets/index.dart index 30d1006..8da7f15 100644 --- a/lib/common/widgets/index.dart +++ b/lib/common/widgets/index.dart @@ -27,6 +27,7 @@ export './order/steelyard_container.dart'; export './order/order_caneen_common.dart'; export './order/order_common.dart'; export './order/order_supermarket_common.dart'; +export 'order/order_more_dialog.dart'; export './setting/setting_password_dialog.dart'; diff --git a/lib/common/widgets/order/order_more_dialog.dart b/lib/common/widgets/order/order_more_dialog.dart new file mode 100644 index 0000000..78279ca --- /dev/null +++ b/lib/common/widgets/order/order_more_dialog.dart @@ -0,0 +1,62 @@ +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'; + +List panelBtnList = [ + OrderMoreItem( + title: "加入挂单", + visible: true, + type: OrderMoreTypeEnum.addHoldBill, + ), + OrderMoreItem( + title: "挂单列表", + visible: true, + type: OrderMoreTypeEnum.holdBillList, + ), +].obs; + +Future selectOrderMoreDialog() async { + final context = Get.context!; + final theme = FTheme.of(context); + + final width = Get.context!.width; + final height = Get.context!.height; + final dialogWidth = width * 0.3; + final dialogHeight = height * 0.5; + return showDialog( + context: context, + barrierDismissible: true, + builder: (BuildContext _) { + return FDialog( + title: Text("选择更多操作", style: theme.typography.lg) + .marginOnly(bottom: 20.h), + style: theme.dialogStyle.copyWith( + insetPadding: EdgeInsets.zero, + maxWidth: dialogWidth, + minWidth: dialogWidth, + horizontalStyle: theme.dialogStyle.horizontalStyle.copyWith( + padding: EdgeInsets.all(20.w), + ), + ), + body: [ + ...panelBtnList + .where((v) => v.visible) + .map( + (v) => FButton( + label: Text( + v.title, + style: theme.typography.lg.copyWith( + color: theme.colorScheme.secondary, + ), + ), + onPress: () => Get.back(result: v.type), + ).marginOnly(bottom: 20.h), + ) + .toList(), + ].toColumn().width(double.infinity).height(dialogHeight), + actions: [], + ); + }); +} diff --git a/lib/pages/supermarket_order/controller.dart b/lib/pages/supermarket_order/controller.dart index 6c8518c..1d849ca 100644 --- a/lib/pages/supermarket_order/controller.dart +++ b/lib/pages/supermarket_order/controller.dart @@ -98,6 +98,37 @@ class SupermarketOrderController extends GetxController with OrderMixin { sendSubScreen(); } + // |下单|点击更多 + Future doMore() async { + final selectType = await selectOrderMoreDialog(); + // 未选择 + if (ObjectUtil.isEmpty(selectType)) return; + switch (selectType) { + case OrderMoreTypeEnum.addHoldBill: + // 加入挂单 + await addHoldBill(); + break; + case OrderMoreTypeEnum.holdBillList: + // 挂单列表 + await holdBillList(); + break; + default: + break; + } + } + +// ************************************************************************** +// 更多 start +// ************************************************************************** + // 加入挂单 + Future addHoldBill() async {} + + // 挂单列表 + Future holdBillList() async {} +// ************************************************************************** +// 更多 end +// ************************************************************************** + // 分页 Future doPage({int? page}) async { EasyLoading.show( diff --git a/lib/pages/supermarket_order/view.dart b/lib/pages/supermarket_order/view.dart index 2b03ee1..cb47d8e 100644 --- a/lib/pages/supermarket_order/view.dart +++ b/lib/pages/supermarket_order/view.dart @@ -283,7 +283,7 @@ class SupermarketOrderPage extends GetView { ), onPress: () => controller.doPay(), ).flexible(flex: 1), - SizedBox(width: 20.w), + SizedBox(width: 10.w), FButton( style: FButtonStyle.destructive, label: Text( @@ -294,6 +294,15 @@ class SupermarketOrderPage extends GetView { ), onPress: () => controller.doCancelPay(), ).flexible(flex: 1), + SizedBox(width: 10.w), + FButton( + style: FButtonStyle.outline, + label: FIcon( + FAssets.icons.circleEllipsis, + size: theme.typography.xl4.fontSize, + ), + onPress: () => controller.doMore(), + ), ].toRow(mainAxisAlignment: MainAxisAlignment.spaceBetween), ].toColumn(), ].toColumn().padding(vertical: 10.h, horizontal: 10.w);