1 修复拼多多管理下检测状态错误问题 2 sku替换图片选择,更新功能

This commit is contained in:
wule committed 2025-10-13 18:54:31 +08:00
1 parent caf8ba3fe8
commit 51e1773793
19 files changed
+1740 -193

No files matched your search

+1 -1
View File
@@ -27,7 +27,7 @@ namespace AllBase
/// <summary>
/// 版本ID
/// </summary>
public static int VersionCount = 627;
public static int VersionCount = 628;
//public static int VersionCount = 613;
/// <summary>
@@ -214,11 +214,12 @@ namespace KJD_Web.BLL.BXX
sql = "select p.*,s.img_base64,s.img_url from bxx.product p left join bxx.sku_img_replace s ON p.sku_img_replace_id=s.id where p.is_del=0";
else if (string.IsNullOrEmpty(get_select_count))
sql = "select p.id,p.from_shop_id,p.spu_id,p.skc_id,p.main_cat_id,p.main_cat_name,p.cat_id,p.cat_name,p.price_text,p.ext_code,p.product_name,p.main_img,p.notes," +
"p.add_time,p.mdy_time,p.select_total_count,p.fission_words,p.head_words,p.end_words,p.sku_img_replace_id,p.group from bxx.product p where p.is_del=0";
"p.add_time,p.mdy_time,p.select_total_count,p.fission_words,p.head_words,p.end_words,p.sku_img_replace_id,p.group,s.img_url from bxx.product p " +
"left join bxx.sku_img_replace s ON p.sku_img_replace_id=s.id where p.is_del=0";
else
sql = "SELECT p.id,p.from_shop_id,p.spu_id,p.skc_id,p.main_cat_id,p.main_cat_name,p.cat_id,p.cat_name,p.price_text,p.ext_code,p.product_name,p.main_img,p.notes," +
"p.add_time,p.mdy_time,p.select_total_count,p.fission_words,p.head_words,p.end_words,p.sku_img_replace_id,p.group,COUNT(s.id) AS select_count " +
"FROM bxx.product p LEFT JOIN bxx.product_select s ON p.id=s.out_product_id AND s.shop_id='" + select_shop_id + "' " +
"p.add_time,p.mdy_time,p.select_total_count,p.fission_words,p.head_words,p.end_words,p.sku_img_replace_id,p.group,s.img_url,COUNT(se.id) AS select_count " +
"FROM bxx.product p left join bxx.sku_img_replace s ON p.sku_img_replace_id=s.id LEFT JOIN bxx.product_select se ON p.id=se.out_product_id AND se.shop_id='" + select_shop_id + "' " +
"WHERE p.is_del=0";
//where子句
@@ -265,13 +266,14 @@ namespace KJD_Web.BLL.BXX
fission_words = row["fission_words"].ParseToString(),
head_words = row["head_words"].ParseToString(),
sku_img_replace_id = row["sku_img_replace_id"].ParseToInt(),
sku_img_replace_url = row["img_url"].ToString(),
};
if (isDetail)
{
prod.product_json = row["product_json"].ToString();
prod.size_json = row["size_json"].ToString();
prod.sku_img_replace_base64 = row["img_base64"].ToString();
prod.sku_img_replace_url = row["img_url"].ToString();
//prod.sku_img_replace_url = row["img_url"].ToString();
}
if (!string.IsNullOrEmpty(get_select_count))
{
@@ -431,7 +433,7 @@ namespace KJD_Web.BLL.BXX
string sql = "select count(id) from bxx.sku_img_replace s where 1=1";
string where = "";
if (!string.IsNullOrEmpty(sku_img_replace_ids))
if (!string.IsNullOrWhiteSpace(sku_img_replace_ids))
where += " and s.id in (" + sku_img_replace_ids + ")";
sql += where;
@@ -449,7 +451,7 @@ namespace KJD_Web.BLL.BXX
//where子句
sql += where;
sql += " order by s.id desc";
sql += " order by s.img_type asc, s.id desc";
sql += " limit " + Math.Max(page - 1, 0) * page_size + "," + page_size;
dt = mySql.ExecuteDataTable(sql);
}
@@ -465,10 +467,18 @@ namespace KJD_Web.BLL.BXX
sku_img_replace skuImgReplace = new sku_img_replace
{
id = Convert.ToInt32(row["id"]),
img_base64 = row["img_base64"].ToString(),
//img_base64 = row["img_base64"].ToString(),
img_md5 = row["img_md5"].ToString(),
img_url = row["img_url"].ToString(),
add_time = Convert.ToDateTime(row["add_time"]),
mdy_time = Convert.ToDateTime(row["mdy_time"]),
img_type = row["img_type"].ToString(),
img_group = row["img_group"].ToString(),
};
if (isDetail)
{
skuImgReplace.img_base64 = row["img_base64"].ToString();
}
skuImgReplaceLst.Add(skuImgReplace);
}
var data = JsonUtils.SerializerObjectToString(skuImgReplaceLst);
@@ -629,6 +639,7 @@ namespace KJD_Web.BLL.BXX
var user_name = RegexUtils.GetStringQuery(ref inputData, "user_name")?.Replace("'", "\\'");
var password = RegexUtils.GetStringQuery(ref inputData, "password")?.Replace("'", "\\'");
var in_img_type = RegexUtils.GetStringQuery(ref inputData, "in_img_type")?.Replace("'", "\\'");
var in_img_group = RegexUtils.GetStringQuery(ref inputData, "in_img_group")?.Replace("'", "\\'");
int page = RegexUtils.GetStringQuery(ref inputData, "page").ParseToInt();
int page_size = RegexUtils.GetStringQuery(ref inputData, "page_size").ParseToInt(50);
@@ -639,11 +650,22 @@ namespace KJD_Web.BLL.BXX
string sql = "select count(id) from bxx.sku_img_replace s where 1=1";
string where = "";
if (!string.IsNullOrEmpty(in_img_type))
if (!string.IsNullOrWhiteSpace(in_img_type) && !string.IsNullOrWhiteSpace(in_img_group))
{
in_img_type = "'" + string.Join("','", in_img_type.Split(new string[] { ",", ",", " " }, StringSplitOptions.RemoveEmptyEntries)) + "'";
in_img_group = "'" + string.Join("','", in_img_group.Split(new string[] { ",", ",", " " }, StringSplitOptions.RemoveEmptyEntries)) + "'";
where += " and (s.img_type in (" + in_img_type + ") or s.img_group in (" + in_img_group + ")";
}
else if (!string.IsNullOrWhiteSpace(in_img_type))
{
in_img_type = "'" + string.Join("','", in_img_type.Split(new string[] { ",", ",", " " }, StringSplitOptions.RemoveEmptyEntries)) + "'";
where += " and s.img_type in (" + in_img_type + ")";
}
else if (!string.IsNullOrWhiteSpace(in_img_group))
{
in_img_group = "'" + string.Join("','", in_img_group.Split(new string[] { ",", ",", " " }, StringSplitOptions.RemoveEmptyEntries)) + "'";
where += " and s.img_group in (" + in_img_group + ")";
}
sql += where;
@@ -868,6 +890,7 @@ namespace KJD_Web.BLL.BXX
string sql = "";
sql = "select id from bxx.sku_img_replace where img_md5='" + img_md5 + "';";
var bRst = false;
var rst = mySql.ExecuteFirstInt(sql).ParseToLong();
if (rst <= 0)
{
@@ -880,12 +903,48 @@ namespace KJD_Web.BLL.BXX
sku_img_replace_id = (int)rst;
sql = "update bxx.product set sku_img_replace_id= "+ sku_img_replace_id + " where id=" + product_db_id + ";";
var bRst = mySql.ExecuteNonQuery(sql);
if (bRst)
return "{\"code\":200,\"msg\":\"success\",\"sku_img_replace_id\":" + rst + "}";
bRst = mySql.ExecuteNonQuery(sql);
}
mySql.Close();
if (bRst)
{
return "{\"code\":200,\"msg\":\"success\",\"sku_img_replace_id\":" + rst + "}";
}
return "{\"code\":500,\"msg\":\"" + mySql.Message + "\"}";
}
return "{\"code\":19999,\"msg\":\"输入为空\"}";
}
public string MdyProdSkuImgReplaceId(string inputData)
{
if (!string.IsNullOrEmpty(inputData))
{
var time = 0;
int.TryParse(RegexUtils.GetStringQuery(ref inputData, "time"), out time);
string time1 = RegexUtils.GetStringQuery(ref inputData, "code");
if (time1 != EncrypUtil.Encryption(time))
return "{\"code\":50000,\"msg\":\"校验失败\"}";
string user_name = RegexUtils.GetStringQuery(ref inputData, "user_name");
string product_db_id = RegexUtils.GetStringQuery(ref inputData, "product_db_id");
string img_db_id = RegexUtils.GetStringQuery(ref inputData, "img_db_id");
if (string.IsNullOrEmpty(user_name))
{
return "{\"code\":500,\"msg\":\"没有用户名\"}";
}
string conn = System.Configuration.ConfigurationManager.ConnectionStrings["ConnKJD"].ConnectionString;
MysqlUtils mySql = new MysqlUtils(conn);
string sql = "";
sql = "update bxx.product set sku_img_replace_id= " + img_db_id + " where id=" + product_db_id + ";";
var bRst = mySql.ExecuteNonQuery(sql);
mySql.Close();
if (bRst)
return "{\"code\":200,\"msg\":\"success\"}";
return "{\"code\":500,\"msg\":\"" + mySql.Message + "\"}";
}
return "{\"code\":19999,\"msg\":\"输入为空\"}";
@@ -203,6 +203,19 @@ namespace KJD_Web
Context.Response.Write(result);
Context.Response.End();
}
[WebMethod]
public void mdy_prod_sku_img_replace_id()
{
string jsontext = GetRequestJsonString();
var result = jsontext;
result = new BXXProductManage().MdyProdSkuImgReplaceId(jsontext);
Context.Response.Write(result);
Context.Response.End();
}
[WebMethod]
public void mdy_sku_img_replace()
{
@@ -226,6 +239,18 @@ namespace KJD_Web
Context.Response.End();
}
[WebMethod]
public void get_sku_img_replace_detail_list()
{
string jsontext = GetRequestJsonString();
var result = jsontext;
result = new BXXProductManage().GetSkuImgReplaceList(jsontext, true);
Context.Response.Write(result);
Context.Response.End();
}
[WebMethod]
public void add_user_select_product()
{
@@ -11,5 +11,9 @@ namespace KJD_Web.Model.ShopModel
public string img_md5 { get; set; }
public string img_base64 { get; set; }
public string img_url { get; set; }
public string img_type { get; set; }
public string img_group { get; set; }
public DateTime add_time { get; set; }
public DateTime mdy_time { get; set; }
}
}
+13 -1
View File
@@ -552,8 +552,20 @@ namespace TemuKJD.Extension
{
ShowDgvImg(dgv, new ConcurrentList<DataGridViewRow> { dgv.Rows[e.RowIndex] }, imgColumn, imgPathColumn, isSetHttpsHttp);
};
dgv.CellValueChanged += (s, e) =>
{
if (dgv.Columns[e.ColumnIndex].Name == imgPathColumn)
{
var row = dgv.Rows[e.RowIndex];
if (row.Cells[imgColumn].Value != null && row.Cells[imgColumn].Value != defaultBitmap)
{
row.Cells[imgColumn].Value = defaultBitmap;
ShowDgvImg(dgv, new ConcurrentList<DataGridViewRow> { row }, imgColumn, imgPathColumn, isSetHttpsHttp);
}
}
};
}
static Bitmap defaultBitmap = new Bitmap(1,1);
public static Bitmap defaultBitmap = new Bitmap(1,1);
static void ShowDgvImg(DataGridView dgv, ConcurrentList<DataGridViewRow> rowLst, string imgColumn, string imgPathColumn, bool isSetHttpsHttp = true)
{
Task.Run(() =>
+9
View File
@@ -453,6 +453,12 @@
<Compile Include="PDDForms\ProductForms\PDDProductUpDownForm.Designer.cs">
<DependentUpon>PDDProductUpDownForm.cs</DependentUpon>
</Compile>
<Compile Include="PDDForms\ProductSelectForms\PDDDBProdImgListForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="PDDForms\ProductSelectForms\PDDDBProdImgListForm.Designer.cs">
<DependentUpon>PDDDBProdImgListForm.cs</DependentUpon>
</Compile>
<Compile Include="PDDForms\ProductSelectForms\PDDDBProdUserSelectCacheForm.cs">
<SubType>Form</SubType>
</Compile>
@@ -924,6 +930,9 @@
<EmbeddedResource Include="PDDForms\ProductForms\PDDProductUpDownForm.resx">
<DependentUpon>PDDProductUpDownForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="PDDForms\ProductSelectForms\PDDDBProdImgListForm.resx">
<DependentUpon>PDDDBProdImgListForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="PDDForms\ProductSelectForms\PDDDBProdUserSelectCacheForm.resx">
<DependentUpon>PDDDBProdUserSelectCacheForm.cs</DependentUpon>
</EmbeddedResource>
@@ -2192,7 +2192,7 @@ Content-Disposition: form-data; name=""upload_sign""
OpenFileDialog openFileDialog = new OpenFileDialog();
openFileDialog.Multiselect = true;
// 设置过滤条件,只显示文本文件
openFileDialog.Filter = "图片文件 (*.jepg;*.jpg;*.png)|*.jepg;*.jpg;*.png|All files (*.*)|*.*";
openFileDialog.Filter = "图片文件 (*.jpeg;*.jpg;*.png)|*.jpeg;*.jpg;*.png|All files (*.*)|*.*";
// 显示对话框并获取结果
if (openFileDialog.ShowDialog() == DialogResult.OK)
{
+21 -17
View File
@@ -31,18 +31,20 @@
System.Windows.Forms.TreeNode treeNode1 = new System.Windows.Forms.TreeNode("超级店铺管理");
System.Windows.Forms.TreeNode treeNode2 = new System.Windows.Forms.TreeNode("超级用户管理");
System.Windows.Forms.TreeNode treeNode3 = new System.Windows.Forms.TreeNode("产品数据库");
System.Windows.Forms.TreeNode treeNode4 = new System.Windows.Forms.TreeNode("选品加价管理");
System.Windows.Forms.TreeNode treeNode5 = new System.Windows.Forms.TreeNode("认领待上传");
System.Windows.Forms.TreeNode treeNode6 = new System.Windows.Forms.TreeNode("库存上传");
System.Windows.Forms.TreeNode treeNode7 = new System.Windows.Forms.TreeNode("商品核价");
System.Windows.Forms.TreeNode treeNode8 = new System.Windows.Forms.TreeNode("超级权限管理", new System.Windows.Forms.TreeNode[] {
System.Windows.Forms.TreeNode treeNode4 = new System.Windows.Forms.TreeNode("SKU替换图");
System.Windows.Forms.TreeNode treeNode5 = new System.Windows.Forms.TreeNode("选品加价管理");
System.Windows.Forms.TreeNode treeNode6 = new System.Windows.Forms.TreeNode("认领待上传");
System.Windows.Forms.TreeNode treeNode7 = new System.Windows.Forms.TreeNode("库存上传");
System.Windows.Forms.TreeNode treeNode8 = new System.Windows.Forms.TreeNode("商品核价");
System.Windows.Forms.TreeNode treeNode9 = new System.Windows.Forms.TreeNode("超级权限管理", new System.Windows.Forms.TreeNode[] {
treeNode1,
treeNode2,
treeNode3,
treeNode4,
treeNode5,
treeNode6,
treeNode7});
treeNode7,
treeNode8});
this.panel1 = new System.Windows.Forms.Panel();
this.panel3 = new System.Windows.Forms.Panel();
this.panel2 = new System.Windows.Forms.Panel();
@@ -139,18 +141,20 @@
treeNode2.Text = "超级用户管理";
treeNode3.Name = "产品数据库";
treeNode3.Text = "产品数据库";
treeNode4.Name = "选品加价管理";
treeNode4.Text = "选品加价管理";
treeNode5.Name = "认领待上传";
treeNode5.Text = "认领待上传";
treeNode6.Name = "库存上传";
treeNode6.Text = "库存上传";
treeNode7.Name = "商品核价";
treeNode7.Text = "商品核价";
treeNode8.Name = "超级权限管理";
treeNode8.Text = "超级权限管理";
treeNode4.Name = "SKU替换图";
treeNode4.Text = "SKU替换图";
treeNode5.Name = "选品加价管理";
treeNode5.Text = "选品加价管理";
treeNode6.Name = "认领待上传";
treeNode6.Text = "认领待上传";
treeNode7.Name = "库存上传";
treeNode7.Text = "库存上传";
treeNode8.Name = "商品核价";
treeNode8.Text = "商品核价";
treeNode9.Name = "超级权限管理";
treeNode9.Text = "超级权限管理";
this.tv.Nodes.AddRange(new System.Windows.Forms.TreeNode[] {
treeNode8});
treeNode9});
this.tv.OverForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(235)))), ((int)(((byte)(235)))), ((int)(((byte)(235)))));
this.tv.Size = new System.Drawing.Size(140, 446);
this.tv.TabIndex = 1;
+18 -20
View File
@@ -21,6 +21,7 @@ namespace TemuKJD.PDDForms.AdminForms
public Lazy<PDDAdminAccountForm> adminAccountForm = new Lazy<PDDAdminAccountForm>();
public Lazy<PDDAdminShopListForm> adminShopForm = new Lazy<PDDAdminShopListForm>();
public Lazy<PDDDBProdListForm> dbProdListForm = new Lazy<PDDDBProdListForm>();
public Lazy<PDDDBProdImgListForm> dbProdImgListForm = new Lazy<PDDDBProdImgListForm>();
//public Lazy<DbPriceMarkUpForm> dbPriceMarkUpForm = new Lazy<DbPriceMarkUpForm>();
//public Lazy<DbProductSelectListManageForm> dbProductSelectListManageForm = new Lazy<DbProductSelectListManageForm>();
//public Lazy<ProductThirdSelectListManageForm> productThirdSelectListManageForm = new Lazy<ProductThirdSelectListManageForm>();
@@ -35,7 +36,7 @@ namespace TemuKJD.PDDForms.AdminForms
tv.SelectedNode = tv.Nodes[0].Nodes[0];
tv.ExpandGroup(tv.Nodes[0].Name);
List<string> hideName = new List<string>() { "超级用户管理", "超级店铺管理", "产品数据库", "选品加价管理", "认领待上传", "库存上传", "商品核价" };
List<string> hideName = new List<string>() { "超级用户管理", "超级店铺管理", "产品数据库", "SKU替换图", "选品加价管理", "认领待上传", "库存上传", "商品核价" };
if (BaseClass.GroupId == 3)
{
@@ -45,17 +46,11 @@ namespace TemuKJD.PDDForms.AdminForms
hideName.Remove("超级用户管理");
hideName.Remove("超级店铺管理");
hideName.Remove("产品数据库");
//hideName.Remove("选品加价管理");
//hideName.Remove("认领待上传");
//hideName.Remove("库存上传");
//hideName.Remove("商品核价");
hideName.Remove("SKU替换图");
}
if (BaseClass.SaLevel==2)
{
hideName.Remove("超级店铺管理");
//hideName.Remove("认领待上传");
//hideName.Remove("库存上传");
//hideName.Remove("商品核价");
}
}
@@ -91,18 +86,21 @@ namespace TemuKJD.PDDForms.AdminForms
case "产品数据库":
SetForm(dbProdListForm.Value);
break;
//case "选品加价管理":
// SetForm(dbPriceMarkUpForm.Value);
// break;
//case "认领上传":
// SetForm(dbProductSelectListManageForm.Value);
// break;
//case "库存上传":
// SetForm(productThirdSelectListManageForm.Value);
// break;
//case "商品核价":
// SetForm(adminProductPriceCheckForm.Value);
// break;
case "SKU替换图":
SetForm(dbProdImgListForm.Value);
break;
//case "选品加价管理":
// SetForm(dbPriceMarkUpForm.Value);
// break;
//case "认领上传":
// SetForm(dbProductSelectListManageForm.Value);
// break;
//case "库存上传":
// SetForm(productThirdSelectListManageForm.Value);
// break;
//case "商品核价":
// SetForm(adminProductPriceCheckForm.Value);
// break;
}
}));
}).Start();
@@ -503,7 +503,7 @@ namespace TemuKJD.PDDForms.AdminForms
if (shop != null)
{
var loginResult = PDDShopListForm.CheckShopLogin(shop);
if (!loginResult.Contains("\"success\":true"))
if (loginResult.Contains("\"success\":true") && !loginResult.Contains("\"login\":true"))
{
shop.Cookies = "empty=true;";
foreach (var sc in campanys)
@@ -30,6 +30,8 @@
{
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(PDDDBProdEditNotesForm));
this.panel2 = new System.Windows.Forms.Panel();
this.btnSelect = new TemuKJD.UserControls.ButtonEx();
this.buttonEx1 = new TemuKJD.UserControls.ButtonEx();
this.pictureBox2 = new System.Windows.Forms.PictureBox();
this.label9 = new System.Windows.Forms.Label();
this.label7 = new System.Windows.Forms.Label();
@@ -50,7 +52,6 @@
this.label8 = new System.Windows.Forms.Label();
this.txtNotes = new DevComponents.DotNetBar.Controls.TextBoxX();
this.btnOk = new TemuKJD.UserControls.ButtonEx();
this.buttonEx1 = new TemuKJD.UserControls.ButtonEx();
this.panel2.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit();
@@ -59,6 +60,7 @@
// panel2
//
this.panel2.BackColor = System.Drawing.Color.White;
this.panel2.Controls.Add(this.btnSelect);
this.panel2.Controls.Add(this.buttonEx1);
this.panel2.Controls.Add(this.pictureBox2);
this.panel2.Controls.Add(this.label9);
@@ -86,6 +88,41 @@
this.panel2.Size = new System.Drawing.Size(464, 686);
this.panel2.TabIndex = 1;
//
// btnSelect
//
this.btnSelect.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.btnSelect.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.btnSelect.Cursor = System.Windows.Forms.Cursors.Hand;
this.btnSelect.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.btnSelect.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnSelect.ForeColor = System.Drawing.Color.White;
this.btnSelect.Location = new System.Drawing.Point(90, 491);
this.btnSelect.Margin = new System.Windows.Forms.Padding(2);
this.btnSelect.Name = "btnSelect";
this.btnSelect.Size = new System.Drawing.Size(70, 26);
this.btnSelect.TabIndex = 407;
this.btnSelect.Text = "选择图片";
this.btnSelect.UseVisualStyleBackColor = false;
this.btnSelect.Click += new System.EventHandler(this.btnSelect_Click);
//
// buttonEx1
//
this.buttonEx1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.buttonEx1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.buttonEx1.Cursor = System.Windows.Forms.Cursors.Hand;
this.buttonEx1.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.buttonEx1.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.buttonEx1.ForeColor = System.Drawing.Color.White;
this.buttonEx1.Location = new System.Drawing.Point(90, 601);
this.buttonEx1.Margin = new System.Windows.Forms.Padding(2);
this.buttonEx1.Name = "buttonEx1";
this.buttonEx1.Size = new System.Drawing.Size(70, 26);
this.buttonEx1.TabIndex = 406;
this.buttonEx1.Text = "上传图片";
this.buttonEx1.UseVisualStyleBackColor = false;
this.buttonEx1.Visible = false;
this.buttonEx1.Click += new System.EventHandler(this.buttonEx1_Click);
//
// pictureBox2
//
this.pictureBox2.Anchor = System.Windows.Forms.AnchorStyles.Top;
@@ -306,23 +343,6 @@
this.btnOk.UseVisualStyleBackColor = false;
this.btnOk.Click += new System.EventHandler(this.btnOk_Click);
//
// buttonEx1
//
this.buttonEx1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.buttonEx1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.buttonEx1.Cursor = System.Windows.Forms.Cursors.Hand;
this.buttonEx1.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.buttonEx1.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.buttonEx1.ForeColor = System.Drawing.Color.White;
this.buttonEx1.Location = new System.Drawing.Point(90, 491);
this.buttonEx1.Margin = new System.Windows.Forms.Padding(2);
this.buttonEx1.Name = "buttonEx1";
this.buttonEx1.Size = new System.Drawing.Size(70, 26);
this.buttonEx1.TabIndex = 406;
this.buttonEx1.Text = "上传图片";
this.buttonEx1.UseVisualStyleBackColor = false;
this.buttonEx1.Click += new System.EventHandler(this.buttonEx1_Click);
//
// PDDDBProdEditNotesForm
//
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
@@ -367,5 +387,6 @@
private System.Windows.Forms.PictureBox pictureBox2;
private System.Windows.Forms.Label label9;
private UserControls.ButtonEx buttonEx1;
private UserControls.ButtonEx btnSelect;
}
}
@@ -141,7 +141,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms
OpenFileDialog openFileDialog = new OpenFileDialog();
openFileDialog.Multiselect = false;
// 设置过滤条件,只显示文本文件
openFileDialog.Filter = "图片文件 (*.jepg;*.jpg;*.png)|*.jepg;*.jpg;*.png|All files (*.*)|*.*";
openFileDialog.Filter = "图片文件 (*.jpeg;*.jpg;*.png)|*.jpeg;*.jpg;*.png|All files (*.*)|*.*";
// 显示对话框并获取结果
if (openFileDialog.ShowDialog() == DialogResult.OK)
{
@@ -178,7 +178,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms
html = GetHtml.PostUtf8(url, data);
if (string.IsNullOrEmpty(html) || !html.Contains("\"code\":200"))
{
BaseMsgForm.ShowError("商品备注编辑失败,请重试!" + BaseRegex.GetStringJson(ref html, "msg"));
BaseMsgForm.ShowError("商品图片编辑失败,请重试!" + BaseRegex.GetStringJson(ref html, "msg"));
}
else
{
@@ -200,5 +200,33 @@ namespace TemuKJD.PDDForms.ProductSelectForms
ShowImgForm imgFrom = new ShowImgForm(pictureBox2.Image);
imgFrom.ShowDialog();
}
private void btnSelect_Click(object sender, EventArgs e)
{
PDDDBProdImgListForm imgListForm = new PDDDBProdImgListForm("select");
imgListForm.ShowDialog();
if (imgListForm.SelectDbImgId > 0)
{
var url = BaseClass.BuildObjString("product/mdy_prod_sku_img_replace_id");
var data = UserLogin.GetSignaturex() +
"&product_db_id=" + dbProd.id;
data += "&img_db_id=" + imgListForm.SelectDbImgId;
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"))
{
BaseMsgForm.ShowError("商品图片编辑失败,请重试!" + BaseRegex.GetStringJson(ref html, "msg"));
}
else
{
this.pictureBox2.ImageLocation = imgListForm.SelectDbImgUrl;
dbProd.sku_img_replace_id = imgListForm.SelectDbImgId;
dbProd.sku_img_replace_url = imgListForm.SelectDbImgUrl;
}
}
}
}
}
@@ -0,0 +1,455 @@
namespace TemuKJD.PDDForms.ProductSelectForms
{
partial class PDDDBProdImgListForm
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle2 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle3 = new System.Windows.Forms.DataGridViewCellStyle();
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(PDDDBProdImgListForm));
this.splitContainer1 = new System.Windows.Forms.SplitContainer();
this.btnSearch = new DevComponents.DotNetBar.PanelEx();
this.pnlEmpty = new DevComponents.DotNetBar.PanelEx();
this.cmbTypeFilter = new System.Windows.Forms.ComboBox();
this.label1 = new System.Windows.Forms.Label();
this.cmbGroupFilter = new System.Windows.Forms.ComboBox();
this.lblGroupFilter = new System.Windows.Forms.Label();
this.splitContainer2 = new System.Windows.Forms.SplitContainer();
this.pbLoading = new System.Windows.Forms.PictureBox();
this.panel2 = new System.Windows.Forms.Panel();
this.dgvDbProduct = new TemuKJD.UserComponent.DataGridViewEx();
this.colSelect = new System.Windows.Forms.DataGridViewCheckBoxColumn();
this.colDbId = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colImgMd5 = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colImg = new System.Windows.Forms.DataGridViewImageColumn();
this.colImgUrl = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colImgType = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colGroup = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.col_notes = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colAddTime = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colMdyTime = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colEdit = new System.Windows.Forms.DataGridViewLinkColumn();
this.colSelectImg = new System.Windows.Forms.DataGridViewLinkColumn();
this.col_delete = 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();
this.splitContainer1.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.splitContainer2)).BeginInit();
this.splitContainer2.Panel1.SuspendLayout();
this.splitContainer2.Panel2.SuspendLayout();
this.splitContainer2.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.pbLoading)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.dgvDbProduct)).BeginInit();
this.SuspendLayout();
//
// splitContainer1
//
this.splitContainer1.BackColor = System.Drawing.Color.White;
this.splitContainer1.Dock = System.Windows.Forms.DockStyle.Fill;
this.splitContainer1.FixedPanel = System.Windows.Forms.FixedPanel.Panel1;
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.btnSearch);
this.splitContainer1.Panel1.Controls.Add(this.pnlEmpty);
this.splitContainer1.Panel1.Controls.Add(this.cmbTypeFilter);
this.splitContainer1.Panel1.Controls.Add(this.label1);
this.splitContainer1.Panel1.Controls.Add(this.cmbGroupFilter);
this.splitContainer1.Panel1.Controls.Add(this.lblGroupFilter);
//
// splitContainer1.Panel2
//
this.splitContainer1.Panel2.Controls.Add(this.splitContainer2);
this.splitContainer1.Size = new System.Drawing.Size(1378, 544);
this.splitContainer1.SplitterDistance = 53;
this.splitContainer1.TabIndex = 3;
//
// btnSearch
//
this.btnSearch.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
this.btnSearch.Cursor = System.Windows.Forms.Cursors.Hand;
this.btnSearch.DisabledBackColor = System.Drawing.Color.Empty;
this.btnSearch.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnSearch.Location = new System.Drawing.Point(15, 15);
this.btnSearch.Name = "btnSearch";
this.btnSearch.Size = new System.Drawing.Size(56, 25);
this.btnSearch.Style.Alignment = System.Drawing.StringAlignment.Center;
this.btnSearch.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.btnSearch.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.btnSearch.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder;
this.btnSearch.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash;
this.btnSearch.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None;
this.btnSearch.Style.ForeColor.Color = System.Drawing.Color.White;
this.btnSearch.Style.GradientAngle = 90;
this.btnSearch.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center;
this.btnSearch.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255)))));
this.btnSearch.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255)))));
this.btnSearch.TabIndex = 643;
this.btnSearch.Text = "搜索";
this.btnSearch.Click += new System.EventHandler(this.btnSearch_Click);
//
// pnlEmpty
//
this.pnlEmpty.CanvasColor = System.Drawing.SystemColors.Control;
this.pnlEmpty.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
this.pnlEmpty.DisabledBackColor = System.Drawing.Color.Empty;
this.pnlEmpty.Location = new System.Drawing.Point(73, 15);
this.pnlEmpty.Name = "pnlEmpty";
this.pnlEmpty.Size = new System.Drawing.Size(56, 25);
this.pnlEmpty.Style.Alignment = System.Drawing.StringAlignment.Center;
this.pnlEmpty.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255)))));
this.pnlEmpty.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255)))));
this.pnlEmpty.Style.Border = DevComponents.DotNetBar.eBorderType.SingleLine;
this.pnlEmpty.Style.BorderColor.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.pnlEmpty.Style.ForeColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText;
this.pnlEmpty.Style.GradientAngle = 90;
this.pnlEmpty.StyleMouseDown.Alignment = System.Drawing.StringAlignment.Center;
this.pnlEmpty.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center;
this.pnlEmpty.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.pnlEmpty.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.pnlEmpty.StyleMouseOver.ForeColor.Color = System.Drawing.Color.White;
this.pnlEmpty.TabIndex = 431;
this.pnlEmpty.Text = "清空条件";
this.pnlEmpty.Visible = false;
//
// cmbTypeFilter
//
this.cmbTypeFilter.FormattingEnabled = true;
this.cmbTypeFilter.Location = new System.Drawing.Point(44, 15);
this.cmbTypeFilter.Name = "cmbTypeFilter";
this.cmbTypeFilter.Size = new System.Drawing.Size(85, 25);
this.cmbTypeFilter.TabIndex = 670;
this.cmbTypeFilter.Visible = false;
//
// label1
//
this.label1.AutoSize = true;
this.label1.Location = new System.Drawing.Point(11, 19);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(44, 17);
this.label1.TabIndex = 669;
this.label1.Text = "分类:";
this.label1.Visible = false;
//
// cmbGroupFilter
//
this.cmbGroupFilter.FormattingEnabled = true;
this.cmbGroupFilter.Location = new System.Drawing.Point(165, 15);
this.cmbGroupFilter.Name = "cmbGroupFilter";
this.cmbGroupFilter.Size = new System.Drawing.Size(85, 25);
this.cmbGroupFilter.TabIndex = 653;
this.cmbGroupFilter.Visible = false;
//
// lblGroupFilter
//
this.lblGroupFilter.AutoSize = true;
this.lblGroupFilter.Location = new System.Drawing.Point(132, 19);
this.lblGroupFilter.Name = "lblGroupFilter";
this.lblGroupFilter.Size = new System.Drawing.Size(44, 17);
this.lblGroupFilter.TabIndex = 641;
this.lblGroupFilter.Text = "分组:";
this.lblGroupFilter.Visible = false;
//
// splitContainer2
//
this.splitContainer2.Dock = System.Windows.Forms.DockStyle.Fill;
this.splitContainer2.FixedPanel = System.Windows.Forms.FixedPanel.Panel2;
this.splitContainer2.Location = new System.Drawing.Point(0, 0);
this.splitContainer2.Name = "splitContainer2";
this.splitContainer2.Orientation = System.Windows.Forms.Orientation.Horizontal;
//
// splitContainer2.Panel1
//
this.splitContainer2.Panel1.Controls.Add(this.pbLoading);
this.splitContainer2.Panel1.Controls.Add(this.panel2);
this.splitContainer2.Panel1.Controls.Add(this.dgvDbProduct);
this.splitContainer2.Panel1.Padding = new System.Windows.Forms.Padding(4, 0, 4, 0);
//
// splitContainer2.Panel2
//
this.splitContainer2.Panel2.Controls.Add(this.ucSplitPage1);
this.splitContainer2.Panel2.Controls.Add(this.statusBar);
this.splitContainer2.Size = new System.Drawing.Size(1378, 487);
this.splitContainer2.SplitterDistance = 458;
this.splitContainer2.TabIndex = 0;
//
// pbLoading
//
this.pbLoading.Anchor = System.Windows.Forms.AnchorStyles.None;
this.pbLoading.Image = global::TemuKJD.Properties.Resources.loading_blue;
this.pbLoading.Location = new System.Drawing.Point(664, 204);
this.pbLoading.Name = "pbLoading";
this.pbLoading.Size = new System.Drawing.Size(50, 50);
this.pbLoading.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage;
this.pbLoading.TabIndex = 7;
this.pbLoading.TabStop = false;
//
// panel2
//
this.panel2.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.panel2.Location = new System.Drawing.Point(44, 55);
this.panel2.Name = "panel2";
this.panel2.Size = new System.Drawing.Size(1296, 364);
this.panel2.TabIndex = 8;
//
// dgvDbProduct
//
this.dgvDbProduct.AllowUserToAddRows = false;
this.dgvDbProduct.AllowUserToDeleteRows = false;
dataGridViewCellStyle1.BackColor = System.Drawing.Color.WhiteSmoke;
this.dgvDbProduct.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle1;
this.dgvDbProduct.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.Fill;
this.dgvDbProduct.BackgroundColor = System.Drawing.Color.White;
this.dgvDbProduct.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
dataGridViewCellStyle2.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
dataGridViewCellStyle2.BackColor = System.Drawing.SystemColors.Control;
dataGridViewCellStyle2.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
dataGridViewCellStyle2.ForeColor = System.Drawing.SystemColors.WindowText;
dataGridViewCellStyle2.SelectionBackColor = System.Drawing.SystemColors.Highlight;
dataGridViewCellStyle2.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
dataGridViewCellStyle2.WrapMode = System.Windows.Forms.DataGridViewTriState.False;
this.dgvDbProduct.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle2;
this.dgvDbProduct.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
this.dgvDbProduct.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
this.colSelect,
this.colDbId,
this.colImgMd5,
this.colImg,
this.colImgUrl,
this.colImgType,
this.colGroup,
this.col_notes,
this.colAddTime,
this.colMdyTime,
this.colEdit,
this.colSelectImg,
this.col_delete});
this.dgvDbProduct.Dock = System.Windows.Forms.DockStyle.Fill;
this.dgvDbProduct.Location = new System.Drawing.Point(4, 0);
this.dgvDbProduct.Name = "dgvDbProduct";
this.dgvDbProduct.ReadOnly = true;
this.dgvDbProduct.RowTemplate.Height = 23;
this.dgvDbProduct.Size = new System.Drawing.Size(1370, 458);
this.dgvDbProduct.TabIndex = 6;
this.dgvDbProduct.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dgvDbProduct_CellContentClick);
//
// colSelect
//
this.colSelect.FillWeight = 26F;
this.colSelect.HeaderText = "选";
this.colSelect.Name = "colSelect";
this.colSelect.ReadOnly = true;
this.colSelect.Resizable = System.Windows.Forms.DataGridViewTriState.True;
this.colSelect.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic;
//
// colDbId
//
this.colDbId.FillWeight = 50F;
this.colDbId.HeaderText = "数据库Id";
this.colDbId.Name = "colDbId";
this.colDbId.ReadOnly = true;
this.colDbId.Visible = false;
//
// colImgMd5
//
this.colImgMd5.HeaderText = "图片MD5";
this.colImgMd5.Name = "colImgMd5";
this.colImgMd5.ReadOnly = true;
this.colImgMd5.Visible = false;
//
// colImg
//
this.colImg.FillWeight = 40F;
this.colImg.HeaderText = "图片";
this.colImg.ImageLayout = System.Windows.Forms.DataGridViewImageCellLayout.Zoom;
this.colImg.Name = "colImg";
this.colImg.ReadOnly = true;
this.colImg.Resizable = System.Windows.Forms.DataGridViewTriState.True;
this.colImg.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic;
//
// colImgUrl
//
this.colImgUrl.FillWeight = 300F;
this.colImgUrl.HeaderText = "图片路径";
this.colImgUrl.Name = "colImgUrl";
this.colImgUrl.ReadOnly = true;
//
// colImgType
//
this.colImgType.FillWeight = 60F;
this.colImgType.HeaderText = "分类";
this.colImgType.Name = "colImgType";
this.colImgType.ReadOnly = true;
//
// colGroup
//
this.colGroup.FillWeight = 60F;
this.colGroup.HeaderText = "分组";
this.colGroup.Name = "colGroup";
this.colGroup.ReadOnly = true;
//
// col_notes
//
dataGridViewCellStyle3.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
this.col_notes.DefaultCellStyle = dataGridViewCellStyle3;
this.col_notes.FillWeight = 300F;
this.col_notes.HeaderText = "备注";
this.col_notes.Name = "col_notes";
this.col_notes.ReadOnly = true;
this.col_notes.Visible = false;
//
// colAddTime
//
this.colAddTime.HeaderText = "添加时间";
this.colAddTime.Name = "colAddTime";
this.colAddTime.ReadOnly = true;
//
// colMdyTime
//
this.colMdyTime.HeaderText = "修改时间";
this.colMdyTime.Name = "colMdyTime";
this.colMdyTime.ReadOnly = true;
//
// colEdit
//
this.colEdit.FillWeight = 60F;
this.colEdit.HeaderText = "替换图片";
this.colEdit.Name = "colEdit";
this.colEdit.ReadOnly = true;
this.colEdit.Resizable = System.Windows.Forms.DataGridViewTriState.True;
this.colEdit.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic;
//
// colSelectImg
//
this.colSelectImg.FillWeight = 60F;
this.colSelectImg.HeaderText = "选择图片";
this.colSelectImg.Name = "colSelectImg";
this.colSelectImg.ReadOnly = true;
this.colSelectImg.Resizable = System.Windows.Forms.DataGridViewTriState.True;
this.colSelectImg.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic;
//
// col_delete
//
this.col_delete.FillWeight = 40F;
this.col_delete.HeaderText = "删除";
this.col_delete.Name = "col_delete";
this.col_delete.ReadOnly = true;
this.col_delete.Visible = false;
//
// ucSplitPage1
//
this.ucSplitPage1.CurrentPage = 1;
this.ucSplitPage1.Dock = System.Windows.Forms.DockStyle.Right;
this.ucSplitPage1.IsShowPageSize = false;
this.ucSplitPage1.Location = new System.Drawing.Point(1016, 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(1378, 25);
this.statusBar.TabIndex = 5;
//
// PDDDBProdImgListForm
//
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
this.ClientSize = new System.Drawing.Size(1380, 578);
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")));
this.Name = "PDDDBProdImgListForm";
this.Text = "商品替换sku图";
this.TitleText = "商品替换sku图";
this.Load += new System.EventHandler(this.PDDDBProdImgListForm_Load);
this.VisibleChanged += new System.EventHandler(this.PDDDBProdImgListForm_VisibleChanged);
this.Controls.SetChildIndex(this.splitContainer1, 0);
this.splitContainer1.Panel1.ResumeLayout(false);
this.splitContainer1.Panel1.PerformLayout();
this.splitContainer1.Panel2.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).EndInit();
this.splitContainer1.ResumeLayout(false);
this.splitContainer2.Panel1.ResumeLayout(false);
this.splitContainer2.Panel2.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.splitContainer2)).EndInit();
this.splitContainer2.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.pbLoading)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.dgvDbProduct)).EndInit();
this.ResumeLayout(false);
}
#endregion
private System.Windows.Forms.SplitContainer splitContainer1;
private System.Windows.Forms.ComboBox cmbTypeFilter;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.ComboBox cmbGroupFilter;
private DevComponents.DotNetBar.PanelEx btnSearch;
private DevComponents.DotNetBar.PanelEx pnlEmpty;
private System.Windows.Forms.Label lblGroupFilter;
private System.Windows.Forms.SplitContainer splitContainer2;
private System.Windows.Forms.PictureBox pbLoading;
private UserComponent.DataGridViewEx dgvDbProduct;
private UserControls.UcSplitPage ucSplitPage1;
private UserControls.StatusBarUserControl statusBar;
private System.Windows.Forms.DataGridViewCheckBoxColumn colSelect;
private System.Windows.Forms.DataGridViewTextBoxColumn colDbId;
private System.Windows.Forms.DataGridViewTextBoxColumn colImgMd5;
private System.Windows.Forms.DataGridViewImageColumn colImg;
private System.Windows.Forms.DataGridViewTextBoxColumn colImgUrl;
private System.Windows.Forms.DataGridViewTextBoxColumn colImgType;
private System.Windows.Forms.DataGridViewTextBoxColumn colGroup;
private System.Windows.Forms.DataGridViewTextBoxColumn col_notes;
private System.Windows.Forms.DataGridViewTextBoxColumn colAddTime;
private System.Windows.Forms.DataGridViewTextBoxColumn colMdyTime;
private System.Windows.Forms.DataGridViewLinkColumn colEdit;
private System.Windows.Forms.DataGridViewLinkColumn colSelectImg;
private System.Windows.Forms.DataGridViewLinkColumn col_delete;
private System.Windows.Forms.Panel panel2;
}
}
@@ -0,0 +1,559 @@
using AllBase;
using AllBase.Model.Result;
using NaiBa.Util.Extension;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;
using TemuKJD.BaseForms;
using TemuKJD.BLL;
using TemuKJD.Extension;
using TemuKJD.PDDForms.ShopForms;
using TemuKJD.ToolForms;
using Work;
namespace TemuKJD.PDDForms.ProductSelectForms
{
public partial class PDDDBProdImgListForm : LRBaseForm
{
public List<ProdSkuImg> lstProdSkuImg = new List<ProdSkuImg>();
public int SelectDbImgId { get; set; } = 0;
public string SelectDbImgUrl { get; set; } = "";
public PDDDBProdImgListForm()
{
InitializeComponent();
this.dgvDbProduct.Columns["colSelectImg"].Visible = false;
this.dgvDbProduct.Columns["colEdit"].Visible = true;
}
public PDDDBProdImgListForm(string type = "manage")
{
InitializeComponent();
if (type == "manage")
{
this.dgvDbProduct.Columns["colSelectImg"].Visible = false;
this.dgvDbProduct.Columns["colEdit"].Visible = true;
}
else
{
this.dgvDbProduct.Columns["colSelectImg"].Visible = true;
this.dgvDbProduct.Columns["colEdit"].Visible = false;
}
}
private void PDDDBProdImgListForm_Load(object sender, EventArgs e)
{
this.ucSplitPage1.PageChange += UcSplitPage1_PageChange;
this.dgvDbProduct.AddSelectorColumn("colSelect");
this.dgvDbProduct.AddImgColumn("colImg", "colImgUrl");
this.panel2.SendToBack();
}
private void btnSearch_Click(object sender, EventArgs e)
{
if (this.ucSplitPage1.CurrentPage != 1)
this.ucSplitPage1.CurrentPage = 1;
else
SearchDbSkuImg(1);
}
public void SearchDbSkuImg(int page)
{
if (InvokeRequired)
{
Invoke(new Action(() =>
{
this.pbLoading.Visible = true;
this.dgvDbProduct.Rows.Clear();
lstProdSkuImg.Clear();
}));
}
else
{
this.pbLoading.Visible = true;
this.dgvDbProduct.Rows.Clear();
lstProdSkuImg.Clear();
}
Task.Run(() =>
{
int pageCount;
var list = GetSkuImgList(out pageCount, page);
lstProdSkuImg.AddRange(list);
this.ucSplitPage1.TotalPage = pageCount;
foreach (var skuImg in lstProdSkuImg)
{
Invoke(new Action(() =>
{
int rowIndex = this.dgvDbProduct.Rows.Add(
false,
skuImg.id,
skuImg.img_md5,
DataGridViewExtension.defaultBitmap, // prod.main_img,
skuImg.img_url/*.Replace("https", "http")*/ /*+ "?imageView2/2/w/90/h/90"*/,
skuImg.img_type,
skuImg.img_group,
skuImg.notes,
skuImg.add_time.ToString("yy-MM-dd HH:mm"),
skuImg.mdy_time.ToString("yy-MM-dd HH:mm"),
"替换图片",
"选择",
"删除",
"认领");
//dgvDbProduct.Rows[rowIndex].Height = dgvDbProduct.Columns["colImg"].Width;
dgvDbProduct.Rows[rowIndex].Height = 80;
}));
}
Invoke(new Action(() =>
{
this.pbLoading.Visible = false;
}));
});
}
public List<ProdSkuImg> GetSkuImgList(out int pageCount, int page = 1, int pageSize = 200)
{
List<ProdSkuImg> list = new List<ProdSkuImg>();
pageCount = 1;
var url = BaseClass.BuildObjString("product/get_sku_img_replace_list");
var data = "";
Invoke(new Action(() =>
{
data = UserLogin.GetSignaturex() +
"&page=" + page +
"&page_size=" + pageSize +
"&search_type=" + cmbTypeFilter.Text.Trim() +
"&search_group=" + cmbGroupFilter.Text.Trim();
}));
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"))
{
Invoke(new Action(() =>
{
BaseMsgForm.ShowError("获取图片列表失败,请重试!" + BaseRegex.GetStringJson(ref html, "msg"));
}));
return list;
}
int count = BaseRegex.GetIntJson(ref html, "count");
pageCount = Math.Ceiling(1.0 * count / pageSize).ParseToInt();
pageCount = Math.Max(pageCount, 1);
var jArr = JObject.Parse(html)["data"];
if (jArr.Count() == 0)
return list;
var sProdImg = JsonHelper.SerializeObject(jArr);
try
{
list = JsonHelper.DeserializeJsonToList<ProdSkuImg>(sProdImg);
return list;
}
catch (Exception ex)
{
return new List<ProdSkuImg>();
}
}
private void PDDDBProdImgListForm_VisibleChanged(object sender, EventArgs e)
{
if (this.Visible == true)
{
this.pbLoading.Visible = true;
SearchDbSkuImg(this.ucSplitPage1.CurrentPage);
}
}
private void UcSplitPage1_PageChange(object obj)
{
SearchDbSkuImg(this.ucSplitPage1.CurrentPage);
}
private void dgvDbProduct_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
if (e.ColumnIndex < 0 || e.RowIndex < 0)
return;
string headerText = dgvDbProduct.Columns[e.ColumnIndex].HeaderText;
var dbId = dgvDbProduct.Rows[e.RowIndex].Cells["colDbId"].Value.ParseToString();
var dbProductImg = lstProdSkuImg.FirstOrDefault(p => p.id.ToString() == dbId);
switch (headerText)
{
case "删除":
//if (BaseMsgForm.ShowConfirm("确定删除商品吗?删除后不可恢复!").DialogResult == DialogResult.Cancel)
// return;
//DeleteProduct(dbId);
break;
case "编辑/详情":
//PDDDBProdEditNotesForm editForm = new PDDDBProdEditNotesForm(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;
//dgvDbProduct.Rows[e.RowIndex].Cells["colHeadWords"].Value = dbProduct.head_words;
//dgvDbProduct.Rows[e.RowIndex].Cells["colEndWords"].Value = dbProduct.end_words;
//dgvDbProduct.Rows[e.RowIndex].Cells["colFissionWords"].Value = dbProduct.fission_words;
//dgvDbProduct.Rows[e.RowIndex].Cells["col_product_name"].Value = dbProduct.product_name;
break;
case "替换图片":
UploadImg(dbProductImg);
break;
case "选择图片":
SelectDbImgId = dbId.ParseToInt();
SelectDbImgUrl = dbProductImg.img_url;
this.Close();
break;
case "图片":
ShowImgForm imgFrom = new ShowImgForm(dgvDbProduct.Rows[e.RowIndex].Cells["colImgUrl"].Value.ParseToString().Replace("?imageView2/2/w/90/h/90", ""));
imgFrom.ShowDialog();
break;
case "":
dgvDbProduct.Rows[e.RowIndex].Cells["colSelect"].Value = !(bool)dgvDbProduct.Rows[e.RowIndex].Cells["colSelect"].Value;
break;
default:
break;
}
}
public void UploadImg(ProdSkuImg skuImg)
{
string text = "";
OpenFileDialog openFileDialog = new OpenFileDialog();
openFileDialog.Multiselect = false;
// 设置过滤条件,只显示文本文件
openFileDialog.Filter = "图片文件 (*.jpeg;*.jpg;*.png)|*.jpeg;*.jpg;*.png|All files (*.*)|*.*";
// 显示对话框并获取结果
if (openFileDialog.ShowDialog() == DialogResult.OK)
{
pbLoading.Visible = true;
Task.Run(() =>
{
try
{
ShopLoginInfo shop = null;
while (shop == null || shop.LoginStatus != "登录成功")
{
var shopList = AdminForms.PDDAdminShopListForm.lstAdminShopInfo.Where(s => s.LoginStatus == "登录成功").ToList();
if (shopList.Count == 0)
{
BaseMsgForm.ShowError("店铺全部掉线,无法上传图片!");
return;
}
shop = shopList[Randomx.GetId(shopList.Count)];
AdminForms.PDDAdminShopListForm.Instance.CheckShopLogin(new ShopLoginInfo[] { shop }, false);
}
PDDShopLoginForm loginForm = null;
Invoke(new Action(() =>
{
//this.panel2.SendToBack();
this.panel2.BringToFront();
loginForm = new PDDShopLoginForm(shop);
loginForm.TopLevel = false;
loginForm.openType = EnumOpenType.manage;
loginForm.WindowState = FormWindowState.Maximized;
loginForm.InitUrl = "https://mms.pinduoduo.com/home/";
loginForm.Dock = DockStyle.Fill;
this.panel2.Controls.Add(loginForm);
loginForm.Show();
}));
Thread.Sleep(Randomx.GetId(3000, 4000));
Invoke(new Action(() =>
{
this.panel2.SendToBack();
if (loginForm != null)
loginForm.Close();
}));
string filePath = openFileDialog.FileName;
Image image = Image.FromFile(filePath);
//this.pictureBox2.Image = image;
string imgBase64 = "";
using (MemoryStream memoryStream = new MemoryStream())
{
image.Save(memoryStream, System.Drawing.Imaging.ImageFormat.Jpeg);
byte[] imageBytes = memoryStream.ToArray();
imgBase64 = Convert.ToBase64String(imageBytes);
}
string img_md5 = BaseClass.GetMd5(imgBase64);
string img_url = "";
var img = UploadProdSkuImg(shop, imgBase64);
if (!img.Contains("\"url\":\"https:"))
{
var error = BaseRegex.GetStringJson(ref img, "error_msg");
if (string.IsNullOrEmpty(error))
error = img;
Invoke(new Action(() =>
{
BaseMsgForm.ShowError("上传sku图片失败 " + error);
pbLoading.Visible = false;
}));
return ;
}
else
{
img_url = BaseRegex.GetStringJson(ref img, "url");
if (string.IsNullOrEmpty(img_url))
{
Invoke(new Action(() =>
{
BaseMsgForm.ShowError("上传sku图片失败 " + img);
pbLoading.Visible = false;
}));
return;
}
}
var url = BaseClass.BuildObjString("product/mdy_sku_img_replace");
var data = UserLogin.GetSignaturex() +
"&db_id=" + skuImg.id;
data += "&img_base64=" + imgBase64;
data += "&img_md5=" + img_md5;
data += "&img_url=" + img_url;
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"))
{
Invoke(new Action(() =>
{
BaseMsgForm.ShowError("商品sku图片替换失败,请重试!" + BaseRegex.GetStringJson(ref html, "msg"));
pbLoading.Visible = false;
}));
return;
}
else
{
skuImg.img_base64 = imgBase64;
skuImg.img_md5 = img_md5;
}
}
catch (Exception ex)
{
BaseMsgForm.ShowError("打开自定义图片失败 " + ex.Message);
return;
}
Invoke(new Action(() =>
{
pbLoading.Visible = false;
SearchDbSkuImg(this.ucSplitPage1.CurrentPage);
}));
});
}
}
/// <summary>
/// 上传sku图片
/// </summary>
/// <param name="shop"></param>
/// <param name="img_base64"></param>
/// <param name="goods_id"></param>
/// <param name="goods_commit_id"></param>
/// <returns></returns>
public string UploadProdSkuImg(ShopLoginInfo shop, string img_base64)
{
string img_signature = "";
var img_signature_rst = get_uploag_sku_img_signature(shop);
if (!img_signature_rst.Contains("\"success\":true"))
{
Thread.Sleep(Randomx.GetId(500, 1000));
img_signature_rst = get_uploag_sku_img_signature(shop);
}
if (!img_signature_rst.Contains("\"success\":true"))
{
Thread.Sleep(Randomx.GetId(500, 1000));
img_signature_rst = get_uploag_sku_img_signature(shop);
}
if (!img_signature_rst.Contains("\"success\":true"))
{
//var error = BaseRegex.GetStringJson(ref img_signature_rst, "error_msg");
//if (string.IsNullOrEmpty(error))
// error = img_signature_rst;
//return "上传图片准备失败 " + error;
return img_signature_rst;
}
else
{
img_signature = BaseRegex.GetStringJson(ref img_signature_rst, "signature");
}
//if (string.IsNullOrEmpty(img_base64))
// img_base64 = "/9j/4AAQSkZJRgABAQEAAAAAAAD/2wBDAAgFBgcGBQgHBgcJCAgJDBMMDAsLDBgREg4THBgdHRsYGxofIywlHyEqIRobJjQnKi4vMTIxHiU2OjYwOiwwMTD/2wBDAQgJCQwKDBcMDBcwIBsgMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDD/wAARCAMgAyADASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD1kdeKU9OaQHmkLUyxccUqnHekB46UZ9qAHUlGaKAF70tJSnpQAhyR1oxgY3U0DB5pxA9KAF3YpC2e9N74ozg8CgB/OKQnApaRh0oAYeeT1prttFPY4pGIKgmgAgPBpT1NEPQ0HqaYCYoalxQaAI2OQ3POOlc3bn/iYy+xromOWfjnHWuatjjUpc9jUjOptP8AV1PUFr/qx9KnoAKKKKAAniox/rjTjTB/rjQBDqJIhPYVx+vk/wBq23c7a7HUVLWp74Ncd4jz/bNqOnyUAbmkk7RmtpRnFY+lkeWK2Y+QKAHYpRQTSA0xCmkpaUCgBq8ZpGPHWnfhTSOOlACKeaWhVwelIevSgBaM0ZoxQAcUYFGKMUALxn0obHZqKQjIoAB060HH96hQaUDnlaAEA70EZNL0PNB60ALR3pOlNAIfJ5FADqTnvQx5zSg5FABnigHnrQSR2pMc5oAWhulJ3pT0oABRSUUAGaVTmjHFIKADHNLSE0gJNADse9HWkxQeOlAC9O9ITSAZ60v40AGc96UGk4ozQApPpSUZpM+tABk80o5NB6UmTjigB1HIxmkGe/WlHTmgAopKKBi0UlFAC0UUUAJSbfSilzQAdKN1JnNLQAZoyaOKM0ALnIpKD0puaAHE0UlB4oAU0lG6k3UAOpMUZpOaAFPNKBTcmjNACmgNikzR1oAbuJPAo570BgTxQSR1oEGcClUkmm7xilB5oAdSikPWl7UAKKM0lJQA4HJ5o6ng00nFCnPIFADsY5NIRnoaDnHNIOBQA4D3pG68UqnikPtQAMAQM01hxilPSkOcc0ALD0P1o70kPQ/WlHX8aYCGlNIaX0oAjIxuPtXMWx/4mMp9/wCtdQx+8PauWtOdRlHvUjOqtf8AVj6VPUFr/qx9KmpiCiiikMQ1Gv8ArvwqQ1Gv+u/CgBt4N6ba4rxBn+3Ic9kxXYytl9orj/Ebbtejx2GKAN/Th8i1rxA4FZOln5FFbCHGKAHFaAtLuoBpiExSigmkzigBemeaTtTQ2c8UoPHSgBQeetNxyaXoelG6gBKKM0UAFGKKOaAFNGBimknPNP4/vUAIBjvQOvWlPTgUgzQAUdTQRxR2oAD1pc800+1Gc0ABPNKG4oxRQApNJmjAxSYOaAFpaSigAoopRQAlAoY0A8UALTcgGlzSYGaADdntRij8KMZ7UAB9qM/7NHAozQAYoFGaMigBCdtG4N2pSAaTAWgBc4PtS96M9KSgBc5pOc80UuaACikooGLRSUUALnmimksCBjI9qGJ28DmgBTxQCDQD60EgUALwKQ0mc0tABRRmjNABQaDSUALR3opO9ACkCkwKXNJQAUhJp1JQAZzSYoAoNABijOKAaU4oA8St/EGvwfOl074AUIVyoxWna/ELW7dlW6hhnXv/AA8Vyf2LxImxFEh74DcCmz2WvwMPMiaQkc5wadkQelWfxN0/cFvrWaJs8sg3L/jXUaZ4k0jU1Bsr6FmP8Bbaw/A814FLNfRyBZrPJHcKRUS3SNJ86mJs9+o/GlYD6Wz8vy8j1pa8d8J+Nb3TGSFrgXtuP+WUh+cD/ZavUtF1i01e2Etq4J7oeGH1FAzRooooGLilFAOaTpQA6k4ozTWoAUUGgUGgBG7U1iaVuopCetACwH5T9aCfmpID8p+tBPzUwHUmKKTdQA07f3hA5I61y9lzqUo/2jzXSsc7+eMVzWnjN9L9T/OpGdVbf6sVKaitf9WtSmmIKKKKAAd6jT/XH6VIO9Rx/wCuP0pDGSw/vFdfxri/Eg2+II/m6Lmu6NcdrljJca55q4wqYxSbsBr6SS0YIFa6r8mScVj6QHRPm6DitlRuXJpgOQfKTSEng0qDGfSjPPtTAAc0jClyKaz0AKopw6U1TmnA0CEz60hJ7LSkjvSAjs1ABilpOaMGgBfwo/Cj8aPxoAPwpMe3FJzTl96AAcduKduHpSHFAx60AKQCMimk4pwIHQ0EDrQAzcKX6Um3NIcjgCgBTQKAp9aCD6UALR+NJRQAc0ZAow1IQfSgBeDS9KaMilz/ALNAAetLjimnOOlHOKAFHHWgH86Og5phZR1YA0APJNGfWkDccc0mcmgBRilpuc9qOcUAKaQc0DrzS96AFpDSc5pQRQAmaWg0mQBQAp46GkLcUA0ZHc0ACkEdaTI9aUEetMZATnNAEg4o3c00elLg+lAC5oBNJig0DHHmkAApBR+FACkcUgBHfNLzSA0AJvx95aXIPQ0vXrTSP7ooAcWwKFbI96YN2fmFLz2FAC5pc9qQNk+9KfegANFITQelAC0Mfl96aeBkml6rQAfjS/WmUuaAFI9KTBoz6UZagDw6Hw7qMtuW/tiYRggAhflP61PH4f1p4/k1xXJ+QYXPH9KfDM+U3RBsHO9GKNwOAAePxrUsrt0hH73bkhYgCSFPck4x+JqrEGJJpniSDfD5ltOI2xlhnJ+tZGri7t8C50w27IcPInzKSf5V27Tny5NhxAB5ZIcbZG5yw6dKpzFWjET/ALtA2CXbIIweAOtIDgWCOVaE+XL7dD+FbvhvXrmwugkkhjlU4D9vx9RTdQ06BsyKoSSI4GByST3rI1J5Jrv94u1xgHa3B96lge7+F/EMerxNDIQLyIAyAHgj1FboavnbQ9XutI1WG8jfaYyFkBPBXuK95sr1L62gu4GzHIARimM0TSim7t1AzQMfnApM5NL1pCuKACg0UGgBrHgUOOKhkfa4CrmpC277ymgBbb7p+tL/ABUlt9w/WlpgJTWPy04mmMw20ARRlisuenb3rndNP+ny/WuhhbKzZ544PpXPaYM30ueTk1Azq7f7g+lSd6jt/uCpO9UIWiiigBvY1HH/AK4/SpO1Rxf60/SkMlNc1NPt1mZd21sADNdNVGbRrG4mMsiNvbqQcUmAljafu87uep9KvKjIo/iogt44FwjHb7nNTblA5NMCA5zgdfSgggcjBqQlSfl60pYEc8mkBCSw6ikDjutSttbvTPJQ/wAVMCNXIkJYYWpXjKKGJOGpVjQDBbFSSHcqguMCmSQEj0pBj0qUqv8AepNq+tAyHJB61IGAFIYATnfT/LOPvUAN3r6UeYvpS+Uf71Hkn+9QABx1xSFx6GneSfWk8lv71AAGB9aDj0o8lh/FR5TH+KgBRTSSaPJf1/WlELj/APXQAKcUH1xS+U57D86PLf0/WgA/hyaTPvSTtOWRUiyB1IIFKUfjKUAJkUuRSbX9DRsf+7QAuR60A+9N2P6UFJP7tADiaTdjvTdr/wB00m1v7tAEi4x1NGRmo8H0NADdcUASEA/SmOg74P4UHOOV4pASR0oAcBxwMUYwelIaXNAC/hSdvSk3HsKTd6igBT060cetJnB5FGQe1AC49DR0ptGaADPPU07qKbmjJoAUikIUdaQknvQSB15oAd8uOlAINNDjP/1qN3pQA7ilzTC3pRuwOtADw2aQmmhh2NAOaBjwaUHFRlqQk+tAEu5aQkVGDS59aAHZ9aWoyaXdx1oAcT7Unf5fypu7Pel3Y+tADt208rg+tLuBqMsT3zQWIGc0ASHFGKi3Z70b8dTk0ASEDqRQxOcAVE0hA6U2ORsnd+FAFjFIcd6jLj1pN4oAk47UmPembvSjeaAPHIImuHaJJ5JNxOVAO4L1+9wK0LMxRpvS5f7wBhnGA2eygdveqkTrI+2TmPkhGGxiMcHceP61bVlwrMJ4Qucq6hkVMdBjkmtCBb19u6RmjEuCqqgBQKc9B6j1NZc8mzP2eHy+gjdyHJXu3tV24eBPmiSKW4ZfkMJKqqHJOc9aoSZkByVVSf3ar6DqDSAikdY0VV3Oo+YYH3ievNY2pFUV8Ju3jaGPbvWqjfxRfNniNSMY9cVS1SNWQD7yhf3Sk88feqGBlxHzE2+gwT716f8ACTVjNo8tlK2Wt3yFLc7TXl8DxB5P7zYIVeldH8PL37F4qSNjhJ1I+9xntQgPbYpAe9TK46ZqhBIMDNW0IyCKCifNLmmginDFAAeelJz1xRnBoLc0wGDqTigkgU7Iz0pjDINADrb/AFZ+tLSW3+rP1paADGR0qtOMKcGppCQODVGe429RmgBbNWW3fd6Hk9axNJ/4/Zfr/WumU2xtS6yDbiuY0Y5u5D75qBnWW/3BUneo7c5QGpOLine truncated
byte[] imageBytes = Convert.FromBase64String(img_base64);
// 使用MemoryStream创建图片对象
using (MemoryStream ms = new MemoryStream(imageBytes))
{
Image image = Image.FromStream(ms);
// 保存图片到文件系统
try
{
image.Save("D:\\图片1.jpg", System.Drawing.Imaging.ImageFormat.Jpeg);
}
catch (Exception ex) { return "存图失败 " + ex.Message; }
}
string boundary = "----WebKitFormBoundaryi5f9ydbgu8bo3yVD";
string body = @"------WebKitFormBoundaryi5f9ydbgu8bo3yVD
Content-Disposition: form-data; name=""upload_sign""
" + img_signature + @"
------WebKitFormBoundaryi5f9ydbgu8bo3yVD
Content-Disposition: form-data; name=""image""; filename=""图片1.jpg""
Content-Type: image/jpeg
<!>D:\图片1.jpg<!>
------WebKitFormBoundaryi5f9ydbgu8bo3yVD
Content-Disposition: form-data; name=""pic_operations""
{""rules"":[{""rule"":""imageMogr2/format/jpeg/quality/80|imageView2/2/w/2000/h/2000""}]}
------WebKitFormBoundaryi5f9ydbgu8bo3yVD--
";
Thread.Sleep(Randomx.GetId(5, 20));
var uploadImgRst = uploag_sku_img(shop, body, boundary);
return uploadImgRst;
}
private string get_uploag_sku_img_signature(ShopLoginInfo shop)
{
var anti = shop.AntiContents.LastOrDefault().ParseToString();
if (shop.AntiContents.Count > 0)
anti = shop.AntiContents[Randomx.GetId(shop.AntiContents.Count)];
string url = "https://mms.pinduoduo.com/galerie/business/get_signature";
string body = @"{""bucket_tag"":""mms-material-img""}";
//{"bucket_tag":"mms-goods-image"}
string refere = "https://mms.pinduoduo.com/material/upload";
var result = HttpResponseBLL.PDDPostResponse(shop, url, body, refere, anti);
for (int i = 0; i < 5 && (result.Contains("\\u975E\\u6CD5\\u8BF7\\u6C42") || result.Contains("网络繁忙,请不要频繁操作")); i++)
{
shop.AntiContents.Remove(anti);
anti = shop.AntiContents.FirstOrDefault().ParseToString();
if (shop.AntiContents.Count > 0)
{
Thread.Sleep(Randomx.GetId(300, 500));
anti = shop.AntiContents[Randomx.GetId(shop.AntiContents.Count)];
result = HttpResponseBLL.PDDPostResponse(shop, url, body, refere, anti);
}
}
return result;
}
private string uploag_sku_img(ShopLoginInfo shop, string _body, string boundary)
{
var anti = shop.AntiContents.LastOrDefault().ParseToString();
if (shop.AntiContents.Count > 0)
anti = shop.AntiContents[Randomx.GetId(shop.AntiContents.Count)];
string url = "https://file.pinduoduo.com/v3/store_image";
string body = _body;
string refere = "https://mms.pinduoduo.com/";
var result = HttpResponseBLL.PDDPostResponseUpload(shop, url, body, refere, boundary, anti);
for (int i = 0; i < 5 && result.Contains("网络繁忙,请不要频繁操作"); i++)
{
shop.AntiContents.Remove(anti);
anti = shop.AntiContents.FirstOrDefault().ParseToString();
if (shop.AntiContents.Count > 0)
{
Thread.Sleep(Randomx.GetId(300, 500));
anti = shop.AntiContents[Randomx.GetId(shop.AntiContents.Count)];
result = HttpResponseBLL.PDDPostResponseUpload(shop, url, body, refere, boundary, anti);
}
}
// 如果上面选 mms-goods-image
//{"url":"https://pfs.pinduoduo.com/L90k1BB5397AoHjAgRgc55akrOYHOdmytPdc0f0H8H4Eaed975Uv8nEKi2lysNMyywzvv8oQLuX9RYcN9Zj6rEbprt2VQ0IsY8oE41sUq0zWRvL9HtN9zT5vm4ZZMa-mVVb--mIxF44lpjEySokqlPC8s4ETCzFff5cVnToZjpIBx4mUnuBhBxUPqid4M3wsWWYCz4CmU-BVwGXUH3B5PU3me0_dfentrA.jpeg",
//"width":1000,"height":1000,"size":76528,"processed_urls":["https://pfs.pinduoduo.com/L90k1BB5397AoHjAgRgc55akrOYHOdmytPdc0f0H8H4Eaed975Uv8nEKi2lysNMyywzvv8oQLuX9RYcN9Zj6rEbprt2VQ0IsY8oE41sUq0zWRvL9HtN9zT5vm4ZZMa-mVVb--mIxF44lpjEySokqlPC8s4ETCzFff5cVnToZjpIBx4mUnuBhBxUPqid4M3wsWWYCz4CmU-BVwGXUH3B5PU3me0_dfentrA.jpeg"],
//"etag":"35358cae14d105644af9c2bb7d29efec"}
return result;
}
private string create_goods_img(ShopLoginInfo shop, string tmpUrl)
{
//tmpUrl = "https://pfs.pinduoduo.com/L90k1BB5397AoHjAgRgc55akrOYHOdmytPdc0f0H8H4Eaed975Uv8nEKi2lysNMyywzvv8oQLuX9RYcN9Zj6rEbprt2VQ0IsY8oE41sUq0zWRvL9HtN9zT5vm4ZZMa-mVVb--mIxF44lpjEySokqlPC8s4ETCzFff5cVnToZjpIBx4mUnuBhBxUPqid4M3wsWWYCz4CmU-BVwGXUH3B5PU3me0_dfentrA.jpeg";
var anti = shop.AntiContents.LastOrDefault().ParseToString();
if (shop.AntiContents.Count > 0)
anti = shop.AntiContents[Randomx.GetId(shop.AntiContents.Count)];
string url = "https://mms.pinduoduo.com/garner/mms/file/create";
string body = @"{""url"":""" + tmpUrl + @""",""name"":""图片1.jpg"",""extension"":""jpeg"",""create_time"":"
+ BaseClass.DateTimeToTimestampMilliseconds( DateTime.Now) + "}";
string refere = "https://mms.pinduoduo.com/material/upload";
var result = HttpResponseBLL.PDDPostResponse(shop, url, body, refere, anti);
for (int i = 0; i < 5 && (result.Contains("\\u975E\\u6CD5\\u8BF7\\u6C42") || result.Contains("网络繁忙,请不要频繁操作")); i++)
{
shop.AntiContents.Remove(anti);
anti = shop.AntiContents.FirstOrDefault().ParseToString();
if (shop.AntiContents.Count > 0)
{
Thread.Sleep(Randomx.GetId(300, 500));
anti = shop.AntiContents[Randomx.GetId(shop.AntiContents.Count)];
result = HttpResponseBLL.PDDPostResponse(shop, url, body, refere, anti);
}
}
//{"success":true,"error_code":1000000,"error_msg":null,"result":81055859859}
return result;
}
private string query_goods_img(ShopLoginInfo shop, string tmpUrl, string fileId)
{
//tmpUrl = "https://pfs.pinduoduo.com/L90k1BB5397AoHjAgRgc55akrOYHOdmytPdc0f0H8H4Eaed975Uv8nEKi2lysNMyywzvv8oQLuX9RYcN9Zj6rEbprt2VQ0IsY8oE41sUq0zWRvL9HtN9zT5vm4ZZMa-mVVb--mIxF44lpjEySokqlPC8s4ETCzFff5cVnToZjpIBx4mUnuBhBxUPqid4M3wsWWYCz4CmU-BVwGXUH3B5PU3me0_dfentrA.jpeg";
//fileId = "81055859859";
var anti = shop.AntiContents.LastOrDefault().ParseToString();
if (shop.AntiContents.Count > 0)
anti = shop.AntiContents[Randomx.GetId(shop.AntiContents.Count)];
string url = "https://mms.pinduoduo.com/garner/mms/file/queryFileDetail";
string body = @"{""file_id"":" + fileId + @",""file_url"":""" + tmpUrl + @"""}";
string refere = "https://mms.pinduoduo.com/material/upload";
var result = HttpResponseBLL.PDDPostResponse(shop, url, body, refere, anti);
for (int i = 0; i < 5 && (result.Contains("\\u975E\\u6CD5\\u8BF7\\u6C42") || result.Contains("网络繁忙,请不要频繁操作")); i++)
{
shop.AntiContents.Remove(anti);
anti = shop.AntiContents.FirstOrDefault().ParseToString();
if (shop.AntiContents.Count > 0)
{
Thread.Sleep(Randomx.GetId(300, 500));
anti = shop.AntiContents[Randomx.GetId(shop.AntiContents.Count)];
result = HttpResponseBLL.PDDPostResponse(shop, url, body, refere, anti);
}
}
//{"success":true,"error_code":1000000,"error_msg":null,"result":{"id":81055859859,"url_id":0,"mall_id":248737110,"name":"微信图片_20250926210854_2100_1","extension":"jpeg","url":"https://img.pddpic.com/mms-goods-image/2025-10-13/b0cf6e00-77f8-4c1e-b620-ef05f602801c.jpeg.a.jpeg","size":76528,"create_time":1760320860,"update_time":1760320860,"file_type":"pic","extra_info":{"video_cover_url":null,"duration":null,"height":1000,"width":1000,"size":76528,"f20_url":null,"f30_url":null,"transcode_info_dtomap":null,"format":null,"audio_type":null,"transcode_f30_url":null,"md5":null,"vid":null},"is_deleted":0,"tool_source":null,"out_video_url":null,"fail_reason":null,"create_source":1,"check_status":1,"check_uid":null,"check_uname":null,"check_comment":null,"check_time":null,"mall_name":"球球小小店铺55","all_count":0,"used_count":0,"reject_count":0,"same_file_mall_info_list":null}}
return result;
}
}
public class ProdSkuImg
{
public int id { get; set; }
public string img_md5 { get; set; }
public string img_base64 { get; set; }
public string img_url { get; set; }
public string img_type { get; set; }
public string img_group { get; set; }
public string notes { get; set; }
public DateTime add_time { get; set; }
public DateTime mdy_time { get; set; }
}
}
@@ -0,0 +1,337 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="colSelect.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colDbId.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colImgMd5.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colImg.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colImgUrl.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colImgType.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colGroup.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="col_notes.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colAddTime.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colMdyTime.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colEdit.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colSelectImg.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="col_delete.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
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==
</value>
</data>
</root>
+138 -113
View File
@@ -38,10 +38,14 @@ 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.cmbGroupFilter = new System.Windows.Forms.ComboBox();
this.btnSelect = new DevComponents.DotNetBar.PanelEx();
this.btnDelSelect = new DevComponents.DotNetBar.PanelEx();
this.cmbSort = new System.Windows.Forms.ComboBox();
this.label6 = new System.Windows.Forms.Label();
this.btnSearch = new DevComponents.DotNetBar.PanelEx();
this.cmbGroup = new System.Windows.Forms.ComboBox();
this.btnSetGroup = new DevComponents.DotNetBar.PanelEx();
this.cmbSort = new System.Windows.Forms.ComboBox();
this.txtNotes = new System.Windows.Forms.TextBox();
this.lblNotes = new System.Windows.Forms.Label();
this.txtSPU = new System.Windows.Forms.TextBox();
@@ -53,19 +57,22 @@ namespace TemuKJD.PDDForms.ProductSelectForms
this.label3 = new System.Windows.Forms.Label();
this.txtCat = new System.Windows.Forms.TextBox();
this.label2 = new System.Windows.Forms.Label();
this.label6 = new System.Windows.Forms.Label();
this.lblGroup = new System.Windows.Forms.Label();
this.splitContainer2 = new System.Windows.Forms.SplitContainer();
this.pbLoading = new System.Windows.Forms.PictureBox();
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();
this.col_product_name = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colImgUrl = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colMainImg = new System.Windows.Forms.DataGridViewImageColumn();
this.colSkuReplaceImgUrl = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colSkuReplaceImg = new System.Windows.Forms.DataGridViewImageColumn();
this.col_spu_id = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.col_skc_id = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.col_cat_name = new System.Windows.Forms.DataGridViewTextBoxColumn();
@@ -83,11 +90,6 @@ 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();
this.btnDelSelect = new DevComponents.DotNetBar.PanelEx();
this.btnSelect = new DevComponents.DotNetBar.PanelEx();
this.cmbGroupFilter = new System.Windows.Forms.ComboBox();
((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit();
this.splitContainer1.Panel1.SuspendLayout();
this.splitContainer1.Panel2.SuspendLayout();
@@ -139,6 +141,83 @@ namespace TemuKJD.PDDForms.ProductSelectForms
this.splitContainer1.SplitterDistance = 53;
this.splitContainer1.TabIndex = 1;
//
// cmbGroupFilter
//
this.cmbGroupFilter.FormattingEnabled = true;
this.cmbGroupFilter.Location = new System.Drawing.Point(608, 15);
this.cmbGroupFilter.Name = "cmbGroupFilter";
this.cmbGroupFilter.Size = new System.Drawing.Size(85, 25);
this.cmbGroupFilter.TabIndex = 653;
//
// btnSelect
//
this.btnSelect.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
this.btnSelect.Cursor = System.Windows.Forms.Cursors.Hand;
this.btnSelect.DisabledBackColor = System.Drawing.Color.Empty;
this.btnSelect.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnSelect.Location = new System.Drawing.Point(1274, 15);
this.btnSelect.Name = "btnSelect";
this.btnSelect.Size = new System.Drawing.Size(84, 25);
this.btnSelect.Style.Alignment = System.Drawing.StringAlignment.Center;
this.btnSelect.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.btnSelect.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.btnSelect.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder;
this.btnSelect.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash;
this.btnSelect.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None;
this.btnSelect.Style.ForeColor.Color = System.Drawing.Color.White;
this.btnSelect.Style.GradientAngle = 90;
this.btnSelect.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center;
this.btnSelect.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255)))));
this.btnSelect.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255)))));
this.btnSelect.TabIndex = 647;
this.btnSelect.Text = "认领选中商品";
this.btnSelect.Click += new System.EventHandler(this.btnSelect_Click);
//
// btnDelSelect
//
this.btnDelSelect.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
this.btnDelSelect.Cursor = System.Windows.Forms.Cursors.Hand;
this.btnDelSelect.DisabledBackColor = System.Drawing.Color.Empty;
this.btnDelSelect.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnDelSelect.Location = new System.Drawing.Point(1187, 15);
this.btnDelSelect.Name = "btnDelSelect";
this.btnDelSelect.Size = new System.Drawing.Size(84, 25);
this.btnDelSelect.Style.Alignment = System.Drawing.StringAlignment.Center;
this.btnDelSelect.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.btnDelSelect.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.btnDelSelect.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder;
this.btnDelSelect.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash;
this.btnDelSelect.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None;
this.btnDelSelect.Style.ForeColor.Color = System.Drawing.Color.White;
this.btnDelSelect.Style.GradientAngle = 90;
this.btnDelSelect.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center;
this.btnDelSelect.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255)))));
this.btnDelSelect.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255)))));
this.btnDelSelect.TabIndex = 643;
this.btnDelSelect.Text = "删除选中商品";
this.btnDelSelect.Click += new System.EventHandler(this.btnDelSelect_Click);
//
// cmbSort
//
this.cmbSort.FormattingEnabled = true;
this.cmbSort.Items.AddRange(new object[] {
"入库时间",
"认领总数"});
this.cmbSort.Location = new System.Drawing.Point(891, 15);
this.cmbSort.Name = "cmbSort";
this.cmbSort.Size = new System.Drawing.Size(79, 25);
this.cmbSort.TabIndex = 448;
this.cmbSort.Text = "入库时间";
//
// label6
//
this.label6.AutoSize = true;
this.label6.Location = new System.Drawing.Point(834, 19);
this.label6.Name = "label6";
this.label6.Size = new System.Drawing.Size(68, 17);
this.label6.TabIndex = 449;
this.label6.Text = "排序方式:";
//
// btnSearch
//
this.btnSearch.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
@@ -195,18 +274,6 @@ namespace TemuKJD.PDDForms.ProductSelectForms
this.btnSetGroup.Text = "批量设置分组";
this.btnSetGroup.Click += new System.EventHandler(this.btnSetGroup_Click);
//
// cmbSort
//
this.cmbSort.FormattingEnabled = true;
this.cmbSort.Items.AddRange(new object[] {
"入库时间",
"认领总数"});
this.cmbSort.Location = new System.Drawing.Point(891, 15);
this.cmbSort.Name = "cmbSort";
this.cmbSort.Size = new System.Drawing.Size(79, 25);
this.cmbSort.TabIndex = 448;
this.cmbSort.Text = "入库时间";
//
// txtNotes
//
this.txtNotes.Location = new System.Drawing.Point(498, 16);
@@ -311,15 +378,6 @@ namespace TemuKJD.PDDForms.ProductSelectForms
this.label2.TabIndex = 426;
this.label2.Text = "类目:";
//
// label6
//
this.label6.AutoSize = true;
this.label6.Location = new System.Drawing.Point(834, 19);
this.label6.Name = "label6";
this.label6.Size = new System.Drawing.Size(68, 17);
this.label6.TabIndex = 449;
this.label6.Text = "排序方式:";
//
// lblGroup
//
this.lblGroup.AutoSize = true;
@@ -407,6 +465,8 @@ namespace TemuKJD.PDDForms.ProductSelectForms
this.col_product_name,
this.colImgUrl,
this.colMainImg,
this.colSkuReplaceImgUrl,
this.colSkuReplaceImg,
this.col_spu_id,
this.col_skc_id,
this.col_cat_name,
@@ -434,6 +494,31 @@ namespace TemuKJD.PDDForms.ProductSelectForms
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;
@@ -484,6 +569,23 @@ namespace TemuKJD.PDDForms.ProductSelectForms
this.colMainImg.Resizable = System.Windows.Forms.DataGridViewTriState.True;
this.colMainImg.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic;
//
// colSkuReplaceImgUrl
//
this.colSkuReplaceImgUrl.HeaderText = "sku替换图路径";
this.colSkuReplaceImgUrl.Name = "colSkuReplaceImgUrl";
this.colSkuReplaceImgUrl.ReadOnly = true;
this.colSkuReplaceImgUrl.Visible = false;
//
// colSkuReplaceImg
//
this.colSkuReplaceImg.FillWeight = 50F;
this.colSkuReplaceImg.HeaderText = "sku替换图";
this.colSkuReplaceImg.ImageLayout = System.Windows.Forms.DataGridViewImageCellLayout.Zoom;
this.colSkuReplaceImg.Name = "colSkuReplaceImg";
this.colSkuReplaceImg.ReadOnly = true;
this.colSkuReplaceImg.Resizable = System.Windows.Forms.DataGridViewTriState.True;
this.colSkuReplaceImg.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic;
//
// col_spu_id
//
this.col_spu_id.HeaderText = "商品Id";
@@ -528,6 +630,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms
this.colAddTimes.HeaderText = "单店认领次数";
this.colAddTimes.Name = "colAddTimes";
this.colAddTimes.ReadOnly = true;
this.colAddTimes.Visible = false;
//
// colSelectTotalCount
//
@@ -535,6 +638,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms
this.colSelectTotalCount.HeaderText = "认领总数";
this.colSelectTotalCount.Name = "colSelectTotalCount";
this.colSelectTotalCount.ReadOnly = true;
this.colSelectTotalCount.Visible = false;
//
// col_notes
//
@@ -610,87 +714,6 @@ 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 = 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;
//
// btnDelSelect
//
this.btnDelSelect.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
this.btnDelSelect.Cursor = System.Windows.Forms.Cursors.Hand;
this.btnDelSelect.DisabledBackColor = System.Drawing.Color.Empty;
this.btnDelSelect.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnDelSelect.Location = new System.Drawing.Point(1187, 15);
this.btnDelSelect.Name = "btnDelSelect";
this.btnDelSelect.Size = new System.Drawing.Size(84, 25);
this.btnDelSelect.Style.Alignment = System.Drawing.StringAlignment.Center;
this.btnDelSelect.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.btnDelSelect.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.btnDelSelect.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder;
this.btnDelSelect.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash;
this.btnDelSelect.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None;
this.btnDelSelect.Style.ForeColor.Color = System.Drawing.Color.White;
this.btnDelSelect.Style.GradientAngle = 90;
this.btnDelSelect.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center;
this.btnDelSelect.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255)))));
this.btnDelSelect.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255)))));
this.btnDelSelect.TabIndex = 643;
this.btnDelSelect.Text = "删除选中商品";
this.btnDelSelect.Click += new System.EventHandler(this.btnDelSelect_Click);
//
// btnSelect
//
this.btnSelect.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
this.btnSelect.Cursor = System.Windows.Forms.Cursors.Hand;
this.btnSelect.DisabledBackColor = System.Drawing.Color.Empty;
this.btnSelect.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnSelect.Location = new System.Drawing.Point(1274, 15);
this.btnSelect.Name = "btnSelect";
this.btnSelect.Size = new System.Drawing.Size(84, 25);
this.btnSelect.Style.Alignment = System.Drawing.StringAlignment.Center;
this.btnSelect.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.btnSelect.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.btnSelect.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder;
this.btnSelect.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash;
this.btnSelect.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None;
this.btnSelect.Style.ForeColor.Color = System.Drawing.Color.White;
this.btnSelect.Style.GradientAngle = 90;
this.btnSelect.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center;
this.btnSelect.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255)))));
this.btnSelect.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255)))));
this.btnSelect.TabIndex = 647;
this.btnSelect.Text = "认领选中商品";
this.btnSelect.Click += new System.EventHandler(this.btnSelect_Click);
//
// cmbGroupFilter
//
this.cmbGroupFilter.FormattingEnabled = true;
this.cmbGroupFilter.Location = new System.Drawing.Point(608, 15);
this.cmbGroupFilter.Name = "cmbGroupFilter";
this.cmbGroupFilter.Size = new System.Drawing.Size(85, 25);
this.cmbGroupFilter.TabIndex = 653;
//
// PDDDBProdListForm
//
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
@@ -746,12 +769,18 @@ namespace TemuKJD.PDDForms.ProductSelectForms
private System.Windows.Forms.ComboBox cmbGroup;
private DevComponents.DotNetBar.PanelEx btnSetGroup;
private System.Windows.Forms.Label lblGroup;
private DevComponents.DotNetBar.PanelEx btnSearch;
private DevComponents.DotNetBar.PanelEx btnSelect;
private DevComponents.DotNetBar.PanelEx btnDelSelect;
private System.Windows.Forms.ComboBox cmbGroupFilter;
private System.Windows.Forms.DataGridViewCheckBoxColumn colSelect;
private System.Windows.Forms.DataGridViewTextBoxColumn col_db_id;
private System.Windows.Forms.DataGridViewTextBoxColumn colFromShopId;
private System.Windows.Forms.DataGridViewTextBoxColumn col_product_name;
private System.Windows.Forms.DataGridViewTextBoxColumn colImgUrl;
private System.Windows.Forms.DataGridViewImageColumn colMainImg;
private System.Windows.Forms.DataGridViewTextBoxColumn colSkuReplaceImgUrl;
private System.Windows.Forms.DataGridViewImageColumn colSkuReplaceImg;
private System.Windows.Forms.DataGridViewTextBoxColumn col_spu_id;
private System.Windows.Forms.DataGridViewTextBoxColumn col_skc_id;
private System.Windows.Forms.DataGridViewTextBoxColumn col_cat_name;
@@ -769,9 +798,5 @@ 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 btnSearch;
private DevComponents.DotNetBar.PanelEx btnSelect;
private DevComponents.DotNetBar.PanelEx btnDelSelect;
private System.Windows.Forms.ComboBox cmbGroupFilter;
}
}
@@ -1,7 +1,6 @@
using AllBase;
using AllBase.Model.Result;
using NaiBa.Util.Extension;
using NaiBa.Util.Winform.Extension;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
@@ -16,6 +15,7 @@ using System.Text.RegularExpressions;
using System.Threading.Tasks;
using System.Windows.Forms;
using TemuKJD.BaseForms;
using TemuKJD.Extension;
using TemuKJD.ToolForms;
using Work;
@@ -91,6 +91,8 @@ namespace TemuKJD.PDDForms.ProductSelectForms
this.ucSplitPage1.PageChange += UcSplitPage1_PageChange;
this.dgvDbProduct.AddSelectorColumn("colSelect");
this.dgvDbProduct.AddImgColumn("colSkuReplaceImg", "colSkuReplaceImgUrl");
}
private void btnSearch_Click(object sender, EventArgs e)
@@ -142,8 +144,10 @@ namespace TemuKJD.PDDForms.ProductSelectForms
prod.id,
prod.from_shop_id,
prod.product_name,
prod?.main_img?.Replace("https", "http"),
prod?.main_img?.Replace("https", "http") + "?imageView2/2/w/90/h/90",
defaultBitmap, // prod.main_img,
prod.sku_img_replace_url,
DataGridViewExtension.defaultBitmap,
prod.spu_id,
prod.skc_id,
prod.cat_name,
@@ -338,9 +342,10 @@ namespace TemuKJD.PDDForms.ProductSelectForms
dgvDbProduct.Rows[e.RowIndex].Cells["colEndWords"].Value = dbProduct.end_words;
dgvDbProduct.Rows[e.RowIndex].Cells["colFissionWords"].Value = dbProduct.fission_words;
dgvDbProduct.Rows[e.RowIndex].Cells["col_product_name"].Value = dbProduct.product_name;
dgvDbProduct.Rows[e.RowIndex].Cells["colSkuReplaceImgUrl"].Value = dbProduct.sku_img_replace_url;
break;
case "主图":
ShowImgForm imgFrom = new ShowImgForm(dgvDbProduct.Rows[e.RowIndex].Cells["colImgUrl"].Value.ParseToString());
ShowImgForm imgFrom = new ShowImgForm(dgvDbProduct.Rows[e.RowIndex].Cells["colImgUrl"].Value.ParseToString().Replace("?imageView2/2/w/90/h/90", ""));
imgFrom.ShowDialog();
break;
case "认领":
@@ -135,6 +135,12 @@
<metadata name="colMainImg.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colSkuReplaceImgUrl.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colSkuReplaceImg.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="col_spu_id.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
@@ -1923,15 +1923,15 @@ namespace TemuKJD.PDDForms.ProductSelectForms
//cat_name
string[] catName = new string[] { "洞洞鞋", "其他凉鞋", "包头拖", "人字拖", "一字拖", "居家鞋", "棉拖鞋", "网面鞋", "居家凉拖",
"沙滩凉鞋", "休闲凉鞋", "凉鞋", "运动拖鞋", "时装凉鞋", "男凉拖", "擦地拖鞋", "亚麻拖鞋", "休闲皮鞋", "T恤", "高帮棉鞋" };
"沙滩凉鞋", "休闲凉鞋", "凉鞋", "运动拖鞋", "时装凉鞋", "男凉拖", "擦地拖鞋", "亚麻拖鞋", "休闲皮鞋", "T恤", "高帮棉鞋", "罗马凉鞋" };
string[] catName2 = new string[] { "运动休闲鞋", "布鞋", "帆布鞋", "单鞋", "板鞋/休闲鞋", "广场舞鞋", "板鞋", "乐福鞋", "健步鞋",
"跑步鞋", "棉鞋", "高帮休闲鞋", "网面鞋", "勃肯鞋/软木鞋", "包头拖", "足部磨砂", "老爹鞋", "工装鞋", "豆豆鞋", "汉服鞋" };
string img_type = "鞋(不含拖鞋)";
if (catName.Contains(dbProd.cat_name))
if (catName.Contains(dbProd.cat_name) || dbProd.cat_name.Contains("凉鞋") || dbProd.cat_name.Contains("拖鞋"))
{
img_type = "拖鞋";
}
else if (catName2.Contains(dbProd.cat_name))
else if (catName2.Contains(dbProd.cat_name) || catName2.Contains("鞋"))
{
img_type = "鞋(不含拖鞋)";
}
@@ -4319,7 +4319,7 @@ Content-Disposition: form-data; name=""pic_operations""
OpenFileDialog openFileDialog = new OpenFileDialog();
openFileDialog.Multiselect = false;
// 设置过滤条件,只显示文本文件
openFileDialog.Filter = "图片文件 (*.jepg;*.jpg;*.png)|*.jepg;*.jpg;*.png|All files (*.*)|*.*";
openFileDialog.Filter = "图片文件 (*.jpeg;*.jpg;*.png)|*.jpeg;*.jpg;*.png|All files (*.*)|*.*";
// 显示对话框并获取结果
if (openFileDialog.ShowDialog() == DialogResult.OK)
{