1拼多多sku货号价格 2拼多多sku增删改功能(70%)

This commit is contained in:
wule committed 2025-12-11 14:39:16 +08:00
1 parent 4dde0936ed
commit ad238cd241
31 files changed
+3155 -348

No files matched your search

+1 -1
View File
@@ -27,7 +27,7 @@ namespace AllBase
/// <summary>
/// 版本ID
/// </summary>
public static int VersionCount = 718;
public static int VersionCount = 722;
//public static int VersionCount = 613;
/// <summary>
+8
View File
@@ -24,9 +24,17 @@ namespace AllBase.Model.Result
/// </summary>
public string price_text { get; set; }
public string ext_code { get; set; }
/// <summary>
/// 拼多多货号价格
/// </summary>
public int? ext_code_price { get; set; }
public string product_name { get; set; }
public string product_json { get; set; }
public string size_json { get; set; }
/// <summary>
/// sku编辑后存储列表
/// </summary>
public string sku_edit_json { get; set; }
public int sku_img_replace_id { get; set; }
public string sku_img_replace_base64 { get; set; }
public string sku_img_replace_url { get; set; }
@@ -227,6 +227,11 @@ namespace AllBase.Model.Result.PDDResult
public string mall_name { get; set; }
}
public class sku_edit_item : sku_item
{
public string thumb_md5 { get; set; }
}
public class sku_item
{
public long? id { get; set; }
@@ -235,7 +240,7 @@ namespace AllBase.Model.Result.PDDResult
public int? carnival_price { get; set; }
public int? init_quantity { get; set; }
public int? is_onsale { get; set; }
public int? limit_quantity { get; set; } // 999999 max
public int? limit_quantity { get; set; } = 999999; // 999999 max
public int? multi_price { get; set; }
public object multi_price_in_yuan { get; set; }
public int? price { get; set; }
@@ -596,5 +596,256 @@ namespace KJD_Web.BLL.BXX
}
return "{\"code\":19999,\"msg\":\"输入为空\"}";
}
public string AddExtCodePrice(string inputData)
{
if (!string.IsNullOrEmpty(inputData))
{
var time = RegexUtils.GetStringQuery(ref inputData, "time").ParseToInt();
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 ext_code = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "ext_code")).ParseToString();
int ext_code_price = RegexUtils.GetStringQuery(ref inputData, "ext_code_price").ParseToInt();
if (string.IsNullOrEmpty(user_name))
{
return "{\"code\":500,\"msg\":\"没有用户名\"}";
}
if (string.IsNullOrEmpty(ext_code))
{
return "{\"code\":500,\"msg\":\"没有货号\"}";
}
string conn = System.Configuration.ConfigurationManager.ConnectionStrings["ConnKJD"].ConnectionString;
MysqlUtils mySql = new MysqlUtils(conn);
List<MySqlParameter> paramLst = new List<MySqlParameter>();
paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "@ext_code", Value = ext_code, });
paramLst.Add(new MySqlParameter() { DbType = DbType.Int32, ParameterName = "@ext_code_price", Value = ext_code_price, });
string sql= "select count(ext_code) from bxx.ext_code_price where ext_code=@ext_code";
var count = mySql.ExecuteRowCount(sql, paramLst.ToArray());
if (count.ParseToInt() > 0)
{
sql = "update bxx.ext_code_price set ext_code_price=@ext_code_price where ext_code=@ext_code";
}
else
{
sql = "insert into bxx.ext_code_price (ext_code,ext_code_price) values (@ext_code,@ext_code_price);";
}
var rst = mySql.ExecuteNonQuery(sql, paramLst.ToArray());
mySql.Close();
if (rst)
{
return "{\"code\":200,\"msg\":\"success\"}";
}
else
{
return "{\"code\":502,\"msg\":\"" + mySql.Message + "\"}";
}
}
return "{\"code\":19999,\"msg\":\"输入为空\"}";
}
public string GetExtCodePriceList(string inputData)
{
if (!string.IsNullOrEmpty(inputData))
{
var time = RegexUtils.GetStringQuery(ref inputData, "time").ParseToInt();
string time1 = RegexUtils.GetStringQuery(ref inputData, "code");
if (time1 != EncrypUtil.Encryption(time))
return "{\"code\":50000,\"msg\":\"校验失败\"}";
var user_name = RegexUtils.GetStringQuery(ref inputData, "user_name");
var password = RegexUtils.GetStringQuery(ref inputData, "password");
string start_ext_price = RegexUtils.GetStringQuery(ref inputData, "start_ext_price");
string end_ext_price = RegexUtils.GetStringQuery(ref inputData, "end_ext_price");
var search_ext_code = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "search_ext_code"));
var in_ext_code = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "in_ext_code"));
int page = RegexUtils.GetStringQuery(ref inputData, "page").ParseToInt();
int page_size = RegexUtils.GetStringQuery(ref inputData, "page_size").ParseToInt(50);
if (string.IsNullOrEmpty(user_name))
{
return "{\"code\":500,\"msg\":\"没有用户名\"}";
}
List<MySqlParameter> paramLst = new List<MySqlParameter>();
paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "@search_ext_code", Value = "%" + search_ext_code + "%", });
paramLst.Add(new MySqlParameter() { DbType = DbType.Int32, ParameterName = "@start_ext_price", Value = start_ext_price.ParseToInt(), });
paramLst.Add(new MySqlParameter() { DbType = DbType.Int32, ParameterName = "@end_ext_price", Value = end_ext_price.ParseToInt(), });
paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "@in_ext_code", Value = in_ext_code.ParseToString() });
string conn = System.Configuration.ConfigurationManager.ConnectionStrings["ConnKJD"].ConnectionString;
MysqlUtils mySql = new MysqlUtils(conn);
string sql = "select count(id) from bxx.ext_code_price p where 1=1";
string where = "";
if (!string.IsNullOrWhiteSpace(search_ext_code))
where += " and p.ext_code like @search_ext_code";
if (!string.IsNullOrWhiteSpace(start_ext_price))
where += " and p.ext_code_price >= @start_ext_price";
if (!string.IsNullOrWhiteSpace(end_ext_price))
where += " and p.ext_code_price <= @end_ext_price";
if (!string.IsNullOrEmpty(in_ext_code))
where += " and p.ext_code in ('" + in_ext_code?.Replace(",", "','") + "')";
sql += where;
var count = mySql.ExecuteRowCount(sql, paramLst.ToArray());
DataTable dt;
if (count == 0)
{
dt = new DataTable();
}
else
{
sql = "select * from bxx.ext_code_price p where 1=1";
//where子句
sql += where;
sql += " order by p.id desc";
sql += " limit " + Math.Max(page - 1, 0) * page_size + "," + page_size;
dt = mySql.ExecuteDataTable(sql, paramLst.ToArray());
}
mySql.Close();
if (dt != null)
{
try
{
List<DBExtCodePriceResult> priceList = new List<DBExtCodePriceResult>();
foreach (DataRow row in dt.Rows)
{
DBExtCodePriceResult price = new DBExtCodePriceResult
{
id = row["id"].ParseToInt(),
ext_code_price = row["ext_code_price"].ParseToInt(),
ext_code = row["ext_code"].ParseToString(),
add_time = Convert.ToDateTime(row["add_time"]),
mdy_time = Convert.ToDateTime(row["mdy_time"]),
};
priceList.Add(price);
}
var data = JsonUtils.SerializerObjectToString(priceList);
return "{\"code\":200,\"msg\":\"success\",\"data\":" + data + ",\"count\":" + count + "}";
}
catch (Exception ex)
{
return "{\"code\":500,\"msg\":\"" + ex.Message + "\",\"data\":[],\"count\":" + 0 + "}";
}
}
else
{
return "{\"code\":500,\"msg\":\"" + mySql.Message + "\",\"data\":[],\"count\":" + 0 + "}";
}
}
return "{\"code\":19999,\"msg\":\"输入为空\"}";
}
public string DelDbExtCodePrice(string inputData)
{
if (!string.IsNullOrEmpty(inputData))
{
var time = RegexUtils.GetStringQuery(ref inputData, "time").ParseToInt();
string time1 = RegexUtils.GetStringQuery(ref inputData, "code");
if (time1 != EncrypUtil.Encryption(time))
return "{\"code\":50000,\"msg\":\"校验失败\"}";
var user_name = RegexUtils.GetStringQuery(ref inputData, "user_name")?.Replace("'", "\\'");
var id = RegexUtils.GetStringQuery(ref inputData, "db_id")?.Replace("'", "\\'");
if (string.IsNullOrEmpty(user_name))
{
return "{\"code\":500,\"msg\":\"没有用户名\"}";
}
string conn = System.Configuration.ConfigurationManager.ConnectionStrings["ConnKJD"].ConnectionString;
MysqlUtils mySql = new MysqlUtils(conn);
string sql = "delete from bxx.ext_code_price where id='" + id + "'";
var rst = mySql.ExecuteNonQuery(sql);
mySql.Close();
if (rst)
{
return "{\"code\":200,\"msg\":\"success\"}";
}
else
return "{\"code\":500,\"msg\":\"删除失败:" + mySql.Message + "\"}";
}
return "{\"code\":19999,\"msg\":\"输入为空\"}";
}
public string MdyDBExtCodePrice(string inputData, bool isAdmin = false)
{
if (!string.IsNullOrEmpty(inputData))
{
var time = RegexUtils.GetStringQuery(ref inputData, "time").ParseToInt();
string time1 = RegexUtils.GetStringQuery(ref inputData, "code");
if (time1 != EncrypUtil.Encryption(time))
return "{\"code\":50000,\"msg\":\"校验失败\"}";
var user_name = RegexUtils.GetStringQuery(ref inputData, "user_name");
var db_id = RegexUtils.GetStringQuery(ref inputData, "db_id");
string ext_code = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "ext_code"));
string ext_code_price = RegexUtils.GetStringQuery(ref inputData, "original_price");
if (string.IsNullOrEmpty(user_name))
{
return "{\"code\":500,\"msg\":\"没有用户名\"}";
}
List<MySqlParameter> paramLst = new List<MySqlParameter>();
paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "@ext_code", Value = ext_code, });
paramLst.Add(new MySqlParameter() { DbType = DbType.Int32, ParameterName = "@ext_code_price", Value = ext_code_price.ParseToInt(), });
paramLst.Add(new MySqlParameter() { DbType = DbType.Int32, ParameterName = "@db_id", Value = db_id, });
string conn = System.Configuration.ConfigurationManager.ConnectionStrings["ConnKJD"].ConnectionString;
MysqlUtils mySql = new MysqlUtils(conn);
//string sqlExist = "select count(ext_code) from bxx.ext_code_price where ext_code=@ext_code and id!=@db_id";
//var has = mySql.ExecuteFirst(sqlExist, paramLst.ToArray());
//if (has != "0")
//{
// mySql.Close();
// return "{\"code\":501,\"msg\":\"货号 " + ext_code + " 价格数据已存在\"}";
//}
string sql = "update bxx.ext_code_price set";
if (ext_code != null)
sql += " ext_code=@ext_code,";
if (ext_code_price != null)
sql += " ext_code_price=@ext_code_price,";
sql = sql.TrimEnd(',');
sql += " where id=@db_id;";
var rst = mySql.ExecuteNonQuery(sql, paramLst.ToArray());
mySql.Close();
if (rst)
{
return "{\"code\":200,\"msg\":\"success\"}";
}
else
{
return "{\"code\":500,\"msg\":\"更新失败:" + mySql.Message + "\"}";
}
}
return "{\"code\":19999,\"msg\":\"输入为空\"}";
}
}
}
@@ -211,16 +211,24 @@ namespace KJD_Web.BLL.BXX
else
{
if (isDetail)
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";
sql = "select p.*,s.img_base64,s.img_url,e.ext_code_price from bxx.product p" +
" left join bxx.sku_img_replace s ON p.sku_img_replace_id=s.id" +
" LEFT JOIN bxx.ext_code_price e ON p.ext_code=e.ext_code" +
" 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,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";
" 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,e.ext_code_price" +
" FROM bxx.product p " +
" left join bxx.sku_img_replace s ON p.sku_img_replace_id=s.id" +
" LEFT JOIN bxx.ext_code_price e ON p.ext_code=e.ext_code" +
" 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,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";
" 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," +
" e.ext_code_price" +
" 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 + "' " +
" LEFT JOIN bxx.ext_code_price e ON p.ext_code=e.ext_code" +
" WHERE p.is_del=0";
//where子句
sql += where;
@@ -253,7 +261,8 @@ namespace KJD_Web.BLL.BXX
cat_name = row["cat_name"].ToString(),
product_name = row["product_name"].ToString(),
main_img = row["main_img"].ToString(),
ext_code = row["ext_code"].ToString(),
ext_code = row["ext_code"].ToString(),
ext_code_price = row["ext_code_price"].IsNullOrEmpty() ? new int?() : row["ext_code_price"].ParseToInt(),
price_text = row["price_text"].ToString(),
//product_json = row["product_json"].ToString(),
//size_json = row["size_json"].ToString(),
@@ -272,6 +281,7 @@ namespace KJD_Web.BLL.BXX
{
prod.product_json = row["product_json"].ToString();
prod.size_json = row["size_json"].ToString();
prod.sku_edit_json = row["sku_edit_json"].ToString();
prod.sku_img_replace_base64 = row["img_base64"].ToString();
//prod.sku_img_replace_url = row["img_url"].ToString();
}
@@ -145,5 +145,54 @@ namespace KJD_Web
Context.Response.Write(result);
Context.Response.End();
}
//AddExtCodePrice
[WebMethod]
public void add_ext_code_price()
{
string jsontext = GetRequestJsonString();
var result = jsontext;
result = new BXXPriceManage().AddExtCodePrice(jsontext);
Context.Response.Write(result);
Context.Response.End();
}
[WebMethod]
public void get_ext_code_price_list()
{
string jsontext = GetRequestJsonString();
var result = jsontext;
result = new BXXPriceManage().GetExtCodePriceList(jsontext);
Context.Response.Write(result);
Context.Response.End();
}
[WebMethod]
public void del_db_ext_code_price()
{
string jsontext = GetRequestJsonString();
var result = jsontext;
result = new BXXPriceManage().DelDbExtCodePrice(jsontext);
Context.Response.Write(result);
Context.Response.End();
}
[WebMethod]
public void mdy_db_ext_code_price()
{
string jsontext = GetRequestJsonString();
var result = jsontext;
result = new BXXPriceManage().MdyDBExtCodePrice(jsontext);
Context.Response.Write(result);
Context.Response.End();
}
}
}
@@ -8,7 +8,7 @@
<IISExpressWindowsAuthentication />
<IISExpressUseClassicPipelineMode />
<UseGlobalApplicationHostFile />
<LastActiveSolutionConfig>Debug|Any CPU</LastActiveSolutionConfig>
<LastActiveSolutionConfig>Release|Any CPU</LastActiveSolutionConfig>
<ProjectView>ShowAllFiles</ProjectView>
</PropertyGroup>
<ProjectExtensions>
@@ -16,4 +16,13 @@ namespace KJD_Web.Model
public DateTime add_time { get; set; }
public DateTime mdy_time { get; set; }
}
public class DBExtCodePriceResult
{
public int id { get; set; }
public string ext_code { get; set; }
public int ext_code_price { get; set; }
public DateTime add_time { get; set; }
public DateTime mdy_time { get; set; }
}
}
@@ -23,15 +23,15 @@ namespace KJD_Web.Model
/// </summary>
public string price_text { get; set; }
/// <summary>
/// 成本价格
/// jit成本价格
/// </summary>
public string cost_price { get; set; }
/// <summary>
/// 快递费
/// jit快递费
/// </summary>
public string delivery_fee { get; set; }
/// <summary>
/// 贴单费
/// jit贴单费
/// </summary>
public string mark_fee { get; set; }
/// <summary>
@@ -43,9 +43,14 @@ namespace KJD_Web.Model
/// </summary>
public string change_cat_name { get; set; }
public string ext_code { get; set; }
/// <summary>
/// 拼多多 设置类目价格
/// </summary>
public int? ext_code_price { get; set; }
public string product_name { get; set; }
public string product_json { get; set; }
public string size_json { get; set; }
public string sku_edit_json { get; set; }
public int sku_img_replace_id { get; set; }
public string sku_img_replace_base64 { get; set; }
public string sku_img_replace_url { get; set; }
+29 -5
View File
@@ -571,6 +571,12 @@
<Compile Include="PDDForms\ProductForms\PDDProductUpDownForm.Designer.cs">
<DependentUpon>PDDProductUpDownForm.cs</DependentUpon>
</Compile>
<Compile Include="PDDForms\ProductSelectForms\PDDDBProdEditDetailForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="PDDForms\ProductSelectForms\PDDDBProdEditDetailForm.Designer.cs">
<DependentUpon>PDDDBProdEditDetailForm.cs</DependentUpon>
</Compile>
<Compile Include="PDDForms\ProductSelectForms\PDDDBProdImgListForm.cs">
<SubType>Form</SubType>
</Compile>
@@ -601,11 +607,11 @@
<Compile Include="PDDForms\ProductSelectForms\PDDDBProdListForm.Designer.cs">
<DependentUpon>PDDDBProdListForm.cs</DependentUpon>
</Compile>
<Compile Include="PDDForms\ProductSelectForms\PDDDBProdEditNotesForm.cs">
<Compile Include="PDDForms\ProductSelectForms\PDDDBProdEditForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="PDDForms\ProductSelectForms\PDDDBProdEditNotesForm.Designer.cs">
<DependentUpon>PDDDBProdEditNotesForm.cs</DependentUpon>
<Compile Include="PDDForms\ProductSelectForms\PDDDBProdEditForm.Designer.cs">
<DependentUpon>PDDDBProdEditForm.cs</DependentUpon>
</Compile>
<Compile Include="PDDForms\ProductSelectForms\PDDThirdProdSelectAddShopForm.cs">
<SubType>Form</SubType>
@@ -619,6 +625,12 @@
<Compile Include="PDDForms\ProductSelectForms\UcAddPrice.Designer.cs">
<DependentUpon>UcAddPrice.cs</DependentUpon>
</Compile>
<Compile Include="PDDForms\ProductSelectForms\UcPddSpecEdit.cs">
<SubType>UserControl</SubType>
</Compile>
<Compile Include="PDDForms\ProductSelectForms\UcPddSpecEdit.Designer.cs">
<DependentUpon>UcPddSpecEdit.cs</DependentUpon>
</Compile>
<Compile Include="PDDForms\ShopForms\PDDShopUpdateFddlCookieForm.cs">
<SubType>Form</SubType>
</Compile>
@@ -839,6 +851,12 @@
<Compile Include="UserComponent\UcComboBoxBase.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="UserComponent\UcComboBoxMutiSelect .cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="UserComponent\UcComboBoxMutiSelect .Designer.cs">
<DependentUpon>UcComboBoxMutiSelect .cs</DependentUpon>
</Compile>
<Compile Include="UserComponent\UcDataGridViewCheckBoxColumn.cs" />
<Compile Include="UserComponent\UcDataGridViewCheckBoxColumn.Designer.cs">
<DependentUpon>UcDataGridViewCheckBoxColumn.cs</DependentUpon>
@@ -1129,6 +1147,9 @@
<EmbeddedResource Include="PDDForms\ProductForms\PDDProductUpDownForm.resx">
<DependentUpon>PDDProductUpDownForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="PDDForms\ProductSelectForms\PDDDBProdEditDetailForm.resx">
<DependentUpon>PDDDBProdEditDetailForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="PDDForms\ProductSelectForms\PDDDBProdImgListForm.resx">
<DependentUpon>PDDDBProdImgListForm.cs</DependentUpon>
</EmbeddedResource>
@@ -1144,8 +1165,8 @@
<EmbeddedResource Include="PDDForms\ProductSelectForms\PDDDBProdListForm.resx">
<DependentUpon>PDDDBProdListForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="PDDForms\ProductSelectForms\PDDDBProdEditNotesForm.resx">
<DependentUpon>PDDDBProdEditNotesForm.cs</DependentUpon>
<EmbeddedResource Include="PDDForms\ProductSelectForms\PDDDBProdEditForm.resx">
<DependentUpon>PDDDBProdEditForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="PDDForms\ProductSelectForms\PDDThirdProdSelectAddShopForm.resx">
<DependentUpon>PDDThirdProdSelectAddShopForm.cs</DependentUpon>
@@ -1153,6 +1174,9 @@
<EmbeddedResource Include="PDDForms\ProductSelectForms\UcAddPrice.resx">
<DependentUpon>UcAddPrice.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="PDDForms\ProductSelectForms\UcPddSpecEdit.resx">
<DependentUpon>UcPddSpecEdit.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="PDDForms\ShopForms\PDDShopUpdateFddlCookieForm.resx">
<DependentUpon>PDDShopUpdateFddlCookieForm.cs</DependentUpon>
</EmbeddedResource>
@@ -38,6 +38,8 @@
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle7 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle8 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle9 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle10 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle11 = new System.Windows.Forms.DataGridViewCellStyle();
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(DbProductSelectListManageForm));
this.splitContainer1 = new System.Windows.Forms.SplitContainer();
this.numMaxWaitSecond = new System.Windows.Forms.NumericUpDown();
@@ -127,6 +129,15 @@
this.label14 = new System.Windows.Forms.Label();
this.btnCustomImg = new DevComponents.DotNetBar.PanelEx();
this.chkCustomPic = new TemuKJD.UserComponent.UcCheckBox(this.components);
this.panel2 = new System.Windows.Forms.Panel();
this.panelEx1 = new DevComponents.DotNetBar.PanelEx();
this.dgvMapDraftIds = new TemuKJD.UserComponent.DataGridViewEx();
this.dataGridViewCheckBoxColumn1 = new System.Windows.Forms.DataGridViewCheckBoxColumn();
this.colMapId = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colMapShopId = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colMapDraftId = new System.Windows.Forms.DataGridViewLinkColumn();
this.colToPorductPage = new System.Windows.Forms.DataGridViewLinkColumn();
this.colToDraftPage = new System.Windows.Forms.DataGridViewLinkColumn();
this.dgvSelectProduct = new TemuKJD.UserComponent.DataGridViewEx();
this.colSelect = new System.Windows.Forms.DataGridViewCheckBoxColumn();
this.colSelectId = new System.Windows.Forms.DataGridViewTextBoxColumn();
@@ -184,6 +195,8 @@
this.pnlError.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.pbLoading)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.numSeconds)).BeginInit();
this.panel2.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.dgvMapDraftIds)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.dgvSelectProduct)).BeginInit();
this.SuspendLayout();
//
@@ -1437,6 +1450,7 @@
this.splitContainer2.Panel1.Controls.Add(this.label14);
this.splitContainer2.Panel1.Controls.Add(this.btnCustomImg);
this.splitContainer2.Panel1.Controls.Add(this.chkCustomPic);
this.splitContainer2.Panel1.Controls.Add(this.panel2);
this.splitContainer2.Panel1.Controls.Add(this.dgvSelectProduct);
this.splitContainer2.Panel1.Padding = new System.Windows.Forms.Padding(4, 0, 4, 0);
//
@@ -1570,15 +1584,52 @@
this.chkCustomPic.UseVisualStyleBackColor = true;
this.chkCustomPic.Visible = false;
//
// dgvSelectProduct
// panel2
//
this.dgvSelectProduct.AllowUserToAddRows = false;
this.dgvSelectProduct.AllowUserToDeleteRows = false;
this.panel2.Anchor = System.Windows.Forms.AnchorStyles.Top;
this.panel2.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.panel2.Controls.Add(this.panelEx1);
this.panel2.Controls.Add(this.dgvMapDraftIds);
this.panel2.Location = new System.Drawing.Point(661, 72);
this.panel2.Name = "panel2";
this.panel2.Size = new System.Drawing.Size(196, 341);
this.panel2.TabIndex = 499;
this.panel2.Visible = false;
//
// panelEx1
//
this.panelEx1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.panelEx1.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
this.panelEx1.Cursor = System.Windows.Forms.Cursors.Hand;
this.panelEx1.DisabledBackColor = System.Drawing.Color.Empty;
this.panelEx1.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.panelEx1.Location = new System.Drawing.Point(151, 313);
this.panelEx1.Name = "panelEx1";
this.panelEx1.Size = new System.Drawing.Size(42, 24);
this.panelEx1.Style.Alignment = System.Drawing.StringAlignment.Center;
this.panelEx1.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.panelEx1.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.panelEx1.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder;
this.panelEx1.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash;
this.panelEx1.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None;
this.panelEx1.Style.ForeColor.Color = System.Drawing.Color.White;
this.panelEx1.Style.GradientAngle = 90;
this.panelEx1.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center;
this.panelEx1.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255)))));
this.panelEx1.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255)))));
this.panelEx1.TabIndex = 453;
this.panelEx1.Text = "关闭";
this.panelEx1.Click += new System.EventHandler(this.btnCloseDgvMapDraftIds_Click);
//
// dgvMapDraftIds
//
this.dgvMapDraftIds.AllowUserToAddRows = false;
this.dgvMapDraftIds.AllowUserToDeleteRows = false;
dataGridViewCellStyle1.BackColor = System.Drawing.Color.WhiteSmoke;
this.dgvSelectProduct.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle1;
this.dgvSelectProduct.AutoRowNumber = true;
this.dgvSelectProduct.BackgroundColor = System.Drawing.Color.White;
this.dgvSelectProduct.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.dgvMapDraftIds.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle1;
this.dgvMapDraftIds.AutoRowNumber = true;
this.dgvMapDraftIds.BackgroundColor = System.Drawing.Color.White;
this.dgvMapDraftIds.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)));
@@ -1586,7 +1637,94 @@
dataGridViewCellStyle2.SelectionBackColor = System.Drawing.SystemColors.Highlight;
dataGridViewCellStyle2.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
dataGridViewCellStyle2.WrapMode = System.Windows.Forms.DataGridViewTriState.False;
this.dgvSelectProduct.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle2;
this.dgvMapDraftIds.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle2;
this.dgvMapDraftIds.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
this.dgvMapDraftIds.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
this.dataGridViewCheckBoxColumn1,
this.colMapId,
this.colMapShopId,
this.colMapDraftId,
this.colToPorductPage,
this.colToDraftPage});
this.dgvMapDraftIds.Location = new System.Drawing.Point(1, 1);
this.dgvMapDraftIds.Name = "dgvMapDraftIds";
this.dgvMapDraftIds.ReadOnly = true;
this.dgvMapDraftIds.RowHeadersWidth = 40;
this.dgvMapDraftIds.RowTemplate.Height = 23;
this.dgvMapDraftIds.Size = new System.Drawing.Size(192, 310);
this.dgvMapDraftIds.TabIndex = 192;
this.dgvMapDraftIds.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dgvMapDraftIds_CellContentClick);
//
// dataGridViewCheckBoxColumn1
//
this.dataGridViewCheckBoxColumn1.HeaderText = "选择";
this.dataGridViewCheckBoxColumn1.Name = "dataGridViewCheckBoxColumn1";
this.dataGridViewCheckBoxColumn1.ReadOnly = true;
this.dataGridViewCheckBoxColumn1.Resizable = System.Windows.Forms.DataGridViewTriState.True;
this.dataGridViewCheckBoxColumn1.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic;
this.dataGridViewCheckBoxColumn1.Visible = false;
this.dataGridViewCheckBoxColumn1.Width = 30;
//
// colMapId
//
this.colMapId.HeaderText = "映射Id";
this.colMapId.Name = "colMapId";
this.colMapId.ReadOnly = true;
this.colMapId.Visible = false;
this.colMapId.Width = 125;
//
// colMapShopId
//
this.colMapShopId.HeaderText = "映射店铺Id";
this.colMapShopId.Name = "colMapShopId";
this.colMapShopId.ReadOnly = true;
this.colMapShopId.Visible = false;
this.colMapShopId.Width = 120;
//
// colMapDraftId
//
this.colMapDraftId.HeaderText = "已上传商品ID";
this.colMapDraftId.Name = "colMapDraftId";
this.colMapDraftId.ReadOnly = true;
this.colMapDraftId.Resizable = System.Windows.Forms.DataGridViewTriState.True;
this.colMapDraftId.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic;
this.colMapDraftId.Width = 120;
//
// colToPorductPage
//
this.colToPorductPage.HeaderText = "访问商品页";
this.colToPorductPage.Name = "colToPorductPage";
this.colToPorductPage.ReadOnly = true;
this.colToPorductPage.Resizable = System.Windows.Forms.DataGridViewTriState.True;
this.colToPorductPage.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic;
this.colToPorductPage.Visible = false;
this.colToPorductPage.Width = 62;
//
// colToDraftPage
//
this.colToDraftPage.HeaderText = "访问草稿页";
this.colToDraftPage.Name = "colToDraftPage";
this.colToDraftPage.ReadOnly = true;
this.colToDraftPage.Visible = false;
this.colToDraftPage.Width = 38;
//
// dgvSelectProduct
//
this.dgvSelectProduct.AllowUserToAddRows = false;
this.dgvSelectProduct.AllowUserToDeleteRows = false;
dataGridViewCellStyle3.BackColor = System.Drawing.Color.WhiteSmoke;
this.dgvSelectProduct.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle3;
this.dgvSelectProduct.AutoRowNumber = true;
this.dgvSelectProduct.BackgroundColor = System.Drawing.Color.White;
this.dgvSelectProduct.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
dataGridViewCellStyle4.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
dataGridViewCellStyle4.BackColor = System.Drawing.SystemColors.Control;
dataGridViewCellStyle4.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
dataGridViewCellStyle4.ForeColor = System.Drawing.SystemColors.WindowText;
dataGridViewCellStyle4.SelectionBackColor = System.Drawing.SystemColors.Highlight;
dataGridViewCellStyle4.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
dataGridViewCellStyle4.WrapMode = System.Windows.Forms.DataGridViewTriState.False;
this.dgvSelectProduct.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle4;
this.dgvSelectProduct.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
this.dgvSelectProduct.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
this.colSelect,
@@ -1653,8 +1791,8 @@
//
// colSupplierName
//
dataGridViewCellStyle3.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
this.colSupplierName.DefaultCellStyle = dataGridViewCellStyle3;
dataGridViewCellStyle5.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
this.colSupplierName.DefaultCellStyle = dataGridViewCellStyle5;
this.colSupplierName.HeaderText = "店铺名称";
this.colSupplierName.Name = "colSupplierName";
this.colSupplierName.ReadOnly = true;
@@ -1734,8 +1872,8 @@
//
// colProductName
//
dataGridViewCellStyle4.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
this.colProductName.DefaultCellStyle = dataGridViewCellStyle4;
dataGridViewCellStyle6.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
this.colProductName.DefaultCellStyle = dataGridViewCellStyle6;
this.colProductName.HeaderText = "商品标题";
this.colProductName.Name = "colProductName";
this.colProductName.ReadOnly = true;
@@ -1743,8 +1881,8 @@
//
// colProductCat
//
dataGridViewCellStyle5.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
this.colProductCat.DefaultCellStyle = dataGridViewCellStyle5;
dataGridViewCellStyle7.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
this.colProductCat.DefaultCellStyle = dataGridViewCellStyle7;
this.colProductCat.HeaderText = "商品类目";
this.colProductCat.Name = "colProductCat";
this.colProductCat.ReadOnly = true;
@@ -1775,8 +1913,8 @@
//
// colAddTime
//
dataGridViewCellStyle6.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
this.colAddTime.DefaultCellStyle = dataGridViewCellStyle6;
dataGridViewCellStyle8.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
this.colAddTime.DefaultCellStyle = dataGridViewCellStyle8;
this.colAddTime.HeaderText = "认领时间";
this.colAddTime.Name = "colAddTime";
this.colAddTime.ReadOnly = true;
@@ -1784,8 +1922,8 @@
//
// colMdyTime
//
dataGridViewCellStyle7.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
this.colMdyTime.DefaultCellStyle = dataGridViewCellStyle7;
dataGridViewCellStyle9.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
this.colMdyTime.DefaultCellStyle = dataGridViewCellStyle9;
this.colMdyTime.HeaderText = "上传时间";
this.colMdyTime.Name = "colMdyTime";
this.colMdyTime.ReadOnly = true;
@@ -1800,8 +1938,8 @@
//
// colSubSaNick
//
dataGridViewCellStyle8.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
this.colSubSaNick.DefaultCellStyle = dataGridViewCellStyle8;
dataGridViewCellStyle10.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
this.colSubSaNick.DefaultCellStyle = dataGridViewCellStyle10;
this.colSubSaNick.HeaderText = "二级超管";
this.colSubSaNick.Name = "colSubSaNick";
this.colSubSaNick.ReadOnly = true;
@@ -1816,8 +1954,8 @@
//
// colNotes
//
dataGridViewCellStyle9.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
this.colNotes.DefaultCellStyle = dataGridViewCellStyle9;
dataGridViewCellStyle11.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
this.colNotes.DefaultCellStyle = dataGridViewCellStyle11;
this.colNotes.HeaderText = "备注";
this.colNotes.Name = "colNotes";
this.colNotes.ReadOnly = true;
@@ -1914,6 +2052,8 @@
this.pnlError.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.pbLoading)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.numSeconds)).EndInit();
this.panel2.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.dgvMapDraftIds)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.dgvSelectProduct)).EndInit();
this.ResumeLayout(false);
@@ -2039,5 +2179,14 @@
private DevComponents.DotNetBar.PanelEx btnForceEnable;
private System.Windows.Forms.NumericUpDown numMaxWaitSecond;
private System.Windows.Forms.Label label22;
private System.Windows.Forms.Panel panel2;
private DevComponents.DotNetBar.PanelEx panelEx1;
private UserComponent.DataGridViewEx dgvMapDraftIds;
private System.Windows.Forms.DataGridViewCheckBoxColumn dataGridViewCheckBoxColumn1;
private System.Windows.Forms.DataGridViewTextBoxColumn colMapId;
private System.Windows.Forms.DataGridViewTextBoxColumn colMapShopId;
private System.Windows.Forms.DataGridViewLinkColumn colMapDraftId;
private System.Windows.Forms.DataGridViewLinkColumn colToPorductPage;
private System.Windows.Forms.DataGridViewLinkColumn colToDraftPage;
}
}
@@ -479,35 +479,72 @@ namespace TemuKJD.KJDForms.ProductSelectForms
case "草稿箱Id":
if (!string.IsNullOrEmpty(draftId))
{
if (!IsClientJit)
{
var shop = GetShop(shopId);
AdminShopLoginForm adminLoginForm = new AdminShopLoginForm(shop);
//adminLoginForm.InitUrl = "https://seller.kuajingmaihuo.com/goods/product-create/product-edit?productDraftId=" +
adminLoginForm.InitUrl = "https://agentseller.temu.com/goods/edit?productDraftId=" +
draftId + "&from=productDraftList";
adminLoginForm.openType = EnumOpenType.manage;
adminLoginForm.WindowState = FormWindowState.Maximized;
adminLoginForm.ShowDialog();
}
bool flag = true;
// 查看map映射列表
//return;
//var url = BaseClass.BuildObjString("product/get_select_prod_db_id_map_draft_id_list");
//var data = UserLogin.GetSignaturex() + "&select_db_id=" + dbId;
//if (IsClientJit)
// data += "&is_client_jit=true";
var url = BaseClass.BuildObjString("product/get_select_prod_db_id_map_draft_id_list");
var data = UserLogin.GetSignaturex() + "&select_db_id=" + dbId;
if (IsClientJit)
data += "&is_client_jit=true";
//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"))
//{
//}
//else
//{
//}
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"))
{
}
else
{
try
{
var jArr = JObject.Parse(html)["data"];
var dbIdMapSpuIdLst = JsonHelper.DeserializeJsonToList<DBProdDbIdMapProductIdInfo>(jArr.ToString());
this.dgvMapDraftIds.Rows.Clear();
if (dbIdMapSpuIdLst.Count > 0)
{
flag = false;
foreach (var item in dbIdMapSpuIdLst)
{
this.dgvMapDraftIds.Rows.Add(
false,
item.product_select_db_id,
item.shop_id,
item.product_id
);
}
panel2.Visible = true;
}
}
catch (Exception ex)
{
BaseMsgForm.ShowError("获取商品Id列表失败 " + ex.Message);
}
}
if (flag)
{
if (!IsClientJit)
{
var shop = GetShop(shopId);
AdminShopLoginForm adminLoginForm = new AdminShopLoginForm(shop);
//adminLoginForm.InitUrl = "https://seller.kuajingmaihuo.com/goods/product-create/product-edit?productDraftId=" +
adminLoginForm.InitUrl = "https://agentseller.temu.com/goods/edit?productDraftId=" +
draftId + "&from=productDraftList";
adminLoginForm.openType = EnumOpenType.manage;
adminLoginForm.WindowState = FormWindowState.Maximized;
adminLoginForm.ShowDialog();
}
else
{
var shop = GetShop(shopId);
ShopLoginForm loginForm = new ShopLoginForm(shop);
//adminLoginForm.InitUrl = "https://seller.kuajingmaihuo.com/goods/product-create/product-edit?productDraftId=" +
loginForm.InitUrl = "https://agentseller.temu.com/goods/edit?productDraftId=" +
draftId + "&from=productDraftList";
loginForm.openType = EnumOpenType.manage;
loginForm.WindowState = FormWindowState.Maximized;
loginForm.ShowDialog();
}
}
}
break;
case "进店":
@@ -3585,5 +3622,50 @@ Content-Disposition: form-data; name=""sign""
{
this.timeOutSeconds = numMaxWaitSecond.Value.ParseToInt();
}
private void btnCloseDgvMapDraftIds_Click(object sender, EventArgs e)
{
panel2.Visible = false;
}
private void dgvMapDraftIds_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
if (e.ColumnIndex < 0 || e.RowIndex < 0)
return;
string headerText = dgvMapDraftIds.Columns[e.ColumnIndex].HeaderText;
var shopId = dgvMapDraftIds.Rows[e.RowIndex].Cells["colMapShopId"].Value.ParseToString();
var draftId = dgvMapDraftIds.Rows[e.RowIndex].Cells["colMapDraftId"].Value.ParseToString();
switch (headerText)
{
case "已上传商品ID":
{
var shop = GetShop(shopId);
if (!IsClientJit)
{
AdminShopLoginForm adminLoginForm = new AdminShopLoginForm(shop);
//adminLoginForm.InitUrl = "https://seller.kuajingmaihuo.com/goods/product-create/product-edit?productDraftId=" +
adminLoginForm.InitUrl = "https://agentseller.temu.com/goods/edit?productDraftId=" +
draftId + "&from=productDraftList";
adminLoginForm.openType = EnumOpenType.manage;
adminLoginForm.WindowState = FormWindowState.Maximized;
adminLoginForm.ShowDialog();
}
else
{
ShopLoginForm loginForm = new ShopLoginForm(shop);
//adminLoginForm.InitUrl = "https://seller.kuajingmaihuo.com/goods/product-create/product-edit?productDraftId=" +
loginForm.InitUrl = "https://agentseller.temu.com/goods/edit?productDraftId=" +
draftId + "&from=productDraftList";
loginForm.openType = EnumOpenType.manage;
loginForm.WindowState = FormWindowState.Maximized;
loginForm.ShowDialog();
}
}
break;
default:
break;
}
}
}
}
@@ -117,6 +117,24 @@
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="dataGridViewCheckBoxColumn1.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colMapId.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colMapShopId.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colMapDraftId.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colToPorductPage.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colToDraftPage.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colSelect.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
@@ -225,11 +225,7 @@ namespace TemuKJD.KJDForms.SalesCenterForms
string.Empty
);
row = dgvShop.Rows[id];
//row.Cells["colLoginStatus"].Style.ForeColor = canUse ? Color.Green : Color.Red;
(row.Cells["colLoginStatus"] as DataGridViewLinkCell).Style.ForeColor = canUse ? Color.Green : Color.Red;
(row.Cells["colLoginStatus"] as DataGridViewLinkCell).LinkColor = canUse ? Color.Green : Color.Red;
(row.Cells["colLoginStatus"] as DataGridViewLinkCell).ActiveLinkColor = canUse ? Color.LightGreen : Color.OrangeRed;
(row.Cells["colLoginStatus"] as DataGridViewLinkCell).VisitedLinkColor = canUse ? Color.DarkGreen : Color.DarkRed;
DisplayLoginStatus(row, canUse);
}
else
{
@@ -238,12 +234,8 @@ namespace TemuKJD.KJDForms.SalesCenterForms
row.Cells["colShopName"].Value = shopEntity.ShopAccount;
row.Cells["colShopNotes"].Value = shopEntity.Notes;
row.Cells["colLoginStatus"].Value = canUse ? "在线" : "掉线";
//row.Cells["colLoginStatus"].Style.ForeColor = canUse ? Color.Green : Color.Red;
(row.Cells["colLoginStatus"] as DataGridViewLinkCell).Style.ForeColor = canUse ? Color.Green : Color.Red;
(row.Cells["colLoginStatus"] as DataGridViewLinkCell).LinkColor = canUse ? Color.Green : Color.Red;
(row.Cells["colLoginStatus"] as DataGridViewLinkCell).ActiveLinkColor = canUse ? Color.LightGreen : Color.OrangeRed;
(row.Cells["colLoginStatus"] as DataGridViewLinkCell).VisitedLinkColor = canUse ? Color.DarkGreen : Color.DarkRed;
row.Cells["colCanUse"].Value = canUse;
DisplayLoginStatus(row, canUse);
}
if (soloActivityShop != null && row != null)
{
@@ -260,6 +252,14 @@ namespace TemuKJD.KJDForms.SalesCenterForms
}
}
private void DisplayLoginStatus(DataGridViewRow row, bool canUse)
{
(row.Cells["colLoginStatus"] as DataGridViewLinkCell).Style.ForeColor = canUse ? Color.Green : Color.Red;
(row.Cells["colLoginStatus"] as DataGridViewLinkCell).LinkColor = canUse ? Color.Green : Color.Red;
(row.Cells["colLoginStatus"] as DataGridViewLinkCell).ActiveLinkColor = canUse ? Color.LightGreen : Color.OrangeRed;
(row.Cells["colLoginStatus"] as DataGridViewLinkCell).VisitedLinkColor = canUse ? Color.DarkGreen : Color.DarkRed;
}
private void dgvShop_CellClick(object sender, DataGridViewCellEventArgs e)
{
if (e.ColumnIndex < 0 || e.RowIndex < 0)
@@ -308,10 +308,24 @@ namespace TemuKJD.KJDForms.SalesCenterForms
}
break;
case "colLoginStatus":
ShopLoginForm shopLoginForm = new ShopLoginForm(shop);
shopLoginForm.openType = EnumOpenType.login;
shopLoginForm.ShowDialog();
RefreshShop();
{
ShopListForm.Instance.CheckShopLogin(new ShopLoginInfo[] { shop }, false);
if (shop.LoginStatus2 == "国际版在线")
{
ShopLoginForm adminLoginForm = new ShopLoginForm(shop);
adminLoginForm.openType = EnumOpenType.manage;
adminLoginForm.WindowState = FormWindowState.Maximized;
adminLoginForm.InitUrl = "https://agentseller.temu.com";
adminLoginForm.Show();
}
else
{
ShopLoginForm shopLoginForm = new ShopLoginForm(shop);
shopLoginForm.openType = EnumOpenType.login;
shopLoginForm.ShowDialog();
RefreshShop();
}
}
break;
}
}
@@ -444,8 +458,9 @@ namespace TemuKJD.KJDForms.SalesCenterForms
foreach (var row in rows)
{
row.Cells["colMessage"].Value = "店铺掉线";
row.Cells["colLoginStatus"].Value = "国际版未登录";
row.Cells["colLoginStatus"].Value = "掉线";
row.Cells["colCanUse"].Value = false;
DisplayLoginStatus(row, false);
}
}));
errMsg = "店铺可能已掉线,指定的值含有无效的控制字符";
@@ -714,8 +729,9 @@ namespace TemuKJD.KJDForms.SalesCenterForms
foreach (var r in shopRows)
{
r.Cells["colMessage"].Value = "店铺掉线";
r.Cells["colLoginStatus"].Value = "国际版未登录";
r.Cells["colLoginStatus"].Value = "掉线";
r.Cells["colCanUse"].Value = false;
DisplayLoginStatus(r, false);
}
}));
continue;
@@ -1013,6 +1029,7 @@ namespace TemuKJD.KJDForms.SalesCenterForms
continue;
int tryCount = 0;
string searchScrollContext = "";
tryAgain:
Thread.Sleep(100 + Randomx.GetId(200));
if (chkNoSaleProd.Checked && noSaleProdIdLst.Count == 0)
@@ -1024,7 +1041,7 @@ namespace TemuKJD.KJDForms.SalesCenterForms
noSaleProdIdLst.Clear();
noSaleProdIdLst.Add(soloActivityProduct.productId.ToString());
}
var jsonRst = GetActivityMatch(shop, activity.activityType, activity.activityThematicId, string.Join(",", noSaleProdIdLst));
var jsonRst = GetActivityMatch(shop, activity.activityType, activity.activityThematicId, searchScrollContext, string.Join(", ", noSaleProdIdLst));
if (jsonRst.Contains("指定的值含有无效的控制字符") || jsonRst.Contains("login") || jsonRst.Contains("Login"))
{
@@ -1034,8 +1051,9 @@ namespace TemuKJD.KJDForms.SalesCenterForms
foreach (var r in shopRows)
{
r.Cells["colMessage"].Value = "店铺掉线";
r.Cells["colLoginStatus"].Value = "国际版未登录";
r.Cells["colLoginStatus"].Value = "掉线";
r.Cells["colCanUse"].Value = false;
DisplayLoginStatus(r, false);
}
}));
continue;
@@ -1072,7 +1090,19 @@ namespace TemuKJD.KJDForms.SalesCenterForms
}
catch (Exception ex) { BaseMsgForm.ShowError(ex.Message); }
if (jArr.Count() == 0)
int stillCount = BaseRegex.GetIntJson(ref jsonRst, "stillCount");
this.Invoke(new Action(() =>
{
this.statusBar.lblTaskStatus.Text = "正在报名活动商品... 剩余 " + stillCount + " 件";
}));
searchScrollContext = BaseRegex.GetStringJson(ref jsonRst, "searchScrollContext");
if (jArr.Count() == 0 && stillCount > 0 && tryCount < 5)
{
tryCount++;
goto tryAgain;
}
if (jArr.Count() == 0 && stillCount == 0)
{
if (soloActivityShop != null && soloActivityProduct != null)
{
@@ -1246,8 +1276,9 @@ namespace TemuKJD.KJDForms.SalesCenterForms
foreach (var row in rows)
{
row.Cells["colMessage"].Value = "店铺掉线";
row.Cells["colLoginStatus"].Value = "国际版未登录";
row.Cells["colLoginStatus"].Value = "掉线";
row.Cells["colCanUse"].Value = false;
DisplayLoginStatus(row, false);
}
}));
return false;
@@ -1282,21 +1313,26 @@ namespace TemuKJD.KJDForms.SalesCenterForms
/// <param name="thematicId"></param>
/// <param name="spuIds">多个用逗号隔开</param>
/// <returns></returns>
private string GetActivityMatch(ShopLoginInfo shop,int? activityType, long? thematicId, string spuIds="")
private string GetActivityMatch(ShopLoginInfo shop,int? activityType, long? thematicId, string searchScrollContext = "", string spuIds="")
{
string url = "https://agentseller.temu.com/api/kiana/gamblers/marketing/enroll/scroll/match";
string body;
body = "{\"activityType\":" + activityType;
if (thematicId != activityType)
body += ",\"activityThematicId\":" + thematicId;
body += ",\"rowCount\":50}";
body += ",\"rowCount\":50";
if (!string.IsNullOrWhiteSpace(searchScrollContext))
body += ",\"searchScrollContext\":\"" + searchScrollContext + "\"";
if (!string.IsNullOrWhiteSpace(spuIds))
{
body = "{\"activityType\":" + activityType;
if (thematicId != activityType)
body += ",\"activityThematicId\":" + thematicId;
body += ",\"rowCount\":50,\"productIds\":[" + spuIds + "],\"productSkcExtCodes\":[]}";
}
body += ",\"productIds\":[" + spuIds + "],\"productSkcExtCodes\":[]";
body += "}";
//if (!string.IsNullOrWhiteSpace(spuIds))
//{
// body = "{\"activityType\":" + activityType;
// if (thematicId != activityType)
// body += ",\"activityThematicId\":" + thematicId;
// body += ",\"rowCount\":50,\"productIds\":[" + spuIds + "],\"productSkcExtCodes\":[]}";
//}
string refere = "https://agentseller.temu.com/activity/marketing-activity/detail-new?type=" + activityType;
if (thematicId != activityType)
refere += "&thematicId=" + thematicId;
+7 -7
View File
@@ -70,11 +70,11 @@ namespace TemuKJD.PDDForms.AdminForms
this.lblName.Text = e.Node.Text;
// 如果是一级菜单,不做任何动作
if (e.Node.Parent == null) return;
new Thread(() =>
{
Thread.Sleep(200);
Invoke(new Action(() =>
{
//new Thread(() =>
//{
//Thread.Sleep(200);
//Invoke(new Action(() =>
//{
switch (e.Node.Name)
{
case "超级用户管理":
@@ -102,8 +102,8 @@ namespace TemuKJD.PDDForms.AdminForms
// SetForm(adminProductPriceCheckForm.Value);
// break;
}
}));
}).Start();
//}));
//}).Start();
}
/// <summary>
@@ -0,0 +1,638 @@
namespace TemuKJD.PDDForms.ProductSelectForms
{
partial class PDDDBProdEditDetailForm
{
/// <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(PDDDBProdEditDetailForm));
this.panel2 = new System.Windows.Forms.Panel();
this.splitContainer1 = new System.Windows.Forms.SplitContainer();
this.flowLayoutPanel3 = new System.Windows.Forms.FlowLayoutPanel();
this.pnlSpec1 = new System.Windows.Forms.Panel();
this.btnAddSpec1 = new DevComponents.DotNetBar.PanelEx();
this.label1 = new System.Windows.Forms.Label();
this.flowLayoutPanel1 = new System.Windows.Forms.FlowLayoutPanel();
this.ucPddSpecEdit1 = new TemuKJD.PDDForms.ProductSelectForms.UcPddSpecEdit();
this.pnlSpec2 = new System.Windows.Forms.Panel();
this.btnAddSpec2 = new DevComponents.DotNetBar.PanelEx();
this.label2 = new System.Windows.Forms.Label();
this.flowLayoutPanel2 = new System.Windows.Forms.FlowLayoutPanel();
this.ucPddSpecEdit2 = new TemuKJD.PDDForms.ProductSelectForms.UcPddSpecEdit();
this.pbLoading = new System.Windows.Forms.PictureBox();
this.label3 = new System.Windows.Forms.Label();
this.flowLayoutPanel4 = new System.Windows.Forms.FlowLayoutPanel();
this.cmbSpec1 = new TemuKJD.UserComponent.UcComboBoxMutiSelect();
this.cmbSpec2 = new TemuKJD.UserComponent.UcComboBoxMutiSelect();
this.panel3 = new System.Windows.Forms.Panel();
this.btnBatchSetValue = new DevComponents.DotNetBar.PanelEx();
this.textBox2 = new System.Windows.Forms.TextBox();
this.label6 = new System.Windows.Forms.Label();
this.txtPrice = new System.Windows.Forms.TextBox();
this.label5 = new System.Windows.Forms.Label();
this.textBox1 = new System.Windows.Forms.TextBox();
this.label4 = new System.Windows.Forms.Label();
this.dgvDbProduct = new TemuKJD.UserComponent.DataGridViewEx();
this.colSelect = new System.Windows.Forms.DataGridViewCheckBoxColumn();
this.colSpec1 = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colSpec2 = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colMultiPrice = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colPrice = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colSkuImgUrl = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colSkuImg = new System.Windows.Forms.DataGridViewImageColumn();
this.colSkuSn = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.btnCancel = new DevComponents.DotNetBar.PanelEx();
this.btnSave = new DevComponents.DotNetBar.PanelEx();
this.panel2.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit();
this.splitContainer1.Panel1.SuspendLayout();
this.splitContainer1.Panel2.SuspendLayout();
this.splitContainer1.SuspendLayout();
this.flowLayoutPanel3.SuspendLayout();
this.pnlSpec1.SuspendLayout();
this.flowLayoutPanel1.SuspendLayout();
this.pnlSpec2.SuspendLayout();
this.flowLayoutPanel2.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.pbLoading)).BeginInit();
this.flowLayoutPanel4.SuspendLayout();
this.panel3.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.dgvDbProduct)).BeginInit();
this.SuspendLayout();
//
// panel2
//
this.panel2.BackColor = System.Drawing.Color.White;
this.panel2.Controls.Add(this.splitContainer1);
this.panel2.Dock = System.Windows.Forms.DockStyle.Fill;
this.panel2.Location = new System.Drawing.Point(1, 33);
this.panel2.Name = "panel2";
this.panel2.Size = new System.Drawing.Size(1278, 666);
this.panel2.TabIndex = 1;
//
// splitContainer1
//
this.splitContainer1.Dock = System.Windows.Forms.DockStyle.Fill;
this.splitContainer1.FixedPanel = System.Windows.Forms.FixedPanel.Panel2;
this.splitContainer1.Location = new System.Drawing.Point(0, 0);
this.splitContainer1.Name = "splitContainer1";
this.splitContainer1.Orientation = System.Windows.Forms.Orientation.Horizontal;
//
// splitContainer1.Panel1
//
this.splitContainer1.Panel1.Controls.Add(this.flowLayoutPanel3);
//
// splitContainer1.Panel2
//
this.splitContainer1.Panel2.Controls.Add(this.btnCancel);
this.splitContainer1.Panel2.Controls.Add(this.btnSave);
this.splitContainer1.Size = new System.Drawing.Size(1278, 666);
this.splitContainer1.SplitterDistance = 630;
this.splitContainer1.TabIndex = 0;
//
// flowLayoutPanel3
//
this.flowLayoutPanel3.AutoScroll = true;
this.flowLayoutPanel3.Controls.Add(this.pnlSpec1);
this.flowLayoutPanel3.Controls.Add(this.flowLayoutPanel1);
this.flowLayoutPanel3.Controls.Add(this.pnlSpec2);
this.flowLayoutPanel3.Controls.Add(this.flowLayoutPanel2);
this.flowLayoutPanel3.Controls.Add(this.pbLoading);
this.flowLayoutPanel3.Controls.Add(this.label3);
this.flowLayoutPanel3.Controls.Add(this.flowLayoutPanel4);
this.flowLayoutPanel3.Controls.Add(this.dgvDbProduct);
this.flowLayoutPanel3.Dock = System.Windows.Forms.DockStyle.Fill;
this.flowLayoutPanel3.FlowDirection = System.Windows.Forms.FlowDirection.TopDown;
this.flowLayoutPanel3.Location = new System.Drawing.Point(0, 0);
this.flowLayoutPanel3.Name = "flowLayoutPanel3";
this.flowLayoutPanel3.Size = new System.Drawing.Size(1278, 630);
this.flowLayoutPanel3.TabIndex = 1;
this.flowLayoutPanel3.WrapContents = false;
//
// pnlSpec1
//
this.pnlSpec1.Controls.Add(this.btnAddSpec1);
this.pnlSpec1.Controls.Add(this.label1);
this.pnlSpec1.Location = new System.Drawing.Point(3, 3);
this.pnlSpec1.Name = "pnlSpec1";
this.pnlSpec1.Size = new System.Drawing.Size(204, 23);
this.pnlSpec1.TabIndex = 11;
//
// btnAddSpec1
//
this.btnAddSpec1.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
this.btnAddSpec1.Cursor = System.Windows.Forms.Cursors.Hand;
this.btnAddSpec1.DisabledBackColor = System.Drawing.Color.Empty;
this.btnAddSpec1.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnAddSpec1.Location = new System.Drawing.Point(51, 1);
this.btnAddSpec1.Name = "btnAddSpec1";
this.btnAddSpec1.Size = new System.Drawing.Size(51, 21);
this.btnAddSpec1.Style.Alignment = System.Drawing.StringAlignment.Center;
this.btnAddSpec1.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.btnAddSpec1.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.btnAddSpec1.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder;
this.btnAddSpec1.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash;
this.btnAddSpec1.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None;
this.btnAddSpec1.Style.ForeColor.Color = System.Drawing.Color.White;
this.btnAddSpec1.Style.GradientAngle = 90;
this.btnAddSpec1.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center;
this.btnAddSpec1.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255)))));
this.btnAddSpec1.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255)))));
this.btnAddSpec1.TabIndex = 1010;
this.btnAddSpec1.Tag = "";
this.btnAddSpec1.Text = "新增";
this.btnAddSpec1.Click += new System.EventHandler(this.btnAddSpec1_Click);
//
// label1
//
this.label1.AutoSize = true;
this.label1.Location = new System.Drawing.Point(3, 3);
this.label1.Margin = new System.Windows.Forms.Padding(5, 5, 3, 3);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(51, 17);
this.label1.TabIndex = 0;
this.label1.Text = "属性1:";
//
// flowLayoutPanel1
//
this.flowLayoutPanel1.Anchor = System.Windows.Forms.AnchorStyles.Top;
this.flowLayoutPanel1.AutoSize = true;
this.flowLayoutPanel1.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
this.flowLayoutPanel1.Controls.Add(this.ucPddSpecEdit1);
this.flowLayoutPanel1.Location = new System.Drawing.Point(4, 29);
this.flowLayoutPanel1.Margin = new System.Windows.Forms.Padding(3, 0, 3, 3);
this.flowLayoutPanel1.MaximumSize = new System.Drawing.Size(1240, 9999);
this.flowLayoutPanel1.MinimumSize = new System.Drawing.Size(1240, 10);
this.flowLayoutPanel1.Name = "flowLayoutPanel1";
this.flowLayoutPanel1.Size = new System.Drawing.Size(1240, 55);
this.flowLayoutPanel1.TabIndex = 0;
this.flowLayoutPanel1.Tag = "";
//
// ucPddSpecEdit1
//
this.ucPddSpecEdit1.AutoSize = true;
this.ucPddSpecEdit1.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
this.ucPddSpecEdit1.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.ucPddSpecEdit1.Location = new System.Drawing.Point(3, 3);
this.ucPddSpecEdit1.Name = "ucPddSpecEdit1";
this.ucPddSpecEdit1.Size = new System.Drawing.Size(295, 49);
this.ucPddSpecEdit1.TabIndex = 0;
//
// pnlSpec2
//
this.pnlSpec2.Controls.Add(this.btnAddSpec2);
this.pnlSpec2.Controls.Add(this.label2);
this.pnlSpec2.Location = new System.Drawing.Point(3, 90);
this.pnlSpec2.Name = "pnlSpec2";
this.pnlSpec2.Size = new System.Drawing.Size(204, 23);
this.pnlSpec2.TabIndex = 12;
//
// btnAddSpec2
//
this.btnAddSpec2.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
this.btnAddSpec2.Cursor = System.Windows.Forms.Cursors.Hand;
this.btnAddSpec2.DisabledBackColor = System.Drawing.Color.Empty;
this.btnAddSpec2.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnAddSpec2.Location = new System.Drawing.Point(51, 1);
this.btnAddSpec2.Name = "btnAddSpec2";
this.btnAddSpec2.Size = new System.Drawing.Size(51, 21);
this.btnAddSpec2.Style.Alignment = System.Drawing.StringAlignment.Center;
this.btnAddSpec2.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.btnAddSpec2.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.btnAddSpec2.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder;
this.btnAddSpec2.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash;
this.btnAddSpec2.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None;
this.btnAddSpec2.Style.ForeColor.Color = System.Drawing.Color.White;
this.btnAddSpec2.Style.GradientAngle = 90;
this.btnAddSpec2.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center;
this.btnAddSpec2.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255)))));
this.btnAddSpec2.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255)))));
this.btnAddSpec2.TabIndex = 1014;
this.btnAddSpec2.Tag = "";
this.btnAddSpec2.Text = "新增";
//
// label2
//
this.label2.AutoSize = true;
this.label2.Location = new System.Drawing.Point(3, 3);
this.label2.Margin = new System.Windows.Forms.Padding(5, 5, 3, 3);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(51, 17);
this.label2.TabIndex = 1;
this.label2.Text = "属性2:";
//
// flowLayoutPanel2
//
this.flowLayoutPanel2.Anchor = System.Windows.Forms.AnchorStyles.Top;
this.flowLayoutPanel2.AutoSize = true;
this.flowLayoutPanel2.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
this.flowLayoutPanel2.Controls.Add(this.ucPddSpecEdit2);
this.flowLayoutPanel2.Location = new System.Drawing.Point(4, 116);
this.flowLayoutPanel2.Margin = new System.Windows.Forms.Padding(3, 0, 3, 3);
this.flowLayoutPanel2.MaximumSize = new System.Drawing.Size(1240, 9999);
this.flowLayoutPanel2.MinimumSize = new System.Drawing.Size(1240, 10);
this.flowLayoutPanel2.Name = "flowLayoutPanel2";
this.flowLayoutPanel2.Size = new System.Drawing.Size(1240, 55);
this.flowLayoutPanel2.TabIndex = 1;
//
// ucPddSpecEdit2
//
this.ucPddSpecEdit2.AutoSize = true;
this.ucPddSpecEdit2.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
this.ucPddSpecEdit2.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.ucPddSpecEdit2.Location = new System.Drawing.Point(3, 3);
this.ucPddSpecEdit2.Name = "ucPddSpecEdit2";
this.ucPddSpecEdit2.Size = new System.Drawing.Size(295, 49);
this.ucPddSpecEdit2.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(599, 177);
this.pbLoading.Name = "pbLoading";
this.pbLoading.Size = new System.Drawing.Size(50, 50);
this.pbLoading.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage;
this.pbLoading.TabIndex = 8;
this.pbLoading.TabStop = false;
this.pbLoading.Visible = false;
//
// label3
//
this.label3.AutoSize = true;
this.label3.Location = new System.Drawing.Point(5, 235);
this.label3.Margin = new System.Windows.Forms.Padding(5, 5, 3, 3);
this.label3.Name = "label3";
this.label3.Size = new System.Drawing.Size(68, 17);
this.label3.TabIndex = 9;
this.label3.Text = "SKU列表:";
//
// flowLayoutPanel4
//
this.flowLayoutPanel4.Controls.Add(this.cmbSpec1);
this.flowLayoutPanel4.Controls.Add(this.cmbSpec2);
this.flowLayoutPanel4.Controls.Add(this.panel3);
this.flowLayoutPanel4.Location = new System.Drawing.Point(3, 258);
this.flowLayoutPanel4.Name = "flowLayoutPanel4";
this.flowLayoutPanel4.Size = new System.Drawing.Size(1242, 31);
this.flowLayoutPanel4.TabIndex = 13;
//
// cmbSpec1
//
this.cmbSpec1.DefaultText = "全部";
this.cmbSpec1.FormattingEnabled = true;
this.cmbSpec1.Location = new System.Drawing.Point(3, 3);
this.cmbSpec1.Name = "cmbSpec1";
this.cmbSpec1.Size = new System.Drawing.Size(121, 25);
this.cmbSpec1.TabIndex = 1;
this.cmbSpec1.Text = "全部";
//
// cmbSpec2
//
this.cmbSpec2.DefaultText = "全部";
this.cmbSpec2.FormattingEnabled = true;
this.cmbSpec2.Location = new System.Drawing.Point(132, 3);
this.cmbSpec2.Margin = new System.Windows.Forms.Padding(5, 3, 3, 3);
this.cmbSpec2.Name = "cmbSpec2";
this.cmbSpec2.Size = new System.Drawing.Size(121, 25);
this.cmbSpec2.TabIndex = 2;
this.cmbSpec2.Text = "全部";
//
// panel3
//
this.panel3.Anchor = System.Windows.Forms.AnchorStyles.Left;
this.panel3.Controls.Add(this.btnBatchSetValue);
this.panel3.Controls.Add(this.textBox2);
this.panel3.Controls.Add(this.label6);
this.panel3.Controls.Add(this.txtPrice);
this.panel3.Controls.Add(this.label5);
this.panel3.Controls.Add(this.textBox1);
this.panel3.Controls.Add(this.label4);
this.panel3.Location = new System.Drawing.Point(256, 2);
this.panel3.Margin = new System.Windows.Forms.Padding(0, 0, 3, 0);
this.panel3.MinimumSize = new System.Drawing.Size(10, 10);
this.panel3.Name = "panel3";
this.panel3.Size = new System.Drawing.Size(458, 27);
this.panel3.TabIndex = 10;
//
// btnBatchSetValue
//
this.btnBatchSetValue.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.btnBatchSetValue.CanvasColor = System.Drawing.SystemColors.Control;
this.btnBatchSetValue.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
this.btnBatchSetValue.DisabledBackColor = System.Drawing.Color.Empty;
this.btnBatchSetValue.Location = new System.Drawing.Point(-320, 2);
this.btnBatchSetValue.Margin = new System.Windows.Forms.Padding(4, 2, 2, 2);
this.btnBatchSetValue.Name = "btnBatchSetValue";
this.btnBatchSetValue.Size = new System.Drawing.Size(71, 23);
this.btnBatchSetValue.Style.Alignment = System.Drawing.StringAlignment.Center;
this.btnBatchSetValue.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255)))));
this.btnBatchSetValue.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255)))));
this.btnBatchSetValue.Style.Border = DevComponents.DotNetBar.eBorderType.SingleLine;
this.btnBatchSetValue.Style.BorderColor.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.btnBatchSetValue.Style.ForeColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText;
this.btnBatchSetValue.Style.GradientAngle = 90;
this.btnBatchSetValue.StyleMouseDown.Alignment = System.Drawing.StringAlignment.Center;
this.btnBatchSetValue.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center;
this.btnBatchSetValue.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.btnBatchSetValue.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.btnBatchSetValue.StyleMouseOver.ForeColor.Color = System.Drawing.Color.White;
this.btnBatchSetValue.TabIndex = 616;
this.btnBatchSetValue.Text = "批量填写";
this.btnBatchSetValue.Click += new System.EventHandler(this.btnBatchSetValue_Click);
//
// textBox2
//
this.textBox2.Location = new System.Drawing.Point(294, 2);
this.textBox2.Name = "textBox2";
this.textBox2.Size = new System.Drawing.Size(158, 23);
this.textBox2.TabIndex = 7;
//
// label6
//
this.label6.AutoSize = true;
this.label6.Location = new System.Drawing.Point(236, 5);
this.label6.Margin = new System.Windows.Forms.Padding(5, 5, 3, 3);
this.label6.Name = "label6";
this.label6.Size = new System.Drawing.Size(68, 17);
this.label6.TabIndex = 8;
this.label6.Text = "规格编码:";
//
// txtPrice
//
this.txtPrice.Location = new System.Drawing.Point(165, 2);
this.txtPrice.Name = "txtPrice";
this.txtPrice.Size = new System.Drawing.Size(62, 23);
this.txtPrice.TabIndex = 5;
//
// label5
//
this.label5.AutoSize = true;
this.label5.Location = new System.Drawing.Point(119, 5);
this.label5.Margin = new System.Windows.Forms.Padding(5, 5, 3, 3);
this.label5.Name = "label5";
this.label5.Size = new System.Drawing.Size(56, 17);
this.label5.TabIndex = 6;
this.label5.Text = "单买价:";
//
// textBox1
//
this.textBox1.Location = new System.Drawing.Point(49, 2);
this.textBox1.Name = "textBox1";
this.textBox1.Size = new System.Drawing.Size(62, 23);
this.textBox1.TabIndex = 3;
//
// label4
//
this.label4.AutoSize = true;
this.label4.Location = new System.Drawing.Point(3, 5);
this.label4.Margin = new System.Windows.Forms.Padding(5, 5, 3, 3);
this.label4.Name = "label4";
this.label4.Size = new System.Drawing.Size(56, 17);
this.label4.TabIndex = 4;
this.label4.Text = "拼单价:";
//
// dgvDbProduct
//
this.dgvDbProduct.AllowUserToAddRows = false;
this.dgvDbProduct.AllowUserToDeleteRows = false;
dataGridViewCellStyle1.BackColor = System.Drawing.Color.WhiteSmoke;
this.dgvDbProduct.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle1;
this.dgvDbProduct.Anchor = System.Windows.Forms.AnchorStyles.Top;
this.dgvDbProduct.AutoRowNumber = true;
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.colSpec1,
this.colSpec2,
this.colMultiPrice,
this.colPrice,
this.colSkuImgUrl,
this.colSkuImg,
this.colSkuSn});
this.dgvDbProduct.Location = new System.Drawing.Point(5, 295);
this.dgvDbProduct.Margin = new System.Windows.Forms.Padding(5, 3, 3, 3);
this.dgvDbProduct.Name = "dgvDbProduct";
this.dgvDbProduct.RowTemplate.Height = 23;
this.dgvDbProduct.Size = new System.Drawing.Size(1240, 28);
this.dgvDbProduct.TabIndex = 7;
//
// colSelect
//
this.colSelect.FillWeight = 26F;
this.colSelect.HeaderText = "选";
this.colSelect.Name = "colSelect";
this.colSelect.Resizable = System.Windows.Forms.DataGridViewTriState.True;
this.colSelect.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic;
this.colSelect.Visible = false;
//
// colSpec1
//
this.colSpec1.HeaderText = "属性1";
this.colSpec1.Name = "colSpec1";
this.colSpec1.ReadOnly = true;
//
// colSpec2
//
this.colSpec2.HeaderText = "属性2";
this.colSpec2.Name = "colSpec2";
this.colSpec2.ReadOnly = true;
//
// colMultiPrice
//
dataGridViewCellStyle3.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
this.colMultiPrice.DefaultCellStyle = dataGridViewCellStyle3;
this.colMultiPrice.HeaderText = "拼单价";
this.colMultiPrice.Name = "colMultiPrice";
this.colMultiPrice.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
//
// colPrice
//
this.colPrice.HeaderText = "单买价";
this.colPrice.Name = "colPrice";
this.colPrice.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
//
// colSkuImgUrl
//
this.colSkuImgUrl.HeaderText = "sku预览图路径";
this.colSkuImgUrl.Name = "colSkuImgUrl";
this.colSkuImgUrl.ReadOnly = true;
this.colSkuImgUrl.Visible = false;
//
// colSkuImg
//
this.colSkuImg.FillWeight = 50F;
this.colSkuImg.HeaderText = "sku预览图";
this.colSkuImg.ImageLayout = System.Windows.Forms.DataGridViewImageCellLayout.Zoom;
this.colSkuImg.Name = "colSkuImg";
this.colSkuImg.ReadOnly = true;
this.colSkuImg.Resizable = System.Windows.Forms.DataGridViewTriState.True;
//
// colSkuSn
//
this.colSkuSn.HeaderText = "规格编码";
this.colSkuSn.Name = "colSkuSn";
this.colSkuSn.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
//
// btnCancel
//
this.btnCancel.CanvasColor = System.Drawing.SystemColors.Control;
this.btnCancel.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
this.btnCancel.DisabledBackColor = System.Drawing.Color.Empty;
this.btnCancel.Location = new System.Drawing.Point(1167, 4);
this.btnCancel.Name = "btnCancel";
this.btnCancel.Size = new System.Drawing.Size(45, 23);
this.btnCancel.Style.Alignment = System.Drawing.StringAlignment.Center;
this.btnCancel.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255)))));
this.btnCancel.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255)))));
this.btnCancel.Style.Border = DevComponents.DotNetBar.eBorderType.SingleLine;
this.btnCancel.Style.BorderColor.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.btnCancel.Style.ForeColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText;
this.btnCancel.Style.GradientAngle = 90;
this.btnCancel.StyleMouseDown.Alignment = System.Drawing.StringAlignment.Center;
this.btnCancel.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center;
this.btnCancel.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.btnCancel.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.btnCancel.StyleMouseOver.ForeColor.Color = System.Drawing.Color.White;
this.btnCancel.TabIndex = 1007;
this.btnCancel.Text = "取消";
this.btnCancel.Click += new System.EventHandler(this.btnCancel_Click);
//
// btnSave
//
this.btnSave.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
this.btnSave.Cursor = System.Windows.Forms.Cursors.Hand;
this.btnSave.DisabledBackColor = System.Drawing.Color.Empty;
this.btnSave.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnSave.Location = new System.Drawing.Point(1214, 4);
this.btnSave.Name = "btnSave";
this.btnSave.Size = new System.Drawing.Size(57, 23);
this.btnSave.Style.Alignment = System.Drawing.StringAlignment.Center;
this.btnSave.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.btnSave.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.btnSave.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder;
this.btnSave.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash;
this.btnSave.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None;
this.btnSave.Style.ForeColor.Color = System.Drawing.Color.White;
this.btnSave.Style.GradientAngle = 90;
this.btnSave.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center;
this.btnSave.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255)))));
this.btnSave.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255)))));
this.btnSave.TabIndex = 1006;
this.btnSave.Tag = "";
this.btnSave.Text = "保存";
//
// PDDDBProdEditDetailForm
//
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
this.ClientSize = new System.Drawing.Size(1280, 700);
this.Controls.Add(this.panel2);
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 = "PDDDBProdEditDetailForm";
this.Text = "编辑商品SKU详情";
this.TitleText = "编辑商品SKU详情";
this.Load += new System.EventHandler(this.PDDDBProdEditDetailForm_Load);
this.Controls.SetChildIndex(this.panel2, 0);
this.panel2.ResumeLayout(false);
this.splitContainer1.Panel1.ResumeLayout(false);
this.splitContainer1.Panel2.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).EndInit();
this.splitContainer1.ResumeLayout(false);
this.flowLayoutPanel3.ResumeLayout(false);
this.flowLayoutPanel3.PerformLayout();
this.pnlSpec1.ResumeLayout(false);
this.pnlSpec1.PerformLayout();
this.flowLayoutPanel1.ResumeLayout(false);
this.flowLayoutPanel1.PerformLayout();
this.pnlSpec2.ResumeLayout(false);
this.pnlSpec2.PerformLayout();
this.flowLayoutPanel2.ResumeLayout(false);
this.flowLayoutPanel2.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.pbLoading)).EndInit();
this.flowLayoutPanel4.ResumeLayout(false);
this.panel3.ResumeLayout(false);
this.panel3.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.dgvDbProduct)).EndInit();
this.ResumeLayout(false);
}
#endregion
private System.Windows.Forms.Panel panel2;
private System.Windows.Forms.SplitContainer splitContainer1;
private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel1;
private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel2;
private DevComponents.DotNetBar.PanelEx btnCancel;
private DevComponents.DotNetBar.PanelEx btnSave;
private UserComponent.DataGridViewEx dgvDbProduct;
private System.Windows.Forms.PictureBox pbLoading;
private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel3;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.Label label2;
private System.Windows.Forms.Label label3;
private System.Windows.Forms.DataGridViewCheckBoxColumn colSelect;
private System.Windows.Forms.DataGridViewTextBoxColumn colSpec1;
private System.Windows.Forms.DataGridViewTextBoxColumn colSpec2;
private System.Windows.Forms.DataGridViewTextBoxColumn colMultiPrice;
private System.Windows.Forms.DataGridViewTextBoxColumn colPrice;
private System.Windows.Forms.DataGridViewTextBoxColumn colSkuImgUrl;
private System.Windows.Forms.DataGridViewImageColumn colSkuImg;
private System.Windows.Forms.DataGridViewTextBoxColumn colSkuSn;
private System.Windows.Forms.Panel panel3;
private UserComponent.UcComboBoxMutiSelect cmbSpec1;
private UserComponent.UcComboBoxMutiSelect cmbSpec2;
private System.Windows.Forms.TextBox textBox2;
private System.Windows.Forms.Label label6;
private System.Windows.Forms.TextBox txtPrice;
private System.Windows.Forms.Label label5;
private System.Windows.Forms.TextBox textBox1;
private System.Windows.Forms.Label label4;
private DevComponents.DotNetBar.PanelEx btnBatchSetValue;
private UcPddSpecEdit ucPddSpecEdit1;
private UcPddSpecEdit ucPddSpecEdit2;
private System.Windows.Forms.Panel pnlSpec1;
private DevComponents.DotNetBar.PanelEx btnAddSpec1;
private System.Windows.Forms.Panel pnlSpec2;
private DevComponents.DotNetBar.PanelEx btnAddSpec2;
private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel4;
}
}
@@ -0,0 +1,414 @@
using AllBase;
using AllBase.Model.Param.PDDProdParam;
using AllBase.Model.Result;
using AllBase.Model.Result.PDDResult;
using DevComponents.DotNetBar;
using NaiBa.Util.Extension;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using TemuKJD.BaseForms;
using TemuKJD.Extension;
using TemuKJD.UserComponent;
namespace TemuKJD.PDDForms.ProductSelectForms
{
public partial class PDDDBProdEditDetailForm : LRBaseForm
{
public KJDDBProduct DbProd { get; set; }
public KJDDBProduct DbProdDetail { get; set; }
List<sku_edit_item> lstSkuEditItem { get; set; } = new List<sku_edit_item>();
sku_edit_item defaultSkuEditItem { get; set; }
int addSpecIndex1 = 1;
int addSpecIndex2 = 1;
public PDDDBProdEditDetailForm(KJDDBProduct dbProd)
{
InitializeComponent();
DbProd = dbProd;
}
private void PDDDBProdEditDetailForm_Load(object sender, EventArgs e)
{
this.ActiveControl = dgvDbProduct;
this.dgvDbProduct.AddImgColumn("colSkuImg", "colSkuImgUrl");
flowLayoutPanel1.Controls.Clear();
flowLayoutPanel2.Controls.Clear();
pbLoading.Visible = true;
Task.Run(() =>
{
if (DbProd != null)
DbProdDetail = PDDDBProdUserSelectForm.GetProductDetail(DbProd.id.ParseToString());
if (DbProdDetail == null)
return;
Invoke(new Action(() =>
{
if (!string.IsNullOrWhiteSpace(DbProdDetail.sku_edit_json))
{
lstSkuEditItem = JsonHelper.DeserializeJsonToList<sku_edit_item>(DbProdDetail.sku_edit_json);
}
else
{
var prodInfo = JsonHelper.DeserializeJsonToObject<PDDProductInfo>(DbProdDetail.product_json);
lstSkuEditItem = JsonHelper.DeserializeJsonToList<sku_edit_item>(JsonHelper.SerializeObject(prodInfo.detail.sku));
}
defaultSkuEditItem = lstSkuEditItem.FirstOrDefault();
if (defaultSkuEditItem == null)
defaultSkuEditItem = new sku_edit_item();
if (lstSkuEditItem.All(s => s.spec.Count < 2))
{
this.pnlSpec2.Visible = flowLayoutPanel2.Visible = cmbSpec2.Visible = false;
this.dgvDbProduct.Columns["colSpec2"].Visible = false;
}
flowLayoutPanel1.Tag = lstSkuEditItem.FirstOrDefault()?.spec?.FirstOrDefault();
flowLayoutPanel2.Tag = lstSkuEditItem.FirstOrDefault()?.spec?.LastOrDefault();
if (flowLayoutPanel2.Tag == flowLayoutPanel1.Tag)
flowLayoutPanel2.Tag = null;
this.cmbSpec1.Text = "全部" + lstSkuEditItem.FirstOrDefault()?.spec?.FirstOrDefault().parent_name;
this.cmbSpec1.DefaultText = "全部" + lstSkuEditItem.FirstOrDefault()?.spec?.FirstOrDefault().parent_name;
this.cmbSpec2.Text = "全部" + lstSkuEditItem.FirstOrDefault()?.spec?.LastOrDefault().parent_name;
this.cmbSpec2.DefaultText = "全部" + lstSkuEditItem.FirstOrDefault()?.spec?.LastOrDefault().parent_name;
if (cmbSpec2.Text == cmbSpec1.Text)
{
this.cmbSpec2.Text = "";
this.cmbSpec2.DefaultText = "";
}
foreach (var skuEditItem in lstSkuEditItem)
{
//第一组spec
if (skuEditItem.spec.Count > 0 && !flowLayoutPanel1.Controls.Cast<Control>().Any(c=>c.Name == skuEditItem.spec[0].spec_name))
{
AddSpec1(skuEditItem.spec[0]);
}
//第二组spec
if (skuEditItem.spec.Count > 1 && !flowLayoutPanel2.Controls.Cast<Control>().Any(c => c.Name == skuEditItem.spec[1].spec_name))
{
AddSpec2(skuEditItem.spec[1]);
}
//var rowId = this.dgvDbProduct.Rows.Add
//(
// false,
// skuEditItem.spec.Count > 0 ? skuEditItem.spec[0].spec_name : "",
// skuEditItem.spec.Count > 1 ? skuEditItem.spec[1].spec_name : "",
// skuEditItem.multi_price * 0.01m,
// skuEditItem.price * 0.01m,
// skuEditItem.thumb_url,
// DataGridViewExtension.defaultBitmap,
// skuEditItem.out_sku_sn
//);
//this.dgvDbProduct.Rows[rowId].Height = 60;
//this.dgvDbProduct.Height += 60;
//var skuParam = new sku_param()
//{
// id = skuEditItem.id,
// is_onsale = skuEditItem.is_onsale,
// limit_quantity = skuEditItem.limit_quantity,
// multi_price = skuEditItem.multi_price,
// out_sku_sn = skuEditItem.out_sku_sn,
// oversea_sku = skuEditItem.oversea_sku,
// price = skuEditItem.price,
// quantity_delta = skuEditItem.quantity_delta.ParseToInt(), // 商品数量
// shipment_limit_second_list = skuEditItem.shipment_limit_second_list,
// sku69_code = skuEditItem.sku69_code,
// sku_srv_templates = skuEditItem.sku_srv_templates.ParseToString(),
// spec = JsonHelper.DeserializeJsonToList<spec_param>(JsonHelper.SerializeObject(skuEditItem.spec)),
// thumb_url = skuEditItem.thumb_url,
// weight = skuEditItem.weight,
// length = skuEditItem.length,
// price_in_yuan = "", // 内部计算直接置空
// multi_price_in_yuan = "", // 内部计算直接置空
// pre_sale_time = skuEditItem.pre_sale_time,
// sku_id = skuEditItem.sku_id,
// thumb_url_file_id = skuEditItem.thumb_url_file_id,
//};
}
RefreshRows();
pbLoading.Visible = false;
}));
});
}
private void thumbImg_Click(object sender, EventArgs e)
{
}
private void TxtSpecName_TextChanged(object sender, EventArgs e)
{
var txt = sender as TextBox;
if (txt == null)
return;
var edit = txt.Tag as UcPddSpecEdit;
if (edit == null)
return;
var spec = edit.Tag as spec_item;
if (spec == null)
return;
edit.lblErr.Text = "";
edit.btnSave.Enabled = true;
if (string.IsNullOrWhiteSpace(edit.txtSpecName.Text))
{
edit.lblErr.Text = "请输入规格名称!";
edit.btnSave.Enabled = false;
return;
}
var flowLayoutPanel = flowLayoutPanel1;
if (edit.pictureBox1.Visible == false)
flowLayoutPanel = flowLayoutPanel2;
foreach (var control in flowLayoutPanel.Controls)
{
var loopEdit = control as UcPddSpecEdit;
if (loopEdit == null)
continue;
var loopSpec = loopEdit.Tag as spec_item;
if (loopSpec == null)
continue;
if (loopSpec != spec && edit.txtSpecName.Text.Trim() == loopSpec.spec_name)
{
edit.lblErr.Text = "规格名称重复!";
edit.btnSave.Enabled = false;
return;
}
}
}
private void btnSave_Click(object sender, EventArgs e)
{
var btn = sender as PanelEx;
if (btn == null)
return;
var edit = btn.Tag as UcPddSpecEdit;
if (edit == null)
return;
var spec = edit.Tag as spec_item;
if (spec == null)
return;
string oldSpecName = spec.spec_name;
string newSpecName = edit.txtSpecName.Text.Trim();
if (edit.pictureBox1.Visible == true)
{
foreach (DataGridViewRow row in dgvDbProduct.Rows)
{
if (row.Cells["colSpec1"].Value.ParseToString() == spec.spec_name)
{
row.Cells["colSpec1"].Value = edit.txtSpecName.Text.Trim();
}
}
if (lstSkuEditItem.All(s => s.spec.Count > 0))
{
foreach (var sku in lstSkuEditItem)
{
if (sku.spec[0].spec_name == oldSpecName)
{
sku.spec[0].spec_name = newSpecName;
sku.spec[0].spec_id = null;
}
}
}
}
else
{
foreach (DataGridViewRow row in dgvDbProduct.Rows)
{
if (row.Cells["colSpec2"].Value.ParseToString() == spec.spec_name)
{
row.Cells["colSpec2"].Value = edit.txtSpecName.Text.Trim();
}
}
if (lstSkuEditItem.All(s => s.spec.Count > 1))
{
foreach (var sku in lstSkuEditItem)
{
if (sku.spec[1].spec_name == oldSpecName)
{
sku.spec[1].spec_name = newSpecName;
sku.spec[1].spec_id = null;
}
}
}
}
}
private void btnDel_Click(object sender, EventArgs e)
{
var btn = sender as PanelEx;
if (btn == null)
return;
var edit = btn.Tag as UcPddSpecEdit;
if (edit == null)
return;
var spec = edit.Tag as spec_item;
if (spec == null)
return;
if (edit.pictureBox1.Visible == true) // 第一组属性
{
if (lstSkuEditItem.All(s => s.spec.Count > 0))
{
var rows = this.dgvDbProduct.Rows.Cast<DataGridViewRow>().Where(r => r.Cells["colSpec1"].Value.ParseToString() == spec.spec_name).ToList();
foreach (var row in rows)
{
this.dgvDbProduct.Rows.Remove(row);
}
this.lstSkuEditItem.RemoveAll(s => s.spec[0].spec_name == spec.spec_name);
this.flowLayoutPanel1.Controls.Remove(edit);
}
}
else
{
if (lstSkuEditItem.All(s => s.spec.Count > 1)) // 第二组属性
{
var rows = this.dgvDbProduct.Rows.Cast<DataGridViewRow>().Where(r => r.Cells["colSpec2"].Value.ParseToString() == spec.spec_name).ToList();
foreach (var row in rows)
{
this.dgvDbProduct.Rows.Remove(row);
}
this.lstSkuEditItem.RemoveAll(s => s.spec[1].spec_name == spec.spec_name);
this.flowLayoutPanel2.Controls.Remove(edit);
}
}
}
private void btnBatchSetValue_Click(object sender, EventArgs e)
{
var specNameItems1 = this.cmbSpec1.SelectItems.Select(i => i.ParseToString()).ToList();
var specNameItems2 = this.cmbSpec2.SelectItems.Select(i => i.ParseToString()).ToList();
if (specNameItems2.Count == 0)
specNameItems2.Add("");
foreach (var specNameStr1 in specNameItems1)
{
foreach (var specNameStr2 in specNameItems2)
{
}
}
}
private void btnCancel_Click(object sender, EventArgs e)
{
this.Close();
}
private void btnAddSpec1_Click(object sender, EventArgs e)
{
var spec = this.flowLayoutPanel1.Tag as spec_item;
if (spec == null)
return;
var newSpec1 = JsonHelper.DeserializeJsonToObject<spec_item>(JsonHelper.SerializeObject(spec));
newSpec1.spec_id = null;
newSpec1.spec_name = newSpec1.parent_name + this.addSpecIndex1;
AddSpec1(newSpec1);
this.addSpecIndex1++;
var spec2Lst = new List<spec_item>();
if (this.lstSkuEditItem.All(s => s.spec.Count == 2))
{
foreach (var sku in lstSkuEditItem)
{
if (spec2Lst.Any(s => s.spec_name == sku.spec[1].spec_name))
continue;
spec2Lst.Add(sku.spec[1]);
}
}
if (spec2Lst.Count == 0)
spec2Lst.Add(new spec_item());
foreach (var sp in spec2Lst)
{
var newSku = JsonHelper.DeserializeJsonToObject<sku_edit_item>(JsonHelper.SerializeObject(defaultSkuEditItem));
newSku.price = null;
newSku.thumb_url = null;
newSku.thumb_url_file_id = null;
newSku.multi_price = null;
if (this.lstSkuEditItem.All(s => s.spec.Count == 1))
newSku.spec = new List<spec_item>() { newSpec1 };
else
newSku.spec = new List<spec_item>() { newSpec1, sp };
lstSkuEditItem.Add(newSku);
}
RefreshRows();
}
void RefreshRows()
{
this.dgvDbProduct.Rows.Clear();
foreach (var skuEditItem in lstSkuEditItem)
{
var rowId = this.dgvDbProduct.Rows.Add
(
false,
skuEditItem.spec.Count > 0 ? skuEditItem.spec[0].spec_name : "",
skuEditItem.spec.Count > 1 ? skuEditItem.spec[1].spec_name : "",
skuEditItem.multi_price * 0.01m,
skuEditItem.price * 0.01m,
skuEditItem.thumb_url,
DataGridViewExtension.defaultBitmap,
skuEditItem.out_sku_sn
);
this.dgvDbProduct.Rows[rowId].Height = 60;
this.dgvDbProduct.Height += 60;
}
}
void AddSpec1(spec_item specEditItem1)
{
UcPddSpecEdit edit = new UcPddSpecEdit();
edit.Name = specEditItem1.spec_name;
edit.Tag = specEditItem1;
edit.txtSpecName.Text = specEditItem1.spec_name;
edit.lblErr.Text = "";
edit.pictureBox1.Image = Properties.Resources.nopic;
this.flowLayoutPanel1.Controls.Add(edit);
edit.btnDel.Tag = edit;
edit.btnDel.Click += btnDel_Click;
edit.btnSave.Tag = edit;
edit.btnSave.Click += btnSave_Click;
edit.txtSpecName.Tag = edit;
edit.txtSpecName.TextChanged += TxtSpecName_TextChanged;
edit.pictureBox1.Click += thumbImg_Click;
this.cmbSpec1.Items.Add(specEditItem1.spec_name);
}
void AddSpec2(spec_item specEditItem2)
{
UcPddSpecEdit edit = new UcPddSpecEdit();
edit.Name = specEditItem2.spec_name;
edit.Tag = specEditItem2;
edit.txtSpecName.Text = specEditItem2.spec_name;
edit.lblErr.Text = "";
edit.pictureBox1.Visible = false;
edit.txtSpecName.Width += 1 + edit.pictureBox1.Width;
this.flowLayoutPanel2.Controls.Add(edit);
edit.btnDel.Tag = edit;
edit.btnDel.Click += btnDel_Click;
edit.btnSave.Tag = edit;
edit.btnSave.Click += btnSave_Click;
edit.txtSpecName.Tag = edit;
edit.txtSpecName.TextChanged += TxtSpecName_TextChanged;
this.cmbSpec2.Items.Add(specEditItem2.spec_name);
}
}
}
@@ -0,0 +1,322 @@
<?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="colSpec1.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colSpec2.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colMultiPrice.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colPrice.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colSkuImgUrl.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colSkuImg.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colSkuSn.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>
@@ -1,6 +1,6 @@
namespace TemuKJD.PDDForms.ProductSelectForms
{
partial class PDDDBProdEditNotesForm
partial class PDDDBProdEditForm
{
/// <summary>
/// Required designer variable.
@@ -28,8 +28,9 @@
/// </summary>
private void InitializeComponent()
{
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(PDDDBProdEditNotesForm));
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(PDDDBProdEditForm));
this.panel2 = new System.Windows.Forms.Panel();
this.btnEditDetail = new DevComponents.DotNetBar.PanelEx();
this.btnSelect = new TemuKJD.UserControls.ButtonEx();
this.buttonEx1 = new TemuKJD.UserControls.ButtonEx();
this.pictureBox2 = new System.Windows.Forms.PictureBox();
@@ -60,6 +61,7 @@
// panel2
//
this.panel2.BackColor = System.Drawing.Color.White;
this.panel2.Controls.Add(this.btnEditDetail);
this.panel2.Controls.Add(this.btnSelect);
this.panel2.Controls.Add(this.buttonEx1);
this.panel2.Controls.Add(this.pictureBox2);
@@ -85,9 +87,33 @@
this.panel2.Dock = System.Windows.Forms.DockStyle.Fill;
this.panel2.Location = new System.Drawing.Point(1, 33);
this.panel2.Name = "panel2";
this.panel2.Size = new System.Drawing.Size(464, 686);
this.panel2.Size = new System.Drawing.Size(464, 651);
this.panel2.TabIndex = 1;
//
// btnEditDetail
//
this.btnEditDetail.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
this.btnEditDetail.Cursor = System.Windows.Forms.Cursors.Hand;
this.btnEditDetail.DisabledBackColor = System.Drawing.Color.Empty;
this.btnEditDetail.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnEditDetail.Location = new System.Drawing.Point(341, 491);
this.btnEditDetail.Name = "btnEditDetail";
this.btnEditDetail.Size = new System.Drawing.Size(85, 25);
this.btnEditDetail.Style.Alignment = System.Drawing.StringAlignment.Center;
this.btnEditDetail.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.btnEditDetail.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.btnEditDetail.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder;
this.btnEditDetail.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash;
this.btnEditDetail.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None;
this.btnEditDetail.Style.ForeColor.Color = System.Drawing.Color.White;
this.btnEditDetail.Style.GradientAngle = 90;
this.btnEditDetail.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center;
this.btnEditDetail.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255)))));
this.btnEditDetail.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255)))));
this.btnEditDetail.TabIndex = 647;
this.btnEditDetail.Text = "编辑商品SKU";
this.btnEditDetail.Click += new System.EventHandler(this.btnEditDetail_Click);
//
// btnSelect
//
this.btnSelect.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
@@ -113,7 +139,7 @@
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.Location = new System.Drawing.Point(90, 600);
this.buttonEx1.Margin = new System.Windows.Forms.Padding(2);
this.buttonEx1.Name = "buttonEx1";
this.buttonEx1.Size = new System.Drawing.Size(70, 26);
@@ -334,7 +360,7 @@
this.btnOk.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.btnOk.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnOk.ForeColor = System.Drawing.Color.White;
this.btnOk.Location = new System.Drawing.Point(372, 640);
this.btnOk.Location = new System.Drawing.Point(387, 601);
this.btnOk.Margin = new System.Windows.Forms.Padding(2);
this.btnOk.Name = "btnOk";
this.btnOk.Size = new System.Drawing.Size(55, 26);
@@ -343,14 +369,14 @@
this.btnOk.UseVisualStyleBackColor = false;
this.btnOk.Click += new System.EventHandler(this.btnOk_Click);
//
// PDDDBProdEditNotesForm
// PDDDBProdEditForm
//
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
this.ClientSize = new System.Drawing.Size(466, 720);
this.ClientSize = new System.Drawing.Size(466, 685);
this.Controls.Add(this.panel2);
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 = "PDDDBProdEditNotesForm";
this.Name = "PDDDBProdEditForm";
this.Text = "编辑商品备注/货号";
this.TitleText = "编辑商品备注/货号";
this.Load += new System.EventHandler(this.ProductSelectListForm_Load);
@@ -388,5 +414,6 @@
private System.Windows.Forms.Label label9;
private UserControls.ButtonEx buttonEx1;
private UserControls.ButtonEx btnSelect;
private DevComponents.DotNetBar.PanelEx btnEditDetail;
}
}
@@ -19,11 +19,11 @@ using Work.BLL.Tools;
namespace TemuKJD.PDDForms.ProductSelectForms
{
public partial class PDDDBProdEditNotesForm : LRBaseForm
public partial class PDDDBProdEditForm : LRBaseForm
{
KJDDBProduct dbProd = null;
public PDDDBProdEditNotesForm(KJDDBProduct prod)
public PDDDBProdEditForm(KJDDBProduct prod)
{
InitializeComponent();
@@ -228,5 +228,11 @@ namespace TemuKJD.PDDForms.ProductSelectForms
}
}
}
private void btnEditDetail_Click(object sender, EventArgs e)
{
PDDDBProdEditDetailForm editDetailForm = new PDDDBProdEditDetailForm(this.dbProd);
editDetailForm.ShowDialog();
}
}
}
@@ -59,6 +59,13 @@ namespace TemuKJD.PDDForms.ProductSelectForms
this.label2 = new System.Windows.Forms.Label();
this.lblGroup = new System.Windows.Forms.Label();
this.splitContainer2 = new System.Windows.Forms.SplitContainer();
this.pnlEditExtCodePrice = new System.Windows.Forms.Panel();
this.lblExtCode = new System.Windows.Forms.Label();
this.panel2 = new System.Windows.Forms.Panel();
this.txtExtCodePrice = new System.Windows.Forms.TextBox();
this.pnlCancel = new DevComponents.DotNetBar.PanelEx();
this.btnEditExtCodePriceOK = new DevComponents.DotNetBar.PanelEx();
this.lblExtCodePrice = new System.Windows.Forms.Label();
this.pbLoading = new System.Windows.Forms.PictureBox();
this.txtSKC = new System.Windows.Forms.TextBox();
this.label1 = new System.Windows.Forms.Label();
@@ -79,6 +86,8 @@ namespace TemuKJD.PDDForms.ProductSelectForms
this.col_ext_code = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colGroup = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colPriceText = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colExtCodePrice = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colEdit = new System.Windows.Forms.DataGridViewLinkColumn();
this.colAddTimes = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colSelectTotalCount = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.col_notes = new System.Windows.Forms.DataGridViewTextBoxColumn();
@@ -98,6 +107,8 @@ namespace TemuKJD.PDDForms.ProductSelectForms
this.splitContainer2.Panel1.SuspendLayout();
this.splitContainer2.Panel2.SuspendLayout();
this.splitContainer2.SuspendLayout();
this.pnlEditExtCodePrice.SuspendLayout();
this.panel2.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.pbLoading)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.dgvDbProduct)).BeginInit();
this.SuspendLayout();
@@ -397,6 +408,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms
//
// splitContainer2.Panel1
//
this.splitContainer2.Panel1.Controls.Add(this.pnlEditExtCodePrice);
this.splitContainer2.Panel1.Controls.Add(this.pbLoading);
this.splitContainer2.Panel1.Controls.Add(this.txtSKC);
this.splitContainer2.Panel1.Controls.Add(this.label1);
@@ -411,6 +423,104 @@ namespace TemuKJD.PDDForms.ProductSelectForms
this.splitContainer2.SplitterDistance = 600;
this.splitContainer2.TabIndex = 0;
//
// pnlEditExtCodePrice
//
this.pnlEditExtCodePrice.Anchor = System.Windows.Forms.AnchorStyles.None;
this.pnlEditExtCodePrice.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.pnlEditExtCodePrice.Controls.Add(this.lblExtCode);
this.pnlEditExtCodePrice.Controls.Add(this.panel2);
this.pnlEditExtCodePrice.Controls.Add(this.lblExtCodePrice);
this.pnlEditExtCodePrice.Location = new System.Drawing.Point(445, 96);
this.pnlEditExtCodePrice.Name = "pnlEditExtCodePrice";
this.pnlEditExtCodePrice.Size = new System.Drawing.Size(474, 146);
this.pnlEditExtCodePrice.TabIndex = 434;
this.pnlEditExtCodePrice.Visible = false;
//
// lblExtCode
//
this.lblExtCode.AutoSize = true;
this.lblExtCode.Location = new System.Drawing.Point(20, 19);
this.lblExtCode.Name = "lblExtCode";
this.lblExtCode.Size = new System.Drawing.Size(56, 17);
this.lblExtCode.TabIndex = 455;
this.lblExtCode.Text = "ExtCode";
this.lblExtCode.Visible = false;
//
// panel2
//
this.panel2.Anchor = System.Windows.Forms.AnchorStyles.Top;
this.panel2.Controls.Add(this.txtExtCodePrice);
this.panel2.Controls.Add(this.pnlCancel);
this.panel2.Controls.Add(this.btnEditExtCodePriceOK);
this.panel2.Location = new System.Drawing.Point(23, 80);
this.panel2.Name = "panel2";
this.panel2.Size = new System.Drawing.Size(424, 29);
this.panel2.TabIndex = 454;
//
// txtExtCodePrice
//
this.txtExtCodePrice.Location = new System.Drawing.Point(96, 3);
this.txtExtCodePrice.Name = "txtExtCodePrice";
this.txtExtCodePrice.Size = new System.Drawing.Size(117, 23);
this.txtExtCodePrice.TabIndex = 465;
//
// pnlCancel
//
this.pnlCancel.CanvasColor = System.Drawing.SystemColors.Control;
this.pnlCancel.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
this.pnlCancel.DisabledBackColor = System.Drawing.Color.Empty;
this.pnlCancel.Location = new System.Drawing.Point(273, 2);
this.pnlCancel.Name = "pnlCancel";
this.pnlCancel.Size = new System.Drawing.Size(56, 24);
this.pnlCancel.Style.Alignment = System.Drawing.StringAlignment.Center;
this.pnlCancel.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255)))));
this.pnlCancel.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255)))));
this.pnlCancel.Style.Border = DevComponents.DotNetBar.eBorderType.SingleLine;
this.pnlCancel.Style.BorderColor.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.pnlCancel.Style.ForeColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText;
this.pnlCancel.Style.GradientAngle = 90;
this.pnlCancel.StyleMouseDown.Alignment = System.Drawing.StringAlignment.Center;
this.pnlCancel.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center;
this.pnlCancel.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.pnlCancel.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.pnlCancel.StyleMouseOver.ForeColor.Color = System.Drawing.Color.White;
this.pnlCancel.TabIndex = 458;
this.pnlCancel.Text = "取消";
this.pnlCancel.Click += new System.EventHandler(this.pnlCancel_Click);
//
// btnEditExtCodePriceOK
//
this.btnEditExtCodePriceOK.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
this.btnEditExtCodePriceOK.Cursor = System.Windows.Forms.Cursors.Hand;
this.btnEditExtCodePriceOK.DisabledBackColor = System.Drawing.Color.Empty;
this.btnEditExtCodePriceOK.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnEditExtCodePriceOK.Location = new System.Drawing.Point(215, 2);
this.btnEditExtCodePriceOK.Name = "btnEditExtCodePriceOK";
this.btnEditExtCodePriceOK.Size = new System.Drawing.Size(56, 24);
this.btnEditExtCodePriceOK.Style.Alignment = System.Drawing.StringAlignment.Center;
this.btnEditExtCodePriceOK.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.btnEditExtCodePriceOK.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.btnEditExtCodePriceOK.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder;
this.btnEditExtCodePriceOK.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash;
this.btnEditExtCodePriceOK.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None;
this.btnEditExtCodePriceOK.Style.ForeColor.Color = System.Drawing.Color.White;
this.btnEditExtCodePriceOK.Style.GradientAngle = 90;
this.btnEditExtCodePriceOK.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center;
this.btnEditExtCodePriceOK.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255)))));
this.btnEditExtCodePriceOK.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255)))));
this.btnEditExtCodePriceOK.TabIndex = 453;
this.btnEditExtCodePriceOK.Text = "确定";
this.btnEditExtCodePriceOK.Click += new System.EventHandler(this.btnEditExtCodePriceOK_Click);
//
// lblExtCodePrice
//
this.lblExtCodePrice.Location = new System.Drawing.Point(23, 36);
this.lblExtCodePrice.Name = "lblExtCodePrice";
this.lblExtCodePrice.Size = new System.Drawing.Size(424, 17);
this.lblExtCodePrice.TabIndex = 0;
this.lblExtCodePrice.Text = "ExtCodePrice";
this.lblExtCodePrice.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
//
// pbLoading
//
this.pbLoading.Anchor = System.Windows.Forms.AnchorStyles.None;
@@ -446,6 +556,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms
this.dgvDbProduct.AllowUserToDeleteRows = false;
dataGridViewCellStyle1.BackColor = System.Drawing.Color.WhiteSmoke;
this.dgvDbProduct.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle1;
this.dgvDbProduct.AutoRowNumber = true;
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)))));
@@ -473,6 +584,8 @@ namespace TemuKJD.PDDForms.ProductSelectForms
this.col_ext_code,
this.colGroup,
this.colPriceText,
this.colExtCodePrice,
this.colEdit,
this.colAddTimes,
this.colSelectTotalCount,
this.col_notes,
@@ -547,7 +660,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms
//
dataGridViewCellStyle3.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
this.col_product_name.DefaultCellStyle = dataGridViewCellStyle3;
this.col_product_name.FillWeight = 150F;
this.col_product_name.FillWeight = 140F;
this.col_product_name.HeaderText = "标题";
this.col_product_name.Name = "col_product_name";
this.col_product_name.ReadOnly = true;
@@ -619,11 +732,27 @@ namespace TemuKJD.PDDForms.ProductSelectForms
//
// colPriceText
//
this.colPriceText.FillWeight = 60F;
this.colPriceText.FillWeight = 65F;
this.colPriceText.HeaderText = "母店价格";
this.colPriceText.Name = "colPriceText";
this.colPriceText.ReadOnly = true;
//
// colExtCodePrice
//
this.colExtCodePrice.FillWeight = 55F;
this.colExtCodePrice.HeaderText = "货号价格";
this.colExtCodePrice.Name = "colExtCodePrice";
this.colExtCodePrice.ReadOnly = true;
//
// colEdit
//
this.colEdit.FillWeight = 35F;
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;
//
// colAddTimes
//
this.colAddTimes.FillWeight = 52F;
@@ -737,6 +866,10 @@ namespace TemuKJD.PDDForms.ProductSelectForms
this.splitContainer2.Panel2.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.splitContainer2)).EndInit();
this.splitContainer2.ResumeLayout(false);
this.pnlEditExtCodePrice.ResumeLayout(false);
this.pnlEditExtCodePrice.PerformLayout();
this.panel2.ResumeLayout(false);
this.panel2.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.pbLoading)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.dgvDbProduct)).EndInit();
this.ResumeLayout(false);
@@ -773,6 +906,13 @@ namespace TemuKJD.PDDForms.ProductSelectForms
private DevComponents.DotNetBar.PanelEx btnSelect;
private DevComponents.DotNetBar.PanelEx btnDelSelect;
private System.Windows.Forms.ComboBox cmbGroupFilter;
private System.Windows.Forms.Panel pnlEditExtCodePrice;
private System.Windows.Forms.Label lblExtCode;
private System.Windows.Forms.Panel panel2;
private DevComponents.DotNetBar.PanelEx pnlCancel;
private DevComponents.DotNetBar.PanelEx btnEditExtCodePriceOK;
private System.Windows.Forms.Label lblExtCodePrice;
private System.Windows.Forms.TextBox txtExtCodePrice;
private System.Windows.Forms.DataGridViewCheckBoxColumn colSelect;
private System.Windows.Forms.DataGridViewTextBoxColumn col_db_id;
private System.Windows.Forms.DataGridViewTextBoxColumn colFromShopId;
@@ -787,6 +927,8 @@ namespace TemuKJD.PDDForms.ProductSelectForms
private System.Windows.Forms.DataGridViewTextBoxColumn col_ext_code;
private System.Windows.Forms.DataGridViewTextBoxColumn colGroup;
private System.Windows.Forms.DataGridViewTextBoxColumn colPriceText;
private System.Windows.Forms.DataGridViewTextBoxColumn colExtCodePrice;
private System.Windows.Forms.DataGridViewLinkColumn colEdit;
private System.Windows.Forms.DataGridViewTextBoxColumn colAddTimes;
private System.Windows.Forms.DataGridViewTextBoxColumn colSelectTotalCount;
private System.Windows.Forms.DataGridViewTextBoxColumn col_notes;
@@ -93,6 +93,10 @@ namespace TemuKJD.PDDForms.ProductSelectForms
this.dgvDbProduct.AddSelectorColumn("colSelect");
this.dgvDbProduct.AddImgColumn("colSkuReplaceImg", "colSkuReplaceImgUrl");
this.dgvDbProduct.AddMergeColumnHeader(new List<string>() { "colExtCodePrice", "colEdit" }, "货号价格");
this.dgvDbProduct.AddMergeColumn(new List<string>() { "colExtCodePrice", "colEdit" });
}
private void btnSearch_Click(object sender, EventArgs e)
@@ -153,7 +157,9 @@ namespace TemuKJD.PDDForms.ProductSelectForms
prod.cat_name,
prod.ext_code,
prod.group,
prod.price_text,
prod.price_text, // 母店价格
prod.ext_code_price * 0.01m, // 货号价格
"编辑",
prod.select_count,
prod.select_total_count,
prod.notes,
@@ -334,7 +340,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms
DeleteProduct(dbId);
break;
case "编辑/详情":
PDDDBProdEditNotesForm editForm = new PDDDBProdEditNotesForm(dbProduct);
PDDDBProdEditForm editForm = new PDDDBProdEditForm(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;
@@ -351,6 +357,12 @@ namespace TemuKJD.PDDForms.ProductSelectForms
case "认领":
Task.Run(() => { SelectProduct(new KJDDBProduct[] { dbProduct }); });
break;
case "编辑":
this.lblExtCodePrice.Text = "调整货号 " + dgvDbProduct.Rows[e.RowIndex].Cells["col_ext_code"].Value.ParseToString() + " 价格";
this.lblExtCode.Text = dgvDbProduct.Rows[e.RowIndex].Cells["col_ext_code"].Value.ParseToString();
this.txtExtCodePrice.Text = dgvDbProduct.Rows[e.RowIndex].Cells["colExtCodePrice"].Value?.ParseToDecimal().ToString();
this.pnlEditExtCodePrice.Visible = true;
break;
case "":
dgvDbProduct.Rows[e.RowIndex].Cells["colSelect"].Value = !(bool)dgvDbProduct.Rows[e.RowIndex].Cells["colSelect"].Value;
break;
@@ -663,5 +675,46 @@ namespace TemuKJD.PDDForms.ProductSelectForms
}));
}
}
private void btnEditExtCodePriceOK_Click(object sender, EventArgs e)
{
var url = BaseClass.BuildObjString("price/add_ext_code_price");
var data = UserLogin.GetSignaturex() +
"&ext_code=" + lblExtCode.Text.Trim() +
"&ext_code_price=" + (txtExtCodePrice.Text.Trim().ParseToDecimal() * 100).ParseToInt();
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 (html.Contains("\"code\":200"))
{
foreach (DataGridViewRow row in this.dgvDbProduct.Rows)
{
if (row.Cells["col_ext_code"].Value.ParseToString() == lblExtCode.Text.Trim())
{
row.Cells["colExtCodePrice"].Value = txtExtCodePrice.Text.Trim().ParseToDecimal();
}
}
foreach (var prod in lstTemuDbProduct)
{
if (prod.ext_code == lblExtCode.Text.Trim())
prod.ext_code_price = (txtExtCodePrice.Text.Trim().ParseToDecimal() * 100).ParseToInt();
}
this.pnlEditExtCodePrice.Visible = false;
}
else
{
var msg = BaseRegex.GetStringJson(ref html, "msg");
if (string.IsNullOrEmpty(msg))
msg = "商品货号价格修改失败!";
BaseMsgForm.ShowError(msg);
}
}
private void pnlCancel_Click(object sender, EventArgs e)
{
this.pnlEditExtCodePrice.Visible = false;
}
}
}
@@ -159,6 +159,12 @@
<metadata name="colPriceText.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colExtCodePrice.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="colAddTimes.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
@@ -30,12 +30,12 @@ namespace TemuKJD.PDDForms.ProductSelectForms
private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
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.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle4 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle5 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle6 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle7 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle8 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle9 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle10 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle11 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle12 = new System.Windows.Forms.DataGridViewCellStyle();
this.splitContainer1 = new System.Windows.Forms.SplitContainer();
this.ucGroupBoxEx2 = new TemuKJD.UserComponent.UcGroupBoxEx(this.components);
this.pbUpgradeVersion = new System.Windows.Forms.PictureBox();
@@ -144,6 +144,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms
this.statusBar = new TemuKJD.UserControls.StatusBarUserControl();
this.btnClear = new DevComponents.DotNetBar.PanelEx();
this.panelEx1 = new DevComponents.DotNetBar.PanelEx();
this.chkUseExtCodePrice = new TemuKJD.UserComponent.UcCheckBox(this.components);
((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit();
this.splitContainer1.Panel1.SuspendLayout();
this.splitContainer1.Panel2.SuspendLayout();
@@ -201,6 +202,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms
| System.Windows.Forms.AnchorStyles.Right)));
this.ucGroupBoxEx2.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.ucGroupBoxEx2.BorderStyle = TemuKJD.UserComponent.UcGroupBoxEx.GroupBoxBorderStyle.ROUND;
this.ucGroupBoxEx2.Controls.Add(this.chkUseExtCodePrice);
this.ucGroupBoxEx2.Controls.Add(this.pbUpgradeVersion);
this.ucGroupBoxEx2.Controls.Add(this.lblUpgradeVersion);
this.ucGroupBoxEx2.Controls.Add(this.label3);
@@ -258,7 +260,6 @@ namespace TemuKJD.PDDForms.ProductSelectForms
this.pbUpgradeVersion.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;
this.pbUpgradeVersion.TabIndex = 706;
this.pbUpgradeVersion.TabStop = false;
this.pbUpgradeVersion.Visible = false;
this.pbUpgradeVersion.Click += new System.EventHandler(this.pbUpgradeVersion_Click);
//
// lblUpgradeVersion
@@ -272,7 +273,6 @@ namespace TemuKJD.PDDForms.ProductSelectForms
this.lblUpgradeVersion.Size = new System.Drawing.Size(56, 17);
this.lblUpgradeVersion.TabIndex = 707;
this.lblUpgradeVersion.Text = "传叠加图";
this.lblUpgradeVersion.Visible = false;
this.lblUpgradeVersion.Click += new System.EventHandler(this.lblUpgradeVersion_Click);
//
// label3
@@ -285,7 +285,6 @@ namespace TemuKJD.PDDForms.ProductSelectForms
this.label3.Size = new System.Drawing.Size(20, 17);
this.label3.TabIndex = 696;
this.label3.Text = "元";
this.label3.Visible = false;
//
// txtUpgradeVersionAddPrice
//
@@ -296,7 +295,6 @@ namespace TemuKJD.PDDForms.ProductSelectForms
this.txtUpgradeVersionAddPrice.Size = new System.Drawing.Size(31, 23);
this.txtUpgradeVersionAddPrice.TabIndex = 695;
this.txtUpgradeVersionAddPrice.Text = "1.0";
this.txtUpgradeVersionAddPrice.Visible = false;
this.txtUpgradeVersionAddPrice.TextChanged += new System.EventHandler(this.txtUpgradeVersionAddPrice_TextChanged);
//
// label5
@@ -309,7 +307,6 @@ namespace TemuKJD.PDDForms.ProductSelectForms
this.label5.Size = new System.Drawing.Size(56, 17);
this.label5.TabIndex = 694;
this.label5.Text = "额外多加";
this.label5.Visible = false;
//
// txtUpgradeVersionName
//
@@ -320,7 +317,6 @@ namespace TemuKJD.PDDForms.ProductSelectForms
this.txtUpgradeVersionName.Size = new System.Drawing.Size(88, 23);
this.txtUpgradeVersionName.TabIndex = 693;
this.txtUpgradeVersionName.Text = "升级版";
this.txtUpgradeVersionName.Visible = false;
this.txtUpgradeVersionName.TextChanged += new System.EventHandler(this.txtUpgradeVersionName_TextChanged);
//
// chkUpgradeVersion
@@ -334,7 +330,6 @@ namespace TemuKJD.PDDForms.ProductSelectForms
this.chkUpgradeVersion.TabIndex = 692;
this.chkUpgradeVersion.Text = "升级sku名";
this.chkUpgradeVersion.UseVisualStyleBackColor = true;
this.chkUpgradeVersion.Visible = false;
this.chkUpgradeVersion.CheckedChanged += new System.EventHandler(this.chkUpgradeVersion_CheckedChanged);
//
// btnStop
@@ -1171,19 +1166,19 @@ namespace TemuKJD.PDDForms.ProductSelectForms
//
this.dgvShop.AllowUserToAddRows = false;
this.dgvShop.AllowUserToDeleteRows = false;
dataGridViewCellStyle1.BackColor = System.Drawing.Color.WhiteSmoke;
this.dgvShop.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle1;
dataGridViewCellStyle7.BackColor = System.Drawing.Color.WhiteSmoke;
this.dgvShop.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle7;
this.dgvShop.AutoRowNumber = true;
this.dgvShop.BackgroundColor = System.Drawing.Color.White;
this.dgvShop.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.dgvShop.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle2;
dataGridViewCellStyle8.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
dataGridViewCellStyle8.BackColor = System.Drawing.SystemColors.Control;
dataGridViewCellStyle8.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
dataGridViewCellStyle8.ForeColor = System.Drawing.SystemColors.WindowText;
dataGridViewCellStyle8.SelectionBackColor = System.Drawing.SystemColors.Highlight;
dataGridViewCellStyle8.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
dataGridViewCellStyle8.WrapMode = System.Windows.Forms.DataGridViewTriState.False;
this.dgvShop.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle8;
this.dgvShop.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
this.dgvShop.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
this.colSelect,
@@ -1351,19 +1346,19 @@ namespace TemuKJD.PDDForms.ProductSelectForms
//
this.dgvSelectProduct.AllowUserToAddRows = false;
this.dgvSelectProduct.AllowUserToDeleteRows = false;
dataGridViewCellStyle3.BackColor = System.Drawing.Color.WhiteSmoke;
this.dgvSelectProduct.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle3;
dataGridViewCellStyle9.BackColor = System.Drawing.Color.WhiteSmoke;
this.dgvSelectProduct.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle9;
this.dgvSelectProduct.AutoRowNumber = true;
this.dgvSelectProduct.BackgroundColor = System.Drawing.Color.White;
this.dgvSelectProduct.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
dataGridViewCellStyle4.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
dataGridViewCellStyle4.BackColor = System.Drawing.SystemColors.Control;
dataGridViewCellStyle4.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
dataGridViewCellStyle4.ForeColor = System.Drawing.SystemColors.WindowText;
dataGridViewCellStyle4.SelectionBackColor = System.Drawing.SystemColors.Highlight;
dataGridViewCellStyle4.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
dataGridViewCellStyle4.WrapMode = System.Windows.Forms.DataGridViewTriState.False;
this.dgvSelectProduct.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle4;
dataGridViewCellStyle10.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
dataGridViewCellStyle10.BackColor = System.Drawing.SystemColors.Control;
dataGridViewCellStyle10.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
dataGridViewCellStyle10.ForeColor = System.Drawing.SystemColors.WindowText;
dataGridViewCellStyle10.SelectionBackColor = System.Drawing.SystemColors.Highlight;
dataGridViewCellStyle10.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
dataGridViewCellStyle10.WrapMode = System.Windows.Forms.DataGridViewTriState.False;
this.dgvSelectProduct.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle10;
this.dgvSelectProduct.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
this.dgvSelectProduct.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
this.colCheck,
@@ -1424,8 +1419,8 @@ namespace TemuKJD.PDDForms.ProductSelectForms
//
// colSupplierName
//
dataGridViewCellStyle5.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
this.colSupplierName.DefaultCellStyle = dataGridViewCellStyle5;
dataGridViewCellStyle11.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
this.colSupplierName.DefaultCellStyle = dataGridViewCellStyle11;
this.colSupplierName.Frozen = true;
this.colSupplierName.HeaderText = "店铺名称";
this.colSupplierName.Name = "colSupplierName";
@@ -1504,8 +1499,8 @@ namespace TemuKJD.PDDForms.ProductSelectForms
//
// colProductName
//
dataGridViewCellStyle6.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
this.colProductName.DefaultCellStyle = dataGridViewCellStyle6;
dataGridViewCellStyle12.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
this.colProductName.DefaultCellStyle = dataGridViewCellStyle12;
this.colProductName.HeaderText = "商品标题";
this.colProductName.Name = "colProductName";
this.colProductName.ReadOnly = true;
@@ -1657,6 +1652,19 @@ namespace TemuKJD.PDDForms.ProductSelectForms
this.panelEx1.Text = "停止当前操作";
this.panelEx1.Visible = false;
//
// chkUseExtCodePrice
//
this.chkUseExtCodePrice.AutoSize = true;
this.chkUseExtCodePrice.Checked = true;
this.chkUseExtCodePrice.CheckState = System.Windows.Forms.CheckState.Checked;
this.chkUseExtCodePrice.Location = new System.Drawing.Point(780, 22);
this.chkUseExtCodePrice.Name = "chkUseExtCodePrice";
this.chkUseExtCodePrice.Size = new System.Drawing.Size(147, 21);
this.chkUseExtCodePrice.TabIndex = 717;
this.chkUseExtCodePrice.Text = "使用货号价格做基础价";
this.chkUseExtCodePrice.UseVisualStyleBackColor = true;
this.chkUseExtCodePrice.CheckedChanged += new System.EventHandler(this.chkUseExtCodePrice_CheckedChanged);
//
// PDDDBProdUserSelectForm
//
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
@@ -1814,5 +1822,6 @@ namespace TemuKJD.PDDForms.ProductSelectForms
private UserComponent.UcCheckBox chkUpgradeVersion;
private System.Windows.Forms.PictureBox pbUpgradeVersion;
private System.Windows.Forms.Label lblUpgradeVersion;
private UserComponent.UcCheckBox chkUseExtCodePrice;
}
}
@@ -46,7 +46,6 @@ namespace TemuKJD.PDDForms.ProductSelectForms
public bool IsLoadComplate { get; set; } = false;
bool isInit = false;
bool isActivityFake = true;
bool isChanceApi = false;
bool isKeepChanceGoodsImg = false;
bool isLowPriceSku = false;
@@ -125,6 +124,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms
this.chkUpgradeVersion.Checked = pddUploadRule.IsUpgradeVersion;
this.txtUpgradeVersionName.Text = pddUploadRule.UpgradeVersionName;
this.txtUpgradeVersionAddPrice.Text = pddUploadRule.UpgradeVersionAddPrice.ParseToString();
this.chkUseExtCodePrice.Checked = pddUploadRule.IsUseExtCodePrice;
this.lblWaitToUp.Text = "待上传商品 " + lstTemuDBProductSelect.Count + " 件";
@@ -148,7 +148,6 @@ namespace TemuKJD.PDDForms.ProductSelectForms
isChanceApi = chkChance.Checked;
isKeepChanceGoodsImg = chkKeepChanceGoodsImg.Checked;
isLowPriceSku = chkLowPriceSku.Checked;
isActivityFake = chkActivity.Checked;
dgvSelectProduct.Columns["colSkuFakeImg"].Visible = false;
//#if DEBUG
@@ -1559,7 +1558,13 @@ namespace TemuKJD.PDDForms.ProductSelectForms
prodParam.showGoodsInstruction = true;
prodParam.size_parent_spec_id = prodInfo.detail.size_parent_spec_id; //尝试使用上家的尺码表,不行则下面再修改
prodParam.size_spec_id = prodInfo.detail.size_spec_id; //尝试使用上家的尺码表,不行则下面再修改
// 生成商品sku
prodParam.skus = new List<sku_param>();
// 生成基准未改价的sku列表
string[] upgradeTxt = new string[] { "升级款#", "升级版#", "精品款#", "精品版#", "升级款", "升级版", "精品款", "精品版" };
List<sku_param> baseSkuParamLst = new List<sku_param>();
foreach (var skuInfo in prodInfo.detail.sku)
{
var skuParam = new sku_param()
@@ -1567,11 +1572,11 @@ namespace TemuKJD.PDDForms.ProductSelectForms
id = skuInfo.id,
is_onsale = skuInfo.is_onsale,
limit_quantity = skuInfo.limit_quantity,
multi_price = (skuInfo.multi_price * this.txtAddTimes.Text.Trim().ParseToDecimal() + this.txtAddMorePrice.Text.Trim().ParseToDecimal() * 100).ParseToInt(),
multi_price = skuInfo.multi_price,
out_sku_sn = skuInfo.out_sku_sn,
oversea_sku = skuInfo.oversea_sku,
price = (skuInfo.price * this.txtAddTimes.Text.Trim().ParseToDecimal() + this.txtAddMorePrice.Text.Trim().ParseToDecimal() * 100).ParseToInt(),
quantity_delta = txtStockNum.Text.Trim().ParseToInt(), //skuInfo.quantity,
price = skuInfo.price,
quantity_delta = txtStockNum.Text.Trim().ParseToInt(), // 商品数量
shipment_limit_second_list = skuInfo.shipment_limit_second_list,
sku69_code = skuInfo.sku69_code,
sku_srv_templates = skuInfo.sku_srv_templates.ParseToString(),
@@ -1585,26 +1590,73 @@ namespace TemuKJD.PDDForms.ProductSelectForms
sku_id = skuInfo.sku_id,
thumb_url_file_id = skuInfo.thumb_url_file_id,
};
if (chkUseExtCodePrice.Checked && dbProd.ext_code_price > 0)
{
skuParam.price = dbProd.ext_code_price + skuParam.price - skuParam.multi_price;
skuParam.multi_price = dbProd.ext_code_price;
}
if (pddUploadRule.IsUpgradeVersion)
{
// 查找原sku内是否有升级款类似字样
if (upgradeTxt.Any(t => skuParam.spec[0].spec_name.Contains(t)))
{
foreach (var txt in upgradeTxt)
{
skuParam.spec[0].spec_name = skuParam.spec[0].spec_name.Replace(txt, "").Trim();
}
// 如果删除升级款字样后有相同sku了就跳过
if (prodInfo.detail.sku.Any(s => s.spec[0].spec_name == skuParam.spec[0].spec_name) || string.IsNullOrWhiteSpace(skuParam.spec[0].spec_name))
continue;
// 根据修改过的spec_name获取spec_id
var changeSpecRst = get_spec_by_name(shop, skuParam.spec[0].spec_name, skuParam.spec[0].parent_id.ParseToLong(), prodInfo.detail.cat_id.ParseToInt(),
prodParam.goods_id.ParseToString(), prodParam.goods_commit_id, prodInfo.chance_tab);
Thread.Sleep(Randomx.GetId(50, 100));
if (!changeSpecRst.Contains("\"success\":true"))
{
var error = BaseRegex.GetStringJson(ref changeSpecRst, "error_msg");
if (string.IsNullOrEmpty(error))
error = changeSpecRst;
return "设置原商品sku失败 " + error;
}
else
{
skuParam.spec[0].spec_id = BaseRegex.GetLongJson(ref changeSpecRst, "result");
}
}
}
baseSkuParamLst.Add(skuParam);
}
// 生成正常加价的sku列表
foreach (var skuParamInfo in baseSkuParamLst)
{
var skuParam = JsonHelper.DeserializeJsonToObject<sku_param>(JsonHelper.SerializeObject(skuParamInfo));
skuParam.multi_price = (skuParamInfo.multi_price * this.txtAddTimes.Text.Trim().ParseToDecimal() + this.txtAddMorePrice.Text.Trim().ParseToDecimal() * 100).ParseToInt();
skuParam.price = (skuParamInfo.price * this.txtAddTimes.Text.Trim().ParseToDecimal() + this.txtAddMorePrice.Text.Trim().ParseToDecimal() * 100).ParseToInt();
skuParam.quantity_delta = txtStockNum.Text.Trim().ParseToInt();
if (isAddMorePriceFirst) // 先加后乘
skuParam.multi_price = ((skuInfo.multi_price + this.txtAddMorePrice.Text.Trim().ParseToDecimal() * 100) * this.txtAddTimes.Text.Trim().ParseToDecimal()).ParseToInt();
skuParam.multi_price = ((skuParamInfo.multi_price + this.txtAddMorePrice.Text.Trim().ParseToDecimal() * 100) * this.txtAddTimes.Text.Trim().ParseToDecimal()).ParseToInt();
skuParam.price = skuParam.multi_price + Math.Max(100, this.txtSinglePriceAdd.Text.Trim().ParseToDecimal() * 100).ParseToInt();
//阶梯式加价,如果命中则按阶梯式加价进行
if (isStepAddPrice)
{
foreach (var addPrice in lstAddPriceRule)
{
if (skuInfo.multi_price > addPrice.MoreThanPrice * 100 && skuInfo.multi_price <= addPrice.LessThanPrice * 100)
if (skuParamInfo.multi_price > addPrice.MoreThanPrice * 100 && skuParamInfo.multi_price <= addPrice.LessThanPrice * 100)
{
if (isAddMorePriceFirst) // 先加后乘
skuParam.multi_price = ((skuInfo.multi_price + addPrice.AddMorePrice * 100) * addPrice.AddPriceTimes).ParseToInt();
skuParam.multi_price = ((skuParamInfo.multi_price + addPrice.AddMorePrice * 100) * addPrice.AddPriceTimes).ParseToInt();
else
skuParam.multi_price = (skuInfo.multi_price * addPrice.AddPriceTimes + addPrice.AddMorePrice * 100).ParseToInt();
skuParam.multi_price = (skuParamInfo.multi_price * addPrice.AddPriceTimes + addPrice.AddMorePrice * 100).ParseToInt();
skuParam.price = skuParam.multi_price + Math.Max(100, addPrice.SinglePriceAdd * 100).ParseToInt(); ;
break;
}
}
}
if (prodParam.market_price < skuParam.price + 1000)
{
prodParam.market_price = skuParam.price + 1000;
@@ -1613,14 +1665,17 @@ namespace TemuKJD.PDDForms.ProductSelectForms
prodParam.skus.Add(skuParam);
}
#region // 添加升级版sku
#region 添加升级版sku
List<spec_param> upgrade_First_spec_lst = new List<spec_param>();
List<sku_param> upgrade_Sku_Lst = new List<sku_param>();
Dictionary<string, string> upgrade_Sku_Img_Dic = new Dictionary<string, string>();
if (pddUploadRule.IsUpgradeVersion)
{
List<sku_param> upgrade_Sku_Lst = new List<sku_param>();
foreach (var skuParam in prodParam.skus)
{
var skuParamUpgrade = JsonHelper.DeserializeJsonToObject<sku_param>(JsonHelper.SerializeObject(skuParam));
upgrade_Sku_Lst.Add(skuParamUpgrade);
skuParamUpgrade.multi_price += (txtUpgradeVersionAddPrice.Text.ParseToDecimal() * 100).ParseToInt();
skuParamUpgrade.price += (txtUpgradeVersionAddPrice.Text.ParseToDecimal() * 100).ParseToInt();
if (prodParam.market_price < skuParamUpgrade.price + 1000)
@@ -1633,7 +1688,6 @@ namespace TemuKJD.PDDForms.ProductSelectForms
if (specUpgrade != null)
{
specUpgrade.spec_name = this.txtUpgradeVersionName.Text.Trim() + specUpgrade.spec_name;
upgrade_Sku_Lst.Add(skuParamUpgrade);
var specUpgradeExist = upgrade_First_spec_lst.FirstOrDefault(s => s.spec_name == specUpgrade.spec_name);
if (specUpgradeExist == null)
{
@@ -1652,9 +1706,50 @@ namespace TemuKJD.PDDForms.ProductSelectForms
{
specUpgradeExist.spec_id = BaseRegex.GetLongJson(ref upgradeSpecRst, "result");
}
upgrade_First_spec_lst.Add(specUpgradeExist);
}
specUpgrade.spec_id = specUpgradeExist.spec_id;
}
if (!upgrade_Sku_Img_Dic.Keys.Contains(skuParamUpgrade.thumb_url))
{
string getImgError;
var image = GetHtml.GetUrlImg(skuParamUpgrade.thumb_url.Replace("https://", "http://"), out getImgError);
var imageBg = new Bitmap(image.Width, image.Height);
if (!string.IsNullOrEmpty(getImgError) || image == null)
{
return "设置升级款sku失败 图片上传失败";
}
try
{
using (Graphics g = Graphics.FromImage(imageBg))
{
g.DrawImage(image, new Rectangle(0, 0, image.Width, image.Height), 0, 0, image.Width, image.Height, GraphicsUnit.Pixel);
var imageUp = pbUpgradeVersion.Image;
// 将升级版图片绘制到sku图片上
g.DrawImage(imageUp, new Rectangle(0, 0, image.Width, image.Height), 0, 0, imageUp.Width, imageUp.Height, GraphicsUnit.Pixel);
}
}
catch(Exception ex)
{
return "设置升级款sku失败 " + ex.Message;
}
string uploadUpgradeSkuImgRst = UploadProdSkuImg(shop, imageBg, prodParam.goods_id.ParseToString(), prodParam.goods_commit_id, prodInfo.chance_tab);
if (!uploadUpgradeSkuImgRst.Contains("\"url\":\"https:"))
{
var error = BaseRegex.GetStringJson(ref uploadUpgradeSkuImgRst, "error_msg");
if (string.IsNullOrEmpty(error))
error = uploadUpgradeSkuImgRst;
return "上传升级款sku图片失败 " + error;
}
else
{
var upgrid_thumb_url = BaseRegex.GetStringJson(ref uploadUpgradeSkuImgRst, "url");
upgrade_Sku_Img_Dic[skuParamUpgrade.thumb_url] = upgrid_thumb_url;
}
}
skuParamUpgrade.thumb_url = upgrade_Sku_Img_Dic[skuParamUpgrade.thumb_url];
skuParamUpgrade.thumb_url_file_id = null;
}
foreach (var skuParam in upgrade_Sku_Lst)
{
@@ -1663,7 +1758,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms
}
#endregion
#region // 添加一个申请活动低价sku
#region // 添加一个申请活动的低价sku
//申请skuSpec
var spec = prodInfo.detail.sku.FirstOrDefault().spec.FirstOrDefault(s => !s.spec_name.Contains("码"));
var newSpecItem = JsonHelper.DeserializeJsonToObject<spec_item>(JsonHelper.SerializeObject(spec));
@@ -1835,7 +1930,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms
sleepTimeTotal += sleepTime;
Thread.Sleep(sleepTime);
}
if (!isActivityFake)
if (!pddUploadRule.IsSignActivity)
{
sleepTime = Randomx.GetId(5000, 15000);
sleepTimeTotal += sleepTime;
@@ -1960,7 +2055,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms
string lowPriceSkuImg = "";
string lowPriceSkuImgBase64 = "";
if (isLowPriceSku) // 活动可以给sku报不同的价格,给商品添加一个低价sku
if (isLowPriceSku) // 上传低价sku图 (活动可以给sku报不同的价格,给商品添加一个低价sku)
{
Invoke(new Action(() =>
{
@@ -2070,7 +2165,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms
if (!string.IsNullOrEmpty(dbProd.sku_img_replace_url) && !string.IsNullOrEmpty(dbProd.sku_img_replace_base64))
fakeImgUrl = dbProd.sku_img_replace_url;
if (isActivityFake && string.IsNullOrEmpty(dbProd.sku_img_replace_url) && !string.IsNullOrEmpty(dbProd.sku_img_replace_base64) && 1 == 1)
if (pddUploadRule.IsSignActivity && string.IsNullOrEmpty(dbProd.sku_img_replace_url) && !string.IsNullOrEmpty(dbProd.sku_img_replace_base64) && 1 == 1)
{
string uploadSkuImgRst = UploadProdSkuImg(shop, dbProd.sku_img_replace_base64, prodParam.goods_id.ParseToString(), prodParam.goods_commit_id, prodInfo.chance_tab);
if (!uploadSkuImgRst.Contains("\"url\":\"https:"))
@@ -2102,33 +2197,16 @@ namespace TemuKJD.PDDForms.ProductSelectForms
var prodParamHighPrice = JsonHelper.DeserializeJsonToObject<PDDProductUploadParam>(JsonHelper.SerializeObject(prodParam));
prodParamHighPrice.skus = new List<sku_param>();
foreach (var skuInfo in prodInfo.detail.sku)
foreach (var skuParamInfo in baseSkuParamLst)
{
var skuParam = new sku_param()
{
id = skuInfo.id,
is_onsale = skuInfo.is_onsale,
limit_quantity = skuInfo.limit_quantity,
multi_price = (skuInfo.multi_price * this.txtAddTimesFake.Text.Trim().ParseToDecimal()).ParseToInt(),
out_sku_sn = skuInfo.out_sku_sn,
oversea_sku = skuInfo.oversea_sku,
price = (skuInfo.price * this.txtAddTimesFake.Text.Trim().ParseToDecimal()).ParseToInt(),
quantity_delta = txtStockNum.Text.Trim().ParseToInt(), //skuInfo.quantity,
shipment_limit_second_list = skuInfo.shipment_limit_second_list,
sku69_code = skuInfo.sku69_code,
sku_srv_templates = skuInfo.sku_srv_templates.ParseToString(),
spec = JsonHelper.DeserializeJsonToList<spec_param>(JsonHelper.SerializeObject(skuInfo.spec)),
thumb_url = skuInfo.thumb_url,
weight = skuInfo.weight,
length = skuInfo.length,
price_in_yuan = "", // 内部计算直接置空
multi_price_in_yuan = "", // 内部计算直接置空
pre_sale_time = skuInfo.pre_sale_time,
sku_id = skuInfo.sku_id,
thumb_url_file_id = skuInfo.thumb_url_file_id,
};
var skuParam = JsonHelper.DeserializeJsonToObject<sku_param>(JsonHelper.SerializeObject(skuParamInfo));
skuParam.multi_price = (skuParamInfo.multi_price * this.txtAddTimesFake.Text.Trim().ParseToDecimal()).ParseToInt();
skuParam.price = (skuParamInfo.price * this.txtAddTimesFake.Text.Trim().ParseToDecimal()).ParseToInt();
skuParam.quantity_delta = txtStockNum.Text.Trim().ParseToInt(); // 库存
if (isAddMorePriceFirst) // 先加后乘
skuParam.multi_price = ((skuInfo.multi_price) * this.txtAddTimesFake.Text.Trim().ParseToDecimal()).ParseToInt();
skuParam.multi_price = ((skuParamInfo.multi_price) * this.txtAddTimesFake.Text.Trim().ParseToDecimal()).ParseToInt();
skuParam.price = skuParam.multi_price + Math.Max(100, this.txtSinglePriceAdd.Text.Trim().ParseToDecimal() * 100).ParseToInt();
if (prodParamHighPrice.market_price < skuParam.price + 1000)
@@ -2142,9 +2220,12 @@ namespace TemuKJD.PDDForms.ProductSelectForms
#region 添加升级版sku
if (pddUploadRule.IsUpgradeVersion)
{
List<sku_param> upgrade_Sku_Lst = new List<sku_param>();
foreach (var skuParam in prodParamHighPrice.skus)
{
var skuParamUpgrade = JsonHelper.DeserializeJsonToObject<sku_param>(JsonHelper.SerializeObject(skuParam));
upgrade_Sku_Lst.Add(skuParamUpgrade);
skuParamUpgrade.multi_price += (txtUpgradeVersionAddPrice.Text.ParseToDecimal() * 100).ParseToInt();
skuParamUpgrade.price += (txtUpgradeVersionAddPrice.Text.ParseToDecimal() * 100).ParseToInt();
if (prodParamHighPrice.market_price < skuParamUpgrade.price + 1000)
@@ -2157,7 +2238,6 @@ namespace TemuKJD.PDDForms.ProductSelectForms
if (specUpgrade != null)
{
specUpgrade.spec_name = this.txtUpgradeVersionName.Text.Trim() + specUpgrade.spec_name;
upgrade_Sku_Lst.Add(skuParamUpgrade);
var specUpgradeExist = upgrade_First_spec_lst.FirstOrDefault(s => s.spec_name == specUpgrade.spec_name);
if (specUpgradeExist == null)
{
@@ -2176,9 +2256,50 @@ namespace TemuKJD.PDDForms.ProductSelectForms
{
specUpgradeExist.spec_id = BaseRegex.GetLongJson(ref upgradeSpecRst, "result");
}
upgrade_First_spec_lst.Add(specUpgradeExist);
}
specUpgrade.spec_id = specUpgradeExist.spec_id;
}
if (!upgrade_Sku_Img_Dic.Keys.Contains(skuParamUpgrade.thumb_url))
{
string getImgError;
var image = GetHtml.GetUrlImg(skuParamUpgrade.thumb_url.Replace("https://", "http://"), out getImgError);
var imageBg = new Bitmap(image.Width, image.Height);
if (!string.IsNullOrEmpty(getImgError) || image == null)
{
return "设置升级款sku失败 图片上传失败";
}
try
{
using (Graphics g = Graphics.FromImage(imageBg))
{
g.DrawImage(image, new Rectangle(0, 0, image.Width, image.Height), 0, 0, image.Width, image.Height, GraphicsUnit.Pixel);
var imageUp = pbUpgradeVersion.Image;
// 将升级版图片绘制到sku图片上
g.DrawImage(imageUp, new Rectangle(0, 0, image.Width, image.Height), 0, 0, imageUp.Width, imageUp.Height, GraphicsUnit.Pixel);
}
}
catch (Exception ex)
{
return "设置升级款sku失败 " + ex.Message;
}
string uploadUpgradeSkuImgRst = UploadProdSkuImg(shop, imageBg, prodParam.goods_id.ParseToString(), prodParam.goods_commit_id, prodInfo.chance_tab);
if (!uploadUpgradeSkuImgRst.Contains("\"url\":\"https:"))
{
var error = BaseRegex.GetStringJson(ref uploadUpgradeSkuImgRst, "error_msg");
if (string.IsNullOrEmpty(error))
error = uploadUpgradeSkuImgRst;
return "上传升级款sku图片失败 " + error;
}
else
{
var upgrid_thumb_url = BaseRegex.GetStringJson(ref uploadUpgradeSkuImgRst, "url");
upgrade_Sku_Img_Dic[skuParamUpgrade.thumb_url] = upgrid_thumb_url;
}
}
skuParamUpgrade.thumb_url = upgrade_Sku_Img_Dic[skuParamUpgrade.thumb_url];
skuParamUpgrade.thumb_url_file_id = null;
}
foreach (var skuParam in upgrade_Sku_Lst)
{
@@ -2187,7 +2308,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms
}
#endregion
#region 添加低价sku
#region // 添加一个申请活动的低价sku
if (isLowPriceSku)
{
List<spec_param> first_spec_lst = new List<spec_param>();
@@ -2235,141 +2356,13 @@ namespace TemuKJD.PDDForms.ProductSelectForms
}
#endregion
var prodParamHighPriceFakeSkuImg = JsonHelper.DeserializeJsonToObject<PDDProductUploadParam>(JsonHelper.SerializeObject(prodParam));
prodParamHighPriceFakeSkuImg.skus = new List<sku_param>();
foreach (var skuInfo in prodInfo.detail.sku)
// 复制一份商品使用sku替换图片
var prodParamHighPriceFakeSkuImg = JsonHelper.DeserializeJsonToObject<PDDProductUploadParam>(JsonHelper.SerializeObject(prodParamHighPrice));
foreach (var skuParam in prodParamHighPriceFakeSkuImg.skus)
{
var skuParam = new sku_param()
{
id = skuInfo.id,
is_onsale = skuInfo.is_onsale,
limit_quantity = skuInfo.limit_quantity,
multi_price = (skuInfo.multi_price * this.txtAddTimesFake.Text.Trim().ParseToDecimal()).ParseToInt(),
out_sku_sn = skuInfo.out_sku_sn,
oversea_sku = skuInfo.oversea_sku,
price = (skuInfo.price * this.txtAddTimesFake.Text.Trim().ParseToDecimal()).ParseToInt(),
quantity_delta = txtStockNum.Text.Trim().ParseToInt(), //skuInfo.quantity,
shipment_limit_second_list = skuInfo.shipment_limit_second_list,
sku69_code = skuInfo.sku69_code,
sku_srv_templates = skuInfo.sku_srv_templates.ParseToString(),
spec = JsonHelper.DeserializeJsonToList<spec_param>(JsonHelper.SerializeObject(skuInfo.spec)),
thumb_url = fakeImgUrl, //skuInfo.thumb_url,
weight = skuInfo.weight,
length = skuInfo.length,
price_in_yuan = "", // 内部计算直接置空
multi_price_in_yuan = "", // 内部计算直接置空
pre_sale_time = skuInfo.pre_sale_time,
sku_id = skuInfo.sku_id,
thumb_url_file_id = null, // skuInfo.thumb_url_file_id,
};
if (isAddMorePriceFirst) // 先加后乘
skuParam.multi_price = ((skuInfo.multi_price) * this.txtAddTimesFake.Text.Trim().ParseToDecimal()).ParseToInt();
skuParam.price = skuParam.multi_price + Math.Max(100, this.txtSinglePriceAdd.Text.Trim().ParseToDecimal() * 100).ParseToInt();
if (prodParamHighPriceFakeSkuImg.market_price < skuParam.price + 1000)
{
prodParamHighPriceFakeSkuImg.market_price = skuParam.price + 1000;
prodParamHighPriceFakeSkuImg.market_price_in_yuan = (prodParamHighPriceFakeSkuImg.market_price * 0.01).ParseToString();
}
prodParamHighPriceFakeSkuImg.skus.Add(skuParam);
skuParam.thumb_url = fakeImgUrl;
skuParam.thumb_url_file_id = null;
}
#region 添加升级版sku
if (pddUploadRule.IsUpgradeVersion)
{
foreach (var skuParam in prodParamHighPriceFakeSkuImg.skus)
{
var skuParamUpgrade = JsonHelper.DeserializeJsonToObject<sku_param>(JsonHelper.SerializeObject(skuParam));
skuParamUpgrade.multi_price += (txtUpgradeVersionAddPrice.Text.ParseToDecimal() * 100).ParseToInt();
skuParamUpgrade.price += (txtUpgradeVersionAddPrice.Text.ParseToDecimal() * 100).ParseToInt();
if (prodParamHighPriceFakeSkuImg.market_price < skuParamUpgrade.price + 1000)
{
prodParamHighPriceFakeSkuImg.market_price = skuParamUpgrade.price + 1000;
prodParamHighPriceFakeSkuImg.market_price_in_yuan = (prodParamHighPriceFakeSkuImg.market_price * 0.01).ParseToString();
}
var spec1 = skuParamUpgrade.spec.FirstOrDefault();
var specUpgrade = spec1;
if (specUpgrade != null)
{
specUpgrade.spec_name = this.txtUpgradeVersionName.Text.Trim() + specUpgrade.spec_name;
upgrade_Sku_Lst.Add(skuParamUpgrade);
var specUpgradeExist = upgrade_First_spec_lst.FirstOrDefault(s => s.spec_name == specUpgrade.spec_name);
if (specUpgradeExist == null)
{
specUpgradeExist = specUpgrade;
var upgradeSpecRst = get_spec_by_name(shop, specUpgradeExist.spec_name, spec1.parent_id.ParseToLong(), prodInfo.detail.cat_id.ParseToInt(),
prodParamHighPriceFakeSkuImg.goods_id.ParseToString(), prodParamHighPriceFakeSkuImg.goods_commit_id, prodInfo.chance_tab);
Thread.Sleep(Randomx.GetId(50, 100));
if (!upgradeSpecRst.Contains("\"success\":true"))
{
var error = BaseRegex.GetStringJson(ref upgradeSpecRst, "error_msg");
if (string.IsNullOrEmpty(error))
error = upgradeSpecRst;
return "设置升级款sku失败 " + error;
}
else
{
specUpgradeExist.spec_id = BaseRegex.GetLongJson(ref upgradeSpecRst, "result");
}
}
specUpgrade.spec_id = specUpgradeExist.spec_id;
}
}
foreach (var skuParam in upgrade_Sku_Lst)
{
prodParamHighPriceFakeSkuImg.skus.Add(skuParam);
}
}
#endregion
#region 添加低价Sku
if (isLowPriceSku)
{
List<spec_param> first_spec_lst = new List<spec_param>();
List<spec_param> second_spec_lst = new List<spec_param>();
List<sku_param> new_sku_lst = new List<sku_param>();
foreach (var sku in prodParamHighPriceFakeSkuImg.skus)
{
if (sku.spec.Count > 0)
{
if (sku.spec[0].parent_id != newSpecItem.parent_id && !first_spec_lst.Any(s => s.spec_id == sku.spec[0].spec_id))
{
first_spec_lst.Add(sku.spec[0]);
new_sku_lst.Add(JsonHelper.DeserializeJsonToObject<sku_param>(JsonHelper.SerializeObject(sku)));
}
}
if (sku.spec.Count > 1)
{
if (sku.spec[1].parent_id != newSpecItem.parent_id && !second_spec_lst.Any(s => s.spec_id == sku.spec[1].spec_id))
{
second_spec_lst.Add(sku.spec[1]);
new_sku_lst.Add(JsonHelper.DeserializeJsonToObject<sku_param>(JsonHelper.SerializeObject(sku)));
}
}
}
if (new_sku_lst.Count == 0)
{
new_sku_lst.Add(JsonHelper.DeserializeJsonToObject<sku_param>(JsonHelper.SerializeObject(prodParamHighPriceFakeSkuImg.skus.LastOrDefault())));
}
foreach (var sku in new_sku_lst)
{
if (sku.spec.Count > 0 && sku.spec[0].parent_id == newSpecItem.parent_id)
{
sku.spec[0] = JsonHelper.DeserializeJsonToObject<spec_param>(JsonHelper.SerializeObject(newSpecItem));
}
else if (sku.spec.Count > 1 && sku.spec[1].parent_id == newSpecItem.parent_id)
{
sku.spec[1] = JsonHelper.DeserializeJsonToObject<spec_param>(JsonHelper.SerializeObject(newSpecItem));
}
sku.multi_price = sku.multi_price - 200;
sku.price = sku.price - 200;
prodParamHighPriceFakeSkuImg.skus.Add(sku);
}
}
#endregion
#endregion
if (cell != null)
@@ -2456,14 +2449,14 @@ namespace TemuKJD.PDDForms.ProductSelectForms
Thread.Sleep(Randomx.GetId(20, 100));
var saveProdRst = "";
if (isActivityFake)
if (pddUploadRule.IsSignActivity)
saveProdRst = save_goods_edit(shop, prodParamHighPriceFakeSkuImg, prodParamHighPriceFakeSkuImg.goods_id.ParseToString(), prodParamHighPriceFakeSkuImg.goods_commit_id, isChanceApi);
else
saveProdRst = save_goods_edit(shop, prodParam, prodParam.goods_id.ParseToString(), prodParam.goods_commit_id, isChanceApi);
for (int i = 0; i < 3 && saveProdRst.Contains("http error:500"); i++)
{
Thread.Sleep(Randomx.GetId(2500 * (i+1), 3500 * (i + 1)));
if (isActivityFake)
if (pddUploadRule.IsSignActivity)
saveProdRst = save_goods_edit(shop, prodParamHighPriceFakeSkuImg, prodParamHighPriceFakeSkuImg.goods_id.ParseToString(), prodParamHighPriceFakeSkuImg.goods_commit_id, isChanceApi);
else
saveProdRst = save_goods_edit(shop, prodParam, prodParam.goods_id.ParseToString(), prodParam.goods_commit_id, isChanceApi);
@@ -2500,12 +2493,12 @@ namespace TemuKJD.PDDForms.ProductSelectForms
return "提交失败 " + error;
}
if(!isActivityFake)
if(!pddUploadRule.IsSignActivity)
{
//Thread.Sleep(Randomx.GetId(5000, 20000));
}
//如果是活动报高价
if (isActivityFake)
if (pddUploadRule.IsSignActivity)
{
Thread.Sleep(10000);
if (cell != null)
@@ -3454,6 +3447,25 @@ namespace TemuKJD.PDDForms.ProductSelectForms
/// <param name="goods_commit_id"></param>
/// <returns></returns>
public string UploadProdSkuImg(ShopLoginInfo shop, string img_base64, string goods_id, string goods_commit_id, string chanceTab)
{
Image image = null;
byte[] imageBytes = Convert.FromBase64String(img_base64);
// 使用MemoryStream创建图片对象
using (MemoryStream ms = new MemoryStream(imageBytes))
{
try
{
image = Image.FromStream(ms);
}
catch (Exception ex)
{
return "存图失败 " + ex.Message;
}
}
return UploadProdSkuImg(shop, image, goods_id, goods_commit_id, chanceTab);
}
public string UploadProdSkuImg(ShopLoginInfo shop, Image image, string goods_id, string goods_commit_id, string chanceTab)
{
string img_signature = "";
var img_signature_rst = get_upload_sku_img_signature(shop, goods_id, goods_commit_id, chanceTab);
@@ -3480,20 +3492,16 @@ namespace TemuKJD.PDDForms.ProductSelectForms
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))
// 保存图片到文件系统
try
{
Image image = Image.FromStream(ms);
// 保存图片到文件系统
try
{
image.Save("D:\\图片1.jpg", System.Drawing.Imaging.ImageFormat.Jpeg);
}
catch (Exception ex) { return "存图失败 " + ex.Message; }
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""
@@ -3515,7 +3523,7 @@ Content-Disposition: form-data; name=""pic_operations""
return uploadImgRst;
}
public KJDDBProduct GetProductDetail(string prodDbId)
public static KJDDBProduct GetProductDetail(string prodDbId)
{
if (string.IsNullOrEmpty(prodDbId))
return new KJDDBProduct();
@@ -4945,7 +4953,6 @@ Content-Type: image/jpeg
private void chkActivity_CheckedChanged(object sender, EventArgs e)
{
isActivityFake = chkActivity.Checked;
if (chkActivity.Checked)
{
chk15996.Checked = chk20981.Checked = chk21365.Checked = chk22347.Checked = true;
@@ -5174,6 +5181,15 @@ Content-Type: image/jpeg
NaiBa.Util.Helper.ConfigHelper.SaveConfig("pdd_upload_rule", pddUploadRule);
}
}
private void chkUseExtCodePrice_CheckedChanged(object sender, EventArgs e)
{
if (IsLoadComplate)
{
pddUploadRule.IsUseExtCodePrice = chkUseExtCodePrice.Checked;
NaiBa.Util.Helper.ConfigHelper.SaveConfig("pdd_upload_rule", pddUploadRule);
}
}
}
public class AddPriceRule
@@ -5212,6 +5228,9 @@ Content-Type: image/jpeg
{
public bool IsUseUpperSizeSpec { get; set; } = true;
public bool IsKeepChanceGoodImg { get; set; } = true;
/// <summary>
/// 是否报名活动(提交一个虚拟高倍率加价再通过活动价格实现商品原价)
/// </summary>
public bool IsSignActivity { get; set; } = true;
/// <summary>
/// 准备报名活动的商品原价加价倍率
@@ -5230,5 +5249,7 @@ Content-Type: image/jpeg
/// 升级版额外加价
/// </summary>
public decimal UpgradeVersionAddPrice { get; set; } = 1m;
public bool IsUseExtCodePrice { get; set; }
}
}
@@ -0,0 +1,173 @@

namespace TemuKJD.PDDForms.ProductSelectForms
{
partial class UcPddSpecEdit
{
/// <summary>
/// 必需的设计器变量。
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// 清理所有正在使用的资源。
/// </summary>
/// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region 组件设计器生成的代码
/// <summary>
/// 设计器支持所需的方法 - 不要修改
/// 使用代码编辑器修改此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.txtSpecName = new System.Windows.Forms.TextBox();
this.pictureBox1 = new System.Windows.Forms.PictureBox();
this.btnSave = new DevComponents.DotNetBar.PanelEx();
this.btnDel = new DevComponents.DotNetBar.PanelEx();
this.panel1 = new System.Windows.Forms.Panel();
this.flowLayoutPanel1 = new System.Windows.Forms.FlowLayoutPanel();
this.lblErr = new System.Windows.Forms.Label();
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit();
this.panel1.SuspendLayout();
this.flowLayoutPanel1.SuspendLayout();
this.SuspendLayout();
//
// txtSpecName
//
this.txtSpecName.Location = new System.Drawing.Point(1, 3);
this.txtSpecName.Margin = new System.Windows.Forms.Padding(2);
this.txtSpecName.Name = "txtSpecName";
this.txtSpecName.Size = new System.Drawing.Size(200, 23);
this.txtSpecName.TabIndex = 0;
//
// pictureBox1
//
this.pictureBox1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.pictureBox1.Cursor = System.Windows.Forms.Cursors.Hand;
this.pictureBox1.Location = new System.Drawing.Point(202, 3);
this.pictureBox1.Margin = new System.Windows.Forms.Padding(0, 2, 0, 2);
this.pictureBox1.Name = "pictureBox1";
this.pictureBox1.Size = new System.Drawing.Size(23, 23);
this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;
this.pictureBox1.TabIndex = 1;
this.pictureBox1.TabStop = false;
//
// btnAdd
//
this.btnSave.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
this.btnSave.Cursor = System.Windows.Forms.Cursors.Hand;
this.btnSave.DisabledBackColor = System.Drawing.Color.Empty;
this.btnSave.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnSave.Location = new System.Drawing.Point(226, 3);
this.btnSave.Name = "btnAdd";
this.btnSave.Size = new System.Drawing.Size(32, 23);
this.btnSave.Style.Alignment = System.Drawing.StringAlignment.Center;
this.btnSave.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.btnSave.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.btnSave.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder;
this.btnSave.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash;
this.btnSave.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None;
this.btnSave.Style.ForeColor.Color = System.Drawing.Color.White;
this.btnSave.Style.GradientAngle = 90;
this.btnSave.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center;
this.btnSave.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255)))));
this.btnSave.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255)))));
this.btnSave.TabIndex = 507;
this.btnSave.Text = "应用";
//
// btnDel
//
this.btnDel.CanvasColor = System.Drawing.SystemColors.Control;
this.btnDel.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
this.btnDel.DisabledBackColor = System.Drawing.Color.Empty;
this.btnDel.Location = new System.Drawing.Point(259, 3);
this.btnDel.Name = "btnDel";
this.btnDel.Size = new System.Drawing.Size(32, 23);
this.btnDel.Style.Alignment = System.Drawing.StringAlignment.Center;
this.btnDel.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255)))));
this.btnDel.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255)))));
this.btnDel.Style.Border = DevComponents.DotNetBar.eBorderType.SingleLine;
this.btnDel.Style.BorderColor.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.btnDel.Style.ForeColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText;
this.btnDel.Style.GradientAngle = 90;
this.btnDel.StyleMouseDown.Alignment = System.Drawing.StringAlignment.Center;
this.btnDel.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center;
this.btnDel.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.btnDel.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.btnDel.StyleMouseOver.ForeColor.Color = System.Drawing.Color.White;
this.btnDel.TabIndex = 506;
this.btnDel.Text = "删除";
//
// panel1
//
this.panel1.Controls.Add(this.txtSpecName);
this.panel1.Controls.Add(this.btnSave);
this.panel1.Controls.Add(this.pictureBox1);
this.panel1.Controls.Add(this.btnDel);
this.panel1.Location = new System.Drawing.Point(0, 0);
this.panel1.Margin = new System.Windows.Forms.Padding(0);
this.panel1.Name = "panel1";
this.panel1.Size = new System.Drawing.Size(292, 29);
this.panel1.TabIndex = 508;
//
// flowLayoutPanel1
//
this.flowLayoutPanel1.AutoSize = true;
this.flowLayoutPanel1.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
this.flowLayoutPanel1.Controls.Add(this.panel1);
this.flowLayoutPanel1.Controls.Add(this.lblErr);
this.flowLayoutPanel1.FlowDirection = System.Windows.Forms.FlowDirection.TopDown;
this.flowLayoutPanel1.Location = new System.Drawing.Point(0, 0);
this.flowLayoutPanel1.Name = "flowLayoutPanel1";
this.flowLayoutPanel1.Size = new System.Drawing.Size(292, 46);
this.flowLayoutPanel1.TabIndex = 509;
//
// lblErr
//
this.lblErr.AutoSize = true;
this.lblErr.ForeColor = System.Drawing.Color.Red;
this.lblErr.Location = new System.Drawing.Point(3, 29);
this.lblErr.Name = "lblErr";
this.lblErr.Size = new System.Drawing.Size(43, 17);
this.lblErr.TabIndex = 509;
this.lblErr.Text = "label1";
this.lblErr.TextChanged += new System.EventHandler(this.lblErr_TextChanged);
//
// UcPddSpecEdit
//
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
this.AutoSize = true;
this.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
this.Controls.Add(this.flowLayoutPanel1);
this.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.Name = "UcPddSpecEdit";
this.Size = new System.Drawing.Size(295, 49);
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit();
this.panel1.ResumeLayout(false);
this.panel1.PerformLayout();
this.flowLayoutPanel1.ResumeLayout(false);
this.flowLayoutPanel1.PerformLayout();
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
public System.Windows.Forms.TextBox txtSpecName;
public System.Windows.Forms.PictureBox pictureBox1;
private System.Windows.Forms.Panel panel1;
private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel1;
public DevComponents.DotNetBar.PanelEx btnSave;
public DevComponents.DotNetBar.PanelEx btnDel;
public System.Windows.Forms.Label lblErr;
}
}
@@ -0,0 +1,32 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace TemuKJD.PDDForms.ProductSelectForms
{
public partial class UcPddSpecEdit : UserControl
{
public UcPddSpecEdit()
{
InitializeComponent();
}
private void lblErr_TextChanged(object sender, EventArgs e)
{
if (string.IsNullOrWhiteSpace( lblErr.Text))
{
lblErr.Visible = false;
}
else
{
lblErr.Visible = true;
}
}
}
}
@@ -0,0 +1,120 @@
<?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>
</root>
+37
View File
@@ -0,0 +1,37 @@

namespace TemuKJD.UserComponent
{
partial class UcComboBoxMutiSelect
{
/// <summary>
/// 必需的设计器变量。
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// 清理所有正在使用的资源。
/// </summary>
/// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region 组件设计器生成的代码
/// <summary>
/// 设计器支持所需的方法 - 不要修改
/// 使用代码编辑器修改此方法的内容。
/// </summary>
private void InitializeComponent()
{
components = new System.ComponentModel.Container();
}
#endregion
}
}
@@ -0,0 +1,161 @@
using NaiBa.Util.Extension;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Diagnostics;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace TemuKJD.UserComponent
{
public partial class UcComboBoxMutiSelect : ComboBox
{
//private bool _IsMultiSelect;
//public bool IsMultiSelect { get => _IsMultiSelect; set => _IsMultiSelect = value; }
public string DefaultText { get; set; } = "全部";
public List<object> SelectItems
{
get
{
if (this.checkedListBox == null)
return this.Items.Cast<object>().ToList();
List<object> lstObj = new List<object>();
for (int i = 0; i < checkedListBox.Items.Count; i++)
{
if (checkedListBox.GetItemChecked(i))
{
lstObj.Add(checkedListBox.Items[i]);
}
}
return lstObj;
}
}
CheckedListBox checkedListBox = null;
public UcComboBoxMutiSelect()
{
SetStyle(ControlStyles.DoubleBuffer |
ControlStyles.OptimizedDoubleBuffer |
ControlStyles.AllPaintingInWmPaint, true);
UpdateStyles();
this.DropDown += UcComboBoxMutiSelect_DropDown;
//this.DropDownClosed += UcComboBoxMutiSelect_DropDownClosed;
}
private void UcComboBoxMutiSelect_DropDownClosed(object sender, EventArgs e)
{
if (checkedListBox != null)
checkedListBox.Visible = false;
}
private void UcComboBoxMutiSelect_DropDown(object sender, EventArgs e)
{
this.DropDownHeight = 1;
if (checkedListBox == null)
{
checkedListBox = new CheckedListBox();
checkedListBox.Visible = false;
checkedListBox.CheckOnClick = true;
checkedListBox.ItemCheck += checkedListBox_ItemCheck;
checkedListBox.MouseLeave += checkedListBox_MouseLeave;
checkedListBox.MouseEnter += CheckedListBox_MouseEnter;
checkedListBox.MouseMove += CheckedListBox_MouseMove;
//checkedListBox.MouseUp += new MouseEventHandler(this.checkedListBox_MouseUp);
Point point = new Point();
point.X = this.Left;
point.Y = this.Top + this.Height;
var parentForm = this.Parent;
while (!(parentForm is Form))
{
point.X += parentForm.Left;
point.Y += parentForm.Top;
parentForm = parentForm.Parent;
}
parentForm.Controls.Add(checkedListBox);
checkedListBox.Location = point;
checkedListBox.Size = new Size(Math.Max(80, this.Width), 100);
}
string str1 = string.Join(",", this.Items.Cast<object>().Select(o => o.ParseToString()));
string str2 = string.Join(",", this.checkedListBox.Items.Cast<object>().Select(o => o.ParseToString()));
if (str1 != str2)
{
foreach (var item in this.Items)
{
checkedListBox.Items.Add(item.ParseToString(), true);
}
}
this.FindForm().ActiveControl = checkedListBox;
checkedListBox.Visible = true;
checkedListBox.BringToFront();
}
private void CheckedListBox_MouseMove(object sender, MouseEventArgs e)
{
//this.DropDownClosed -= UcComboBoxMutiSelect_DropDownClosed;
}
private void CheckedListBox_MouseEnter(object sender, EventArgs e)
{
//this.DropDownClosed -= UcComboBoxMutiSelect_DropDownClosed;
}
private void checkedListBox_MouseLeave(object sender, EventArgs e)
{
////this.DropDownClosed += UcComboBoxMutiSelect_DropDownClosed;
////统计选取的项目
//string str = "";
//for (int i = 0; i < checkedListBox.Items.Count; i++)
//{
// if (checkedListBox.GetItemChecked(i))
// {
// str += $"{checkedListBox.Items[i].ParseToString()};";
// }
//}
//this.Text = str;
checkedListBox.Visible = false;
this.OnDropDownClosed(null);
}
private void checkedListBox_ItemCheck(object sender, EventArgs e)
{
//统计选取的项目
Task.Run(() =>
{
Thread.Sleep(100);
Invoke(new Action(() =>
{
string str = "";
for (int i = 0; i < checkedListBox.Items.Count; i++)
{
if (checkedListBox.GetItemChecked(i))
{
str += $"{checkedListBox.Items[i].ParseToString()};";
}
}
this.Text = str;
string str1 = string.Join(";", this.Items.Cast<object>().Select(o => o.ParseToString()));
if (this.Text.Trim(';') == str1)
{
this.Text = this.DefaultText;
}
}));
});
}
}
}