117 lines
3.3 KiB
Dart
117 lines
3.3 KiB
Dart
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<PanelItem> panelBtnList = <PanelItem>[
|
|
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<void> 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<bool> _checkIsBind() async {
|
|
final sysSetting = await AppSettingTool.getSysSetting();
|
|
final id = sysSetting.serviceMerchantId;
|
|
if (ObjectUtil.isEmpty(id)) {
|
|
Toast.error(msg: "请前往设置绑定设备");
|
|
return false;
|
|
}
|
|
return true;
|
|
}
|
|
|
|
Future<void> _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();
|
|
}
|
|
}
|