From eb5a49934b3aab1b2e0b9d87f1d7fe8ebc59f07b Mon Sep 17 00:00:00 2001 From: shanj <18996038927@163.com> Date: Sun, 21 May 2023 00:55:30 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=A2=E6=88=B7=E7=AB=AF=E5=AF=B9=E6=8E=A5?= =?UTF-8?q?=E8=8E=B7=E5=8F=96=E6=9C=80=E6=96=B0=E6=8A=A5=E4=BB=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- BBWYB.Client/APIServices/PurchaseService.cs | 12 ++++++ .../Order/ChoosePurchaseSchemeViewModel.cs | 37 +++++++++++++++++++ .../Views/Order/ChoosePurchaseScheme.xaml | 12 +++++- BBWYB.Client/appsettings.json | 4 +- 4 files changed, 61 insertions(+), 4 deletions(-) diff --git a/BBWYB.Client/APIServices/PurchaseService.cs b/BBWYB.Client/APIServices/PurchaseService.cs index 97d5f06..77ba44e 100644 --- a/BBWYB.Client/APIServices/PurchaseService.cs +++ b/BBWYB.Client/APIServices/PurchaseService.cs @@ -40,6 +40,18 @@ namespace BBWYB.Client.APIServices HttpMethod.Post); } + public ApiResponse> RefreshPurchaseScheme(IList schemeIdList) + { + return SendRequest>(globalContext.BBWYApiHost, + "api/PurchaseScheme/RefreshPurchaseScheme", + new + { + schemeIdList + }, + null, + HttpMethod.Post); + } + /// /// 获取共有采购商 /// diff --git a/BBWYB.Client/ViewModels/Order/ChoosePurchaseSchemeViewModel.cs b/BBWYB.Client/ViewModels/Order/ChoosePurchaseSchemeViewModel.cs index 7709894..b445e3c 100644 --- a/BBWYB.Client/ViewModels/Order/ChoosePurchaseSchemeViewModel.cs +++ b/BBWYB.Client/ViewModels/Order/ChoosePurchaseSchemeViewModel.cs @@ -3,6 +3,7 @@ using BBWYB.Client.Models; using BBWYB.Client.Views.Order; using BBWYB.Client.Views.Purchase; using BBWYB.Common.Extensions; +using BBWYB.Common.Models; using CommunityToolkit.Mvvm.Input; using CommunityToolkit.Mvvm.Messaging; using System.Collections.Generic; @@ -21,22 +22,31 @@ namespace BBWYB.Client.ViewModels private Order order; private bool freeChoice; private bool isResponse = true; + private bool isLoading; public IList SkuGroup { get; set; } public ICommand ConfirmCommand { get; set; } + + public ICommand RefreshCommand { get; set; } + + public bool FreeChoice { get => freeChoice; set { SetProperty(ref freeChoice, value); } } + public bool IsLoading { get => isLoading; set { SetProperty(ref isLoading, value); } } + public ChoosePurchaseSchemeViewModel(PurchaseService purchaseService, GlobalContext globalContext) { this.purchaseService = purchaseService; this.globalContext = globalContext; this.SkuGroup = new ObservableCollection(); ConfirmCommand = new RelayCommand(Confirm); + RefreshCommand = new RelayCommand(Refresh); } protected override void Load() { + IsLoading = true; Task.Factory.StartNew(() => LoadScheme()); } @@ -49,6 +59,12 @@ namespace BBWYB.Client.ViewModels { var skuIdList = order.ItemList.Select(osku => osku.SkuId).ToList(); var response = purchaseService.GetPurchaseSchemeList(skuIdList, shopId: globalContext.User.Shop.ShopId); + LoadScheme(response); + } + + private void LoadScheme(ApiResponse> response) + { + IsLoading = false; if (!response.Success) { App.Current.Dispatcher.Invoke(() => MessageBox.Show(response.Msg, "提示")); @@ -114,5 +130,26 @@ namespace BBWYB.Client.ViewModels } isResponse = true; } + + public override void Refresh() + { + if (SkuGroup.Count() == 0) + return; + IsLoading = true; + var schemeIdList = new List(); + foreach (var group in SkuGroup) + { + schemeIdList.AddRange(group.SchemeList.Select(s => s.Id)); + group.SchemeList.Clear(); + } + SkuGroup.Clear(); + + Task.Factory.StartNew(() => purchaseService.RefreshPurchaseScheme(schemeIdList)).ContinueWith(t => + { + var response = t.Result; + LoadScheme(response); + }); + + } } } diff --git a/BBWYB.Client/Views/Order/ChoosePurchaseScheme.xaml b/BBWYB.Client/Views/Order/ChoosePurchaseScheme.xaml index 8539340..9663683 100644 --- a/BBWYB.Client/Views/Order/ChoosePurchaseScheme.xaml +++ b/BBWYB.Client/Views/Order/ChoosePurchaseScheme.xaml @@ -34,6 +34,8 @@ + + @@ -137,7 +139,7 @@ - @@ -152,8 +154,14 @@ - + + + +