diff --git a/AllBase/BaseClass.cs b/AllBase/BaseClass.cs
index 1922257..d2bd2fe 100644
--- a/AllBase/BaseClass.cs
+++ b/AllBase/BaseClass.cs
@@ -27,7 +27,7 @@ namespace AllBase
///
/// 版本ID
///
- public static int VersionCount = 750;
+ public static int VersionCount = 752;
//public static int VersionCount = 613;
///
diff --git a/AllBase/JsonHelper.cs b/AllBase/JsonHelper.cs
index 5c3c97e..2c58767 100644
--- a/AllBase/JsonHelper.cs
+++ b/AllBase/JsonHelper.cs
@@ -44,6 +44,17 @@ namespace AllBase
return t;
}
+ public static T DeserializeJsonToObjectNullable(string json) where T : class
+ {
+ if (string.IsNullOrEmpty(json))
+ return json as T;
+ JsonSerializer serializer = new JsonSerializer();
+ StringReader sr = new StringReader(json);
+ object o = serializer.Deserialize(new JsonTextReader(sr), typeof(T));
+ T t = o as T;
+ return t;
+ }
+
public static JObject JObjectParse(string json)
{
try
diff --git a/KJDService/KJD_WebService/BLL/KJD/ProductManage.cs b/KJDService/KJD_WebService/BLL/KJD/ProductManage.cs
index 3c3cd85..c7a1e33 100644
--- a/KJDService/KJD_WebService/BLL/KJD/ProductManage.cs
+++ b/KJDService/KJD_WebService/BLL/KJD/ProductManage.cs
@@ -396,6 +396,10 @@ namespace KJD_Web.BLL
string size_json = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "size_json"))?.Replace("'", "\\'");
string original_json = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "original_json"))?.Replace("'", "\\'");
+ if (string.IsNullOrEmpty(id))
+ {
+ return "{\"code\":500,\"msg\":\"没有指定商品\"}";
+ }
if (string.IsNullOrEmpty(user_name))
{
return "{\"code\":500,\"msg\":\"没有用户名\"}";
diff --git a/PackTools/Publish/Publish/Form1.cs b/PackTools/Publish/Publish/Form1.cs
index d2ee26e..cbd391c 100644
--- a/PackTools/Publish/Publish/Form1.cs
+++ b/PackTools/Publish/Publish/Form1.cs
@@ -23,8 +23,10 @@ namespace Publish
{
try
{
+ int fileId = 0;
+
List filePathLst = new List();
- string destinationZip = AppDomain.CurrentDomain.SetupInformation.ApplicationBase + "Update.zip";
+ string destinationZip = AppDomain.CurrentDomain.SetupInformation.ApplicationBase + "Update" + fileId + ".zip";
foreach (var item in this.lstFile.Items)
{
filePathLst.Add(AppDomain.CurrentDomain.SetupInformation.ApplicationBase + item.ToString());
diff --git a/TEMUKJD/KJD.csproj b/TEMUKJD/KJD.csproj
index 1cba96a..d5b38eb 100644
--- a/TEMUKJD/KJD.csproj
+++ b/TEMUKJD/KJD.csproj
@@ -263,6 +263,12 @@
DbProductCategorySearch.cs
+
+ Form
+
+
+ DbProductEditDetailForm.cs
+
Form
@@ -349,11 +355,11 @@
SaleStockUpForm.cs
-
+
Form
-
- DbProductEditNotesForm.cs
+
+ DbProductEditForm.cs
Form
@@ -994,6 +1000,9 @@
DbProductCategorySearch.cs
+
+ DbProductEditDetailForm.cs
+
DbPriceEditForm.cs
@@ -1036,8 +1045,8 @@
SaleStockUpForm.cs
-
- DbProductEditNotesForm.cs
+
+ DbProductEditForm.cs
DbProductListForm.cs
diff --git a/TEMUKJD/KJDForms/ProductSelectForms/DbProductEditDetailForm.Designer.cs b/TEMUKJD/KJDForms/ProductSelectForms/DbProductEditDetailForm.Designer.cs
new file mode 100644
index 0000000..b1952a1
--- /dev/null
+++ b/TEMUKJD/KJDForms/ProductSelectForms/DbProductEditDetailForm.Designer.cs
@@ -0,0 +1,165 @@
+
+namespace TemuKJD.KJDForms.ProductSelectForms
+{
+ partial class DbProductEditDetailForm
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Windows Form Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(DbProductEditDetailForm));
+ this.flowLayoutPanel1 = new System.Windows.Forms.FlowLayoutPanel();
+ this.ucSkuImgListItem1 = new TemuKJD.ToolForms.UcSkuImgListItem();
+ this.splitContainer1 = new System.Windows.Forms.SplitContainer();
+ this.btnSave = new DevComponents.DotNetBar.PanelEx();
+ this.btnCancel = new DevComponents.DotNetBar.PanelEx();
+ this.flowLayoutPanel1.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit();
+ this.splitContainer1.Panel1.SuspendLayout();
+ this.splitContainer1.Panel2.SuspendLayout();
+ this.splitContainer1.SuspendLayout();
+ this.SuspendLayout();
+ //
+ // flowLayoutPanel1
+ //
+ this.flowLayoutPanel1.AutoScroll = true;
+ this.flowLayoutPanel1.BackColor = System.Drawing.Color.White;
+ this.flowLayoutPanel1.Controls.Add(this.ucSkuImgListItem1);
+ this.flowLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.flowLayoutPanel1.Location = new System.Drawing.Point(0, 0);
+ this.flowLayoutPanel1.Name = "flowLayoutPanel1";
+ this.flowLayoutPanel1.Padding = new System.Windows.Forms.Padding(4);
+ this.flowLayoutPanel1.Size = new System.Drawing.Size(1198, 555);
+ this.flowLayoutPanel1.TabIndex = 2;
+ //
+ // ucSkuImgListItem1
+ //
+ this.ucSkuImgListItem1.BackColor = System.Drawing.Color.White;
+ this.ucSkuImgListItem1.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+ this.ucSkuImgListItem1.Location = new System.Drawing.Point(7, 7);
+ this.ucSkuImgListItem1.Name = "ucSkuImgListItem1";
+ this.ucSkuImgListItem1.Size = new System.Drawing.Size(250, 280);
+ this.ucSkuImgListItem1.TabIndex = 0;
+ //
+ // splitContainer1
+ //
+ this.splitContainer1.BackColor = System.Drawing.Color.White;
+ this.splitContainer1.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.splitContainer1.FixedPanel = System.Windows.Forms.FixedPanel.Panel2;
+ this.splitContainer1.Location = new System.Drawing.Point(1, 33);
+ this.splitContainer1.Name = "splitContainer1";
+ this.splitContainer1.Orientation = System.Windows.Forms.Orientation.Horizontal;
+ //
+ // splitContainer1.Panel1
+ //
+ this.splitContainer1.Panel1.Controls.Add(this.flowLayoutPanel1);
+ //
+ // splitContainer1.Panel2
+ //
+ this.splitContainer1.Panel2.Controls.Add(this.btnCancel);
+ this.splitContainer1.Panel2.Controls.Add(this.btnSave);
+ this.splitContainer1.Size = new System.Drawing.Size(1198, 606);
+ this.splitContainer1.SplitterDistance = 555;
+ this.splitContainer1.TabIndex = 3;
+ //
+ // btnSave
+ //
+ this.btnSave.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
+ this.btnSave.Cursor = System.Windows.Forms.Cursors.Hand;
+ this.btnSave.DisabledBackColor = System.Drawing.Color.Empty;
+ this.btnSave.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+ this.btnSave.Location = new System.Drawing.Point(1108, 11);
+ this.btnSave.Name = "btnSave";
+ this.btnSave.Size = new System.Drawing.Size(73, 23);
+ this.btnSave.Style.Alignment = System.Drawing.StringAlignment.Center;
+ this.btnSave.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
+ this.btnSave.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
+ this.btnSave.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder;
+ this.btnSave.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash;
+ this.btnSave.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None;
+ this.btnSave.Style.ForeColor.Color = System.Drawing.Color.White;
+ this.btnSave.Style.GradientAngle = 90;
+ this.btnSave.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center;
+ this.btnSave.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255)))));
+ this.btnSave.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255)))));
+ this.btnSave.TabIndex = 435;
+ this.btnSave.Text = "保存";
+ this.btnSave.Click += new System.EventHandler(this.btnSave_Click);
+ //
+ // btnCancel
+ //
+ this.btnCancel.CanvasColor = System.Drawing.SystemColors.Control;
+ this.btnCancel.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
+ this.btnCancel.DisabledBackColor = System.Drawing.Color.Empty;
+ this.btnCancel.Location = new System.Drawing.Point(1031, 11);
+ this.btnCancel.Margin = new System.Windows.Forms.Padding(4, 2, 2, 2);
+ this.btnCancel.Name = "btnCancel";
+ this.btnCancel.Size = new System.Drawing.Size(73, 23);
+ this.btnCancel.Style.Alignment = System.Drawing.StringAlignment.Center;
+ this.btnCancel.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255)))));
+ this.btnCancel.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255)))));
+ this.btnCancel.Style.Border = DevComponents.DotNetBar.eBorderType.SingleLine;
+ this.btnCancel.Style.BorderColor.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
+ this.btnCancel.Style.ForeColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText;
+ this.btnCancel.Style.GradientAngle = 90;
+ this.btnCancel.StyleMouseDown.Alignment = System.Drawing.StringAlignment.Center;
+ this.btnCancel.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center;
+ this.btnCancel.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
+ this.btnCancel.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
+ this.btnCancel.StyleMouseOver.ForeColor.Color = System.Drawing.Color.White;
+ this.btnCancel.TabIndex = 508;
+ this.btnCancel.Text = "取消";
+ this.btnCancel.Click += new System.EventHandler(this.btnCancel_Click);
+ //
+ // DbProductEditDetailForm
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.ClientSize = new System.Drawing.Size(1200, 640);
+ this.Controls.Add(this.splitContainer1);
+ this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
+ this.Name = "DbProductEditDetailForm";
+ this.Text = "DbProductEditDetailForm";
+ this.TitleText = "DbProductEditDetailForm";
+ this.Load += new System.EventHandler(this.DbProductEditDetailForm_Load);
+ this.Controls.SetChildIndex(this.splitContainer1, 0);
+ this.flowLayoutPanel1.ResumeLayout(false);
+ this.splitContainer1.Panel1.ResumeLayout(false);
+ this.splitContainer1.Panel2.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).EndInit();
+ this.splitContainer1.ResumeLayout(false);
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel1;
+ private TemuKJD.ToolForms.UcSkuImgListItem ucSkuImgListItem1;
+ private System.Windows.Forms.SplitContainer splitContainer1;
+ private DevComponents.DotNetBar.PanelEx btnSave;
+ private DevComponents.DotNetBar.PanelEx btnCancel;
+ }
+}
\ No newline at end of file
diff --git a/TEMUKJD/KJDForms/ProductSelectForms/DbProductEditDetailForm.cs b/TEMUKJD/KJDForms/ProductSelectForms/DbProductEditDetailForm.cs
new file mode 100644
index 0000000..7cff071
--- /dev/null
+++ b/TEMUKJD/KJDForms/ProductSelectForms/DbProductEditDetailForm.cs
@@ -0,0 +1,154 @@
+using AllBase;
+using AllBase.Model.Result;
+using DevComponents.DotNetBar;
+using NaiBa.Util.Extension;
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+using TemuKJD.BaseForms;
+using TemuKJD.ToolForms;
+using Work;
+
+namespace TemuKJD.KJDForms.ProductSelectForms
+{
+ public partial class DbProductEditDetailForm : LRBaseForm
+ {
+ KJDDBProduct dbProd = null;
+ List lstUcSkuImgListItem = new List();
+ int maxIndex = 1;
+ int minIndex = 1;
+
+ public DbProductEditDetailForm(KJDDBProduct _dbProd)
+ {
+ InitializeComponent();
+
+ if (_dbProd != null)
+ dbProd = _dbProd;
+
+ this.Width = Math.Min(1600, Screen.PrimaryScreen.Bounds.Width);
+ this.Height = Math.Min(900, Screen.PrimaryScreen.Bounds.Height);
+ this.StartPosition = FormStartPosition.CenterScreen;
+ }
+
+ private void DbProductEditDetailForm_Load(object sender, EventArgs e)
+ {
+ if (string.IsNullOrWhiteSpace(dbProd.product_json))
+ {
+ var temuDBProd = DbProductSelectListManageForm.GetProductDetail(dbProd.id.ToString());
+ if (temuDBProd == null || temuDBProd.id == 0)
+ {
+ BaseMsgForm.ShowError("商品已清除!");
+ return;
+ }
+ dbProd = temuDBProd;
+ }
+
+ var prodInfo = JsonHelper.DeserializeJsonToObject(dbProd.product_json);
+ var mainImgUrls = prodInfo.carouselImageUrls;
+ flowLayoutPanel1.Controls.Clear();
+ lstUcSkuImgListItem.Clear();
+ int index = 0;
+ foreach (var imgUrl in mainImgUrls)
+ {
+ index++;
+ maxIndex = index;
+ UcSkuImgListItem imgListItem = new UcSkuImgListItem();
+ imgListItem.Anchor = AnchorStyles.None;
+ imgListItem.pictureBox1.ImageLocation = imgUrl.Replace("img.kwcdn.com", "img.cdnfe.com").Replace("https://", "http://");
+ imgListItem.pictureBox1.Tag = imgUrl;
+ imgListItem.txtUseCount.Text = index.ToString();
+ imgListItem.txtUseCount.Tag = index;
+ imgListItem.txtUseCount.ReadOnly = false;
+ imgListItem.btnDel.Text = "交换";
+ imgListItem.btnDel.Tag = imgListItem;
+ imgListItem.btnDel.Click += BtnDel_Click;
+ this.flowLayoutPanel1.Controls.Add(imgListItem);
+ lstUcSkuImgListItem.Add(imgListItem);
+ }
+ }
+
+ private void BtnDel_Click(object sender, EventArgs e)
+ {
+ PanelEx btnDel = sender as PanelEx;
+ if (btnDel == null)
+ return;
+ UcSkuImgListItem imgListItem = btnDel.Tag as UcSkuImgListItem;
+ if (imgListItem == null)
+ return;
+
+ int newIndex = imgListItem.txtUseCount.Text.ParseToInt();
+ if (newIndex < minIndex || newIndex > maxIndex)
+ {
+ BaseMsgForm.ShowError("图片序号超过范围!");
+ return;
+ }
+
+ try
+ {
+ var targetImgListItem = lstUcSkuImgListItem[newIndex - 1];
+ var newImgUrl = targetImgListItem.pictureBox1.Tag.ParseToString();
+ var oldImgUrl = imgListItem.pictureBox1.Tag.ParseToString();
+ imgListItem.txtUseCount.Text = imgListItem.txtUseCount.Tag.ToString();
+ targetImgListItem.pictureBox1.Tag = oldImgUrl;
+ targetImgListItem.pictureBox1.ImageLocation = oldImgUrl.Replace("img.kwcdn.com", "img.cdnfe.com").Replace("https://", "http://");
+ imgListItem.pictureBox1.Tag = newImgUrl;
+ imgListItem.pictureBox1.ImageLocation = newImgUrl.Replace("img.kwcdn.com", "img.cdnfe.com").Replace("https://", "http://");
+ }
+ catch (Exception ex)
+ {
+ BaseMsgForm.ShowError(ex.Message);
+ }
+ }
+
+ private void btnCancel_Click(object sender, EventArgs e)
+ {
+ this.Close();
+ }
+
+ private void btnSave_Click(object sender, EventArgs e)
+ {
+ List imgUrlLst = new List();
+ foreach(Control control in flowLayoutPanel1.Controls)
+ {
+ UcSkuImgListItem imgListItem = control as UcSkuImgListItem;
+ if (imgListItem == null)
+ continue;
+
+ var imgUrl = imgListItem.pictureBox1.Tag.ParseToString();
+ if (!string.IsNullOrEmpty(imgUrl))
+ {
+ imgUrlLst.Add(imgUrl);
+ }
+ }
+
+ var prodInfo = JsonHelper.DeserializeJsonToObjectNullable(dbProd.product_json);
+ if (dbProd != null && prodInfo != null)
+ {
+ var oldMainImgUrls = prodInfo.carouselImageUrls;
+ dbProd.product_json = dbProd.product_json.Replace(JsonHelper.SerializeObject(oldMainImgUrls), JsonHelper.SerializeObject(imgUrlLst));
+
+ var url = BaseClass.BuildObjString("product/mdy_db_product");
+ var data = UserLogin.GetSignaturex() + "&db_id=" + dbProd.id;
+ data += "&product_json=" + HttpUtility.UrlEncode(dbProd.product_json, Encoding.UTF8);
+ 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"))
+ {
+ string msg = "选品商品更新保存失败!请检查网络连接:" + BaseRegex.GetStringJson(ref html, "msg");
+ BaseMsgForm.ShowError(msg);
+ }
+ else
+ {
+ this.Close();
+ }
+ }
+ }
+ }
+}
diff --git a/TEMUKJD/KJDForms/ProductSelectForms/DbProductEditDetailForm.resx b/TEMUKJD/KJDForms/ProductSelectForms/DbProductEditDetailForm.resx
new file mode 100644
index 0000000..2bdeb30
--- /dev/null
+++ b/TEMUKJD/KJDForms/ProductSelectForms/DbProductEditDetailForm.resx
@@ -0,0 +1,298 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+
+
+ AAABAAEAgIAQAAAAAABoKAAAFgAAACgAAACAAAAAAAEAAAEABAAAAAAAACgAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAACAAACAAAAAgIAAgAAAAIAAgACAgAAAgICAAMDAwAAAAP8AAP8AAAD//wD/AAAA/wD/AP//
+ AAD///8AAAAAAAAAAAAAAAAzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMQ
+ AAAAAAAAAAAAAAAAAAAAAAAAABM5mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
+ mZmZkzEAAAAAAAAAAAAAAAAAAAAAADOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
+ mZmZmZmZmZmZMwAAAAAAAAAAAAAAAAAAABOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
+ mZmZmZmZmZmZmZmZmZkzAAAAAAAAAAAAAAAAAAOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
+ mZmZmZmZmZmZmZmZmZmZmZmZmTEAAAAAAAAAAAAAAAOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
+ mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZMAAAAAAAAAAAAAA5mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
+ mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZMAAAAAAAAAAAADmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
+ mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZMAAAAAAAAAAAOZmZmZmZmZmZmZmZmZmZmZmZ
+ mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZMAAAAAAAAAA5mZmZmZmZmZmZmZmZmZ
+ mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZMAAAAAAAADmZmZmZmZmZmZmZ
+ mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZMAAAAAAAGZmZmZmZmZ
+ mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZMAAAAAAJmZmZ
+ mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZAAAAAA
+ OZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmT
+ AAAAAZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
+ mZmZmRAAAAOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
+ mZmZmZmZmZkwAAAZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
+ mZmZmZmZmZmZmZmZkwAAOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
+ mZmZmZmZmZmZmZmZmZmZmZMAAJmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
+ mZmZmZmZmZmZmZmZmZmZmZmZmZmZEAOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
+ mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmTADmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
+ mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZkwCZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
+ mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZkRmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
+ mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZM5mZmZmZmZmZmZmZmZmZmZmZmZmZmZ
+ mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmTOZmZmZmZmZmZmZmZmZmZmZmZ
+ mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZkzmZmZmZmZmZmZmZmZmZ
+ mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZM5mZmZmZmZmZmZ
+ mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmTOZmZmZmZ
+ mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZkzmZ
+ mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
+ mZM5mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
+ mZmZmZmTOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
+ mZmZmZmZmZmZkzmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
+ mZmZmZmZmZmZmZmZmZM5mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
+ mZmZmZmZmZmZmZmZmZmZmZmTOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
+ mZmZmZmZmZmZmZmZmZmZmZmZmZmZkzmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
+ mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZM5mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
+ mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmTOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
+ mZmZmZmZmZmZmZOZmZOZmZmZmZmZmZmZmZmZmZmZmZmZkzmZmZmZmZmZmZmZmP+JmZmZmZmZj///////
+ ///4OZmZj/eZmZmZmZmZmPg5OZmZmZuI//iIuZmZmZmZmZmZmZM5mZmZmZmZmZmZmb//+JmZmZmZmP//
+ //////////OZmP//uZmZmZmZmY//+ZmZOZf///////h5k5mZmZmZmZmTOZmZmZmZmZmZmZmP//iZmZmZ
+ mZ/////////////4mZ///4mZmZmZmZP///uZmZmP////////+JmZmZmZmZmZkzmZmZmZmZmZmZmZj//4
+ mZmZmZmf////////////+Jmf//+JmZmZmZmb///4mZmY//////////+JmZmZmZmZmZM5mZmZmZmZmZmZ
+ mY//+JmZmZmZn/////////////mZmP//iZmZmZmZk///+5mZj/////iP////+JmZmZmZmZmTOZmZmZmZ
+ mZmZmZmP//iZmZmZmZ////iIiIiIiIiZOZj//4mZmZmZmZP///uZmf////eZmT////+ZmZmZmZmZkzmZ
+ mZmZmZmZmZmZj//4mZmZmZmf//+JmZmZmZmZk5mY//+JmZmZmZmT///7mZj///+ZmZmZj///uZmZmZmZ
+ mZM5mZmZmZmZmZmZmY//+JmZmZmZn///iZmZmZmZmZmZmP//iZmZN5k5k///+5mY///zk5mZOT///4mZ
+ mZmZmZmTOZmZmZmZmZmZmZmP//iZmZmZmZ///4mZmZmZmZmZmZj//4mZmP/5k5P///uZmP//+ZmZmZmY
+ //+JmZmZmZmZkzmZmZmZmZmZmZmZj//4mZmZmZmf///4iIiIiIg5mZmY//+JOb//+JmT///7mZj//4mZ
+ mZmZmP//+ZmZmZmZmZM5mZmZmZmZmZmZmY//+JmZmZmZn///////////85mZmP//iZn///+Jk///+5mf
+ //+JmZmZmZj///mZmZmZmZmTOZmZmZmZmZmZmZmP//iZmZmZmZ////////////+ZmZj//4mY////85v/
+ //uZmP//iZmZmZmY///5mZmZmZmZkzmZmZmZmZmZmZmZj//4mZmZmZmf////////////mZmY//+Jv///
+ //+Z///7mZj//4mZmZmZmP//+ZmZmZmZmZM5mZmZmZmZmZmZmY//+JmZmZmZn///////////+JmZmP//
+ if//////if//+5mY//+JmZmZmZj///mZmZmZmZmTOZmZmZmZmZmZmZmP//iZmZmZmZ///////////4mZ
+ mZj//4j///////j///uZmP//iZmZmZmY///5mZmZmZmZkzmZmZmZmZmZmZmZj//4mZmZmZmf//+JMzMz
+ MzOZOZmY//////+D///////7mZj//4mZmZmZmP//+ZmZmZmZmZM5mZmZmZmZmZmZmY//+JmZmZmZn///
+ iZmZmZmZmZmZmP//////mY//////+5mY//+JmZmZmZj///mZmZmZmZmTOZmZmZmZmZmZmZmP//iZmZmZ
+ mZ///4mZmZmZmZmZmZj/////+5mf//////uZmP//iZmZmZmY///5mZmZmZmZkzmZmZmZmZmZMzM5j//4
+ kzMzmZmf//+JMzMzMzM5mZmY/////4mTk//////7mZj//4mZmZmZmP//+ZmZmZmZmZM5mZmZmZmZmP//
+ /////////4mZn////////////4mZmP////+ZmZmP////+5mY//+JmZmZmZj///mZmZmZmZmTOZmZmZmZ
+ mY/////////////4mZ/////////////7mZj////7mZmZn/////uZmP//iZmZmZmY///5mZmZmZmZkzmZ
+ mZmZmZn//////////////5mf////////////+Jmf////iZmZk5P////4mZ///4mZmZmZmP//+ZmZmZmZ
+ mZM5mZmZmZmZj/////////////iZn/////////////iZmP///5mZmZmZj///+5mY//+JmZmZmZj//4mZ
+ mZmZmZmTOZmZmZmZmZ/////////////zmZP///////////+JmZP///uTmZmZmZj//4mZm///mZmZmZmZ
+ //85mZmZmZmZkzmZmZmZmZOZiIiIiIiIiIiImTmZOIiIiIiIiIiImTmZOIi5mZmZmZOZiIuZmZk4iZOZ
+ mZmZOZiDmZmZmZmZmZM5mZmZmZmZOZmZmZmZmZmZmZOZmZmZmZmZmZmZmZOZmZmZmZmZmZmZOZmZmZmZ
+ mZk5mZmZmZOZmZmZmZmZmZmTOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
+ mZmZmZmZmZmZmZmZmZmZmZmZmZmZkzmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
+ mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZM5mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
+ mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmTOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
+ mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZkzmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
+ mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZM5mZmZmZmZmZmTuIiIiIs5mZmZmZmZ
+ mTu4i7mZmZmZmZmZmTMzmZOZmZkzOZmZmZmZmZmZmZmZmZmZmZmZmZmTOZmZmZmZmTmbj///////+HmT
+ mZmZk4j/////iJmZmZk4iP////iZOZmZj/mZOZOIiIiIiIiIiDmZmZmZmZmZkzmZmZmZmZmZj///////
+ ///4mZk5k4///4iI///4OZOY////////iZOZmb/5mZmP///////////4mZmZmZmZmZM5mZmZmZmZn///
+ //////////mZmY///5mZmZP///iZmP////////+ZOZk/iZmY/////////////4mZmZmZmZmTOZmZmZmZ
+ mZ/////////////5mZ////+JmZmY////iZl/////////+ZmZP4mZP//////////////7mZmZmZmZkzmZ
+ mZmZmZmb////////////uZP/j///+HM3j/////+ZmYj///////iZmT+JmY//////////////+JmZmZmZ
+ mZM5mZmZmZmZmY//////////+JmT+Jv///////////iPmTmZOI/4mP//uTk/iZmP//////////////iZ
+ mZmZmZmTOZmZmZmZmZmf//////////mZmZmZ///////////5mZmZmZmTOZk///mZP4mZj///////////
+ ///4mZmZmZmZkzmZmZmZmZmTmP////////+JOZmZOY//////////iZmZmZmZmZk5mf/4mT+JmY//////
+ ////////+JmZmZmZmZM5mZmZmZmZmZn/////////mZmZmZk//////////zmZmZmZmZmZmTmP/zm/iZmP
+ //////////////iZmZmZmZmTOZmZmZmZmZk5v///////85OZmZkzmP////////iZmZmZmZmZmZmZn//4
+ /4mZj/////hzN4/////4mZmZmZmZkzmZmZmZmZmZmZj//////4mZmTmY/4j////////4mZmZmZmZmZmZ
+ mZj///+JmY////+JmZmY////+JmZmZmZmZM5mZmZmZmZmZmZ//////+ZmZmZj////////////4mZmZmZ
+ mZmZmZmb////+ZmP///4mZu5mY////iZmZmZmZmTOZmZmZmZmZmZOb/////4k5mZmP/////////////7
+ mZmZmZmZmZmZk/////OZv///+ZmP+Jmf///4mZmZmZmZkzmZmZmZmZmZmZmf////+ZmZmZj////////4
+ eI//+JmZmZmZmZmZmZP////4mb///4mY//+JmP//+5mZmZmZmZM5mZmZmZmZmZk5v/////uTmZmb////
+ ///4mZmX//iZmZmZmZmZmZmZ////+Jmf//95n///+Zj///OZmZmZmZmTOZmZmZmZmZmZmf//////mZmZ
+ mY//////+ZOZmZiJmZmZmZmZmZmZmY////+ZmP//+I////iP//+JmZmZmZmZkzmZmZmZmZmZmZj/////
+ /4mZmZmf/////5k5mZOZmTmZmZmZmZmZmZmP///4mZP/////////////OZmZmZmZmZM5mZmZmZmZmZk/
+ ///////zmZmZm/////iZmZmZmZmZmZmZmZmZmZmZj///85mZj///////////+JmZmZmZmZmTOZmZmZmZ
+ mZmZv///////+5mZmZmP///5mZmZmZmZmZmZmZmZmZmZmZ///3mZmZj//////////4mZmZmZmZmZkzmZ
+ mZmZmZmZmb///4j///uZmZmZmP//mTmZmZmZmZmZmZmZmZmZmZmY/4OZmZmZeP///////4eZmZmZmZmZ
+ mZM5mZmZmZmZmZmY/4OZOP+JmZmZmZmIiZOZmZmZmZmZmZmZmZmZmZmZmYiZmZmZmZk4iIiIiIOZmZmZ
+ mZmZmZmTOZmZmZmZmZmZmTOZmZkzmZmZmZmZmZk5mZmZmZmZmZmZmZmZmZmZmZmZk5mZmZmZmZmZmZmZ
+ mZmZmZmZmZmZkzmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
+ mZmZmZmZmZmZmZmZmZM5mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
+ mZmZmZmZmZmZmZmZmZmZmZmTOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
+ mZmZmZmZmZmZmZmZmZmZmZmZmZmZkzmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
+ mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZM5mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
+ mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmTOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
+ mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZkzmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
+ mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZM5mZmZmZmZmZmZmZmZmZmZmZmZmZmZ
+ mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmTOZmZmZmZmZmZmZmZmZmZmZmZ
+ mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZkzmZmZmZmZmZmZmZmZmZ
+ mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZM5mZmZmZmZmZmZ
+ mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmTOZmZmZmZ
+ mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZkzmZ
+ mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
+ mZM5mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
+ mZmZmZmTGZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
+ mZmZmZmZmZmZkwmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
+ mZmZmZmZmZmZmZmZmZADmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
+ mZmZmZmZmZmZmZmZmZmZmZkwA5mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
+ mZmZmZmZmZmZmZmZmZmZmZmZmZmZMACZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
+ mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmQAAOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
+ mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZMAABmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
+ mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmTAAADmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
+ mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZMAAAAJmZmZmZmZmZmZmZmZmZmZmZmZmZ
+ mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmRAAAAA5mZmZmZmZmZmZmZmZmZmZ
+ mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZMAAAAACZmZmZmZmZmZmZmZ
+ mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmQAAAAAAGZmZmZmZmZ
+ mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZMAAAAAAAOZmZ
+ mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZkwAAAAAA
+ AAOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmTAA
+ AAAAAAAAOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
+ mZMAAAAAAAAAAAOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
+ mZmZmZkwAAAAAAAAAAAAOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
+ mZmZmZmZmZmTAAAAAAAAAAAAAAGZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
+ mZmZmZmZmZmZmZmZEAAAAAAAAAAAAAAAA5mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
+ mZmZmZmZmZmZmZmZmZmZMAAAAAAAAAAAAAAAAAATmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
+ mZmZmZmZmZmZmZmZmZmZmZmZMQAAAAAAAAAAAAAAAAAAABOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
+ mZmZmZmZmZmZmZmZmZmZmZmZmZmZMQAAAAAAAAAAAAAAAAAAAAAAAzmZmZmZmZmZmZmZmZmZmZmZmZmZ
+ mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmTMAAAAAAAAAAAAAAAAAAAAAAAAAAAEzMzMzMzMzMzMzMzMzMz
+ MzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMxAAAAAAAAAAAAAAD////////////////////////4AAAA
+ AAAAAAAAAB//////wAAAAAAAAAAAAAAD/////wAAAAAAAAAAAAAAAP////wAAAAAAAAAAAAAAAA////w
+ AAAAAAAAAAAAAAAAD///4AAAAAAAAAAAAAAAAAf//8AAAAAAAAAAAAAAAAAD//+AAAAAAAAAAAAAAAAA
+ Af//AAAAAAAAAAAAAAAAAAD//gAAAAAAAAAAAAAAAAAAf/wAAAAAAAAAAAAAAAAAAD/4AAAAAAAAAAAA
+ AAAAAAAf+AAAAAAAAAAAAAAAAAAAH/AAAAAAAAAAAAAAAAAAAA/wAAAAAAAAAAAAAAAAAAAP4AAAAAAA
+ AAAAAAAAAAAAB+AAAAAAAAAAAAAAAAAAAAfAAAAAAAAAAAAAAAAAAAADwAAAAAAAAAAAAAAAAAAAA8AA
+ AAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAA
+ AAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAA
+ AAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAA
+ AAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAA
+ AAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAA
+ AAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAA
+ AAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAA
+ AAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAA
+ AAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAA
+ AAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAA
+ AAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAA
+ AAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAA
+ AAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAA
+ AAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAA
+ AAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAA
+ AAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAA
+ AAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAA
+ AAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAA
+ AAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAA
+ AAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAA
+ AAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAA
+ AAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAA
+ AAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAA
+ AAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAPAAAAAAAAAAAAAAAAAAAAD4AAAAAAAAAAAAAAAAAAAA+AA
+ AAAAAAAAAAAAAAAAAAfgAAAAAAAAAAAAAAAAAAAH8AAAAAAAAAAAAAAAAAAAD/AAAAAAAAAAAAAAAAAA
+ AA/4AAAAAAAAAAAAAAAAAAAf/AAAAAAAAAAAAAAAAAAAH/wAAAAAAAAAAAAAAAAAAD/+AAAAAAAAAAAA
+ AAAAAAB//wAAAAAAAAAAAAAAAAAA//+AAAAAAAAAAAAAAAAAAf//wAAAAAAAAAAAAAAAAAP//+AAAAAA
+ AAAAAAAAAAAH///4AAAAAAAAAAAAAAAAD////AAAAAAAAAAAAAAAAD////8AAAAAAAAAAAAAAAD/////
+ wAAAAAAAAAAAAAAD//////wAAAAAAAAAAAAAH////////////////////////w==
+
+
+
\ No newline at end of file
diff --git a/TEMUKJD/KJDForms/ProductSelectForms/DbProductEditNotesForm.Designer.cs b/TEMUKJD/KJDForms/ProductSelectForms/DbProductEditForm.Designer.cs
similarity index 91%
rename from TEMUKJD/KJDForms/ProductSelectForms/DbProductEditNotesForm.Designer.cs
rename to TEMUKJD/KJDForms/ProductSelectForms/DbProductEditForm.Designer.cs
index 4dfdd6a..1d22cce 100644
--- a/TEMUKJD/KJDForms/ProductSelectForms/DbProductEditNotesForm.Designer.cs
+++ b/TEMUKJD/KJDForms/ProductSelectForms/DbProductEditForm.Designer.cs
@@ -1,6 +1,6 @@
namespace TemuKJD.KJDForms.ProductSelectForms
{
- partial class DbProductEditNotesForm
+ partial class DbProductEditForm
{
///
/// Required designer variable.
@@ -28,7 +28,7 @@
///
private void InitializeComponent()
{
- System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(DbProductEditNotesForm));
+ System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(DbProductEditForm));
this.panel2 = new System.Windows.Forms.Panel();
this.txtStickMarkCharge = new System.Windows.Forms.TextBox();
this.txtDeliveryCharge = new System.Windows.Forms.TextBox();
@@ -59,6 +59,7 @@
this.label12 = new System.Windows.Forms.Label();
this.label7 = new System.Windows.Forms.Label();
this.label9 = new System.Windows.Forms.Label();
+ this.btnMainPicSort = new DevComponents.DotNetBar.PanelEx();
this.panel2.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit();
this.SuspendLayout();
@@ -66,6 +67,7 @@
// panel2
//
this.panel2.BackColor = System.Drawing.Color.White;
+ this.panel2.Controls.Add(this.btnMainPicSort);
this.panel2.Controls.Add(this.txtStickMarkCharge);
this.panel2.Controls.Add(this.txtDeliveryCharge);
this.panel2.Controls.Add(this.btnSkuAi);
@@ -446,6 +448,31 @@
this.label9.TabIndex = 447;
this.label9.Text = " 分组";
//
+ // btnMainPicSort
+ //
+ this.btnMainPicSort.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
+ this.btnMainPicSort.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
+ this.btnMainPicSort.Cursor = System.Windows.Forms.Cursors.Hand;
+ this.btnMainPicSort.DisabledBackColor = System.Drawing.Color.Empty;
+ this.btnMainPicSort.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+ this.btnMainPicSort.Location = new System.Drawing.Point(173, 640);
+ this.btnMainPicSort.Name = "btnMainPicSort";
+ this.btnMainPicSort.Size = new System.Drawing.Size(77, 26);
+ this.btnMainPicSort.Style.Alignment = System.Drawing.StringAlignment.Center;
+ this.btnMainPicSort.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
+ this.btnMainPicSort.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
+ this.btnMainPicSort.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder;
+ this.btnMainPicSort.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash;
+ this.btnMainPicSort.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None;
+ this.btnMainPicSort.Style.ForeColor.Color = System.Drawing.Color.White;
+ this.btnMainPicSort.Style.GradientAngle = 90;
+ this.btnMainPicSort.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center;
+ this.btnMainPicSort.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255)))));
+ this.btnMainPicSort.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255)))));
+ this.btnMainPicSort.TabIndex = 493;
+ this.btnMainPicSort.Text = "主图排序";
+ this.btnMainPicSort.Click += new System.EventHandler(this.btnMainPicSort_Click);
+ //
// DbProductEditNotesForm
//
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
@@ -497,5 +524,6 @@
private System.Windows.Forms.TextBox txtDeliveryCharge;
private System.Windows.Forms.Label label11;
private System.Windows.Forms.Label label12;
+ private DevComponents.DotNetBar.PanelEx btnMainPicSort;
}
}
\ No newline at end of file
diff --git a/TEMUKJD/KJDForms/ProductSelectForms/DbProductEditNotesForm.cs b/TEMUKJD/KJDForms/ProductSelectForms/DbProductEditForm.cs
similarity index 93%
rename from TEMUKJD/KJDForms/ProductSelectForms/DbProductEditNotesForm.cs
rename to TEMUKJD/KJDForms/ProductSelectForms/DbProductEditForm.cs
index 0c7548f..15e6f89 100644
--- a/TEMUKJD/KJDForms/ProductSelectForms/DbProductEditNotesForm.cs
+++ b/TEMUKJD/KJDForms/ProductSelectForms/DbProductEditForm.cs
@@ -17,11 +17,11 @@ using NaiBa.Util.Extension;
namespace TemuKJD.KJDForms.ProductSelectForms
{
- public partial class DbProductEditNotesForm : LRBaseForm
+ public partial class DbProductEditForm : LRBaseForm
{
KJDDBProduct dbProd = null;
- public DbProductEditNotesForm(KJDDBProduct prod)
+ public DbProductEditForm(KJDDBProduct prod)
{
InitializeComponent();
@@ -111,5 +111,11 @@ namespace TemuKJD.KJDForms.ProductSelectForms
this.txtHeadWords.Text = dbProd.head_words;
this.txtEndWords.Text = dbProd.end_words;
}
+
+ private void btnMainPicSort_Click(object sender, EventArgs e)
+ {
+ DbProductEditDetailForm editDetailForm = new DbProductEditDetailForm(dbProd);
+ editDetailForm.ShowDialog();
+ }
}
}
diff --git a/TEMUKJD/KJDForms/ProductSelectForms/DbProductEditNotesForm.resx b/TEMUKJD/KJDForms/ProductSelectForms/DbProductEditForm.resx
similarity index 100%
rename from TEMUKJD/KJDForms/ProductSelectForms/DbProductEditNotesForm.resx
rename to TEMUKJD/KJDForms/ProductSelectForms/DbProductEditForm.resx
diff --git a/TEMUKJD/KJDForms/ProductSelectForms/DbProductListForm.cs b/TEMUKJD/KJDForms/ProductSelectForms/DbProductListForm.cs
index bed5845..3b6d237 100644
--- a/TEMUKJD/KJDForms/ProductSelectForms/DbProductListForm.cs
+++ b/TEMUKJD/KJDForms/ProductSelectForms/DbProductListForm.cs
@@ -376,7 +376,7 @@ namespace TemuKJD.KJDForms.ProductSelectForms
DeleteProduct(dbId);
break;
case "编辑/详情":
- DbProductEditNotesForm editForm = new DbProductEditNotesForm(dbProduct);
+ DbProductEditForm editForm = new DbProductEditForm(dbProduct);
editForm.ShowDialog();
dgvDbProduct.Rows[e.RowIndex].Cells["col_notes"].Value = dbProduct.notes;
dgvDbProduct.Rows[e.RowIndex].Cells["col_ext_code"].Value = dbProduct.ext_code;
diff --git a/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdEditDetailForm.cs b/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdEditDetailForm.cs
index b7217bf..4a9af76 100644
--- a/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdEditDetailForm.cs
+++ b/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdEditDetailForm.cs
@@ -58,6 +58,8 @@ namespace TemuKJD.PDDForms.ProductSelectForms
Task.Run(() =>
{
if (DbProd != null)
+ DbProdDetail = DbProd;
+ if (string.IsNullOrWhiteSpace(DbProdDetail?.product_json))
DbProdDetail = PDDDBProdUserSelectForm.GetProductDetail(DbProd.id.ParseToString());
if (DbProdDetail == null)
return;
diff --git a/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdEditForm.cs b/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdEditForm.cs
index efba97b..26e2450 100644
--- a/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdEditForm.cs
+++ b/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdEditForm.cs
@@ -46,9 +46,15 @@ namespace TemuKJD.PDDForms.ProductSelectForms
this.txtHeadWords.Text = dbProd.head_words;
this.txtEndWords.Text = dbProd.end_words;
- var prodTmp = GetProductDetail(dbProd.id.ToString());
- dbProd.sku_img_replace_base64 = prodTmp.sku_img_replace_base64;
- dbProd.sku_img_replace_url = prodTmp.sku_img_replace_url;
+ if(string.IsNullOrWhiteSpace(dbProd?.product_json))
+ {
+ var prodTmp = GetProductDetail(dbProd.id.ToString());
+ if (prodTmp != null)
+ dbProd = prodTmp;
+ }
+ //var prodTmp = GetProductDetail(dbProd.id.ToString());
+ //dbProd.sku_img_replace_base64 = prodTmp.sku_img_replace_base64;
+ //dbProd.sku_img_replace_url = prodTmp.sku_img_replace_url;
if (!string.IsNullOrWhiteSpace(dbProd.sku_img_replace_url))
this.pictureBox2.ImageLocation = dbProd.sku_img_replace_url;
else if (!string.IsNullOrWhiteSpace(dbProd.sku_img_replace_base64))
diff --git a/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdListForm.Designer.cs b/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdListForm.Designer.cs
index 165f649..54c153e 100644
--- a/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdListForm.Designer.cs
+++ b/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdListForm.Designer.cs
@@ -38,6 +38,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle7 = new System.Windows.Forms.DataGridViewCellStyle();
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(PDDDBProdListForm));
this.splitContainer1 = new System.Windows.Forms.SplitContainer();
+ this.btnExportTxt = new DevComponents.DotNetBar.PanelEx();
this.cmbGroupFilter = new System.Windows.Forms.ComboBox();
this.btnSelect = new DevComponents.DotNetBar.PanelEx();
this.btnDelSelect = new DevComponents.DotNetBar.PanelEx();
@@ -70,8 +71,6 @@ namespace TemuKJD.PDDForms.ProductSelectForms
this.txtSKC = new System.Windows.Forms.TextBox();
this.label1 = new System.Windows.Forms.Label();
this.dgvDbProduct = new TemuKJD.UserComponent.DataGridViewEx();
- this.ucSplitPage1 = new TemuKJD.UserControls.UcSplitPage();
- this.statusBar = new TemuKJD.UserControls.StatusBarUserControl();
this.colSelect = new System.Windows.Forms.DataGridViewCheckBoxColumn();
this.col_db_id = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colFromShopId = new System.Windows.Forms.DataGridViewTextBoxColumn();
@@ -99,6 +98,8 @@ namespace TemuKJD.PDDForms.ProductSelectForms
this.col_edit = new System.Windows.Forms.DataGridViewLinkColumn();
this.col_delete = new System.Windows.Forms.DataGridViewLinkColumn();
this.col_select_product = new System.Windows.Forms.DataGridViewLinkColumn();
+ this.ucSplitPage1 = new TemuKJD.UserControls.UcSplitPage();
+ this.statusBar = new TemuKJD.UserControls.StatusBarUserControl();
((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit();
this.splitContainer1.Panel1.SuspendLayout();
this.splitContainer1.Panel2.SuspendLayout();
@@ -124,6 +125,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms
//
// splitContainer1.Panel1
//
+ this.splitContainer1.Panel1.Controls.Add(this.btnExportTxt);
this.splitContainer1.Panel1.Controls.Add(this.cmbGroupFilter);
this.splitContainer1.Panel1.Controls.Add(this.btnSelect);
this.splitContainer1.Panel1.Controls.Add(this.btnDelSelect);
@@ -148,10 +150,35 @@ namespace TemuKJD.PDDForms.ProductSelectForms
// splitContainer1.Panel2
//
this.splitContainer1.Panel2.Controls.Add(this.splitContainer2);
- this.splitContainer1.Size = new System.Drawing.Size(1364, 686);
+ this.splitContainer1.Size = new System.Drawing.Size(1438, 686);
this.splitContainer1.SplitterDistance = 53;
this.splitContainer1.TabIndex = 1;
//
+ // btnExportTxt
+ //
+ this.btnExportTxt.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
+ this.btnExportTxt.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
+ this.btnExportTxt.Cursor = System.Windows.Forms.Cursors.Hand;
+ this.btnExportTxt.DisabledBackColor = System.Drawing.Color.Empty;
+ this.btnExportTxt.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+ this.btnExportTxt.Location = new System.Drawing.Point(1345, 15);
+ this.btnExportTxt.Name = "btnExportTxt";
+ this.btnExportTxt.Size = new System.Drawing.Size(84, 25);
+ this.btnExportTxt.Style.Alignment = System.Drawing.StringAlignment.Center;
+ this.btnExportTxt.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
+ this.btnExportTxt.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
+ this.btnExportTxt.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder;
+ this.btnExportTxt.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash;
+ this.btnExportTxt.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None;
+ this.btnExportTxt.Style.ForeColor.Color = System.Drawing.Color.White;
+ this.btnExportTxt.Style.GradientAngle = 90;
+ this.btnExportTxt.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center;
+ this.btnExportTxt.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255)))));
+ this.btnExportTxt.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255)))));
+ this.btnExportTxt.TabIndex = 672;
+ this.btnExportTxt.Text = "批量导出";
+ this.btnExportTxt.Click += new System.EventHandler(this.btnExportTxt_Click);
+ //
// cmbGroupFilter
//
this.cmbGroupFilter.FormattingEnabled = true;
@@ -419,7 +446,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms
//
this.splitContainer2.Panel2.Controls.Add(this.ucSplitPage1);
this.splitContainer2.Panel2.Controls.Add(this.statusBar);
- this.splitContainer2.Size = new System.Drawing.Size(1364, 629);
+ this.splitContainer2.Size = new System.Drawing.Size(1438, 629);
this.splitContainer2.SplitterDistance = 600;
this.splitContainer2.TabIndex = 0;
//
@@ -430,7 +457,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms
this.pnlEditExtCodePrice.Controls.Add(this.lblExtCode);
this.pnlEditExtCodePrice.Controls.Add(this.panel2);
this.pnlEditExtCodePrice.Controls.Add(this.lblExtCodePrice);
- this.pnlEditExtCodePrice.Location = new System.Drawing.Point(445, 96);
+ this.pnlEditExtCodePrice.Location = new System.Drawing.Point(482, 96);
this.pnlEditExtCodePrice.Name = "pnlEditExtCodePrice";
this.pnlEditExtCodePrice.Size = new System.Drawing.Size(474, 146);
this.pnlEditExtCodePrice.TabIndex = 434;
@@ -525,7 +552,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms
//
this.pbLoading.Anchor = System.Windows.Forms.AnchorStyles.None;
this.pbLoading.Image = global::TemuKJD.Properties.Resources.loading_blue;
- this.pbLoading.Location = new System.Drawing.Point(657, 275);
+ this.pbLoading.Location = new System.Drawing.Point(694, 275);
this.pbLoading.Name = "pbLoading";
this.pbLoading.Size = new System.Drawing.Size(50, 50);
this.pbLoading.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage;
@@ -602,36 +629,11 @@ namespace TemuKJD.PDDForms.ProductSelectForms
this.dgvDbProduct.Name = "dgvDbProduct";
this.dgvDbProduct.ReadOnly = true;
this.dgvDbProduct.RowTemplate.Height = 23;
- this.dgvDbProduct.Size = new System.Drawing.Size(1356, 600);
+ this.dgvDbProduct.Size = new System.Drawing.Size(1430, 600);
this.dgvDbProduct.TabIndex = 6;
this.dgvDbProduct.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dgvDbProduct_CellContentClick);
this.dgvDbProduct.Scroll += new System.Windows.Forms.ScrollEventHandler(this.dgvDbProduct_Scroll);
//
- // ucSplitPage1
- //
- this.ucSplitPage1.CurrentPage = 1;
- this.ucSplitPage1.Dock = System.Windows.Forms.DockStyle.Right;
- this.ucSplitPage1.IsShowPageSize = false;
- this.ucSplitPage1.Location = new System.Drawing.Point(1002, 0);
- this.ucSplitPage1.Margin = new System.Windows.Forms.Padding(0);
- this.ucSplitPage1.Name = "ucSplitPage1";
- this.ucSplitPage1.Padding = new System.Windows.Forms.Padding(0, 0, 1, 0);
- this.ucSplitPage1.PageSize = 50;
- this.ucSplitPage1.Size = new System.Drawing.Size(362, 25);
- this.ucSplitPage1.TabIndex = 6;
- this.ucSplitPage1.TotalPage = 1;
- //
- // statusBar
- //
- this.statusBar.BackColor = System.Drawing.Color.White;
- this.statusBar.Dock = System.Windows.Forms.DockStyle.Fill;
- this.statusBar.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
- this.statusBar.Location = new System.Drawing.Point(0, 0);
- this.statusBar.Margin = new System.Windows.Forms.Padding(0);
- this.statusBar.Name = "statusBar";
- this.statusBar.Size = new System.Drawing.Size(1364, 25);
- this.statusBar.TabIndex = 5;
- //
// colSelect
//
this.colSelect.FillWeight = 26F;
@@ -843,10 +845,35 @@ namespace TemuKJD.PDDForms.ProductSelectForms
this.col_select_product.Resizable = System.Windows.Forms.DataGridViewTriState.True;
this.col_select_product.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic;
//
+ // ucSplitPage1
+ //
+ this.ucSplitPage1.CurrentPage = 1;
+ this.ucSplitPage1.Dock = System.Windows.Forms.DockStyle.Right;
+ this.ucSplitPage1.IsShowPageSize = true;
+ this.ucSplitPage1.Location = new System.Drawing.Point(1024, 0);
+ this.ucSplitPage1.Margin = new System.Windows.Forms.Padding(0);
+ this.ucSplitPage1.Name = "ucSplitPage1";
+ this.ucSplitPage1.Padding = new System.Windows.Forms.Padding(0, 0, 1, 0);
+ this.ucSplitPage1.PageSize = 50;
+ this.ucSplitPage1.Size = new System.Drawing.Size(414, 25);
+ this.ucSplitPage1.TabIndex = 6;
+ this.ucSplitPage1.TotalPage = 1;
+ //
+ // statusBar
+ //
+ this.statusBar.BackColor = System.Drawing.Color.White;
+ this.statusBar.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.statusBar.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+ this.statusBar.Location = new System.Drawing.Point(0, 0);
+ this.statusBar.Margin = new System.Windows.Forms.Padding(0);
+ this.statusBar.Name = "statusBar";
+ this.statusBar.Size = new System.Drawing.Size(1438, 25);
+ this.statusBar.TabIndex = 5;
+ //
// PDDDBProdListForm
//
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
- this.ClientSize = new System.Drawing.Size(1366, 720);
+ this.ClientSize = new System.Drawing.Size(1440, 720);
this.Controls.Add(this.splitContainer1);
this.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
@@ -940,5 +967,6 @@ namespace TemuKJD.PDDForms.ProductSelectForms
private System.Windows.Forms.DataGridViewLinkColumn col_edit;
private System.Windows.Forms.DataGridViewLinkColumn col_delete;
private System.Windows.Forms.DataGridViewLinkColumn col_select_product;
+ private DevComponents.DotNetBar.PanelEx btnExportTxt;
}
}
\ No newline at end of file
diff --git a/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdListForm.cs b/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdListForm.cs
index f8c4f59..35f4f78 100644
--- a/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdListForm.cs
+++ b/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdListForm.cs
@@ -12,6 +12,7 @@ using System.Linq;
using System.Net;
using System.Text;
using System.Text.RegularExpressions;
+using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;
using TemuKJD.BaseForms;
@@ -127,7 +128,9 @@ namespace TemuKJD.PDDForms.ProductSelectForms
Task.Run(() =>
{
int pageCount;
- var list = GetProductList(out pageCount, page);
+ int pageSize = 50;
+ Invoke(new Action(() => { pageSize = this.ucSplitPage1.PageSize; }));
+ var list = GetProductList(out pageCount, page, pageSize);
lstTemuDbProduct.AddRange(list);
this.ucSplitPage1.TotalPage = pageCount;
@@ -721,5 +724,50 @@ namespace TemuKJD.PDDForms.ProductSelectForms
{
this.pnlEditExtCodePrice.Visible = false;
}
+
+ private void btnExportTxt_Click(object sender, EventArgs e)
+ {
+ var lstProdId = dgvDbProduct.Rows.Cast().Where(row
+ => row.Cells["colSelect"]?.Value.ParseToBool() == true).Select(r => r.Cells["col_spu_id"]?.Value.ToString()).ToList();
+ //var prodList = this.lstTemuDbProduct.Where(p => lstProdId.Contains(p.spu_id)).ToArray();
+
+ FolderBrowserDialog fd = new FolderBrowserDialog();
+ if (fd.ShowDialog() == DialogResult.OK)
+ {
+ var path = fd.SelectedPath;
+ this.pbLoading.Visible = true;
+ this.statusBar.pgbTaskProgress.Maximum = lstProdId.Count;
+ this.statusBar.UpdateProgressBar(0);
+
+ Task.Run(() =>
+ {
+ foreach (var pId in lstProdId)
+ {
+ var prod = this.lstTemuDbProduct.FirstOrDefault(p => p.spu_id == pId);
+ if (string.IsNullOrEmpty(prod.product_json))
+ {
+ prod = PDDDBProdUserSelectForm.GetProductDetail(prod.id.ParseToString());
+ Thread.Sleep(200);
+ }
+
+ StreamWriter sw = new StreamWriter(Path.Combine(path, prod.spu_id + ".txt"), true, Encoding.UTF8);
+ sw.Write(prod.product_json);
+ sw.Close();
+
+ Invoke(new Action(() =>
+ {
+ this.statusBar.UpdateProgressBar(this.statusBar.pgbTaskProgress.Value + 1);
+ this.statusBar.lblTaskStatus.Text = "正在导出";
+ }));
+ }
+ Invoke(new Action(() =>
+ {
+ pbLoading.Visible = false;
+ this.statusBar.lblTaskStatus.Text = "导出完成";
+ BaseMsgForm.ShowInfo("导出完成!");
+ }));
+ });
+ }
+ }
}
}
diff --git a/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdUserSelectForm.cs b/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdUserSelectForm.cs
index 5af8434..315a347 100644
--- a/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdUserSelectForm.cs
+++ b/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdUserSelectForm.cs
@@ -3625,8 +3625,6 @@ Content-Disposition: form-data; name=""pic_operations""
data = UserLogin.GetSignaturex() + "&search_db_ids=" + prodDbId;
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"))
diff --git a/TEMUKJD/ToolForms/DouBaoImgListForm.cs b/TEMUKJD/ToolForms/DouBaoImgListForm.cs
index accc155..d3df33a 100644
--- a/TEMUKJD/ToolForms/DouBaoImgListForm.cs
+++ b/TEMUKJD/ToolForms/DouBaoImgListForm.cs
@@ -47,7 +47,7 @@ namespace TemuKJD.ToolForms
imgListItem.btnDel.Tag = skuImg;
imgListItem.Anchor = AnchorStyles.None;
imgListItem.btnDel.Click += BtnDel_Click;
- imgListItem.lblUseCount.Text = "共使用 " + skuImg.use_count + " 次";
+ imgListItem.txtUseCount.Text = "共使用 " + skuImg.use_count + " 次";
this.flowLayoutPanel1.Controls.Add(imgListItem);
}
}
diff --git a/TEMUKJD/ToolForms/UcSkuImgListItem.Designer.cs b/TEMUKJD/ToolForms/UcSkuImgListItem.Designer.cs
index d107180..9e1c34c 100644
--- a/TEMUKJD/ToolForms/UcSkuImgListItem.Designer.cs
+++ b/TEMUKJD/ToolForms/UcSkuImgListItem.Designer.cs
@@ -31,7 +31,7 @@ namespace TemuKJD.ToolForms
{
this.pictureBox1 = new System.Windows.Forms.PictureBox();
this.btnDel = new DevComponents.DotNetBar.PanelEx();
- this.lblUseCount = new System.Windows.Forms.Label();
+ this.txtUseCount = new System.Windows.Forms.TextBox();
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit();
this.SuspendLayout();
//
@@ -80,20 +80,22 @@ namespace TemuKJD.ToolForms
this.btnDel.TabIndex = 525;
this.btnDel.Text = "删除图片";
//
- // lblUseCount
+ // txtUseCount
//
- this.lblUseCount.AutoSize = true;
- this.lblUseCount.Location = new System.Drawing.Point(0, 257);
- this.lblUseCount.Name = "lblUseCount";
- this.lblUseCount.Size = new System.Drawing.Size(78, 17);
- this.lblUseCount.TabIndex = 529;
- this.lblUseCount.Text = "lblUseCount";
+ this.txtUseCount.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
+ | System.Windows.Forms.AnchorStyles.Right)));
+ this.txtUseCount.Location = new System.Drawing.Point(0, 253);
+ this.txtUseCount.Name = "txtUseCount";
+ this.txtUseCount.ReadOnly = true;
+ this.txtUseCount.Size = new System.Drawing.Size(150, 23);
+ this.txtUseCount.TabIndex = 533;
+ this.txtUseCount.Text = "txtUseCount";
//
// UcSkuImgListItem
//
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
this.BackColor = System.Drawing.Color.White;
- this.Controls.Add(this.lblUseCount);
+ this.Controls.Add(this.txtUseCount);
this.Controls.Add(this.btnDel);
this.Controls.Add(this.pictureBox1);
this.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
@@ -108,6 +110,6 @@ namespace TemuKJD.ToolForms
#endregion
public DevComponents.DotNetBar.PanelEx btnDel;
public System.Windows.Forms.PictureBox pictureBox1;
- public System.Windows.Forms.Label lblUseCount;
+ public System.Windows.Forms.TextBox txtUseCount;
}
}