订单列表显示功能及逻辑优化

This commit is contained in:
wule_5900x committed 2026-06-22 01:22:28 +08:00
1 parent 44503f91cf
commit 031fa8cfe6
21 files changed
+815 -134

No files matched your search

+8 -1
View File
@@ -61,6 +61,7 @@
</Reference>
<Reference Include="System" />
<Reference Include="System.Data" />
<Reference Include="System.Drawing" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml" />
<Reference Include="Microsoft.CSharp" />
@@ -84,6 +85,7 @@
<DependentUpon>BaseMsgWindow.xaml</DependentUpon>
</Compile>
<Compile Include="BaseWindows\BaseWindow.cs" />
<Compile Include="Converters\ImageUrlToBitmapImageConverter.cs" />
<Compile Include="Converters\TextToVisibilityConverter.cs" />
<Compile Include="Converters\VisibleToVisibilityConverter.cs" />
<Compile Include="Ctrls\OrderCtrls\OrderListRowCtrl.xaml.cs">
@@ -281,6 +283,11 @@
<ItemGroup>
<Resource Include="Resources\close_gray.png" />
</ItemGroup>
<ItemGroup />
<ItemGroup>
<Resource Include="Resources\err_pic.png" />
</ItemGroup>
<ItemGroup>
<Resource Include="Resources\loading_blue.gif" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>
+2
View File
@@ -8,6 +8,7 @@
<ResourceDictionary>
<converters:HasTextToVisibilityConverter x:Key="HasTextVisibility"/>
<converters:NotHasTextToVisibilityConverter x:Key="NotHasTextVisibility"/>
<converters:ImageUrlToBitmapImageConverter x:Key="ImageUrlToBitmapImage"/>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Styles/BaseWindowStyle.xaml" />
<ResourceDictionary Source="Styles/BaseDataGridStyle.xaml" />
@@ -15,6 +16,7 @@
<ResourceDictionary Source="Styles/BaseTextBoxStyle.xaml" />
<ResourceDictionary Source="Styles/BaseComboBoxStyle.xaml" />
<ResourceDictionary Source="Styles/UcImageButtonStyle.xaml" />
<ResourceDictionary Source="Styles/UcWaterMarkTextBoxStyle.xaml" />
<ResourceDictionary Source="Styles/StaticImageDictionary.xaml" />
<ResourceDictionary Source="Styles/StaticColorBrushDictionary.xaml" />
<ResourceDictionary Source="Styles/StaticImageBrushDictionary.xaml" />
@@ -0,0 +1,29 @@
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Data;
using System.Windows.Media.Imaging;
namespace _29WxOrderWpf.Converters
{
public class ImageUrlToBitmapImageConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
if (value is string url && Uri.IsWellFormedUriString(url, UriKind.Absolute))
{
return new BitmapImage(new Uri(url));
//return Task.Run(() => new BitmapImage(new Uri(url))); // 使用 Task.Run 来异步加载图片。
}
return null;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException(); // 不需要反向转换,所以不实现。
}
}
}
+101 -18
View File
@@ -5,7 +5,8 @@
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:_29WxOrderWpf.Ctrls.OrderCtrls"
xmlns:utils="clr-namespace:_29WxOrderWpf.Utils"
xmlns:converters="clr-namespace:_29WxOrderWpf.Converters"
xmlns:converters="clr-namespace:_29WxOrderWpf.Converters"
xmlns:usercontrols="clr-namespace:_29WxOrderWpf.UserControls"
mc:Ignorable="d"
d:DesignHeight="450" d:DesignWidth="800" Loaded="Window_Loaded">
@@ -14,9 +15,11 @@
<Grid.RowDefinitions>
<RowDefinition Height="50"></RowDefinition>
<RowDefinition Height="40"></RowDefinition>
<RowDefinition Height="40"></RowDefinition>
<RowDefinition Height="*"></RowDefinition>
<RowDefinition Height="40"></RowDefinition>
</Grid.RowDefinitions>
<Grid x:Name="gridSearch">
<Grid x:Name="gridSearch" Margin="8,0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"></ColumnDefinition>
<ColumnDefinition Width="Auto"></ColumnDefinition>
@@ -30,43 +33,116 @@
<ColumnDefinition Width="*"></ColumnDefinition>
<ColumnDefinition Width="Auto"></ColumnDefinition>
<ColumnDefinition Width="Auto"></ColumnDefinition>
<ColumnDefinition Width="Auto"></ColumnDefinition>
</Grid.ColumnDefinitions>
<TextBox x:Name="txtShopName" Grid.Column="0" Margin="4,0,-4,0" BorderBrush="{StaticResource pageColorBrush}" BorderThickness="1" Height="28" VerticalContentAlignment="Center"
<usercontrols:UcWaterMarkTextBox x:Name="txtShopName" Grid.Column="0" Margin="8,0,-4,0" BorderBrush="{StaticResource pageColorBrush}" BorderThickness="1" Height="28" VerticalContentAlignment="Center"
Style="{StaticResource BaseRoundCornerTextBoxStyle}" />
<TextBlock Text="全部店铺" Grid.Column="0" Margin="8,0,8,0" VerticalAlignment="Center" IsHitTestVisible="False" Foreground="LightGray" Visibility="{Binding ElementName=txtShopName,Path=Text,Converter={StaticResource NotHasTextVisibility}}"></TextBlock>
<Button Grid.Column="1" x:Name="btnMultiShopChoice" Style="{StaticResource BasePageButtonStyle}" Margin="-4,0,4,0" Grid.Row="4" Content=" ... " Width="28" Height="28" Click="btnMultiShopChoice_Click"></Button>
<TextBox x:Name="txtGoodsName" Grid.Column="2" Margin="0,0,4,0" BorderBrush="{StaticResource pageColorBrush}" BorderThickness="1" Height="28" VerticalContentAlignment="Center"
<TextBlock Text="全部店铺" Grid.Column="0" Margin="12,0,8,0" VerticalAlignment="Center" IsHitTestVisible="False" Foreground="LightGray" Visibility="{Binding ElementName=txtShopName,Path=Text,Converter={StaticResource NotHasTextVisibility}}"></TextBlock>
<Button Grid.Column="1" x:Name="btnMultiShopChoice" Style="{StaticResource BasePageButtonStyle}" Margin="-4,0,0,0" Grid.Row="4" Content=" ... " Width="28" Height="28" Click="btnMultiShopChoice_Click"></Button>
<TextBox x:Name="txtGoodsName" Grid.Column="2" Margin="8,0,0,0" BorderBrush="{StaticResource pageColorBrush}" BorderThickness="1" Height="28" VerticalContentAlignment="Center"
Style="{StaticResource BaseRoundCornerTextBoxStyle}"/>
<TextBlock Text="商品标题" Grid.Column="2" Margin="8,0,8,0" VerticalAlignment="Center" IsHitTestVisible="False" Foreground="LightGray" Visibility="{Binding ElementName=txtGoodsName,Path=Text,Converter={StaticResource NotHasTextVisibility}}"></TextBlock>
<TextBlock Text="商品标题" Grid.Column="2" Margin="12,0,0,0" VerticalAlignment="Center" IsHitTestVisible="False" Foreground="LightGray" Visibility="{Binding ElementName=txtGoodsName,Path=Text,Converter={StaticResource NotHasTextVisibility}}"></TextBlock>
<ComboBox x:Name="cmbUserNameMobile" Margin="4,0" VerticalContentAlignment="Center" Style="{StaticResource BaseComboBoxStyle}" Grid.Column="3" Width="70" Height="28" Text="成交时间"/>
<Border Grid.Column="3" Margin="0,0,0,0" BorderBrush="{StaticResource pageColorBrush}" BorderThickness="1,1,1,1" Height="28" VerticalAlignment="Center" CornerRadius="4,0,0,4"/>
<ComboBox x:Name="cmbUserNameMobile" Margin="12,0,4,0" VerticalContentAlignment="Center" Style="{StaticResource BaseComboBoxStyle}" Grid.Column="3" Width="70" Height="28" Text="成交时间"/>
<Border Grid.Column="3" Margin="8,0,0,0" BorderBrush="{StaticResource pageColorBrush}" BorderThickness="1,1,1,1" Height="28" VerticalAlignment="Center" CornerRadius="4,0,0,4"/>
<Border Grid.Column="4" Margin="0,0,0,0" BorderBrush="{StaticResource pageColorBrush}" BorderThickness="0,1,1,1" Height="28" VerticalAlignment="Center" CornerRadius="0,0,0,0"/>
<DatePicker x:Name="dateStart" Grid.Column="4" Margin="0,0,4,0" VerticalAlignment="Center" BorderThickness="0" />
<Border Grid.Column="5" Margin="0,0,0,0" BorderBrush="{StaticResource pageColorBrush}" BorderThickness="0,1,1,1" Height="28" VerticalAlignment="Center" CornerRadius="0,4,4,0"/>
<DatePicker x:Name="dateEnd" Grid.Column="5" Margin="0,0,4,0" VerticalAlignment="Center" BorderThickness="0" />
<Button Grid.Column="10" x:Name="btnRefresh" Style="{StaticResource BasePageButtonStyle}" Margin="4,0,0,0" Grid.Row="4" Content="过滤" Width="48" Height="28" Click="btnSearch_Click"></Button>
<Button Grid.Column="11" x:Name="btnSearch" Style="{StaticResource BasePageButtonStyle}" Margin="4,0,4,0" Grid.Row="4" Content="读单" Width="48" Height="28" Click="btnSearch_Click"></Button>
<Button Grid.Column="10" x:Name="btnFilter" Style="{StaticResource BasePageButtonStyle}" Margin="4,0,0,0" Grid.Row="4" Content="过滤" Width="48" Height="24" Click="btnFilter_Click"></Button>
<Button Grid.Column="11" x:Name="btnSearch" Style="{StaticResource BasePageButtonStyle}" Margin="4,0,4,0" Grid.Row="4" Content="读单" Width="48" Height="24" Click="btnSearch_Click"></Button>
<Image Grid.Column="12" Source="{StaticResource loading_pic}" Width="20" Height="20">
<!--<Image.Triggers>
<EventTrigger RoutedEvent="Image.Loaded">
<BeginStoryboard>
<Storyboard>
<DoubleAnimation
Storyboard.TargetName="myElement"
Storyboard.TargetProperty="(UIElement.RenderTransform).(RotateTransform.Angle)"
To="360"
Duration="0:0:5"
RepeatBehavior="Forever"/>
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Image.Triggers>-->
</Image>
</Grid>
<Grid x:Name="gridListHeader" Margin="4,0" Grid.Row="1">
<Grid x:Name="gridListHeader" Margin="12,0" Grid.Row="1">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="40"></ColumnDefinition>
<!--<ColumnDefinition Width="40"></ColumnDefinition>
<ColumnDefinition Width="100*"></ColumnDefinition>
<ColumnDefinition Width="50*"></ColumnDefinition>
<ColumnDefinition Width="50*"></ColumnDefinition>
<ColumnDefinition Width="100*"></ColumnDefinition>
<ColumnDefinition Width="50*"></ColumnDefinition>
<ColumnDefinition Width="50*"></ColumnDefinition>
<ColumnDefinition Width="50*"></ColumnDefinition>
<ColumnDefinition Width="50*"></ColumnDefinition>-->
</Grid.ColumnDefinitions>
<TabControl x:Name="tabOrderType" Height="24" FontSize="16" VerticalAlignment="Bottom" SelectionChanged="tabOrderType_SelectionChanged" >
<TabItem Header="待采购">
<Grid Background="#FF33E5E5"/>
</TabItem>
<TabItem Header="待发货">
<Grid Background="#FFE5E5E5"/>
</TabItem>
<TabItem Header="待收货">
<Grid Background="#FFE5E5E5"/>
</TabItem>
<TabItem Header="退款单">
<Grid Background="#FFE5E5E5"/>
</TabItem>
<TabItem Header="全部订单">
<Grid Background="#FFE5E5E5"/>
</TabItem>
<TabItem Header="发货异常">
<Grid Background="#FFE5E5E5"/>
</TabItem>
</TabControl>
</Grid>
<ListBox IsHitTestVisible="True" BorderThickness="0" ItemsSource="{Binding lstOrder}" Grid.Row="2" HorizontalContentAlignment="Stretch" x:Name="lbxOrder" Margin="4,0,4,4">
<Grid x:Name="lstTitle" Grid.Row="2" Margin="12,0,16,0" Background="{StaticResource ListHeadBackColorBrush}">
<Border BorderThickness="0,0,1,0" BorderBrush="{StaticResource ListHeadBorderColorBrush}">
<DataGrid Margin="0,0,18,0" x:Name="dgOrderHeader" Grid.ColumnSpan="100" AutoGenerateColumns="False" CanUserReorderColumns="False"
ColumnHeaderHeight="{Binding ElementName=lstTitle, Path=ActualHeight}" BorderThickness="0"
ColumnDisplayIndexChanged="dgOrderHeader_ColumnDisplayIndexChanged"
LayoutUpdated="dgOrderHeader_LayoutUpdated">
<DataGrid.Columns>
<DataGridTemplateColumn x:Name="colSelectAll" Header="选择" Width="50" HeaderStyle="{StaticResource BaseDataGridColumnHeaderStyle}">
<DataGridTemplateColumn.HeaderTemplate>
<DataTemplate>
<Grid Width="14" Height="14">
<!--<CheckBox x:Name="headerCheckBox" BorderThickness="0" IsChecked="{Binding DataContext.AreAllSelected, RelativeSource={RelativeSource AncestorType=DataGrid}, UpdateSourceTrigger=PropertyChanged}" Checked="HeaderCheckBox_Checked" Unchecked="HeaderCheckBox_Unchecked"/>-->
<CheckBox x:Name="chkSelectAll" BorderThickness="0" IsChecked="False" Checked="ChkSelectAll_Checked" Unchecked="ChkSelectAll_Unchecked" Loaded="ChkSelectAll_Loaded" IsThreeState="True"/>
<Border BorderThickness="1" Background="Transparent" BorderBrush="{StaticResource mainColorBrush}" Width="14" Height="14"
HorizontalAlignment="Center" VerticalAlignment="Center" IsHitTestVisible="False">
</Border>
</Grid>
</DataTemplate>
</DataGridTemplateColumn.HeaderTemplate>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<!--<CheckBox IsChecked="{Binding IsSelected, UpdateSourceTrigger=PropertyChanged}" HorizontalAlignment="Center" VerticalAlignment="Center"/>-->
<CheckBox HorizontalAlignment="Center" VerticalAlignment="Center"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTextColumn Width="200*" HeaderStyle="{StaticResource BaseDataGridColumnHeaderStyle}" Header="店铺单号"/>
<DataGridTextColumn Width="100*" HeaderStyle="{StaticResource BaseDataGridColumnHeaderStyle}" Header="交易时间"/>
<DataGridTextColumn Width="100*" HeaderStyle="{StaticResource BaseDataGridColumnHeaderStyle}" Header="利润"/>
<DataGridTextColumn Width="160*" HeaderStyle="{StaticResource BaseDataGridColumnHeaderStyle}" Header="状态/地址"/>
<DataGridTextColumn Width="100*" HeaderStyle="{StaticResource BaseDataGridColumnHeaderStyle}" Header="单号"/>
<DataGridTextColumn Width="120*" HeaderStyle="{StaticResource BaseDataGridColumnHeaderStyle}" Header="备注"/>
<DataGridTextColumn Width="82*" HeaderStyle="{StaticResource BaseDataGridColumnHeaderStyle}" Header=" 操作"/>
</DataGrid.Columns>
</DataGrid>
</Border>
</Grid>
<ListBox IsHitTestVisible="True" BorderThickness="0" ItemsSource="{Binding lstFilterOrder}" Grid.Row="3" HorizontalContentAlignment="Stretch" x:Name="lbxOrder" Margin="0,0,0,4">
<!--使用自定义属性模板去除ListBox高亮显示框-->
<ListBox.ItemContainerStyle>
<Style TargetType="ListBoxItem">
@@ -84,9 +160,16 @@
<ListBox.ItemTemplate>
<DataTemplate>
<!--此处绑定将数据源传递给子自定义控件OrderListRowCtrl-->
<local:OrderListRowCtrl Visibility="{Binding }" DataContext="{Binding}"></local:OrderListRowCtrl>
<local:OrderListRowCtrl DataContext="{Binding}" VerticalAlignment="Center" VerticalContentAlignment="Center"></local:OrderListRowCtrl>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
<Grid x:Name="gridFooter" Grid.Row="4">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="100*"></ColumnDefinition>
<ColumnDefinition Width="Auto"></ColumnDefinition>
</Grid.ColumnDefinitions>
<TextBox x:Name="txtFilterCount" Text="共计 0 条" Grid.Column="1" Grid.Row="2" Margin="8,0" VerticalAlignment="Center" Background="Transparent" IsReadOnly="True" BorderThickness="0"/>
</Grid>
</Grid>
</UserControl>
@@ -1,4 +1,5 @@
using _29WxOrderWpf.BaseWindows;
using _29WxOrderWpf.Utils;
using AllBase;
using AllBase.Extension;
using AllBase.Helper;
@@ -31,9 +32,10 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls
/// </summary>
public partial class OrderListCtrl : UserControl
{
public ObservableCollection<oms_wei_order_info> lstOrder { get; set; } = new ObservableCollection<oms_wei_order_info>();
public List<oms_wei_order_info> lstOrder1 { get; set; } = new List<oms_wei_order_info>();
public static ObservableCollection<oms_wei_order_info> lstOrder { get; set; } = new ObservableCollection<oms_wei_order_info>();
public static ObservableCollection<oms_wei_order_info> lstFilterOrder { get; set; } = new ObservableCollection<oms_wei_order_info>();
public CheckBox chkSelectAll = null;
public OrderListCtrl()
{
@@ -43,15 +45,7 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls
private void Window_Loaded(object sender, RoutedEventArgs e)
{
//MyData newItem = new MyData { Name = "New Person", Age = 28 }; // 创建新数据项
//_myDataCollection.Add(newItem); // 添加到集合中
//dataGrid.Items.Refresh();.
//dgOrder.Items.Add(1111111);
//dgOrder.ItemsSource = lstOrder;
//lbxOrder.ItemsSource = lstOrder;
dateStart.SelectedDate = DateTime.Now.Date.AddDays(-30);
dateStart.SelectedDate = DateTime.Now.Date.AddDays(-7);
dateEnd.SelectedDate = DateTime.Now.Date.AddDays(1).AddSeconds(-1);
Task.Run(() =>
@@ -70,14 +64,18 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls
{
for (int i = 0; i < 10000; i++)
{
//lstOrder.Add(new oms_wei_order_info() { id = 1, is_select = false, order_id = ("3737033423685556736".ParseToLong() + Randomx.GetId(0,100)).ParseToString(), shop_name = "媛卡曦工厂优选" });
lstOrder.Add(new oms_wei_order_info() { id = 1, is_select = false, order_id = Randomx.GetId(1000, 10000).ParseToString(), shop_name = "媛卡曦工厂优选" });
//lstOrder.Add(new oms_wei_order_info() { id = 1, IsSelect = false, order_id = ("3737033423685556736".ParseToLong() + Randomx.GetId(0,100)).ParseToString(), shop_name = "媛卡曦工厂优选" });
lstOrder.Add(new oms_wei_order_info() { id = 1, IsSelect = false, order_id = Randomx.GetId(1000, 10000).ParseToString(), shop_name = "媛卡曦工厂优选" });
}
lstOrder.SortDesc(o => o.order_id.ParseToLong());
}
void GetOrder()
void GetOrder(bool filterGetCondition = false)
{
Dispatcher.Invoke(new Action(() =>
{
btnSearch.IsEnabled = false;
}));
Task.Run(() =>
{
int page = 0;
@@ -98,25 +96,28 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls
var shop_id = string.Join(",", GlobalConfig.ShopLoginList.Select(s => s.ErpShopId).Where(s => !s.IsNullOrEmpty()));
Dispatcher.Invoke(new Action(() =>
{
if (!string.IsNullOrEmpty(txtShopName.Text.Trim()))
// 按过滤条件读取
if (filterGetCondition)
{
var shopNames = txtShopName.Text.Trim().Split(';').Where(s => !s.IsNullOrEmpty()).ToList();
shop_id = string.Join(",", GlobalConfig.ShopLoginList.Where(s => shopNames.Contains(s.ShopAccount)).Select(s => s.ErpShopId).Where(s => !s.IsNullOrEmpty()));
if (!string.IsNullOrEmpty(txtShopName.Text.Trim()))
{
var shopNames = txtShopName.Text.Trim().Split(';').Where(s => !s.IsNullOrEmpty()).ToList();
shop_id = string.Join(",", GlobalConfig.ShopLoginList.Where(s => shopNames.Contains(s.ShopAccount)).Select(s => s.ErpShopId).Where(s => !s.IsNullOrEmpty()));
}
}
var startTime = BaseClass.DateTimeToTimestampSeconds(dateStart.SelectedDate.Value);
var endTime = BaseClass.DateTimeToTimestampSeconds(dateEnd.SelectedDate.Value);
var endTime = BaseClass.DateTimeToTimestampSeconds(dateEnd.SelectedDate.Value.AddDays(1));
data += "&erp_shop_id_in=" + shop_id;
data += "&start_time=" + startTime;
data += "&end_time=" + endTime;
}));
Thread.Sleep(200);
var html = GetHtml.PostUtf8(url, data);
if (string.IsNullOrEmpty(html) || !html.Contains("\"code\":200"))
html = GetHtml.PostUtf8(url, data);
if (string.IsNullOrEmpty(html) || !html.Contains("\"code\":200"))
html = GetHtml.PostUtf8(url, data);
if (string.IsNullOrEmpty(html) || !html.Contains("\"code\":200"))
{
BaseMsgWindow.ShowError(MainWindow.Instance, "订单读取失败 " + BaseRegex.GetStringJson(ref html, "msg"));
break;
}
@@ -124,33 +125,191 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls
if (jArr.Count() == 0)
break;
var order_ids = string.Join(",", jArr.Select(a => a["order_id"].ParseToString()));
if (order_ids.Contains("3737210716522443776"))
{
}
var url1 = BaseClass.Build29WxObjString("order/get_order_item_list");
var data1 = UserLogin.GetSignaturex();
data1 += "&erp_order_id_in=" + order_ids;
var html1 = GetHtml.PostUtf8(url1, data1);
if (string.IsNullOrEmpty(html1) || !html1.Contains("\"code\":200"))
html1 = GetHtml.PostUtf8(url, data);
if (string.IsNullOrEmpty(html1) || !html1.Contains("\"code\":200"))
{
BaseMsgWindow.ShowError(MainWindow.Instance, "订单读取失败 " + BaseRegex.GetStringJson(ref html, "msg"));
break;
}
List<oms_wei_order_item> orderItems = new List<oms_wei_order_item>();
try { orderItems = JsonHelper.DeserializeJsonToList<oms_wei_order_item>(JObject.Parse(html1)["data"].ParseToString()); } catch { }
foreach (JObject jObj in jArr)
{
Dispatcher.Invoke(new Action(() =>
{
var order = JsonHelper.DeserializeJsonToObject<oms_wei_order_info>(JsonHelper.SerializeObject(jObj));
var orderExist = this.lstOrder.FirstOrDefault(o => o.order_id == order.order_id);
if (orderExist != null)
this.lstOrder.Remove(orderExist);
try
{
var order = JsonHelper.DeserializeJsonToObject<oms_wei_order_info>(JsonHelper.SerializeObject(jObj));
order.order_items = new ObservableCollection<oms_wei_order_item>();
foreach(var item in orderItems.Where(oi => oi.order_id == order.order_id))
{
if (item.cash_coupon_discounted_price > 0)
{
var nextOrder = this.lstOrder.FirstOrDefault(o => o.create_time < order.create_time);
if (nextOrder != null)
{
lstOrder.Insert(lstOrder.IndexOf(nextOrder), order);
}
order.order_items.Add(item);
}
var orderExist = lstOrder.FirstOrDefault(o => o.order_id == order.order_id);
if (orderExist != null)
lstOrder.Remove(orderExist);
var nextOrder = lstOrder.FirstOrDefault(o => o.create_time < order.create_time);
if (nextOrder != null)
{
lstOrder.Insert(lstOrder.IndexOf(nextOrder), order);
}
else
{
lstOrder.Add(order);
}
FilterOneOrder(order);
}
else
catch (Exception ex)
{
lstOrder.Add(order);
}
}));
}
Dispatcher.Invoke(new Action(() => {
var tabItem = this.tabOrderType.Items.Cast<TabItem>().FirstOrDefault(t => t.Header.ParseToString().StartsWith("待采购"));
if (tabItem != null)
{
tabItem.Header = "待采购(" + lstOrder.Where(r => r.purchase_status == 0 && r.status == 20).Count() + ")";
}
tabItem = this.tabOrderType.Items.Cast<TabItem>().FirstOrDefault(t => t.Header.ParseToString().StartsWith("待发货"));
if (tabItem != null)
{
tabItem.Header = "待发货(" + lstOrder.Where(r => r.purchase_status == 1 && r.status == 20).Count() + ")";
}
tabItem = this.tabOrderType.Items.Cast<TabItem>().FirstOrDefault(t => t.Header.ParseToString().StartsWith("待收货"));
if (tabItem != null)
{
tabItem.Header = "待收货(" + lstOrder.Where(r =>/* r.purchase_status == 1 &&*/ (r.status == 30 || r.status == 100)).Count() + ")";
}
tabItem = this.tabOrderType.Items.Cast<TabItem>().FirstOrDefault(t => t.Header.ParseToString().StartsWith("退款单"));
if (tabItem != null)
{
tabItem.Header = "退款单(" + lstOrder.Where(r => r.status == 200).Count() + ")";
}
tabItem = this.tabOrderType.Items.Cast<TabItem>().FirstOrDefault(t => t.Header.ParseToString().StartsWith("全部订单"));
if (tabItem != null)
{
tabItem.Header = "全部订单(" + lstOrder.Count() + ")";
}
txtFilterCount.Text = "当前条件共计 " + lstFilterOrder.Count() + " 条订单记录";
}));
var totalCount = BaseRegex.GetIntJson(ref html, "count");
totalPage = Math.Ceiling(1m * totalCount / pageSize).ParseToInt();
if (totalCount > 0)
totalPage = Math.Ceiling(1m * totalCount / pageSize).ParseToInt();
else
{
}
}
Dispatcher.Invoke(new Action(() =>
{
btnSearch.IsEnabled = true;
}));
});
}
void FilterOrders()
{
try
{
foreach (var order in lstFilterOrder.ToList())
{
if (GetOrderIsFilter(order))
{
lstFilterOrder.Remove(order);
}
}
foreach (var order in lstOrder.ToList())
{
FilterOneOrder(order);
}
Dispatcher.Invoke(new Action(() => {
txtFilterCount.Text = "当前条件共计 " + lstFilterOrder.Count().ToString() + " 条订单记录";
}));
}
catch (Exception ex)
{
}
}
void FilterOneOrder(oms_wei_order_info order)
{
if (!GetOrderIsFilter(order))
{
var orderExist = lstFilterOrder.FirstOrDefault(o => o.order_id == order.order_id);
if (orderExist != null)
lstFilterOrder.Remove(orderExist);
var nextOrder = lstFilterOrder.FirstOrDefault(o => o.create_time < order.create_time);
if (nextOrder != null)
{
lstFilterOrder.Insert(lstFilterOrder.IndexOf(nextOrder), order);
}
else
{
lstFilterOrder.Add(order);
}
}
}
bool GetOrderIsFilter(oms_wei_order_info order)
{
if (order.order_id == "3737234765235244032")
{
}
if (order == null) return true;
if (!string.IsNullOrEmpty(txtShopName.Text.Trim()) && !(";" + txtShopName.Text.Trim() + ";").Contains(";" + order.shop_name + ";"))
{
return true;
}
if (!string.IsNullOrEmpty(txtGoodsName.Text.Trim()) && !order.order_items.Any(it => it.title.Contains(txtGoodsName.Text.Trim())))
{
return true;
}
if (((tabOrderType.SelectedItem as TabItem)?.Header).ParseToString().StartsWith("待采购") && (order.purchase_status != 0 || order.status != 20))
{
return true;
}
if (((tabOrderType.SelectedItem as TabItem)?.Header).ParseToString().StartsWith("待发货") && (order.purchase_status != 1 || order.status != 20))
{
return true;
}
if (((tabOrderType.SelectedItem as TabItem)?.Header).ParseToString().StartsWith("待收货") && (/*order.purchase_status != 1 ||*/ (order.status != 30 && order.status != 100)))
{
return true;
}
if (((tabOrderType.SelectedItem as TabItem)?.Header).ParseToString().StartsWith("退款单") && (order.status != 200))
{
return true;
}
return false;
}
private void btnMultiShopChoice_Click(object sender, RoutedEventArgs e)
{
MainWindow.Instance.shopListCtrl.IsVisibleChanged -= ShopListCtrl_IsVisibleChanged;
@@ -166,12 +325,91 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls
if (list != null)
this.txtShopName.Text = string.Join(";", list.Where(s => s.IsSelect == true).Select(s => s.ShopAccount));
FilterOrders();
}
MainWindow.Instance.shopListCtrl.IsVisibleChanged -= ShopListCtrl_IsVisibleChanged;
}
private void btnSearch_Click(object sender, RoutedEventArgs e)
{
GetOrder();
}
private void btnFilter_Click(object sender, RoutedEventArgs e)
{
FilterOrders();
}
private void dgOrderHeader_ColumnDisplayIndexChanged(object sender, DataGridColumnEventArgs e)
{
}
private void dgOrderHeader_LayoutUpdated(object sender, EventArgs e)
{
foreach (var item in lbxOrder.Items)
{
ListBoxItem container = (ListBoxItem)lbxOrder.ItemContainerGenerator.ContainerFromIndex(lbxOrder.Items.IndexOf(item));
if (container != null)
{
// 找到grid控件并修改列大小
Grid grid = UiCtrlUtils.FindVisualChild<Grid>(container, "gridListItem");
if (grid != null)
{
for (int i = 0; i < grid.ColumnDefinitions.Count; i++)
{
if (dgOrderHeader.Columns.Count > i)
{
// 最后一列因滚动条变窄,已在表头补偿
if (i == grid.ColumnDefinitions.Count - 1)
grid.ColumnDefinitions[i].Width = new GridLength(Math.Max(0, dgOrderHeader.Columns[i].ActualWidth - 0));
else
grid.ColumnDefinitions[i].Width = new GridLength(dgOrderHeader.Columns[i].ActualWidth);
}
}
}
}
}
}
private void ChkSelectAll_Checked(object sender, RoutedEventArgs e)
{
foreach (var order in lstOrder.ToList())
{
order.IsSelect = true;
}
}
private void ChkSelectAll_Unchecked(object sender, RoutedEventArgs e)
{
foreach (var order in lstOrder.ToList())
{
order.IsSelect = false;
}
}
private void ChkSelectAll_Loaded(object sender, RoutedEventArgs e)
{
chkSelectAll = sender as CheckBox;
}
public void UpdateChkAllBox ()
{
chkSelectAll.Checked -= ChkSelectAll_Checked;
chkSelectAll.Unchecked -= ChkSelectAll_Unchecked;
if (lstFilterOrder.All(s => s.IsSelect))
chkSelectAll.IsChecked = true;
else if (lstFilterOrder.All(s => !s.IsSelect))
chkSelectAll.IsChecked = false;
else
chkSelectAll.IsChecked = null;
chkSelectAll.Checked += ChkSelectAll_Checked;
chkSelectAll.Unchecked += ChkSelectAll_Unchecked;
}
private void tabOrderType_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
FilterOrders();
}
}
}
@@ -3,10 +3,11 @@
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:_29WxOrderWpf.Ctrls.OrderCtrls"
xmlns:local="clr-namespace:_29WxOrderWpf.Ctrls.OrderCtrls"
xmlns:uc="clr-namespace:_29WxOrderWpf.UserControls"
mc:Ignorable="d"
d:DesignHeight="200" d:DesignWidth="800">
<Border Margin="12,12,12,0" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" BorderThickness="1"
d:DesignHeight="230" d:DesignWidth="1200">
<Border Margin="12,12,12,0" HorizontalAlignment="Stretch" VerticalAlignment="Center" BorderThickness="1"
BorderBrush="{StaticResource ListRowBorderColorBrush}" CornerRadius="10">
<Border.Style>
<!-- 鼠标进入或悬停Border时切换颜色(悬停时Border的填充控件必须有填充Border,所在层级不限,仅填充透明Grid则触发器无效) -->
@@ -18,7 +19,7 @@
</Style.Triggers>
</Style>
</Border.Style>
<Grid HorizontalAlignment="Stretch" VerticalAlignment="Stretch" MinHeight="120">
<Grid HorizontalAlignment="Stretch" VerticalAlignment="Center">
<Grid.RowDefinitions>
<RowDefinition Height="auto"></RowDefinition>
<RowDefinition Height="*"></RowDefinition>
@@ -29,10 +30,125 @@
<Border Grid.Row="1" Background="Transparent" CornerRadius="0,0,12,12" >
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="6"></RowDefinition>
<RowDefinition Height="*"></RowDefinition>
<RowDefinition Height="auto"></RowDefinition>
<RowDefinition Height="*"></RowDefinition>
<RowDefinition Height="6"></RowDefinition>
</Grid.RowDefinitions>
<Grid x:Name="gridListItem" Grid.Row="1" VerticalAlignment="Center">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="50"></ColumnDefinition>
<ColumnDefinition Width="200*"></ColumnDefinition>
<ColumnDefinition Width="100*"></ColumnDefinition>
<ColumnDefinition Width="100*"></ColumnDefinition>
<ColumnDefinition Width="160*"></ColumnDefinition>
<ColumnDefinition Width="100*"></ColumnDefinition>
<ColumnDefinition Width="120*"></ColumnDefinition>
<ColumnDefinition Width="82*"></ColumnDefinition>
</Grid.ColumnDefinitions>
<!--选择框-->
<CheckBox Grid.Column="0" Background="Transparent" HorizontalAlignment="Center" VerticalAlignment="Center" Tag="{Binding order_id}" IsChecked="{Binding IsSelect, Mode=TwoWay}" Click="CheckBox_Click"/>
<!--订单商品信息-->
<Grid Grid.Column="1" Background="Transparent" VerticalAlignment="Center">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="auto" MinWidth="50"></ColumnDefinition>
<ColumnDefinition Width="*"></ColumnDefinition>
</Grid.ColumnDefinitions>
<Image Grid.Row="1" Grid.Column="0" VerticalAlignment="Top" Height="100" Width="100" Margin="0,2,8,2" Source="{Binding order_item.thumb_img, Converter={StaticResource ImageUrlToBitmapImage}}"></Image>
<Grid Grid.Column="1">
<Grid.RowDefinitions>
<RowDefinition Height="*"></RowDefinition>
<RowDefinition Height="Auto"></RowDefinition>
<RowDefinition Height="Auto"></RowDefinition>
<RowDefinition Height="Auto"></RowDefinition>
<RowDefinition Height="Auto"></RowDefinition>
<RowDefinition Height="Auto"></RowDefinition>
<RowDefinition Height="Auto"></RowDefinition>
<RowDefinition Height="Auto"></RowDefinition>
<RowDefinition Height="Auto"></RowDefinition>
<RowDefinition Height="*"></RowDefinition>
</Grid.RowDefinitions>
<!--<Image Grid.RowSpan="20" Grid.Column="0" Height="80" Width="80" Margin="0,0,8,0" Source="{DynamicResource err_pic}"></Image>-->
<uc:UcWaterMarkTextBox WaterMark="商品名称" x:Name="txtGoodsName" Text="{Binding order_item.title}" Grid.Column="1" Grid.Row="1" Margin="0,2,4,2"
Background="Transparent" IsReadOnly="True" BorderThickness="0" TextWrapping="Wrap" FontWeight="Bold"/>
<TextBox Text="数量:" Grid.Column="1" Grid.Row="2" Margin="0,2,4,2" VerticalAlignment="Top" Background="Transparent" IsReadOnly="True" BorderThickness="0"/>
<uc:UcWaterMarkTextBox WaterMark="SKU数量" Text="{Binding order_item.sku_cnt}" Grid.Column="1" Grid.Row="2" Margin="36,2,4,2" VerticalAlignment="Top"
Background="Transparent" IsReadOnly="True" BorderThickness="0" TextWrapping="Wrap"/>
<TextBox Text="规格:" Grid.Column="1" Grid.Row="3" Margin="0,2,4,2" VerticalAlignment="Top" Background="Transparent" IsReadOnly="True" BorderThickness="0"/>
<uc:UcWaterMarkTextBox WaterMark="规格" Text="待连表查询" Grid.Column="1" Grid.Row="3" Margin="36,2,4,2" VerticalAlignment="Top"
Background="Transparent" IsReadOnly="True" BorderThickness="0" TextWrapping="Wrap"/>
<TextBox Text="平台商品ID:" Grid.Column="1" Grid.Row="4" Margin="0,2,4,2" VerticalAlignment="Top" Background="Transparent" IsReadOnly="True" BorderThickness="0"/>
<uc:UcWaterMarkTextBox WaterMark="平台商品ID" Text="{Binding order_item.product_id}" Grid.Column="1" Grid.Row="4" Margin="72,2,4,2" VerticalAlignment="Top"
Background="Transparent" IsReadOnly="True" BorderThickness="0" TextWrapping="Wrap"/>
<TextBox Text="系统商品ID:" Grid.Column="1" Grid.Row="5" Margin="0,2,4,2" VerticalAlignment="Top" Background="Transparent" IsReadOnly="True" BorderThickness="0"/>
<uc:UcWaterMarkTextBox WaterMark="系统商品ID" Text="{Binding order_item.out_product_id}" Grid.Column="1" Grid.Row="5" Margin="72,2,4,2" VerticalAlignment="Top"
Background="Transparent" IsReadOnly="True" BorderThickness="0" TextWrapping="Wrap"/>
<TextBox Text="系统sku编码:" Grid.Column="1" Grid.Row="6" Margin="0,2,4,2" VerticalAlignment="Top" Background="Transparent" IsReadOnly="True" BorderThickness="0"/>
<uc:UcWaterMarkTextBox WaterMark="系统sku编码" Text="{Binding order_item.out_sku_id}" Grid.Column="1" Grid.Row="6" Margin="78,2,4,2" VerticalAlignment="Top"
Background="Transparent" IsReadOnly="True" BorderThickness="0" TextWrapping="Wrap"/>
</Grid>
</Grid>
<!--订单时间信息-->
<Grid Grid.Column="2" Background="Transparent" VerticalAlignment="Center">
<Grid.RowDefinitions>
<RowDefinition Height="*"></RowDefinition>
<RowDefinition Height="Auto"></RowDefinition>
<RowDefinition Height="Auto"></RowDefinition>
<RowDefinition Height="Auto"></RowDefinition>
<RowDefinition Height="Auto"></RowDefinition>
<RowDefinition Height="Auto"></RowDefinition>
<RowDefinition Height="Auto"></RowDefinition>
<RowDefinition Height="*"></RowDefinition>
</Grid.RowDefinitions>
<TextBox Text="成交时间:" Grid.Column="1" Grid.Row="4" Margin="0,2,4,2" VerticalAlignment="Top" Background="Transparent" IsReadOnly="True" BorderThickness="0"/>
<uc:UcWaterMarkTextBox WaterMark="成交时间" Text="{Binding create_time_str}" Grid.Column="1" Grid.Row="4" Margin="60,2,4,2" VerticalAlignment="Top"
Background="Transparent" IsReadOnly="True" BorderThickness="0" TextWrapping="Wrap"/>
</Grid>
<!--订单利润-->
<Grid Grid.Column="3" Background="Transparent" VerticalAlignment="Center">
<Grid.RowDefinitions>
<RowDefinition Height="*"></RowDefinition>
<RowDefinition Height="Auto"></RowDefinition>
<RowDefinition Height="Auto"></RowDefinition>
<RowDefinition Height="Auto"></RowDefinition>
<RowDefinition Height="Auto"></RowDefinition>
<RowDefinition Height="Auto"></RowDefinition>
<RowDefinition Height="Auto"></RowDefinition>
<RowDefinition Height="Auto"></RowDefinition>
<RowDefinition Height="Auto"></RowDefinition>
<RowDefinition Height="*"></RowDefinition>
</Grid.RowDefinitions>
<TextBox Text="售价:" Grid.Column="1" Grid.Row="1" Margin="0,2,4,2" VerticalAlignment="Top" Background="Transparent" IsReadOnly="True" BorderThickness="0"/>
<uc:UcWaterMarkTextBox WaterMark="售价" Text="{Binding sale_price_total_str}" Grid.Column="1" Grid.Row="1" Margin="36,2,4,2" VerticalAlignment="Top"
Background="Transparent" IsReadOnly="True" BorderThickness="0" TextWrapping="Wrap"/>
<TextBox Text="平台优惠:" Grid.Column="1" Grid.Row="2" Margin="0,2,4,2" VerticalAlignment="Top" Background="Transparent" IsReadOnly="True" BorderThickness="0"/>
<uc:UcWaterMarkTextBox WaterMark="平台优惠" Text="{Binding cash_coupon_discounted_price_str}" Grid.Column="1" Grid.Row="2" Margin="60,2,4,2" VerticalAlignment="Top"
Background="Transparent" IsReadOnly="True" BorderThickness="0" TextWrapping="Wrap"/>
<TextBox Text="进价:" Grid.Column="1" Grid.Row="3" Margin="0,2,4,2" VerticalAlignment="Top" Background="Transparent" IsReadOnly="True" BorderThickness="0"/>
<uc:UcWaterMarkTextBox WaterMark="进价" Text="" Grid.Column="1" Grid.Row="3" Margin="36,2,4,2" VerticalAlignment="Top"
Background="Transparent" IsReadOnly="True" BorderThickness="0" TextWrapping="Wrap"/>
<TextBox Text="运费:" Grid.Column="1" Grid.Row="4" Margin="0,2,4,2" VerticalAlignment="Top" Background="Transparent" IsReadOnly="True" BorderThickness="0"/>
<uc:UcWaterMarkTextBox WaterMark="运费" Text="" Grid.Column="1" Grid.Row="4" Margin="36,2,4,2" VerticalAlignment="Top"
Background="Transparent" IsReadOnly="True" BorderThickness="0" TextWrapping="Wrap"/>
<TextBox Text="平台服务费:" Grid.Column="1" Grid.Row="5" Margin="0,2,4,2" VerticalAlignment="Top" Background="Transparent" IsReadOnly="True" BorderThickness="0"/>
<uc:UcWaterMarkTextBox WaterMark="平台服务费" Text="" Grid.Row="5" Margin="72,0,4,0" VerticalAlignment="Center"
Background="Transparent" IsReadOnly="True" BorderThickness="0" TextWrapping="Wrap"/>
<TextBox Text="达人佣金:" Grid.Column="1" Grid.Row="6" Margin="0,2,4,2" VerticalAlignment="Top" Background="Transparent" IsReadOnly="True" BorderThickness="0"/>
<uc:UcWaterMarkTextBox WaterMark="达人佣金" Text="" Grid.Row="6" Margin="60,0,4,0" VerticalAlignment="Center"
Background="Transparent" IsReadOnly="True" BorderThickness="0" TextWrapping="Wrap"/>
<TextBox Text="外采金额:" Grid.Column="1" Grid.Row="7" Margin="0,2,4,2" VerticalAlignment="Top" Background="Transparent" IsReadOnly="True" BorderThickness="0"/>
<uc:UcWaterMarkTextBox WaterMark="外采金额" Text="" Grid.Row="7" Margin="60,0,4,0" VerticalAlignment="Center"
Background="Transparent" IsReadOnly="True" BorderThickness="0" TextWrapping="Wrap"/>
<TextBox Text="利润:" Grid.Column="1" Grid.Row="8" Margin="0,2,4,2" VerticalAlignment="Top" Background="Transparent" IsReadOnly="True" BorderThickness="0"/>
<uc:UcWaterMarkTextBox WaterMark="外采金额" Text="" Grid.Row="8" Margin="36,0,4,0" VerticalAlignment="Center"
Background="Transparent" IsReadOnly="True" BorderThickness="0" TextWrapping="Wrap" FontWeight="Bold"/>
</Grid>
</Grid>
</Grid>
</Border>
</Grid>
@@ -25,6 +25,23 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls
public OrderListRowCtrl()
{
InitializeComponent();
//BitmapImage bitImage = new BitmapImage();
//bitImage.BeginInit();
//bitImage.UriSource = new Uri(imageUrl, UriKind.Absolute);
//bitImage.EndInit();
//img.Source = bitImage;
}
private void CheckBox_Click(object sender, RoutedEventArgs e)
{
try
{
MainWindow.Instance.orderListCtrl.UpdateChkAllBox();
}
catch
{
}
}
}
}
@@ -3,7 +3,7 @@
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:_29WxOrderWpf.Ctrls.OrderCtrls" xmlns:usercontrols="clr-namespace:_29WxOrderWpf.UserControls"
xmlns:local="clr-namespace:_29WxOrderWpf.Ctrls.OrderCtrls" xmlns:uc="clr-namespace:_29WxOrderWpf.UserControls"
mc:Ignorable="d"
d:DesignHeight="50" d:DesignWidth="800">
@@ -21,28 +21,29 @@
<ColumnDefinition Width="auto"/>
</Grid.ColumnDefinitions>
<TextBox Grid.Column="0" Margin="8,8,-4,8" VerticalAlignment="Center" FontSize="14" Background="Transparent" IsReadOnly="True" Text="店铺单号:" BorderThickness="0" />
<TextBox x:Name="txtOrderId" Grid.Column="1" Margin="0,8,4,8" VerticalAlignment="Center" FontSize="14" Background="Transparent" IsReadOnly="True" Text="{Binding order_id}" BorderThickness="0" />
<TextBlock Text="订单号" Grid.Column="1" Margin="0,8,4,8" VerticalAlignment="Center" IsHitTestVisible="False" Foreground="LightGray" Visibility="{Binding ElementName=txtOrderId,Path=Text,Converter={StaticResource NotHasTextVisibility}}"></TextBlock>
<uc:UcWaterMarkTextBox WaterMark="订单号" x:Name="txtOrderId" Grid.Column="1" Margin="0,8,4,8" VerticalAlignment="Center" FontSize="14" Background="Transparent" IsReadOnly="True" Text="{Binding order_id}" BorderThickness="0" />
<Border Grid.Column="2" Width="12" Background="Transparent" Height="12" VerticalAlignment="Center" Cursor="Hand"
Tag="{Binding order_id}" MouseLeftButtonDown="Path_MouseLeftButtonDown">
<Path Margin="0,0,0,0" Fill="#409eff" Tag="{Binding order_id}" MouseLeftButtonDown="Path_MouseLeftButtonDown" Data="M80 432a128 128 0 0 1 128-128h384a128 128 0 0 1 128 128v384a128 128 0 0 1-128 128h-384a128 128 0 0 1-128-128v-384z m128-64a64 64 0 0 0-64 64v384a64 64 0 0 0 64 64h384a64 64 0 0 0 64-64v-384a64 64 0 0 0-64-64h-384z M816 144h-384a64 64 0 0 0-64 64 32 32 0 0 1-64 0 128 128 0 0 1 128-128h384a128 128 0 0 1 128 128v384a128 128 0 0 1-128 128 32 32 0 0 1 0-64 64 64 0 0 0 64-64v-384a64 64 0 0 0-64-64z" Stretch="Uniform" />
</Border>
<Border Grid.Column="3" Margin="8,0,0,0" Background="#e8fbf9" BorderBrush="#d0fbea" BorderThickness="1" MinWidth="30" Height="24" CornerRadius="2">
<Border x:Name="borderDeadline" Grid.Column="3" Margin="8,0,0,0" Background="#e8fbf9" BorderBrush="#d0fbea" BorderThickness="1" MinWidth="30" Height="24" CornerRadius="2">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition></ColumnDefinition>
<ColumnDefinition></ColumnDefinition>
</Grid.ColumnDefinitions>
<Border Background="#0397b5" CornerRadius="2,0,10,2">
<TextBox Grid.Column="0" Margin="2,0,2,1" Foreground="White" VerticalContentAlignment="Center" VerticalAlignment="Center" Background="Transparent" IsReadOnly="True" Text="剩余" BorderThickness="0" />
<Border x:Name="borderDeadlineHead" Background="#0397b5" CornerRadius="2,0,10,2">
<TextBox Grid.Column="0" Margin="2,0,2,1" Foreground="White" VerticalContentAlignment="Center" VerticalAlignment="Center" Background="Transparent" IsReadOnly="True" MinWidth="20"
Text="{Binding delivery_deadline_status_str}" BorderThickness="0" />
</Border>
<TextBox Grid.Column="1" Margin="2,0,2,1" Foreground="#0397b5" VerticalContentAlignment="Center" VerticalAlignment="Center" Background="Transparent" IsReadOnly="True" Text="0小时0分0秒" BorderThickness="0" />
<TextBox x:Name="txtDeadline" Grid.Column="1" Margin="2,0,2,1" Foreground="#0397b5" VerticalContentAlignment="Center" VerticalAlignment="Center" Background="Transparent" IsReadOnly="True" MinWidth="20"
Text="{Binding delivery_deadline_str}" BorderThickness="0" />
</Grid>
</Border>
<Image Margin="8,8,0,8" Grid.Column="4" Width="24" Height="24" Source="{StaticResource OrderWeishopIcon}"></Image>
<TextBox x:Name="txtShopName" Grid.Column="5" Margin="0,8,0,8" VerticalAlignment="Center" FontSize="14" Background="Transparent" IsReadOnly="True" Text="{Binding shop_name}" BorderThickness="0" />
<TextBlock Text="店铺名称" Grid.Column="5" Margin="0,8,4,8" VerticalAlignment="Center" IsHitTestVisible="False" Foreground="LightGray" Visibility="{Binding ElementName=txtOrderId,Path=Text,Converter={StaticResource NotHasTextVisibility}}"></TextBlock>
<Image Margin="8,8,0,8" Grid.Column="4" Width="24" Height="24" Source="{StaticResource OrderWeishopIcon}"></Image>
<uc:UcWaterMarkTextBox WaterMark="店铺名称" x:Name="txtShopName" Grid.Column="5" Margin="4,8,0,8" VerticalAlignment="Center" FontSize="14" Background="Transparent" IsReadOnly="True" Text="{Binding shop_name}" BorderThickness="0" />
</Grid>
</Border>
</UserControl>
@@ -1,12 +0,0 @@
<UserControl x:Class="_29WxOrderWpf.Ctrls.ShopCtrls.ShopListRowCtrl"
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:_29WxOrderWpf.Ctrls.ShopCtrls"
mc:Ignorable="d"
d:DesignHeight="450" d:DesignWidth="800">
<Grid>
<TextBlock Text="{Binding ShopAccount}"></TextBlock>
</Grid>
</UserControl>
@@ -1,28 +0,0 @@
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 _29WxOrderWpf.Ctrls.ShopCtrls
{
/// <summary>
/// ShopListRowCtrl.xaml 的交互逻辑
/// </summary>
public partial class ShopListRowCtrl : UserControl
{
public ShopListRowCtrl()
{
InitializeComponent();
}
}
}
@@ -1,12 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace _29WxOrderWpf.Ctrls.ShopCtrls
{
internal class ShopListViewModel
{
}
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 8.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 105 KiB

@@ -14,4 +14,6 @@
<BitmapImage x:Key="imgBaseMsgInfo" UriSource="/Resources/BaseMsgInfo.png"/>
<BitmapImage x:Key="imgBaseMsgQue" UriSource="/Resources/BaseMsgQue.png"/>
<BitmapImage x:Key="OrderWeishopIcon" UriSource="/Resources/order_weishop_icon.png" />
<BitmapImage x:Key="err_pic" UriSource="/Resources/err_pic.png" />
<BitmapImage x:Key="loading_pic" UriSource="/Resources/loading_blue.gif" />
</ResourceDictionary>
@@ -7,32 +7,41 @@
<Setter Property="BorderBrush" Value="Transparent"/>
<Setter Property="BorderThickness" Value="1"/>
<Setter Property="WaterMark" Value="请输入"/>
<!--<Setter Property="Text" Value=""/>-->
<Setter Property="Text" Value=""/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type local:UcWaterMarkTextBox}">
<Border x:Name="border" CornerRadius="4" BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" SnapsToDevicePixels="True">
<Grid>
<ScrollViewer x:Name="PART_ContentHost" Focusable="False" HorizontalScrollBarVisibility="Hidden" VerticalScrollBarVisibility="Hidden"/>
<!--<ScrollViewer x:Name="PART_ContentHost" Focusable="False" HorizontalScrollBarVisibility="Hidden" VerticalScrollBarVisibility="Hidden"/>-->
<ScrollViewer x:Name="PART_ContentHost" HorizontalScrollBarVisibility="Hidden" VerticalScrollBarVisibility="Hidden" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"></ScrollViewer>
<!--<TextBlock Text="{TemplateBinding WaterMark}" Grid.Column="2" Margin="8,0,8,0" VerticalAlignment="Center" IsHitTestVisible="False" Foreground="LightGray"
Visibility="{Binding ElementName=txtGoodsName,Path=Text,Converter={StaticResource NotHasTextVisibility}}"></TextBlock>-->
<TextBlock Text="{TemplateBinding WaterMark}" Grid.Column="2" Margin="8,0,8,0" VerticalAlignment="Center" IsHitTestVisible="False" Foreground="LightGray"
></TextBlock>
<TextBlock Text="33333" Grid.Column="2" Margin="8,0,8,0" VerticalAlignment="Center" IsHitTestVisible="False" Foreground="LightGray"
></TextBlock>
<!--<TextBlock Text="{TemplateBinding WaterMark}" Grid.Column="2" Margin="8,0,8,0" VerticalAlignment="Center" IsHitTestVisible="False" Foreground="LightGray"
></TextBlock>-->
<!--<TextBlock Text="33333" Grid.Column="2" Margin="8,0,8,0" VerticalAlignment="Center" IsHitTestVisible="False" Foreground="LightGray"
></TextBlock>-->
<TextBlock x:Name="tbWaterMark" Text="{TemplateBinding WaterMark}" Grid.Column="2" Margin="{TemplateBinding Padding}"
VerticalAlignment="{TemplateBinding VerticalContentAlignment}" HorizontalAlignment="{TemplateBinding HorizontalAlignment}"
IsHitTestVisible="False" Foreground="LightGray" Visibility="Collapsed"></TextBlock>
</Grid>
</Border>
<!--<ControlTemplate.Triggers>
<Trigger Property="Text" Value="">
<Setter TargetName="tbWaterMark" Property="Visibility" Value="Visible"/>
</Trigger>
</ControlTemplate.Triggers>-->
</ControlTemplate>
</Setter.Value>
</Setter>
<!--去除高亮框-->
<Style.Triggers>
<!--<Style.Triggers>
<Trigger Property="IsKeyboardFocusWithin" Value="True">
<Setter Property="BorderBrush" Value="Transparent"/>
<Setter Property="BorderThickness" Value="0"/>
</Trigger>
</Style.Triggers>
</Style.Triggers>-->
</Style>
</ResourceDictionary>
@@ -13,7 +13,6 @@ namespace _29WxOrderWpf.UserControls
{
public UcImageButton()
{
this.DataContext = this;
}
public static readonly DependencyProperty ButtonImageProperty = DependencyProperty.Register(
@@ -12,7 +12,6 @@ namespace _29WxOrderWpf.UserControls
{
public UcWaterMarkTextBox()
{
this.DataContext = this;
}
public static readonly DependencyProperty WaterMarkProperty = DependencyProperty.Register(
@@ -45,7 +45,6 @@ namespace _29WxOrderWpf.UserControls
public UcWindowBoxes()
{
InitializeComponent();
this.DataContext = this;
}
private void WindowBoxes_Loaded(object sender, RoutedEventArgs e)
+1
View File
@@ -140,6 +140,7 @@
<Compile Include="Md5Base.cs" />
<Compile Include="Model\MvvmBaseClasses\PropertyNotifyObject.cs" />
<Compile Include="Model\oms_wei_order_info.cs" />
<Compile Include="Model\oms_wei_order_item.cs" />
<Compile Include="Model\o_shop_info.cs" />
<Compile Include="Model\PddMultiBuyerInfo.cs" />
<Compile Include="Model\PddPifaShopInfo.cs" />
+80 -3
View File
@@ -1,5 +1,9 @@
using System;
using AllBase.Helper;
using AllBase.Model.MvvmBaseClasses;
using NaiBa.Util.Extension;
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.ComponentModel;
using System.Linq;
using System.Text;
@@ -7,9 +11,62 @@ using System.Threading.Tasks;
namespace AllBase.Model
{
public class oms_wei_order_info
public class oms_wei_order_info : PropertyNotifyObject
{
public bool is_select { get; set; }
public ObservableCollection<oms_wei_order_item> order_items { get; set; } = new ObservableCollection<oms_wei_order_item>();
public oms_wei_order_item order_item
{
get
{
if (order_items.FirstOrDefault() != null)
return order_items.FirstOrDefault();
return new oms_wei_order_item();
}
}
public string create_time_str
{
get { return BaseClass.StampToDateTime(create_time).ToString("yyyy-MM-dd HH:mm:ss"); }
set { create_time_str = value; }
}
public string delivery_deadline_status_str
{
get
{
if (this.status == 20 || this.status == 21)
{
return "剩余";
}
return "剩余";
}
set { delivery_deadline_status_str = value; }
}
/// <summary>
/// 订单中所有商品加起来的总售价
/// </summary>
public string sale_price_total_str
{
get { return "¥" + (order_items.Sum(oi => oi.sale_price * oi.sku_cnt) * 0.01m).ParseToDecimal().ToString("0.00"); }
set { sale_price_total_str = value; }
}
/// <summary>
/// 订单内商品维度平台券优惠金额(利润需要计算这个金额在内)字符串
/// </summary>
public string cash_coupon_discounted_price_str
{
get { return "¥" + (order_items.Sum(oi => oi.cash_coupon_discounted_price.ParseToInt() * oi.sku_cnt) * 0.01m).ParseToDecimal().ToString("0.00"); }
set { cash_coupon_discounted_price_str = value; }
}
/// <summary>
/// 是否被选中
/// </summary>
public bool IsSelect
{
get { return this.GetValue(x => x.IsSelect); }
set { this.SetValue(x => x.IsSelect, value); }
}
public bool is_visible { get; set; } = true;
@@ -26,6 +83,26 @@ namespace AllBase.Model
/// </summary>
public string openid { get; set; }
public int create_time { get; set; }
public string delivery_deadline_str
{
get
{
if (this.status == 20 || this.status == 21)
{
var deadlineTime = BaseClass.StampToDateTime(delivery_deadline.ParseToInt());
var nowTime = DateTime.Now;
if (deadlineTime < nowTime)
return "已超时";
var timeSpan = BaseClass.StampToDateTime(delivery_deadline.ParseToInt()) - nowTime;
var durationStr = Math.Floor(timeSpan.TotalHours).ParseToInt() + "时" + timeSpan.Minutes + "分" + timeSpan.Seconds + "秒";
return durationStr;
}
return "待获取状态";
}
set { delivery_deadline_str = value; }
}
public int update_time { get; set; }
public string unionid { get; set; }
/// <summary>
+154
View File
@@ -0,0 +1,154 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace AllBase.Model
{
public class oms_wei_order_item
{
/// <summary>
/// 订单商品表数据库id
/// </summary>
public long id { get; set; }
public long shop_id { get; set; }
/// <summary>
/// 商户ID
/// </summary>
public long merchant_id { get; set; }
/// <summary>
/// 订单id(平台订单id)
/// </summary>
public string order_id { get; set; }
/// <summary>
/// 商品spuid
/// </summary>
public string product_id { get; set; }
public string sku_id { get; set; }
/// <summary>
/// sku小图
/// </summary>
public string thumb_img { get; set; }
/// <summary>
/// sku数量
/// </summary>
public int? sku_cnt { get; set; }
/// <summary>
/// 售卖单价(单位:分)
/// </summary>
public int? sale_price { get; set; }
/// <summary>
/// 商品名称
/// </summary>
public string title { get; set; }
/// <summary>
/// 正在售后/退款流程中的 sku 数量
/// </summary>
public int? on_aftersale_sku_cnt { get; set; }
/// <summary>
/// 完成售后/退款的 sku 数量
/// </summary>
public int? finish_aftersale_sku_cnt { get; set; }
/// <summary>
/// 商品编码
/// </summary>
public string sku_code { get; set; }
/// <summary>
/// 市场单价(单位:分)
/// </summary>
public int? market_price { get; set; }
/// <summary>
/// sku属性JSON
/// </summary>
public string sku_attrs { get; set; }
/// <summary>
/// sku实付总价,取estimate_price和change_price中较小值
/// </summary>
public int? real_price { get; set; }
/// <summary>
/// 商品外部spuid
/// </summary>
public string out_product_id { get; set; }
/// <summary>
/// 采购价
/// </summary>
public int? purchase_price { get; set; }
/// <summary>
/// 运费
/// </summary>
public int? freight { get; set; }
/// <summary>
/// 商品外部skuid
/// </summary>
public string out_sku_id { get; set; }
/// <summary>
/// 是否有优惠金额,非必填,默认为false
/// </summary>
public string is_discounted { get; set; }
/// <summary>
/// 优惠后sku总价,非必填,is_discounted为true时有值
/// </summary>
public int? estimate_price { get; set; }
/// <summary>
/// 是否修改过价格,非必填,默认为false
/// </summary>
public string is_change_price { get; set; }
/// <summary>
/// 改价后sku总价,非必填,is_change_price为true时有值
/// </summary>
public int? change_price { get; set; }
/// <summary>
/// 订单内商品维度平台券优惠金额(利润需要计算这个金额在内)
/// </summary>
public int? cash_coupon_discounted_price { get; set; }
/// <summary>
/// 区域库存id
/// </summary>
public string out_warehouse_id { get; set; }
/// <summary>
/// 退货地址
/// </summary>
public string return_address { get; set; }
/// <summary>
/// 商品发货信息JSON
/// </summary>
public string sku_deliver_info { get; set; }
/// <summary>
/// 商品额外服务信息JSON
/// </summary>
public string extra_service { get; set; }
/// <summary>
/// 是否使用了会员积分抵扣
/// </summary>
public string use_deduction { get; set; }
/// <summary>
/// 会员积分抵扣金额,单位为分
/// </summary>
public int? deduction_price { get; set; }
/// <summary>
/// 达人佣金(微信小店:分账金额),单位为分
/// </summary>
public int? predict_commission_fee { get; set; }
/// <summary>
/// 达人佣金(微信小店:分账金额),单位为分
/// </summary>
public int? commission_amount { get; set; }
/// <summary>
/// 商品优惠券信息,逐步替换 order.order_detail.coupon_info
/// </summary>
public string order_product_coupon_info_list { get; set; }
/// <summary>
/// 商品id(o_goods外键)
/// </summary>
public long? erp_goods_id { get; set; }
/// <summary>
/// 商品skuid(o_goods_sku外键)
/// </summary>
public long? erp_goods_sku_id { get; set; }
/// <summary>
/// 售后状态 1:无售后或售后关闭,2:售后处理中,3:退款中,4: 退款成功 11 已取消
/// </summary>
public int? refund_status { get; set; }
}
}