Browse Source

货源管理-新增采购sku筛选

订单管理-新增sku图片点击跳转京东详情
qianyi
shanji 2 years ago
parent
commit
d058d286a2
  1. 20
      BBWY.Client/Models/Product/PurchaseSchemeProduct.cs
  2. 30
      BBWY.Client/ViewModels/Order/OrderListViewModel.cs
  3. 30
      BBWY.Client/ViewModels/Ware/BindingPurchaseProductViewModel.cs
  4. 17
      BBWY.Client/Views/Order/OrderListControl.xaml
  5. 29
      BBWY.Client/Views/Ware/BindingPurchaseProduct.xaml

20
BBWY.Client/Models/Product/PurchaseSchemeProduct.cs

@ -15,6 +15,7 @@ namespace BBWY.Client.Models
private string purchaseUrl; private string purchaseUrl;
private string purchaseProductId; private string purchaseProductId;
private bool isEditing; private bool isEditing;
private string searchPurchaseSkuName;
/// <summary> /// <summary>
/// 采购商品和采购方案的关系Id /// 采购商品和采购方案的关系Id
@ -28,10 +29,20 @@ namespace BBWY.Client.Models
public string PurchaseUrl { get => purchaseUrl; set { Set(ref purchaseUrl, value); } } public string PurchaseUrl { get => purchaseUrl; set { Set(ref purchaseUrl, value); } }
public string PurchaseProductId { get => purchaseProductId; set => purchaseProductId = value; } public string PurchaseProductId { get => purchaseProductId; set => purchaseProductId = value; }
public bool IsEditing { get => isEditing; set { Set(ref isEditing, value); } } public bool IsEditing
{
get => isEditing;
set
{
SearchPurchaseSkuName = string.Empty;
Set(ref isEditing, value);
}
}
public IList<PurchaseSchemeProductSku> SkuList { get; set; } public IList<PurchaseSchemeProductSku> SkuList { get; set; }
public IList<PurchaseSchemeProductSku> SearchSkuList { get; set; }
public IList<PurchaseSchemeProductSku> PurchaseSchemeProductSkuList { get; set; } public IList<PurchaseSchemeProductSku> PurchaseSchemeProductSkuList { get; set; }
public List<string> SelectedSkuIdList { get; set; } public List<string> SelectedSkuIdList { get; set; }
@ -41,9 +52,16 @@ namespace BBWY.Client.Models
get { return SelectedSkuIdList.Count(); } get { return SelectedSkuIdList.Count(); }
} }
public string SearchPurchaseSkuName
{
get => searchPurchaseSkuName;
set { Set(ref searchPurchaseSkuName, value); }
}
public PurchaseSchemeProduct() public PurchaseSchemeProduct()
{ {
SkuList = new ObservableCollection<PurchaseSchemeProductSku>(); SkuList = new ObservableCollection<PurchaseSchemeProductSku>();
SearchSkuList = new ObservableCollection<PurchaseSchemeProductSku>();
PurchaseSchemeProductSkuList = new ObservableCollection<PurchaseSchemeProductSku>(); PurchaseSchemeProductSkuList = new ObservableCollection<PurchaseSchemeProductSku>();
SelectedSkuIdList = new List<string>(); SelectedSkuIdList = new List<string>();
} }

30
BBWY.Client/ViewModels/Order/OrderListViewModel.cs

@ -135,6 +135,8 @@ namespace BBWY.Client.ViewModels
public ICommand SetIncludeExceptionOrderCommand { get; set; } public ICommand SetIncludeExceptionOrderCommand { get; set; }
public ICommand OpenSkuDetailCommand { get; set; }
/// <summary> /// <summary>
/// 当前条件利润汇总 /// 当前条件利润汇总
/// </summary> /// </summary>
@ -155,8 +157,6 @@ namespace BBWY.Client.ViewModels
/// </summary> /// </summary>
public bool IsSDGroup { get => isSDGroup; set { Set(ref isSDGroup, value); } } public bool IsSDGroup { get => isSDGroup; set { Set(ref isSDGroup, value); } }
public OrderListViewModel(OrderService orderService, StatisticsService statisticsService, AfterOrderService afterOrderService, GlobalContext globalContext, ChoosePurchaseSchemeViewModel choosePurchaseSchemeViewModel) public OrderListViewModel(OrderService orderService, StatisticsService statisticsService, AfterOrderService afterOrderService, GlobalContext globalContext, ChoosePurchaseSchemeViewModel choosePurchaseSchemeViewModel)
{ {
IsSDGroup = globalContext.User.TeamName == "刷单组"; IsSDGroup = globalContext.User.TeamName == "刷单组";
@ -227,6 +227,7 @@ namespace BBWY.Client.ViewModels
EditAfterSaleOrderCommand = new RelayCommand<AfterSaleOrder>(EditAfterSaleOrder); EditAfterSaleOrderCommand = new RelayCommand<AfterSaleOrder>(EditAfterSaleOrder);
EditAfterSaleOrderRefundPurchaseAmountCommand = new RelayCommand<AfterSaleOrder>(EditAfterSaleOrderRefundPurchaseAmount); EditAfterSaleOrderRefundPurchaseAmountCommand = new RelayCommand<AfterSaleOrder>(EditAfterSaleOrderRefundPurchaseAmount);
FindAfterSaleOrderCommand = new RelayCommand<object>(FindAfterSaleOrder); FindAfterSaleOrderCommand = new RelayCommand<object>(FindAfterSaleOrder);
OpenSkuDetailCommand = new RelayCommand<object>(OpenSkuDetail);
SearchOrderCommand.Execute(null); SearchOrderCommand.Execute(null);
} }
@ -1070,5 +1071,30 @@ namespace BBWY.Client.ViewModels
var endDate = DateTime.Now.Date; var endDate = DateTime.Now.Date;
SetIncludeAfterOrder(orderId, skuId, startDate, endDate); SetIncludeAfterOrder(orderId, skuId, startDate, endDate);
} }
private void OpenSkuDetail(object param)
{
var paramList = (object[])param;
var orderId = paramList[0].ToString();
var skuId = paramList[1].ToString();
var order = OrderList.FirstOrDefault(o => o.Id == orderId);
if (order.Platform == Platform.)
{
var url = $"https://item.jd.com/{skuId}.html";
try
{
System.Diagnostics.Process.Start("explorer.exe", url);
}
catch (Exception ex)
{
Clipboard.SetText(url);
MessageBox.Show($"{ex.Message}\r\n调用浏览器失败,网页链接已复制到剪切板,请手动打开浏览器访问", "提示");
}
}
else
{
}
}
} }
} }

30
BBWY.Client/ViewModels/Ware/BindingPurchaseProductViewModel.cs

@ -51,6 +51,10 @@ namespace BBWY.Client.ViewModels
public ICommand EditPurchaseProductCommand { get; set; } public ICommand EditPurchaseProductCommand { get; set; }
public ICommand SavePurchaseSchemeCommand { get; set; } public ICommand SavePurchaseSchemeCommand { get; set; }
public ICommand SearchPurchaseSkuNameCommand { get; set; }
public ICommand ClearPurchaseSkuNameCommand { get; set; }
#endregion #endregion
#region Methods #region Methods
@ -67,6 +71,8 @@ namespace BBWY.Client.ViewModels
ConfirmPurchaseProductCommand = new RelayCommand<PurchaseSchemeProduct>(ConfirmPurchaseProduct); ConfirmPurchaseProductCommand = new RelayCommand<PurchaseSchemeProduct>(ConfirmPurchaseProduct);
EditPurchaseProductCommand = new RelayCommand<PurchaseSchemeProduct>(EditPurchaseProduct); EditPurchaseProductCommand = new RelayCommand<PurchaseSchemeProduct>(EditPurchaseProduct);
SavePurchaseSchemeCommand = new RelayCommand(SavePurchaseScheme); SavePurchaseSchemeCommand = new RelayCommand(SavePurchaseScheme);
SearchPurchaseSkuNameCommand = new RelayCommand<PurchaseSchemeProduct>(SearchPurchaseSkuName);
ClearPurchaseSkuNameCommand = new RelayCommand<PurchaseSchemeProduct>(ClearPurchaseSkuName);
} }
public void SetData(IList<ProductSku> productSkuList, string purchaserId, string purchaserName) public void SetData(IList<ProductSku> productSkuList, string purchaserId, string purchaserName)
@ -132,6 +138,7 @@ namespace BBWY.Client.ViewModels
errorMsg = string.Empty; errorMsg = string.Empty;
App.Current.Dispatcher.Invoke(() => App.Current.Dispatcher.Invoke(() =>
{ {
purchaseSchemeProduct.SearchSkuList.Clear();
purchaseSchemeProduct.SkuList.Clear(); purchaseSchemeProduct.SkuList.Clear();
purchaseSchemeProduct.PurchaseSchemeProductSkuList.Clear(); purchaseSchemeProduct.PurchaseSchemeProductSkuList.Clear();
}); });
@ -166,6 +173,7 @@ namespace BBWY.Client.ViewModels
{ {
foreach (var sku in data.Value.purchaseSchemeProductSkus) foreach (var sku in data.Value.purchaseSchemeProductSkus)
{ {
purchaseSchemeProduct.SearchSkuList.Add(sku);
purchaseSchemeProduct.SkuList.Add(sku); purchaseSchemeProduct.SkuList.Add(sku);
if (purchaseSchemeProduct.SelectedSkuIdList.Any(s => s == sku.PurchaseSkuId)) if (purchaseSchemeProduct.SelectedSkuIdList.Any(s => s == sku.PurchaseSkuId))
{ {
@ -454,6 +462,28 @@ namespace BBWY.Client.ViewModels
} }
} }
} }
private void SearchPurchaseSkuName(PurchaseSchemeProduct purchaseSchemeProduct)
{
purchaseSchemeProduct.SearchSkuList.Clear();
if (string.IsNullOrEmpty(purchaseSchemeProduct.SearchPurchaseSkuName))
{
foreach (var sku in purchaseSchemeProduct.SkuList)
purchaseSchemeProduct.SearchSkuList.Add(sku);
}
else
{
var searchList = purchaseSchemeProduct.SkuList.Where(s => s.Title.Contains(purchaseSchemeProduct.SearchPurchaseSkuName));
foreach (var sku in searchList)
purchaseSchemeProduct.SearchSkuList.Add(sku);
}
}
private void ClearPurchaseSkuName(PurchaseSchemeProduct purchaseSchemeProduct)
{
purchaseSchemeProduct.SearchPurchaseSkuName = string.Empty;
SearchPurchaseSkuName(purchaseSchemeProduct);
}
#endregion #endregion
} }
} }

17
BBWY.Client/Views/Order/OrderListControl.xaml

@ -9,6 +9,7 @@
xmlns:cmodel="clr-namespace:BBWY.Client.Models" xmlns:cmodel="clr-namespace:BBWY.Client.Models"
xmlns:local="clr-namespace:BBWY.Client.Views.Order" xmlns:local="clr-namespace:BBWY.Client.Views.Order"
DataContext="{Binding OrderList,Source={StaticResource Locator}}" DataContext="{Binding OrderList,Source={StaticResource Locator}}"
xmlns:b="http://schemas.microsoft.com/xaml/behaviors"
mc:Ignorable="d" mc:Ignorable="d"
d:DesignHeight="450" d:DesignWidth="800"> d:DesignHeight="450" d:DesignWidth="800">
<UserControl.Resources> <UserControl.Resources>
@ -126,7 +127,21 @@
<!--{Binding Logo}--> <!--{Binding Logo}-->
<c:BAsyncImage UrlSource="{Binding Logo}" <c:BAsyncImage UrlSource="{Binding Logo}"
Width="80" DecodePixelWidth="80" Width="80" DecodePixelWidth="80"
VerticalAlignment="Top" Margin="0,5,0,0"/> VerticalAlignment="Top" Margin="0,5,0,0"
Cursor="Hand">
<b:Interaction.Triggers>
<b:EventTrigger EventName="PreviewMouseLeftButtonDown">
<b:InvokeCommandAction Command="{Binding DataContext.OpenSkuDetailCommand,RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type Page}}}">
<b:InvokeCommandAction.CommandParameter>
<MultiBinding Converter="{StaticResource mptConverter}">
<Binding Path="DataContext.Id" RelativeSource="{RelativeSource Mode=FindAncestor,AncestorType={x:Type ListBox},AncestorLevel=1}"/>
<Binding Path="Id"/>
</MultiBinding>
</b:InvokeCommandAction.CommandParameter>
</b:InvokeCommandAction>
</b:EventTrigger>
</b:Interaction.Triggers>
</c:BAsyncImage>
<StackPanel Grid.Column="1" Orientation="Vertical" Margin="0,5,0,5"> <StackPanel Grid.Column="1" Orientation="Vertical" Margin="0,5,0,5">
<TextBlock TextTrimming="CharacterEllipsis"> <TextBlock TextTrimming="CharacterEllipsis">

29
BBWY.Client/Views/Ware/BindingPurchaseProduct.xaml

@ -73,7 +73,7 @@
Padding="5,0"> Padding="5,0">
<Grid> <Grid>
<Grid.RowDefinitions> <Grid.RowDefinitions>
<RowDefinition Height="40"/> <RowDefinition Height="Auto"/>
<RowDefinition/> <RowDefinition/>
<RowDefinition Height="Auto"/> <RowDefinition Height="Auto"/>
</Grid.RowDefinitions> </Grid.RowDefinitions>
@ -85,6 +85,10 @@
<ColumnDefinition Width="5"/> <ColumnDefinition Width="5"/>
<ColumnDefinition Width="80"/> <ColumnDefinition Width="80"/>
</Grid.ColumnDefinitions> </Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="40"/>
<RowDefinition Height="auto"/>
</Grid.RowDefinitions>
<TextBlock Text="商品链接:" VerticalAlignment="Center" HorizontalAlignment="Right" Margin="0,0,5,0"/> <TextBlock Text="商品链接:" VerticalAlignment="Center" HorizontalAlignment="Right" Margin="0,0,5,0"/>
<c:BTextBox Text="{Binding PurchaseUrl}" Grid.Column="1" <c:BTextBox Text="{Binding PurchaseUrl}" Grid.Column="1"
IsEnabled="{Binding IsEditing}" IsEnabled="{Binding IsEditing}"
@ -100,11 +104,32 @@
<c:BButton Content="删除" Grid.Column="4" Width="80" Background="#EC808D" <c:BButton Content="删除" Grid.Column="4" Width="80" Background="#EC808D"
Command="{Binding DataContext.RemovePurchaseSchemeProductCommand,RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type c:BWindow}}}" Command="{Binding DataContext.RemovePurchaseSchemeProductCommand,RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type c:BWindow}}}"
CommandParameter="{Binding }"/> CommandParameter="{Binding }"/>
<TextBlock x:Name="lbl_purchaseSkuName"
VerticalAlignment="Center" HorizontalAlignment="Right" Margin="0,0,5,0"
Grid.Row="1" TextBlock.TextAlignment="Right"
Visibility="{Binding IsEditing,Converter={StaticResource objConverter},ConverterParameter=true:Visible:Collapsed}">
<Run Text="采购SKU"/>
<LineBreak/>
<Run Text="名称:"/>
</TextBlock>
<c:BTextBox Text="{Binding SearchPurchaseSkuName}" Grid.Column="1"
Grid.Row="1"
Visibility="{Binding Visibility,ElementName=lbl_purchaseSkuName}"/>
<c:BButton Content="筛选" Grid.Column="2" Grid.Row="1" Width="80"
Visibility="{Binding Visibility,ElementName=lbl_purchaseSkuName}"
Command="{Binding DataContext.SearchPurchaseSkuNameCommand,RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type Window}}}" CommandParameter="{Binding }"/>
<c:BButton Content="清空" Grid.Column="4" Grid.Row="1" Width="80"
Background="#AAAAAA"
Visibility="{Binding Visibility,ElementName=lbl_purchaseSkuName}"
Command="{Binding DataContext.ClearPurchaseSkuNameCommand,RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type Window}}}" CommandParameter="{Binding }"/>
</Grid> </Grid>
<ListBox x:Name="listbox_purchaseProductSkuList" <ListBox x:Name="listbox_purchaseProductSkuList"
Grid.Row="1" Grid.Row="1"
ItemsSource="{Binding SkuList}" ItemsSource="{Binding SearchSkuList}"
SelectionMode="Multiple" SelectionMode="Multiple"
Visibility="{Binding IsEditing,Converter={StaticResource objConverter},ConverterParameter=true:Visible:Collapsed}" Visibility="{Binding IsEditing,Converter={StaticResource objConverter},ConverterParameter=true:Visible:Collapsed}"
Style="{StaticResource NoScrollViewListBoxStyle}"> Style="{StaticResource NoScrollViewListBoxStyle}">

Loading…
Cancel
Save