using _29WxOrderWpf.BaseWindows; using WxOrder.Framework.Commons; using AllBase; using AllBase.Model.DBModel; using AllBase.Model.MvvmBaseClasses; using AllBase.Model.Result; using NaiBa.Util.Extension; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading; using System.Threading.Tasks; using System.Windows; using System.Windows.Input; using System.Windows.Threading; using Work; using Work._29Tools.BLL; using Work._29Tools.Forms.ShopForms; namespace _29WxOrderWpf.ViewModels { /// /// 更改运单号ViewModel /// public class ChangePickNoViewModel : PropertyNotifyObject { public oms_wei_order_item_info OrderItem { get { return this.GetValue(x => x.OrderItem); } set { this.SetValue(x => x.OrderItem, value); } } public string PickNo { get { return this.GetValue(x => x.PickNo); } set { this.SetValue(x => x.PickNo, value); } } public bool IsChangeingPickNo { get { return this.GetValue(x => x.IsChangeingPickNo); } set { this.SetValue(x => x.IsChangeingPickNo, value); } } /// /// 请求关闭窗口 /// public event Action RequestClose; #region 命令 public ICommand ChangePickNoCommand { get; } #endregion private volatile bool _isWindowLoaded = false; public ChangePickNoViewModel(oms_wei_order_item_info _orderItem) { OrderItem = _orderItem; IsChangeingPickNo = false; PickNo = (_orderItem?.ItemOrder?.SyncWaybillPickNo).ParseToString(); ChangePickNoCommand = new DelegateCommand(ChangePickNo); } /// /// 窗口加载完成时调用 /// public void Start() { _isWindowLoaded = true; } /// /// 窗口关闭时调用,停止后台任务 /// public void Stop() { _isWindowLoaded = false; } public void ChangePickNo() { IsChangeingPickNo = false; string orderId = OrderItem.order_id; ShopLoginInfo shop = OrderItem.Shop; if (string.IsNullOrEmpty(PickNo)) { BaseMsgWindow.ShowInfo("取件码不能为空"); return; } Task.Run(async () => { var url4 = BaseClass.Build29WxObjString("vlc/UploadPickup"); var data4 = UserLogin.GetSignPostData(new { orderId = OrderItem.DirectPddBuyerOrder.order_sn, pickupCode = PickNo, }); var html4 = GetHtml.PostJson(url4, data4); if (html4.Contains("\"code\":200")) { Application.Current?.Dispatcher.Invoke(new Action(() => { OrderItem.ItemOrder.SyncWaybillPickNo = PickNo; IsChangeingPickNo = false; BaseMsgWindow.ShowInfo("修改取件码成功"); RequestClose?.Invoke(); })); } else { BaseMsgWindow.ShowInfo("修改取件码失败" + BaseRegex.GetStringJson(ref html4, "msg")); } }); } } }