import 'package:common_utils/common_utils.dart'; import 'package:get/get.dart'; import 'package:pj_supermarket_cloud/common/index.dart'; class PanelController extends GetxController { PanelController(); static const String _tag = "菜单页面 Controller"; RxList panelBtnList = [ PanelItem(title: "购买", visible: false, type: PanelType.supermarketOrder), PanelItem(title: "点餐", visible: false, type: PanelType.canteenOrder), PanelItem(title: "取餐", visible: false, type: PanelType.takeFood), PanelItem(title: "交易查询", visible: true, type: PanelType.orderHistory), PanelItem(title: "开卡管理", visible: true, type: PanelType.cardActive), PanelItem(title: "设置", visible: true, type: PanelType.setting), PanelItem(title: "退出登录", visible: true, type: PanelType.logout), PanelItem(title: "测试", visible: true, type: PanelType.test), ].obs; final canteenMenus = [ PanelType.canteenOrder, PanelType.takeFood, ]; final supermarketMenus = [ PanelType.supermarketOrder, ]; @override void onInit() async { super.onInit(); await _updateMenus(); } @override void onReady() { super.onReady(); _initData(); } _initData() async { update(["panel"]); } Future doBtn(PanelType type) async { switch (type) { case PanelType.supermarketOrder: if (!await _checkIsBind()) return; Get.offAllNamed(RouteNames.supermarketProduct); break; case PanelType.canteenOrder: if (!await _checkIsBind()) return; Get.offAllNamed(RouteNames.canteenProduct); break; case PanelType.takeFood: if (!await _checkIsBind()) return; Get.toNamed(RouteNames.takeFood); break; case PanelType.orderHistory: if (!await _checkIsBind()) return; Get.toNamed(RouteNames.orderHistory); break; case PanelType.setting: if (AppSysTool.isProd()) { final flag = await settingPasswordDialog(Get.context!); if (!flag) return; } Get.toNamed(RouteNames.setting); break; case PanelType.cardActive: if (!await _checkIsBind()) return; Get.toNamed(RouteNames.cardActive); break; case PanelType.logout: final isNetwork = AppNetworkTool.isAutoNetwork(); if (isNetwork) { await AppSettingTool.setUserSetting(UserSetting()); } Get.offAndToNamed(RouteNames.login); break; case PanelType.test: break; default: break; } } Future _checkIsBind() async { final sysSetting = await AppSettingTool.getSysSetting(); final id = sysSetting.serviceMerchantId; if (ObjectUtil.isEmpty(id)) { Toast.error(msg: "请前往设置绑定设备"); return false; } return true; } Future _updateMenus() async { final sysSetting = await AppSettingTool.getSysSetting(); final sysType = sysSetting.sysType; for (final v in panelBtnList) { if (sysType == SysType.CANTEEN) { if (canteenMenus.contains(v.type)) { v.visible = true; } } else if (sysType == SysType.SUPERMARKET) { if (supermarketMenus.contains(v.type)) { v.visible = true; } } } panelBtnList.refresh(); } }