版本260406

This commit is contained in:
2026-04-06 22:04:05 +08:00
parent 7dc5e73af7
commit 0b150470be
216 changed files with 98993 additions and 33 deletions

View File

@@ -1,4 +1,6 @@
using OrpaonVision.Core.Annotation;
using Microsoft.Extensions.DependencyInjection;
using OrpaonVision.ConfigApp.ViewModels;
using OrpaonVision.ConfigApp.Views;
using System.Windows;
namespace OrpaonVision.ConfigApp
@@ -8,18 +10,136 @@ namespace OrpaonVision.ConfigApp
/// </summary>
public partial class MainWindow : Window
{
private readonly IAnnotationSyncAppService _annotationSyncAppService;
private readonly MainWindowViewModel _viewModel;
private readonly IServiceProvider _serviceProvider;
/// <summary>
/// 主窗口构造函数。
/// </summary>
/// <param name="annotationSyncAppService">标注同步应用服务。</param>
public MainWindow(IAnnotationSyncAppService annotationSyncAppService)
/// <param name="viewModel">主窗口 ViewModel。</param>
public MainWindow(MainWindowViewModel viewModel, IServiceProvider serviceProvider)
{
_annotationSyncAppService = annotationSyncAppService;
_viewModel = viewModel;
_serviceProvider = serviceProvider;
InitializeComponent();
Title = "OrpaonVision ConfigApp (CVAT)";
DataContext = _viewModel;
}
private async void OnCheckStatusClicked(object sender, RoutedEventArgs e)
{
await _viewModel.CheckStatusAsync();
}
private async void OnQueryTaskDetailClicked(object sender, RoutedEventArgs e)
{
await _viewModel.QueryTaskDetailAsync();
}
private async void OnSyncClicked(object sender, RoutedEventArgs e)
{
await _viewModel.SyncAsync();
}
private async void OnSaveRuleDraftClicked(object sender, RoutedEventArgs e)
{
await _viewModel.SaveRuleDraftAsync();
}
private async void OnPublishRuleVersionClicked(object sender, RoutedEventArgs e)
{
await _viewModel.PublishRuleVersionAsync();
}
private void OnAddRuleLayerClicked(object sender, RoutedEventArgs e)
{
_viewModel.AddRuleLayerRow();
}
private void OnRemoveRuleLayerClicked(object sender, RoutedEventArgs e)
{
_viewModel.RemoveSelectedRuleLayerRow();
}
private void OnAddRulePartClicked(object sender, RoutedEventArgs e)
{
_viewModel.AddRulePartRow();
}
private void OnRemoveRulePartClicked(object sender, RoutedEventArgs e)
{
_viewModel.RemoveSelectedRulePartRow();
}
private void OnAddRuleRoiClicked(object sender, RoutedEventArgs e)
{
_viewModel.AddRuleRoiRow();
}
private void OnRemoveRuleRoiClicked(object sender, RoutedEventArgs e)
{
_viewModel.RemoveSelectedRuleRoiRow();
}
private void OnAddRuleItemClicked(object sender, RoutedEventArgs e)
{
_viewModel.AddRuleItemRow();
}
private void OnRemoveRuleItemClicked(object sender, RoutedEventArgs e)
{
_viewModel.RemoveSelectedRuleItemRow();
}
private async void OnCompareVersionsClicked(object sender, RoutedEventArgs e)
{
await _viewModel.CompareVersionsAsync();
}
private async void OnRollbackVersionClicked(object sender, RoutedEventArgs e)
{
await _viewModel.RollbackVersionAsync();
}
private async void OnQueryRuleAuditClicked(object sender, RoutedEventArgs e)
{
await _viewModel.QueryRecentRuleAuditsAsync();
}
private async void OnDisableRuleVersionClicked(object sender, RoutedEventArgs e)
{
await _viewModel.DisableVersionAsync();
}
private async void OnQueryRuleVersionDetailClicked(object sender, RoutedEventArgs e)
{
await _viewModel.QueryVersionDetailAsync();
}
private async void OnQueryRuleVersionPagedClicked(object sender, RoutedEventArgs e)
{
await _viewModel.QueryVersionPagedListAsync();
}
private void OpenTrainingTaskManagement_Click(object sender, RoutedEventArgs e)
{
_viewModel.OpenTrainingTaskManagement();
}
private void OpenProductionSessionManagement_Click(object sender, RoutedEventArgs e)
{
try
{
var viewModel = _serviceProvider.GetRequiredService<ProductionSessionManagementViewModel>();
var window = new Views.ProductionSessionManagementWindow(viewModel);
window.Show();
}
catch (Exception ex)
{
MessageBox.Show($"打开产品会话管理窗口失败: {ex.Message}", "错误", MessageBoxButton.OK, MessageBoxImage.Error);
}
}
}
}