Browse Source

1

updatebug
shanji 2 years ago
parent
commit
b577c4f52a
  1. 3
      BBWYB.Client/App.xaml.cs
  2. 19
      BBWYB.Client/ViewModels/Order/ChoosePurchaseSchemeViewModel.cs
  3. 47
      BBWYB.Client/ViewModels/Order/OrderViewModel.cs
  4. 321
      BBWYB.Client/ViewModels/Purchase/OnlinePurchaseViewModel.cs
  5. 22
      BBWYB.Client/ViewModels/ViewModelLocator.cs
  6. 22
      BBWYB.Client/Views/Order/ChoosePurchaseScheme.xaml.cs
  7. 2
      BBWYB.Client/Views/Order/OrderList.xaml
  8. 140
      BBWYB.Client/Views/Purchase/OnlinePurchase.xaml
  9. 47
      BBWYB.Client/Views/Purchase/OnlinePurchase.xaml.cs
  10. 3
      SDKAdapter/OperationPlatform/Client/Impl/OP_QuanTanClient.cs

3
BBWYB.Client/App.xaml.cs

@ -1,5 +1,6 @@
using BBWYB.Client.Helpers;
using BBWYB.Client.Models;
using BBWYB.Client.ViewModels;
using BBWYB.Common.Extensions;
using BBWYB.Common.Http;
using BBWYB.Common.Models;
@ -72,6 +73,8 @@ namespace BBWYB.Client
serviceCollection.AddSingleton<RestApiService>();
serviceCollection.AddSingleton(gl);
serviceCollection.BatchRegisterServices(new Assembly[] { Assembly.Load("BBWYB.Client") }, typeof(IDenpendency));
serviceCollection.AddTransient<ChoosePurchaseSchemeViewModel>();
serviceCollection.AddTransient<OnlinePurchaseViewModel>();
serviceCollection.AddMapper(new MappingProfile());
ServiceProvider = serviceCollection.BuildServiceProvider();
base.OnStartup(e);

19
BBWYB.Client/ViewModels/Order/ChoosePurchaseSchemeViewModel.cs

@ -1,7 +1,9 @@
using BBWYB.Client.APIServices;
using BBWYB.Client.Models;
using BBWYB.Common.Models;
using BBWYB.Client.Views.Order;
using BBWYB.Client.Views.Purchase;
using CommunityToolkit.Mvvm.Input;
using CommunityToolkit.Mvvm.Messaging;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
@ -11,7 +13,7 @@ using System.Windows.Input;
namespace BBWYB.Client.ViewModels
{
public class ChoosePurchaseSchemeViewModel : BaseVM, IDenpendency
public class ChoosePurchaseSchemeViewModel : BaseVM
{
private PurchaseService purchaseService;
private GlobalContext globalContext;
@ -39,17 +41,9 @@ namespace BBWYB.Client.ViewModels
protected override void Load()
{
PurchaserList.Clear();
Task.Factory.StartNew(() => LoadPurchaser());
}
protected override void Unload()
{
this.order = null;
this.NoPurchaser = false;
PurchaserList.Clear();
}
public void SetData(Order order)
{
this.order = order;
@ -84,9 +78,10 @@ namespace BBWYB.Client.ViewModels
return;
}
var p = new _1688Purchase(order, purchaser, purchaseAccount);
var p = new OnlinePurchase(order, purchaser, purchaseAccount);
p.ShowDialog();
GalaSoft.MvvmLight.Messaging.Messenger.Default.Send<object>(null, "ChoosePurchaseScheme_Close");
// GalaSoft.MvvmLight.Messaging.Messenger.Default.Send<object>(null, "ChoosePurchaseScheme_Close");
WeakReferenceMessenger.Default.Send(new Message_ChoosePurchaseSchemeClose(null));
}
}

47
BBWYB.Client/ViewModels/Order/OrderViewModel.cs

@ -58,6 +58,8 @@ namespace BBWYB.Client.ViewModels
public ICommand OrderPageIndexChangedCommand { get; set; }
public ICommand SearchOrderCommand { get; set; }
public ICommand OnlinePurchaseCommand { get; set; }
public OrderViewModel(GlobalContext globalContext, OrderService orderService)
{
OrderList = new ObservableCollection<Order>();
@ -78,6 +80,7 @@ namespace BBWYB.Client.ViewModels
{
Task.Factory.StartNew(() => LoadOrder(p.PageIndex));
});
OnlinePurchaseCommand = new RelayCommand<Order>(OnlinePurchase);
PageIndex = 1;
PageSize = 10;
EndDate = DateTime.Now;
@ -102,41 +105,9 @@ namespace BBWYB.Client.ViewModels
});
}
IsLoading = false;
//OrderCount = response.Data.Count;
//if (response.Data.Items == null || response.Data.Items.Count() == 0)
// return;
//response.Data.Items = new List<OrderResponse>()
//{
// new OrderResponse()
// {
// Id = "3213213121",
// StartTime = DateTime.Now,
// OrderState = Models.OrderState.等待采购,
// OrderSellerPrice=100,
// OrderCost = new OrderCostResponse(){
// DeliveryExpressFreight=50,
// Profit=100,
// TotalCost=120,
// PurchaseAmount=150
// },
// BuyerRemark="12312fffff",
// Consignee = new ConsigneeResponse(){
// Mobile="18996038927",
// Province="重庆",
// ContactName="山鸡"
// },
// ItemList = new List<OrderSkuResponse>(){
// new OrderSkuResponse(){
// ItemTotal=2,
// Logo="https://img13.360buyimg.com/n9/s80x80_jfs/t1/87954/9/35896/95921/6431716fFa3d09cae/e1f687d25af0ddf1.jpg",
// Price=15,
// ProductId="10023985258330",
// SkuId="10072665703169", Title="特大绿色托盘熊50CM"
// }
// }
// }
//};
OrderCount = response.Data.Count;
if (response.Data.Items == null || response.Data.Items.Count() == 0)
return;
var list = response.Data.Items.Map<IList<Order>>();
App.Current.Dispatcher.Invoke(() =>
@ -185,6 +156,12 @@ namespace BBWYB.Client.ViewModels
}
PageIndex = 1;
}
private void OnlinePurchase(Order order)
{
var choosePurchaseScheme = new ChoosePurchaseScheme(order);
choosePurchaseScheme.ShowDialog();
}
}
}

321
BBWYB.Client/ViewModels/Purchase/OnlinePurchaseViewModel.cs

@ -0,0 +1,321 @@
using BBWYB.Client.APIServices;
using BBWYB.Client.Models;
using BBWYB.Common.Trigger;
using CommunityToolkit.Mvvm.Input;
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Input;
namespace BBWYB.Client.ViewModels
{
public class OnlinePurchaseViewModel : BaseVM
{
public ICommand FastCreateOrderCommand { get; set; }
public ICommand PreviewOrderCommand { get; set; }
public IList<PurchaseSchemeProductSku> PurchaseSchemeProductSkuList { get; set; }
public bool IsLoading { get => isLoading; set { SetProperty(ref isLoading, value); } }
public decimal ProductAmount { get => productAmount; set { SetProperty(ref productAmount, value); } }
public decimal FreightAmount { get => freightAmount; set { SetProperty(ref freightAmount, value); } }
public decimal TotalAmount { get => totalAmount; set { SetProperty(ref totalAmount, value); } }
public string ContactName { get => contactName; set { SetProperty(ref contactName, value); } }
public string Address { get => address; set { SetProperty(ref address, value); } }
public string Mobile { get => mobile; set { SetProperty(ref mobile, value); } }
public string Province { get => province; set { SetProperty(ref province, value); } }
public string City { get => city; set { SetProperty(ref city, value); } }
public string County { get => county; set { SetProperty(ref county, value); } }
public string Town { get => town; set { SetProperty(ref town, value); } }
public string PrucahseRemark { get => prucahseRemark; set { SetProperty(ref prucahseRemark, value); } }
public PurchaseOrderMode PurchaseOrderMode
{
get => purchaseOrderMode; set
{
if (SetProperty(ref purchaseOrderMode, value))
OnDelayTriggerExecute(Guid.NewGuid().ToString());
}
}
private Purchaser purchaser;
private Order order;
private PurchaseAccount purchaseAccount;
private IList<PurchaseScheme> purchaseSchemeList;
private OrderViewModel orderListViewModel;
private GlobalContext globalContext;
private bool isLoading;
private PurchaseService purchaseService;
private PurchaseOrderService purchaseOrderService;
private PurchaseProductAPIService purchaseProductAPIService;
private DelayTrigger delayTrigger;
private decimal productAmount;
private decimal freightAmount;
private decimal totalAmount;
private string contactName;
private string address;
private string mobile;
private string province;
private string city;
private string county;
private string town;
private string prucahseRemark;
private PurchaseOrderMode purchaseOrderMode = PurchaseOrderMode.;
private string tradeMode;
/// <summary>
/// 扩展数据,暂用于拳探
/// </summary>
private string extensions;
public OnlinePurchaseViewModel(PurchaseService purchaseService,
PurchaseOrderService purchaseOrderService,
PurchaseProductAPIService purchaseProductAPIService,
GlobalContext globalContext,
OrderViewModel orderListViewModel)
{
this.purchaseOrderService = purchaseOrderService;
this.purchaseProductAPIService = purchaseProductAPIService;
this.purchaseService = purchaseService;
this.delayTrigger = new DelayTrigger();
this.delayTrigger.OnExecute = OnDelayTriggerExecute;
PurchaseSchemeProductSkuList = new ObservableCollection<PurchaseSchemeProductSku>();
purchaseSchemeList = new List<PurchaseScheme>();
FastCreateOrderCommand = new RelayCommand(FastCreateOrder);
PreviewOrderCommand = new RelayCommand(PreviewOrder);
this.globalContext = globalContext;
this.orderListViewModel = orderListViewModel;
//PurchaseOrderMode = PurchaseOrderMode.代发;
}
public void SetData(Order order, Purchaser purchaser, PurchaseAccount purchaseAccount)
{
this.order = order;
this.purchaser = purchaser;
this.purchaseAccount = purchaseAccount;
this.ContactName = order.Consignee.ContactName;
this.Address = order.Consignee.Address;
this.Province = order.Consignee.Province;
this.City = order.Consignee.City;
this.County = order.Consignee.County;
this.Town = order.Consignee.Town;
this.Mobile = order.Consignee.Mobile;
}
protected override void Load()
{
IsLoading = true;
Task.Factory.StartNew(() => purchaseService.GetPurchaseSchemeList(order.ItemList.Select(osku => osku.SkuId).ToList(), purchaser.Id, globalContext.User.Shop.ShopId))
.ContinueWith(r =>
{
var purchaseSchemeResponse = r.Result;
if (!purchaseSchemeResponse.Success)
{
IsLoading = false;
App.Current.Dispatcher.Invoke(() => MessageBox.Show(purchaseSchemeResponse.Msg, "获取采购方案"));
return;
}
var waitList = new List<WaitHandle>();
foreach (var purchaseSchemeApiModel in purchaseSchemeResponse.Data)
{
var purchaseScheme = PurchaseScheme.Convert(purchaseSchemeApiModel);
purchaseSchemeList.Add(purchaseScheme);
foreach (var purchaseSchemeProduct in purchaseScheme.PurchaseSchemeProductList)
{
var ewh = new ManualResetEvent(false);
waitList.Add(ewh);
var orderSku = order.ItemList.FirstOrDefault(osku => osku.SkuId == purchaseScheme.SkuId);
Task.Factory.StartNew(() => LoadPurchaseProduct(purchaseScheme.PurchasePlatform, purchaseSchemeProduct, orderSku, ewh));
}
}
WaitHandle.WaitAll(waitList.ToArray());
//IsLoading = false;
if (PurchaseSchemeProductSkuList.Count() > 0)
OnDelayTriggerExecute(Guid.NewGuid().ToString());
else
{
IsLoading = false;
App.Current.Dispatcher.Invoke(() => MessageBox.Show("采购方案商品加载失败,请重新打开预览窗口", "提示"));
}
});
}
protected override void Unload()
{
order = null;
purchaser = null;
purchaseAccount = null;
purchaseSchemeList.Clear();
PurchaseSchemeProductSkuList.Clear();
tradeMode = string.Empty;
extensions = string.Empty;
ProductAmount = FreightAmount = TotalAmount = 0;
ContactName = Address = Mobile = Province = City = County = Town = PrucahseRemark = string.Empty;
}
private void LoadPurchaseProduct(Platform platform, PurchaseSchemeProduct purchaseSchemeProduct, OrderSku orderSku, ManualResetEvent ewh)
{
var data = purchaseProductAPIService.GetProductInfo(platform,
purchaseSchemeProduct.ProductId,
purchaseSchemeProduct.SkuId,
purchaseSchemeProduct.PurchaseProductId,
PurchaseOrderMode,
PurchaseProductAPIMode.Spider);
if (data != null && data.Value.purchaseSchemeProductSkus != null && data.Value.purchaseSchemeProductSkus.Count > 0)
{
App.Current.Dispatcher.Invoke(() =>
{
foreach (var purchaseSchemeProductSku in data.Value.purchaseSchemeProductSkus)
{
if (purchaseSchemeProduct.SelectedSkuIdList.Any(s => s == purchaseSchemeProductSku.PurchaseSkuId))
{
PurchaseSchemeProductSkuList.Add(purchaseSchemeProductSku);
purchaseSchemeProductSku.ItemTotal = orderSku.ItemTotal;
purchaseSchemeProductSku.OnItemTotalChanged = OnItemTotalChanged;
}
}
});
}
ewh.Set();
ewh.Dispose();
}
private void OnItemTotalChanged(int itemTotal)
{
Console.WriteLine($"OnItemTotalChanged {DateTime.Now} {itemTotal}");
this.delayTrigger.SetKey(itemTotal.ToString());
}
private void OnDelayTriggerExecute(string key)
{
if (string.IsNullOrEmpty(key))
{
IsLoading = false;
return;
}
if (string.IsNullOrEmpty(ContactName) ||
string.IsNullOrEmpty(Address) ||
string.IsNullOrEmpty(Mobile) ||
string.IsNullOrEmpty(Province) ||
string.IsNullOrEmpty(City) ||
string.IsNullOrEmpty(County))
{
IsLoading = false;
MessageBox.Show("缺少完整的收货信息", "提示");
return;
}
IsLoading = true;
Task.Factory.StartNew(() => purchaseOrderService.PreviewPurchaseOrder(new Consignee()
{
Address = Address,
City = City,
ContactName = ContactName,
County = County,
Mobile = Mobile,
Province = Province,
TelePhone = Mobile,
Town = Town
}, PurchaseSchemeProductSkuList, purchaseAccount.PurchasePlatformId, purchaseAccount, PurchaseOrderMode))
.ContinueWith(t =>
{
IsLoading = false;
var r = t.Result;
if (!r.Success)
{
ProductAmount = FreightAmount = TotalAmount = 0;
tradeMode = string.Empty;
App.Current.Dispatcher.Invoke(() => MessageBox.Show(r.Msg, "预览订单报价"));
return;
}
ProductAmount = r.Data.ProductAmount;
FreightAmount = r.Data.FreightAmount;
TotalAmount = r.Data.TotalAmount;
tradeMode = r.Data.OrderTradeType?.Code;
extensions = r.Data.Extensions;
});
}
private void FastCreateOrder()
{
if (IsLoading)
return;
if (TotalAmount == 0)
{
MessageBox.Show("总金额为0不能提交订单", "提示");
return;
}
if (string.IsNullOrEmpty(Mobile) ||
string.IsNullOrEmpty(Address) ||
string.IsNullOrEmpty(City) ||
string.IsNullOrEmpty(Province) ||
string.IsNullOrEmpty(County) ||
string.IsNullOrEmpty(Town) ||
string.IsNullOrEmpty(ContactName))
{
MessageBox.Show("收货人信息不全", "下单");
return;
}
IsLoading = true;
Task.Factory.StartNew(() => purchaseOrderService.FastCreateOrder(new Consignee()
{
Address = Address,
City = City,
ContactName = ContactName,
County = County,
Mobile = Mobile,
Province = Province,
TelePhone = Mobile,
Town = Town
}, PurchaseSchemeProductSkuList,
purchaseAccount.PurchasePlatformId,
purchaseAccount,
PurchaseOrderMode,
tradeMode,
PrucahseRemark,
order.Id,
globalContext.User.Shop.ShopId,
purchaseAccount.Id,
purchaseAccount.AccountName,
purchaseSchemeList[0].PurchaserName,
purchaser.Id,
globalContext.User.Shop.PlatformCommissionRatio ?? 0.05M,
extensions)).ContinueWith(t =>
{
IsLoading = false;
var r = t.Result;
if (!r.Success)
{
App.Current.Dispatcher.Invoke(() => MessageBox.Show(r.Msg, "下单"));
return;
}
//刷新订单列表
//orderListViewModel.RefreshOrder(order.Id);
//关闭当前窗口
//GalaSoft.MvvmLight.Messaging.Messenger.Default.Send<object>(null, "OnlinePurchase_Close");
});
}
private void PreviewOrder()
{
OnDelayTriggerExecute(Guid.NewGuid().ToString());
}
}
}

22
BBWYB.Client/ViewModels/ViewModelLocator.cs

@ -75,5 +75,27 @@ namespace BBWYB.Client.ViewModels
}
}
}
public ChoosePurchaseSchemeViewModel ChoosePurchaseScheme
{
get
{
using (var s = sp.CreateScope())
{
return s.ServiceProvider.GetRequiredService<ChoosePurchaseSchemeViewModel>();
}
}
}
public OnlinePurchaseViewModel OnlinePurchase
{
get
{
using (var s = sp.CreateScope())
{
return s.ServiceProvider.GetRequiredService<OnlinePurchaseViewModel>();
}
}
}
}
}

22
BBWYB.Client/Views/Order/ChoosePurchaseScheme.xaml.cs

@ -1,4 +1,6 @@
using CommunityToolkit.Mvvm.Messaging;
using BBWYB.Client.ViewModels;
using CommunityToolkit.Mvvm.Messaging;
using CommunityToolkit.Mvvm.Messaging.Messages;
using SJ.Controls;
namespace BBWYB.Client.Views.Order
@ -8,9 +10,10 @@ namespace BBWYB.Client.Views.Order
/// </summary>
public partial class ChoosePurchaseScheme : BWindow
{
public ChoosePurchaseScheme()
public ChoosePurchaseScheme(Models.Order order)
{
InitializeComponent();
(this.DataContext as ChoosePurchaseSchemeViewModel).SetData(order);
this.Loaded += ChoosePurchaseScheme_Loaded;
this.Unloaded += ChoosePurchaseScheme_Unloaded;
}
@ -23,6 +26,21 @@ namespace BBWYB.Client.Views.Order
private void ChoosePurchaseScheme_Loaded(object sender, System.Windows.RoutedEventArgs e)
{
//Messenger.Default.Register<object>(this, "ChoosePurchaseScheme_Close", (x) => this.Close());
WeakReferenceMessenger.Default.Register<Message_ChoosePurchaseSchemeClose>(this, (o, x) =>
{
this.Dispatcher.Invoke(() =>
{
this.Close();
});
});
}
}
public class Message_ChoosePurchaseSchemeClose : ValueChangedMessage<object>
{
public Message_ChoosePurchaseSchemeClose(object value) : base(value)
{
}
}
}

2
BBWYB.Client/Views/Order/OrderList.xaml

@ -462,6 +462,8 @@
<Border Width="1" Background="{StaticResource Border.Brush}" Grid.Column="5" HorizontalAlignment="Right"/>
<c:BButton Content="采购" Grid.Column="1" Width="100"
Command="{Binding DataContext.OnlinePurchaseCommand,RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type ListBox}}}"
CommandParameter="{Binding }"
Visibility="{Binding IsPurchased,ConverterParameter=false:Visible:Collapsed,Converter={StaticResource objConverter}}"/>
<StackPanel Grid.Column="1" VerticalAlignment="Center" HorizontalAlignment="Center"
Visibility="{Binding IsPurchased,ConverterParameter=true:Visible:Collapsed,Converter={StaticResource objConverter}}">

140
BBWYB.Client/Views/Purchase/OnlinePurchase.xaml

@ -0,0 +1,140 @@
<c:BWindow x:Class="BBWYB.Client.Views.Purchase.OnlinePurchase"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:BBWYB.Client.Views.Purchase"
xmlns:cmodel="clr-namespace:BBWYB.Client.Models"
xmlns:c="clr-namespace:SJ.Controls;assembly=SJ.Controls"
xmlns:b="http://schemas.microsoft.com/xaml/behaviors"
mc:Ignorable="d"
Title="提交订单" Height="600" Width="800"
Style="{StaticResource bwstyle}"
MinButtonVisibility="Collapsed"
MaxButtonVisibility="Collapsed"
DataContext="{Binding OnlinePurchase,Source={StaticResource Locator}}">
<b:Interaction.Triggers>
<b:EventTrigger EventName="Loaded">
<b:InvokeCommandAction Command="{Binding LoadCommand}"/>
</b:EventTrigger>
<b:EventTrigger EventName="Unloaded">
<b:InvokeCommandAction Command="{Binding UnloadCommand}"/>
</b:EventTrigger>
</b:Interaction.Triggers>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="30"/>
<RowDefinition/>
<RowDefinition Height="60"/>
<RowDefinition Height="100"/>
<RowDefinition Height="40"/>
</Grid.RowDefinitions>
<c:RoundWaitProgress Play="{Binding IsLoading}" Panel.ZIndex="999" Grid.RowSpan="5"/>
<Border BorderThickness="0,0,0,1" BorderBrush="{StaticResource MainMenu.BorderBrush}"
Background="{StaticResource Border.Background}">
<TextBlock Text="提交订单" HorizontalAlignment="Center" VerticalAlignment="Center"/>
</Border>
<DataGrid Grid.Row="1"
ItemsSource="{Binding PurchaseSchemeProductSkuList}"
RowHeight="90">
<DataGrid.Columns>
<DataGridTemplateColumn Header="采购货品信息" HeaderStyle="{StaticResource ColumnHeaderStyle_Center}" Width="1*">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Grid Width="{Binding ActualWidth,ElementName=listbox_orerSku}">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="90"/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<!--{Binding Logo}-->
<c:BAsyncImage UrlSource="{Binding Logo}"
Width="80" DecodePixelWidth="80"
VerticalAlignment="Top" Margin="0,5,0,0"/>
<TextBlock Text="{Binding Title}" Grid.Column="1"
VerticalAlignment="Center"/>
</Grid>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTextColumn Header="单价" HeaderStyle="{StaticResource ColumnHeaderStyle_Center}" Width="80" Binding="{Binding Price}"
ElementStyle="{StaticResource middleTextBlock}"/>
<DataGridTemplateColumn Header="数量" HeaderStyle="{StaticResource ColumnHeaderStyle_Center}" Width="100">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<c:BTextBox Text="{Binding ItemTotal,Converter={StaticResource inputNumberConverter},Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"
Width="60"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTextColumn Header="金额" HeaderStyle="{StaticResource ColumnHeaderStyle_Center}" Width="80"
Binding="{Binding SkuAmount,Mode=OneWay,UpdateSourceTrigger=PropertyChanged}"
ElementStyle="{StaticResource middleTextBlock}"/>
</DataGrid.Columns>
</DataGrid>
<Grid Grid.Row="2" Margin="5,0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="0.8*"/>
<ColumnDefinition Width="0.2*"/>
</Grid.ColumnDefinitions>
<c:BTextBox Text="{Binding PrucahseRemark,Mode=OneWayToSource,UpdateSourceTrigger=PropertyChanged}"
WaterRemark="留言信息"
Height="60"
VerticalContentAlignment="Top"
Padding="3,5,0,0"
TextWrapping="Wrap"/>
<TextBlock Grid.Column="1" HorizontalAlignment="Center" VerticalAlignment="Center">
<Run Text="货品总金额"/>
<Run Text="{Binding ProductAmount,Mode=OneWay,UpdateSourceTrigger=PropertyChanged}" Foreground="#EC808D"/>
<Run Text="元"/>
<LineBreak/>
<Run Text="运费共计"/>
<Run Text="{Binding FreightAmount,Mode=OneWay,UpdateSourceTrigger=PropertyChanged}" Foreground="#EC808D"/>
<Run Text="元"/>
</TextBlock>
</Grid>
<StackPanel HorizontalAlignment="Stretch" VerticalAlignment="Center" Grid.Row="3" Margin="5,0">
<c:BTextBox Text="{Binding ContactName,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" WaterRemark="收货人"/>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="80"/>
<ColumnDefinition Width="80"/>
<ColumnDefinition Width="80"/>
<ColumnDefinition Width="80"/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<c:BTextBox Text="{Binding Province,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" WaterRemark="省" BorderThickness="1,1,0,1"/>
<c:BTextBox Text="{Binding City,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" WaterRemark="市" Grid.Column="1" BorderThickness="1,1,0,1"/>
<c:BTextBox Text="{Binding County,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" WaterRemark="区/县" Grid.Column="2" BorderThickness="1,1,0,1"/>
<c:BTextBox Text="{Binding Town,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" WaterRemark="镇" Grid.Column="3" BorderThickness="1,1,0,1"/>
<c:BTextBox Text="{Binding Address,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" Margin="0,2.5" WaterRemark="街道地址" Grid.Column="4"/>
</Grid>
<c:BTextBox Text="{Binding Mobile,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" WaterRemark="电话"/>
</StackPanel>
<TextBlock Grid.Row="4" HorizontalAlignment="Left" VerticalAlignment="Center" Margin="5,0,0,0" FontSize="16">
<Run Text="应付总额(含运费)"/>
<Run Text="{Binding TotalAmount,Mode=OneWay,UpdateSourceTrigger=PropertyChanged}" Foreground="#EC808D"/>
<Run Text="元"/>
</TextBlock>
<StackPanel Orientation="Horizontal" Grid.Row="4" VerticalAlignment="Center" HorizontalAlignment="Right">
<RadioButton Content="批发" Padding="0" VerticalContentAlignment="Center"
GroupName="OrderMode"
IsChecked="{Binding PurchaseOrderMode,Converter={StaticResource enumToBooleanConverter},ConverterParameter={x:Static cmodel:PurchaseOrderMode.批发}}"/>
<RadioButton Content="分销" Padding="0" VerticalContentAlignment="Center" Margin="5,0,0,0"
GroupName="OrderMode"
IsChecked="{Binding PurchaseOrderMode,Converter={StaticResource enumToBooleanConverter},ConverterParameter={x:Static cmodel:PurchaseOrderMode.代发}}"/>
<c:BButton Content="预览订单" Width="80" HorizontalAlignment="Right" Margin="5,0,0,0"
Command="{Binding PreviewOrderCommand}" Background="#1CC2A2"/>
<c:BButton Content="提交订单" Width="80" HorizontalAlignment="Right"
Command="{Binding FastCreateOrderCommand}" Margin="0,0,5,0"/>
</StackPanel>
</Grid>
</c:BWindow>

47
BBWYB.Client/Views/Purchase/OnlinePurchase.xaml.cs

@ -0,0 +1,47 @@
using BBWYB.Client.Models;
using BBWYB.Client.ViewModels;
using CommunityToolkit.Mvvm.Messaging;
using CommunityToolkit.Mvvm.Messaging.Messages;
using SJ.Controls;
namespace BBWYB.Client.Views.Purchase
{
/// <summary>
/// _1688Purchase.xaml 的交互逻辑
/// </summary>
public partial class OnlinePurchase : BWindow
{
public OnlinePurchase(Models.Order order, Purchaser purchaser, PurchaseAccount purchaseAccount)
{
InitializeComponent();
(this.DataContext as OnlinePurchaseViewModel).SetData(order, purchaser, purchaseAccount);
this.Loaded += _1688Purchase_Loaded;
this.Unloaded += _1688Purchase_Unloaded;
}
private void _1688Purchase_Unloaded(object sender, System.Windows.RoutedEventArgs e)
{
//Messenger.Default.Unregister(this);
WeakReferenceMessenger.Default.UnregisterAll(this);
}
private void _1688Purchase_Loaded(object sender, System.Windows.RoutedEventArgs e)
{
//Messenger.Default.Register<object>(this, "OnlinePurchase_Close", (x) => this.Dispatcher.Invoke(() => this.Close()));
WeakReferenceMessenger.Default.Register<Message_OnlinePurchase_Close>(this, (o, x) =>
{
this.Dispatcher.Invoke(() =>
{
this.Dispatcher.Invoke(() => this.Close());
});
});
}
}
public class Message_OnlinePurchase_Close : ValueChangedMessage<object>
{
public Message_OnlinePurchase_Close(object value) : base(value)
{
}
}
}

3
SDKAdapter/OperationPlatform/Client/Impl/OP_QuanTanClient.cs

@ -54,7 +54,8 @@ namespace SDKAdapter.OperationPlatform.Client
page = request.PageIndex,
pageSize = request.PageSize,
storeId = request.AppToken,
productId = request.Spu
productId = request.Spu,
productSku = request.Sku
}, request.AppKey, request.AppSecret);
if (qtResponse.Status != 200)

Loading…
Cancel
Save