添加抽屉状态是打开则不能退出及操作其他菜单

This commit is contained in:
maqiao 2024-07-19 15:39:14 +08:00
parent f43e691ee0
commit 0eaf740192
2 changed files with 96 additions and 60 deletions

View File

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

View File

@ -150,6 +150,9 @@
</Grid> </Grid>
<materialDesign:Snackbar HorizontalAlignment="Center" VerticalAlignment="Center"
Background="{Binding SnackbarBackground}"
MessageQueue="{Binding SnackbarMessageQueue}"/>
</Grid> </Grid>
</UserControl> </UserControl>