41 changed files with 2125 additions and 1229 deletions
@ -0,0 +1,46 @@ |
|||
using BBWYB.Client.Models; |
|||
using BBWYB.Common.Http; |
|||
using BBWYB.Common.Models; |
|||
using System; |
|||
using System.Net.Http; |
|||
|
|||
namespace BBWYB.Client.APIServices |
|||
{ |
|||
public class OrderService : BaseApiService, IDenpendency |
|||
{ |
|||
public OrderService(RestApiService restApiService, GlobalContext globalContext) : base(restApiService, globalContext) |
|||
{ |
|||
} |
|||
|
|||
public ApiResponse<OrderListResponse> GetOrderList(string orderId, |
|||
DateTime startDate, |
|||
DateTime endDate, |
|||
OrderState? orderState, |
|||
string productId, |
|||
string skuId, |
|||
string clientOrderId, |
|||
string sourceShopName, |
|||
string sourceSku, |
|||
int pageIndex, |
|||
int pageSize, |
|||
long? shopId, |
|||
bool excludeCanceled) |
|||
{ |
|||
return SendRequest<OrderListResponse>(globalContext.BBYWApiHost, "api/order/getorderlist", new |
|||
{ |
|||
OrderId = orderId, |
|||
ShopId = shopId, |
|||
StartDate = startDate, |
|||
EndDate = endDate, |
|||
OrderState = orderState, |
|||
PageIndex = pageIndex, |
|||
PageSize = pageSize, |
|||
ProductId = productId, |
|||
Sku = skuId, |
|||
ClientOrderId = clientOrderId, |
|||
SourceShopName = sourceShopName, |
|||
SourceSku = sourceSku |
|||
}, null, HttpMethod.Post); |
|||
} |
|||
} |
|||
} |
@ -0,0 +1,27 @@ |
|||
using BBWYB.Client.Models; |
|||
using BBWYB.Common.Http; |
|||
using BBWYB.Common.Models; |
|||
using System.Net.Http; |
|||
|
|||
namespace BBWYB.Client.APIServices |
|||
{ |
|||
public class ShopService : BaseApiService, IDenpendency |
|||
{ |
|||
public ShopService(RestApiService restApiService, GlobalContext globalContext) : base(restApiService, globalContext) { } |
|||
|
|||
public ApiResponse<long> SaveShopSetting(long shopId, |
|||
PurchaseAccount purchaseAccount) |
|||
{ |
|||
return SendRequest<long>(globalContext.BBYWApiHost, "api/vender/SaveShopSetting", new |
|||
{ |
|||
shopId, |
|||
PurchaseAccountId = purchaseAccount.Id, |
|||
purchaseAccount.AccountName, |
|||
purchaseAccount.AppKey, |
|||
purchaseAccount.AppSecret, |
|||
purchaseAccount.AppToken, |
|||
purchaseAccount.PurchasePlatformId |
|||
}, null, HttpMethod.Post); |
|||
} |
|||
} |
|||
} |
@ -1,14 +0,0 @@ |
|||
namespace BBWYB.Client.Models |
|||
{ |
|||
public class OrderCouponResponse |
|||
{ |
|||
public long Id { get; set; } |
|||
|
|||
public decimal CouponPrice { get; set; } |
|||
|
|||
public string CouponType { get; set; } |
|||
|
|||
public string OrderId { get; set; } |
|||
public string SkuId { get; set; } |
|||
} |
|||
} |
@ -1,32 +0,0 @@ |
|||
namespace BBWYB.Client.Models |
|||
{ |
|||
public class OrderDropShippingResponse |
|||
{ |
|||
public long Id { get; set; } |
|||
|
|||
public string OrderId { get; set; } |
|||
|
|||
public string BuyerAccount { get; set; } |
|||
|
|||
public decimal DeliveryFreight { get; set; } |
|||
|
|||
public decimal PurchaseAmount { get; set; } |
|||
|
|||
public string PurchaseOrderId { get; set; } |
|||
|
|||
public string MerchantOrderId { get; set; } |
|||
|
|||
public Platform? PurchasePlatform { get; set; } |
|||
|
|||
public string SellerAccount { get; set; } |
|||
|
|||
public decimal SkuAmount |
|||
{ |
|||
get; set; |
|||
} |
|||
public decimal PurchaseFreight |
|||
{ |
|||
get; set; |
|||
} |
|||
} |
|||
} |
@ -1,32 +1,41 @@ |
|||
namespace BBWYB.Client.Models |
|||
using System; |
|||
|
|||
namespace BBWYB.Client.Models |
|||
{ |
|||
public class OrderSkuResponse |
|||
{ |
|||
/// <summary>
|
|||
/// 购买数量
|
|||
/// </summary>
|
|||
public int ItemTotal { get; set; } |
|||
|
|||
public string Id { get; set; } |
|||
public long Id { get; set; } |
|||
|
|||
public DateTime? CreateTime { get; set; } |
|||
|
|||
|
|||
/// <summary>
|
|||
/// 销售数量
|
|||
/// </summary>
|
|||
public int ItemTotal { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// Logo
|
|||
/// </summary>
|
|||
|
|||
public string ProductId { get; set; } |
|||
public string Logo { get; set; } |
|||
|
|||
public string ProductNo { get; set; } |
|||
|
|||
public double Price { get; set; } |
|||
public string OrderId { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// Sku标题
|
|||
/// </summary>
|
|||
public string Title { get; set; } |
|||
/// <summary>
|
|||
/// 销售单价
|
|||
/// </summary>
|
|||
public decimal? Price { get; set; } |
|||
|
|||
public string Logo { get; set; } |
|||
public string ProductId { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 代发信息Id
|
|||
/// </summary>
|
|||
public long? OrderDropShippingId { get; set; } |
|||
public string SkuId { get; set; } |
|||
|
|||
public bool IsRefund { get; set; } = false; |
|||
} |
|||
/// <summary>
|
|||
/// Sku标题
|
|||
/// </summary>
|
|||
public string Title { get; set; } |
|||
} |
|||
} |
|||
|
@ -1,39 +1,6 @@ |
|||
using CommunityToolkit.Mvvm.ComponentModel; |
|||
|
|||
namespace BBWYB.Client.Models |
|||
namespace BBWYB.Client.Models |
|||
{ |
|||
public class Consignee : ObservableObject |
|||
public class Consignee : ConsigneeResponse |
|||
{ |
|||
private string contactName; |
|||
private string address; |
|||
private string mobile; |
|||
private string telePhone; |
|||
private bool isDecode; |
|||
|
|||
|
|||
/// <summary>
|
|||
/// 省
|
|||
/// </summary>
|
|||
public string Province { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 市
|
|||
/// </summary>
|
|||
public string City { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 县
|
|||
/// </summary>
|
|||
public string County { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 镇
|
|||
/// </summary>
|
|||
public string Town { get; set; } |
|||
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 TelePhone { get => telePhone; set { SetProperty(ref telePhone, value); } } |
|||
public bool IsDecode { get => isDecode; set { SetProperty(ref isDecode, value); } } |
|||
} |
|||
} |
|||
|
@ -0,0 +1,169 @@ |
|||
using CommunityToolkit.Mvvm.ComponentModel; |
|||
using System; |
|||
using System.Collections.Generic; |
|||
using System.Linq; |
|||
|
|||
namespace BBWYB.Client.Models |
|||
{ |
|||
public class Order : ObservableObject |
|||
{ |
|||
public Order() |
|||
{ |
|||
OrderCostDetailGroupList = new List<OrderCostDetailGroup>(); |
|||
} |
|||
|
|||
private OrderState orderState; |
|||
private string waybillNo; |
|||
private string venderRemark; |
|||
|
|||
public string Id { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 商家Id
|
|||
/// </summary>
|
|||
public string VenderId { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 下单时间
|
|||
/// </summary>
|
|||
public DateTime StartTime { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 结单时间
|
|||
/// </summary>
|
|||
public DateTime? OrderEndTime { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 买家账号
|
|||
/// </summary>
|
|||
public string BuyerAccount { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 订单平台
|
|||
/// </summary>
|
|||
public Platform Platform { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 订单类型
|
|||
/// </summary>
|
|||
public OrderType OrderType { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 支付方式
|
|||
/// </summary>
|
|||
public PayType PayType { get; set; } |
|||
|
|||
|
|||
/// <summary>
|
|||
/// 订单状态中文说明
|
|||
/// </summary>
|
|||
public string OrderStateText { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 订单总价
|
|||
/// </summary>
|
|||
public decimal OrderTotalPrice { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 订单货款金额
|
|||
/// </summary>
|
|||
public decimal OrderSellerPrice { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 用户应付金额
|
|||
/// </summary>
|
|||
public decimal OrderPayment { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 商品运费(用户付)
|
|||
/// </summary>
|
|||
public decimal FreightPrice { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 实收金额
|
|||
/// </summary>
|
|||
public decimal ActualAmount { get { return OrderSellerPrice + FreightPrice; } } |
|||
|
|||
/// <summary>
|
|||
/// 商家优惠金额
|
|||
/// </summary>
|
|||
public decimal PreferentialAmount { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 买家备注
|
|||
/// </summary>
|
|||
public string BuyerRemark { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 采购备注
|
|||
/// </summary>
|
|||
public string PurchaseRemark { get; set; } |
|||
|
|||
|
|||
/// <summary>
|
|||
/// 订单状态
|
|||
/// </summary>
|
|||
public OrderState OrderState { get => orderState; set { SetProperty(ref orderState, value); } } |
|||
|
|||
public string WaybillNo { get => waybillNo; set { SetProperty(ref waybillNo, value); } } |
|||
|
|||
/// <summary>
|
|||
/// 商家备注
|
|||
/// </summary>
|
|||
public string VenderRemark { get => venderRemark; set { SetProperty(ref venderRemark, value); } } |
|||
|
|||
|
|||
|
|||
/// <summary>
|
|||
/// 收货人信息
|
|||
/// </summary>
|
|||
public Consignee Consignee { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 订单成本
|
|||
/// </summary>
|
|||
public OrderCost OrderCost { get; set; } |
|||
|
|||
public IList<OrderSku> ItemList { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 订单成本明细列表
|
|||
/// </summary>
|
|||
public IList<OrderCostDetail> OrderCostDetailList { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 订单成本明细分组列表
|
|||
/// </summary>
|
|||
public IList<OrderCostDetailGroup> OrderCostDetailGroupList { get; set; } |
|||
|
|||
|
|||
|
|||
public void LocalConvert() |
|||
{ |
|||
ConvertOrderCostDetailToGroup(); |
|||
} |
|||
|
|||
public void ConvertOrderCostDetailToGroup() |
|||
{ |
|||
if (OrderCostDetailList == null || OrderCostDetailList.Count() == 0) |
|||
return; |
|||
foreach (var detail in OrderCostDetailList) |
|||
{ |
|||
var group = OrderCostDetailGroupList.FirstOrDefault(g => g.SkuId == detail.SkuId); |
|||
if (group == null) |
|||
{ |
|||
group = new OrderCostDetailGroup() { SkuId = detail.SkuId }; |
|||
OrderCostDetailGroupList.Add(group); |
|||
} |
|||
group.Items.Add(detail); |
|||
} |
|||
} |
|||
} |
|||
|
|||
public class OrderList |
|||
{ |
|||
public int Count { get; set; } |
|||
|
|||
public IList<Order> Items { get; set; } |
|||
} |
|||
} |
@ -0,0 +1,7 @@ |
|||
namespace BBWYB.Client.Models |
|||
{ |
|||
public class OrderCost : OrderCostResponse |
|||
{ |
|||
|
|||
} |
|||
} |
@ -0,0 +1,7 @@ |
|||
namespace BBWYB.Client.Models |
|||
{ |
|||
public class OrderCostDetail : OrderCostDetailResponse |
|||
{ |
|||
|
|||
} |
|||
} |
@ -0,0 +1,16 @@ |
|||
using System.Collections.Generic; |
|||
|
|||
namespace BBWYB.Client.Models |
|||
{ |
|||
public class OrderCostDetailGroup |
|||
{ |
|||
public OrderCostDetailGroup() |
|||
{ |
|||
Items = new List<OrderCostDetail>(); |
|||
} |
|||
|
|||
public string SkuId { get; set; } |
|||
|
|||
public IList<OrderCostDetail> Items { get; set; } |
|||
} |
|||
} |
@ -0,0 +1,6 @@ |
|||
namespace BBWYB.Client.Models |
|||
{ |
|||
public class OrderSku : OrderSkuResponse |
|||
{ |
|||
} |
|||
} |
@ -0,0 +1,71 @@ |
|||
using CommunityToolkit.Mvvm.ComponentModel; |
|||
using Newtonsoft.Json; |
|||
using System; |
|||
|
|||
namespace BBWY.Client.Models |
|||
{ |
|||
public class RelationPurchaseOrderSku : ObservableObject |
|||
{ |
|||
public RelationPurchaseOrderSku() |
|||
{ |
|||
SingleSkuAmountStr = (0).ToString(); |
|||
} |
|||
private bool isSelected; |
|||
private string singleSkuAmountStr; |
|||
private decimal singleSkuAmount; |
|||
private decimal skuAmount; |
|||
|
|||
public string ProductId { get; set; } |
|||
|
|||
public string SkuId { get; set; } |
|||
|
|||
public string Logo { get; set; } |
|||
|
|||
public int Quantity { get; set; } |
|||
|
|||
public string Title { get; set; } |
|||
|
|||
public string SingleSkuAmountStr |
|||
{ |
|||
get => singleSkuAmountStr; set |
|||
{ |
|||
if (SetProperty(ref singleSkuAmountStr, value)) |
|||
{ |
|||
if (decimal.TryParse(value, out decimal d)) |
|||
SingleSkuAmount = d; |
|||
} |
|||
} |
|||
} |
|||
|
|||
public decimal SingleSkuAmount |
|||
{ |
|||
get => singleSkuAmount; |
|||
set |
|||
{ |
|||
if (SetProperty(ref singleSkuAmount, value)) |
|||
SkuAmount = SingleSkuAmount * Quantity; |
|||
|
|||
} |
|||
} |
|||
|
|||
public decimal SkuAmount |
|||
{ |
|||
get => skuAmount; |
|||
set |
|||
{ |
|||
if (SetProperty(ref skuAmount, value)) |
|||
OnSkuAmountChanged?.Invoke(); |
|||
} |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 代发信息Id
|
|||
/// </summary>
|
|||
public long? OrderDropShippingId { get; set; } |
|||
|
|||
[JsonIgnore] |
|||
public Action OnSkuAmountChanged { get; set; } |
|||
|
|||
public bool IsSelected { get => isSelected; set { SetProperty(ref isSelected, value); } } |
|||
} |
|||
} |
@ -0,0 +1,150 @@ |
|||
using BBWYB.Client.APIServices; |
|||
using BBWYB.Client.Models; |
|||
using BBWYB.Client.Views.Order; |
|||
using BBWYB.Common.Extensions; |
|||
using BBWYB.Common.Models; |
|||
using CommunityToolkit.Mvvm.Input; |
|||
using CommunityToolkit.Mvvm.Messaging; |
|||
using SJ.Controls; |
|||
using System; |
|||
using System.Collections.Generic; |
|||
using System.Collections.ObjectModel; |
|||
using System.Linq; |
|||
using System.Threading.Tasks; |
|||
using System.Windows; |
|||
using System.Windows.Input; |
|||
|
|||
namespace BBWYB.Client.ViewModels |
|||
{ |
|||
public class OrderViewModel : BaseVM, IDenpendency |
|||
{ |
|||
private bool isLoading; |
|||
private DateTime startDate; |
|||
private DateTime endDate; |
|||
private int pageIndex = 1; |
|||
private int pageSize = 10; |
|||
private long orderCount; |
|||
private OrderState? orderState; |
|||
private string searchSku; |
|||
private string searchProductId; |
|||
private string searchOrderId; |
|||
private string searchClientOrderId; |
|||
private string searchSourceShopName; |
|||
private string searchSourceSku; |
|||
private bool excludeCanceled; |
|||
private GlobalContext globalContext; |
|||
private OrderService orderService; |
|||
|
|||
public bool IsLoading { get => isLoading; set { SetProperty(ref isLoading, value); } } |
|||
|
|||
public DateTime StartDate { get => startDate; set { SetProperty(ref startDate, value); } } |
|||
|
|||
public DateTime EndDate { get => endDate; set { SetProperty(ref endDate, value); } } |
|||
public int PageIndex { get => pageIndex; set { SetProperty(ref pageIndex, value); } } |
|||
public int PageSize { get => pageSize; set { SetProperty(ref pageSize, value); } } |
|||
public long OrderCount { get => orderCount; set { SetProperty(ref orderCount, value); } } |
|||
public OrderState? OrderState { get => orderState; set { SetProperty(ref orderState, value); } } |
|||
public string SearchSku { get => searchSku; set { SetProperty(ref searchSku, value); } } |
|||
public string SearchProductId { get => searchProductId; set { SetProperty(ref searchProductId, value); } } |
|||
public string SearchOrderId { get => searchOrderId; set { SetProperty(ref searchOrderId, value); } } |
|||
public string SearchClientOrderId { get => searchClientOrderId; set { SetProperty(ref searchClientOrderId, value); } } |
|||
public string SearchSourceShopName { get => searchSourceShopName; set { SetProperty(ref searchSourceShopName, value); } } |
|||
public string SearchSourceSku { get => searchSourceSku; set { SetProperty(ref searchSourceSku, value); } } |
|||
public bool ExcludeCanceled { get => excludeCanceled; set { SetProperty(ref excludeCanceled, value); } } |
|||
public IList<Order> OrderList { get; set; } |
|||
|
|||
public ICommand SetSearchDateCommand { get; set; } |
|||
public ICommand SetOrderStateCommand { get; set; } |
|||
public ICommand OrderPageIndexChangedCommand { get; set; } |
|||
|
|||
public OrderViewModel(GlobalContext globalContext, OrderService orderService) |
|||
{ |
|||
OrderList = new ObservableCollection<Order>(); |
|||
SetOrderStateCommand = new RelayCommand<OrderState?>(SetOrderState); |
|||
SetSearchDateCommand = new RelayCommand<int>(d => |
|||
{ |
|||
EndDate = d == 1 ? DateTime.Now.Date.AddDays(-1) : DateTime.Now; |
|||
StartDate = DateTime.Now.Date.AddDays(d * -1); |
|||
PageIndex = 1; |
|||
Task.Factory.StartNew(() => LoadOrder(PageIndex)); //点击日期查询订单
|
|||
}); |
|||
OrderPageIndexChangedCommand = new RelayCommand<PageArgs>(p => |
|||
{ |
|||
Task.Factory.StartNew(() => LoadOrder(p.PageIndex)); |
|||
}); |
|||
PageSize = 10; |
|||
EndDate = DateTime.Now; |
|||
StartDate = DateTime.Now.Date; |
|||
this.globalContext = globalContext; |
|||
this.orderService = orderService; |
|||
} |
|||
|
|||
private void LoadOrder(int pageIndex) |
|||
{ |
|||
IsLoading = true; |
|||
var response = orderService.GetOrderList(SearchOrderId, StartDate, EndDate, OrderState, SearchProductId, SearchSku, SearchClientOrderId, SearchSourceShopName, SearchSourceSku, PageIndex, PageSize, globalContext.User.Shop.ShopId, ExcludeCanceled); |
|||
|
|||
if (!response.Success) |
|||
{ |
|||
IsLoading = false; |
|||
App.Current.Dispatcher.Invoke(() => |
|||
{ |
|||
MessageBox.Show(response.Msg, "提示"); |
|||
return; |
|||
}); |
|||
} |
|||
IsLoading = false; |
|||
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(() => |
|||
{ |
|||
foreach (var o in list) |
|||
{ |
|||
OrderList.Clear(); |
|||
foreach (var order in list) |
|||
{ |
|||
order.LocalConvert(); |
|||
OrderList.Add(order); |
|||
} |
|||
WeakReferenceMessenger.Default.Send(new Message_OrderListScrollToTop(null)); |
|||
} |
|||
}); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 通过订单状态 筛选订单数据
|
|||
/// </summary>
|
|||
/// <param name="orderState">订单状态</param>
|
|||
public void SetOrderState(OrderState? orderState) |
|||
{ |
|||
InitSearchParam(orderState == null); //初始化查询参数 orderState == null 全部
|
|||
this.OrderState = orderState; |
|||
Task.Factory.StartNew(() => LoadOrder(1)); //选择状态查询订单
|
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 初始化查询参数
|
|||
/// </summary>
|
|||
/// <param name="isInitDate"></param>
|
|||
private void InitSearchParam(bool isInitDate = false) |
|||
{ |
|||
this.OrderState = null; |
|||
SearchOrderId = string.Empty; |
|||
SearchSku = string.Empty; |
|||
SearchProductId = string.Empty; |
|||
SearchClientOrderId = string.Empty; |
|||
SearchSourceShopName = string.Empty; |
|||
SearchSourceSku = string.Empty; |
|||
if (isInitDate) |
|||
{ |
|||
EndDate = DateTime.Now; |
|||
StartDate = DateTime.Now.Date; |
|||
} |
|||
PageIndex = 1; |
|||
} |
|||
} |
|||
} |
|||
|
@ -0,0 +1,100 @@ |
|||
using BBWYB.Client.APIServices; |
|||
using BBWYB.Client.Models; |
|||
using BBWYB.Common.Models; |
|||
using CommunityToolkit.Mvvm.Input; |
|||
using System.Collections.Generic; |
|||
using System.Linq; |
|||
using System.Threading.Tasks; |
|||
using System.Windows; |
|||
using System.Windows.Input; |
|||
|
|||
namespace BBWYB.Client.ViewModels |
|||
{ |
|||
public class ShopSettingViewModel : BaseVM, IDenpendency |
|||
{ |
|||
private bool isLoading; |
|||
private GlobalContext globalContext; |
|||
private ShopService shopService; |
|||
private PurchaseAccount purchaseAccount; |
|||
private Platform purchasePlatform; |
|||
|
|||
public ICommand SaveCommand { get; set; } |
|||
|
|||
public bool IsLoading { get => isLoading; set { SetProperty(ref isLoading, value); } } |
|||
|
|||
public Platform PurchasePlatform |
|||
{ |
|||
get => purchasePlatform; set |
|||
{ |
|||
if (SetProperty(ref purchasePlatform, value)) |
|||
{ |
|||
OnPurchasePlatformChanged(); |
|||
} |
|||
} |
|||
} |
|||
|
|||
public PurchaseAccount PurchaseAccount { get => purchaseAccount; set { SetProperty(ref purchaseAccount, value); } } |
|||
|
|||
|
|||
public ShopSettingViewModel(GlobalContext globalContext, ShopService shopService) |
|||
{ |
|||
this.globalContext = globalContext; |
|||
this.shopService = shopService; |
|||
SaveCommand = new RelayCommand(Save); |
|||
} |
|||
|
|||
private void OnPurchasePlatformChanged() |
|||
{ |
|||
var pa = globalContext.User.Shop.PurchaseAccountList.FirstOrDefault(pa => pa.PurchasePlatformId == PurchasePlatform); |
|||
if (pa == null) |
|||
{ |
|||
pa = new PurchaseAccount() |
|||
{ |
|||
PurchasePlatformId = PurchasePlatform, |
|||
}; |
|||
globalContext.User.Shop.PurchaseAccountList.Add(pa); |
|||
} |
|||
|
|||
this.PurchaseAccount = pa; |
|||
} |
|||
|
|||
protected override void Load() |
|||
{ |
|||
if (globalContext.User.Shop.PurchaseAccountList == null) |
|||
globalContext.User.Shop.PurchaseAccountList = new List<PurchaseAccount>(); |
|||
|
|||
IsLoading = false; |
|||
PurchasePlatform = Platform.阿里巴巴; |
|||
} |
|||
|
|||
private void Save() |
|||
{ |
|||
if (string.IsNullOrEmpty(PurchaseAccount.AppKey) || |
|||
string.IsNullOrEmpty(PurchaseAccount.AppSecret) || |
|||
string.IsNullOrEmpty(PurchaseAccount.AppToken) || |
|||
string.IsNullOrEmpty(PurchaseAccount.AccountName)) |
|||
{ |
|||
MessageBox.Show("采购信息不能为空", "保存店铺设置"); |
|||
return; |
|||
} |
|||
|
|||
PurchaseAccount.AppKey = PurchaseAccount.AppKey.Trim(); |
|||
PurchaseAccount.AppSecret = PurchaseAccount.AppSecret.Trim(); |
|||
PurchaseAccount.AppToken = PurchaseAccount.AppToken.Trim(); |
|||
PurchaseAccount.AccountName = PurchaseAccount.AccountName.Trim(); |
|||
|
|||
IsLoading = true; |
|||
Task.Factory.StartNew(() => shopService.SaveShopSetting(globalContext.User.Shop.ShopId, PurchaseAccount)).ContinueWith(r => |
|||
{ |
|||
IsLoading = false; |
|||
var response = r.Result; |
|||
if (!response.Success) |
|||
{ |
|||
App.Current.Dispatcher.Invoke(() => MessageBox.Show(response.Msg, "保存店铺设置")); |
|||
return; |
|||
} |
|||
PurchaseAccount.Id = response.Data; |
|||
}); |
|||
} |
|||
} |
|||
} |
@ -1,339 +0,0 @@ |
|||
using BBWYB.Client.APIServices; |
|||
using BBWYB.Client.Models; |
|||
using BBWYB.Client.Views.Ware; |
|||
using BBWYB.Common.Extensions; |
|||
using BBWYB.Common.Models; |
|||
using CommunityToolkit.Mvvm.Input; |
|||
using CommunityToolkit.Mvvm.Messaging; |
|||
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 WareStockViewModel : BaseVM, IDenpendency |
|||
{ |
|||
#region Property
|
|||
private PurchaseOrderService purchaseOrderService; |
|||
private ProductService productService; |
|||
private GlobalContext globalContext; |
|||
|
|||
private bool isLoading; |
|||
private int pageIndex = 1; |
|||
private int pageSize; |
|||
private int productCount; |
|||
private string searchProductItem; |
|||
private string searchSpu; |
|||
private string searchSku; |
|||
private string searchPurchaseOrder; |
|||
|
|||
public bool IsLoading { get => isLoading; set { SetProperty(ref isLoading, value); } } |
|||
public int PageIndex { get => pageIndex; set { SetProperty(ref pageIndex, value); } } |
|||
public int PageSize { get => pageSize; set { SetProperty(ref pageSize, value); } } |
|||
public int ProductCount { get => productCount; set { SetProperty(ref productCount, value); } } |
|||
public string SearchProductItem { get => searchProductItem; set { SetProperty(ref searchProductItem, value); } } |
|||
public string SearchSpu { get => searchSpu; set { SetProperty(ref searchSpu, value); } } |
|||
public string SearchSku { get => searchSku; set { SetProperty(ref searchSku, value); } } |
|||
public string SearchPurchaseOrder { get => searchPurchaseOrder; set { SetProperty(ref searchPurchaseOrder, value); } } |
|||
|
|||
public IList<Product> ProductList { get; set; } |
|||
#endregion
|
|||
|
|||
#region ICommand
|
|||
public ICommand SearchCommand { get; set; } |
|||
public ICommand ProductPageIndexChangedCommand { get; set; } |
|||
public ICommand AddPurchaserOrderCommand { get; set; } |
|||
public ICommand EditPurchaseOrderCommand { get; set; } |
|||
public ICommand DeletePurchaseOrderCommand { get; set; } |
|||
public ICommand SavePurchaseOrderCommand { get; set; } |
|||
public ICommand SwitchStorageTypeCommand { get; set; } |
|||
#endregion
|
|||
|
|||
#region Method
|
|||
public WareStockViewModel(GlobalContext globalContext, PurchaseOrderService purchaseOrderService, ProductService productService) |
|||
{ |
|||
this.globalContext = globalContext; |
|||
this.purchaseOrderService = purchaseOrderService; |
|||
this.productService = productService; |
|||
ProductList = new ObservableCollection<Product>(); |
|||
|
|||
SearchCommand = new RelayCommand(() => |
|||
{ |
|||
PageIndex = 1; |
|||
Task.Factory.StartNew(() => LoadWare(1)); |
|||
}); |
|||
ProductPageIndexChangedCommand = new RelayCommand<SJ.Controls.PageArgs>((p) => Task.Factory.StartNew(() => LoadWare(p.PageIndex))); |
|||
SwitchStorageTypeCommand = new RelayCommand<StorageModel>(SwitchStorageType); |
|||
AddPurchaserOrderCommand = new RelayCommand<Product>(AddPurchaserOrder); |
|||
EditPurchaseOrderCommand = new RelayCommand<PurchaseOrder>(po => po.IsEdit = true); |
|||
DeletePurchaseOrderCommand = new RelayCommand<PurchaseOrder>(DeletePurchaseOrder); |
|||
SavePurchaseOrderCommand = new RelayCommand<PurchaseOrder>(SavePurchaseOrder); |
|||
Task.Factory.StartNew(() => LoadWare(1)); |
|||
} |
|||
|
|||
public override void Refresh() |
|||
{ |
|||
ProductList.Clear(); |
|||
ProductCount = 0; |
|||
PageSize = 1; |
|||
} |
|||
private void LoadWare(int pageIndex) |
|||
{ |
|||
if (!string.IsNullOrEmpty(SearchSpu) && !string.IsNullOrEmpty(SearchSku)) |
|||
{ |
|||
App.Current.Dispatcher.Invoke(() => MessageBox.Show("SPU和SKU条件不能共存")); |
|||
return; |
|||
} |
|||
|
|||
App.Current.Dispatcher.Invoke(() => ProductList.Clear()); |
|||
|
|||
IsLoading = true; |
|||
|
|||
#region 加载JD商品列表
|
|||
ApiResponse<ProductListResponse> productApiResponse = null; |
|||
if (!string.IsNullOrEmpty(SearchSku)) |
|||
{ |
|||
var skuResponse = productService.GetProductSkuList(string.Empty, SearchSku); |
|||
if (skuResponse.Success) |
|||
{ |
|||
if (skuResponse.Data.Count == 0) |
|||
{ |
|||
IsLoading = false; |
|||
return; |
|||
} |
|||
productApiResponse = productService.GetProductList(skuResponse.Data.Items[0].ProductId, string.Empty, string.Empty, pageIndex); |
|||
} |
|||
else |
|||
{ |
|||
IsLoading = false; |
|||
App.Current.Dispatcher.Invoke(() => MessageBox.Show(skuResponse.Msg, "加载sku")); |
|||
return; |
|||
} |
|||
} |
|||
else |
|||
{ |
|||
productApiResponse = productService.GetProductList(SearchSpu, string.Empty, SearchProductItem, pageIndex); |
|||
} |
|||
|
|||
if (!productApiResponse.Success) |
|||
{ |
|||
IsLoading = false; |
|||
App.Current.Dispatcher.Invoke(() => MessageBox.Show(productApiResponse.Msg, "加载产品")); |
|||
return; |
|||
} |
|||
var productList = productApiResponse.Data.Items; |
|||
ProductCount = productApiResponse.Data.Count; |
|||
if (ProductCount == 0) |
|||
{ |
|||
IsLoading = false; |
|||
return; |
|||
} |
|||
#endregion
|
|||
|
|||
#region 加载JDSKU列表
|
|||
var waitList = new List<EventWaitHandle>(); |
|||
foreach (var p in productList) |
|||
{ |
|||
var ewh = new ManualResetEvent(false); |
|||
waitList.Add(ewh); |
|||
Task.Factory.StartNew(() => LoadSku(p, ewh)); |
|||
} |
|||
WaitHandle.WaitAll(waitList.ToArray(), 8000); |
|||
#endregion
|
|||
|
|||
#region 加载采购单
|
|||
LoadPurchaseOrder(productList, StorageType.京仓); |
|||
#endregion
|
|||
|
|||
App.Current.Dispatcher.BeginInvoke((Action)delegate |
|||
{ |
|||
foreach (var p in productList) |
|||
ProductList.Add(p); |
|||
//使滚动条保持顶部
|
|||
//Messenger.Default.Send(string.Empty, "WareStock_ProductListScrollToTop");
|
|||
WeakReferenceMessenger.Default.Send(new Message_WareStock_ProductListScrollToTop(null)); |
|||
}); |
|||
|
|||
IsLoading = false; |
|||
} |
|||
|
|||
private void LoadSku(Product product, EventWaitHandle ewh) |
|||
{ |
|||
try |
|||
{ |
|||
var skuResponse = productService.GetProductSkuList(product.Id, string.Empty); |
|||
if (!skuResponse.Success) |
|||
{ |
|||
IsLoading = false; |
|||
App.Current.Dispatcher.Invoke(() => MessageBox.Show(skuResponse.Msg, "加载sku")); |
|||
return; |
|||
} |
|||
foreach (var sku in skuResponse.Data.Items) |
|||
{ |
|||
sku.StorageList.Add(new StorageModel() |
|||
{ |
|||
ProductId = product.Id, |
|||
SkuId = sku.Id, |
|||
StorageType = StorageType.京仓 |
|||
}); |
|||
sku.StorageList.Add(new StorageModel() |
|||
{ |
|||
ProductId = product.Id, |
|||
SkuId = sku.Id, |
|||
StorageType = StorageType.云仓 |
|||
}); |
|||
sku.StorageList.Add(new StorageModel() |
|||
{ |
|||
ProductId = product.Id, |
|||
SkuId = sku.Id, |
|||
StorageType = StorageType.本地自发 |
|||
}); |
|||
sku.SelectedStorageModel = sku.StorageList[0]; |
|||
} |
|||
product.SkuList = skuResponse.Data.Items; |
|||
} |
|||
catch (Exception ex) |
|||
{ |
|||
|
|||
} |
|||
finally |
|||
{ |
|||
ewh.Set(); |
|||
} |
|||
} |
|||
|
|||
private void LoadPurchaseOrder(IList<Product> productList, StorageType storageType) |
|||
{ |
|||
var skuList = new List<ProductSku>(); |
|||
foreach (var p in productList) |
|||
skuList.AddRange(p.SkuList); |
|||
LoadPurchaseOrder(skuList, storageType); |
|||
} |
|||
|
|||
private void LoadPurchaseOrder(IList<ProductSku> skuList, StorageType storageType) |
|||
{ |
|||
App.Current.Dispatcher.Invoke(() => |
|||
{ |
|||
foreach (var s in skuList) |
|||
s.PurchaseOrderList.Clear(); |
|||
}); |
|||
var response = purchaseOrderService.GetList(skuList.Select(s => s.Id).ToList(), storageType, globalContext.User.Shop.ShopId); |
|||
if (response.Success) |
|||
{ |
|||
var purchaseOrderList = response.Data; |
|||
App.Current.Dispatcher.Invoke(() => |
|||
{ |
|||
foreach (var s in skuList) |
|||
{ |
|||
var currentSkuPurchaseOrderList = purchaseOrderList.Where(po => po.SkuId == s.Id).Map<IList<PurchaseOrder>>(); |
|||
foreach (var po in currentSkuPurchaseOrderList) |
|||
s.PurchaseOrderList.Add(po); |
|||
} |
|||
}); |
|||
} |
|||
} |
|||
|
|||
private void SwitchStorageType(StorageModel storageModel) |
|||
{ |
|||
var product = ProductList.FirstOrDefault(p => p.Id == storageModel.ProductId); |
|||
var sku = product.SkuList.FirstOrDefault(s => s.Id == storageModel.SkuId); |
|||
if (sku.SelectedStorageModel == storageModel) |
|||
return; |
|||
sku.SelectedStorageModel = storageModel; |
|||
IsLoading = true; |
|||
Task.Factory.StartNew(() => |
|||
{ |
|||
LoadPurchaseOrder(new List<ProductSku>() { sku }, storageModel.StorageType); |
|||
IsLoading = false; |
|||
}); |
|||
} |
|||
|
|||
private void AddPurchaserOrder(Product product) |
|||
{ |
|||
foreach (var sku in product.SkuList) |
|||
sku.PurchaseOrderList.Add(new PurchaseOrder |
|||
{ |
|||
IsEdit = true, |
|||
SkuId = sku.Id, |
|||
ProductId = product.Id, |
|||
UserId = globalContext.User.Id, |
|||
StorageType = sku.SelectedStorageModel.StorageType, |
|||
PurchaseMethod = PurchaseMethod.线下采购, |
|||
CreateTime = DateTime.Now, |
|||
ShopId = globalContext.User.Shop.ShopId, |
|||
PurchasePlatform = Platform.阿里巴巴 |
|||
}); |
|||
} |
|||
|
|||
private void DeletePurchaseOrder(PurchaseOrder purchaseOrder) |
|||
{ |
|||
var product = ProductList.FirstOrDefault(p => p.Id == purchaseOrder.ProductId); |
|||
var sku = product.SkuList.FirstOrDefault(s => s.Id == purchaseOrder.SkuId); |
|||
if (purchaseOrder.Id == 0) |
|||
{ |
|||
sku.PurchaseOrderList.Remove(purchaseOrder); |
|||
} |
|||
else |
|||
{ |
|||
if (MessageBox.Show("确定要删除采购单吗?", "确认", MessageBoxButton.OKCancel) != MessageBoxResult.OK) |
|||
return; |
|||
IsLoading = true; |
|||
Task.Factory.StartNew(() => |
|||
{ |
|||
var response = purchaseOrderService.DeletePurchaseOrder(purchaseOrder.Id); |
|||
IsLoading = false; |
|||
App.Current.Dispatcher.BeginInvoke((Action)delegate |
|||
{ |
|||
if (response.Success) |
|||
sku.PurchaseOrderList.Remove(purchaseOrder); |
|||
else |
|||
MessageBox.Show(response.Msg, "删除采购单"); |
|||
}); |
|||
}); |
|||
} |
|||
} |
|||
|
|||
private void SavePurchaseOrder(PurchaseOrder purchaseOrder) |
|||
{ |
|||
if (purchaseOrder.PurchasePlatform == null || |
|||
string.IsNullOrEmpty(purchaseOrder.PurchaseOrderId) || |
|||
purchaseOrder.PurchaseQuantity == 0) |
|||
{ |
|||
MessageBox.Show("缺少必要信息", "保存采购单"); |
|||
return; |
|||
} |
|||
|
|||
if (purchaseOrder.RemainingQuantity > purchaseOrder.PurchaseQuantity) |
|||
{ |
|||
MessageBox.Show("剩余库存不成超过采购数量", "保存采购单"); |
|||
return; |
|||
} |
|||
|
|||
purchaseOrder.IsEdit = false; |
|||
var product = ProductList.FirstOrDefault(p => p.Id == purchaseOrder.ProductId); |
|||
var sku = product.SkuList.FirstOrDefault(s => s.Id == purchaseOrder.SkuId); |
|||
IsLoading = true; |
|||
Task.Factory.StartNew(() => |
|||
{ |
|||
var response = purchaseOrder.Id == 0 ? purchaseOrderService.AddPurchaseOrder(purchaseOrder) : |
|||
purchaseOrderService.EditPurchaseOrder(purchaseOrder); |
|||
IsLoading = false; |
|||
if (response.Success) |
|||
{ |
|||
if (purchaseOrder.Id == 0) |
|||
LoadPurchaseOrder(new List<ProductSku>() { sku }, purchaseOrder.StorageType.Value); |
|||
} |
|||
else |
|||
{ |
|||
App.Current.Dispatcher.Invoke(() => MessageBox.Show(response.Msg, "保存采购单")); |
|||
} |
|||
}); |
|||
} |
|||
#endregion
|
|||
} |
|||
} |
@ -0,0 +1,837 @@ |
|||
<Page x:Class="BBWYB.Client.Views.Order.OrderList" |
|||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" |
|||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" |
|||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" |
|||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008" |
|||
xmlns:cmodel="clr-namespace:BBWYB.Client.Models" |
|||
xmlns:local="clr-namespace:BBWYB.Client.Views.Order" |
|||
xmlns:c="clr-namespace:SJ.Controls;assembly=SJ.Controls" |
|||
xmlns:sys="clr-namespace:System;assembly=mscorlib" |
|||
xmlns:b="http://schemas.microsoft.com/xaml/behaviors" |
|||
mc:Ignorable="d" |
|||
xmlns:ctr="clr-namespace:BBWYB.Client.Converters" |
|||
DataContext="{Binding OrderVM,Source={StaticResource Locator}}" |
|||
d:DesignHeight="1080" d:DesignWidth="1920" |
|||
Title="OrderList"> |
|||
<Page.Resources> |
|||
<sys:Int32 x:Key="d0">0</sys:Int32> |
|||
<sys:Int32 x:Key="d1">1</sys:Int32> |
|||
<sys:Int32 x:Key="d3">2</sys:Int32> |
|||
<sys:Int32 x:Key="d7">6</sys:Int32> |
|||
<sys:Int32 x:Key="d15">14</sys:Int32> |
|||
<sys:Int32 x:Key="d30">29</sys:Int32> |
|||
<ctr:SaleGrossProfitConverter x:Key="sgpConverter"/> |
|||
</Page.Resources> |
|||
<Grid> |
|||
<c:RoundWaitProgress Play="{Binding IsLoading}" Panel.ZIndex="999"/> |
|||
<Grid Margin="5,0"> |
|||
<Grid.RowDefinitions> |
|||
<RowDefinition Height="auto"/> |
|||
<RowDefinition Height="5"/> |
|||
<RowDefinition Height="30"/> |
|||
<RowDefinition Height="5"/> |
|||
<RowDefinition Height="30"/> |
|||
<RowDefinition Height="5"/> |
|||
<RowDefinition/> |
|||
<RowDefinition Height="30"/> |
|||
</Grid.RowDefinitions> |
|||
|
|||
<Grid Background="{StaticResource Border.Background}" HorizontalAlignment="Left" Height="75" Panel.ZIndex="999"> |
|||
<Grid.ColumnDefinitions> |
|||
<ColumnDefinition/> |
|||
<ColumnDefinition Width="auto"/> |
|||
</Grid.ColumnDefinitions> |
|||
<Grid.RowDefinitions> |
|||
<RowDefinition Height="0.5*"/> |
|||
<RowDefinition Height="5"/> |
|||
<RowDefinition Height="0.5*"/> |
|||
</Grid.RowDefinitions> |
|||
<StackPanel Orientation="Horizontal" Margin="0,5,0,0" Height="30"> |
|||
<StackPanel.Resources> |
|||
<Style TargetType="DatePickerTextBox"> |
|||
<Setter Property="IsReadOnly" Value="True"/> |
|||
</Style> |
|||
</StackPanel.Resources> |
|||
<TextBlock Text="下单时间" VerticalAlignment="Center" Margin="5,0,0,0"/> |
|||
<DatePicker SelectedDate="{Binding StartDate}" Width="133.5" Height="30" VerticalContentAlignment="Center" FocusVisualStyle="{x:Null}" Margin="5,0,0,0"/> |
|||
<DatePicker SelectedDate="{Binding EndDate}" Width="133.5" Height="30" VerticalContentAlignment="Center" FocusVisualStyle="{x:Null}" Margin="5,0,0,0"/> |
|||
<TextBlock Text="订单号" VerticalAlignment="Center" Margin="5,0,0,0"/> |
|||
<c:BTextBox Width="150" Margin="5,0,0,0" Text="{Binding SearchOrderId}" WaterRemark="精确匹配"/> |
|||
<TextBlock Text="SPU" VerticalAlignment="Center" Margin="5,0,0,0"/> |
|||
<c:BTextBox Width="150" Margin="5,0,0,0" WaterRemark="精确匹配" Text="{Binding SearchProductId}"/> |
|||
<TextBlock Text="SKU" VerticalAlignment="Center" Margin="5,0,0,0"/> |
|||
<c:BTextBox Width="150" Margin="5,0,0,0" Text="{Binding SearchSku}" WaterRemark="精确匹配"/> |
|||
<!--<TextBlock Text="下单账号" VerticalAlignment="Center" Margin="5,0,0,0"/> |
|||
<c:BTextBox Width="150" Margin="5,0,0,0" WaterRemark="暂不支持" IsEnabled="False" |
|||
DisableBgColor="{StaticResource TextBox.Disable.BgColor}"/>--> |
|||
</StackPanel> |
|||
<StackPanel Orientation="Horizontal" Grid.Row="2" Margin="0,0,0,5" Height="30"> |
|||
<c:BButton Content="今天" Width="50" Height="25" Margin="5,0,0,0" |
|||
Command="{Binding SetSearchDateCommand}" |
|||
CommandParameter="{StaticResource d0}"/> |
|||
<c:BButton Content="昨天" Width="50" Height="25" Margin="5,0,0,0" |
|||
Command="{Binding SetSearchDateCommand}" |
|||
CommandParameter="{StaticResource d1}"/> |
|||
<c:BButton Content="近3天" Width="50" Height="25" Margin="5,0,0,0" |
|||
Command="{Binding SetSearchDateCommand}" |
|||
CommandParameter="{StaticResource d3}"/> |
|||
<c:BButton Content="近7天" Width="50" Height="24" Margin="5,0,0,0" |
|||
Command="{Binding SetSearchDateCommand}" |
|||
CommandParameter="{StaticResource d7}"/> |
|||
<c:BButton Content="近15天" Width="50" Height="25" Margin="5,0,0,0" |
|||
Command="{Binding SetSearchDateCommand}" |
|||
CommandParameter="{StaticResource d15}"/> |
|||
<c:BButton Content="近30天" Width="50" Height="25" Margin="5,0,0,0" |
|||
Command="{Binding SetSearchDateCommand}" |
|||
CommandParameter="{StaticResource d30}"/> |
|||
<TextBlock Text="采购单" VerticalAlignment="Center" Margin="5,0,0,0" |
|||
Visibility="{Binding Visibility,ElementName=listbox_order}"/> |
|||
<c:BTextBox Width="150" Margin="5,0,0,0" Text="{Binding SearchClientOrderId}" WaterRemark="精确匹配" |
|||
Visibility="{Binding Visibility,ElementName=listbox_order}"/> |
|||
<TextBlock VerticalAlignment="Center" Margin="5,0,0,0"> |
|||
<Run Text="下单"/> |
|||
<LineBreak/> |
|||
<Run Text="店铺"/> |
|||
</TextBlock> |
|||
<c:BTextBox Width="150" Margin="5,0,0,0" Text="{Binding SearchSourceShopName}" WaterRemark="精确匹配"/> |
|||
<TextBlock VerticalAlignment="Center" Margin="5,0,0,0"> |
|||
<Run Text="下单"/> |
|||
<LineBreak/> |
|||
<Run Text="SKU"/> |
|||
</TextBlock> |
|||
<c:BTextBox Width="150" Margin="5,0,0,0" Text="{Binding SearchSourceSku}" WaterRemark="精确匹配" Visibility="{Binding Visibility,ElementName=listbox_order}"/> |
|||
|
|||
<c:BButton Content="同步" Width="50" Margin="5,0,0,0" ToolTipService.InitialShowDelay="0" ToolTipService.ShowDuration="10000" |
|||
Visibility="Collapsed"> |
|||
<c:BButton.ToolTip> |
|||
<StackPanel> |
|||
<TextBlock Text="1.使用筛选条件中的开始时间和结束时间进行同步"/> |
|||
<TextBlock Text="2.从开始时间起每次同步3小时时长的订单直到到达结束时间"/> |
|||
<TextBlock Text="3.已存在未结束的同步任务将不会重复执行"/> |
|||
</StackPanel> |
|||
</c:BButton.ToolTip> |
|||
</c:BButton> |
|||
</StackPanel> |
|||
|
|||
<Grid Grid.Column="1" Grid.RowSpan="3"> |
|||
<Grid.ColumnDefinitions> |
|||
<ColumnDefinition/> |
|||
<ColumnDefinition/> |
|||
</Grid.ColumnDefinitions> |
|||
<Grid.RowDefinitions> |
|||
<RowDefinition/> |
|||
<RowDefinition/> |
|||
</Grid.RowDefinitions> |
|||
<Button Content="搜索" Width="50" VerticalAlignment="Stretch" Margin="5,0,0,0" Command="{Binding SearchOrderCommand}" |
|||
Grid.RowSpan="2" Background="{StaticResource Button.Selected.Background}" BorderThickness="0" Foreground="White"/> |
|||
<Button Content="导出" Command="{Binding ExportCommand}" Width="50" Grid.Column="1" |
|||
Background="#1CC2A2" BorderThickness="0" Foreground="White"/> |
|||
<Button Content="同步" Command="{Binding SyncOrderCommand}" Width="50" Grid.Column="1" Grid.Row="1" |
|||
Background="#02A7F0" BorderThickness="0" Foreground="White"/> |
|||
</Grid> |
|||
</Grid> |
|||
|
|||
<StackPanel Grid.Row="2" HorizontalAlignment="Left" Orientation="Horizontal"> |
|||
|
|||
<c:BButton Content="全部订单" Width="100" |
|||
Command="{Binding SetOrderStateCommand}" CommandParameter="{x:Null}" |
|||
Background="{Binding OrderState,Converter={StaticResource objConverter},ConverterParameter=#null:#8080FF:#F2F2F2}" |
|||
Foreground="{Binding OrderState,Converter={StaticResource objConverter},ConverterParameter=#null:White:#4A4A4A}"/> |
|||
<c:BButton Width="100" |
|||
Background="{Binding OrderState,Converter={StaticResource objConverter},ConverterParameter=等待采购:#8080FF:#F2F2F2}" |
|||
Foreground="{Binding OrderState,Converter={StaticResource objConverter},ConverterParameter=等待采购:White:#4A4A4A}" |
|||
Command="{Binding SetOrderStateCommand}" CommandParameter="{x:Static cmodel:OrderState.等待采购}"> |
|||
<c:BButton.Content> |
|||
<TextBlock> |
|||
<Run Text="等待采购"/> |
|||
<Run Text="{Binding WaitPurchaseOrderCount,Mode=OneWay,UpdateSourceTrigger=PropertyChanged}" |
|||
Foreground="{StaticResource Text.Pink}"/> |
|||
</TextBlock> |
|||
</c:BButton.Content> |
|||
</c:BButton> |
|||
<c:BButton Width="100" |
|||
Background="{Binding OrderState,Converter={StaticResource objConverter},ConverterParameter=待出库:#8080FF:#F2F2F2}" |
|||
Foreground="{Binding OrderState,Converter={StaticResource objConverter},ConverterParameter=待出库:White:#4A4A4A}" |
|||
Command="{Binding SetOrderStateCommand}" CommandParameter="{x:Static cmodel:OrderState.待出库}"> |
|||
<c:BButton.Content> |
|||
<TextBlock> |
|||
<Run Text="待出库"/> |
|||
<Run Text="{Binding WaitOutStoreCount,Mode=OneWay,UpdateSourceTrigger=PropertyChanged}" |
|||
Foreground="{StaticResource Text.Pink}"/> |
|||
</TextBlock> |
|||
</c:BButton.Content> |
|||
</c:BButton> |
|||
<c:BButton Content="待收货" Width="100" |
|||
Background="{Binding OrderState,Converter={StaticResource objConverter},ConverterParameter=待收货:#8080FF:#F2F2F2}" |
|||
Foreground="{Binding OrderState,Converter={StaticResource objConverter},ConverterParameter=待收货:White:#4A4A4A}" |
|||
Command="{Binding SetOrderStateCommand}" CommandParameter="{x:Static cmodel:OrderState.待收货}"/> |
|||
<c:BButton Content="已完成" Width="100" |
|||
Background="{Binding OrderState,Converter={StaticResource objConverter},ConverterParameter=已完成:#8080FF:#F2F2F2}" |
|||
Foreground="{Binding OrderState,Converter={StaticResource objConverter},ConverterParameter=已完成:White:#4A4A4A}" |
|||
Command="{Binding SetOrderStateCommand}" CommandParameter="{x:Static cmodel:OrderState.已完成}"/> |
|||
<c:BButton Content="已取消" Width="100" |
|||
Background="{Binding OrderState,Converter={StaticResource objConverter},ConverterParameter=已取消:#8080FF:#F2F2F2}" |
|||
Foreground="{Binding OrderState,Converter={StaticResource objConverter},ConverterParameter=已取消:White:#4A4A4A}" |
|||
Command="{Binding SetOrderStateCommand}" CommandParameter="{x:Static cmodel:OrderState.已取消}" |
|||
Visibility="{Binding IsSDGroup,ConverterParameter=true:Collapsed:Visible,Converter={StaticResource objConverter}}"/> |
|||
<!--<c:BButton Width="100" |
|||
Background="{Binding IncludeExceptionOrder,Converter={StaticResource objConverter},ConverterParameter=true:#8080FF:#F2F2F2}" |
|||
Foreground="{Binding IncludeExceptionOrder,Converter={StaticResource objConverter},ConverterParameter=true:White:#4A4A4A}" |
|||
Command="{Binding SetIncludeExceptionOrderCommand}" |
|||
Visibility="{Binding IsSDGroup,ConverterParameter=true:Collapsed:Visible,Converter={StaticResource objConverter}}"> |
|||
<c:BButton.Content> |
|||
<TextBlock> |
|||
<Run Text="异常单"/> |
|||
<Run Text="{Binding ExceptionOrderCount,Mode=OneWay,UpdateSourceTrigger=PropertyChanged}" |
|||
Foreground="{StaticResource Text.Pink}"/> |
|||
</TextBlock> |
|||
</c:BButton.Content> |
|||
</c:BButton>--> |
|||
</StackPanel> |
|||
|
|||
<Border x:Name="bd_statistics" Grid.RowSpan="3" HorizontalAlignment="Right" Padding="15,0" TextBlock.Foreground="{StaticResource Text.Color}"> |
|||
<Grid> |
|||
<Grid.ColumnDefinitions> |
|||
<ColumnDefinition Width="0.4*"/> |
|||
<ColumnDefinition Width="0.4*"/> |
|||
<ColumnDefinition Width="0.2*"/> |
|||
</Grid.ColumnDefinitions> |
|||
<Grid.RowDefinitions> |
|||
<RowDefinition Height="0.5*"/> |
|||
<RowDefinition Height="0.5*"/> |
|||
</Grid.RowDefinitions> |
|||
|
|||
<Grid Grid.ColumnSpan="3" Grid.RowSpan="2" Margin="-10,0"> |
|||
<Grid.Effect> |
|||
<DropShadowEffect BlurRadius="10" ShadowDepth="0" Direction="0" Color="#DCDCDC"/> |
|||
</Grid.Effect> |
|||
<Grid.RowDefinitions> |
|||
<RowDefinition Height="0.5*"/> |
|||
<RowDefinition Height="0.5*"/> |
|||
</Grid.RowDefinitions> |
|||
<Border Background="{StaticResource Button.Selected.Background}"> |
|||
|
|||
</Border> |
|||
<Border Background="white" Grid.Row="1"> |
|||
|
|||
</Border> |
|||
</Grid> |
|||
|
|||
<TextBlock VerticalAlignment="Center" Foreground="White"> |
|||
<Run Text="成交额"/> |
|||
<LineBreak/> |
|||
<Run Text="{Binding ToDayOrderAchievement.SaleAmount}" FontSize="24"/> |
|||
</TextBlock> |
|||
|
|||
<TextBlock Grid.Column="1" VerticalAlignment="Center" Foreground="White" Margin="10,0"> |
|||
<Run Text="利润至"/> |
|||
<Run Text="{Binding ToDayOrderAchievement.PularizeEndDate,StringFormat=yyyy-MM-dd}"/> |
|||
<LineBreak/> |
|||
<Run Text="{Binding ToDayOrderAchievement.Profit}" FontSize="24"/> |
|||
<Run Text="{Binding ToDayOrderAchievement.ProfitRaito,StringFormat=({0}%)}"/> |
|||
</TextBlock> |
|||
|
|||
<TextBlock Grid.Column="2" VerticalAlignment="Center" Foreground="White"> |
|||
<Run Text="总单量"/> |
|||
<LineBreak/> |
|||
<Run Text="{Binding ToDayOrderAchievement.OrderCount}" FontSize="24"/> |
|||
</TextBlock> |
|||
|
|||
<StackPanel Grid.Row="1" VerticalAlignment="Center"> |
|||
<StackPanel Orientation="Horizontal" Margin="0,0,0,5"> |
|||
<TextBlock> |
|||
<Run Text="货物成本"/> |
|||
<Run Text="{Binding ToDayOrderAchievement.PurchaseAmount}"/> |
|||
</TextBlock> |
|||
</StackPanel> |
|||
<TextBlock> |
|||
<Run Text="平台扣点"/> |
|||
<Run Text="{Binding ToDayOrderAchievement.PlatformCommissionAmount}"/> |
|||
</TextBlock> |
|||
</StackPanel> |
|||
|
|||
<StackPanel Grid.Row="1" Grid.Column="1" VerticalAlignment="Center" Margin="10,0"> |
|||
<StackPanel Orientation="Horizontal" Margin="0,0,0,5"> |
|||
<TextBlock> |
|||
<Run Text="推广成本"/> |
|||
<Run Text="{Binding ToDayOrderAchievement.AdvCost}"/> |
|||
</TextBlock> |
|||
<Path Style="{StaticResource path_question}" Fill="{StaticResource Text.Pink}" Width="14" Margin="5,0,0,0" |
|||
ToolTipService.InitialShowDelay="0" |
|||
ToolTipService.ShowDuration="20000"> |
|||
<Path.ToolTip> |
|||
<ToolTip Style="{StaticResource OrderCouponToolipStyle}"> |
|||
<StackPanel> |
|||
<ListBox ItemsSource="{Binding ToDayOrderAchievement.ShoppopularizeList}" |
|||
ItemContainerStyle="{StaticResource NoBgListBoxItemStyle}" |
|||
Style="{StaticResource NoScrollViewListBoxStyle}" |
|||
Foreground="{StaticResource Text.Color}"> |
|||
<ListBox.ItemTemplate> |
|||
<DataTemplate> |
|||
<TextBlock> |
|||
<Run Text="{Binding ItemName}"/> |
|||
<Run Text="{Binding Cost}"/> |
|||
</TextBlock> |
|||
</DataTemplate> |
|||
</ListBox.ItemTemplate> |
|||
</ListBox> |
|||
<TextBlock> |
|||
<Run Text="SD成本"/> |
|||
<Run Text="{Binding ToDayOrderAchievement.SdCost}"/> |
|||
</TextBlock> |
|||
</StackPanel> |
|||
</ToolTip> |
|||
</Path.ToolTip> |
|||
</Path> |
|||
</StackPanel> |
|||
<TextBlock> |
|||
<Run Text="人工成本"/> |
|||
<Run Text="{Binding ToDayOrderAchievement.EmployereCost}"/> |
|||
</TextBlock> |
|||
</StackPanel> |
|||
|
|||
<StackPanel Grid.Row="1" Grid.Column="2" VerticalAlignment="Center"> |
|||
<TextBlock Margin="0,0,0,5"> |
|||
<Run Text="销售运费"/> |
|||
<Run Text="{Binding ToDayOrderAchievement.DeliveryExpressFreight}"/> |
|||
</TextBlock> |
|||
<TextBlock> |
|||
<Run Text="税务成本"/> |
|||
<Run Text="{Binding ToDayOrderAchievement.TaxCost}"/> |
|||
</TextBlock> |
|||
</StackPanel> |
|||
</Grid> |
|||
</Border> |
|||
|
|||
<Border Grid.Row="4" Background="{StaticResource Border.Background}" |
|||
Visibility="{Binding Visibility,ElementName=listbox_order}"> |
|||
<StackPanel Orientation="Horizontal" > |
|||
<CheckBox Content="过滤已取消" Margin="5,0,0,0" IsChecked="{Binding ExcludeCanceled,Mode=OneWayToSource,UpdateSourceTrigger=PropertyChanged}"/> |
|||
</StackPanel> |
|||
</Border> |
|||
|
|||
<Grid Grid.Row="6"> |
|||
<Grid.RowDefinitions> |
|||
<RowDefinition Height="30"/> |
|||
<RowDefinition/> |
|||
</Grid.RowDefinitions> |
|||
<Border BorderBrush="{StaticResource Border.Brush}" BorderThickness="1,1,1,0" |
|||
Background="#F2F2F2"> |
|||
<Grid> |
|||
<Grid.ColumnDefinitions> |
|||
<ColumnDefinition Width="351"/> |
|||
<ColumnDefinition Width="80"/> |
|||
<ColumnDefinition/> |
|||
<ColumnDefinition/> |
|||
<ColumnDefinition/> |
|||
<ColumnDefinition/> |
|||
<ColumnDefinition/> |
|||
</Grid.ColumnDefinitions> |
|||
<TextBlock Text="商品信息" Style="{StaticResource middleTextBlock}"/> |
|||
<TextBlock Text="采购信息" Grid.Column="1" Style="{StaticResource middleTextBlock}"/> |
|||
<TextBlock Text="成本信息" Grid.Column="2" Style="{StaticResource middleTextBlock}"/> |
|||
<TextBlock Text="利润信息" Grid.Column="3" Style="{StaticResource middleTextBlock}"/> |
|||
<TextBlock Text="物流信息" Grid.Column="4" Style="{StaticResource middleTextBlock}"/> |
|||
<TextBlock Text="备注信息" Grid.Column="5" Style="{StaticResource middleTextBlock}"/> |
|||
<TextBlock Text="操作" Grid.Column="6" Style="{StaticResource middleTextBlock}"/> |
|||
|
|||
<Border Width="1" HorizontalAlignment="Right" Background="{StaticResource Border.Brush}"/> |
|||
<Border Width="1" HorizontalAlignment="Right" Background="{StaticResource Border.Brush}" Grid.Column="1"/> |
|||
<Border Width="1" HorizontalAlignment="Right" Background="{StaticResource Border.Brush}" Grid.Column="2"/> |
|||
<Border Width="1" HorizontalAlignment="Right" Background="{StaticResource Border.Brush}" Grid.Column="3"/> |
|||
<Border Width="1" HorizontalAlignment="Right" Background="{StaticResource Border.Brush}" Grid.Column="4"/> |
|||
<Border Width="1" HorizontalAlignment="Right" Background="{StaticResource Border.Brush}" Grid.Column="5"/> |
|||
<Border Width="1" HorizontalAlignment="Right" Background="{StaticResource Border.Brush}" Grid.Column="6"/> |
|||
</Grid> |
|||
</Border> |
|||
<ListBox x:Name="listbox_order" |
|||
Grid.Row="1" |
|||
ItemsSource="{Binding OrderList}" |
|||
ItemContainerStyle="{StaticResource NoBgListBoxItemStyle}" |
|||
BorderBrush="{StaticResource Border.Brush}" |
|||
BorderThickness="1,1,1,0" |
|||
Foreground="{StaticResource Text.Color}" |
|||
Visibility="{Binding IncludeAfterOrder,Converter={StaticResource objConverter},ConverterParameter=true:Collapsed:Visible}"> |
|||
<ListBox.ItemTemplate> |
|||
<DataTemplate> |
|||
<Grid Width="{Binding ActualWidth,ElementName=listbox_order,Converter={StaticResource widthConverter},ConverterParameter=-0}" |
|||
MinHeight="185"> |
|||
<Grid.RowDefinitions> |
|||
<RowDefinition Height="30"/> |
|||
<RowDefinition/> |
|||
</Grid.RowDefinitions> |
|||
<Grid Background="#F2F2F2" Grid.ColumnSpan="2"> |
|||
<StackPanel Orientation="Horizontal"> |
|||
<TextBlock Text="{Binding OrderStartTime,StringFormat=yyyy-MM-dd HH:mm:ss}" VerticalAlignment="Center" Margin="5,0,0,0"/> |
|||
<TextBlock VerticalAlignment="Center" Text="订单号:" Margin="5,0,0,0" /> |
|||
<c:BButton Content="{Binding Id}" Style="{StaticResource LinkButton}" |
|||
Command="{Binding DataContext.CopyTextCommand,RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type ListBox}}}" |
|||
CommandParameter="{Binding Id}" Margin="5,0,0,0"/> |
|||
<c:BButton x:Name="btn_orderState" Content="{Binding OrderState}" Margin="5,0,0,0" Height="25" Padding="5,0" Background="{StaticResource Text.Link.Color}"/> |
|||
<Border Width="1" Margin="5,5,0,5" Background="{StaticResource Border.Brush}"/> |
|||
<StackPanel x:Name="txt_consignee" Margin="5,0,0,0" Orientation="Horizontal" VerticalAlignment="Center"> |
|||
<TextBlock Text="收货人:"/> |
|||
<TextBox Text="{Binding Consignee.ContactName}" Foreground="{StaticResource Text.Color}" |
|||
IsReadOnly="True" Background="Transparent" BorderThickness="0"/> |
|||
<TextBlock Text="联系电话:" Margin="5,0,0,0"/> |
|||
<TextBox Text="{Binding Consignee.Mobile}" Foreground="{StaticResource Text.Color}" |
|||
IsReadOnly="True" Background="Transparent" BorderThickness="0"/> |
|||
</StackPanel> |
|||
</StackPanel> |
|||
<Border VerticalAlignment="Bottom" Height="1" Background="{StaticResource Border.Brush}"/> |
|||
</Grid> |
|||
<Grid Grid.Row="1"> |
|||
<Grid.ColumnDefinitions> |
|||
<ColumnDefinition Width="350"/> |
|||
<ColumnDefinition Width="80"/> |
|||
<ColumnDefinition/> |
|||
<ColumnDefinition/> |
|||
<ColumnDefinition/> |
|||
<ColumnDefinition/> |
|||
<!--<ColumnDefinition/>--> |
|||
<ColumnDefinition/> |
|||
</Grid.ColumnDefinitions> |
|||
|
|||
<ListBox x:Name="listbox_orerSku" ItemsSource="{Binding ItemList}" |
|||
Style="{StaticResource NoScrollViewListBoxStyle}" |
|||
ItemContainerStyle="{StaticResource NoBgListBoxItemStyle}"> |
|||
<ListBox.ItemTemplate> |
|||
<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" |
|||
Cursor="Hand"/> |
|||
|
|||
<StackPanel Grid.Column="1" Orientation="Vertical" Margin="0,5,0,5"> |
|||
<TextBlock TextTrimming="CharacterEllipsis"> |
|||
<TextBlock.ToolTip> |
|||
<ToolTip Style="{StaticResource OrderCouponToolipStyle}"> |
|||
<TextBlock Text="{Binding Title}"/> |
|||
</ToolTip> |
|||
</TextBlock.ToolTip> |
|||
<Run Text="SKU名称:"/> |
|||
<Run Text="{Binding Title}"/> |
|||
</TextBlock> |
|||
<TextBlock TextWrapping="Wrap"> |
|||
<Run Text="单价:"/> |
|||
<Run Text="{Binding Price}"/> |
|||
</TextBlock> |
|||
<TextBlock TextWrapping="Wrap"> |
|||
<Run Text="数量:"/> |
|||
<Run Text="{Binding ItemTotal}"/> |
|||
</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> |
|||
</StackPanel> |
|||
</StackPanel> |
|||
</StackPanel> |
|||
<Border Grid.ColumnSpan="2" VerticalAlignment="Bottom" Height="1" Background="{StaticResource Border.Brush}" |
|||
DataContext="{Binding DataContext,RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type ListBox}}}" |
|||
Visibility="{Binding ItemList.Count,Converter={StaticResource objConverter},ConverterParameter=1:Collapsed:Visible}"/> |
|||
</Grid> |
|||
</DataTemplate> |
|||
</ListBox.ItemTemplate> |
|||
</ListBox> |
|||
|
|||
<Border Width="1" Background="{StaticResource Border.Brush}" Grid.Column="2" HorizontalAlignment="Right"/> |
|||
<Border Width="1" Background="{StaticResource Border.Brush}" Grid.Column="3" HorizontalAlignment="Right"/> |
|||
<Border Width="1" Background="{StaticResource Border.Brush}" Grid.Column="4" HorizontalAlignment="Right"/> |
|||
<Border Width="1" Background="{StaticResource Border.Brush}" Grid.Column="5" HorizontalAlignment="Right"/> |
|||
<Border Width="1" Background="{StaticResource Border.Brush}" Grid.Column="6" HorizontalAlignment="Right"/> |
|||
|
|||
<Border x:Name="bd_costbg" Background="#FCECEE" Grid.Column="3" |
|||
Visibility="{Binding IsCostException,ConverterParameter=true:Visible:Collapsed,Converter={StaticResource objConverter}}" Margin="0,0,1,0"/> |
|||
<StackPanel Grid.Column="3" VerticalAlignment="Center" HorizontalAlignment="Center" Margin="0,0,0,10"> |
|||
<StackPanel Orientation="Horizontal"> |
|||
<TextBlock> |
|||
<Run Text="实收金额"/> |
|||
<Run Text="{Binding ActualAmount,Mode=OneWay,UpdateSourceTrigger=PropertyChanged}"/> |
|||
</TextBlock> |
|||
<Path Style="{StaticResource path_question}" |
|||
Width="14" Margin="5,0,0,0" Fill="{StaticResource Text.Pink}" ToolTipService.InitialShowDelay="0"> |
|||
<Path.ToolTip> |
|||
<ToolTip Style="{StaticResource OrderCouponToolipStyle}"> |
|||
<StackPanel> |
|||
<TextBlock> |
|||
<Run Text="货款金额"/> |
|||
<Run Text="{Binding OrderSellerPrice}"/> |
|||
</TextBlock> |
|||
<TextBlock> |
|||
<Run Text="用户支付运费"/> |
|||
<Run Text="{Binding FreightPrice}"/> |
|||
</TextBlock> |
|||
</StackPanel> |
|||
</ToolTip> |
|||
</Path.ToolTip> |
|||
</Path> |
|||
</StackPanel> |
|||
|
|||
<TextBlock Visibility="{Binding StorageType,ConverterParameter=SD:Visible:Collapsed,Converter={StaticResource objConverter}}"> |
|||
<Run Text="实付金额"/> |
|||
<Run Text="{Binding OrderPayment,Mode=OneWay,UpdateSourceTrigger=PropertyChanged}"/> |
|||
</TextBlock> |
|||
|
|||
<StackPanel x:Name="sp_orderCoupon" Orientation="Horizontal"> |
|||
<TextBlock> |
|||
<Run Text="优惠金额"/> |
|||
<Run Text="{Binding PreferentialAmount}"/> |
|||
</TextBlock> |
|||
|
|||
<Path Style="{StaticResource path_question}" Width="14" Margin="5,0,0,0" Fill="{StaticResource Text.Pink}" ToolTipService.InitialShowDelay="0"> |
|||
<Path.ToolTip> |
|||
<ToolTip Style="{StaticResource OrderCouponToolipStyle}"> |
|||
<ListBox ItemsSource="{Binding OrderCouponList}" |
|||
Style="{StaticResource NoScrollViewListBoxStyle}" Foreground="{StaticResource Text.Color}"> |
|||
<ListBox.ItemTemplate> |
|||
<DataTemplate> |
|||
<TextBlock> |
|||
<Run Text="{Binding CouponType}"/> |
|||
<Run Text="{Binding CouponPrice,StringFormat=¥{0}}"/> |
|||
</TextBlock> |
|||
</DataTemplate> |
|||
</ListBox.ItemTemplate> |
|||
</ListBox> |
|||
</ToolTip> |
|||
</Path.ToolTip> |
|||
</Path> |
|||
</StackPanel> |
|||
|
|||
<StackPanel x:Name="sp_purchaseAmount" Orientation="Horizontal"> |
|||
<TextBlock> |
|||
<Run Text="采购成本"/> |
|||
<Run Text="{Binding OrderCost.PurchaseAmount}"/> |
|||
</TextBlock> |
|||
|
|||
<Path x:Name="path_purchaseAmount_question" |
|||
Style="{StaticResource path_question}" |
|||
Width="14" Margin="5,0,0,0" Fill="{StaticResource Text.Pink}" |
|||
ToolTipService.InitialShowDelay="0" |
|||
ToolTipService.ShowDuration="20000"> |
|||
<Path.ToolTip> |
|||
<ToolTip Style="{StaticResource OrderCouponToolipStyle}"> |
|||
<Grid> |
|||
<Grid.RowDefinitions> |
|||
<RowDefinition/> |
|||
<RowDefinition/> |
|||
<RowDefinition/> |
|||
<RowDefinition/> |
|||
</Grid.RowDefinitions> |
|||
<TextBlock x:Name="txt_isManualed" Text="该订单成本经过手动编辑" |
|||
Style="{StaticResource middleTextBlock}" |
|||
Foreground="Red" |
|||
Visibility="{Binding OrderCost.IsManualEdited,Converter={StaticResource objConverter},ConverterParameter=true:Visible:Collapsed}"/> |
|||
<ListBox Grid.Row="1" |
|||
ItemsSource="{Binding OrderCostDetailGroupList}" |
|||
Style="{StaticResource NoScrollViewListBoxStyle}" |
|||
ItemContainerStyle="{StaticResource NoBgListBoxItemStyle}" |
|||
Foreground="{StaticResource Text.Color}"> |
|||
<ListBox.ItemTemplate> |
|||
<DataTemplate> |
|||
<Grid> |
|||
<Grid.RowDefinitions> |
|||
<RowDefinition Height="20"/> |
|||
<RowDefinition/> |
|||
<RowDefinition/> |
|||
</Grid.RowDefinitions> |
|||
<TextBlock Text="{Binding SkuId,StringFormat=SKU {0}}" VerticalAlignment="Center"/> |
|||
|
|||
<Grid Grid.Row="1"> |
|||
<Grid.ColumnDefinitions> |
|||
<ColumnDefinition Width="120"/> |
|||
<ColumnDefinition Width="60"/> |
|||
<ColumnDefinition Width="60"/> |
|||
<ColumnDefinition Width="60"/> |
|||
<ColumnDefinition Width="60"/> |
|||
<ColumnDefinition Width="60"/> |
|||
<ColumnDefinition Width="60"/> |
|||
<ColumnDefinition Width="60"/> |
|||
<ColumnDefinition Width="60"/> |
|||
<ColumnDefinition Width="60"/> |
|||
<ColumnDefinition Width="80"/> |
|||
</Grid.ColumnDefinitions> |
|||
<Grid.RowDefinitions> |
|||
<RowDefinition Height="25"/> |
|||
<RowDefinition Height="25"/> |
|||
</Grid.RowDefinitions> |
|||
<Grid Background="{StaticResource Border.Background}" Grid.RowSpan="2"> |
|||
<TextBlock Text="库存流水" Style="{StaticResource middleTextBlock}"/> |
|||
</Grid> |
|||
<Grid Background="{StaticResource Border.Background}" Grid.Column="1" Grid.ColumnSpan="2"> |
|||
<TextBlock Text="商品成本" Style="{StaticResource middleTextBlock}"/> |
|||
</Grid> |
|||
<Grid Background="{StaticResource Border.Background}" Grid.Column="3" Grid.ColumnSpan="6"> |
|||
<TextBlock Text="期间成本" Style="{StaticResource middleTextBlock}"/> |
|||
</Grid> |
|||
<Grid Background="{StaticResource Border.Background}" Grid.Column="9" Grid.RowSpan="2"> |
|||
<TextBlock Text="小计成本" Style="{StaticResource middleTextBlock}"/> |
|||
</Grid> |
|||
<Grid Background="{StaticResource Border.Background}" Grid.Column="10" Grid.RowSpan="2"> |
|||
<TextBlock Text="扣减时间" Style="{StaticResource middleTextBlock}"/> |
|||
</Grid> |
|||
<Grid Background="{StaticResource Border.Background}" Grid.Column="1" Grid.Row="1"> |
|||
<TextBlock Text="货款成本" Style="{StaticResource middleTextBlock}"/> |
|||
</Grid> |
|||
<Grid Background="{StaticResource Border.Background}" Grid.Column="2" Grid.Row="1"> |
|||
<TextBlock Text="采购运费" Style="{StaticResource middleTextBlock}"/> |
|||
</Grid> |
|||
<Grid Background="{StaticResource Border.Background}" Grid.Column="3" Grid.Row="1"> |
|||
<TextBlock Text="头程费" Style="{StaticResource middleTextBlock}"/> |
|||
</Grid> |
|||
<Grid Background="{StaticResource Border.Background}" Grid.Column="4" Grid.Row="1"> |
|||
<TextBlock Text="打包耗材" Style="{StaticResource middleTextBlock}"/> |
|||
</Grid> |
|||
<Grid Background="{StaticResource Border.Background}" Grid.Column="5" Grid.Row="1"> |
|||
<TextBlock Text="快递费" Style="{StaticResource middleTextBlock}"/> |
|||
</Grid> |
|||
<Grid Background="{StaticResource Border.Background}" Grid.Column="6" Grid.Row="1"> |
|||
<TextBlock Text="入库操作" Style="{StaticResource middleTextBlock}"/> |
|||
</Grid> |
|||
<Grid Background="{StaticResource Border.Background}" Grid.Column="7" Grid.Row="1"> |
|||
<TextBlock Text="出库操作" Style="{StaticResource middleTextBlock}"/> |
|||
</Grid> |
|||
<Grid Background="{StaticResource Border.Background}" Grid.Column="8" Grid.Row="1"> |
|||
<TextBlock Text="仓储费" Style="{StaticResource middleTextBlock}"/> |
|||
</Grid> |
|||
|
|||
<Border Grid.RowSpan="2" Grid.ColumnSpan="11" BorderBrush="{StaticResource Border.Brush}" BorderThickness="1"/> |
|||
<Border Width="1" HorizontalAlignment="Right" Grid.RowSpan="2" Background="{StaticResource Border.Brush}"/> |
|||
<Border Width="1" HorizontalAlignment="Right" Grid.Column="1" Grid.Row="1" Background="{StaticResource Border.Brush}"/> |
|||
<Border Width="1" HorizontalAlignment="Right" Grid.Column="2" Grid.RowSpan="2" Background="{StaticResource Border.Brush}"/> |
|||
<Border Width="1" HorizontalAlignment="Right" Grid.Column="3" Grid.Row="1" Background="{StaticResource Border.Brush}"/> |
|||
<Border Width="1" HorizontalAlignment="Right" Grid.Column="4" Grid.Row="1" Background="{StaticResource Border.Brush}"/> |
|||
<Border Width="1" HorizontalAlignment="Right" Grid.Column="5" Grid.Row="1" Background="{StaticResource Border.Brush}"/> |
|||
<Border Width="1" HorizontalAlignment="Right" Grid.Column="6" Grid.Row="1" Background="{StaticResource Border.Brush}"/> |
|||
<Border Width="1" HorizontalAlignment="Right" Grid.Column="7" Grid.Row="1" Background="{StaticResource Border.Brush}"/> |
|||
<Border Width="1" HorizontalAlignment="Right" Grid.Column="8" Grid.RowSpan="2" Background="{StaticResource Border.Brush}"/> |
|||
<Border Width="1" HorizontalAlignment="Right" Grid.Column="9" Grid.RowSpan="2" Background="{StaticResource Border.Brush}"/> |
|||
<Border Height="1" VerticalAlignment="Bottom" Grid.Column="1" Grid.ColumnSpan="8" Background="{StaticResource Border.Brush}"/> |
|||
</Grid> |
|||
<ListBox Grid.Row="2" |
|||
BorderBrush="{StaticResource Border.Brush}" |
|||
BorderThickness="1,0,1,0" |
|||
Style="{StaticResource NoScrollViewListBoxStyle}" |
|||
ItemContainerStyle="{StaticResource NoBgListBoxItemStyle}" |
|||
ItemsSource="{Binding Items}"> |
|||
<ListBox.ItemTemplate> |
|||
<DataTemplate> |
|||
<Grid Height="25"> |
|||
<Grid.ColumnDefinitions> |
|||
<ColumnDefinition Width="120"/> |
|||
<ColumnDefinition Width="60"/> |
|||
<ColumnDefinition Width="60"/> |
|||
<ColumnDefinition Width="60"/> |
|||
<ColumnDefinition Width="60"/> |
|||
<ColumnDefinition Width="60"/> |
|||
<ColumnDefinition Width="60"/> |
|||
<ColumnDefinition Width="60"/> |
|||
<ColumnDefinition Width="60"/> |
|||
<ColumnDefinition Width="60"/> |
|||
<ColumnDefinition Width="80"/> |
|||
</Grid.ColumnDefinitions> |
|||
<TextBlock Text="{Binding PurchaseOrderPKId}" Style="{StaticResource middleTextBlock}"/> |
|||
<TextBlock Text="{Binding SkuAmount}" Grid.Column="1" Style="{StaticResource middleTextBlock}" |
|||
Visibility="{Binding SkuAmount,ConverterParameter=0|0.0|0.00:Collapsed:Visible,Converter={StaticResource objConverter}}"/> |
|||
<TextBlock Text="{Binding PurchaseFreight}" Grid.Column="2" Style="{StaticResource middleTextBlock}" |
|||
Visibility="{Binding PurchaseFreight,ConverterParameter=0|0.0|0.00:Collapsed:Visible,Converter={StaticResource objConverter}}"/> |
|||
<TextBlock Text="{Binding FirstFreight}" Grid.Column="3" Style="{StaticResource middleTextBlock}" |
|||
Visibility="{Binding FirstFreight,ConverterParameter=0|0.0|0.00:Collapsed:Visible,Converter={StaticResource objConverter}}"/> |
|||
<TextBlock Text="{Binding ConsumableAmount}" Grid.Column="4" Style="{StaticResource middleTextBlock}" |
|||
Visibility="{Binding ConsumableAmount,ConverterParameter=0|0.0|0.00:Collapsed:Visible,Converter={StaticResource objConverter}}"/> |
|||
<TextBlock Text="{Binding DeliveryExpressFreight}" Grid.Column="5" Style="{StaticResource middleTextBlock}" |
|||
Visibility="{Binding DeliveryExpressFreight,ConverterParameter=0|0.0|0.00:Collapsed:Visible,Converter={StaticResource objConverter}}"/> |
|||
<TextBlock Text="{Binding InStorageAmount}" Grid.Column="6" Style="{StaticResource middleTextBlock}" |
|||
Visibility="{Binding InStorageAmount,ConverterParameter=0|0.0|0.00:Collapsed:Visible,Converter={StaticResource objConverter}}"/> |
|||
<TextBlock Text="{Binding OutStorageAmount}" Grid.Column="7" Style="{StaticResource middleTextBlock}" |
|||
Visibility="{Binding OutStorageAmount,ConverterParameter=0|0.0|0.00:Collapsed:Visible,Converter={StaticResource objConverter}}"/> |
|||
<TextBlock Text="{Binding StorageAmount}" Grid.Column="8" Style="{StaticResource middleTextBlock}" |
|||
Visibility="{Binding StorageAmount,ConverterParameter=0|0.0|0.00:Collapsed:Visible,Converter={StaticResource objConverter}}"/> |
|||
<TextBlock Text="{Binding TotalCost2,Mode=OneWay,UpdateSourceTrigger=PropertyChanged}" Grid.Column="9" Style="{StaticResource middleTextBlock}"/> |
|||
<TextBlock Text="{Binding CreateTime,StringFormat=yyyy-MM-dd}" Grid.Column="10" Style="{StaticResource middleTextBlock}"/> |
|||
<Border Width="1" HorizontalAlignment="Right" Background="{StaticResource Border.Brush}"/> |
|||
<Border Grid.Column="1" Width="1" HorizontalAlignment="Right" Background="{StaticResource Border.Brush}" Margin="0,0,-1,0"/> |
|||
<Border Grid.Column="2" Width="1" HorizontalAlignment="Right" Background="{StaticResource Border.Brush}" Margin="0,0,-1,0"/> |
|||
<Border Grid.Column="3" Width="1" HorizontalAlignment="Right" Background="{StaticResource Border.Brush}" Margin="0,0,-1,0"/> |
|||
<Border Grid.Column="4" Width="1" HorizontalAlignment="Right" Background="{StaticResource Border.Brush}" Margin="0,0,-1,0"/> |
|||
<Border Grid.Column="5" Width="1" HorizontalAlignment="Right" Background="{StaticResource Border.Brush}" Margin="0,0,-1,0"/> |
|||
<Border Grid.Column="6" Width="1" HorizontalAlignment="Right" Background="{StaticResource Border.Brush}" Margin="0,0,-1,0"/> |
|||
<Border Grid.Column="7" Width="1" HorizontalAlignment="Right" Background="{StaticResource Border.Brush}" Margin="0,0,-1,0"/> |
|||
<Border Grid.Column="8" Width="1" HorizontalAlignment="Right" Background="{StaticResource Border.Brush}" Margin="0,0,-1,0"/> |
|||
<Border Grid.Column="9" Width="1" HorizontalAlignment="Right" Background="{StaticResource Border.Brush}" Margin="0,0,-1,0"/> |
|||
<Border Height="1" VerticalAlignment="Bottom" Grid.ColumnSpan="11" Background="{StaticResource Border.Brush}"/> |
|||
</Grid> |
|||
</DataTemplate> |
|||
</ListBox.ItemTemplate> |
|||
</ListBox> |
|||
</Grid> |
|||
</DataTemplate> |
|||
</ListBox.ItemTemplate> |
|||
</ListBox> |
|||
</Grid> |
|||
</ToolTip> |
|||
</Path.ToolTip> |
|||
</Path> |
|||
</StackPanel> |
|||
|
|||
<TextBlock> |
|||
<Run Text="平台扣点"/> |
|||
<Run Text="{Binding OrderCost.PlatformCommissionAmount}"/> |
|||
<Run Text="{Binding OrderCost.PlatformCommissionRatio,StringFormat=({0:P})}"/> |
|||
</TextBlock> |
|||
|
|||
<TextBlock> |
|||
<Run Text="成本总计"/> |
|||
<Run Text="{Binding OrderCost.TotalCost,Mode=OneWay}"/> |
|||
</TextBlock> |
|||
</StackPanel> |
|||
<Border Height="1" Background="{StaticResource Border.Brush}" Grid.Column="3" VerticalAlignment="Bottom" Margin="0,0,0,23" |
|||
Visibility="{Binding Visibility,ElementName=btn_editCost}"/> |
|||
<c:BButton x:Name="btn_editCost" Content="修改" Grid.Column="3" VerticalAlignment="Bottom" |
|||
Foreground="{StaticResource Text.Color}" |
|||
HorizontalAlignment="Stretch" |
|||
Background="White" |
|||
Margin="0,0,1,0" |
|||
Command="{Binding DataContext.EditCostCommand,RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type Page}}}" |
|||
CommandParameter="{Binding }" |
|||
Visibility="{Binding StorageType,Converter={StaticResource objConverter},ConverterParameter=#null:Collapsed:Visible}" |
|||
Height="23"/> |
|||
|
|||
<StackPanel Grid.Column="4" VerticalAlignment="Center" HorizontalAlignment="Center"> |
|||
<TextBlock> |
|||
<Run Text="毛利"/> |
|||
<Run Text="{Binding OrderCost.Profit}"/> |
|||
</TextBlock> |
|||
<TextBlock> |
|||
<Run Text="销售毛利率"/> |
|||
<Run> |
|||
<Run.Text> |
|||
<MultiBinding Converter="{StaticResource sgpConverter}"> |
|||
<Binding Path="OrderCost.Profit"/> |
|||
<Binding Path="ActualAmount" Mode="OneWay"/> |
|||
</MultiBinding> |
|||
</Run.Text> |
|||
</Run> |
|||
</TextBlock> |
|||
<TextBlock> |
|||
<Run Text="成本毛利率"/> |
|||
<Run Text="{Binding OrderCost.ProfitRatio,StringFormat=\{0\}%}"/> |
|||
</TextBlock> |
|||
</StackPanel> |
|||
|
|||
<Border Background="{StaticResource Border.Background}" Margin="0,0,1,0" |
|||
Grid.Column="4" |
|||
Visibility="{Binding DataContext.IsSDGroup,RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type UserControl}},ConverterParameter=true:Visible:Collapsed,Converter={StaticResource objConverter}}"/> |
|||
|
|||
<Grid x:Name="sp_store" Grid.Column="5"> |
|||
<StackPanel VerticalAlignment="Center" HorizontalAlignment="Center"> |
|||
<TextBlock x:Name="txt_storeName" |
|||
Text="{Binding StoreName}" |
|||
TextWrapping="Wrap" |
|||
HorizontalAlignment="Center" |
|||
Visibility="{Binding StoreName,Converter={StaticResource objConverter},ConverterParameter=#null|0:Collapsed:Visible}"/> |
|||
<StackPanel x:Name="sp_waybill" Orientation="Horizontal"> |
|||
<TextBlock Text="{Binding WaybillNo,Converter={StaticResource waybillConverter}}"/> |
|||
<c:BButton x:Name="btn_waybillCopy" Style="{StaticResource LinkButton}" |
|||
Content="复制" |
|||
Command="{Binding DataContext.CopyOrderWaybillCommand,RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type ListBox}}}" |
|||
CommandParameter="{Binding }" Margin="5,0,0,0"/> |
|||
</StackPanel> |
|||
</StackPanel> |
|||
<c:BButton x:Name="btn_outStore" Content="出库" VerticalAlignment="Bottom" |
|||
Foreground="{StaticResource Text.Color}" |
|||
HorizontalAlignment="Stretch" |
|||
Background="White" |
|||
Margin="0,0,1,0" |
|||
Height="25" |
|||
Visibility="{Binding OrderState,Converter={StaticResource objConverter},ConverterParameter=待出库:Visible:Collapsed}" |
|||
Command="{Binding DataContext.OutStockCommand,RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type ListBox}}}" |
|||
CommandParameter="{Binding }"/> |
|||
<Border Height="1" Background="{StaticResource Border.Brush}" VerticalAlignment="Bottom" Margin="0,0,0,25" |
|||
Visibility="{Binding Visibility,ElementName=btn_outStore}"/> |
|||
</Grid> |
|||
|
|||
<StackPanel Orientation="Vertical" Grid.Column="6" Margin="5,5,5,0"> |
|||
<StackPanel x:Name="sp_buyerRemark"> |
|||
<StackPanel Orientation="Horizontal"> |
|||
<TextBlock Text="买家备注"/> |
|||
<c:BButton Content="复制" Style="{StaticResource LinkButton}" Margin="5,0,0,0" |
|||
Command="{Binding DataContext.CopyTextCommand,RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type ListBox}}}" |
|||
CommandParameter="{Binding BuyerRemark}"/> |
|||
</StackPanel> |
|||
<TextBlock Text="{Binding BuyerRemark}" TextWrapping="Wrap"/> |
|||
</StackPanel> |
|||
|
|||
<StackPanel x:Name="sp_venderRemark" Margin="0,5,0,0"> |
|||
<StackPanel Orientation="Horizontal"> |
|||
<TextBlock Text="商家备注"/> |
|||
<c:BButton x:Name="btn_copyVenderRemark" Content="复制" Style="{StaticResource LinkButton}" Margin="5,0,0,0" |
|||
Command="{Binding DataContext.CopyTextCommand,RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type ListBox}}}" |
|||
CommandParameter="{Binding VenderRemark}"/> |
|||
<c:BButton Content="修改" Style="{StaticResource LinkButton}" Margin="5,0,0,0" |
|||
Command="{Binding DataContext.EditVenderRemarkCommand,RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type ListBox}}}" |
|||
CommandParameter="{Binding }"/> |
|||
</StackPanel> |
|||
</StackPanel> |
|||
</StackPanel> |
|||
</Grid> |
|||
<Border Grid.Row="1" VerticalAlignment="Bottom" Height="1" Background="{StaticResource Border.Brush}"/> |
|||
</Grid> |
|||
<DataTemplate.Triggers> |
|||
<DataTrigger Binding="{Binding WaybillNo}" Value=""> |
|||
<Setter TargetName="sp_waybill" Property="Visibility" Value="Collapsed"/> |
|||
</DataTrigger> |
|||
<DataTrigger Binding="{Binding BuyerRemark}" Value=""> |
|||
<Setter TargetName="sp_buyerRemark" Property="Visibility" Value="Collapsed"/> |
|||
</DataTrigger> |
|||
<DataTrigger Binding="{Binding VenderRemark}" Value=""> |
|||
<Setter TargetName="btn_copyVenderRemark" Property="Visibility" Value="Collapsed"/> |
|||
</DataTrigger> |
|||
<DataTrigger Binding="{Binding PreferentialAmount}" Value="0"> |
|||
<Setter TargetName="sp_orderCoupon" Property="Visibility" Value="Collapsed"/> |
|||
</DataTrigger> |
|||
<DataTrigger Binding="{Binding OrderCost.PurchaseAmount}" Value="0"> |
|||
<Setter TargetName="path_purchaseAmount_question" Property="Visibility" Value="Collapsed"/> |
|||
</DataTrigger> |
|||
<DataTrigger Binding="{Binding OrderState}" Value="已取消"> |
|||
<Setter TargetName="btn_orderState" Property="Background" Value="#EC808D"/> |
|||
</DataTrigger> |
|||
</DataTemplate.Triggers> |
|||
</DataTemplate> |
|||
</ListBox.ItemTemplate> |
|||
</ListBox> |
|||
</Grid> |
|||
|
|||
<c:PageControl PageIndex="{Binding PageIndex}" |
|||
PageSize="{Binding PageSize}" |
|||
RecordCount="{Binding OrderCount}" |
|||
Grid.Row="7" |
|||
HorizontalAlignment="Left"> |
|||
<b:Interaction.Triggers> |
|||
<b:EventTrigger EventName="OnPageIndexChanged"> |
|||
<b:InvokeCommandAction Command="{Binding OrderPageIndexChangedCommand}" PassEventArgsToCommand="True"/> |
|||
</b:EventTrigger> |
|||
</b:Interaction.Triggers> |
|||
</c:PageControl> |
|||
</Grid> |
|||
</Grid> |
|||
</Page> |
@ -0,0 +1,39 @@ |
|||
using CommunityToolkit.Mvvm.Messaging; |
|||
using CommunityToolkit.Mvvm.Messaging.Messages; |
|||
using SJ.Controls.Extensions; |
|||
using System.Windows.Controls; |
|||
|
|||
namespace BBWYB.Client.Views.Order |
|||
{ |
|||
/// <summary>
|
|||
/// OrderList.xaml 的交互逻辑
|
|||
/// </summary>
|
|||
public partial class OrderList : Page |
|||
{ |
|||
private ScrollViewer scrollviewer_OrderList; |
|||
public OrderList() |
|||
{ |
|||
InitializeComponent(); |
|||
this.Loaded += OrderList_Loaded; |
|||
WeakReferenceMessenger.Default.Register<Message_OrderListScrollToTop>(this, (o, x) => |
|||
{ |
|||
this.Dispatcher.Invoke(() => |
|||
{ |
|||
scrollviewer_OrderList.Dispatcher.Invoke(() => scrollviewer_OrderList.ScrollToTop()); |
|||
}); |
|||
}); |
|||
} |
|||
|
|||
private void OrderList_Loaded(object sender, System.Windows.RoutedEventArgs e) |
|||
{ |
|||
scrollviewer_OrderList = listbox_order.FindFirstVisualChild<ScrollViewer>(); |
|||
} |
|||
} |
|||
|
|||
public class Message_OrderListScrollToTop : ValueChangedMessage<object> |
|||
{ |
|||
public Message_OrderListScrollToTop(object value) : base(value) |
|||
{ |
|||
} |
|||
} |
|||
} |
@ -0,0 +1,110 @@ |
|||
<Page x:Class="BBWYB.Client.Views.Setting.ShopSetting" |
|||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" |
|||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" |
|||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" |
|||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008" |
|||
xmlns:local="clr-namespace:BBWYB.Client.Views.Setting" |
|||
mc:Ignorable="d" |
|||
xmlns:sys="clr-namespace:System;assembly=mscorlib" |
|||
xmlns:c="clr-namespace:SJ.Controls;assembly=SJ.Controls" |
|||
xmlns:cmodel="clr-namespace:BBWYB.Client.Models" |
|||
xmlns:b="http://schemas.microsoft.com/xaml/behaviors" |
|||
d:DesignHeight="450" d:DesignWidth="800" |
|||
Title="ShopSetting" |
|||
DataContext="{Binding ShopSetting,Source={StaticResource Locator}}"> |
|||
<Page.Resources> |
|||
<ObjectDataProvider x:Key="PlatformProvider" MethodName="GetValues" ObjectType="{x:Type sys:Enum}"> |
|||
<ObjectDataProvider.MethodParameters> |
|||
<x:Type TypeName="cmodel:Platform"/> |
|||
</ObjectDataProvider.MethodParameters> |
|||
</ObjectDataProvider> |
|||
<Style x:Key="textblockPropertyStyle" TargetType="TextBlock"> |
|||
<Setter Property="HorizontalAlignment" Value="Right"/> |
|||
<Setter Property="VerticalAlignment" Value="Center"/> |
|||
<Setter Property="Margin" Value="0,0,5,0"/> |
|||
</Style> |
|||
<Style x:Key="textboxValueStyle" TargetType="{x:Type c:BTextBox}"> |
|||
<Setter Property="Width" Value="150"/> |
|||
<Setter Property="HorizontalAlignment" Value="Left"/> |
|||
<Setter Property="VerticalContentAlignment" Value="Center"/> |
|||
<Setter Property="Height" Value="30"/> |
|||
<Setter Property="Background" Value="White"/> |
|||
<Setter Property="BorderBrush" Value="{StaticResource TextBox.BorderBrush}"/> |
|||
</Style> |
|||
</Page.Resources> |
|||
<b:Interaction.Triggers> |
|||
<b:EventTrigger EventName="Loaded"> |
|||
<b:InvokeCommandAction Command="{Binding LoadCommand}"/> |
|||
</b:EventTrigger> |
|||
</b:Interaction.Triggers> |
|||
<Grid> |
|||
<c:RoundWaitProgress Play="{Binding IsLoading}" Panel.ZIndex="999" Visibility="{Binding IsLoading,Converter={StaticResource objConverter},ConverterParameter=true:Visible:Collapsed}"/> |
|||
<Grid> |
|||
<Grid.RowDefinitions> |
|||
<RowDefinition/> |
|||
<RowDefinition Height="60"/> |
|||
</Grid.RowDefinitions> |
|||
|
|||
<StackPanel Margin="20,0" Visibility="{Binding PanelIndex,Converter={StaticResource objConverter},ConverterParameter=0:Visible:Collapsed}"> |
|||
<Grid Margin="0,10,0,0"> |
|||
<Grid.ColumnDefinitions> |
|||
<ColumnDefinition Width="100"/> |
|||
<ColumnDefinition/> |
|||
</Grid.ColumnDefinitions> |
|||
<TextBlock Text="采购平台" Style="{StaticResource textblockPropertyStyle}"/> |
|||
<ComboBox ItemsSource="{Binding Source={StaticResource PlatformProvider}}" Grid.Column="1" |
|||
SelectedItem="{Binding PurchasePlatform,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" |
|||
DisplayMemberPath="." |
|||
Height="25" |
|||
Width="150" |
|||
HorizontalAlignment="Left" |
|||
VerticalContentAlignment="Center"/> |
|||
</Grid> |
|||
|
|||
<Grid Margin="0,10,0,0"> |
|||
<Grid.ColumnDefinitions> |
|||
<ColumnDefinition Width="100"/> |
|||
<ColumnDefinition/> |
|||
</Grid.ColumnDefinitions> |
|||
<TextBlock Text="{Binding PurchasePlatform}" Style="{StaticResource textblockPropertyStyle}" Grid.Row="1"/> |
|||
<c:BTextBox Grid.Column="1" Style="{StaticResource textboxValueStyle}" Grid.Row="1" |
|||
Text="{Binding PurchaseAccount.AccountName,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"/> |
|||
</Grid> |
|||
|
|||
<Grid Margin="0,10,0,0" |
|||
Visibility="{Binding PurchasePlatform}"> |
|||
<Grid.ColumnDefinitions> |
|||
<ColumnDefinition Width="100"/> |
|||
<ColumnDefinition/> |
|||
</Grid.ColumnDefinitions> |
|||
<TextBlock Text="AppKey" Style="{StaticResource textblockPropertyStyle}" Grid.Row="2"/> |
|||
<c:BTextBox Grid.Column="1" Grid.Row="2" |
|||
Text="{Binding PurchaseAccount.AppKey,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"/> |
|||
</Grid> |
|||
|
|||
<Grid Margin="0,10,0,0" Visibility="{Binding PurchasePlatform}"> |
|||
<Grid.ColumnDefinitions> |
|||
<ColumnDefinition Width="100"/> |
|||
<ColumnDefinition/> |
|||
</Grid.ColumnDefinitions> |
|||
<TextBlock Text="AppSecret" Style="{StaticResource textblockPropertyStyle}" Grid.Row="3"/> |
|||
<c:BTextBox Grid.Column="1" Grid.Row="3" |
|||
Text="{Binding PurchaseAccount.AppSecret,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"/> |
|||
</Grid> |
|||
|
|||
<Grid Margin="0,10,0,0" Visibility="{Binding PurchasePlatform}"> |
|||
<Grid.ColumnDefinitions> |
|||
<ColumnDefinition Width="100"/> |
|||
<ColumnDefinition/> |
|||
</Grid.ColumnDefinitions> |
|||
<TextBlock Text="AppToken" Style="{StaticResource textblockPropertyStyle}" Grid.Row="4"/> |
|||
<c:BTextBox Grid.Column="1" Grid.Row="4" |
|||
Text="{Binding PurchaseAccount.AppToken,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"/> |
|||
</Grid> |
|||
</StackPanel> |
|||
|
|||
<c:BButton Content="保存" Grid.Row="1" Width="80" HorizontalAlignment="Left" |
|||
Command="{Binding SaveCommand}" Margin="20,0,0,0"/> |
|||
</Grid> |
|||
</Grid> |
|||
</Page> |
@ -0,0 +1,28 @@ |
|||
using System; |
|||
using System.Collections.Generic; |
|||
using System.Linq; |
|||
using System.Text; |
|||
using System.Threading.Tasks; |
|||
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.Navigation; |
|||
using System.Windows.Shapes; |
|||
|
|||
namespace BBWYB.Client.Views.Setting |
|||
{ |
|||
/// <summary>
|
|||
/// ShopSetting.xaml 的交互逻辑
|
|||
/// </summary>
|
|||
public partial class ShopSetting : Page |
|||
{ |
|||
public ShopSetting() |
|||
{ |
|||
InitializeComponent(); |
|||
} |
|||
} |
|||
} |
@ -1,423 +0,0 @@ |
|||
<Page x:Class="BBWYB.Client.Views.Ware.WareStock" |
|||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" |
|||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" |
|||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" |
|||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008" |
|||
xmlns:local="clr-namespace:BBWYB.Client.Views.Ware" |
|||
xmlns:b="http://schemas.microsoft.com/xaml/behaviors" |
|||
xmlns:sys="clr-namespace:System;assembly=mscorlib" |
|||
mc:Ignorable="d" |
|||
d:DesignHeight="450" d:DesignWidth="1300" |
|||
DataContext="{Binding WareStock,Source={StaticResource Locator}}" |
|||
xmlns:c="clr-namespace:SJ.Controls;assembly=SJ.Controls" |
|||
xmlns:ts="clr-namespace:BBWYB.Client.TemplateSelectors" |
|||
xmlns:clientModel="clr-namespace:BBWYB.Client.Models" |
|||
xmlns:ctr="clr-namespace:BBWYB.Client.Converters" |
|||
Title="WareStock"> |
|||
<b:Interaction.Triggers> |
|||
<b:EventTrigger EventName="Loaded"> |
|||
<b:InvokeCommandAction Command="{Binding LoadCommand}"/> |
|||
</b:EventTrigger> |
|||
</b:Interaction.Triggers> |
|||
<Page.Resources> |
|||
<ObjectDataProvider x:Key="platformProvider" MethodName="GetValues" ObjectType="{x:Type sys:Enum}"> |
|||
<ObjectDataProvider.MethodParameters> |
|||
<x:Type TypeName="clientModel:Platform"/> |
|||
</ObjectDataProvider.MethodParameters> |
|||
</ObjectDataProvider> |
|||
<ctr:PurchaseOrderDelBtnConverter x:Key="poDelConverter"/> |
|||
<ctr:PurchaseOrderEditBtnConverter x:Key="poEditConverter"/> |
|||
|
|||
<DataTemplate x:Key="purchaseOrderTemplate_normal"> |
|||
<Grid Width="{Binding ActualWidth,ElementName= listbox_purchaseOrderList}" |
|||
Height="30"> |
|||
<Grid.ColumnDefinitions> |
|||
<ColumnDefinition Width="80"/> |
|||
<ColumnDefinition Width="1*"/> |
|||
<ColumnDefinition Width="60"/> |
|||
<ColumnDefinition Width="60"/> |
|||
<ColumnDefinition Width="60"/> |
|||
<ColumnDefinition Width="60"/> |
|||
<ColumnDefinition Width="60"/> |
|||
<ColumnDefinition Width="60"/> |
|||
<ColumnDefinition Width="60"/> |
|||
<ColumnDefinition Width="60"/> |
|||
<ColumnDefinition Width="60"/> |
|||
<ColumnDefinition Width="50"/> |
|||
<ColumnDefinition Width="60"/> |
|||
<ColumnDefinition Width="60"/> |
|||
<ColumnDefinition Width="80"/> |
|||
<ColumnDefinition Width="70"/> |
|||
</Grid.ColumnDefinitions> |
|||
<TextBlock Text="{Binding PurchasePlatform}" Style="{StaticResource middleTextBlock}"/> |
|||
|
|||
<TextBlock Text="{Binding PurchaseOrderId}" Grid.Column="1" Style="{StaticResource middleTextBlock}"/> |
|||
<TextBlock Text="{Binding SingleSkuAmount,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" Grid.Column="2" Style="{StaticResource middleTextBlock}"/> |
|||
<TextBlock Text="{Binding SingleFreight,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" Grid.Column="3" Style="{StaticResource middleTextBlock}"/> |
|||
|
|||
<TextBlock Text="{Binding SingleFirstFreight}" Grid.Column="4" Style="{StaticResource middleTextBlock}"/> |
|||
<TextBlock Text="{Binding SingleInStorageAmount}" Grid.Column="5" Style="{StaticResource middleTextBlock}"/> |
|||
<TextBlock Text="{Binding SingleOutStorageAmount}" Grid.Column="6" Style="{StaticResource middleTextBlock}"/> |
|||
<TextBlock Text="{Binding SingleRefundInStorageAmount}" Grid.Column="7" Style="{StaticResource middleTextBlock}"/> |
|||
<TextBlock Text="{Binding SingleConsumableAmount,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" Grid.Column="8" Style="{StaticResource middleTextBlock}"/> |
|||
<TextBlock Text="{Binding SingleStorageAmount,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" Grid.Column="9" Style="{StaticResource middleTextBlock}"/> |
|||
<TextBlock Text="{Binding SingleDeliveryFreight}" Grid.Column="10" Style="{StaticResource middleTextBlock}"/> |
|||
|
|||
<TextBlock Text="{Binding PurchaseQuantity,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" Grid.Column="11" Style="{StaticResource middleTextBlock}"/> |
|||
<TextBlock Text="{Binding RemainingQuantity,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" Grid.Column="12" Style="{StaticResource middleTextBlock}"/> |
|||
<TextBlock Text="{Binding UnitCost,Mode=OneWay}" Grid.Column="13" Style="{StaticResource middleTextBlock}" Foreground="Gray"/> |
|||
<TextBlock Text="{Binding CreateTime,StringFormat=yyyy-MM-dd}" Grid.Column="14" Style="{StaticResource middleTextBlock}"/> |
|||
|
|||
<StackPanel Grid.Column="15" HorizontalAlignment="Center" Orientation="Horizontal"> |
|||
<c:BButton Content="编辑" Style="{StaticResource LinkButton}" |
|||
Command="{Binding DataContext.EditPurchaseOrderCommand,RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type Page}}}" |
|||
CommandParameter="{Binding }"> |
|||
</c:BButton> |
|||
|
|||
<c:BButton Content="删除" Style="{StaticResource LinkButton}" Margin="5,0,0,0" |
|||
Command="{Binding DataContext.DeletePurchaseOrderCommand,RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type Page}}}" CommandParameter="{Binding }"> |
|||
</c:BButton> |
|||
</StackPanel> |
|||
|
|||
<Border Width="1" HorizontalAlignment="Right" Background="{StaticResource Border.Brush}"/> |
|||
<Border Width="1" HorizontalAlignment="Right" Background="{StaticResource Border.Brush}" Grid.Column="1"/> |
|||
<Border Width="1" HorizontalAlignment="Right" Background="{StaticResource Border.Brush}" Grid.Column="2"/> |
|||
<Border Width="1" HorizontalAlignment="Right" Background="{StaticResource Border.Brush}" Grid.Column="3"/> |
|||
<Border Width="1" HorizontalAlignment="Right" Background="{StaticResource Border.Brush}" Grid.Column="4"/> |
|||
<Border Width="1" HorizontalAlignment="Right" Background="{StaticResource Border.Brush}" Grid.Column="5"/> |
|||
<Border Width="1" HorizontalAlignment="Right" Background="{StaticResource Border.Brush}" Grid.Column="6"/> |
|||
<Border Width="1" HorizontalAlignment="Right" Background="{StaticResource Border.Brush}" Grid.Column="7"/> |
|||
<Border Width="1" HorizontalAlignment="Right" Background="{StaticResource Border.Brush}" Grid.Column="8"/> |
|||
<Border Width="1" HorizontalAlignment="Right" Background="{StaticResource Border.Brush}" Grid.Column="9"/> |
|||
<Border Width="1" HorizontalAlignment="Right" Background="{StaticResource Border.Brush}" Grid.Column="10"/> |
|||
<Border Width="1" HorizontalAlignment="Right" Background="{StaticResource Border.Brush}" Grid.Column="11"/> |
|||
<Border Width="1" HorizontalAlignment="Right" Background="{StaticResource Border.Brush}" Grid.Column="12"/> |
|||
<Border Width="1" HorizontalAlignment="Right" Background="{StaticResource Border.Brush}" Grid.Column="13"/> |
|||
<Border Width="1" HorizontalAlignment="Right" Background="{StaticResource Border.Brush}" Grid.Column="14"/> |
|||
<Border Height="1" Grid.ColumnSpan="16" Background="{StaticResource Border.Brush}" VerticalAlignment="Bottom"/> |
|||
</Grid> |
|||
</DataTemplate> |
|||
<DataTemplate x:Key="purchaseOrderTemplate_edit"> |
|||
<Grid Width="{Binding ActualWidth,ElementName= listbox_purchaseOrderList}" |
|||
Height="30"> |
|||
<Grid.ColumnDefinitions> |
|||
<ColumnDefinition Width="80"/> |
|||
<ColumnDefinition Width="1*"/> |
|||
<ColumnDefinition Width="60"/> |
|||
<ColumnDefinition Width="60"/> |
|||
<ColumnDefinition Width="60"/> |
|||
<ColumnDefinition Width="60"/> |
|||
<ColumnDefinition Width="60"/> |
|||
<ColumnDefinition Width="60"/> |
|||
<ColumnDefinition Width="60"/> |
|||
<ColumnDefinition Width="60"/> |
|||
<ColumnDefinition Width="60"/> |
|||
<ColumnDefinition Width="50"/> |
|||
<ColumnDefinition Width="60"/> |
|||
<ColumnDefinition Width="60"/> |
|||
<ColumnDefinition Width="80"/> |
|||
<ColumnDefinition Width="70"/> |
|||
</Grid.ColumnDefinitions> |
|||
<!--<c:BTextBox Text="{Binding PurchasePlatform}"/>--> |
|||
<ComboBox ItemsSource="{Binding Source={StaticResource platformProvider}}" |
|||
SelectedItem="{Binding PurchasePlatform}" |
|||
BorderThickness="0" |
|||
VerticalContentAlignment="Center" |
|||
FocusVisualStyle="{x:Null}"/> |
|||
|
|||
<c:BTextBox Text="{Binding PurchaseOrderId}" Grid.Column="1" BorderThickness="0"/> |
|||
<c:BTextBox Text="{Binding SingleSkuAmount,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged,Converter={StaticResource inputNumberConverter}}" |
|||
Grid.Column="2" BorderThickness="0"/> |
|||
<c:BTextBox Text="{Binding SingleFreight,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged,Converter={StaticResource inputNumberConverter}}" Grid.Column="3" BorderThickness="0"/> |
|||
|
|||
<c:BTextBox Text="{Binding SingleFirstFreight,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged,Converter={StaticResource inputNumberConverter}}" Grid.Column="4" BorderThickness="0"/> |
|||
<c:BTextBox Text="{Binding SingleInStorageAmount,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged,Converter={StaticResource inputNumberConverter}}" Grid.Column="5" BorderThickness="0"/> |
|||
<c:BTextBox Text="{Binding SingleOutStorageAmount,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged,Converter={StaticResource inputNumberConverter}}" Grid.Column="6" BorderThickness="0"/> |
|||
<c:BTextBox Text="{Binding SingleRefundInStorageAmount,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged,Converter={StaticResource inputNumberConverter}}" Grid.Column="7" BorderThickness="0"/> |
|||
<c:BTextBox Text="{Binding SingleConsumableAmount,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged,Converter={StaticResource inputNumberConverter}}" Grid.Column="8" BorderThickness="0"/> |
|||
<c:BTextBox Text="{Binding SingleStorageAmount,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged,Converter={StaticResource inputNumberConverter}}" Grid.Column="9" BorderThickness="0"/> |
|||
<c:BTextBox Text="{Binding SingleDeliveryFreight,Converter={StaticResource inputNumberConverter}}" Grid.Column="10" BorderThickness="0"/> |
|||
|
|||
<c:BTextBox Text="{Binding PurchaseQuantity,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" Grid.Column="11" BorderThickness="0"/> |
|||
<c:BTextBox Text="{Binding RemainingQuantity,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" Grid.Column="12" BorderThickness="0"/> |
|||
<TextBlock Text="{Binding UnitCost,Mode=OneWay,UpdateSourceTrigger=PropertyChanged}" Grid.Column="13" Style="{StaticResource middleTextBlock}" Foreground="Gray"/> |
|||
<TextBlock Text="{Binding CreateTime,StringFormat=yyyy-MM-dd}" Grid.Column="14" Style="{StaticResource middleTextBlock}" Foreground="Gray"/> |
|||
|
|||
<StackPanel Grid.Column="15" HorizontalAlignment="Center" Orientation="Horizontal"> |
|||
<c:BButton Content="保存" Style="{StaticResource LinkButton}" |
|||
Command="{Binding DataContext.SavePurchaseOrderCommand,RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type Page}}}" |
|||
CommandParameter="{Binding }" /> |
|||
<c:BButton Content="删除" Style="{StaticResource LinkButton}" Margin="5,0,0,0" |
|||
Command="{Binding DataContext.DeletePurchaseOrderCommand,RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type Page}}}" CommandParameter="{Binding }"> |
|||
|
|||
</c:BButton> |
|||
</StackPanel> |
|||
|
|||
<Border Width="1" HorizontalAlignment="Right" Background="{StaticResource Border.Brush}"/> |
|||
<Border Width="1" HorizontalAlignment="Right" Background="{StaticResource Border.Brush}" Grid.Column="1"/> |
|||
<Border Width="1" HorizontalAlignment="Right" Background="{StaticResource Border.Brush}" Grid.Column="2"/> |
|||
<Border Width="1" HorizontalAlignment="Right" Background="{StaticResource Border.Brush}" Grid.Column="3"/> |
|||
<Border Width="1" HorizontalAlignment="Right" Background="{StaticResource Border.Brush}" Grid.Column="4"/> |
|||
<Border Width="1" HorizontalAlignment="Right" Background="{StaticResource Border.Brush}" Grid.Column="5"/> |
|||
<Border Width="1" HorizontalAlignment="Right" Background="{StaticResource Border.Brush}" Grid.Column="6"/> |
|||
<Border Width="1" HorizontalAlignment="Right" Background="{StaticResource Border.Brush}" Grid.Column="7"/> |
|||
<Border Width="1" HorizontalAlignment="Right" Background="{StaticResource Border.Brush}" Grid.Column="8"/> |
|||
<Border Width="1" HorizontalAlignment="Right" Background="{StaticResource Border.Brush}" Grid.Column="9"/> |
|||
<Border Width="1" HorizontalAlignment="Right" Background="{StaticResource Border.Brush}" Grid.Column="10"/> |
|||
<Border Width="1" HorizontalAlignment="Right" Background="{StaticResource Border.Brush}" Grid.Column="11"/> |
|||
<Border Width="1" HorizontalAlignment="Right" Background="{StaticResource Border.Brush}" Grid.Column="12"/> |
|||
<Border Width="1" HorizontalAlignment="Right" Background="{StaticResource Border.Brush}" Grid.Column="13"/> |
|||
<Border Height="1" Grid.ColumnSpan="16" Background="{StaticResource Border.Brush}" VerticalAlignment="Bottom"/> |
|||
</Grid> |
|||
</DataTemplate> |
|||
</Page.Resources> |
|||
<Grid> |
|||
<c:RoundWaitProgress Play="{Binding IsLoading}" Panel.ZIndex="999"/> |
|||
<Grid Margin="5,0"> |
|||
<Grid.RowDefinitions> |
|||
<RowDefinition Height="40"/> |
|||
<RowDefinition Height="5"/> |
|||
<RowDefinition Height="30"/> |
|||
<RowDefinition/> |
|||
<RowDefinition Height="30"/> |
|||
</Grid.RowDefinitions> |
|||
<StackPanel Orientation="Horizontal" Background="{StaticResource Border.Background}"> |
|||
<TextBlock Text="SPU" VerticalAlignment="Center" Margin="5,0,0,0"/> |
|||
<c:BTextBox Width="150" Margin="5,0,0,0" Text="{Binding SearchSpu}" WaterRemark="精确匹配"/> |
|||
<TextBlock Text="SKU" VerticalAlignment="Center" Margin="5,0,0,0"/> |
|||
<c:BTextBox Width="150" Margin="5,0,0,0" Text="{Binding SearchSku}" WaterRemark="精确匹配"/> |
|||
<TextBlock Text="货号" VerticalAlignment="Center" Margin="5,0,0,0"/> |
|||
<c:BTextBox Width="150" Margin="5,0,0,0" Text="{Binding SearchProductItem}" WaterRemark="精确匹配"/> |
|||
<TextBlock Text="采购单号" VerticalAlignment="Center" Margin="5,0,0,0"/> |
|||
<c:BTextBox Width="150" Margin="5,0,0,0" Text="{Binding SearchPurchaseOrder}" WaterRemark="精确匹配"/> |
|||
<c:BButton Content="搜索" Padding="10,0" Margin="5,0,0,0" |
|||
Command="{Binding SearchCommand}"/> |
|||
</StackPanel> |
|||
|
|||
<Border Grid.Row="2" BorderBrush="{StaticResource Border.Brush}" BorderThickness="1,1,1,0" |
|||
Background="#F2F2F2"> |
|||
<Grid> |
|||
<Grid.ColumnDefinitions> |
|||
<ColumnDefinition Width="300"/> |
|||
<ColumnDefinition Width="80"/> |
|||
<ColumnDefinition Width="80"/> |
|||
<ColumnDefinition Width="1*"/> |
|||
<ColumnDefinition Width="60"/> |
|||
<ColumnDefinition Width="60"/> |
|||
<ColumnDefinition Width="60"/> |
|||
<ColumnDefinition Width="60"/> |
|||
<ColumnDefinition Width="60"/> |
|||
<ColumnDefinition Width="60"/> |
|||
<ColumnDefinition Width="60"/> |
|||
<ColumnDefinition Width="60"/> |
|||
<ColumnDefinition Width="60"/> |
|||
<ColumnDefinition Width="50"/> |
|||
<ColumnDefinition Width="60"/> |
|||
<ColumnDefinition Width="60"/> |
|||
<ColumnDefinition Width="80"/> |
|||
<ColumnDefinition Width="70"/> |
|||
</Grid.ColumnDefinitions> |
|||
<TextBlock Text="商品信息" Style="{StaticResource middleTextBlock}"/> |
|||
<TextBlock Text="仓储平台" Grid.Column="1" Style="{StaticResource middleTextBlock}"/> |
|||
<TextBlock Text="采购平台" Grid.Column="2" Style="{StaticResource middleTextBlock}"/> |
|||
<TextBlock Text="采购订单号" Grid.Column="3" Style="{StaticResource middleTextBlock}"/> |
|||
<TextBlock Text="采购单价" Grid.Column="4" Style="{StaticResource middleTextBlock}"/> |
|||
<TextBlock Grid.Column="5" Style="{StaticResource middleTextBlock}" TextAlignment="Center"> |
|||
<Run Text="采购运"/> |
|||
<LineBreak/> |
|||
<Run Text="单价"/> |
|||
</TextBlock> |
|||
<TextBlock Text="头程单价" Grid.Column="6" Style="{StaticResource middleTextBlock}"/> |
|||
<TextBlock Text="入仓单价" Grid.Column="7" Style="{StaticResource middleTextBlock}"/> |
|||
<TextBlock Text="出仓单价" Grid.Column="8" Style="{StaticResource middleTextBlock}"/> |
|||
<TextBlock Grid.Column="9" Style="{StaticResource middleTextBlock}" TextAlignment="Center"> |
|||
<Run Text="退货"/> |
|||
<LineBreak/> |
|||
<Run Text="入仓单价"/> |
|||
</TextBlock> |
|||
<TextBlock Text="耗材单价" Grid.Column="10" Style="{StaticResource middleTextBlock}"/> |
|||
<TextBlock Text="仓储单价" Grid.Column="11" Style="{StaticResource middleTextBlock}"/> |
|||
<TextBlock Grid.Column="12" Style="{StaticResource middleTextBlock}" TextAlignment="Center"> |
|||
<Run Text="销售运"/> |
|||
<LineBreak/> |
|||
<Run Text="单价"/> |
|||
</TextBlock> |
|||
<TextBlock Text="库存" Grid.Column="13" Style="{StaticResource middleTextBlock}"/> |
|||
<TextBlock Text="剩余库存" Grid.Column="14" Style="{StaticResource middleTextBlock}"/> |
|||
<TextBlock Text="均摊单价" Grid.Column="15" Style="{StaticResource middleTextBlock}"/> |
|||
<TextBlock Text="采购时间" Grid.Column="16" Style="{StaticResource middleTextBlock}"/> |
|||
<TextBlock Text="操作" Grid.Column="17" Style="{StaticResource middleTextBlock}"/> |
|||
|
|||
|
|||
<Border Width="1" HorizontalAlignment="Right" Background="{StaticResource Border.Brush}"/> |
|||
<Border Width="1" HorizontalAlignment="Right" Background="{StaticResource Border.Brush}" Grid.Column="1"/> |
|||
<Border Width="1" HorizontalAlignment="Right" Background="{StaticResource Border.Brush}" Grid.Column="2"/> |
|||
<Border Width="1" HorizontalAlignment="Right" Background="{StaticResource Border.Brush}" Grid.Column="3"/> |
|||
<Border Width="1" HorizontalAlignment="Right" Background="{StaticResource Border.Brush}" Grid.Column="4"/> |
|||
<Border Width="1" HorizontalAlignment="Right" Background="{StaticResource Border.Brush}" Grid.Column="5"/> |
|||
<Border Width="1" HorizontalAlignment="Right" Background="{StaticResource Border.Brush}" Grid.Column="6"/> |
|||
<Border Width="1" HorizontalAlignment="Right" Background="{StaticResource Border.Brush}" Grid.Column="7"/> |
|||
<Border Width="1" HorizontalAlignment="Right" Background="{StaticResource Border.Brush}" Grid.Column="8"/> |
|||
<Border Width="1" HorizontalAlignment="Right" Background="{StaticResource Border.Brush}" Grid.Column="9"/> |
|||
<Border Width="1" HorizontalAlignment="Right" Background="{StaticResource Border.Brush}" Grid.Column="10"/> |
|||
<Border Width="1" HorizontalAlignment="Right" Background="{StaticResource Border.Brush}" Grid.Column="11"/> |
|||
<Border Width="1" HorizontalAlignment="Right" Background="{StaticResource Border.Brush}" Grid.Column="12"/> |
|||
<Border Width="1" HorizontalAlignment="Right" Background="{StaticResource Border.Brush}" Grid.Column="13"/> |
|||
<Border Width="1" HorizontalAlignment="Right" Background="{StaticResource Border.Brush}" Grid.Column="14"/> |
|||
<Border Width="1" HorizontalAlignment="Right" Background="{StaticResource Border.Brush}" Grid.Column="15"/> |
|||
<Border Width="1" HorizontalAlignment="Right" Background="{StaticResource Border.Brush}" Grid.Column="16"/> |
|||
</Grid> |
|||
</Border> |
|||
|
|||
<ListBox x:Name="listbox_productList" |
|||
Grid.Row="3" |
|||
ItemsSource="{Binding ProductList}" |
|||
ItemContainerStyle="{StaticResource NoBgListBoxItemStyle}" |
|||
Foreground="{StaticResource Text.Color}" |
|||
BorderThickness="1,1,1,0" |
|||
BorderBrush="{StaticResource Border.Brush}"> |
|||
<ListBox.ItemTemplate> |
|||
<DataTemplate> |
|||
<Grid Width="{Binding ActualWidth,ElementName=listbox_productList}"> |
|||
<Grid.RowDefinitions> |
|||
<RowDefinition Height="30"/> |
|||
<RowDefinition/> |
|||
</Grid.RowDefinitions> |
|||
|
|||
<Grid Background="#F2F2F2" Grid.ColumnSpan="2"> |
|||
<StackPanel Orientation="Horizontal"> |
|||
<TextBlock VerticalAlignment="Center" Margin="5,0,0,0"> |
|||
<Run Text="SPU:"/> |
|||
<Run Text="{Binding Id}"/> |
|||
</TextBlock> |
|||
<TextBlock VerticalAlignment="Center" Margin="5,0,0,0"> |
|||
<Run Text="货号:"/> |
|||
<Run Text="{Binding ProductItemNum}"/> |
|||
</TextBlock> |
|||
</StackPanel> |
|||
<c:BButton HorizontalAlignment="Right" Content="采购库存" Width="110" |
|||
Command="{Binding DataContext.AddPurchaserOrderCommand,RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type ListBox}}}" CommandParameter="{Binding }"/> |
|||
</Grid> |
|||
<!--<Border Grid.ColumnSpan="2" BorderBrush="{StaticResource Border.Brush}" BorderThickness="0,0,0,1"/>--> |
|||
|
|||
<ListBox x:Name="listbox_sku" Grid.Row="1" ItemsSource="{Binding SkuList}" |
|||
Style="{StaticResource NoScrollViewListBoxStyle}" |
|||
ItemContainerStyle="{StaticResource NoBgListBoxItemStyle}" |
|||
Foreground="{StaticResource Text.Color}" |
|||
BorderThickness="0,1,0,0" |
|||
BorderBrush="{StaticResource Border.Brush}"> |
|||
<ListBox.ItemTemplate> |
|||
<DataTemplate> |
|||
<Border BorderThickness="0,0,0,1" BorderBrush="{StaticResource Border.Brush}" |
|||
Width="{Binding ActualWidth,ElementName=listbox_sku}"> |
|||
<Grid Height="150"> |
|||
<Grid.ColumnDefinitions> |
|||
<ColumnDefinition Width="299"/> |
|||
<!--350--> |
|||
<ColumnDefinition Width="80"/> |
|||
<ColumnDefinition/> |
|||
</Grid.ColumnDefinitions> |
|||
<!--SKU信息--> |
|||
<Grid> |
|||
<Grid.ColumnDefinitions> |
|||
<ColumnDefinition Width="90"/> |
|||
<ColumnDefinition/> |
|||
</Grid.ColumnDefinitions> |
|||
|
|||
<c:BAsyncImage UrlSource="{Binding Logo}" Width="80" DecodePixelWidth="80" |
|||
VerticalAlignment="Top" Margin="0,5,0,0"/> |
|||
|
|||
<StackPanel Grid.Column="1" Orientation="Vertical" Margin="0,5,0,0"> |
|||
<TextBlock> |
|||
<Run Text="售价:" /> |
|||
<Run Text="{Binding Price}"/> |
|||
</TextBlock> |
|||
<TextBlock> |
|||
<Run Text="SKU:" /> |
|||
<Run Text="{Binding Id}"/> |
|||
</TextBlock> |
|||
<TextBlock TextWrapping="Wrap"> |
|||
<Run Text="SKU名称:" /> |
|||
<Run Text="{Binding Title}"/> |
|||
</TextBlock> |
|||
</StackPanel> |
|||
</Grid> |
|||
|
|||
<!--仓储平台--> |
|||
<ListBox x:Name="listbox_storageType" Grid.Column="1" |
|||
ItemContainerStyle="{StaticResource NoBgListBoxItemStyle}" |
|||
Style="{StaticResource NoScrollViewListBoxStyle}" |
|||
BorderBrush="{StaticResource Border.Brush}" |
|||
BorderThickness="1,0,0,0" |
|||
ItemsSource="{Binding StorageList}" |
|||
SelectedItem="{Binding SelectedStorageModel}"> |
|||
<ListBox.ItemTemplate> |
|||
<DataTemplate> |
|||
<Grid x:Name="grid_storageType" Width="{Binding ActualWidth,ElementName=listbox_storageType,Converter={StaticResource widthConverter},ConverterParameter=7}" Margin="5,5,5,0" Height="25" |
|||
Background="{StaticResource Button.Normal.Background}"> |
|||
<TextBlock x:Name="txt_storageType" Text="{Binding StorageType}" HorizontalAlignment="Center" VerticalAlignment="Center" |
|||
Foreground="{StaticResource Text.Color}"/> |
|||
<b:Interaction.Triggers> |
|||
<b:EventTrigger EventName="MouseLeftButtonDown"> |
|||
<b:InvokeCommandAction Command="{Binding DataContext.SwitchStorageTypeCommand,RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type Page}}}" |
|||
CommandParameter="{Binding }"/> |
|||
</b:EventTrigger> |
|||
</b:Interaction.Triggers> |
|||
</Grid> |
|||
<DataTemplate.Triggers> |
|||
<DataTrigger Binding="{Binding IsSelected,RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type ListBoxItem}}}" |
|||
Value="True"> |
|||
<Setter TargetName="grid_storageType" Property="Background" Value="{StaticResource Button.Selected.Background}"/> |
|||
<Setter TargetName="txt_storageType" Property="Foreground" Value="White"/> |
|||
</DataTrigger> |
|||
</DataTemplate.Triggers> |
|||
</DataTemplate> |
|||
</ListBox.ItemTemplate> |
|||
</ListBox> |
|||
|
|||
|
|||
<!--采购订单--> |
|||
<ListBox x:Name="listbox_purchaseOrderList" ItemsSource="{Binding PurchaseOrderList}" |
|||
Grid.Column="2" |
|||
BorderThickness="1,0" |
|||
BorderBrush="{StaticResource Border.Brush}" |
|||
Style="{StaticResource NoScrollViewListBoxStyle}"> |
|||
<!-- ItemContainerStyle="{StaticResource NoBgListBoxItemStyle}"--> |
|||
<!--<ListBox.ItemTemplateSelector> |
|||
<ts:PurchaseOrderDataTemplateSelector NormalTemplate="{StaticResource purchaseOrderTemplate_normal}" |
|||
EditTemplate="{StaticResource purchaseOrderTemplate_edit}"/> |
|||
</ListBox.ItemTemplateSelector>--> |
|||
<ListBox.ItemContainerStyle> |
|||
<Style BasedOn="{StaticResource NoBgListBoxItemStyle}" TargetType="ListBoxItem"> |
|||
<Setter Property="ContentTemplate" Value="{StaticResource purchaseOrderTemplate_normal}"/> |
|||
<Style.Triggers> |
|||
<DataTrigger Binding="{Binding IsEdit}" Value="True"> |
|||
<Setter Property="ContentTemplate" Value="{StaticResource purchaseOrderTemplate_edit}"/> |
|||
</DataTrigger> |
|||
</Style.Triggers> |
|||
</Style> |
|||
</ListBox.ItemContainerStyle> |
|||
</ListBox> |
|||
</Grid> |
|||
</Border> |
|||
</DataTemplate> |
|||
</ListBox.ItemTemplate> |
|||
</ListBox> |
|||
</Grid> |
|||
</DataTemplate> |
|||
</ListBox.ItemTemplate> |
|||
</ListBox> |
|||
|
|||
<c:PageControl PageIndex="{Binding PageIndex}" |
|||
PageSize="5" |
|||
RecordCount="{Binding ProductCount}" |
|||
Grid.Row="4"> |
|||
<b:Interaction.Triggers> |
|||
<b:EventTrigger EventName="OnPageIndexChanged"> |
|||
<b:InvokeCommandAction Command="{Binding ProductPageIndexChangedCommand}" PassEventArgsToCommand="True"/> |
|||
</b:EventTrigger> |
|||
</b:Interaction.Triggers> |
|||
</c:PageControl> |
|||
</Grid> |
|||
</Grid> |
|||
</Page> |
@ -1,48 +0,0 @@ |
|||
using CommunityToolkit.Mvvm.Messaging; |
|||
using CommunityToolkit.Mvvm.Messaging.Messages; |
|||
using SJ.Controls.Extensions; |
|||
using System.Windows; |
|||
using System.Windows.Controls; |
|||
|
|||
namespace BBWYB.Client.Views.Ware |
|||
{ |
|||
/// <summary>
|
|||
/// WareStock.xaml 的交互逻辑
|
|||
/// </summary>
|
|||
public partial class WareStock : Page |
|||
{ |
|||
private ScrollViewer scrollviewer_ProductList; |
|||
public WareStock() |
|||
{ |
|||
InitializeComponent(); |
|||
this.Loaded += WareStock_Loaded; |
|||
this.Unloaded += WareStock_Unloaded; |
|||
//Messenger.Default.Register<string>(this, "WareStock_ProductListScrollToTop", (x) =>
|
|||
//{
|
|||
// scrollviewer_ProductList.Dispatcher.Invoke(() => scrollviewer_ProductList.ScrollToTop());
|
|||
//});
|
|||
WeakReferenceMessenger.Default.Register<Message_WareStock_ProductListScrollToTop>(this, (o, x) => |
|||
{ |
|||
scrollviewer_ProductList.Dispatcher.Invoke(() => scrollviewer_ProductList.ScrollToTop()); |
|||
}); |
|||
} |
|||
|
|||
private void WareStock_Unloaded(object sender, RoutedEventArgs e) |
|||
{ |
|||
//Messenger.Default.Unregister(this);
|
|||
WeakReferenceMessenger.Default.UnregisterAll(this); |
|||
} |
|||
|
|||
private void WareStock_Loaded(object sender, RoutedEventArgs e) |
|||
{ |
|||
scrollviewer_ProductList = listbox_productList.FindFirstVisualChild<ScrollViewer>(); |
|||
} |
|||
} |
|||
|
|||
public class Message_WareStock_ProductListScrollToTop : ValueChangedMessage<object> |
|||
{ |
|||
public Message_WareStock_ProductListScrollToTop(object value) : base(value) |
|||
{ |
|||
} |
|||
} |
|||
} |
@ -0,0 +1,27 @@ |
|||
using BBWYB.Server.Business; |
|||
using BBWYB.Server.Model.Dto; |
|||
using Microsoft.AspNetCore.Mvc; |
|||
|
|||
namespace BBWYB.Server.API.Controllers |
|||
{ |
|||
|
|||
public class VenderController : BaseApiController |
|||
{ |
|||
private VenderBusiness venderBusiness; |
|||
public VenderController(IHttpContextAccessor httpContextAccessor, VenderBusiness venderBusiness) : base(httpContextAccessor) |
|||
{ |
|||
this.venderBusiness = venderBusiness; |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 保存店铺信息
|
|||
/// </summary>
|
|||
/// <param name="shopSettingRequest"></param>
|
|||
/// <returns></returns>
|
|||
[HttpPost] |
|||
public long SaveShopSetting([FromBody] ShopSettingRequest shopSettingRequest) |
|||
{ |
|||
return venderBusiness.SaveShopSetting(shopSettingRequest); |
|||
} |
|||
} |
|||
} |
@ -0,0 +1,60 @@ |
|||
using FreeSql.DataAnnotations; |
|||
using System; |
|||
|
|||
namespace BBWYB.Server.Model.Db.MDS |
|||
{ |
|||
|
|||
/// <summary>
|
|||
/// 采购账号表
|
|||
/// </summary>
|
|||
[Table(Name = "purchaseaccount", DisableSyncStructure = true)] |
|||
public partial class Purchaseaccount { |
|||
|
|||
/// <summary>
|
|||
/// 主键
|
|||
/// </summary>
|
|||
[Column(StringLength = 50, IsPrimary = true, IsNullable = false)] |
|||
public string Id { get; set; } |
|||
|
|||
|
|||
public string AccountName { get; set; } |
|||
|
|||
|
|||
public string AppKey { get; set; } |
|||
|
|||
|
|||
public string AppSecret { get; set; } |
|||
|
|||
|
|||
public string AppToken { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 创建时间
|
|||
/// </summary>
|
|||
[Column(DbType = "datetime")] |
|||
public DateTime CreateTime { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 创建人Id
|
|||
/// </summary>
|
|||
[Column(StringLength = 50)] |
|||
public string CreatorId { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 否已删除
|
|||
/// </summary>
|
|||
[Column(DbType = "tinyint(4)")] |
|||
public sbyte Deleted { get; set; } |
|||
|
|||
[Column(StringLength = 50)] |
|||
public string PurchasePlatformId { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 采购账号归属店铺ID
|
|||
/// </summary>
|
|||
[Column(StringLength = 50)] |
|||
public string ShopId { get; set; } |
|||
|
|||
} |
|||
|
|||
} |
@ -0,0 +1,64 @@ |
|||
using FreeSql.DataAnnotations; |
|||
|
|||
namespace BBWYB.Server.Model.Db |
|||
{ |
|||
|
|||
/// <summary>
|
|||
/// 采购账号表
|
|||
/// </summary>
|
|||
[Table(Name = "purchaseaccount", DisableSyncStructure = true)] |
|||
public partial class PurchaseAccount |
|||
{ |
|||
|
|||
/// <summary>
|
|||
/// 主键
|
|||
/// </summary>
|
|||
[Column(StringLength = 50, IsPrimary = true, IsNullable = false)] |
|||
public long Id { get; set; } |
|||
|
|||
|
|||
public string AccountName { get; set; } |
|||
|
|||
|
|||
public string AppKey { get; set; } |
|||
|
|||
|
|||
public string AppSecret { get; set; } |
|||
|
|||
|
|||
public string AppToken { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 创建时间
|
|||
/// </summary>
|
|||
[Column(DbType = "datetime")] |
|||
public DateTime CreateTime { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 创建人Id
|
|||
/// </summary>
|
|||
[Column(StringLength = 50)] |
|||
public string CreatorId { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 否已删除
|
|||
/// </summary>
|
|||
[Column(DbType = "tinyint(4)")] |
|||
public sbyte Deleted { get; set; } |
|||
|
|||
[Column(DbType = "int(1)", MapType = typeof(int?))] |
|||
public Enums.Platform? PurchasePlatformId { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 采购账号归属店铺ID
|
|||
/// </summary>
|
|||
[Column(DbType = "bigint(1)")] |
|||
public long? ShopId { get; set; } |
|||
|
|||
} |
|||
|
|||
|
|||
|
|||
|
|||
|
|||
} |
@ -0,0 +1,23 @@ |
|||
namespace BBWYB.Server.Model.Dto |
|||
{ |
|||
public class ShopSettingRequest |
|||
{ |
|||
public long ShopId { get; set; } |
|||
|
|||
public long PurchaseAccountId { get; set; } |
|||
|
|||
|
|||
public string AccountName { get; set; } |
|||
|
|||
|
|||
public string AppKey { get; set; } |
|||
|
|||
|
|||
public string AppSecret { get; set; } |
|||
|
|||
|
|||
public string AppToken { get; set; } |
|||
|
|||
public Enums.Platform PurchasePlatformId { get; set; } |
|||
} |
|||
} |
Loading…
Reference in new issue