shanji 2 years ago
parent
commit
ea76887c34
  1. 20
      BBWY.Client/Models/BatchPurchase/ProductSkuWithScheme.cs
  2. 39
      BBWY.Client/ViewModels/BatchPurchase/BatchPurchaseAddProductSkuViewModel.cs
  3. 2
      BBWY.Client/ViewModels/BatchPurchase/BatchPurchaseCreateNewOrderViewModel.cs
  4. 88
      BBWY.Client/Views/BatchPurchase/BatchPurchaseAddProductSku.xaml
  5. 31
      BBWY.Client/Views/BatchPurchase/BatchPurchaseAddProductSku.xaml.cs

20
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<PurchaseSchemeProductSku> 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<PurchaseSchemeProductSku>();
}
private void OnSelectChanged()
{
if (IsSelected && Quantity <= 0)
Quantity = 1;
else if (!IsSelected)
Quantity = 0;
}
private void OnQuantityChanged()
{
IsSelected = Quantity > 0;
}
}
}

39
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<ProductSkuWithScheme>();
FilterList = new List<ProductSkuWithScheme>();
FilterList = new ObservableCollection<ProductSkuWithScheme>();
SearchCommand = new RelayCommand(Search);
FilterCommand = new RelayCommand(Filter);
SaveCommand = new RelayCommand(Save);
AddQuantityCommand = new RelayCommand<ProductSkuWithScheme>(AddQuantity);
SubtractQuantityCommand = new RelayCommand<ProductSkuWithScheme>(SubtractQuantity);
SelectedPurchaser = PurchaserList[0];
SelectedPurchasePlatform = PurchasePlatformList[0];
}
@ -110,7 +115,7 @@ namespace BBWY.Client.ViewModels
var list = response.Data.Map<IList<ProductSkuWithScheme>>();
#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--;
}
}
}

2
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;
}
}

88
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}}">
<Grid>
<Grid.RowDefinitions>
@ -31,7 +31,8 @@
<ColumnDefinition/>
<ColumnDefinition Width="50"/>
<ColumnDefinition/>
<ColumnDefinition Width="80"/>
<ColumnDefinition Width="5"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition/>
@ -43,21 +44,23 @@
<TextBlock Text="SKU" HorizontalAlignment="Right" VerticalAlignment="Center" Grid.Column="2" Margin="0,0,5,0"/>
<c:BTextBox Grid.Column="3" Text="{Binding Sku}"/>
<c:BButton Grid.Column="4" Content="搜索" Width="70" Command="{Binding SearchCommand}"/>
<c:BButton Grid.Column="5" Content="搜索" Width="70" Command="{Binding SearchCommand}"/>
<TextBlock Text="采购商" HorizontalAlignment="Right" VerticalAlignment="Center" Grid.Row="1" Margin="0,0,5,0"/>
<ComboBox Grid.Column="1" Grid.Row="1" Height="30"
ItemsSource="{Binding PurchaserList}"
SelectedItem="{Binding SelectedPurchaser}"
DisplayMemberPath="Name"
VerticalContentAlignment="Center"/>
<TextBlock Text="平台" HorizontalAlignment="Right" VerticalAlignment="Center" Grid.Column="2" Grid.Row="1" Margin="0,0,5,0"/>
<ComboBox Grid.Column="3" Grid.Row="1" Height="30"
ItemsSource="{Binding PurchasePlatformList}"
SelectedItem="{Binding SelectedPurchasePlatform}"
DisplayMemberPath="Value"
VerticalContentAlignment="Center"/>
<c:BButton Grid.Column="4" Content="筛选" Width="70" Grid.Row="1" Background="#2879FF" Command="{Binding FilterCommand}"/>
<c:BButton Grid.Column="5" Content="筛选" Width="70" Grid.Row="1" Background="#2879FF" Command="{Binding FilterCommand}"/>
</Grid>
@ -68,24 +71,29 @@
BorderBrush="{StaticResource Border.Brush}"
BorderThickness="1"
RowHeight="90">
<DataGrid.RowStyle>
<Style TargetType="DataGridRow">
<Setter Property="IsEnabled" Value="{Binding PurchaseSchemeId,ConverterParameter=0:false:true,Converter={StaticResource objConverter}}"/>
</Style>
</DataGrid.RowStyle>
<DataGrid.Columns>
<DataGridTemplateColumn Width="35">
<DataGridTemplateColumn.HeaderTemplate>
<DataTemplate>
<CheckBox Margin="5,0,0,0"
IsChecked="{Binding DataContext.AllSelected,RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type DataGrid}}}"/>
IsChecked="{Binding DataContext.AllSelected,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged,RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type DataGrid}}}"/>
</DataTemplate>
</DataGridTemplateColumn.HeaderTemplate>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<CheckBox IsChecked="{Binding IsSelected}" HorizontalAlignment="Center" VerticalAlignment="Center"/>
<CheckBox IsChecked="{Binding IsSelected,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" HorizontalAlignment="Center" VerticalAlignment="Center"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTemplateColumn Header="商品信息" Width="*" HeaderStyle="{StaticResource ColumnHeaderStyle_Center}">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Grid Width="{Binding ActualWidth,ElementName=listbox_orerSku}">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="90"/>
<ColumnDefinition/>
@ -99,49 +107,55 @@
<StackPanel Grid.Column="1" Orientation="Vertical" Margin="0,5,0,5">
<TextBlock TextTrimming="CharacterEllipsis">
<Run Text="SKU:"/>
<Run Text="{Binding SkuId}"/>
</TextBlock>
<TextBlock TextTrimming="CharacterEllipsis"
Text="{Binding Title}"
Margin="0,10,0,0">
<TextBlock.ToolTip>
<ToolTip Style="{StaticResource OrderCouponToolipStyle}">
<TextBlock Text="{Binding Title}"/>
</ToolTip>
</TextBlock.ToolTip>
<Run Text="SKU名称:"/>
<Run Text="{Binding Title}"/>
</TextBlock>
<StackPanel Orientation="Horizontal">
<StackPanel Orientation="Vertical">
<StackPanel Orientation="Horizontal">
<TextBlock Text="SPU:"/>
<c:BButton Content="{Binding ProductId}" Style="{StaticResource LinkButton}"
Command="{Binding DataContext.CopyTextCommand,RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type Page}}}"
CommandParameter="{Binding ProductId}"
Margin=" 5,0,0,0"/>
</StackPanel>
<StackPanel Orientation="Horizontal">
<TextBlock Text="SKU:"/>
<c:BButton Content="{Binding Id}" Style="{StaticResource LinkButton}"
Command="{Binding DataContext.CopyTextCommand,RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type Page}}}"
CommandParameter="{Binding Id}"
Margin=" 5,0,0,0"/>
</StackPanel>
<TextBlock TextWrapping="Wrap" Margin=" 5,0,0,0">
<Run Text="单价:"/>
<Run Text="{Binding Price}"/>
</TextBlock>
</StackPanel>
</TextBlock>
<StackPanel Orientation="Horizontal" Margin="0,10,0,0">
<TextBlock>
<Run Text="采购平台:"/>
<Run Text="{Binding PurchasePlatform}"/>
</TextBlock>
<TextBlock Margin="10,0,0,0">
<Run Text="采购商:"/>
<Run Text="{Binding PurchaseName}"/>
</TextBlock>
</StackPanel>
</StackPanel>
</Grid>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTemplateColumn Header="数量" Width="80" HeaderStyle="{StaticResource ColumnHeaderStyle_Center}">
<DataGridTemplateColumn Header="数量" Width="100" HeaderStyle="{StaticResource ColumnHeaderStyle_Center}">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<c:BButton Content="-"/>
<c:BTextBox Text="{Binding Quantity}" Margin="5,0"/>
<c:BButton Content="+"/>
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center">
<c:BButton Content="-" Background="White" Foreground="Black"
BorderBrush="{StaticResource Border.Brush}"
BorderThickness="1"
Width="15"
Height="18"
Command="{Binding DataContext.SubtractQuantityCommand,RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type DataGrid}}}"
CommandParameter="{Binding }"/>
<c:BTextBox Text="{Binding Quantity}" Margin="5,0" VerticalAlignment="Center"
Width="40"
DisableBgColor="{StaticResource TextBox.Disable.BgColor}"/>
<c:BButton Content="+" Background="White" Foreground="Black"
BorderBrush="{StaticResource Border.Brush}"
BorderThickness="1"
Width="15"
Height="18"
Command="{Binding DataContext.AddQuantityCommand,RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type DataGrid}}}"
CommandParameter="{Binding }"/>
</StackPanel>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>

31
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
/// </summary>
public partial class BatchPurchaseAddProductSku : BWindow
{
public IList<ProductSkuWithScheme> 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<List<ProductSkuWithScheme>>(this, "BatchPurchaseAddProductSkuSave", (list) =>
{
SelectedProductSkuWithSchemeList = list;
this.DialogResult = true;
this.Close();
});
}
}
}

Loading…
Cancel
Save