diff --git a/installer/ElfisaPharmacy.iss b/installer/ElfisaPharmacy.iss index 5d95e86..545aa2f 100644 --- a/installer/ElfisaPharmacy.iss +++ b/installer/ElfisaPharmacy.iss @@ -3,7 +3,7 @@ #define MyAppName "Электронная Фармация" #define MyAppBrand "ЭльФиСА" -#define MyAppVersion "2.0.9" +#define MyAppVersion "2.0.10" #define MyAppPublisher "PharmData" #define MyAppURL "https://cdn.24pharmdata.ru" #define MyAppSupportURL "https://24pharmdata.ru" diff --git a/src/Elfisa.Avalonia/Elfisa.Avalonia.csproj b/src/Elfisa.Avalonia/Elfisa.Avalonia.csproj index c812fad..f1224aa 100644 --- a/src/Elfisa.Avalonia/Elfisa.Avalonia.csproj +++ b/src/Elfisa.Avalonia/Elfisa.Avalonia.csproj @@ -5,7 +5,7 @@ enable app.manifest true - 2.0.9 + 2.0.10 2.0.9.0 2.0.9.0 ЭльФиСА — Электронная Фармация diff --git a/src/Elfisa.Avalonia/ViewModels/LoadPriceViewModel.cs b/src/Elfisa.Avalonia/ViewModels/LoadPriceViewModel.cs index f662adb..a40748a 100644 --- a/src/Elfisa.Avalonia/ViewModels/LoadPriceViewModel.cs +++ b/src/Elfisa.Avalonia/ViewModels/LoadPriceViewModel.cs @@ -92,6 +92,9 @@ public partial class LoadPriceViewModel : ViewModelBase var suppliers = all.Select(x => x.SupplierName).Where(s => !string.IsNullOrWhiteSpace(s)).Distinct().Count(); Result = $"Прайс загружен: {all.Count} позиций от {suppliers} поставщик(ов)."; OnPropertyChanged(nameof(LastLoaded)); + + // Успешно загрузили → сразу в раздел «Прайс-лист». + ShellNavigator.Navigate?.Invoke("Прайс-лист"); } catch (Exception ex) { diff --git a/src/Elfisa.Avalonia/ViewModels/ShellViewModel.cs b/src/Elfisa.Avalonia/ViewModels/ShellViewModel.cs index f0f0076..6e56fb9 100644 --- a/src/Elfisa.Avalonia/ViewModels/ShellViewModel.cs +++ b/src/Elfisa.Avalonia/ViewModels/ShellViewModel.cs @@ -2,12 +2,19 @@ using System; using System.Collections.ObjectModel; using System.Linq; using System.Threading.Tasks; +using Avalonia.Threading; using CommunityToolkit.Mvvm.ComponentModel; using CommunityToolkit.Mvvm.Input; using Elfisa.Core; namespace Elfisa.Avalonia.ViewModels; +/// Навигация между разделами из любой VM (напр. после загрузки прайса). +public static class ShellNavigator +{ + public static Action? Navigate; +} + public class NavItem { public string Title { get; } @@ -85,6 +92,13 @@ public partial class ShellViewModel : ViewModelBase SelectedNav = NavItems.First(n => n.Title == "Отчёты"); if (Session.Current.IsAuthenticated) _ = LoadPharmacyAsync(); + + // Навигация из других VM (напр. LoadPrice после успешной загрузки → «Прайс-лист»). + ShellNavigator.Navigate = title => Dispatcher.UIThread.Post(() => + { + var nav = NavItems.FirstOrDefault(n => n.Title == title); + if (nav != null) SelectedNav = nav; + }); } private async Task LoadPharmacyAsync() diff --git a/src/Elfisa.Avalonia/Views/PriceListView.axaml b/src/Elfisa.Avalonia/Views/PriceListView.axaml index c612ce0..12d681d 100644 --- a/src/Elfisa.Avalonia/Views/PriceListView.axaml +++ b/src/Elfisa.Avalonia/Views/PriceListView.axaml @@ -44,7 +44,7 @@ -