优化桌面端折叠菜单

This commit is contained in:
geht
2026-05-14 16:05:22 +08:00
parent 0342fdee2a
commit 379cc47e47
3 changed files with 108 additions and 9 deletions

View File

@@ -165,6 +165,18 @@ namespace YY.Admin.ViewModels
set => SetProperty(ref _isAppSettingsOpen, value);
}
/// <summary>
/// 为 true 时隐藏左侧功能菜单树(次级侧栏)
/// </summary>
private bool _isMenuTreePanelCollapsed;
public bool IsMenuTreePanelCollapsed
{
get => _isMenuTreePanelCollapsed;
set => SetProperty(ref _isMenuTreePanelCollapsed, value);
}
private NavItem? _menuTreeToggleNavItem;
private AppSettingsViewModel? _appSettingsViewModel;
public AppSettingsViewModel? AppSettingsViewModel {
get => _appSettingsViewModel;
@@ -175,6 +187,7 @@ namespace YY.Admin.ViewModels
public ICommand ResetAppSettingsCommand { get; }
public ICommand OpenAppSettingsCommand { get; }
public ICommand OpenServerSettingsCommand { get; }
public ICommand ToggleMenuTreePanelCommand { get; }
#endregion
@@ -212,6 +225,7 @@ namespace YY.Admin.ViewModels
OpenAppSettingsCommand = new DelegateCommand(OpenAppSettings);
ResetAppSettingsCommand = new DelegateCommand(ResetAppSettings);
OpenServerSettingsCommand = new DelegateCommand(OpenServerSettings);
ToggleMenuTreePanelCommand = new DelegateCommand(ToggleMenuTreePanel);
// 初始化Sidebar数据
InitNavItems();
@@ -300,6 +314,13 @@ namespace YY.Admin.ViewModels
Name = "Tab区域",
Command = new DelegateCommand<NavItem>(OnOpenOrActivateTab)
},
(_menuTreeToggleNavItem = new NavItem {
Icon = "ChevronDoubleLeft",
Name = "折叠菜单",
AlignBottom = true,
IsActive = false,
Command = ToggleMenuTreePanelCommand
}),
new NavItem {
Icon = "Server",
Name = "服务器设置",
@@ -678,6 +699,29 @@ namespace YY.Admin.ViewModels
}
}
/// <summary>
/// 折叠 / 展示左侧菜单树区域
/// </summary>
private void ToggleMenuTreePanel()
{
IsMenuTreePanelCollapsed = !IsMenuTreePanelCollapsed;
if (_menuTreeToggleNavItem == null)
{
return;
}
if (IsMenuTreePanelCollapsed)
{
_menuTreeToggleNavItem.Name = "展示菜单";
_menuTreeToggleNavItem.Icon = "ChevronDoubleRight";
}
else
{
_menuTreeToggleNavItem.Name = "折叠菜单";
_menuTreeToggleNavItem.Icon = "ChevronDoubleLeft";
}
}
private void OpenServerSettings()
{
_dialogService.ShowDialog("ServerSettingsDialog", r =>