优化菜单

This commit is contained in:
maqiao 2024-11-05 15:37:54 +08:00
parent 9e07f293a0
commit 10c3fc4b6e
2 changed files with 210 additions and 89 deletions

View File

@ -66,87 +66,87 @@ namespace DM_Weight.ViewModels
get { return _selectedChildMenu; } get { return _selectedChildMenu; }
set set
{ {
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
{ // {
if (value.PremissionPath.Equals("ReturnDrugWindow") || value.PremissionPath.Equals("ReturnDrugWindow2")) // if (value.PremissionPath.Equals("ReturnDrugWindow") || value.PremissionPath.Equals("ReturnDrugWindow2"))
{ // {
if (ConfigurationManager.AppSettings["returnDrugMode"].ToString().Equals("1")) // if (ConfigurationManager.AppSettings["returnDrugMode"].ToString().Equals("1"))
{ // {
_regionManager.RequestNavigate("ContentRegion", "ReturnDrugWindow2"); // _regionManager.RequestNavigate("ContentRegion", "ReturnDrugWindow2");
} // }
else // else
{ // {
_regionManager.RequestNavigate("ContentRegion", "ReturnDrugWindow"); // _regionManager.RequestNavigate("ContentRegion", "ReturnDrugWindow");
} // }
} // }
else if (value.PremissionPath.Equals("SettingMainWindow") || value.PremissionPath.Equals("SettingWindow")) // else if (value.PremissionPath.Equals("SettingMainWindow") || value.PremissionPath.Equals("SettingWindow"))
{ // {
//if (Convert.ToInt32(ConfigurationManager.AppSettings["hasFridge"])>0) // //if (Convert.ToInt32(ConfigurationManager.AppSettings["hasFridge"])>0)
//{ // //{
// _regionManager.RequestNavigate("ContentRegion", "SettingMainWindow"); // // _regionManager.RequestNavigate("ContentRegion", "SettingMainWindow");
//} // //}
//else // //else
{ // {
_regionManager.RequestNavigate("ContentRegion", "SettingWindow"); // _regionManager.RequestNavigate("ContentRegion", "SettingWindow");
} // }
} // }
else // else
{ // {
_regionManager.RequestNavigate("ContentRegion", value.PremissionPath); // _regionManager.RequestNavigate("ContentRegion", value.PremissionPath);
} // }
} // }
} // }
SetProperty(ref _selectedChildMenu, value); SetProperty(ref _selectedChildMenu, value);
} //}
} }
} }
@ -172,31 +172,146 @@ namespace DM_Weight.ViewModels
SetProperty(ref _selectedMenu, value); SetProperty(ref _selectedMenu, value);
} }
} }
#region
private DelegateCommand<ListBox> _selectionCommon; #endregion
public DelegateCommand<ListBox> SelectionCommon private DelegateCommand _selectionCommon;
public DelegateCommand SelectionCommon
{ {
get => _selectionCommon ?? (_selectionCommon = new DelegateCommand<ListBox>(SelectionMethod)); get => _selectionCommon ?? (_selectionCommon = new DelegateCommand(SelectionMethod));
} }
private void SelectionMethod(ListBox viewName) private void SelectionMethod()
{ {
SelectedMenu = viewName.SelectedItem as PremissionDm; //SelectedMenu = viewName.SelectedItem as PremissionDm;
if (SelectedMenu.PremissionName == "退出") //if (SelectedMenu.PremissionName == "退出")
{ //{
_chkFunction.HIKStopDVRRecord(); // _chkFunction.HIKStopDVRRecord();
// logger.Info($"用户【{Operator?.Nickname}】退出登录");
// Operator = null;
// Reviewer = null;
// _regionManager.RequestNavigate("MainRegion", "LoginWindow");
//}
//else
//{
// //SelectedMenu.Children = SelectedMenu.Children;
// SelectedChildMenu = SelectedMenu.Children[0];
//}
logger.Info("开始进入父菜单");
if (SelectedMenu != null && SelectedMenu.PremissionName == "退出")
{
logger.Info($"用户【{Operator?.Nickname}】退出登录"); logger.Info($"用户【{Operator?.Nickname}】退出登录");
Operator = null; Operator = null;
Reviewer = null; Reviewer = null;
_regionManager.RequestNavigate("MainRegion", "LoginWindow"); _regionManager.RequestNavigate("MainRegion", "BeforeLogin");
} }
else else
{ {
//SelectedMenu.Children = SelectedMenu.Children; if (!_portUtil.Operate)
SelectedChildMenu = SelectedMenu.Children[0]; {
_regionManager.RequestNavigate("ContentRegion", SelectedMenu.Children[0].PremissionPath);
}
}
logger.Info("结束父菜单");
}
#region
private DelegateCommand _selectionChildCommon;
public DelegateCommand SelectionChildCommon
{
get => _selectionChildCommon ?? (_selectionChildCommon = new DelegateCommand(SelectionChildMethod));
}
private void SelectionChildMethod()
{
SelectChildNavigate(SelectedChildMenu);
}
private void SelectChildNavigate(PremissionDm SelectedChildMenu)
{
if (!_portUtil.Operate)
{
if (SelectedChildMenu != null)
{
if (SelectedChildMenu.PremissionPath.Equals("TakeRecordWindow"))
{
//定义传参变量
NavigationParameters keys = new NavigationParameters();
//添加参数,键值对格式
keys.Add("Type", 2);
_regionManager.RequestNavigate("ContentRegion", "MachineRecordWindow", keys);
}
else if (SelectedChildMenu.PremissionPath.Equals("AddRecordWindow"))
{
//定义传参变量
NavigationParameters keys = new NavigationParameters();
//添加参数,键值对格式
keys.Add("Type", 1);
_regionManager.RequestNavigate("ContentRegion", "MachineRecordWindow", keys);
}
else if (SelectedChildMenu.PremissionPath.Equals("ReturnRecordWindow"))
{
//定义传参变量
NavigationParameters keys = new NavigationParameters();
//添加参数,键值对格式
keys.Add("Type", 3);
_regionManager.RequestNavigate("ContentRegion", "MachineRecordWindow", keys);
}
else if (SelectedChildMenu.PremissionPath.Equals("RetrunEmptyRecordWindow"))
{
//定义传参变量
NavigationParameters keys = new NavigationParameters();
//添加参数,键值对格式
keys.Add("Type", 3);
_regionManager.RequestNavigate("ContentRegion", SelectedChildMenu.PremissionPath, keys);
}
else if (SelectedChildMenu.PremissionPath.Equals("CheckRecordWindow"))
{
//定义传参变量
NavigationParameters keys = new NavigationParameters();
//添加参数,键值对格式
keys.Add("Type", 4);
_regionManager.RequestNavigate("ContentRegion", "MachineRecordWindow", keys);
}
else
{
if (SelectedChildMenu.PremissionPath.Equals("ReturnDrugWindow") || SelectedChildMenu.PremissionPath.Equals("ReturnDrugWindow2"))
{
if (ConfigurationManager.AppSettings["returnDrugMode"].ToString().Equals("1"))
{
_regionManager.RequestNavigate("ContentRegion", "ReturnDrugWindow2");
}
else
{
_regionManager.RequestNavigate("ContentRegion", "ReturnDrugWindow");
}
}
else if (SelectedChildMenu.PremissionPath.Equals("SettingMainWindow") || SelectedChildMenu.PremissionPath.Equals("SettingWindow"))
{
//if (Convert.ToInt32(ConfigurationManager.AppSettings["hasFridge"])>0)
//{
// _regionManager.RequestNavigate("ContentRegion", "SettingMainWindow");
//}
//else
{
_regionManager.RequestNavigate("ContentRegion", "SettingWindow");
}
}
else
{
_regionManager.RequestNavigate("ContentRegion", SelectedChildMenu.PremissionPath);
}
}
}
} }
} }
#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); } }
public UserList UserList { get { return _userList; } set { SetProperty(ref _userList, value); } } public UserList UserList { get { return _userList; } set { SetProperty(ref _userList, value); } }
@ -406,6 +521,7 @@ namespace DM_Weight.ViewModels
PremissionDmList = premissions; PremissionDmList = premissions;
SelectedMenu = premissions[0]; SelectedMenu = premissions[0];
SelectedChildMenu = premissions[0].Children[0]; SelectedChildMenu = premissions[0].Children[0];
_regionManager.RequestNavigate("ContentRegion", premissions[0].Children[0].PremissionPath);
FindDrawerCount(); FindDrawerCount();
int autoExit = Convert.ToInt32(ConfigurationManager.AppSettings["autoExit"] ?? "0"); int autoExit = Convert.ToInt32(ConfigurationManager.AppSettings["autoExit"] ?? "0");

View File

@ -26,10 +26,11 @@
<ColumnDefinition /> <ColumnDefinition />
</Grid.ColumnDefinitions> </Grid.ColumnDefinitions>
<Image Grid.Column="0" Margin="30 0 30 0" HorizontalAlignment="Left" Width="Auto" Height="26" Source="/Images/logo.png" /> <Image Grid.Column="0" Margin="30 0 30 0" HorizontalAlignment="Left" Width="Auto" Height="26" Source="/Images/logo.png" />
<ListBox Name="ListBoxName" Grid.Column="1" ItemsSource="{Binding PremissionDmList}" HorizontalAlignment="Right" Cursor="Hand"> <ListBox Name="ListBoxName" Grid.Column="1" SelectedItem="{Binding SelectedMenu}" ItemsSource="{Binding PremissionDmList}" HorizontalAlignment="Right" Cursor="Hand">
<i:Interaction.Triggers> <i:Interaction.Triggers>
<i:EventTrigger EventName="SelectionChanged"> <i:EventTrigger EventName="SelectionChanged">
<i:InvokeCommandAction Command="{Binding SelectionCommon}" CommandParameter="{Binding ElementName=ListBoxName}"/> <!--<i:InvokeCommandAction Command="{Binding SelectionCommon}" CommandParameter="{Binding ElementName=ListBoxName}"/>-->
<i:InvokeCommandAction Command="{Binding SelectionCommon}"/>
</i:EventTrigger> </i:EventTrigger>
</i:Interaction.Triggers> </i:Interaction.Triggers>
<ListBox.ItemsPanel> <ListBox.ItemsPanel>
@ -55,7 +56,11 @@
<materialDesign:Card Grid.Row="0"> <materialDesign:Card Grid.Row="0">
<ListBox ItemsSource="{Binding SelectedMenu.Children}" SelectedItem="{ Binding SelectedChildMenu }" HorizontalAlignment="left" Cursor="Hand"> <ListBox ItemsSource="{Binding SelectedMenu.Children}" SelectedItem="{ Binding SelectedChildMenu }" HorizontalAlignment="left" Cursor="Hand">
<i:Interaction.Triggers>
<i:EventTrigger EventName="SelectionChanged">
<i:InvokeCommandAction Command="{Binding SelectionChildCommon}"/>
</i:EventTrigger>
</i:Interaction.Triggers>
<ListBox.ItemsPanel> <ListBox.ItemsPanel>
<ItemsPanelTemplate> <ItemsPanelTemplate>
<WrapPanel Orientation="Horizontal" IsItemsHost="True"/> <WrapPanel Orientation="Horizontal" IsItemsHost="True"/>