diff --git a/BBWY.Client/Models/BatchPurchase/ProductSkuWithScheme.cs b/BBWY.Client/Models/BatchPurchase/ProductSkuWithScheme.cs index e19f5d0c..a2f70666 100644 --- a/BBWY.Client/Models/BatchPurchase/ProductSkuWithScheme.cs +++ b/BBWY.Client/Models/BatchPurchase/ProductSkuWithScheme.cs @@ -38,15 +38,31 @@ namespace BBWY.Client.Models public Platform? PurchasePlatform { get; set; } - public int Quantity { get => quantity; set { Set(ref quantity, value); } } + public int Quantity { get => quantity; set { if (Set(ref quantity, value)) OnQuantityChanged(); } } public IList PurchaseSchemeProductSkuList { get; set; } - public bool IsSelected { get => isSelected; set { Set(ref isSelected, value); } } + public bool IsSelected + { + get => isSelected; set { if (Set(ref isSelected, value)) OnSelectChanged(); } + } public ProductSkuWithScheme() { PurchaseSchemeProductSkuList = new ObservableCollection(); } + + private void OnSelectChanged() + { + if (IsSelected && Quantity <= 0) + Quantity = 1; + else if (!IsSelected) + Quantity = 0; + } + + private void OnQuantityChanged() + { + IsSelected = Quantity > 0; + } } } diff --git a/BBWY.Client/ViewModels/BatchPurchase/BatchPurchaseAddProductSkuViewModel.cs b/BBWY.Client/ViewModels/BatchPurchase/BatchPurchaseAddProductSkuViewModel.cs index f22baec9..7ea854e6 100644 --- a/BBWY.Client/ViewModels/BatchPurchase/BatchPurchaseAddProductSkuViewModel.cs +++ b/BBWY.Client/ViewModels/BatchPurchase/BatchPurchaseAddProductSkuViewModel.cs @@ -29,6 +29,9 @@ namespace BBWY.Client.ViewModels public ICommand FilterCommand { get; set; } public ICommand SaveCommand { get; set; } + public ICommand AddQuantityCommand { get; set; } + + public ICommand SubtractQuantityCommand { get; set; } public string Sku { get => sku; set { Set(ref sku, value); } } public string Spu { get => spu; set { Set(ref spu, value); } } @@ -73,10 +76,12 @@ namespace BBWY.Client.ViewModels }; SourceList = new List(); - FilterList = new List(); + FilterList = new ObservableCollection(); SearchCommand = new RelayCommand(Search); FilterCommand = new RelayCommand(Filter); SaveCommand = new RelayCommand(Save); + AddQuantityCommand = new RelayCommand(AddQuantity); + SubtractQuantityCommand = new RelayCommand(SubtractQuantity); SelectedPurchaser = PurchaserList[0]; SelectedPurchasePlatform = PurchasePlatformList[0]; } @@ -110,7 +115,7 @@ namespace BBWY.Client.ViewModels var list = response.Data.Map>(); #region 提取采购商 - var purchaserList = list.Where(item => !string.IsNullOrEmpty(item.PurchaserId)) + var purchaserList = list.Where(item => item.PurchaseSchemeId != 0) .Select(item => new Purchaser() { Id = item.PurchaserId, Name = item.PurchaseName, Platform = item.PurchasePlatform.Value }) .Distinct(new PurchaserComparer()); #endregion @@ -120,7 +125,9 @@ namespace BBWY.Client.ViewModels foreach (var purchaser in purchaserList) PurchaserList.Add(purchaser); foreach (var item in list) + { SourceList.Add(item); + } Filter(); }); }); @@ -167,12 +174,34 @@ namespace BBWY.Client.ViewModels private void Save() { - + var selectedList = FilterList.Where(item => item.IsSelected).ToList(); + if (selectedList == null || selectedList.Count() == 0) + { + MessageBox.Show("至少选择一个商品"); + return; + } + GalaSoft.MvvmLight.Messaging.Messenger.Default.Send(selectedList, "BatchPurchaseAddProductSkuSave"); } private void OnAllSelectedChanged() - { - + { + foreach (var item in FilterList) + { + if (item.PurchaseSchemeId == 0) + continue; + item.IsSelected = AllSelected; + } + } + + private void AddQuantity(ProductSkuWithScheme item) + { + item.Quantity++; + } + + private void SubtractQuantity(ProductSkuWithScheme item) + { + if (item.Quantity > 0) + item.Quantity--; } } } diff --git a/BBWY.Client/ViewModels/BatchPurchase/BatchPurchaseCreateNewOrderViewModel.cs b/BBWY.Client/ViewModels/BatchPurchase/BatchPurchaseCreateNewOrderViewModel.cs index 380fd365..ed190fa5 100644 --- a/BBWY.Client/ViewModels/BatchPurchase/BatchPurchaseCreateNewOrderViewModel.cs +++ b/BBWY.Client/ViewModels/BatchPurchase/BatchPurchaseCreateNewOrderViewModel.cs @@ -5,6 +5,7 @@ using GalaSoft.MvvmLight.Command; using System; using System.Collections.Generic; using System.Collections.ObjectModel; +using System.Linq; using System.Threading.Tasks; using System.Windows; using System.Windows.Input; @@ -191,6 +192,7 @@ namespace BBWY.Client.ViewModels var addProductSkuWindow = new BatchPurchaseAddProductSku(); if (addProductSkuWindow.ShowDialog() == true) { + var newProductSkuWithSchemeList = addProductSkuWindow.SelectedProductSkuWithSchemeList; } } diff --git a/BBWY.Client/Views/BatchPurchase/BatchPurchaseAddProductSku.xaml b/BBWY.Client/Views/BatchPurchase/BatchPurchaseAddProductSku.xaml index abfc732f..515368b7 100644 --- a/BBWY.Client/Views/BatchPurchase/BatchPurchaseAddProductSku.xaml +++ b/BBWY.Client/Views/BatchPurchase/BatchPurchaseAddProductSku.xaml @@ -9,7 +9,7 @@ xmlns:c="clr-namespace:BBWY.Controls;assembly=BBWY.Controls" xmlns:b="http://schemas.microsoft.com/xaml/behaviors" Style="{StaticResource bwstyle}" - Title="BatchPurchaseAddProductSku" Height="600" Width="500" + Title="BatchPurchaseAddProductSku" Height="600" Width="550" DataContext="{Binding BatchPurchaseAddProductSku,Source={StaticResource Locator}}"> @@ -31,7 +31,8 @@ - + + @@ -43,21 +44,23 @@ - + - + @@ -68,24 +71,29 @@ BorderBrush="{StaticResource Border.Brush}" BorderThickness="1" RowHeight="90"> + + + + IsChecked="{Binding DataContext.AllSelected,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged,RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type DataGrid}}}"/> - + - + @@ -99,49 +107,55 @@ + + + + - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + - + - - - - + + + + diff --git a/BBWY.Client/Views/BatchPurchase/BatchPurchaseAddProductSku.xaml.cs b/BBWY.Client/Views/BatchPurchase/BatchPurchaseAddProductSku.xaml.cs index 50c90f00..fcc3ba4f 100644 --- a/BBWY.Client/Views/BatchPurchase/BatchPurchaseAddProductSku.xaml.cs +++ b/BBWY.Client/Views/BatchPurchase/BatchPurchaseAddProductSku.xaml.cs @@ -1,15 +1,7 @@ -using BBWY.Controls; -using System; +using BBWY.Client.Models; +using BBWY.Controls; using System.Collections.Generic; -using System.Text; using System.Windows; -using System.Windows.Controls; -using System.Windows.Data; -using System.Windows.Documents; -using System.Windows.Input; -using System.Windows.Media; -using System.Windows.Media.Imaging; -using System.Windows.Shapes; namespace BBWY.Client.Views.BatchPurchase { @@ -18,9 +10,28 @@ namespace BBWY.Client.Views.BatchPurchase /// public partial class BatchPurchaseAddProductSku : BWindow { + public IList SelectedProductSkuWithSchemeList { get; private set; } + public BatchPurchaseAddProductSku() { InitializeComponent(); + this.Loaded += BatchPurchaseAddProductSku_Loaded; + this.Unloaded += BatchPurchaseAddProductSku_Unloaded; + } + + private void BatchPurchaseAddProductSku_Unloaded(object sender, RoutedEventArgs e) + { + GalaSoft.MvvmLight.Messaging.Messenger.Default.Unregister(this); + } + + private void BatchPurchaseAddProductSku_Loaded(object sender, RoutedEventArgs e) + { + GalaSoft.MvvmLight.Messaging.Messenger.Default.Register>(this, "BatchPurchaseAddProductSkuSave", (list) => + { + SelectedProductSkuWithSchemeList = list; + this.DialogResult = true; + this.Close(); + }); } } }