项目要求更改

This commit is contained in:
2026-03-27 12:39:12 +08:00
parent f40086a0b0
commit 2262c2a1db
16 changed files with 162 additions and 31 deletions

View File

@@ -6,24 +6,28 @@ using CapMachine.Wpf.Services;
using Prism.Commands;
using Prism.Events;
using Prism.Regions;
using System;
using System.Windows;
using System.Windows.Input;
namespace CapMachine.Wpf.ViewModels
{
public class MainViewModel : NavigationViewModel
{
public MainViewModel(IRegionManager region, INavigationMenuService menuService, SysRunService sysService, IEventAggregator eventAggregator)
public MainViewModel(IRegionManager region, INavigationMenuService menuService, SysRunService sysService, IEventAggregator eventAggregator, ConfigService configService)
{
this.region = region;
MenuService = menuService;
SysService = sysService;
EventAggregator = eventAggregator;
ConfigService = configService;
NavigateCommand = new DelegateCommand<NavigationItem>(Navigate);
}
public INavigationMenuService MenuService { get; }
public SysRunService SysService { get; }
public IEventAggregator EventAggregator { get; }
public ConfigService ConfigService { get; }
public DelegateCommand<NavigationItem> NavigateCommand { get; private set; }
private int selectedIndex = -1;
@@ -59,11 +63,43 @@ namespace CapMachine.Wpf.ViewModels
return;
}
if (!CanNavigate(item.PageName))
{
IsTopDrawerOpen = false;
return;
}
NavigatePage(item.PageName);
IsTopDrawerOpen = false;
}
/// <summary>
/// 校验当前页面是否允许导航
/// </summary>
/// <param name="pageName">目标页面名称</param>
/// <returns>true允许导航false禁止导航</returns>
private bool CanNavigate(string pageName)
{
if (string.IsNullOrWhiteSpace(pageName))
{
return false;
}
if (pageName.Equals("UserManageView", StringComparison.OrdinalIgnoreCase))
{
return true;
}
if (ConfigService.IsUserLoggedIn)
{
return true;
}
MessageBox.Show("请先登录用户,再切换到其他界面!", "提示");
return false;
}
private DelegateCommand<string> _TopDrawerCmd;
/// <summary>
/// 顶部弹窗按钮命令