Files
2026-10-28 13:17:51 +08:00

118 lines
2.8 KiB
C#

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
{
/// <summary>
/// 更改运单号ViewModel
/// </summary>
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); }
}
/// <summary>
/// 请求关闭窗口
/// </summary>
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);
}
/// <summary>
/// 窗口加载完成时调用
/// </summary>
public void Start()
{
_isWindowLoaded = true;
}
/// <summary>
/// 窗口关闭时调用,停止后台任务
/// </summary>
public void Stop()
{
_isWindowLoaded = false;
}
public void ChangePickNo()
{
IsChangeingPickNo = false;
string orderId = OrderItem.order_id;
ShopLoginInfo shop = OrderItem.ItemOrder.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"));
}
});
}
}
}