From 34c51c6fcdf95fe190108612eca9fcf0093a342c Mon Sep 17 00:00:00 2001 From: wule Date: Thu, 25 Jun 2026 02:46:02 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8B=8D=E5=8D=95=E5=8A=9F=E8=83=BD=E7=BB=A7?= =?UTF-8?q?=E7=BB=AD=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 29WxOrder.sln | 10 +- 29WxOrder/29WxOrder.csproj | 2 +- .../FactoryExportForm.Designer.cs | 2 +- .../ShopForms/PddShopLoginForm.Designer.cs | 2 +- 29WxOrder/ShopForms/ShopBrower.Designer.cs | 2 +- 29WxOrder/ToolForms/CefForm.designer.cs | 2 +- 29WxOrder/ToolForms/ProgressForm.cs | 2 +- 29WxOrderWpf/29WxOrderWpf.csproj | 48 +- 29WxOrderWpf/App.xaml | 4 + 29WxOrderWpf/App.xaml.cs | 33 + .../HasValueToVisibilityConverter.cs | 28 + .../Converters/StatusToColorBrushConverter.cs | 28 + .../Converters/ValueMinus24Converter.cs | 27 + .../BuyerCtrls/PDDBuyerOrderListCtrl.xaml | 12 + .../BuyerCtrls/PDDBuyerOrderListCtrl.xaml.cs | 28 + .../Ctrls/BuyerCtrls/PDDBuyerSelectCtrl.xaml | 48 ++ .../BuyerCtrls/PDDBuyerSelectCtrl.xaml.cs | 158 ++++ .../Ctrls/OrderCtrls/OrderListCtrl.xaml | 94 +- .../Ctrls/OrderCtrls/OrderListCtrl.xaml.cs | 208 +++-- .../OrderCtrls/OrderListRowHeaderCtrl.xaml | 19 +- .../OrderCtrls/OrderListRowItemCtrl.xaml | 61 +- .../OrderCtrls/OrderListRowItemCtrl.xaml.cs | 65 +- 29WxOrderWpf/MainWindow.xaml | 8 +- 29WxOrderWpf/MainWindow.xaml.cs | 243 ++++-- 29WxOrderWpf/Styles/BaseComboBoxStyle.xaml | 85 +- 29WxOrderWpf/packages.config | 4 + AllBase/29WxOrderAllBase.csproj | 40 +- AllBase/BaseClass.cs | 5 + AllBase/Helper/GlobalConfig.cs | 20 +- AllBase/JsonHelper.cs | 13 + AllBase/Model/Params/TransitWarehouseParam.cs | 95 ++ AllBase/Model/Params/WaybillHelper.cs | 27 + AllBase/Model/Result/BuyerLoginInfo.cs | 31 + .../Result/ShopLoginInfo.cs | 24 + AllBase/Model/WXBuyMapInfo.cs | 31 + AllBase/Model/o_shop_info.cs | 14 - .../Model/oms_wei_external_procurement_log.cs | 19 + AllBase/Model/oms_wei_order_info.cs | 107 ++- AllBase/Model/oms_wei_order_item_info.cs | 121 ++- AllBase/Model/oms_wei_refund_info.cs | 2 +- AllBase/Randomx.cs | 10 + AllBase/packages.config | 5 + Work/29WxOrderWork.csproj | 29 +- Work/29WxOrderWork.csproj.user | 2 +- Work/BaseForms/BaseGeneralForm.Designer.cs | 4 +- Work/BaseForms/BaseGeneralForm.cs | 12 +- Work/BaseForms/BaseMsgForm.Designer.cs | 10 +- Work/BaseForms/PddMobileLoginForm.Designer.cs | 386 +++++++++ Work/BaseForms/PddMobileLoginForm.cs | 616 +++++++++++++ Work/BaseForms/PddMobileLoginForm.resx | 298 +++++++ Work/BaseForms/UserComponents/UcCheckBox.cs | 12 +- Work/Class1.cs | 12 - Work/_29Tools/BLL/HttpResponseBLL.cs | 64 ++ Work/_29Tools/BLL/HttpResponseWXBLL.cs | 693 +++++++++++++++ Work/_29Tools/BLL/HttpResponseYkdBLL.cs | 267 ++++++ Work/_29Tools/BLL/SendBuyerOrder.cs | 36 + .../CustomResourceRequestHandlerLocal.cs | 188 ++++ .../_29Tools/CefTools/LifeSpanHandlerLocal.cs | 82 ++ Work/_29Tools/Forms/PddMobileBuyOrderForm.cs | 640 ++++++++++++++ .../Forms/PddMobileBuyOrderForm.designer.cs | 812 ++++++++++++++++++ .../_29Tools/Forms/PddMobileBuyOrderForm.resx | 298 +++++++ Work/_29Tools/Forms/PddMobileLoginForm.cs | 501 +++++++++++ .../Forms/PddMobileLoginForm.designer.cs | 396 +++++++++ Work/_29Tools/Forms/PddMobileLoginForm.resx | 298 +++++++ 64 files changed, 7138 insertions(+), 305 deletions(-) create mode 100644 29WxOrderWpf/Converters/HasValueToVisibilityConverter.cs create mode 100644 29WxOrderWpf/Converters/StatusToColorBrushConverter.cs create mode 100644 29WxOrderWpf/Converters/ValueMinus24Converter.cs create mode 100644 29WxOrderWpf/Ctrls/BuyerCtrls/PDDBuyerOrderListCtrl.xaml create mode 100644 29WxOrderWpf/Ctrls/BuyerCtrls/PDDBuyerOrderListCtrl.xaml.cs create mode 100644 29WxOrderWpf/Ctrls/BuyerCtrls/PDDBuyerSelectCtrl.xaml create mode 100644 29WxOrderWpf/Ctrls/BuyerCtrls/PDDBuyerSelectCtrl.xaml.cs create mode 100644 AllBase/Model/Params/TransitWarehouseParam.cs create mode 100644 AllBase/Model/Params/WaybillHelper.cs create mode 100644 AllBase/Model/Result/BuyerLoginInfo.cs rename AllBase/{DouYinModel => Model}/Result/ShopLoginInfo.cs (76%) create mode 100644 AllBase/Model/WXBuyMapInfo.cs delete mode 100644 AllBase/Model/o_shop_info.cs create mode 100644 AllBase/Model/oms_wei_external_procurement_log.cs create mode 100644 Work/BaseForms/PddMobileLoginForm.Designer.cs create mode 100644 Work/BaseForms/PddMobileLoginForm.cs create mode 100644 Work/BaseForms/PddMobileLoginForm.resx delete mode 100644 Work/Class1.cs create mode 100644 Work/_29Tools/BLL/HttpResponseBLL.cs create mode 100644 Work/_29Tools/BLL/HttpResponseWXBLL.cs create mode 100644 Work/_29Tools/BLL/HttpResponseYkdBLL.cs create mode 100644 Work/_29Tools/BLL/SendBuyerOrder.cs create mode 100644 Work/_29Tools/CefTools/CustomResourceRequestHandlerLocal.cs create mode 100644 Work/_29Tools/CefTools/LifeSpanHandlerLocal.cs create mode 100644 Work/_29Tools/Forms/PddMobileBuyOrderForm.cs create mode 100644 Work/_29Tools/Forms/PddMobileBuyOrderForm.designer.cs create mode 100644 Work/_29Tools/Forms/PddMobileBuyOrderForm.resx create mode 100644 Work/_29Tools/Forms/PddMobileLoginForm.cs create mode 100644 Work/_29Tools/Forms/PddMobileLoginForm.designer.cs create mode 100644 Work/_29Tools/Forms/PddMobileLoginForm.resx diff --git a/29WxOrder.sln b/29WxOrder.sln index 998368c..315abbd 100644 --- a/29WxOrder.sln +++ b/29WxOrder.sln @@ -1,11 +1,11 @@  Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 17 -VisualStudioVersion = 17.14.36221.1 d17.14 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.36128.20 MinimumVisualStudioVersion = 10.0.40219.1 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "29WxOrderAllBase", "AllBase\29WxOrderAllBase.csproj", "{6461D807-B1C8-45F0-B388-E0CA1A418DE0}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "29供应链-微信小店", "29供应链-微信小店", "{1A7830FA-AC8F-40FB-A232-F0626812B8BE}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "29供应链-微信小店拍单", "29供应链-微信小店拍单", "{1A7830FA-AC8F-40FB-A232-F0626812B8BE}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "29WxOrder", "29WxOrder\29WxOrder.csproj", "{D51A1BB0-17BB-44C3-9129-1F3187E82729}" EndProject @@ -13,6 +13,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "29WxOrderWork", "Work\29WxO EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "29WxOrderWpf", "29WxOrderWpf\29WxOrderWpf.csproj", "{D7884375-E42F-4B89-AA3A-D8E75508D8C7}" EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "29供应链-BaseProject", "29供应链-BaseProject", "{4A54DC2A-B47C-4ED1-A482-EE60161DB2C3}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -94,7 +96,9 @@ Global HideSolutionNode = FALSE EndGlobalSection GlobalSection(NestedProjects) = preSolution + {6461D807-B1C8-45F0-B388-E0CA1A418DE0} = {4A54DC2A-B47C-4ED1-A482-EE60161DB2C3} {D51A1BB0-17BB-44C3-9129-1F3187E82729} = {1A7830FA-AC8F-40FB-A232-F0626812B8BE} + {1AD45D66-6872-4522-ACF0-04E2C0514048} = {4A54DC2A-B47C-4ED1-A482-EE60161DB2C3} {D7884375-E42F-4B89-AA3A-D8E75508D8C7} = {1A7830FA-AC8F-40FB-A232-F0626812B8BE} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution diff --git a/29WxOrder/29WxOrder.csproj b/29WxOrder/29WxOrder.csproj index 60da849..9427498 100644 --- a/29WxOrder/29WxOrder.csproj +++ b/29WxOrder/29WxOrder.csproj @@ -65,7 +65,7 @@ ..\..\KJD Cef138\Bin\ DEBUG;TRACE full - x86 + x64 default prompt true diff --git a/29WxOrder/FactoryExportForms/FactoryExportForm.Designer.cs b/29WxOrder/FactoryExportForms/FactoryExportForm.Designer.cs index e3f0bab..2a8dde1 100644 --- a/29WxOrder/FactoryExportForms/FactoryExportForm.Designer.cs +++ b/29WxOrder/FactoryExportForms/FactoryExportForm.Designer.cs @@ -352,7 +352,7 @@ this.ClientSize = new System.Drawing.Size(1184, 621); this.Controls.Add(this.panel1); this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); - this.IsShowMax = true; + this.IsShowMaxBox = true; this.Name = "FactoryExportForm"; this.Padding = new System.Windows.Forms.Padding(2, 0, 2, 2); this.Text = "指定商品订单列表"; diff --git a/29WxOrder/ShopForms/PddShopLoginForm.Designer.cs b/29WxOrder/ShopForms/PddShopLoginForm.Designer.cs index f8eb969..f0d4038 100644 --- a/29WxOrder/ShopForms/PddShopLoginForm.Designer.cs +++ b/29WxOrder/ShopForms/PddShopLoginForm.Designer.cs @@ -56,7 +56,7 @@ namespace _29WxOrder.ShopForms this.ClientSize = new System.Drawing.Size(1255, 641); this.Controls.Add(this.panel1); this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); - this.IsShowMax = true; + this.IsShowMaxBox = true; this.Name = "PddShopLoginForm"; this.Text = "拼多多批发登录"; this.TitleText = "拼多多批发登录"; diff --git a/29WxOrder/ShopForms/ShopBrower.Designer.cs b/29WxOrder/ShopForms/ShopBrower.Designer.cs index 8a4f174..64782ac 100644 --- a/29WxOrder/ShopForms/ShopBrower.Designer.cs +++ b/29WxOrder/ShopForms/ShopBrower.Designer.cs @@ -57,7 +57,7 @@ namespace _29WxOrder.ShopForms this.ClientSize = new System.Drawing.Size(1280, 720); this.Controls.Add(this.panel1); this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); - this.IsShowMax = true; + this.IsShowMaxBox = true; this.Name = "ShopBrower"; this.Text = "ShopBrower"; this.TitleText = "ShopBrower"; diff --git a/29WxOrder/ToolForms/CefForm.designer.cs b/29WxOrder/ToolForms/CefForm.designer.cs index 3b81fa4..8470172 100644 --- a/29WxOrder/ToolForms/CefForm.designer.cs +++ b/29WxOrder/ToolForms/CefForm.designer.cs @@ -91,7 +91,7 @@ this.ClientSize = new System.Drawing.Size(1280, 720); this.Controls.Add(this.splitContainer1); this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); - this.IsShowMax = true; + this.IsShowMaxBox = true; this.Name = "CefForm"; this.Text = "CefForm"; this.TitleText = "CefForm"; diff --git a/29WxOrder/ToolForms/ProgressForm.cs b/29WxOrder/ToolForms/ProgressForm.cs index caf6f45..c5edb0f 100644 --- a/29WxOrder/ToolForms/ProgressForm.cs +++ b/29WxOrder/ToolForms/ProgressForm.cs @@ -20,7 +20,7 @@ namespace _29WxOrder.ToolForms private void ProgressForm_Load(object sender, EventArgs e) { - this.IsShowMax = false; + this.IsShowMaxBox = false; this.pbCloseBase.Visible = false; } diff --git a/29WxOrderWpf/29WxOrderWpf.csproj b/29WxOrderWpf/29WxOrderWpf.csproj index 7bcc330..2910c37 100644 --- a/29WxOrderWpf/29WxOrderWpf.csproj +++ b/29WxOrderWpf/29WxOrderWpf.csproj @@ -1,5 +1,8 @@  + + + Debug @@ -29,9 +32,11 @@ false false true + + - AnyCPU + x64 true full false @@ -41,7 +46,7 @@ 4 - AnyCPU + x64 pdbonly true ..\..\KJD Cef138\Bin\ @@ -53,6 +58,15 @@ 29wx.ico + + ..\packages\CefSharp.Common.138.0.340\lib\net462\CefSharp.dll + + + ..\packages\CefSharp.Common.138.0.340\lib\net462\CefSharp.Core.dll + + + ..\packages\CefSharp.Wpf.138.0.340\lib\net462\CefSharp.Wpf.dll + ..\DllReference\NaiBa.Util.dll @@ -86,8 +100,17 @@ + + + + + PDDBuyerOrderListCtrl.xaml + + + PDDBuyerSelectCtrl.xaml + OrderListRowCtrl.xaml @@ -122,6 +145,14 @@ Designer MSBuild:Compile + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + MSBuild:Compile Designer @@ -296,5 +327,18 @@ + + + + + + 这台计算机上缺少此项目引用的 NuGet 程序包。使用“NuGet 程序包还原”可下载这些程序包。有关更多信息,请参见 http://go.microsoft.com/fwlink/?LinkID=322105。缺少的文件是 {0}。 + + + + + + + \ No newline at end of file diff --git a/29WxOrderWpf/App.xaml b/29WxOrderWpf/App.xaml index 747d1b5..a9ee436 100644 --- a/29WxOrderWpf/App.xaml +++ b/29WxOrderWpf/App.xaml @@ -6,9 +6,13 @@ StartupUri="MainWindow.xaml"> + + + + diff --git a/29WxOrderWpf/App.xaml.cs b/29WxOrderWpf/App.xaml.cs index bd2ea5c..706e645 100644 --- a/29WxOrderWpf/App.xaml.cs +++ b/29WxOrderWpf/App.xaml.cs @@ -1,8 +1,11 @@ using _29WxOrderWpf.BaseWindows; +using CefSharp; using System; using System.Collections.Generic; using System.Configuration; using System.Data; +using System.Diagnostics; +using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; @@ -18,6 +21,7 @@ namespace _29WxOrderWpf /// public partial class App : Application { + public static int ProcessCount = 0; public static string[] args = new List().ToArray(); protected override void OnStartup(StartupEventArgs e) { @@ -67,6 +71,35 @@ namespace _29WxOrderWpf //BaseMsgForm.ShowError(str, "系统错误"); BaseMsgWindow.ShowError(null, str, "系统错误"); } + + #region 初始化cef + CefSharpSettings.WcfEnabled = false; + + CefSharp.Wpf.CefSettings settings = new CefSharp.Wpf.CefSettings(); + settings.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36"; + settings.CefCommandLineArgs.Add("disable-gpu", "1"); // 禁止显卡加速 + settings.IgnoreCertificateErrors = true; + settings.Locale = "zh-CN"; + settings.LogSeverity = LogSeverity.Disable; + + var pName = Process.GetCurrentProcess().ProcessName; + ProcessCount = Process.GetProcesses().Count(p => p.ProcessName == pName); + //138版cef自己不会分缓存,会因占用导致报错,手动分缓存 + settings.CachePath = Path.Combine(Environment.CurrentDirectory, "Cache\\Order" + ProcessCount); + //settings.CachePath = null; //禁止缓存 + //settings.CefCommandLineArgs.Add("enable-javascript", "1"); + //settings.CefCommandLineArgs.Add("disable-features", "NetworkService,NetworkServiceInProcess"); + settings.CefCommandLineArgs.Add("--disable-web-security", "1"); + //settings.CefCommandLineArgs.Add("--disable-request-handling-for-testing", "1"); +#if DEBUG + settings.LogFile = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "cef_log_order.txt"); + // 设置日志级别为详细 + settings.LogSeverity = LogSeverity.Verbose; + // 捕获JavaScript异常堆栈(最多32帧) + settings.UncaughtExceptionStackSize = 32; +#endif + Cef.Initialize(settings); + #endregion } //static void Application_ThreadException(object sender, System.Threading.ThreadExceptionEventArgs e) diff --git a/29WxOrderWpf/Converters/HasValueToVisibilityConverter.cs b/29WxOrderWpf/Converters/HasValueToVisibilityConverter.cs new file mode 100644 index 0000000..0f39abb --- /dev/null +++ b/29WxOrderWpf/Converters/HasValueToVisibilityConverter.cs @@ -0,0 +1,28 @@ +using NaiBa.Util.Extension; +using System; +using System.Collections.Generic; +using System.Globalization; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Data; + +namespace _29WxOrderWpf.Converters +{ + public class HasValueToVisibilityConverter : IValueConverter + { + public object Convert(object value, Type targetType, object parameter, CultureInfo culture) + { + if (value == null) + return Visibility.Collapsed; + if (value.ParseToString().IsNullOrEmpty()) + return Visibility.Collapsed; + return Visibility.Visible; + } + public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) + { + throw new NotImplementedException(); // 单向绑定可不实现 + } + } +} diff --git a/29WxOrderWpf/Converters/StatusToColorBrushConverter.cs b/29WxOrderWpf/Converters/StatusToColorBrushConverter.cs new file mode 100644 index 0000000..b8dc611 --- /dev/null +++ b/29WxOrderWpf/Converters/StatusToColorBrushConverter.cs @@ -0,0 +1,28 @@ +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; + +namespace _29WxOrderWpf.Converters +{ + public class StatusToColorBrushConverter : IValueConverter + { + public object Convert(object value, Type targetType, object parameter, CultureInfo culture) + { + if (value is string status) + { + return status == "在线" ? new SolidColorBrush(Color.FromRgb(50, 180, 50)) : new SolidColorBrush(Color.FromRgb(255, 50, 50)); + } + return value; + } + + public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) + { + throw new NotImplementedException(); // 因为这是单向绑定,反向转换不实现 + } + } +} diff --git a/29WxOrderWpf/Converters/ValueMinus24Converter.cs b/29WxOrderWpf/Converters/ValueMinus24Converter.cs new file mode 100644 index 0000000..28a1274 --- /dev/null +++ b/29WxOrderWpf/Converters/ValueMinus24Converter.cs @@ -0,0 +1,27 @@ +using System; +using System.Collections.Generic; +using System.Globalization; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Data; + +namespace _29WxOrderWpf.Converters +{ + public class ValueMinus24Converter : IValueConverter + { + public object Convert(object value, Type targetType, object parameter, CultureInfo culture) + { + if (value is double width) + { + return Math.Max(0, width - 24); // 确保宽度/高度不会变成负数 + } + return value; + } + + public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) + { + throw new NotImplementedException(); // 因为这是单向绑定,反向转换不实现 + } + } +} diff --git a/29WxOrderWpf/Ctrls/BuyerCtrls/PDDBuyerOrderListCtrl.xaml b/29WxOrderWpf/Ctrls/BuyerCtrls/PDDBuyerOrderListCtrl.xaml new file mode 100644 index 0000000..cf19bb3 --- /dev/null +++ b/29WxOrderWpf/Ctrls/BuyerCtrls/PDDBuyerOrderListCtrl.xaml @@ -0,0 +1,12 @@ + + + + + diff --git a/29WxOrderWpf/Ctrls/BuyerCtrls/PDDBuyerOrderListCtrl.xaml.cs b/29WxOrderWpf/Ctrls/BuyerCtrls/PDDBuyerOrderListCtrl.xaml.cs new file mode 100644 index 0000000..43ad91e --- /dev/null +++ b/29WxOrderWpf/Ctrls/BuyerCtrls/PDDBuyerOrderListCtrl.xaml.cs @@ -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 _29WxOrderWpf.Ctrls.BuyerCtrls +{ + /// + /// PDDBuyerOrderListCtrl.xaml 的交互逻辑 + /// + public partial class PDDBuyerOrderListCtrl : UserControl + { + public PDDBuyerOrderListCtrl() + { + InitializeComponent(); + } + } +} diff --git a/29WxOrderWpf/Ctrls/BuyerCtrls/PDDBuyerSelectCtrl.xaml b/29WxOrderWpf/Ctrls/BuyerCtrls/PDDBuyerSelectCtrl.xaml new file mode 100644 index 0000000..0bf85ac --- /dev/null +++ b/29WxOrderWpf/Ctrls/BuyerCtrls/PDDBuyerSelectCtrl.xaml @@ -0,0 +1,48 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + - - + - + @@ -249,6 +253,31 @@ Margin="4,0,0,0" Content="编辑" Click="btnCopyRemark_Click"> + + + + + + + + + + + + + + + + + +