diff --git a/29WxOrderWpf/Ctrls/OrderCtrls/OrderListCtrl.xaml b/29WxOrderWpf/Ctrls/OrderCtrls/OrderListCtrl.xaml
index 8fa1ae5..2cb0bf2 100644
--- a/29WxOrderWpf/Ctrls/OrderCtrls/OrderListCtrl.xaml
+++ b/29WxOrderWpf/Ctrls/OrderCtrls/OrderListCtrl.xaml
@@ -265,9 +265,9 @@
HorizontalAlignment="Left"
VerticalAlignment="Center"
BorderBrush="{StaticResource mainColorBrush}"
+ Click="chkSyncDirectOrderWaybill_Click"
Content="同步物流单"
FontSize="12"
- Click="chkSyncDirectOrderWaybill_Click"
IsChecked="False" />
@@ -1070,7 +1070,8 @@
-
+
+
diff --git a/29WxOrderWpf/Ctrls/OrderCtrls/OrderListCtrl.xaml.cs b/29WxOrderWpf/Ctrls/OrderCtrls/OrderListCtrl.xaml.cs
index 46cfb37..18cc28e 100644
--- a/29WxOrderWpf/Ctrls/OrderCtrls/OrderListCtrl.xaml.cs
+++ b/29WxOrderWpf/Ctrls/OrderCtrls/OrderListCtrl.xaml.cs
@@ -1779,9 +1779,11 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls
return true;
if (cmbRejectStatusText == "申请中" && !order.orderItems.Any(oi => oi.AddEditTransitWarehouseRejectStr == "已申请拒收"))
return true;
- if (cmbRejectStatusText == "拒收成功" && !order.orderItems.Any(oi => oi.AddEditTransitWarehouseRejectStr.StartsWith("申请拒收成功")))
+ if (cmbRejectStatusText == "申请成功" && !order.orderItems.Any(oi => oi.AddEditTransitWarehouseRejectStr.StartsWith("申请成功")))
return true;
- if (cmbRejectStatusText == "拒收失败" && !order.orderItems.Any(oi => oi.AddEditTransitWarehouseRejectStr.StartsWith("申请拒收失败")))
+ if (cmbRejectStatusText == "申请失败" && !order.orderItems.Any(oi => oi.AddEditTransitWarehouseRejectStr.StartsWith("申请失败")))
+ return true;
+ if (cmbRejectStatusText == "拒收成功" && !order.orderItems.Any(oi => oi.AddEditTransitWarehouseRejectStr.StartsWith("拒收成功")))
return true;
if (order.order_id == "3738674216947317248")
diff --git a/29WxOrderWpf/Ctrls/OrderCtrls/OrderListRowItemCtrl.xaml.cs b/29WxOrderWpf/Ctrls/OrderCtrls/OrderListRowItemCtrl.xaml.cs
index 94ae036..1537f94 100644
--- a/29WxOrderWpf/Ctrls/OrderCtrls/OrderListRowItemCtrl.xaml.cs
+++ b/29WxOrderWpf/Ctrls/OrderCtrls/OrderListRowItemCtrl.xaml.cs
@@ -1077,8 +1077,20 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls
private void btnAddEditTransitWarehouseReject_Click(object sender, RoutedEventArgs e)
{
- if (sender == btnAddEditTransitWarehouseReject)
+ if (sender == btnAddEditTransitWarehouseReject && this.DataContext is oms_wei_order_item_info orderItem1 && !string.IsNullOrWhiteSpace(orderItem1.ItemTransitOrderWithVoid?.express_1_waybill))
+ {
+ BaiduGetWaybillInfoView buyerLoginForm = new BaiduGetWaybillInfoView(orderItem1);
+ buyerLoginForm.ViewModel.InitUrl = "https://www.baidu.com/s?ie=UTF-8&wd=" + orderItem1.ItemTransitOrderWithVoid?.express_1_waybill;
+
+ new DialogWindow()
+ {
+ Width = 1280,
+ Height = 800,
+ Title = "物流拒收查询",
+ Content = buyerLoginForm,
+ }.Show();
return;
+ }
string msg = $@"
diff --git a/29WxOrderWpf/ViewModels/BaiduGetWaybillInfoViewModel.cs b/29WxOrderWpf/ViewModels/BaiduGetWaybillInfoViewModel.cs
new file mode 100644
index 0000000..5758a81
--- /dev/null
+++ b/29WxOrderWpf/ViewModels/BaiduGetWaybillInfoViewModel.cs
@@ -0,0 +1,267 @@
+using _29WxOrderWpf.CefHelper;
+using _29WxOrderWpf.Commands;
+using _29WxOrderWpf.Ctrls.OrderCtrls;
+using AllBase;
+using AllBase.Helper;
+using AllBase.Model.DBModel;
+using AllBase.Model.MvvmBaseClasses;
+using CefSharp;
+using CefSharp.Handler;
+using CefSharp.Wpf;
+using NaiBa.Util.Extension;
+using Org.BouncyCastle.Asn1.Ocsp;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Security.Policy;
+using System.Text;
+using System.Threading;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Input;
+using System.Windows.Threading;
+using TemuKJD.ToolForms;
+using Work;
+using Work._29Tools.BLL;
+using Work._29Tools.CefTools;
+using static System.Windows.Forms.VisualStyles.VisualStyleElement.StartPanel;
+
+namespace _29WxOrderWpf.ViewModels
+{
+
+
+ ///
+ /// 拼多多买手移动版登录窗口 视图模型(WPF 版 TaobaoLoginForm)
+ ///
+ public class BaiduGetWaybillInfoViewModel : PropertyNotifyObject
+ {
+ // 拼多多买手退货退款售后地址
+ // https://mobile.yangkeduo.com/complaint.html?order_sn=260718-101481213440980&after_sales_reason=0&after_sales_type=2&after_sales_code=1002
+
+ public static BaiduGetWaybillInfoViewModel BaiduGetWaybillInfoInstance { get; set; } = null;
+
+ /// 浏览器创建完成后触发(视图在此把浏览器加入可视树)
+ public event Action BrowserCreated;
+
+ /// 请求关闭窗口
+ public event Action RequestClose;
+
+ private string CookieHead { get; set; } = "baidu.com";
+ public string InitUrl { get; set; } = "";
+ private string MainUrl = "https://www.baidu.com/";
+
+ public ChromiumWebBrowser CefWebBrowser { get; private set; }
+ private string currentUrl = "";
+ private volatile bool _isWindowLoaded = false;
+
+ #region 界面绑定属性
+
+ public oms_wei_order_item_info OrderItem
+ {
+ get { return this.GetValue(x => x.OrderItem); }
+ set { this.SetValue(x => x.OrderItem, value); }
+ }
+
+ /// 地址栏
+ public string Address
+ {
+ get { return this.GetValue(x => x.Address); }
+ set { this.SetValue(x => x.Address, value); }
+ }
+
+ /// 物流信息
+ public string LatestWaybillStr
+ {
+ get { return this.GetValue(x => x.LatestWaybillStr); }
+ set { this.SetValue(x => x.LatestWaybillStr, value); }
+ }
+
+ public bool IsLoading
+ {
+ get { return this.GetValue(x => x.IsLoading); }
+ set { this.SetValue(x => x.IsLoading, value); }
+ }
+
+ #endregion
+
+ #region 命令
+
+ public ICommand ReloadCommand { get; }
+ public ICommand SetRejectStatusCommand { get; }
+
+ #endregion
+
+ public BaiduGetWaybillInfoViewModel(oms_wei_order_item_info orderItem)
+ {
+ IsLoading = true;
+ BaiduGetWaybillInfoInstance = this;
+ OrderItem = orderItem;
+
+ ReloadCommand = new DelegateCommand(Reload);
+ SetRejectStatusCommand = new DelegateCommand(SetRejectStatus);
+ }
+
+ ///
+ /// 窗口加载完成时调用
+ ///
+ public async Task Start()
+ {
+ await AutoLogin();
+ }
+
+ ///
+ /// 窗口关闭时调用,停止后台任务
+ ///
+ public void Stop()
+ {
+ _isWindowLoaded = false;
+ }
+
+ ///
+ /// 自动登录店铺后台
+ ///
+ private async Task AutoLogin()
+ {
+ _ = Application.Current.Dispatcher.InvokeAsync(async () =>
+ {
+ if (CefWebBrowser == null)
+ {
+ if (!string.IsNullOrEmpty(InitUrl))
+ CefWebBrowser = WPFCEFBrowser.CreateChromiumWebBrowser(InitUrl, false);
+ else
+ CefWebBrowser = WPFCEFBrowser.CreateChromiumWebBrowser(MainUrl, false);
+
+ LocalResourceRequestHandler resourceRequestHandler = new LocalResourceRequestHandler();
+ resourceRequestHandler.ResourceLoadCompleteEvent += RequestHandler_ResourceLoadComplete;
+ resourceRequestHandler.BeforeResourceLoadEvent += RequestHandler_BeforeResourceLoad;
+ CefWebBrowser.RequestHandler = new LocalRequestHandler(resourceRequestHandler);
+ var lifeSapnHandler = new LocalLifeSpanHandler(PopWindowType.SelfWindow);
+ CefWebBrowser.LifeSpanHandler = lifeSapnHandler;
+ //CefWebBrowser.KeyboardHandler = new KeyboardHandler();
+ CefWebBrowser.KeyboardHandler = new CefKeyboardHandler();
+ CefWebBrowser.FrameLoadEnd += CefWebBrowser_FrameLoadEnd;
+ CefWebBrowser.AddressChanged += CefWebBrowser_AddressChanged;
+ CefWebBrowser.LoadError += CefWebBrowser_LoadError;
+
+ // 通知视图把浏览器加入可视树(必须在等待浏览器初始化之前完成)
+ BrowserCreated?.Invoke(CefWebBrowser);
+
+
+ }
+ //chat-submit-button
+ while (CefWebBrowser == null || CefWebBrowser.IsLoading)
+ {
+ Thread.Sleep(100);
+ }
+ await Task.Run(() =>
+ {
+
+ Thread.Sleep(4000);
+ IsLoading = false;
+
+ if (string.IsNullOrEmpty(LatestWaybillStr))
+ {
+ var jsStr = "document.getElementById('chat-submit-button').click();";
+ var client = CefWebBrowser.GetDevToolsClient();
+ if (client != null)
+ {
+ client.Runtime.EvaluateAsync(jsStr, null, true, null, null, true, null, true);
+ }
+ }
+
+ });
+ });
+
+
+ }
+
+
+ private void CefWebBrowser_LoadError(object sender, CefSharp.LoadErrorEventArgs e)
+ {
+ }
+
+ private void CefWebBrowser_AddressChanged(object sender, DependencyPropertyChangedEventArgs e)
+ {
+ if (Application.Current?.Dispatcher != null)
+ {
+ Application.Current.Dispatcher.Invoke(new Action(() =>
+ {
+ currentUrl = e.NewValue.ParseToString();
+ Address = e.NewValue.ParseToString();
+ }));
+ }
+ }
+
+ private void CefWebBrowser_FrameLoadEnd(object sender, CefSharp.FrameLoadEndEventArgs e)
+ {
+ //js绑定C#对象 html页面内声明绑定的C#对象
+ StringBuilder sb = new StringBuilder();
+ sb.Append("(function(){");
+ sb.Append("CefSharp.BindObjectAsync('shopObj');");
+ sb.Append("})();");
+ CefWebBrowser.GetBrowser().MainFrame.EvaluateScriptAsync(sb.ToString());
+ }
+
+ private bool RequestHandler_BeforeResourceLoad(object sender, string url, string postData, IRequest request)
+ {
+ return false;
+ }
+
+ private async void RequestHandler_ResourceLoadComplete(object sender, string url, string postData, string responseData, IRequest request)
+ {
+ await DoResourceLoadComplete(url, responseData);
+ }
+
+ private async Task DoResourceLoadComplete(string url, string responseData)
+ {
+ if (url.Contains("https://alayn.baidu.com/express/appdetail/pc_express"))
+ {
+ await Task.Run(async () =>
+ {
+ if (responseData.Contains("\"status\":0"))
+ {
+ //jsonp_1790501236188_28581({"status":0,"error_code":0,"msg":"","data":{"context":[{"time":1790324628,"desc":"您的快件已退回签收。如有疑问请联系网点,网点电话:95554,投诉电话:95554。感谢使用圆通速递,期待再次为您服务!","zone":""},{"time":1790324332,"desc":"【广东省广州市番禺区火车南站】的周继双(17396260642)正在为您派件(95161和18521号段的上海号码为圆通快递员专属号码,请放心接听。如遇物流问题,请联系快递员为您解决,或联系网点电话:18521191496,或致电专属客服95554)","zone":""},{"time":1790312940,"desc":"您的快件已经到达【广东省广州市番禺区沙湾】【物流问题请致电(专属热线:95554)更快解决】","zone":""},{"time":1790287250,"desc":"您的快件离开【佛山转运中心】,已发往【广东省广州市番禺区沙湾】","zone":""},{"time":1790284964,"desc":"您的快件已经到达【佛山转运中心】【物流问题请致电(专属热线:95554)更快解决】","zone":""},{"time":1790272720,"desc":"您的快件离开【深圳转运中心】,已发往【佛山转运中心】","zone":""},{"time":1790272619,"desc":"您的快件已经到达【深圳转运中心】【物流问题请致电(专属热线:95554)更快解决】","zone":""},{"time":1790263927,"desc":"您的快件离开【广东省东莞市凤岗】,已发往【深圳转运中心】","zone":""},{"time":1790263156,"desc":"您的快件已经到达【广东省东莞市凤岗】【物流问题请致电(专属热线:95554)更快解决】","zone":""},{"time":1790257882,"desc":"您的快件已被【广东省东莞市凤岗】安排退回,退回原因:客户要求退回","zone":""},{"time":1790257874,"desc":"发件人拦截,快件将原路退回或更改派送地址!如有疑问请联系【广东省东莞市凤岗】(专属客服电话:95554)","zone":""},{"time":1790164947,"desc":"您的快件已到达[喵站](浸校塘喵站)兔喜快递超市(浸校塘东良巷店),请及时取件,如有取件码问题或找不到包裹等问题,请联系站点:13556614729,或联系快递员:18521194191,或联系网点电话:18521871340,或致电专属客服95554。感谢使用圆通速递,期待再次为您服务!","zone":""},{"time":1790139598,"desc":"【广东省东莞市凤岗】的黎志威(18521194191)正在为您派件(95161和18521号段的上海号码为圆通快递员专属号码,请放心接听。如遇物流问题,请联系快递员为您解决,或联系网点电话:18521871340,或致电专属客服95554)","zone":""},{"time":1790139558,"desc":"您的快件已经到达【广东省东莞市凤岗】【物流问题请致电(专属热线:95554)更快解决】","zone":""},{"time":1790124801,"desc":"您的快件离开【深圳转运中心】,已发往【广东省东莞市凤岗】","zone":""},{"time":1790124513,"desc":"您的快件已经到达【深圳转运中心】【物流问题请致电(专属热线:95554)更快解决】","zone":""},{"time":1790111473,"desc":"您的快件离开【佛山转运中心】,已发往【深圳转运中心】","zone":""},{"time":1790111393,"desc":"您的快件已经到达【佛山转运中心】【物流问题请致电(专属热线:95554)更快解决】","zone":""},{"time":1790107910,"desc":"您的快件离开【广东省广州市番禺区火车南站】,已发往【佛山转运中心】","zone":""},{"time":1790104565,"desc":"您的快件在【广东省广州市番禺区火车南站】已揽收,揽收人: 董伟咏(18521870969)【物流问题请致电(专属热线:95554)更快解决】","zone":""}],"status":"1","state":"3","officalService":{"comCode":"yuantong","com":"圆通","comName":"圆通速递","urlDesc":"官网地址:","url":"https://www.yto.net.cn/","logo":"https://cityservice-hb.cdn.bcebos.com/amis/img/b5f54f0b2d6b.png","servicePhoneDesc":"官方电话:","servicePhone":"95554","service":[{"url":"https://www.yto.net.cn/ytoExpress/subCreatePages/create","name":"我要寄件"},{"url":"https://www.yto.net.cn/ytoExpress/querySupport/standardPrice","name":"运价查询"},{"url":"https://online.yto.net.cn/#/","name":"在线客服"}]}}})
+ LatestWaybillStr = BaseRegex.GetStringJson(ref responseData, "desc");
+
+ if (LatestWaybillStr.Contains("退回") || LatestWaybillStr.Contains("拒收") || LatestWaybillStr.Contains("拦截"))
+ {
+ if (!LatestWaybillStr.Contains("√"))
+ LatestWaybillStr = "√ " + LatestWaybillStr;
+
+ var transitOrder = OrderItem.ItemTransitOrderWithVoid;
+ if (transitOrder.has_reject != 99)
+ {
+ var url = BaseClass.Build29WxObjString("order/wx_update_transit_order_reject_status");
+ var data = UserLogin.GetSignaturex();
+ data += "&order_no=" + OrderItem.order_id;
+ data += "&order_sku_id=" + OrderItem.sku_id;
+ data += "&has_reject=" + 99;
+ var html = GetHtml.PostUtf8(url, data);
+
+ transitOrder.has_reject = 99;
+ OrderListCtrl.InitOrderItemObservableProp(OrderItem);
+ MainWindow.Instance.Dispatcher.Invoke(() => { MainWindow.Instance.orderListCtrl.FilterOneOrder(OrderItem.ItemOrder); });
+ }
+
+ }
+ }
+ });
+ }
+ }
+
+ private void SetRejectStatus()
+ {
+ }
+
+ private void Reload()
+ {
+ if (CefWebBrowser != null)
+ {
+ if (Address != "about:blank")
+ CefWebBrowser.Load(Address);
+ else
+ CefWebBrowser.Load(MainUrl);
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/29WxOrderWpf/Views/BaiduGetWaybillInfoView.xaml b/29WxOrderWpf/Views/BaiduGetWaybillInfoView.xaml
new file mode 100644
index 0000000..d98de4c
--- /dev/null
+++ b/29WxOrderWpf/Views/BaiduGetWaybillInfoView.xaml
@@ -0,0 +1,100 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/29WxOrderWpf/Views/BaiduGetWaybillInfoView.xaml.cs b/29WxOrderWpf/Views/BaiduGetWaybillInfoView.xaml.cs
new file mode 100644
index 0000000..30eaa5d
--- /dev/null
+++ b/29WxOrderWpf/Views/BaiduGetWaybillInfoView.xaml.cs
@@ -0,0 +1,63 @@
+using _29WxOrderWpf.BaseWindows;
+using _29WxOrderWpf.ViewModels;
+using AllBase.Model.DBModel;
+using CefSharp.Wpf;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Input;
+using System.Windows.Media;
+
+namespace _29WxOrderWpf.Views
+{
+ ///
+ /// 百度获取物流信息窗口
+ ///
+ public partial class BaiduGetWaybillInfoView : UserControl
+ {
+ /// 视图模型
+ public BaiduGetWaybillInfoViewModel ViewModel { get; }
+
+ public BaiduGetWaybillInfoView(oms_wei_order_item_info orderItem)
+ {
+
+ InitializeComponent();
+
+ ViewModel = new BaiduGetWaybillInfoViewModel(orderItem);
+ ViewModel.BrowserCreated += ViewModel_BrowserCreated;
+ ViewModel.RequestClose += ViewModel_RequestClose;
+ DataContext = ViewModel;
+ }
+
+ private async void BaiduGetWaybillInfoView_Loaded(object sender, RoutedEventArgs e)
+ {
+ ViewModel.Start();
+ }
+
+ private void BaiduGetWaybillInfoView_Closed(object sender, System.EventArgs e)
+ {
+ ViewModel.Stop();
+ }
+
+ private void ViewModel_BrowserCreated(ChromiumWebBrowser browser)
+ {
+ Grid.SetRow(browser, 0);
+ Grid.SetColumn(browser, 0);
+ BrowserHost.Children.Add(browser);
+ }
+
+ private void ViewModel_RequestClose()
+ {
+ Window parentWindow = Window.GetWindow(this);
+ if (this.IsLoaded && parentWindow != null)
+ parentWindow.Close();
+ }
+
+ private void txtAddress_KeyDown(object sender, KeyEventArgs e)
+ {
+ if (e.Key == Key.Enter)
+ {
+ ViewModel.ReloadCommand.Execute(null);
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/29WxOrderWpf/Views/TaobaoLoginView.xaml b/29WxOrderWpf/Views/TaobaoLoginView.xaml
index e0079b3..a53cceb 100644
--- a/29WxOrderWpf/Views/TaobaoLoginView.xaml
+++ b/29WxOrderWpf/Views/TaobaoLoginView.xaml
@@ -48,12 +48,17 @@
+
+
+
+
diff --git a/AllBase/Model/DBModel/oms_wei_order_item_info.cs b/AllBase/Model/DBModel/oms_wei_order_item_info.cs
index 04a4f8e..04c5465 100644
--- a/AllBase/Model/DBModel/oms_wei_order_item_info.cs
+++ b/AllBase/Model/DBModel/oms_wei_order_item_info.cs
@@ -332,11 +332,13 @@ namespace AllBase.Model.DBModel
if (this.ItemTransitOrderWithVoid?.has_reject == 1)
AddEditTransitWarehouseRejectStr = "已申请拒收";
if (this.ItemTransitOrderWithVoid?.has_reject == 2)
- AddEditTransitWarehouseRejectStr = "申请拒收失败";
+ AddEditTransitWarehouseRejectStr = "申请失败";
if (this.ItemTransitOrderWithVoid?.has_reject == 3)
- AddEditTransitWarehouseRejectStr = "申请拒收成功";
+ AddEditTransitWarehouseRejectStr = "申请成功";
if (this.ItemTransitOrderWithVoid?.has_reject == 5)
AddEditTransitWarehouseRejectStr = "已取消拒收";
+ if (this.ItemTransitOrderWithVoid?.has_reject == 99)
+ AddEditTransitWarehouseRejectStr = "拒收成功";
if (this.ItemTransitOrderWithVoid == null || (this.ItemRefund?.type != "REFUND" && !this.ItemOrder.IsAbnormal) || // 仅退款
TransitRefundStatusStr.Contains("退款成功") ||