import 'package:cashier_reserve/call/call_view.dart'; import 'package:cashier_reserve/common/base/ui.dart'; import 'package:cashier_reserve/common/base/ui_model.dart'; import 'package:cashier_reserve/common/channel/model/call_status_change_model.dart'; import 'package:cashier_reserve/common/manager/app_manager.dart'; import 'package:cashier_reserve/common/manager/event_manager.dart'; import 'package:cashier_reserve/common/print/print.dart'; import 'package:cashier_reserve/common/push/push.dart'; class HomeViewModel extends BaseUIModel { int _currentIndex = 0; int get currentIndex => _currentIndex; final List _tabTitles = [ "预定", "订单", "打印预定", "历史订单", "来电", "客户", "消息", "更多" ]; final List _tabIcons = [ "reserve", "order", "print", "history", "tel", "customer", "message", "more" ]; List get tabTitles => _tabTitles; List get tabIcons => _tabIcons; PageController? _pageController; PageController? get pageController => _pageController; bool isShowCallView = false; HomeViewModel() { _pageController = PageController(initialPage: 0); Future.delayed(const Duration(milliseconds: 700), () { _checkLogin(); }); EventManager.addListener(this, (event) { yjPrint("HomeViewModel CallStatusChangeEvent state: ${event.model.state}"); if (event.model.state == "Incoming") { showCallInfoView(event.model); } else { hideCallInfoView(); } }); } @override void dispose() { _pageController?.dispose(); super.dispose(); } _checkLogin() { bool flag = AppManager.isLogin(); yjPrint("is login $flag"); } void setIndex(int index) { if (_currentIndex == index) { return; } _currentIndex = index; notifyListeners(); _pageController?.jumpToPage(index); } showCallInfoView(CallStatusChangeModel model) { if (isShowCallView) { return; } YJPush.presentWidget(context!, CallView(statusModel: model)); isShowCallView = true; } hideCallInfoView() { if (!isShowCallView) { return; } Navigator.of(context!).pop(); isShowCallView = false; } }