From 96aa963c2751a904f0843f4666f6c9eac6f703db Mon Sep 17 00:00:00 2001 From: Exest Date: Tue, 25 Aug 2026 12:59:07 +0300 Subject: [PATCH] =?UTF-8?q?=D0=B2=D0=B5=D1=80=D1=81=D0=B8=D1=8F=202.0.10:?= =?UTF-8?q?=20=D0=BF=D0=BE=D1=81=D0=BB=D0=B5=20=D0=B7=D0=B0=D0=B3=D1=80?= =?UTF-8?q?=D1=83=D0=B7=D0=BA=D0=B8=20=D0=BF=D1=80=D0=B0=D0=B9=D1=81=D0=B0?= =?UTF-8?q?=20=E2=80=94=20=D1=81=D1=80=D0=B0=D0=B7=D1=83=20=D0=B2=20=C2=AB?= =?UTF-8?q?=D0=9F=D1=80=D0=B0=D0=B9=D1=81-=D0=BB=D0=B8=D1=81=D1=82=C2=BB;?= =?UTF-8?q?=20Enter=20=D0=B2=20=D0=BF=D0=BE=D0=BB=D0=B5=20=D0=BA=D0=BE?= =?UTF-8?q?=D0=BB-=D0=B2=D0=B0=20=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D1=8F=D0=B5=D1=82=20=D0=B2=20=D0=B7=D0=B0=D0=BA=D0=B0=D0=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 4.8 --- installer/ElfisaPharmacy.iss | 2 +- src/Elfisa.Avalonia/Elfisa.Avalonia.csproj | 2 +- .../ViewModels/LoadPriceViewModel.cs | 3 +++ src/Elfisa.Avalonia/ViewModels/ShellViewModel.cs | 14 ++++++++++++++ src/Elfisa.Avalonia/Views/PriceListView.axaml | 2 +- src/Elfisa.Avalonia/Views/PriceListView.axaml.cs | 15 +++++++++++++++ 6 files changed, 35 insertions(+), 3 deletions(-) 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 @@ -