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: true, 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), ].obs; final canteenMenus = [ PanelType.canteenOrder, ]; final supermarketMenus = [ PanelType.supermarketOrder, ]; _initData() async { await _updateMenus(); update(["panel"]); } @override void onReady() { super.onReady(); _initData(); } Future doBtn(PanelType type) async { switch (type) { case PanelType.supermarketOrder: if (!await _checkIsBind()) return; Get.toNamed(RouteNames.supermarketProduct); break; case PanelType.canteenOrder: if (!await _checkIsBind()) return; Get.toNamed(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: 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; 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(); } }