import 'package:forui/forui.dart'; import 'package:pj_supermarket_cloud/common/index.dart'; /// 设备类型 enum SysType implements BaseEnum { SUPERMARKET("1", "超市", "智慧超市", "supermarket"), CANTEEN("2", "食堂", "智慧食堂", "canteen"), ; @override final String code; @override final String title; final String cnStr; final String usStr; const SysType(this.code, this.title, this.cnStr, this.usStr); } /// 订单类型 enum OrderType implements BaseEnum { BELOW("1", "线下购买"), RESERVE("2", "线上订餐"), FOREIGN_TICKET("3", "外来人员"), STRIDE_DEPT("4", "跨单位"), ZY("5", "正元公务餐"), ; @override final String code; @override final String title; const OrderType(this.code, this.title); } /// 付款方式 enum OrderPayType implements BaseEnum { /// 默认钱包余额支付。 WALLET_DEFAULT("1", "普通钱包支付"), /// 用户向终端出示自有钱包二维码支付。 WALLET_QR_CODE("2", "钱包二维码支付"), /// 旧版终端展示自有钱包订单码,由移动端扫码支付。 WALLET_QR_CODE_SCAN("22", "钱包扫一扫支付"), /// 终端展示支付宝、微信共用的 HTTPS 聚合收银二维码。 AGGREGATE_ORDER_PAY("23", "支付宝微信聚合码支付"), /// 实体饭卡钱包支付。 WALLET_CARD("3", "钱包饭卡支付"), /// 人脸识别钱包支付。 FACE("4", "人脸识别支付"), /// 跨单位业务二维码支付。 STRIDE_DEPT_QR_CODE("5", "跨单位二维码支付"), /// 外来人员票券二维码支付。 FOREIGN_TICKET_QR_CODE("6", "外来人员二维码支付"), /// 线上预约订单二维码核销支付。 RESERVE_QR_CODE("7", "线上订餐二维码支付"), /// 终端线下现金支付。 CASH("8", "现金支付"), /// 微信用户付款码支付。 WECHANT_SELF_QR_CODE_PAY("10", "微信付款码支付"), /// 支付宝用户付款码支付。 ALI_SELF_QR_CODE_PAY("11", "支付宝付款码支付"), /// 中医院渠道支付。 ZYY("12", "中医院"), /// 人民医院渠道支付。 RMYY("13", "人民医院"), /// 超市消费卡渠道支付。 CSXFK("13", "超市消费卡"), /// 活动订单核销。 ACT_CANCEL("50", "活动核销"), ; @override /// 数据库和服务端接口使用的稳定支付类型编码。 final String code; @override /// 支付方式的中文展示名称。 final String title; /// 创建一个使用稳定协议编码的支付方式枚举值。 const OrderPayType(this.code, this.title); /// 判断是否为跨单位或外来人员二维码支付。 static bool isStrideOrForeign(OrderPayType payType) { return [ OrderPayType.STRIDE_DEPT_QR_CODE, OrderPayType.FOREIGN_TICKET_QR_CODE, ].contains(payType); } /// 判断是否为顾客直接使用微信或支付宝付款码支付。 static bool isExternalPay(OrderPayType payType) { return [ OrderPayType.WECHANT_SELF_QR_CODE_PAY, OrderPayType.ALI_SELF_QR_CODE_PAY, ].contains(payType); } } /// 订单状态 enum OrderStatus implements BaseEnum { // 查询使用 TOTAL("-1", "全部", true), CREATE("1", "未付款", true), PAY("5", "已付款", true), OFFLINE_CREATE("2", "离线(未支付)", false), OFFLINE_PAY("6", "离线(本地支付)", true), REFUND("10", "退款", true), CANCEL("20", "已核销", false), ; @override final String code; @override final String title; @override final bool visible; const OrderStatus(this.code, this.title, this.visible); static List visibleList() { return OrderStatus.values.where((e) => e.visible).toList(); } static List successPayCodes() { return [ OrderStatus.PAY.code, OrderStatus.CANCEL.code, ]; } } // 打印状态 enum PrintStatus implements BaseEnum { NONE("10", "未打印"), SUCCESS("20", "打印成功"), SYNC("30", "同步成功"), ERROR("40", "打印失败"), ; @override final String code; @override final String title; const PrintStatus(this.code, this.title); } enum ProductHourType implements BaseEnum { TOTAL("-1", "查询全部"), MORNING("1", "早餐"), NOON("2", "中餐"), NIGHT("3", "晚餐"), ; @override final String code; @override final String title; // 使用 getter 方法动态获取图标 SvgAsset get icon { switch (this) { case ProductHourType.TOTAL: return FAssets.icons.calendar; case ProductHourType.MORNING: return FAssets.icons.sunrise; case ProductHourType.NOON: return FAssets.icons.sun; case ProductHourType.NIGHT: return FAssets.icons.sunMoon; } } const ProductHourType(this.code, this.title); } enum WalletType implements BaseEnum { EAT("1", "饭卡钱包"), PAY("2", "消费钱包"), ; @override final String code; @override final String title; const WalletType(this.code, this.title); } /// 商品性质 enum ProductNature implements BaseEnum { DEFAULT("1", "普通商品"), WEIGHT("2", "电子称称重商品"), ; @override final String code; @override final String title; const ProductNature(this.code, this.title); } /// 优惠类型 enum DiscountsType implements BaseEnum { JZ_DISCOUNT("1", "9折优惠"), ; @override final String code; @override final String title; const DiscountsType(this.code, this.title); }