✨ feat(*): 添加管理员解锁与 SFTP 探活能力

* 新增管理员解锁弹窗、手动操作权限控制与倒计时状态
* 支持系统设置页测试 SFTP 连接,并在启动时执行探活
* 补充设计时服务、全局异常兜底与相关单元测试
This commit is contained in:
2026-04-17 14:12:10 +08:00
parent 49f113dcf3
commit 8f74e07c66
25 changed files with 1382 additions and 95 deletions

View File

@@ -1,4 +1,5 @@
using AxiOmron.PcbCheck.Options;
using AxiOmron.PcbCheck.Services.Interfaces;
using AxiOmron.PcbCheck.ViewModels;
namespace AxiOmron.PcbCheck.DesignTime;
@@ -12,6 +13,8 @@ public sealed class DesignTimeViewModelLocator
private readonly DesignTimeDispatcherService _dispatcherService = new();
private readonly DesignTimeWorkflowControlService _workflowControlService = new();
private readonly DesignTimeAppConfigService _appConfigService = new();
private readonly DesignTimeAdminUnlockDialogService _adminUnlockDialogService = new();
private readonly DesignTimeSftpLookupService _sftpLookupService = new();
private MainWindowViewModel? _mainWindowViewModel;
private SystemSettingViewModel? _systemSettingViewModel;
@@ -25,7 +28,7 @@ public sealed class DesignTimeViewModelLocator
/// 获取系统设置设计时视图模型。
/// </summary>
public SystemSettingViewModel SystemSettingViewModel
=> _systemSettingViewModel ??= new SystemSettingViewModel(_appConfigService);
=> _systemSettingViewModel ??= new SystemSettingViewModel(_appConfigService, _sftpLookupService);
/// <summary>
/// 创建首页设计时视图模型。
@@ -34,6 +37,6 @@ public sealed class DesignTimeViewModelLocator
private MainWindowViewModel CreateMainWindowViewModel()
{
AppConfig config = _appConfigService.Load();
return new MainWindowViewModel(_appStateStore, _dispatcherService, _workflowControlService, config);
return new MainWindowViewModel(_appStateStore, _dispatcherService, _workflowControlService, config, _adminUnlockDialogService);
}
}