diff --git a/DM_Weight/ViewModels/HomeWindowViewModel.cs b/DM_Weight/ViewModels/HomeWindowViewModel.cs index c93c2b6..5e8c9fc 100644 --- a/DM_Weight/ViewModels/HomeWindowViewModel.cs +++ b/DM_Weight/ViewModels/HomeWindowViewModel.cs @@ -25,6 +25,8 @@ using System.Threading; using DM_Weight.msg; using log4net.Core; using DM_Weight.Services; +using MaterialDesignThemes.Wpf; +using System.Windows.Media; namespace DM_Weight.ViewModels { @@ -36,13 +38,27 @@ namespace DM_Weight.ViewModels private UserList? _userList; private UserList? _userList2; - + private int loginMode = Convert.ToInt32(ConfigurationManager.AppSettings["loginMode"]?.ToString() ?? "1"); public bool MultiLogin { get => loginMode == 2; } + private SolidColorBrush _colorBrush; + + public SolidColorBrush SnackbarBackground + { + get => _colorBrush; + set => SetProperty(ref _colorBrush, value); + } + private ISnackbarMessageQueue _snackbarMessageQueue = new SnackbarMessageQueue(TimeSpan.FromSeconds(3)); + + public ISnackbarMessageQueue SnackbarMessageQueue + { + get => _snackbarMessageQueue; + set => SetProperty(ref _snackbarMessageQueue, value); + } private PremissionDm? _selectedMenu; @@ -57,59 +73,59 @@ namespace DM_Weight.ViewModels { //if (!_portUtil.Operate) //{ - //if (value != null) - //{ - // if (value.PremissionPath.Equals("TakeRecordWindow")) - // { - // //定义传参变量 - // NavigationParameters keys = new NavigationParameters(); + //if (value != null) + //{ + // if (value.PremissionPath.Equals("TakeRecordWindow")) + // { + // //定义传参变量 + // NavigationParameters keys = new NavigationParameters(); - // //添加参数,键值对格式 - // keys.Add("Type", 2); - // _regionManager.RequestNavigate("ContentRegion", "MachineRecordWindow", keys); - // } - // else if (value.PremissionPath.Equals("AddRecordWindow")) - // { - // //定义传参变量 - // NavigationParameters keys = new NavigationParameters(); + // //添加参数,键值对格式 + // keys.Add("Type", 2); + // _regionManager.RequestNavigate("ContentRegion", "MachineRecordWindow", keys); + // } + // else if (value.PremissionPath.Equals("AddRecordWindow")) + // { + // //定义传参变量 + // NavigationParameters keys = new NavigationParameters(); - // //添加参数,键值对格式 - // keys.Add("Type", 1); - // _regionManager.RequestNavigate("ContentRegion", "MachineRecordWindow", keys); - // } - // else if (value.PremissionPath.Equals("ReturnRecordWindow")) - // { - // //定义传参变量 - // NavigationParameters keys = new NavigationParameters(); + // //添加参数,键值对格式 + // keys.Add("Type", 1); + // _regionManager.RequestNavigate("ContentRegion", "MachineRecordWindow", keys); + // } + // else if (value.PremissionPath.Equals("ReturnRecordWindow")) + // { + // //定义传参变量 + // NavigationParameters keys = new NavigationParameters(); - // //添加参数,键值对格式 - // keys.Add("Type", 3); - // _regionManager.RequestNavigate("ContentRegion", "MachineRecordWindow", keys); - // } - // else if (value.PremissionPath.Equals("RetrunEmptyRecordWindow")) - // { - // //定义传参变量 - // NavigationParameters keys = new NavigationParameters(); + // //添加参数,键值对格式 + // keys.Add("Type", 3); + // _regionManager.RequestNavigate("ContentRegion", "MachineRecordWindow", keys); + // } + // else if (value.PremissionPath.Equals("RetrunEmptyRecordWindow")) + // { + // //定义传参变量 + // NavigationParameters keys = new NavigationParameters(); - // //添加参数,键值对格式 - // keys.Add("Type", 3); - // _regionManager.RequestNavigate("ContentRegion", value.PremissionPath, keys); - // } - // else if (value.PremissionPath.Equals("CheckRecordWindow")) - // { - // //定义传参变量 - // NavigationParameters keys = new NavigationParameters(); + // //添加参数,键值对格式 + // keys.Add("Type", 3); + // _regionManager.RequestNavigate("ContentRegion", value.PremissionPath, keys); + // } + // else if (value.PremissionPath.Equals("CheckRecordWindow")) + // { + // //定义传参变量 + // NavigationParameters keys = new NavigationParameters(); - // //添加参数,键值对格式 - // keys.Add("Type", 4); - // _regionManager.RequestNavigate("ContentRegion", "MachineRecordWindow", keys); - // } - // else - // { - // _regionManager.RequestNavigate("ContentRegion", value.PremissionPath); - // } - //} - SetProperty(ref _selectedChildMenu, value); + // //添加参数,键值对格式 + // keys.Add("Type", 4); + // _regionManager.RequestNavigate("ContentRegion", "MachineRecordWindow", keys); + // } + // else + // { + // _regionManager.RequestNavigate("ContentRegion", value.PremissionPath); + // } + //} + SetProperty(ref _selectedChildMenu, value); //} } } @@ -190,7 +206,14 @@ namespace DM_Weight.ViewModels // SelectedChildMenu = value.Children[0]; // } //} - SetProperty(ref _selectedMenu, value); + if (!_portUtil.Operate) + SetProperty(ref _selectedMenu, value); + else + { + logger.Info($"未关闭抽屉切换菜单"); + SnackbarBackground = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#b71c1c")); + SnackbarMessageQueue.Enqueue("请关闭抽屉后再切换菜单"); + } } } @@ -204,12 +227,22 @@ namespace DM_Weight.ViewModels { logger.Info("开始进入父菜单"); //SelectedMenu = viewName.SelectedItem as PremissionDm; - if (SelectedMenu!=null&&SelectedMenu.PremissionName == "退出") + if (SelectedMenu != null && SelectedMenu.PremissionName == "退出") { - logger.Info($"用户【{Operator?.Nickname}】退出登录"); - Operator = null; - Reviewer = null; - _regionManager.RequestNavigate("MainRegion", "LoginWindow"); + if (!_portUtil.Operate) + { + logger.Info($"用户【{Operator?.Nickname}】退出登录"); + Operator = null; + Reviewer = null; + _regionManager.RequestNavigate("MainRegion", "LoginWindow"); + } + else + { + logger.Info($"未关闭抽屉操作退出"); + SnackbarBackground = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#b71c1c")); + SnackbarMessageQueue.Enqueue("请关闭抽屉后再退出"); + return; + } } else { @@ -222,7 +255,7 @@ namespace DM_Weight.ViewModels } logger.Info("结束父菜单"); - } + } #endregion #region 子菜单点击 private DelegateCommand _selectionChildCommon; @@ -233,7 +266,7 @@ namespace DM_Weight.ViewModels private void SelectionChildMethod() { SelectChildNavigate(SelectedChildMenu); - } + } #endregion public List PremissionDmList { get { return _premissionDmList; } set { SetProperty(ref _premissionDmList, value); } } @@ -253,7 +286,7 @@ namespace DM_Weight.ViewModels //private SqlSugarScope SqlSugarHelper.Db; IEventAggregator _eventAggregator; SqlHelperService _sqlHelperService; - public HomeWindowViewModel(IRegionManager iRegionManager, PortUtil portUtil, IDialogService dialogService, IUnityContainer container, SqlSugarScope sqlSugarScope, IEventAggregator eventAggregator,SqlHelperService sqlHelperService) + public HomeWindowViewModel(IRegionManager iRegionManager, PortUtil portUtil, IDialogService dialogService, IUnityContainer container, SqlSugarScope sqlSugarScope, IEventAggregator eventAggregator, SqlHelperService sqlHelperService) { _portUtil = portUtil; _regionManager = iRegionManager; @@ -261,7 +294,7 @@ namespace DM_Weight.ViewModels _container = container; //this.SqlSugarHelper.Db = sqlSugarScope; this._eventAggregator = eventAggregator; - _sqlHelperService= sqlHelperService; + _sqlHelperService = sqlHelperService; } public DelegateCommand OpenFingerDialog @@ -437,7 +470,7 @@ namespace DM_Weight.ViewModels TakeMethod(); }); } - + //=>_takeCommand??= new DelegateCommand(TakeMethod); private void TakeMethod() { diff --git a/DM_Weight/Views/HomeWindow.xaml b/DM_Weight/Views/HomeWindow.xaml index 127bf10..bf95490 100644 --- a/DM_Weight/Views/HomeWindow.xaml +++ b/DM_Weight/Views/HomeWindow.xaml @@ -150,6 +150,9 @@ +