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 |
public class OrderSkuResponse |
||||
{ |
{ |
||||
|
|
||||
|
public long Id { get; set; } |
||||
|
|
||||
|
public DateTime? CreateTime { get; set; } |
||||
|
|
||||
|
|
||||
/// <summary>
|
/// <summary>
|
||||
/// 购买数量
|
/// 销售数量
|
||||
/// </summary>
|
/// </summary>
|
||||
public int ItemTotal { get; set; } |
public int ItemTotal { get; set; } |
||||
|
|
||||
public string Id { 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>
|
/// <summary>
|
||||
/// Sku标题
|
/// 销售单价
|
||||
/// </summary>
|
/// </summary>
|
||||
public string Title { get; set; } |
public decimal? Price { get; set; } |
||||
|
|
||||
public string Logo { get; set; } |
public string ProductId { get; set; } |
||||
|
|
||||
|
public string SkuId { get; set; } |
||||
|
|
||||
/// <summary>
|
/// <summary>
|
||||
/// 代发信息Id
|
/// Sku标题
|
||||
/// </summary>
|
/// </summary>
|
||||
public long? OrderDropShippingId { get; set; } |
public string Title { get; set; } |
||||
|
|
||||
public bool IsRefund { get; set; } = false; |
|
||||
} |
} |
||||
} |
} |
||||
|
@ -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