ai图片随机作为sku图或者主图上传商品
This commit is contained in:
1 parent
0d3ab6321e
commit
ec8736b8f9
31 files changed
+3169
-75
No files matched your search
@@ -228,6 +228,7 @@
|
||||
<Compile Include="Model\Result\TemuDetailProductInfo.cs" />
|
||||
<Compile Include="Model\Param\TemuProductManage\TemuProductParam.cs" />
|
||||
<Compile Include="Model\Result\KJDDBProduct.cs" />
|
||||
<Compile Include="Model\Result\TemuResult\AiSkuImgInfo.cs" />
|
||||
<Compile Include="Model\Result\TemuResult\TemuSizeConfigResult\TemuSizeConfigInfo.cs" />
|
||||
<Compile Include="Model\Result\TemuReturnPackageDetailInfo.cs" />
|
||||
<Compile Include="Model\Result\TemuStockInfo.cs" />
|
||||
|
||||
@@ -27,7 +27,7 @@ namespace AllBase
|
||||
/// <summary>
|
||||
/// 版本ID
|
||||
/// </summary>
|
||||
public static int VersionCount = 656;
|
||||
public static int VersionCount = 657;
|
||||
//public static int VersionCount = 613;
|
||||
|
||||
/// <summary>
|
||||
|
||||
@@ -408,8 +408,8 @@ namespace AllBase.Model.Result
|
||||
|
||||
public class TemuProductImageProcessExtVO
|
||||
{
|
||||
public long? productSkuId { get; set; }
|
||||
public bool? sensitiveCateProblem { get; set; }
|
||||
public object sensitiveLimitProblem { get; set; }
|
||||
public string imgUrl { get; set; }
|
||||
public int? imgTag { get; set; }
|
||||
public object isOcr { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace AllBase.Model.Result.TemuResult
|
||||
{
|
||||
public class AiSkuImgInfo
|
||||
{
|
||||
public int id { get; set; }
|
||||
public int img_base64_db_id { get; set; }
|
||||
public string img_md5 { get; set; }
|
||||
public string img_url { get; set; }
|
||||
public string product_id { get; set; }
|
||||
public string spec_id { get; set; }
|
||||
public string spec_name { get; set; }
|
||||
public string original_img_url { get; set; }
|
||||
public DateTime add_time { get; set; }
|
||||
public DateTime mdy_time { get; set; }
|
||||
public DateTime base64_mdy_time { get; set; }
|
||||
public string img_base64 { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -72,7 +72,7 @@ namespace KJD_Web.BLL
|
||||
if (time1 != EncrypUtil.Encryption(time))
|
||||
return "{\"code\":50000,\"msg\":\"校验失败\"}";
|
||||
|
||||
var user_name = RegexUtils.GetStringQuery(ref inputData, "user_name")?.Replace("'","\\'");
|
||||
var user_name = RegexUtils.GetStringQuery(ref inputData, "user_name")?.Replace("'", "\\'");
|
||||
var password = RegexUtils.GetStringQuery(ref inputData, "password")?.Replace("'", "\\'");
|
||||
var search_spu = RegexUtils.GetStringQuery(ref inputData, "search_spu")?.Replace("'", "\\'");
|
||||
var search_skc = RegexUtils.GetStringQuery(ref inputData, "search_skc")?.Replace("'", "\\'");
|
||||
@@ -86,7 +86,7 @@ namespace KJD_Web.BLL
|
||||
var sort_field = RegexUtils.GetStringQuery(ref inputData, "sort_field")?.Replace("'", "\\'");
|
||||
|
||||
int page = RegexUtils.GetStringQuery(ref inputData, "page").ParseToInt();
|
||||
int page_size= RegexUtils.GetStringQuery(ref inputData, "page_size").ParseToInt(50);
|
||||
int page_size = RegexUtils.GetStringQuery(ref inputData, "page_size").ParseToInt(50);
|
||||
|
||||
string conn = System.Configuration.ConfigurationManager.ConnectionStrings["ConnKJD"].ConnectionString;
|
||||
MysqlUtils mySql = new MysqlUtils(conn);
|
||||
@@ -129,7 +129,7 @@ namespace KJD_Web.BLL
|
||||
"p.add_time,p.mdy_time,p.select_total_count,p.fission_words,p.head_words,p.end_words,COUNT(s.id) AS select_count " +
|
||||
"FROM kjd.product p LEFT JOIN kjd.product_select s ON p.id=s.out_product_id AND s.shop_id='" + select_shop_id + "' " +
|
||||
"WHERE p.is_del=0";
|
||||
|
||||
|
||||
//where子句
|
||||
sql += where;
|
||||
|
||||
@@ -701,10 +701,10 @@ namespace KJD_Web.BLL
|
||||
if (!string.IsNullOrEmpty(id))
|
||||
sql += " where id in (" + id + ")";
|
||||
else if (!string.IsNullOrEmpty(shop_id))
|
||||
sql += " where shop_id in ('" + shop_id.Replace(",","','") + "')";
|
||||
sql += " where shop_id in ('" + shop_id.Replace(",", "','") + "')";
|
||||
else
|
||||
sql += " where 1=2";
|
||||
if(!string.IsNullOrEmpty(status))
|
||||
if (!string.IsNullOrEmpty(status))
|
||||
sql += " and status='" + status + "';";
|
||||
var rst = mySql.ExecuteNonQuery(sql);
|
||||
mySql.Close();
|
||||
@@ -857,23 +857,278 @@ namespace KJD_Web.BLL
|
||||
}
|
||||
return "{\"code\":19999,\"msg\":\"输入为空\"}";
|
||||
}
|
||||
|
||||
public string AddSkuImg(string inputData)
|
||||
{
|
||||
if (!string.IsNullOrEmpty(inputData))
|
||||
{
|
||||
var time = 0;
|
||||
int.TryParse(RegexUtils.GetStringQuery(ref inputData, "time"), out time);
|
||||
string time1 = RegexUtils.GetStringQuery(ref inputData, "code");
|
||||
if (time1 != EncrypUtil.Encryption(time))
|
||||
return "{\"code\":50000,\"msg\":\"校验失败\"}";
|
||||
|
||||
string user_name = RegexUtils.GetStringQuery(ref inputData, "user_name");
|
||||
string img_md5 = RegexUtils.GetStringQuery(ref inputData, "img_md5");
|
||||
string img_base64 = RegexUtils.GetStringQuery(ref inputData, "img_base64");
|
||||
string product_id = RegexUtils.GetStringQuery(ref inputData, "product_id");
|
||||
string spec_id = RegexUtils.GetStringQuery(ref inputData, "spec_id");
|
||||
string spec_name = RegexUtils.GetStringQuery(ref inputData, "spec_name");
|
||||
string original_img_url = RegexUtils.GetStringQuery(ref inputData, "original_img_url");
|
||||
|
||||
if (string.IsNullOrEmpty(user_name))
|
||||
{
|
||||
return "{\"code\":500,\"msg\":\"没有用户名\"}";
|
||||
}
|
||||
|
||||
int img_base64_db_id = 0;
|
||||
string conn = System.Configuration.ConfigurationManager.ConnectionStrings["ConnKJD"].ConnectionString;
|
||||
MysqlUtils mySql = new MysqlUtils(conn);
|
||||
string sql = "";
|
||||
|
||||
sql = "select id from kjd.sku_img_base64 where img_md5='" + img_md5 + "';";
|
||||
var nRst = 0L;
|
||||
var rst = mySql.ExecuteFirstInt(sql).ParseToLong();
|
||||
if (rst <= 0)
|
||||
{
|
||||
sql = "insert into kjd.sku_img_base64 (img_md5,img_base64) " +
|
||||
"values ('" + img_md5 + "','" + img_base64 + "');";
|
||||
rst = mySql.ExecuteInsertId(sql);
|
||||
}
|
||||
if (rst > 0)
|
||||
{
|
||||
img_base64_db_id = (int)rst;
|
||||
sql = "insert kjd.sku_img (img_base64_db_id,product_id,spec_id,spec_name,original_img_url) " +
|
||||
"values (" + img_base64_db_id + ",'" + product_id + "','" + spec_id + "','" + spec_name + "','" + original_img_url + "');";
|
||||
nRst = mySql.ExecuteInsertId(sql);
|
||||
}
|
||||
mySql.Close();
|
||||
if (nRst > 0)
|
||||
{
|
||||
return "{\"code\":200,\"msg\":\"success\",\"sku_img_id\":" + nRst + ",\"sku_img_Base64_id\":" + img_base64_db_id + "}";
|
||||
}
|
||||
|
||||
return "{\"code\":500,\"msg\":\"" + mySql.Message + "\"}";
|
||||
}
|
||||
return "{\"code\":19999,\"msg\":\"输入为空\"}";
|
||||
}
|
||||
|
||||
public string DelSkuImg(string inputData)
|
||||
{
|
||||
if (!string.IsNullOrEmpty(inputData))
|
||||
{
|
||||
var time = 0;
|
||||
int.TryParse(RegexUtils.GetStringQuery(ref inputData, "time"), out time);
|
||||
string time1 = RegexUtils.GetStringQuery(ref inputData, "code");
|
||||
if (time1 != EncrypUtil.Encryption(time))
|
||||
return "{\"code\":50000,\"msg\":\"校验失败\"}";
|
||||
|
||||
string user_name = RegexUtils.GetStringQuery(ref inputData, "user_name");
|
||||
int img_id = RegexUtils.GetStringQuery(ref inputData, "img_id").ParseToInt();
|
||||
int img_base64_id = RegexUtils.GetStringQuery(ref inputData, "img_base64_id").ParseToInt();
|
||||
|
||||
if (string.IsNullOrEmpty(user_name))
|
||||
{
|
||||
return "{\"code\":500,\"msg\":\"没有用户名\"}";
|
||||
}
|
||||
if (img_id == 0 || img_base64_id == 0)
|
||||
{
|
||||
return "{\"code\":501,\"msg\":\"图片编号或者图片数据编号为空\"}";
|
||||
}
|
||||
|
||||
string conn = System.Configuration.ConfigurationManager.ConnectionStrings["ConnKJD"].ConnectionString;
|
||||
MysqlUtils mySql = new MysqlUtils(conn);
|
||||
string sql = "";
|
||||
|
||||
sql = "delete from kjd.sku_img where id=" + img_id + ";";
|
||||
var bRst = mySql.ExecuteNonQuery(sql);
|
||||
if (!bRst)
|
||||
{
|
||||
mySql.Close();
|
||||
return "{\"code\":500,\"msg\":\"" + mySql.Message + "\"}";
|
||||
}
|
||||
sql = "select id from kjd.sku_img where img_base64_db_id=" + img_base64_id + " limit 1;";
|
||||
var nRst = mySql.ExecuteRowCount(sql);
|
||||
//如果已无对图片的引用,则删除原图片
|
||||
if (nRst == 0)
|
||||
{
|
||||
sql = "delete from kjd.sku_img_base64 where id=" + img_base64_id + ";";
|
||||
mySql.ExecuteNonQuery(sql);
|
||||
}
|
||||
mySql.Close();
|
||||
if (!string.IsNullOrEmpty(mySql.Message))
|
||||
return "{\"code\":500,\"msg\":\"" + mySql.Message + "\"}";
|
||||
return "{\"code\":200,\"msg\":\"success\"}";
|
||||
}
|
||||
return "{\"code\":19999,\"msg\":\"输入为空\"}";
|
||||
}
|
||||
|
||||
public string GetSkuImgList(string inputData, bool isDetail = 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")?.Replace("'", "\\'");
|
||||
var password = RegexUtils.GetStringQuery(ref inputData, "password")?.Replace("'", "\\'");
|
||||
if (string.IsNullOrEmpty(user_name))
|
||||
{
|
||||
return "{\"code\":500,\"msg\":\"没有用户名\"}";
|
||||
}
|
||||
|
||||
var search_db_id = RegexUtils.GetStringQuery(ref inputData, "search_db_id")?.Replace("'", "\\'");
|
||||
var search_db_ids = RegexUtils.GetStringQuery(ref inputData, "search_db_ids")?.Replace("'", "\\'");
|
||||
var search_product_id = RegexUtils.GetStringQuery(ref inputData, "search_product_id")?.Replace("'", "\\'");
|
||||
var search_spec_id = RegexUtils.GetStringQuery(ref inputData, "search_spec_id")?.Replace("'", "\\'");
|
||||
var search_original_img_url = RegexUtils.GetStringQuery(ref inputData, "search_original_img_url")?.Replace("'", "\\'");
|
||||
|
||||
int page = RegexUtils.GetStringQuery(ref inputData, "page").ParseToInt();
|
||||
int page_size = RegexUtils.GetStringQuery(ref inputData, "page_size").ParseToInt(200);
|
||||
|
||||
string conn = System.Configuration.ConfigurationManager.ConnectionStrings["ConnKJD"].ConnectionString;
|
||||
MysqlUtils mySql = new MysqlUtils(conn);
|
||||
|
||||
string sql = "select count(id) from kjd.sku_img s where 1=1";
|
||||
|
||||
string where = "";
|
||||
if (!string.IsNullOrWhiteSpace(search_db_id))
|
||||
where += " and s.id like '%" + search_db_id + "%'";
|
||||
if (!string.IsNullOrWhiteSpace(search_product_id))
|
||||
where += " and s.product_id like '%" + search_product_id + "%'";
|
||||
if (!string.IsNullOrWhiteSpace(search_spec_id))
|
||||
where += " and s.spec_id like '%" + search_spec_id + "%'";
|
||||
if (!string.IsNullOrWhiteSpace(search_original_img_url))
|
||||
where += " and s.original_img_url like '%" + search_original_img_url + "%'";
|
||||
if (!string.IsNullOrEmpty(search_db_ids))
|
||||
where += " and s.id in (" + search_db_ids + ")";
|
||||
sql += where;
|
||||
|
||||
var count = mySql.ExecuteRowCount(sql);
|
||||
|
||||
DataTable dt;
|
||||
if (count == 0)
|
||||
{
|
||||
dt = new DataTable();
|
||||
}
|
||||
else
|
||||
{
|
||||
sql = "select s.*,b.img_md5,b.img_base64,b.img_url,b.mdy_time base64_mdy_time from kjd.sku_img s left join kjd.sku_img_base64 b on " +
|
||||
"s.img_base64_db_id = b.id where 1=1";
|
||||
|
||||
//where子句
|
||||
sql += where;
|
||||
|
||||
sql += " order by s.id desc";
|
||||
sql += " limit " + Math.Max(page - 1, 0) * page_size + "," + page_size;
|
||||
dt = mySql.ExecuteDataTable(sql);
|
||||
}
|
||||
mySql.Close();
|
||||
if (!string.IsNullOrEmpty(mySql.Message))
|
||||
{
|
||||
return "{\"code\":500,\"msg\":\"" + mySql.Message + "\",\"data\":[],\"count\":" + 0 + "}";
|
||||
}
|
||||
|
||||
if (dt != null)
|
||||
{
|
||||
try
|
||||
{
|
||||
List<SkuImgResult> skuImgLst = new List<SkuImgResult>();
|
||||
foreach (DataRow row in dt.Rows)
|
||||
{
|
||||
SkuImgResult img = new SkuImgResult
|
||||
{
|
||||
id = row["id"].ParseToInt(),
|
||||
img_base64 = row["img_base64"].ParseToString(),
|
||||
img_base64_db_id = row["img_base64_db_id"].ParseToInt(),
|
||||
img_md5 = row["img_md5"].ParseToString(),
|
||||
img_url = row["img_url"].ParseToString(),
|
||||
original_img_url = row["original_img_url"].ParseToString(),
|
||||
add_time = Convert.ToDateTime(row["add_time"]),
|
||||
mdy_time = Convert.ToDateTime(row["mdy_time"]),
|
||||
base64_mdy_time = Convert.ToDateTime(row["base64_mdy_time"]),
|
||||
product_id = row["product_id"].ParseToString(),
|
||||
spec_id = row["spec_id"].ParseToString(),
|
||||
spec_name = row["spec_name"].ParseToString(),
|
||||
};
|
||||
if(img.base64_mdy_time.AddDays(2) < DateTime.Now)
|
||||
{
|
||||
// 每过两天返回给客户端空图,让客户端重传base64图片
|
||||
img.img_url = "";
|
||||
}
|
||||
//if (isDetail)
|
||||
//{
|
||||
// img.img_base64 = row["img_base64"].ToString();
|
||||
//}
|
||||
skuImgLst.Add(img);
|
||||
}
|
||||
var data = JsonUtils.SerializerObjectToString(skuImgLst);
|
||||
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 MdyBase64ImgUrl(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("'", "\\'");
|
||||
var img_url = RegexUtils.GetStringQuery(ref inputData, "img_url")?.Replace("'", "\\'");
|
||||
if(string.IsNullOrEmpty(id) || string.IsNullOrEmpty(img_url))
|
||||
{
|
||||
return "{\"code\":500,\"msg\":\"保存失败:缺少图片编号或图片路径\"}";
|
||||
}
|
||||
|
||||
string conn = System.Configuration.ConfigurationManager.ConnectionStrings["ConnKJD"].ConnectionString;
|
||||
MysqlUtils mySql = new MysqlUtils(conn);
|
||||
string sql = "update kjd.sku_img_base64 set img_url=\'" + img_url + "\' 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\":\"输入为空\"}";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
List<MySqlParameter> paramLst = new List<MySqlParameter>();
|
||||
paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "spu_id", Value = spu_id, });
|
||||
paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "skc_id", Value = skc_id, });
|
||||
paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "cat_id", Value = cat_id, });
|
||||
paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "cat_name", Value = cat_name, });
|
||||
paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "product_name", Value = product_name, });
|
||||
paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "ext_code", Value = ext_code, });
|
||||
paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "main_img", Value = main_img, });
|
||||
paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "product_json", Value = product_json, });
|
||||
paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "size_json", Value = size_json, });
|
||||
paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "notes", Value = notes.ParseToString(), });
|
||||
paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "product_md5", Value = product_md5, });
|
||||
paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "add_time", Value = add_time, });
|
||||
paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "mdy_time", Value = mdy_time, });
|
||||
rst = mySql.ExecuteInsertId(sql, paramLst.ToArray());*/
|
||||
paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "spu_id", Value = spu_id, });
|
||||
paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "skc_id", Value = skc_id, });
|
||||
paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "cat_id", Value = cat_id, });
|
||||
paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "cat_name", Value = cat_name, });
|
||||
paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "product_name", Value = product_name, });
|
||||
paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "ext_code", Value = ext_code, });
|
||||
paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "main_img", Value = main_img, });
|
||||
paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "product_json", Value = product_json, });
|
||||
paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "size_json", Value = size_json, });
|
||||
paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "notes", Value = notes.ParseToString(), });
|
||||
paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "product_md5", Value = product_md5, });
|
||||
paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "add_time", Value = add_time, });
|
||||
paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "mdy_time", Value = mdy_time, });
|
||||
rst = mySql.ExecuteInsertId(sql, paramLst.ToArray());*/
|
||||
@@ -114,6 +114,7 @@
|
||||
<Compile Include="Model\ProductSelectResultParam.cs" />
|
||||
<Compile Include="Model\ShopModel\ShopParam.cs" />
|
||||
<Compile Include="Model\ShopModel\sku_img_replace.cs" />
|
||||
<Compile Include="Model\SkuImgResult.cs" />
|
||||
<Compile Include="Model\UserLoginResultParam.cs" />
|
||||
<Compile Include="BXXPriceService.asmx.cs">
|
||||
<DependentUpon>BXXPriceService.asmx</DependentUpon>
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Web;
|
||||
|
||||
namespace KJD_Web.Model
|
||||
{
|
||||
public class SkuImgResult
|
||||
{
|
||||
public int id { get; set; }
|
||||
public int img_base64_db_id { get; set; }
|
||||
public string img_md5 { get; set; }
|
||||
public string img_url { get; set; }
|
||||
public string product_id { get; set; }
|
||||
public string spec_id { get; set; }
|
||||
public string spec_name { get; set; }
|
||||
public string original_img_url { get; set; }
|
||||
public DateTime add_time { get; set; }
|
||||
public DateTime mdy_time { get; set; }
|
||||
public DateTime base64_mdy_time { get; set; }
|
||||
public string img_base64 { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -229,5 +229,49 @@ namespace KJD_Web
|
||||
Context.Response.Write(result);
|
||||
Context.Response.End();
|
||||
}
|
||||
|
||||
[WebMethod]
|
||||
public void add_sku_image()
|
||||
{
|
||||
string jsontext = GetRequestJsonString();
|
||||
var result = jsontext;
|
||||
result = new ProductManage().AddSkuImg(jsontext);
|
||||
|
||||
Context.Response.Write(result);
|
||||
Context.Response.End();
|
||||
}
|
||||
|
||||
[WebMethod]
|
||||
public void del_sku_image()
|
||||
{
|
||||
string jsontext = GetRequestJsonString();
|
||||
var result = jsontext;
|
||||
result = new ProductManage().DelSkuImg(jsontext);
|
||||
|
||||
Context.Response.Write(result);
|
||||
Context.Response.End();
|
||||
}
|
||||
|
||||
[WebMethod]
|
||||
public void get_sku_image_list()
|
||||
{
|
||||
string jsontext = GetRequestJsonString();
|
||||
var result = jsontext;
|
||||
result = new ProductManage().GetSkuImgList(jsontext);
|
||||
|
||||
Context.Response.Write(result);
|
||||
Context.Response.End();
|
||||
}
|
||||
|
||||
[WebMethod]
|
||||
public void mdy_base64_img_url()
|
||||
{
|
||||
string jsontext = GetRequestJsonString();
|
||||
var result = jsontext;
|
||||
result = new ProductManage().MdyBase64ImgUrl(jsontext);
|
||||
|
||||
Context.Response.Write(result);
|
||||
Context.Response.End();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,91 @@
|
||||
using CefSharp;
|
||||
using CefSharp.Handler;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using TemuKJD.BaseForms;
|
||||
|
||||
namespace TemuKJD.Helper
|
||||
{
|
||||
public class CustomDownloadHandler : DownloadHandler
|
||||
{
|
||||
private string downloadPath;
|
||||
public Action<object, DownloadItem> DownloadCompleteEvent;
|
||||
|
||||
public CustomDownloadHandler(string path = null)
|
||||
{
|
||||
// 设置默认下载路径为用户的下载文件夹
|
||||
downloadPath = path ?? Path.Combine(
|
||||
Environment.GetFolderPath(Environment.SpecialFolder.UserProfile),
|
||||
"Downloads");
|
||||
|
||||
// 确保下载目录存在
|
||||
if (!Directory.Exists(downloadPath))
|
||||
{
|
||||
Directory.CreateDirectory(downloadPath);
|
||||
}
|
||||
}
|
||||
|
||||
protected override bool OnBeforeDownload(
|
||||
IWebBrowser chromiumWebBrowser,
|
||||
IBrowser browser,
|
||||
DownloadItem downloadItem,
|
||||
IBeforeDownloadCallback callback)
|
||||
{
|
||||
// 必须检查回调是否有效
|
||||
if (!callback.IsDisposed)
|
||||
{
|
||||
// 设置下载路径和显示下载对话框
|
||||
string downloadFileName = downloadItem.SuggestedFileName;
|
||||
if (downloadFileName.Contains('.'))
|
||||
downloadFileName = downloadFileName.Insert(downloadFileName.LastIndexOf('.'), DateTime.Now.ToString("yyMMddHHmmss"));
|
||||
else
|
||||
downloadFileName += DateTime.Now.ToString("yyMMddHHmmss");
|
||||
var filePath = Path.Combine(downloadPath, downloadFileName);
|
||||
using (callback)
|
||||
{
|
||||
callback.Continue(filePath, showDialog: true);
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
protected override void OnDownloadUpdated(
|
||||
IWebBrowser chromiumWebBrowser,
|
||||
IBrowser browser,
|
||||
DownloadItem downloadItem,
|
||||
IDownloadItemCallback callback)
|
||||
{
|
||||
// 下载完成时触发
|
||||
if (downloadItem.IsComplete)
|
||||
{
|
||||
//Console.WriteLine($"下载完成: {downloadItem.FullPath}");
|
||||
// 可以在这里触发通知或其他后续操作
|
||||
DownloadCompleteEvent?.Invoke(chromiumWebBrowser, downloadItem);
|
||||
}
|
||||
// 下载取消时触发
|
||||
else if (downloadItem.IsCancelled)
|
||||
{
|
||||
//Console.WriteLine($"下载取消: {downloadItem.SuggestedFileName}");
|
||||
}
|
||||
// 正在下载中,更新进度
|
||||
else if (downloadItem.IsInProgress)
|
||||
{
|
||||
//Console.WriteLine($"下载进度: {downloadItem.PercentComplete}% " +
|
||||
// $"({FormatFileSize(downloadItem.ReceivedBytes)}/{FormatFileSize(downloadItem.TotalBytes)}) " +
|
||||
// $"速度: {FormatFileSize(downloadItem.CurrentSpeed)}/s");
|
||||
}
|
||||
}
|
||||
|
||||
// 格式化文件大小显示
|
||||
private string FormatFileSize(long bytes)
|
||||
{
|
||||
if (bytes < 1024) return $"{bytes} B";
|
||||
if (bytes < 1048576) return $"{bytes / 1024:F1} KB";
|
||||
return $"{bytes / 1048576:F1} MB";
|
||||
}
|
||||
}
|
||||
}
|
||||
+40
-3
@@ -124,6 +124,7 @@
|
||||
<Compile Include="CookieVisitor.cs" />
|
||||
<Compile Include="Extension\DataGridViewExtension.cs" />
|
||||
<Compile Include="Helper\AesHelper.cs" />
|
||||
<Compile Include="Helper\CustomDownloadHandler.cs" />
|
||||
<Compile Include="Helper\CustomResourceRequestHandlerLocal.cs" />
|
||||
<Compile Include="Helper\FddlHelper.cs" />
|
||||
<Compile Include="Helper\LifeSpanHandlerLocal.cs" />
|
||||
@@ -550,12 +551,24 @@
|
||||
<Compile Include="PDDForms\ShopForms\PDDShopUpdateFddlCookieForm.Designer.cs">
|
||||
<DependentUpon>PDDShopUpdateFddlCookieForm.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="ToolForms\CefForm.cs">
|
||||
<Compile Include="ToolForms\DouBaoImgListForm.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="ToolForms\CefForm.Designer.cs">
|
||||
<Compile Include="ToolForms\DouBaoImgListForm.Designer.cs">
|
||||
<DependentUpon>DouBaoImgListForm.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="ToolForms\Old\CefForm.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="ToolForms\Old\CefForm.Designer.cs">
|
||||
<DependentUpon>CefForm.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="ToolForms\DouBaoImgCefForm.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="ToolForms\DouBaoImgCefForm.Designer.cs">
|
||||
<DependentUpon>DouBaoImgCefForm.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="ToolForms\Old\ChangeIPForm.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
@@ -722,6 +735,18 @@
|
||||
<Compile Include="ToolForms\ShowImgForm.Designer.cs">
|
||||
<DependentUpon>ShowImgForm.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="ToolForms\UcSkuImgItem.cs">
|
||||
<SubType>UserControl</SubType>
|
||||
</Compile>
|
||||
<Compile Include="ToolForms\UcSkuImgItem.Designer.cs">
|
||||
<DependentUpon>UcSkuImgItem.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="ToolForms\UcSkuImgListItem.cs">
|
||||
<SubType>UserControl</SubType>
|
||||
</Compile>
|
||||
<Compile Include="ToolForms\UcSkuImgListItem.Designer.cs">
|
||||
<DependentUpon>UcSkuImgListItem.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="UserComponent\ButtonLc.cs">
|
||||
<SubType>Component</SubType>
|
||||
</Compile>
|
||||
@@ -1021,9 +1046,15 @@
|
||||
<EmbeddedResource Include="PDDForms\ShopForms\PDDShopUpdateFddlCookieForm.resx">
|
||||
<DependentUpon>PDDShopUpdateFddlCookieForm.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="ToolForms\CefForm.resx">
|
||||
<EmbeddedResource Include="ToolForms\DouBaoImgListForm.resx">
|
||||
<DependentUpon>DouBaoImgListForm.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="ToolForms\Old\CefForm.resx">
|
||||
<DependentUpon>CefForm.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="ToolForms\DouBaoImgCefForm.resx">
|
||||
<DependentUpon>DouBaoImgCefForm.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="ToolForms\Old\ChangeIPForm.resx">
|
||||
<DependentUpon>ChangeIPForm.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
@@ -1107,6 +1138,12 @@
|
||||
<EmbeddedResource Include="ToolForms\ShowImgForm.resx">
|
||||
<DependentUpon>ShowImgForm.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="ToolForms\UcSkuImgItem.resx">
|
||||
<DependentUpon>UcSkuImgItem.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="ToolForms\UcSkuImgListItem.resx">
|
||||
<DependentUpon>UcSkuImgListItem.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="UserControls\StatusBarUserControl.resx">
|
||||
<DependentUpon>StatusBarUserControl.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
|
||||
@@ -30,6 +30,7 @@
|
||||
{
|
||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(DbProductEditNotesForm));
|
||||
this.panel2 = new System.Windows.Forms.Panel();
|
||||
this.btnSkuAi = new TemuKJD.UserControls.ButtonEx();
|
||||
this.label7 = new System.Windows.Forms.Label();
|
||||
this.txtFissionWords = new DevComponents.DotNetBar.Controls.TextBoxX();
|
||||
this.txtEndWords = new System.Windows.Forms.TextBox();
|
||||
@@ -55,6 +56,7 @@
|
||||
// panel2
|
||||
//
|
||||
this.panel2.BackColor = System.Drawing.Color.White;
|
||||
this.panel2.Controls.Add(this.btnSkuAi);
|
||||
this.panel2.Controls.Add(this.label7);
|
||||
this.panel2.Controls.Add(this.txtFissionWords);
|
||||
this.panel2.Controls.Add(this.txtEndWords);
|
||||
@@ -79,6 +81,23 @@
|
||||
this.panel2.Size = new System.Drawing.Size(464, 686);
|
||||
this.panel2.TabIndex = 1;
|
||||
//
|
||||
// btnSkuAi
|
||||
//
|
||||
this.btnSkuAi.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.btnSkuAi.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
|
||||
this.btnSkuAi.Cursor = System.Windows.Forms.Cursors.Hand;
|
||||
this.btnSkuAi.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
|
||||
this.btnSkuAi.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
this.btnSkuAi.ForeColor = System.Drawing.Color.White;
|
||||
this.btnSkuAi.Location = new System.Drawing.Point(90, 640);
|
||||
this.btnSkuAi.Margin = new System.Windows.Forms.Padding(2);
|
||||
this.btnSkuAi.Name = "btnSkuAi";
|
||||
this.btnSkuAi.Size = new System.Drawing.Size(77, 26);
|
||||
this.btnSkuAi.TabIndex = 404;
|
||||
this.btnSkuAi.Text = "SKU AI图";
|
||||
this.btnSkuAi.UseVisualStyleBackColor = false;
|
||||
this.btnSkuAi.Click += new System.EventHandler(this.btnSkuAi_Click);
|
||||
//
|
||||
// label7
|
||||
//
|
||||
this.label7.AutoSize = true;
|
||||
@@ -318,5 +337,6 @@
|
||||
private System.Windows.Forms.Label label6;
|
||||
private System.Windows.Forms.TextBox txtHeadWords;
|
||||
private System.Windows.Forms.Label label5;
|
||||
private UserControls.ButtonEx btnSkuAi;
|
||||
}
|
||||
}
|
||||
@@ -12,6 +12,7 @@ using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
using AllBase;
|
||||
using Work;
|
||||
using TemuKJD.ToolForms;
|
||||
|
||||
namespace TemuKJD.KJDForms.ProductSelectForms
|
||||
{
|
||||
@@ -73,5 +74,11 @@ namespace TemuKJD.KJDForms.ProductSelectForms
|
||||
this.Close();
|
||||
}
|
||||
}
|
||||
|
||||
private void btnSkuAi_Click(object sender, EventArgs e)
|
||||
{
|
||||
DouBaoImgCefForm doubaoForm = new DouBaoImgCefForm(dbProd);
|
||||
doubaoForm.ShowDialog();
|
||||
}
|
||||
}
|
||||
}
|
||||
+40
-16
@@ -39,6 +39,7 @@
|
||||
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle8 = new System.Windows.Forms.DataGridViewCellStyle();
|
||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(DbProductSelectListManageForm));
|
||||
this.splitContainer1 = new System.Windows.Forms.SplitContainer();
|
||||
this.chkAiSkuAndMainImg = new TemuKJD.UserComponent.UcCheckBox(this.components);
|
||||
this.chkLongTitle = new TemuKJD.UserComponent.UcCheckBox(this.components);
|
||||
this.chkSameExtcodeRandomMainImg = new TemuKJD.UserComponent.UcCheckBox(this.components);
|
||||
this.lblSkuRandomLetterNotes = new System.Windows.Forms.Label();
|
||||
@@ -112,7 +113,7 @@
|
||||
this.chkAddPrice = new TemuKJD.UserComponent.UcCheckBox(this.components);
|
||||
this.chkEnglishProdName = new TemuKJD.UserComponent.UcCheckBox(this.components);
|
||||
this.splitContainer2 = new System.Windows.Forms.SplitContainer();
|
||||
this.pnlError = new System.Windows.Forms.Panel();
|
||||
this.pnlError = new DevComponents.DotNetBar.PanelEx();
|
||||
this.lblError = new System.Windows.Forms.Label();
|
||||
this.pbLoading = new System.Windows.Forms.PictureBox();
|
||||
this.lblCustomImgNum = new System.Windows.Forms.Label();
|
||||
@@ -189,6 +190,7 @@
|
||||
//
|
||||
// splitContainer1.Panel1
|
||||
//
|
||||
this.splitContainer1.Panel1.Controls.Add(this.chkAiSkuAndMainImg);
|
||||
this.splitContainer1.Panel1.Controls.Add(this.chkLongTitle);
|
||||
this.splitContainer1.Panel1.Controls.Add(this.chkSameExtcodeRandomMainImg);
|
||||
this.splitContainer1.Panel1.Controls.Add(this.lblSkuRandomLetterNotes);
|
||||
@@ -226,14 +228,26 @@
|
||||
//
|
||||
this.splitContainer1.Panel2.Controls.Add(this.splitContainer2);
|
||||
this.splitContainer1.Size = new System.Drawing.Size(1558, 638);
|
||||
this.splitContainer1.SplitterDistance = 100;
|
||||
this.splitContainer1.SplitterDistance = 125;
|
||||
this.splitContainer1.TabIndex = 2;
|
||||
//
|
||||
// chkAiSkuAndMainImg
|
||||
//
|
||||
this.chkAiSkuAndMainImg.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.chkAiSkuAndMainImg.AutoSize = true;
|
||||
this.chkAiSkuAndMainImg.Location = new System.Drawing.Point(1410, 98);
|
||||
this.chkAiSkuAndMainImg.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0);
|
||||
this.chkAiSkuAndMainImg.Name = "chkAiSkuAndMainImg";
|
||||
this.chkAiSkuAndMainImg.Size = new System.Drawing.Size(152, 21);
|
||||
this.chkAiSkuAndMainImg.TabIndex = 680;
|
||||
this.chkAiSkuAndMainImg.Text = "sku随机AI图+随机转主";
|
||||
this.chkAiSkuAndMainImg.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// chkLongTitle
|
||||
//
|
||||
this.chkLongTitle.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.chkLongTitle.AutoSize = true;
|
||||
this.chkLongTitle.Location = new System.Drawing.Point(1276, 73);
|
||||
this.chkLongTitle.Location = new System.Drawing.Point(1126, 98);
|
||||
this.chkLongTitle.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0);
|
||||
this.chkLongTitle.Name = "chkLongTitle";
|
||||
this.chkLongTitle.Size = new System.Drawing.Size(96, 21);
|
||||
@@ -245,7 +259,7 @@
|
||||
//
|
||||
this.chkSameExtcodeRandomMainImg.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.chkSameExtcodeRandomMainImg.AutoSize = true;
|
||||
this.chkSameExtcodeRandomMainImg.Location = new System.Drawing.Point(1372, 73);
|
||||
this.chkSameExtcodeRandomMainImg.Location = new System.Drawing.Point(1222, 98);
|
||||
this.chkSameExtcodeRandomMainImg.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0);
|
||||
this.chkSameExtcodeRandomMainImg.Name = "chkSameExtcodeRandomMainImg";
|
||||
this.chkSameExtcodeRandomMainImg.Size = new System.Drawing.Size(188, 21);
|
||||
@@ -256,12 +270,12 @@
|
||||
// lblSkuRandomLetterNotes
|
||||
//
|
||||
this.lblSkuRandomLetterNotes.AutoSize = true;
|
||||
this.lblSkuRandomLetterNotes.Font = new System.Drawing.Font("微软雅黑", 8F);
|
||||
this.lblSkuRandomLetterNotes.Font = new System.Drawing.Font("微软雅黑", 9F);
|
||||
this.lblSkuRandomLetterNotes.ForeColor = System.Drawing.SystemColors.MenuHighlight;
|
||||
this.lblSkuRandomLetterNotes.Location = new System.Drawing.Point(959, 75);
|
||||
this.lblSkuRandomLetterNotes.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0);
|
||||
this.lblSkuRandomLetterNotes.Name = "lblSkuRandomLetterNotes";
|
||||
this.lblSkuRandomLetterNotes.Size = new System.Drawing.Size(138, 16);
|
||||
this.lblSkuRandomLetterNotes.Size = new System.Drawing.Size(150, 17);
|
||||
this.lblSkuRandomLetterNotes.TabIndex = 641;
|
||||
this.lblSkuRandomLetterNotes.Text = "备注:当前特殊字符包括--";
|
||||
//
|
||||
@@ -1302,7 +1316,7 @@
|
||||
//
|
||||
this.chkEnglishProdName.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.chkEnglishProdName.AutoSize = true;
|
||||
this.chkEnglishProdName.Location = new System.Drawing.Point(1203, 73);
|
||||
this.chkEnglishProdName.Location = new System.Drawing.Point(1053, 98);
|
||||
this.chkEnglishProdName.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0);
|
||||
this.chkEnglishProdName.Name = "chkEnglishProdName";
|
||||
this.chkEnglishProdName.Size = new System.Drawing.Size(75, 21);
|
||||
@@ -1335,19 +1349,28 @@
|
||||
//
|
||||
this.splitContainer2.Panel2.Controls.Add(this.ucSplitPage1);
|
||||
this.splitContainer2.Panel2.Controls.Add(this.statusBar);
|
||||
this.splitContainer2.Size = new System.Drawing.Size(1558, 534);
|
||||
this.splitContainer2.SplitterDistance = 505;
|
||||
this.splitContainer2.Size = new System.Drawing.Size(1558, 509);
|
||||
this.splitContainer2.SplitterDistance = 480;
|
||||
this.splitContainer2.TabIndex = 0;
|
||||
//
|
||||
// pnlError
|
||||
//
|
||||
this.pnlError.Anchor = System.Windows.Forms.AnchorStyles.Top;
|
||||
this.pnlError.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(244)))), ((int)(((byte)(224)))));
|
||||
this.pnlError.CanvasColor = System.Drawing.SystemColors.Control;
|
||||
this.pnlError.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
|
||||
this.pnlError.Controls.Add(this.lblError);
|
||||
this.pnlError.Location = new System.Drawing.Point(650, 95);
|
||||
this.pnlError.DisabledBackColor = System.Drawing.Color.Empty;
|
||||
this.pnlError.Location = new System.Drawing.Point(650, 91);
|
||||
this.pnlError.Name = "pnlError";
|
||||
this.pnlError.Size = new System.Drawing.Size(259, 120);
|
||||
this.pnlError.TabIndex = 488;
|
||||
this.pnlError.Size = new System.Drawing.Size(259, 118);
|
||||
this.pnlError.Style.Alignment = System.Drawing.StringAlignment.Center;
|
||||
this.pnlError.Style.BackColor1.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground;
|
||||
this.pnlError.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(227)))), ((int)(((byte)(239)))), ((int)(((byte)(255)))));
|
||||
this.pnlError.Style.Border = DevComponents.DotNetBar.eBorderType.SingleLine;
|
||||
this.pnlError.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder;
|
||||
this.pnlError.Style.ForeColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText;
|
||||
this.pnlError.Style.GradientAngle = 90;
|
||||
this.pnlError.TabIndex = 492;
|
||||
this.pnlError.Visible = false;
|
||||
//
|
||||
// lblError
|
||||
@@ -1363,7 +1386,7 @@
|
||||
//
|
||||
this.pbLoading.Anchor = System.Windows.Forms.AnchorStyles.None;
|
||||
this.pbLoading.Image = global::TemuKJD.Properties.Resources.loading_blue;
|
||||
this.pbLoading.Location = new System.Drawing.Point(754, 227);
|
||||
this.pbLoading.Location = new System.Drawing.Point(754, 215);
|
||||
this.pbLoading.Name = "pbLoading";
|
||||
this.pbLoading.Size = new System.Drawing.Size(50, 50);
|
||||
this.pbLoading.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage;
|
||||
@@ -1497,7 +1520,7 @@
|
||||
this.dgvSelectProduct.ReadOnly = true;
|
||||
this.dgvSelectProduct.RowHeadersWidth = 40;
|
||||
this.dgvSelectProduct.RowTemplate.Height = 23;
|
||||
this.dgvSelectProduct.Size = new System.Drawing.Size(1550, 505);
|
||||
this.dgvSelectProduct.Size = new System.Drawing.Size(1550, 480);
|
||||
this.dgvSelectProduct.TabIndex = 189;
|
||||
this.dgvSelectProduct.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dgvSelectProduct_CellContentClick);
|
||||
this.dgvSelectProduct.Scroll += new System.Windows.Forms.ScrollEventHandler(this.dgvSelectProduct_Scroll);
|
||||
@@ -1896,7 +1919,8 @@
|
||||
private UserComponent.UcCheckBox chkSameExtcodeRandomMainImg;
|
||||
private UserComponent.UcCheckBox chkLongTitle;
|
||||
private UserComponent.UcCheckBox chkEnglishProdName;
|
||||
private System.Windows.Forms.Panel pnlError;
|
||||
private System.Windows.Forms.Label lblError;
|
||||
private UserComponent.UcCheckBox chkAiSkuAndMainImg;
|
||||
private DevComponents.DotNetBar.PanelEx pnlError;
|
||||
}
|
||||
}
|
||||
@@ -27,6 +27,7 @@ using System.Text.RegularExpressions;
|
||||
using TemuKJD.BLL;
|
||||
using TemuKJD.ToolForms;
|
||||
using AllBase.Model.Result.TemuResult.TemuSizeConfigResult;
|
||||
using AllBase.Model.Result.TemuResult;
|
||||
|
||||
namespace TemuKJD.KJDForms.ProductSelectForms
|
||||
{
|
||||
@@ -980,6 +981,8 @@ namespace TemuKJD.KJDForms.ProductSelectForms
|
||||
prodParam.carouselImageUrls = prodInfo.carouselImageUrls;
|
||||
|
||||
List<ProductSkuReqsItem> realSkuItems = new List<ProductSkuReqsItem>();
|
||||
Dictionary<string, AiSkuImgInfo> aiImgInfoDic = new Dictionary<string, AiSkuImgInfo>();
|
||||
List<AiSkuImgInfo> aiImgInfoList = new List<AiSkuImgInfo>();
|
||||
List<string> realCarouselImageUrls = new List<string>();
|
||||
realCarouselImageUrls.AddRange(prodInfo.carouselImageUrls);
|
||||
|
||||
@@ -999,8 +1002,8 @@ namespace TemuKJD.KJDForms.ProductSelectForms
|
||||
{
|
||||
var sameExtCodeDBProdLst = GetProductSameExtCodeDetailList(dbProd.ext_code);
|
||||
var sameExtCodeProdInfoLst = new List<TemuDetailProductInfo>();
|
||||
var sameExtCodeMainImgUrlLst = new List<string>();
|
||||
var sameExtCodeSkuImgUrlLst = new List<string>();
|
||||
var sameExtCodeMainImgUrlLst = new List<string>(); // 同货号商品主图
|
||||
var sameExtCodeSkuImgUrlLst = new List<string>(); // 同货号商品sku图
|
||||
try
|
||||
{
|
||||
foreach(var sameExtCodeDbProd in sameExtCodeDBProdLst)
|
||||
@@ -1410,7 +1413,7 @@ namespace TemuKJD.KJDForms.ProductSelectForms
|
||||
}));
|
||||
}
|
||||
|
||||
#region 随机打乱sku顺序
|
||||
#region 按顺序抽取sku或抽取随机打乱顺序的sku
|
||||
int id = 0;
|
||||
if (chkRandomSkuOrder.Checked)
|
||||
id = Randomx.GetId(0, skuListTmp.Count);
|
||||
@@ -1606,6 +1609,61 @@ namespace TemuKJD.KJDForms.ProductSelectForms
|
||||
skuItem.thumbUrl = imgUrlRst;
|
||||
Thread.Sleep(Randomx.GetId(50, 100));
|
||||
}
|
||||
//自定义ai图(ai图sku)
|
||||
if (chkAiSkuAndMainImg.Checked)
|
||||
{
|
||||
var skuCopy = JsonHelper.DeserializeJsonToObject<ProductSkuReqsItem>(JsonHelper.SerializeObject(skuItem));
|
||||
realSkuItems.Add(skuCopy);
|
||||
|
||||
AiSkuImgInfo aiSkuImgInfo = null;
|
||||
// 把每次随出来的图片暂存起来,相同颜色规格的sku直接获取图片地址即可
|
||||
if (aiImgInfoDic.Keys.Contains(skuInfo.productSkuSpecList[0].specId.ParseToString()))
|
||||
aiSkuImgInfo = aiImgInfoDic[skuInfo.productSkuSpecList[0].specId.ParseToString()];
|
||||
else
|
||||
{
|
||||
var aiSkuImgLst = DouBaoImgCefForm.GetSkuImgList(prodInfo.productId.ParseToString(), skuInfo.productSkuSpecList[0].specId.ParseToString());
|
||||
if (aiSkuImgLst.Count > 0)
|
||||
{
|
||||
aiImgInfoList.AddRange(aiSkuImgLst);
|
||||
|
||||
int index = Randomx.GetId(aiSkuImgLst.Count + 1);
|
||||
if (index == aiSkuImgLst.Count)
|
||||
{
|
||||
aiSkuImgInfo = new AiSkuImgInfo()
|
||||
{
|
||||
product_id = prodInfo.productId.ParseToString(),
|
||||
spec_id = skuInfo.productSkuSpecList[0].specId.ParseToString(),
|
||||
spec_name = skuInfo.productSkuSpecList[0].specName,
|
||||
img_url = skuInfo.thumbUrl,
|
||||
original_img_url = skuInfo.thumbUrl,
|
||||
};
|
||||
}
|
||||
else
|
||||
aiSkuImgInfo = aiSkuImgLst[index];
|
||||
aiImgInfoDic[skuInfo.productSkuSpecList[0].specId.ParseToString()] = aiSkuImgInfo;
|
||||
}
|
||||
}
|
||||
|
||||
if (aiSkuImgInfo != null)
|
||||
{
|
||||
var imgUrlRst = aiSkuImgInfo.img_url;
|
||||
if (string.IsNullOrEmpty(imgUrlRst))
|
||||
{
|
||||
imgUrlRst = UploadAiSkuImg(shop, prodParam.productDraftId.ParseToString(), aiSkuImgInfo.img_base64, aiSkuImgInfo.img_md5);
|
||||
if (imgUrlRst.Contains("\"success\":false"))
|
||||
return imgUrlRst;
|
||||
aiSkuImgInfo.img_url = imgUrlRst;
|
||||
|
||||
var url = BaseClass.BuildObjString("product/mdy_base64_img_url");
|
||||
var data = UserLogin.GetSignaturex() +
|
||||
"&db_id=" + aiSkuImgInfo.img_base64_db_id;
|
||||
data += "&img_url=" + imgUrlRst;
|
||||
var rst = GetHtml.PostUtf8(url, data);
|
||||
}
|
||||
skuItem.thumbUrl = imgUrlRst;
|
||||
Thread.Sleep(Randomx.GetId(50, 100));
|
||||
}
|
||||
}
|
||||
|
||||
skcItem.productSkuReqs.Add(skuItem);
|
||||
}
|
||||
@@ -1613,6 +1671,51 @@ namespace TemuKJD.KJDForms.ProductSelectForms
|
||||
prodParam.productSkcReqs.Add(skcItem);
|
||||
}
|
||||
|
||||
// aisku图转主,放在sku处理完之后,这样少读取一次
|
||||
if (chkAiSkuAndMainImg.Checked)
|
||||
{
|
||||
if (aiImgInfoList.Count > 0)
|
||||
{
|
||||
var randomImgLst = new List<AiSkuImgInfo>();
|
||||
foreach(var url in prodParam.carouselImageUrls)
|
||||
{
|
||||
randomImgLst.Add(new AiSkuImgInfo() { img_url = url });
|
||||
}
|
||||
randomImgLst.AddRange(aiImgInfoList);
|
||||
randomImgLst = randomImgLst.OrderBy(x => Guid.NewGuid()).Take(prodParam.carouselImageUrls.Count).ToList();
|
||||
|
||||
foreach (var imgInfo in randomImgLst)
|
||||
{
|
||||
if (string.IsNullOrEmpty(imgInfo.img_url))
|
||||
{
|
||||
var imgUrlRst = UploadAiSkuImg(shop, prodParam.productDraftId.ParseToString(), imgInfo.img_base64, imgInfo.img_md5);
|
||||
if (imgUrlRst.Contains("\"success\":false"))
|
||||
return imgUrlRst;
|
||||
imgInfo.img_url = imgUrlRst;
|
||||
|
||||
var url = BaseClass.BuildObjString("product/mdy_base64_img_url");
|
||||
var data = UserLogin.GetSignaturex() +
|
||||
"&db_id=" + imgInfo.img_base64_db_id;
|
||||
data += "&img_url=" + imgUrlRst;
|
||||
var rst = GetHtml.PostUtf8(url, data);
|
||||
|
||||
Thread.Sleep(Randomx.GetId(100, 300));
|
||||
}
|
||||
}
|
||||
prodParam.carouselImageUrls = randomImgLst.Select(r => r.img_url).ToList();
|
||||
prodParam.materialImgUrl = prodParam.carouselImageUrls[Randomx.GetId(prodParam.carouselImageUrls.Count)];
|
||||
|
||||
try
|
||||
{
|
||||
prodParam.productSkcReqs[0].previewImgUrls[0] = prodParam.carouselImageUrls[0];
|
||||
}
|
||||
catch
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (cancellationTokenSource.IsCancellationRequested)
|
||||
{
|
||||
return "{\"success\":false,\"status\":\"未上传\"," +
|
||||
@@ -2046,6 +2149,104 @@ namespace TemuKJD.KJDForms.ProductSelectForms
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 上传主图或sku等的Ai图片
|
||||
/// </summary>
|
||||
/// <param name="shop"></param>
|
||||
/// <param name="productDraftId"></param>
|
||||
/// <param name="imgBase64"></param>
|
||||
/// <param name="imgMd5"></param>
|
||||
/// <returns></returns>
|
||||
string UploadAiSkuImg(ShopLoginInfo shop, string productDraftId, string imgBase64, string imgMd5)
|
||||
{
|
||||
var md5CheckRst = CheckImgMd5(shop, productDraftId, "", imgMd5);
|
||||
if (!md5CheckRst.Contains("\"success\":true"))
|
||||
{
|
||||
var error = BaseRegex.GetStringJson(ref md5CheckRst, "errorMsg");
|
||||
if (string.IsNullOrEmpty(error))
|
||||
error = BaseRegex.GetStringJson(ref md5CheckRst, "error_msg");
|
||||
return "{\"success\":false,\"status\":\"未上传\"," +
|
||||
"\"productDraftId\":\"" + productDraftId + "\"," +
|
||||
"\"errMsg\":\"草稿箱上传失败 " + error + "\"}";
|
||||
}
|
||||
var materialId = BaseRegex.GetStringJson(ref md5CheckRst, "id");
|
||||
if (string.IsNullOrEmpty(materialId))
|
||||
{
|
||||
var imgUpSignRst = GetImgUpSign(shop, productDraftId);
|
||||
string signature = BaseRegex.GetStringJson(ref imgUpSignRst, "signature");
|
||||
if (string.IsNullOrEmpty(signature))
|
||||
{
|
||||
var error = BaseRegex.GetStringJson(ref imgUpSignRst, "errorMsg");
|
||||
if (string.IsNullOrEmpty(error))
|
||||
error = BaseRegex.GetStringJson(ref imgUpSignRst, "error_msg");
|
||||
return "{\"success\":false,\"status\":\"未上传\"," +
|
||||
"\"productDraftId\":\"" + productDraftId + "\"," +
|
||||
"\"errMsg\":\"草稿箱上传失败,获取图片上传signature失败 " + error + "\"}";
|
||||
}
|
||||
// 创建临时图片路径
|
||||
string sImgPath = "";
|
||||
if (DriveInfo.GetDrives().Any(drive => drive.Name.Equals("D:\\", StringComparison.OrdinalIgnoreCase)))
|
||||
{
|
||||
sImgPath = "D:\\tmp_img";
|
||||
}
|
||||
else if (DriveInfo.GetDrives().Any(drive => drive.Name.Equals("E:\\", StringComparison.OrdinalIgnoreCase)))
|
||||
{
|
||||
sImgPath = "E:\\tmp_img";
|
||||
}
|
||||
else
|
||||
{
|
||||
sImgPath = "C:\\tmp_img";
|
||||
}
|
||||
if (!Directory.Exists(sImgPath))
|
||||
{
|
||||
Directory.CreateDirectory(sImgPath);
|
||||
}
|
||||
string imgName = "\\图片" + Randomx.GetId(1000, 9999) + ".jpg";
|
||||
sImgPath += imgName;
|
||||
// 使用MemoryStream创建图片对象
|
||||
byte[] imageBytes = Convert.FromBase64String(imgBase64);
|
||||
using (MemoryStream ms = new MemoryStream(imageBytes))
|
||||
{
|
||||
Image image = Image.FromStream(ms);
|
||||
// 保存图片到文件系统
|
||||
try
|
||||
{
|
||||
image.Save(sImgPath, System.Drawing.Imaging.ImageFormat.Jpeg);
|
||||
}
|
||||
catch (Exception ex) { return "存图失败 " + ex.Message; }
|
||||
}
|
||||
var uploadImgRst = UploadImage(shop, productDraftId, sImgPath, signature);
|
||||
var imgUrl = BaseRegex.GetStringJson(ref uploadImgRst, "url");
|
||||
|
||||
if (string.IsNullOrEmpty(signature))
|
||||
{
|
||||
var error = BaseRegex.GetStringJson(ref uploadImgRst, "errorMsg");
|
||||
if (string.IsNullOrEmpty(error))
|
||||
error = BaseRegex.GetStringJson(ref uploadImgRst, "error_msg");
|
||||
return "{\"success\":false,\"status\":\"未上传\"," +
|
||||
"\"productDraftId\":\"" + productDraftId + "\"," +
|
||||
"\"errMsg\":\"草稿箱上传失败,上传图片失败 " + error + "\"}";
|
||||
}
|
||||
|
||||
return imgUrl;
|
||||
}
|
||||
else
|
||||
{
|
||||
var existImgRst = this.GetExistImg(shop, productDraftId, materialId);
|
||||
string imgUrl = BaseRegex.GetStringJson(ref existImgRst, "imgUrl");
|
||||
if (string.IsNullOrEmpty(materialId))
|
||||
{
|
||||
var error = BaseRegex.GetStringJson(ref existImgRst, "errorMsg");
|
||||
if (string.IsNullOrEmpty(error))
|
||||
error = BaseRegex.GetStringJson(ref existImgRst, "error_msg");
|
||||
return "{\"success\":false,\"status\":\"未上传\"," +
|
||||
"\"productDraftId\":\"" + productDraftId + "\"," +
|
||||
"\"errMsg\":\"草稿箱上传失败,获取已存在图片失败 " + error + "\"}";
|
||||
}
|
||||
return imgUrl;
|
||||
}
|
||||
}
|
||||
|
||||
private string AddDraft(ShopLoginInfo shop, string catId)
|
||||
{
|
||||
//string url = "https://seller.kuajingmaihuo.com/bg-visage-mms/product/draft/add";
|
||||
|
||||
+382
@@ -0,0 +1,382 @@
|
||||
|
||||
namespace TemuKJD.ToolForms
|
||||
{
|
||||
partial class DouBaoImgCefForm
|
||||
{
|
||||
/// <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.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(DouBaoImgCefForm));
|
||||
this.splitContainer1 = new System.Windows.Forms.SplitContainer();
|
||||
this.btnGoTo = new TemuKJD.UserControls.ButtonEx();
|
||||
this.txtUrl = new System.Windows.Forms.TextBox();
|
||||
this.splitContainer4 = new System.Windows.Forms.SplitContainer();
|
||||
this.panel2 = new System.Windows.Forms.Panel();
|
||||
this.pnlMsg = new DevComponents.DotNetBar.PanelEx();
|
||||
this.lblMsg = new System.Windows.Forms.Label();
|
||||
this.pbLoading = new System.Windows.Forms.PictureBox();
|
||||
this.textBox1 = new System.Windows.Forms.TextBox();
|
||||
this.splitContainer2 = new System.Windows.Forms.SplitContainer();
|
||||
this.splitContainer3 = new System.Windows.Forms.SplitContainer();
|
||||
this.txtYSize = new System.Windows.Forms.TextBox();
|
||||
this.txtXSize = new System.Windows.Forms.TextBox();
|
||||
this.label2 = new System.Windows.Forms.Label();
|
||||
this.label1 = new System.Windows.Forms.Label();
|
||||
this.txtYPos = new System.Windows.Forms.TextBox();
|
||||
this.txtXPos = new System.Windows.Forms.TextBox();
|
||||
this.pbLoading2 = new System.Windows.Forms.PictureBox();
|
||||
this.ucImgChange1 = new TemuKJD.ToolForms.UcSkuImgItem();
|
||||
((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit();
|
||||
this.splitContainer1.Panel1.SuspendLayout();
|
||||
this.splitContainer1.Panel2.SuspendLayout();
|
||||
this.splitContainer1.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.splitContainer4)).BeginInit();
|
||||
this.splitContainer4.Panel1.SuspendLayout();
|
||||
this.splitContainer4.Panel2.SuspendLayout();
|
||||
this.splitContainer4.SuspendLayout();
|
||||
this.panel2.SuspendLayout();
|
||||
this.pnlMsg.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.pbLoading)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.splitContainer2)).BeginInit();
|
||||
this.splitContainer2.Panel1.SuspendLayout();
|
||||
this.splitContainer2.Panel2.SuspendLayout();
|
||||
this.splitContainer2.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.splitContainer3)).BeginInit();
|
||||
this.splitContainer3.Panel1.SuspendLayout();
|
||||
this.splitContainer3.Panel2.SuspendLayout();
|
||||
this.splitContainer3.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.pbLoading2)).BeginInit();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// splitContainer1
|
||||
//
|
||||
this.splitContainer1.BackColor = System.Drawing.Color.White;
|
||||
this.splitContainer1.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.splitContainer1.FixedPanel = System.Windows.Forms.FixedPanel.Panel1;
|
||||
this.splitContainer1.Location = new System.Drawing.Point(0, 0);
|
||||
this.splitContainer1.Name = "splitContainer1";
|
||||
this.splitContainer1.Orientation = System.Windows.Forms.Orientation.Horizontal;
|
||||
//
|
||||
// splitContainer1.Panel1
|
||||
//
|
||||
this.splitContainer1.Panel1.Controls.Add(this.btnGoTo);
|
||||
this.splitContainer1.Panel1.Controls.Add(this.txtUrl);
|
||||
//
|
||||
// splitContainer1.Panel2
|
||||
//
|
||||
this.splitContainer1.Panel2.Controls.Add(this.splitContainer4);
|
||||
this.splitContainer1.Size = new System.Drawing.Size(1176, 534);
|
||||
this.splitContainer1.SplitterDistance = 27;
|
||||
this.splitContainer1.TabIndex = 3;
|
||||
//
|
||||
// btnGoTo
|
||||
//
|
||||
this.btnGoTo.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.btnGoTo.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
|
||||
this.btnGoTo.Cursor = System.Windows.Forms.Cursors.Hand;
|
||||
this.btnGoTo.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
|
||||
this.btnGoTo.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
this.btnGoTo.ForeColor = System.Drawing.Color.White;
|
||||
this.btnGoTo.Location = new System.Drawing.Point(1113, 2);
|
||||
this.btnGoTo.Margin = new System.Windows.Forms.Padding(2);
|
||||
this.btnGoTo.Name = "btnGoTo";
|
||||
this.btnGoTo.Size = new System.Drawing.Size(61, 25);
|
||||
this.btnGoTo.TabIndex = 375;
|
||||
this.btnGoTo.Text = "跳转";
|
||||
this.btnGoTo.UseVisualStyleBackColor = false;
|
||||
this.btnGoTo.Click += new System.EventHandler(this.btnGoTo_Click);
|
||||
//
|
||||
// txtUrl
|
||||
//
|
||||
this.txtUrl.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.txtUrl.Location = new System.Drawing.Point(3, 4);
|
||||
this.txtUrl.Name = "txtUrl";
|
||||
this.txtUrl.Size = new System.Drawing.Size(1108, 23);
|
||||
this.txtUrl.TabIndex = 0;
|
||||
//
|
||||
// splitContainer4
|
||||
//
|
||||
this.splitContainer4.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.splitContainer4.FixedPanel = System.Windows.Forms.FixedPanel.Panel2;
|
||||
this.splitContainer4.Location = new System.Drawing.Point(0, 0);
|
||||
this.splitContainer4.Name = "splitContainer4";
|
||||
this.splitContainer4.Orientation = System.Windows.Forms.Orientation.Horizontal;
|
||||
//
|
||||
// splitContainer4.Panel1
|
||||
//
|
||||
this.splitContainer4.Panel1.Controls.Add(this.panel2);
|
||||
//
|
||||
// splitContainer4.Panel2
|
||||
//
|
||||
this.splitContainer4.Panel2.Controls.Add(this.textBox1);
|
||||
this.splitContainer4.Size = new System.Drawing.Size(1176, 503);
|
||||
this.splitContainer4.SplitterDistance = 442;
|
||||
this.splitContainer4.TabIndex = 2;
|
||||
//
|
||||
// panel2
|
||||
//
|
||||
this.panel2.BackColor = System.Drawing.Color.White;
|
||||
this.panel2.Controls.Add(this.pnlMsg);
|
||||
this.panel2.Controls.Add(this.pbLoading);
|
||||
this.panel2.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.panel2.Location = new System.Drawing.Point(0, 0);
|
||||
this.panel2.Name = "panel2";
|
||||
this.panel2.Size = new System.Drawing.Size(1176, 442);
|
||||
this.panel2.TabIndex = 1;
|
||||
//
|
||||
// pnlMsg
|
||||
//
|
||||
this.pnlMsg.Anchor = System.Windows.Forms.AnchorStyles.Top;
|
||||
this.pnlMsg.CanvasColor = System.Drawing.SystemColors.Control;
|
||||
this.pnlMsg.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
|
||||
this.pnlMsg.Controls.Add(this.lblMsg);
|
||||
this.pnlMsg.DisabledBackColor = System.Drawing.Color.Empty;
|
||||
this.pnlMsg.Location = new System.Drawing.Point(388, 72);
|
||||
this.pnlMsg.Name = "pnlMsg";
|
||||
this.pnlMsg.Size = new System.Drawing.Size(401, 110);
|
||||
this.pnlMsg.Style.Alignment = System.Drawing.StringAlignment.Center;
|
||||
this.pnlMsg.Style.BackColor1.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground;
|
||||
this.pnlMsg.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(227)))), ((int)(((byte)(239)))), ((int)(((byte)(255)))));
|
||||
this.pnlMsg.Style.Border = DevComponents.DotNetBar.eBorderType.SingleLine;
|
||||
this.pnlMsg.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder;
|
||||
this.pnlMsg.Style.ForeColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText;
|
||||
this.pnlMsg.Style.GradientAngle = 90;
|
||||
this.pnlMsg.TabIndex = 496;
|
||||
this.pnlMsg.Visible = false;
|
||||
//
|
||||
// lblMsg
|
||||
//
|
||||
this.lblMsg.ForeColor = System.Drawing.SystemColors.HotTrack;
|
||||
this.lblMsg.Location = new System.Drawing.Point(29, 20);
|
||||
this.lblMsg.Name = "lblMsg";
|
||||
this.lblMsg.Size = new System.Drawing.Size(345, 69);
|
||||
this.lblMsg.TabIndex = 0;
|
||||
this.lblMsg.Text = "消息tip";
|
||||
//
|
||||
// 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(563, 196);
|
||||
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;
|
||||
//
|
||||
// textBox1
|
||||
//
|
||||
this.textBox1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
|
||||
| System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.textBox1.Location = new System.Drawing.Point(13, 8);
|
||||
this.textBox1.Multiline = true;
|
||||
this.textBox1.Name = "textBox1";
|
||||
this.textBox1.Size = new System.Drawing.Size(1154, 42);
|
||||
this.textBox1.TabIndex = 0;
|
||||
this.textBox1.Text = "帮我生成适用于这款鞋的20个不同场景图,不用生成模特的图\r\n帮我生成适用于这款包的20个不同场景图";
|
||||
//
|
||||
// splitContainer2
|
||||
//
|
||||
this.splitContainer2.BackColor = System.Drawing.Color.White;
|
||||
this.splitContainer2.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.splitContainer2.FixedPanel = System.Windows.Forms.FixedPanel.Panel1;
|
||||
this.splitContainer2.Location = new System.Drawing.Point(1, 33);
|
||||
this.splitContainer2.Name = "splitContainer2";
|
||||
//
|
||||
// splitContainer2.Panel1
|
||||
//
|
||||
this.splitContainer2.Panel1.Controls.Add(this.splitContainer3);
|
||||
//
|
||||
// splitContainer2.Panel2
|
||||
//
|
||||
this.splitContainer2.Panel2.Controls.Add(this.splitContainer1);
|
||||
this.splitContainer2.Size = new System.Drawing.Size(1364, 534);
|
||||
this.splitContainer2.SplitterDistance = 184;
|
||||
this.splitContainer2.TabIndex = 4;
|
||||
//
|
||||
// splitContainer3
|
||||
//
|
||||
this.splitContainer3.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.splitContainer3.FixedPanel = System.Windows.Forms.FixedPanel.Panel1;
|
||||
this.splitContainer3.Location = new System.Drawing.Point(0, 0);
|
||||
this.splitContainer3.Name = "splitContainer3";
|
||||
this.splitContainer3.Orientation = System.Windows.Forms.Orientation.Horizontal;
|
||||
//
|
||||
// splitContainer3.Panel1
|
||||
//
|
||||
this.splitContainer3.Panel1.Controls.Add(this.txtYSize);
|
||||
this.splitContainer3.Panel1.Controls.Add(this.txtXSize);
|
||||
this.splitContainer3.Panel1.Controls.Add(this.label2);
|
||||
this.splitContainer3.Panel1.Controls.Add(this.label1);
|
||||
this.splitContainer3.Panel1.Controls.Add(this.txtYPos);
|
||||
this.splitContainer3.Panel1.Controls.Add(this.txtXPos);
|
||||
//
|
||||
// splitContainer3.Panel2
|
||||
//
|
||||
this.splitContainer3.Panel2.AutoScroll = true;
|
||||
this.splitContainer3.Panel2.Controls.Add(this.pbLoading2);
|
||||
this.splitContainer3.Panel2.Controls.Add(this.ucImgChange1);
|
||||
this.splitContainer3.Size = new System.Drawing.Size(184, 534);
|
||||
this.splitContainer3.SplitterDistance = 61;
|
||||
this.splitContainer3.TabIndex = 0;
|
||||
//
|
||||
// txtYSize
|
||||
//
|
||||
this.txtYSize.Location = new System.Drawing.Point(120, 31);
|
||||
this.txtYSize.Name = "txtYSize";
|
||||
this.txtYSize.Size = new System.Drawing.Size(42, 23);
|
||||
this.txtYSize.TabIndex = 14;
|
||||
this.txtYSize.Text = "50";
|
||||
//
|
||||
// txtXSize
|
||||
//
|
||||
this.txtXSize.Location = new System.Drawing.Point(72, 31);
|
||||
this.txtXSize.Name = "txtXSize";
|
||||
this.txtXSize.Size = new System.Drawing.Size(42, 23);
|
||||
this.txtXSize.TabIndex = 13;
|
||||
this.txtXSize.Text = "120";
|
||||
//
|
||||
// label2
|
||||
//
|
||||
this.label2.AutoSize = true;
|
||||
this.label2.Location = new System.Drawing.Point(12, 34);
|
||||
this.label2.Name = "label2";
|
||||
this.label2.Size = new System.Drawing.Size(56, 17);
|
||||
this.label2.TabIndex = 12;
|
||||
this.label2.Text = "打码尺寸";
|
||||
//
|
||||
// label1
|
||||
//
|
||||
this.label1.AutoSize = true;
|
||||
this.label1.Location = new System.Drawing.Point(12, 9);
|
||||
this.label1.Name = "label1";
|
||||
this.label1.Size = new System.Drawing.Size(56, 17);
|
||||
this.label1.TabIndex = 11;
|
||||
this.label1.Text = "打码坐标";
|
||||
//
|
||||
// txtYPos
|
||||
//
|
||||
this.txtYPos.Location = new System.Drawing.Point(120, 6);
|
||||
this.txtYPos.Name = "txtYPos";
|
||||
this.txtYPos.Size = new System.Drawing.Size(42, 23);
|
||||
this.txtYPos.TabIndex = 10;
|
||||
this.txtYPos.Text = "740";
|
||||
//
|
||||
// txtXPos
|
||||
//
|
||||
this.txtXPos.Location = new System.Drawing.Point(72, 6);
|
||||
this.txtXPos.Name = "txtXPos";
|
||||
this.txtXPos.Size = new System.Drawing.Size(42, 23);
|
||||
this.txtXPos.TabIndex = 9;
|
||||
this.txtXPos.Text = "670";
|
||||
//
|
||||
// pbLoading2
|
||||
//
|
||||
this.pbLoading2.Anchor = System.Windows.Forms.AnchorStyles.None;
|
||||
this.pbLoading2.Image = global::TemuKJD.Properties.Resources.loading_blue;
|
||||
this.pbLoading2.Location = new System.Drawing.Point(67, 209);
|
||||
this.pbLoading2.Name = "pbLoading2";
|
||||
this.pbLoading2.Size = new System.Drawing.Size(50, 50);
|
||||
this.pbLoading2.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage;
|
||||
this.pbLoading2.TabIndex = 9;
|
||||
this.pbLoading2.TabStop = false;
|
||||
//
|
||||
// ucImgChange1
|
||||
//
|
||||
this.ucImgChange1.BackColor = System.Drawing.SystemColors.MenuHighlight;
|
||||
this.ucImgChange1.Dock = System.Windows.Forms.DockStyle.Top;
|
||||
this.ucImgChange1.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
this.ucImgChange1.Location = new System.Drawing.Point(0, 0);
|
||||
this.ucImgChange1.Name = "ucImgChange1";
|
||||
this.ucImgChange1.Padding = new System.Windows.Forms.Padding(1);
|
||||
this.ucImgChange1.Size = new System.Drawing.Size(184, 148);
|
||||
this.ucImgChange1.TabIndex = 0;
|
||||
//
|
||||
// DouBaoImgCefForm
|
||||
//
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
|
||||
this.ClientSize = new System.Drawing.Size(1366, 568);
|
||||
this.Controls.Add(this.splitContainer2);
|
||||
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 = "DouBaoImgCefForm";
|
||||
this.ShowMaximizeBox = true;
|
||||
this.Text = "豆包生成SKU图";
|
||||
this.TitleText = "豆包生成SKU图";
|
||||
this.Load += new System.EventHandler(this.DouBaoCefForm_Load);
|
||||
this.Controls.SetChildIndex(this.splitContainer2, 0);
|
||||
this.splitContainer1.Panel1.ResumeLayout(false);
|
||||
this.splitContainer1.Panel1.PerformLayout();
|
||||
this.splitContainer1.Panel2.ResumeLayout(false);
|
||||
((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).EndInit();
|
||||
this.splitContainer1.ResumeLayout(false);
|
||||
this.splitContainer4.Panel1.ResumeLayout(false);
|
||||
this.splitContainer4.Panel2.ResumeLayout(false);
|
||||
this.splitContainer4.Panel2.PerformLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.splitContainer4)).EndInit();
|
||||
this.splitContainer4.ResumeLayout(false);
|
||||
this.panel2.ResumeLayout(false);
|
||||
this.pnlMsg.ResumeLayout(false);
|
||||
((System.ComponentModel.ISupportInitialize)(this.pbLoading)).EndInit();
|
||||
this.splitContainer2.Panel1.ResumeLayout(false);
|
||||
this.splitContainer2.Panel2.ResumeLayout(false);
|
||||
((System.ComponentModel.ISupportInitialize)(this.splitContainer2)).EndInit();
|
||||
this.splitContainer2.ResumeLayout(false);
|
||||
this.splitContainer3.Panel1.ResumeLayout(false);
|
||||
this.splitContainer3.Panel1.PerformLayout();
|
||||
this.splitContainer3.Panel2.ResumeLayout(false);
|
||||
((System.ComponentModel.ISupportInitialize)(this.splitContainer3)).EndInit();
|
||||
this.splitContainer3.ResumeLayout(false);
|
||||
((System.ComponentModel.ISupportInitialize)(this.pbLoading2)).EndInit();
|
||||
this.ResumeLayout(false);
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private System.Windows.Forms.SplitContainer splitContainer1;
|
||||
private UserControls.ButtonEx btnGoTo;
|
||||
private System.Windows.Forms.TextBox txtUrl;
|
||||
private System.Windows.Forms.Panel panel2;
|
||||
private System.Windows.Forms.SplitContainer splitContainer2;
|
||||
private UcSkuImgItem ucImgChange1;
|
||||
private System.Windows.Forms.PictureBox pbLoading;
|
||||
private System.Windows.Forms.SplitContainer splitContainer3;
|
||||
private System.Windows.Forms.PictureBox pbLoading2;
|
||||
private System.Windows.Forms.TextBox txtYSize;
|
||||
private System.Windows.Forms.TextBox txtXSize;
|
||||
private System.Windows.Forms.Label label2;
|
||||
private System.Windows.Forms.Label label1;
|
||||
private System.Windows.Forms.TextBox txtYPos;
|
||||
private System.Windows.Forms.TextBox txtXPos;
|
||||
private System.Windows.Forms.SplitContainer splitContainer4;
|
||||
private System.Windows.Forms.TextBox textBox1;
|
||||
private DevComponents.DotNetBar.PanelEx pnlMsg;
|
||||
private System.Windows.Forms.Label lblMsg;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,449 @@
|
||||
using AllBase;
|
||||
using AllBase.Model.Result;
|
||||
using AllBase.Model.Result.TemuResult;
|
||||
using CefSharp;
|
||||
using CefSharp.WinForms;
|
||||
using NaiBa.Util.Extension;
|
||||
using Newtonsoft.Json.Linq;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
using TemuKJD.BaseForms;
|
||||
using TemuKJD.Helper;
|
||||
using TemuKJD.KJDForms.ProductSelectForms;
|
||||
using Work;
|
||||
using Work.BLL.Tools;
|
||||
|
||||
namespace TemuKJD.ToolForms
|
||||
{
|
||||
public partial class DouBaoImgCefForm : LRBaseForm
|
||||
{
|
||||
ChromiumWebBrowser cefWebBrowser = null;
|
||||
KJDDBProduct dbProd = null;
|
||||
|
||||
string Url { get; set; } = "https://www.doubao.com/chat/";
|
||||
List<Cookie> Cookies = new List<Cookie>();
|
||||
public DouBaoImgCefForm(KJDDBProduct _dbProd, string url = "", List<Cookie> cookies = null)
|
||||
{
|
||||
InitializeComponent();
|
||||
|
||||
if (_dbProd != null)
|
||||
dbProd = _dbProd;
|
||||
if (!string.IsNullOrEmpty(url))
|
||||
Url = url;
|
||||
if (cookies != null)
|
||||
Cookies = cookies;
|
||||
|
||||
this.Width = Math.Min(1600, Screen.PrimaryScreen.Bounds.Width);
|
||||
this.Height = Math.Min(900, Screen.PrimaryScreen.Bounds.Height);
|
||||
this.StartPosition = FormStartPosition.CenterScreen;
|
||||
}
|
||||
|
||||
private void DouBaoCefForm_Load(object sender, EventArgs e)
|
||||
{
|
||||
cefWebBrowser = NaiBa.CefHelper.CEFBrowser.CreateChromiumWebBrowser(Url);
|
||||
cefWebBrowser.AutoSize = true;
|
||||
cefWebBrowser.Dock = DockStyle.Fill;
|
||||
//cefWebBrowser.RequestContext = new RequestContext(requestContextSettings);
|
||||
cefWebBrowser.KeyboardHandler = new KJDForms.ToolForms.CefKeyboardHandler();
|
||||
cefWebBrowser.FrameLoadEnd += CefWebBrowser_FrameLoadEnd;
|
||||
cefWebBrowser.AddressChanged += CefWebBrowser_AddressChanged;
|
||||
CustomDownloadHandler downloadHandler = new CustomDownloadHandler();
|
||||
downloadHandler.DownloadCompleteEvent += DownloadHandler_DownloadComplete;
|
||||
cefWebBrowser.DownloadHandler = downloadHandler;
|
||||
panel2.Controls.Add(cefWebBrowser);
|
||||
|
||||
this.splitContainer3.Panel2.Controls.Clear();
|
||||
if (BaseClass.MainPath=="kuajingda")
|
||||
{
|
||||
try
|
||||
{
|
||||
var temuDBProd = DbProductSelectListManageForm.GetProductDetail(dbProd.id.ToString());
|
||||
if (temuDBProd == null || temuDBProd.id == 0)
|
||||
{
|
||||
BaseMsgForm.ShowError("商品已清除!");
|
||||
return;
|
||||
}
|
||||
dbProd = temuDBProd;
|
||||
|
||||
var prodInfo = JsonHelper.DeserializeJsonToObject<TemuDetailProductInfo>(dbProd.product_json);
|
||||
var ucImgChangeList = new List<UcSkuImgItem>();
|
||||
foreach(var sku in prodInfo.productSkcList[0].productSkuList)
|
||||
{
|
||||
var imgUrl = sku.thumbUrl.Replace("https://", "http://");
|
||||
if (!ucImgChangeList.Any(p=>p.pbSkuOriginalImg.ImageLocation == imgUrl))
|
||||
{
|
||||
UcSkuImgItem skuImgItem = new UcSkuImgItem(prodInfo.productId.ParseToLong(), sku.productSkuSpecList[0].specId.ParseToLong(),
|
||||
sku.productSkuSpecList[0].specName, imgUrl);
|
||||
skuImgItem.pbSkuOriginalImg.ImageLocation = imgUrl;
|
||||
skuImgItem.pbSkuOriginalImg.Tag = "{\"productId\":" + prodInfo.productId +
|
||||
",\"skuId\":" + sku.productSkuId +
|
||||
",\"specId\":" + sku.productSkuSpecList[0].specId +
|
||||
",\"specName\":\"" + sku.productSkuSpecList[0].specName + "\"}";
|
||||
skuImgItem.pbSkuOriginalImg.Name = sku.productSkuId.ToString();
|
||||
skuImgItem.label1.Text = sku.productSkuSpecList[0].specName;
|
||||
skuImgItem.panelEx1.Tag = skuImgItem;
|
||||
skuImgItem.panelEx1.Click += pnlGetOriginalImg_Click;
|
||||
skuImgItem.panelEx2.Tag = skuImgItem;
|
||||
skuImgItem.panelEx2.Click += pnlUploadImg_Click;
|
||||
skuImgItem.Dock = DockStyle.Top;
|
||||
skuImgItem.pbSkuOriginalImg.Click += pbSkuOriginalImg_Click;
|
||||
skuImgItem.pbSkuImg.Tag = skuImgItem;
|
||||
//skuImgItem.pbSkuImg.Click += pbSkuOriginalImg_Click;
|
||||
skuImgItem.pbSkuImg.Click += PbSkuImg_Click;
|
||||
ucImgChangeList.Add(skuImgItem);
|
||||
this.splitContainer3.Panel2.Controls.Add(skuImgItem);
|
||||
}
|
||||
}
|
||||
|
||||
pbLoading.Visible = true;
|
||||
pbLoading.BringToFront();
|
||||
pbLoading2.Visible = true;
|
||||
pbLoading2.BringToFront();
|
||||
Task.Run(() =>
|
||||
{
|
||||
foreach (Control c in this.splitContainer3.Panel2.Controls)
|
||||
{
|
||||
var skuImgItem = c as UcSkuImgItem;
|
||||
if (skuImgItem == null)
|
||||
continue;
|
||||
|
||||
var skuImgLst = GetSkuImgList(skuImgItem.ProdId.ParseToString(), skuImgItem.SpecId.ParseToString());
|
||||
skuImgItem.LstSkuImgInfo = skuImgLst;
|
||||
if (skuImgLst.Count > 0)
|
||||
{
|
||||
var skuImgInfo = skuImgLst.First();
|
||||
|
||||
Invoke(new Action(() =>
|
||||
{
|
||||
//if (!string.IsNullOrWhiteSpace(skuImgInfo.img_url))
|
||||
// skuImgItem.pbSkuImg.ImageLocation = skuImgInfo.img_url.Replace("img.kwcdn.com", "img.cdnfe.com").Replace("https://", "http://");
|
||||
//else
|
||||
if (!string.IsNullOrWhiteSpace(skuImgInfo.img_base64))
|
||||
skuImgItem.pbSkuImg.Image = Base64ChangeImgUrl.Base64ToImage(skuImgInfo.img_base64);
|
||||
}));
|
||||
}
|
||||
}
|
||||
Invoke(new Action(() =>
|
||||
{
|
||||
pbLoading.Visible = false;
|
||||
pbLoading2.Visible = false;
|
||||
}));
|
||||
});
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
BaseMsgForm.ShowError(ex.Message);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
private void DownloadHandler_DownloadComplete(object browser, DownloadItem downloadItem)
|
||||
{
|
||||
//BaseMsgForm.ShowInfo(downloadItem.FullPath + "下载完成");
|
||||
Invoke(new Action(() =>
|
||||
{
|
||||
this.pnlMsg.Visible = true;
|
||||
this.lblMsg.Text = downloadItem.FullPath + "下载完成";
|
||||
}));
|
||||
Task.Run(() =>
|
||||
{
|
||||
Thread.Sleep(2000);
|
||||
Invoke(new Action(() =>
|
||||
{
|
||||
this.pnlMsg.Visible = false;
|
||||
}));
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
public static List<AiSkuImgInfo> GetSkuImgList(string prodId, string specId)
|
||||
{
|
||||
var url = BaseClass.BuildObjString("product/get_sku_image_list");
|
||||
var data = UserLogin.GetSignaturex();
|
||||
data += "&search_product_id=" + prodId;
|
||||
data += "&search_spec_id=" + specId;
|
||||
|
||||
var html = GetHtml.PostUtf8(url, data);
|
||||
if (string.IsNullOrEmpty(html) || !html.Contains("\"code\":200"))
|
||||
html = GetHtml.PostUtf8(url, data);
|
||||
if (string.IsNullOrEmpty(html) || !html.Contains("\"code\":200"))
|
||||
html = GetHtml.PostUtf8(url, data);
|
||||
if (string.IsNullOrEmpty(html) || !html.Contains("\"code\":200"))
|
||||
{
|
||||
BaseMsgForm.ShowError("SKU图片查询失败,请重试!" + BaseRegex.GetStringJson(ref html, "msg"));
|
||||
return new List<AiSkuImgInfo>();
|
||||
}
|
||||
else
|
||||
{
|
||||
try
|
||||
{
|
||||
JObject jObj = JObject.Parse(html);
|
||||
return JsonHelper.DeserializeJsonToList<AiSkuImgInfo>(jObj["data"].ToString());
|
||||
}
|
||||
catch(Exception ex)
|
||||
{
|
||||
BaseMsgForm.ShowError("SKU图片查询失败,请重试!" + ex.Message);
|
||||
return new List<AiSkuImgInfo>();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void pbSkuOriginalImg_Click(object sender, EventArgs e)
|
||||
{
|
||||
var pb = sender as PictureBox;
|
||||
|
||||
if (!string.IsNullOrEmpty(pb.ImageLocation))
|
||||
{
|
||||
ShowImgForm imgFrom = new ShowImgForm(pb.ImageLocation);
|
||||
imgFrom.ShowDialog();
|
||||
}
|
||||
else
|
||||
{
|
||||
ShowImgForm imgFrom = new ShowImgForm(pb.Image);
|
||||
imgFrom.ShowDialog();
|
||||
}
|
||||
}
|
||||
|
||||
private void PbSkuImg_Click(object sender, EventArgs e)
|
||||
{
|
||||
var pb = sender as PictureBox;
|
||||
if (pb == null)
|
||||
return;
|
||||
var skuImgItem = pb.Tag as UcSkuImgItem;
|
||||
if (skuImgItem == null)
|
||||
return;
|
||||
|
||||
DouBaoImgListForm imgLstForm = new DouBaoImgListForm(skuImgItem.LstSkuImgInfo);
|
||||
imgLstForm.ShowDialog();
|
||||
var imgInfo = skuImgItem.LstSkuImgInfo.FirstOrDefault();
|
||||
if (imgInfo == null)
|
||||
{
|
||||
skuImgItem.pbSkuImg.Image = Properties.Resources.nopic;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!string.IsNullOrWhiteSpace(imgInfo.img_url))
|
||||
skuImgItem.pbSkuImg.ImageLocation = imgInfo.img_url;
|
||||
else if (!string.IsNullOrWhiteSpace(imgInfo.img_base64))
|
||||
skuImgItem.pbSkuImg.Image = Base64ChangeImgUrl.Base64ToImage(imgInfo.img_base64);
|
||||
}
|
||||
}
|
||||
|
||||
private void pnlUploadImg_Click(object sender, EventArgs e)
|
||||
{
|
||||
var pnl = sender as DevComponents.DotNetBar.PanelEx;
|
||||
if (pnl == null)
|
||||
return;
|
||||
var skuImgItem = pnl.Tag as UcSkuImgItem;
|
||||
if (skuImgItem == null)
|
||||
return;
|
||||
|
||||
OpenFileDialog openFileDialog = new OpenFileDialog();
|
||||
openFileDialog.Multiselect = false;
|
||||
// 设置过滤条件,只显示文本文件
|
||||
openFileDialog.Filter = "图片文件 (*.jpeg;*.jpg;*.png)|*.jpeg;*.jpg;*.png|All files (*.*)|*.*";
|
||||
// 显示对话框并获取结果
|
||||
if (openFileDialog.ShowDialog() == DialogResult.OK)
|
||||
{
|
||||
try
|
||||
{
|
||||
string filePath = openFileDialog.FileName;
|
||||
Image image = Image.FromFile(filePath);
|
||||
ImageBuild ib = null;
|
||||
using (MemoryStream memoryStream = new MemoryStream())
|
||||
{
|
||||
image.Save(memoryStream, System.Drawing.Imaging.ImageFormat.Jpeg);
|
||||
byte[] imageBytes = memoryStream.ToArray();
|
||||
ib = new ImageBuild(imageBytes);
|
||||
}
|
||||
var newImgBytes = ib.BuildNewSize(800, 800, 85);
|
||||
Bitmap bitmap = null;
|
||||
using (MemoryStream ms = new MemoryStream(newImgBytes))
|
||||
{
|
||||
//skuImgItem.pictureBox2.Image = Image.FromStream(ms);
|
||||
// 将image转成bitmap以后使用才能释放生成MemoryStream,否则保存Image对象到文件会产生GDI+中发生一般性错误
|
||||
bitmap = new Bitmap(Image.FromStream(ms));
|
||||
// 打码,打上马赛克
|
||||
var x = txtXPos.Text.ParseToInt();
|
||||
var y = txtYPos.Text.ParseToInt();
|
||||
var cx = txtXSize.Text.ParseToInt();
|
||||
var cy = txtYSize.Text.ParseToInt();
|
||||
//bitmap = ApplyMosaicEffect(bitmap, new Rectangle(665, 740, 125, 50), 25);
|
||||
bitmap = ApplyMosaicEffect(bitmap, new Rectangle(x, y, cx, cy), 60);
|
||||
//skuImgItem.pictureBox2.Image = bitmap;
|
||||
}
|
||||
|
||||
string imgBase64 = "";
|
||||
using (MemoryStream memoryStream = new MemoryStream())
|
||||
{
|
||||
bitmap.Save(memoryStream, System.Drawing.Imaging.ImageFormat.Jpeg);
|
||||
byte[] imageBytes = memoryStream.ToArray();
|
||||
imgBase64 = Convert.ToBase64String(imageBytes);
|
||||
}
|
||||
string img_md5 = BaseClass.GetMd5(imgBase64);
|
||||
|
||||
var url = BaseClass.BuildObjString("product/add_sku_image");
|
||||
var data = UserLogin.GetSignaturex();
|
||||
data += "&img_base64=" + imgBase64;
|
||||
data += "&img_md5=" + img_md5;
|
||||
data += "&product_id=" + skuImgItem.ProdId;
|
||||
data += "&spec_id=" + skuImgItem.SpecId;
|
||||
data += "&spec_name=" + skuImgItem.SpecName;
|
||||
data += "&original_img_url=" + skuImgItem.SpecImgUrl;
|
||||
data += "&original_img_url_md5=" + BaseClass.GetMd5(skuImgItem.SpecImgUrl);
|
||||
|
||||
var html = GetHtml.PostUtf8(url, data);
|
||||
if (string.IsNullOrEmpty(html) || !html.Contains("\"code\":200"))
|
||||
html = GetHtml.PostUtf8(url, data);
|
||||
if (string.IsNullOrEmpty(html) || !html.Contains("\"code\":200"))
|
||||
html = GetHtml.PostUtf8(url, data);
|
||||
if (string.IsNullOrEmpty(html) || !html.Contains("\"code\":200"))
|
||||
{
|
||||
BaseMsgForm.ShowError("SKU图片编辑失败,请重试!" + BaseRegex.GetStringJson(ref html, "msg"));
|
||||
}
|
||||
else
|
||||
{
|
||||
skuImgItem.LstSkuImgInfo.Insert(0, new AiSkuImgInfo()
|
||||
{
|
||||
id = BaseRegex.GetIntJson(ref html, "sku_img_id"),
|
||||
add_time = DateTime.Now,
|
||||
mdy_time = DateTime.Now,
|
||||
img_base64 = imgBase64,
|
||||
img_base64_db_id = BaseRegex.GetIntJson(ref html, "sku_img_Base64_id"),
|
||||
img_md5 = img_md5,
|
||||
img_url = "",
|
||||
original_img_url = skuImgItem.SpecImgUrl,
|
||||
product_id = skuImgItem.ProdId.ParseToString(),
|
||||
spec_id = skuImgItem.SpecId.ParseToString(),
|
||||
spec_name = skuImgItem.SpecName,
|
||||
});
|
||||
skuImgItem.pbSkuImg.Image = bitmap;
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
BaseMsgForm.ShowError("打开自定义图片失败 " + ex.Message);
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void pnlGetOriginalImg_Click(object sender, EventArgs e)
|
||||
{
|
||||
var pnl = sender as DevComponents.DotNetBar.PanelEx;
|
||||
if (pnl == null)
|
||||
return;
|
||||
var skuImgItem = pnl.Tag as UcSkuImgItem;
|
||||
if (skuImgItem == null)
|
||||
return;
|
||||
|
||||
var pb = skuImgItem.pbSkuOriginalImg;
|
||||
if (pb.Image == null)
|
||||
{
|
||||
BaseMsgForm.ShowError("图片为空!");
|
||||
return;
|
||||
}
|
||||
|
||||
string fileName = DateTime.Now.ToString("yyyy_MM_dd_HH_mm_ss") + ".jpg";
|
||||
if (!string.IsNullOrEmpty(pb.ImageLocation))
|
||||
{
|
||||
fileName = pb.ImageLocation.Replace("://", ".").Replace('/', '.');
|
||||
}
|
||||
SaveFileDialog sfd = new SaveFileDialog();
|
||||
sfd.Filter = "JPeg Image|*.jpg;*.jpeg";
|
||||
sfd.Title = "保存图片";
|
||||
sfd.FileName = fileName;
|
||||
if (sfd.ShowDialog() == DialogResult.OK)
|
||||
{
|
||||
pb.Image.Save(sfd.FileName, System.Drawing.Imaging.ImageFormat.Jpeg);
|
||||
}
|
||||
}
|
||||
|
||||
private void CefWebBrowser_AddressChanged(object sender, CefSharp.AddressChangedEventArgs e)
|
||||
{
|
||||
if (this.Created)
|
||||
{
|
||||
Invoke(new Action(() =>
|
||||
{
|
||||
txtUrl.Text = e.Address;
|
||||
}));
|
||||
}
|
||||
}
|
||||
|
||||
private void CefWebBrowser_FrameLoadEnd(object sender, CefSharp.FrameLoadEndEventArgs e)
|
||||
{
|
||||
}
|
||||
|
||||
private void btnGoTo_Click(object sender, EventArgs e)
|
||||
{
|
||||
this.cefWebBrowser.Load(txtUrl.Text.Trim());
|
||||
}
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 给图片打上马赛克
|
||||
/// </summary>
|
||||
/// <param name="original"></param>
|
||||
/// <param name="mosaicRect"></param>
|
||||
/// <param name="mosaicSize"></param>
|
||||
/// <returns></returns>
|
||||
public static Bitmap ApplyMosaicEffect(Bitmap original, Rectangle mosaicRect, int mosaicSize)
|
||||
{
|
||||
int width = original.Width;
|
||||
int height = original.Height;
|
||||
//Bitmap mosaicBitmap = new Bitmap(width, height);
|
||||
//using (Graphics g = Graphics.FromImage(mosaicBitmap))
|
||||
using (Graphics g = Graphics.FromImage(original))
|
||||
{
|
||||
//for (int x = 0; x < width; x += mosaicSize)
|
||||
//{
|
||||
// for (int y = 0; y < height; y += mosaicSize)
|
||||
// {
|
||||
// Color c = GetAverageColor(original, x, y, mosaicSize);
|
||||
// Brush brush = new SolidBrush(c);
|
||||
// g.FillRectangle(brush, x, y, mosaicSize, mosaicSize);
|
||||
// brush.Dispose();
|
||||
// }
|
||||
//}
|
||||
for (int x = mosaicRect.X; x < width && x < mosaicRect.Right; x += mosaicSize)
|
||||
{
|
||||
for (int y = mosaicRect.Y; y < height && y < mosaicRect.Bottom; y += mosaicSize)
|
||||
{
|
||||
Color c = GetAverageColor(original, x, y, Math.Min(mosaicRect.Right - x, mosaicSize), Math.Min(mosaicRect.Bottom - y, mosaicSize));
|
||||
Brush brush = new SolidBrush(c);
|
||||
g.FillRectangle(brush, x, y, Math.Min(mosaicRect.Right - x, mosaicSize), Math.Min(mosaicRect.Bottom - y, mosaicSize));
|
||||
brush.Dispose();
|
||||
}
|
||||
}
|
||||
}
|
||||
//return mosaicBitmap;
|
||||
return original;
|
||||
}
|
||||
static Color GetAverageColor(Bitmap bmp, int x, int y, int xsize, int ysize)
|
||||
{
|
||||
int r = 0, g = 0, b = 0;
|
||||
int count = 0;
|
||||
for (int i = x; i < x + xsize && i < bmp.Width; i++)
|
||||
{
|
||||
for (int j = y; j < y + ysize && j < bmp.Height; j++)
|
||||
{
|
||||
Color c = bmp.GetPixel(i, j);
|
||||
r += c.R; g += c.G; b += c.B; count++;
|
||||
}
|
||||
}
|
||||
return Color.FromArgb(r / count, g / count, b / count);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,298 @@
|
||||
<?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>
|
||||
<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>
|
||||
+82
@@ -0,0 +1,82 @@
|
||||
|
||||
namespace TemuKJD.ToolForms
|
||||
{
|
||||
partial class DouBaoImgListForm
|
||||
{
|
||||
/// <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.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(DouBaoImgListForm));
|
||||
this.flowLayoutPanel1 = new System.Windows.Forms.FlowLayoutPanel();
|
||||
this.ucSkuImgListItem1 = new TemuKJD.ToolForms.UcSkuImgListItem();
|
||||
this.flowLayoutPanel1.SuspendLayout();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// flowLayoutPanel1
|
||||
//
|
||||
this.flowLayoutPanel1.AutoScroll = true;
|
||||
this.flowLayoutPanel1.BackColor = System.Drawing.Color.White;
|
||||
this.flowLayoutPanel1.Controls.Add(this.ucSkuImgListItem1);
|
||||
this.flowLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.flowLayoutPanel1.Location = new System.Drawing.Point(1, 33);
|
||||
this.flowLayoutPanel1.Name = "flowLayoutPanel1";
|
||||
this.flowLayoutPanel1.Size = new System.Drawing.Size(1198, 566);
|
||||
this.flowLayoutPanel1.TabIndex = 1;
|
||||
//
|
||||
// ucSkuImgListItem1
|
||||
//
|
||||
this.ucSkuImgListItem1.BackColor = System.Drawing.Color.White;
|
||||
this.ucSkuImgListItem1.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
this.ucSkuImgListItem1.Location = new System.Drawing.Point(3, 3);
|
||||
this.ucSkuImgListItem1.Name = "ucSkuImgListItem1";
|
||||
this.ucSkuImgListItem1.Size = new System.Drawing.Size(250, 280);
|
||||
this.ucSkuImgListItem1.TabIndex = 0;
|
||||
//
|
||||
// DouBaoImgListForm
|
||||
//
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
|
||||
this.ClientSize = new System.Drawing.Size(1200, 600);
|
||||
this.Controls.Add(this.flowLayoutPanel1);
|
||||
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.KeyPreview = true;
|
||||
this.Name = "DouBaoImgListForm";
|
||||
this.Text = "图片列表";
|
||||
this.TitleText = "图片列表";
|
||||
this.Load += new System.EventHandler(this.DouBaoImgListForm_Load);
|
||||
this.KeyDown += new System.Windows.Forms.KeyEventHandler(this.DouBaoImgListForm_KeyDown);
|
||||
this.Controls.SetChildIndex(this.flowLayoutPanel1, 0);
|
||||
this.flowLayoutPanel1.ResumeLayout(false);
|
||||
this.ResumeLayout(false);
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel1;
|
||||
private UcSkuImgListItem ucSkuImgListItem1;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,95 @@
|
||||
using AllBase;
|
||||
using AllBase.Model.Result.TemuResult;
|
||||
using DevComponents.DotNetBar;
|
||||
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 Work;
|
||||
using Work.BLL.Tools;
|
||||
|
||||
namespace TemuKJD.ToolForms
|
||||
{
|
||||
public partial class DouBaoImgListForm : LRBaseForm
|
||||
{
|
||||
public List<AiSkuImgInfo> LstSkuImgInfo;
|
||||
public DouBaoImgListForm(List<AiSkuImgInfo> lstSkuImgInfo)
|
||||
{
|
||||
InitializeComponent();
|
||||
LstSkuImgInfo = lstSkuImgInfo;
|
||||
}
|
||||
|
||||
private void DouBaoImgListForm_Load(object sender, EventArgs e)
|
||||
{
|
||||
LoadSkuImgList();
|
||||
}
|
||||
|
||||
void LoadSkuImgList()
|
||||
{
|
||||
this.flowLayoutPanel1.Controls.Clear();
|
||||
if (LstSkuImgInfo != null)
|
||||
{
|
||||
foreach (var skuImg in LstSkuImgInfo)
|
||||
{
|
||||
UcSkuImgListItem imgListItem = new UcSkuImgListItem();
|
||||
//if (!string.IsNullOrWhiteSpace(skuImg.img_url))
|
||||
// imgListItem.pictureBox1.ImageLocation = skuImg.img_url.Replace("img.kwcdn.com", "img.cdnfe.com").Replace("https://", "http://");
|
||||
//else
|
||||
if (!string.IsNullOrWhiteSpace(skuImg.img_base64))
|
||||
imgListItem.pictureBox1.Image = Base64ChangeImgUrl.Base64ToImage(skuImg.img_base64);
|
||||
imgListItem.btnDel.Tag = skuImg;
|
||||
imgListItem.Anchor = AnchorStyles.None;
|
||||
imgListItem.btnDel.Click += BtnDel_Click;
|
||||
this.flowLayoutPanel1.Controls.Add(imgListItem);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void BtnDel_Click(object sender, EventArgs e)
|
||||
{
|
||||
var btn = sender as PanelEx;
|
||||
if (btn != null)
|
||||
{
|
||||
var skuImg = btn.Tag as AiSkuImgInfo;
|
||||
if (skuImg != null)
|
||||
{
|
||||
//先删除数据库中的图片
|
||||
var url = BaseClass.BuildObjString("product/del_sku_image");
|
||||
var data = UserLogin.GetSignaturex() +
|
||||
"&img_id=" + skuImg.id + "&img_base64_id=" + skuImg.img_base64_db_id;
|
||||
var html = GetHtml.PostUtf8(url, data);
|
||||
if (string.IsNullOrEmpty(html) || !html.Contains("\"code\":200"))
|
||||
html = GetHtml.PostUtf8(url, data);
|
||||
if (string.IsNullOrEmpty(html) || !html.Contains("\"code\":200"))
|
||||
html = GetHtml.PostUtf8(url, data);
|
||||
if (string.IsNullOrEmpty(html) || !html.Contains("\"code\":200"))
|
||||
{
|
||||
BaseMsgForm.ShowError("删除失败,请重试!" + BaseRegex.GetStringJson(ref html, "msg"));
|
||||
return;
|
||||
}
|
||||
|
||||
//移除软件显示的图片
|
||||
LstSkuImgInfo.Remove(skuImg);
|
||||
LoadSkuImgList();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void DouBaoImgListForm_KeyDown(object sender, KeyEventArgs e)
|
||||
{
|
||||
switch (e.KeyCode)
|
||||
{
|
||||
//case Keys.A: MessageBox.Show("您按下的是A"); break;
|
||||
//case Keys.B: MessageBox.Show("您按下的是B"); break;
|
||||
case Keys.Enter: break;
|
||||
case Keys.Escape: this.Close(); break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,298 @@
|
||||
<?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>
|
||||
<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>
|
||||
File renamed without changes.
File renamed without changes.
File renamed without changes.
+28
-28
@@ -32,10 +32,10 @@ namespace TemuKJD.ToolForms
|
||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(ShowImgForm));
|
||||
this.splitContainer1 = new System.Windows.Forms.SplitContainer();
|
||||
this.pictureBox1 = new System.Windows.Forms.PictureBox();
|
||||
this.btnSave = new DevComponents.DotNetBar.PanelEx();
|
||||
this.btnCopy = new DevComponents.DotNetBar.PanelEx();
|
||||
this.btnCopyUrl = new DevComponents.DotNetBar.PanelEx();
|
||||
this.btnClose = new DevComponents.DotNetBar.PanelEx();
|
||||
this.btnSave = new DevComponents.DotNetBar.PanelEx();
|
||||
((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit();
|
||||
this.splitContainer1.Panel1.SuspendLayout();
|
||||
this.splitContainer1.Panel2.SuspendLayout();
|
||||
@@ -77,6 +77,31 @@ namespace TemuKJD.ToolForms
|
||||
this.pictureBox1.TabIndex = 0;
|
||||
this.pictureBox1.TabStop = false;
|
||||
//
|
||||
// btnSave
|
||||
//
|
||||
this.btnSave.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||
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(366, 4);
|
||||
this.btnSave.Name = "btnSave";
|
||||
this.btnSave.Size = new System.Drawing.Size(65, 26);
|
||||
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 = 505;
|
||||
this.btnSave.Text = "保存本地";
|
||||
this.btnSave.Click += new System.EventHandler(this.btnSave_Click);
|
||||
//
|
||||
// btnCopy
|
||||
//
|
||||
this.btnCopy.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||
@@ -152,37 +177,12 @@ namespace TemuKJD.ToolForms
|
||||
this.btnClose.Text = "关闭";
|
||||
this.btnClose.Click += new System.EventHandler(this.btnClose_Click);
|
||||
//
|
||||
// btnSave
|
||||
//
|
||||
this.btnSave.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||
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(366, 4);
|
||||
this.btnSave.Name = "btnSave";
|
||||
this.btnSave.Size = new System.Drawing.Size(65, 26);
|
||||
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 = 505;
|
||||
this.btnSave.Text = "保存本地";
|
||||
this.btnSave.Click += new System.EventHandler(this.btnSave_Click);
|
||||
//
|
||||
// ShowImgForm
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
|
||||
this.ClientSize = new System.Drawing.Size(650, 720);
|
||||
this.Controls.Add(this.splitContainer1);
|
||||
this.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
|
||||
this.KeyPreview = true;
|
||||
this.Name = "ShowImgForm";
|
||||
|
||||
@@ -98,9 +98,16 @@ namespace TemuKJD.ToolForms
|
||||
sfd.Filter = "JPeg Image|*.jpg;*.jpeg";
|
||||
sfd.Title = "保存图片";
|
||||
sfd.FileName = fileName;
|
||||
if ( sfd.ShowDialog() ==DialogResult.OK)
|
||||
if (sfd.ShowDialog() == DialogResult.OK)
|
||||
{
|
||||
pictureBox1.Image.Save(sfd.FileName, System.Drawing.Imaging.ImageFormat.Jpeg);
|
||||
try
|
||||
{
|
||||
pictureBox1.Image.Save(sfd.FileName, System.Drawing.Imaging.ImageFormat.Jpeg);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
BaseMsgForm.ShowError(ex.Message);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+306
@@ -0,0 +1,306 @@
|
||||
|
||||
namespace TemuKJD.ToolForms
|
||||
{
|
||||
partial class UcSkuImgItem
|
||||
{
|
||||
/// <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.splitContainer1 = new System.Windows.Forms.SplitContainer();
|
||||
this.splitContainer2 = new System.Windows.Forms.SplitContainer();
|
||||
this.pbSkuOriginalImg = new System.Windows.Forms.PictureBox();
|
||||
this.panelEx1 = new DevComponents.DotNetBar.PanelEx();
|
||||
this.splitContainer3 = new System.Windows.Forms.SplitContainer();
|
||||
this.pnlMore = new DevComponents.DotNetBar.PanelEx();
|
||||
this.pbSkuImg = new System.Windows.Forms.PictureBox();
|
||||
this.panelEx2 = new DevComponents.DotNetBar.PanelEx();
|
||||
this.splitContainer4 = new System.Windows.Forms.SplitContainer();
|
||||
this.label1 = new System.Windows.Forms.Label();
|
||||
((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit();
|
||||
this.splitContainer1.Panel1.SuspendLayout();
|
||||
this.splitContainer1.Panel2.SuspendLayout();
|
||||
this.splitContainer1.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.splitContainer2)).BeginInit();
|
||||
this.splitContainer2.Panel1.SuspendLayout();
|
||||
this.splitContainer2.Panel2.SuspendLayout();
|
||||
this.splitContainer2.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.pbSkuOriginalImg)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.splitContainer3)).BeginInit();
|
||||
this.splitContainer3.Panel1.SuspendLayout();
|
||||
this.splitContainer3.Panel2.SuspendLayout();
|
||||
this.splitContainer3.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.pbSkuImg)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.splitContainer4)).BeginInit();
|
||||
this.splitContainer4.Panel1.SuspendLayout();
|
||||
this.splitContainer4.Panel2.SuspendLayout();
|
||||
this.splitContainer4.SuspendLayout();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// splitContainer1
|
||||
//
|
||||
this.splitContainer1.BackColor = System.Drawing.Color.White;
|
||||
this.splitContainer1.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.splitContainer1.IsSplitterFixed = true;
|
||||
this.splitContainer1.Location = new System.Drawing.Point(0, 0);
|
||||
this.splitContainer1.Name = "splitContainer1";
|
||||
//
|
||||
// splitContainer1.Panel1
|
||||
//
|
||||
this.splitContainer1.Panel1.Controls.Add(this.splitContainer2);
|
||||
this.splitContainer1.Panel1.Padding = new System.Windows.Forms.Padding(2, 2, 0, 2);
|
||||
//
|
||||
// splitContainer1.Panel2
|
||||
//
|
||||
this.splitContainer1.Panel2.Controls.Add(this.splitContainer3);
|
||||
this.splitContainer1.Panel2.Padding = new System.Windows.Forms.Padding(0, 2, 2, 2);
|
||||
this.splitContainer1.Size = new System.Drawing.Size(206, 127);
|
||||
this.splitContainer1.SplitterDistance = 102;
|
||||
this.splitContainer1.SplitterWidth = 2;
|
||||
this.splitContainer1.TabIndex = 0;
|
||||
//
|
||||
// splitContainer2
|
||||
//
|
||||
this.splitContainer2.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.splitContainer2.FixedPanel = System.Windows.Forms.FixedPanel.Panel2;
|
||||
this.splitContainer2.IsSplitterFixed = true;
|
||||
this.splitContainer2.Location = new System.Drawing.Point(2, 2);
|
||||
this.splitContainer2.Name = "splitContainer2";
|
||||
this.splitContainer2.Orientation = System.Windows.Forms.Orientation.Horizontal;
|
||||
//
|
||||
// splitContainer2.Panel1
|
||||
//
|
||||
this.splitContainer2.Panel1.Controls.Add(this.pbSkuOriginalImg);
|
||||
//
|
||||
// splitContainer2.Panel2
|
||||
//
|
||||
this.splitContainer2.Panel2.Controls.Add(this.panelEx1);
|
||||
this.splitContainer2.Size = new System.Drawing.Size(100, 123);
|
||||
this.splitContainer2.SplitterDistance = 96;
|
||||
this.splitContainer2.SplitterWidth = 2;
|
||||
this.splitContainer2.TabIndex = 0;
|
||||
//
|
||||
// pbSkuOriginalImg
|
||||
//
|
||||
this.pbSkuOriginalImg.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.pbSkuOriginalImg.Image = global::TemuKJD.Properties.Resources.nopic;
|
||||
this.pbSkuOriginalImg.Location = new System.Drawing.Point(0, 0);
|
||||
this.pbSkuOriginalImg.Name = "pbSkuOriginalImg";
|
||||
this.pbSkuOriginalImg.Size = new System.Drawing.Size(100, 96);
|
||||
this.pbSkuOriginalImg.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;
|
||||
this.pbSkuOriginalImg.TabIndex = 0;
|
||||
this.pbSkuOriginalImg.TabStop = false;
|
||||
//
|
||||
// panelEx1
|
||||
//
|
||||
this.panelEx1.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
|
||||
this.panelEx1.Cursor = System.Windows.Forms.Cursors.Hand;
|
||||
this.panelEx1.DisabledBackColor = System.Drawing.Color.Empty;
|
||||
this.panelEx1.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
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(0, 0);
|
||||
this.panelEx1.Name = "panelEx1";
|
||||
this.panelEx1.Size = new System.Drawing.Size(100, 25);
|
||||
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 = 521;
|
||||
this.panelEx1.Text = "下载原图";
|
||||
//
|
||||
// splitContainer3
|
||||
//
|
||||
this.splitContainer3.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.splitContainer3.FixedPanel = System.Windows.Forms.FixedPanel.Panel2;
|
||||
this.splitContainer3.IsSplitterFixed = true;
|
||||
this.splitContainer3.Location = new System.Drawing.Point(0, 2);
|
||||
this.splitContainer3.Name = "splitContainer3";
|
||||
this.splitContainer3.Orientation = System.Windows.Forms.Orientation.Horizontal;
|
||||
//
|
||||
// splitContainer3.Panel1
|
||||
//
|
||||
this.splitContainer3.Panel1.Controls.Add(this.pnlMore);
|
||||
this.splitContainer3.Panel1.Controls.Add(this.pbSkuImg);
|
||||
//
|
||||
// splitContainer3.Panel2
|
||||
//
|
||||
this.splitContainer3.Panel2.Controls.Add(this.panelEx2);
|
||||
this.splitContainer3.Size = new System.Drawing.Size(100, 123);
|
||||
this.splitContainer3.SplitterDistance = 96;
|
||||
this.splitContainer3.SplitterWidth = 2;
|
||||
this.splitContainer3.TabIndex = 1;
|
||||
//
|
||||
// pnlMore
|
||||
//
|
||||
this.pnlMore.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.pnlMore.CanvasColor = System.Drawing.Color.Transparent;
|
||||
this.pnlMore.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
|
||||
this.pnlMore.Cursor = System.Windows.Forms.Cursors.Hand;
|
||||
this.pnlMore.DisabledBackColor = System.Drawing.Color.Empty;
|
||||
this.pnlMore.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
this.pnlMore.Location = new System.Drawing.Point(77, 74);
|
||||
this.pnlMore.Name = "pnlMore";
|
||||
this.pnlMore.Size = new System.Drawing.Size(23, 23);
|
||||
this.pnlMore.Style.Alignment = System.Drawing.StringAlignment.Center;
|
||||
this.pnlMore.Style.BackColor1.Color = System.Drawing.Color.Transparent;
|
||||
this.pnlMore.Style.BackColor2.Color = System.Drawing.Color.Transparent;
|
||||
this.pnlMore.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder;
|
||||
this.pnlMore.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash;
|
||||
this.pnlMore.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None;
|
||||
this.pnlMore.Style.ForeColor.Color = System.Drawing.Color.Black;
|
||||
this.pnlMore.Style.GradientAngle = 90;
|
||||
this.pnlMore.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center;
|
||||
this.pnlMore.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255)))));
|
||||
this.pnlMore.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255)))));
|
||||
this.pnlMore.TabIndex = 525;
|
||||
this.pnlMore.Text = "···";
|
||||
this.pnlMore.Visible = false;
|
||||
this.pnlMore.Click += new System.EventHandler(this.pnlMore_Click);
|
||||
//
|
||||
// pbSkuImg
|
||||
//
|
||||
this.pbSkuImg.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.pbSkuImg.Image = global::TemuKJD.Properties.Resources.nopic;
|
||||
this.pbSkuImg.Location = new System.Drawing.Point(0, 0);
|
||||
this.pbSkuImg.Name = "pbSkuImg";
|
||||
this.pbSkuImg.Size = new System.Drawing.Size(100, 96);
|
||||
this.pbSkuImg.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;
|
||||
this.pbSkuImg.TabIndex = 0;
|
||||
this.pbSkuImg.TabStop = false;
|
||||
this.pbSkuImg.Click += new System.EventHandler(this.pbSkuImg_Click);
|
||||
//
|
||||
// panelEx2
|
||||
//
|
||||
this.panelEx2.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
|
||||
this.panelEx2.Cursor = System.Windows.Forms.Cursors.Hand;
|
||||
this.panelEx2.DisabledBackColor = System.Drawing.Color.Empty;
|
||||
this.panelEx2.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.panelEx2.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
this.panelEx2.Location = new System.Drawing.Point(0, 0);
|
||||
this.panelEx2.Name = "panelEx2";
|
||||
this.panelEx2.Size = new System.Drawing.Size(100, 25);
|
||||
this.panelEx2.Style.Alignment = System.Drawing.StringAlignment.Center;
|
||||
this.panelEx2.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
|
||||
this.panelEx2.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
|
||||
this.panelEx2.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder;
|
||||
this.panelEx2.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash;
|
||||
this.panelEx2.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None;
|
||||
this.panelEx2.Style.ForeColor.Color = System.Drawing.Color.White;
|
||||
this.panelEx2.Style.GradientAngle = 90;
|
||||
this.panelEx2.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center;
|
||||
this.panelEx2.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255)))));
|
||||
this.panelEx2.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255)))));
|
||||
this.panelEx2.TabIndex = 521;
|
||||
this.panelEx2.Text = "新增AI图";
|
||||
//
|
||||
// splitContainer4
|
||||
//
|
||||
this.splitContainer4.BackColor = System.Drawing.Color.White;
|
||||
this.splitContainer4.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.splitContainer4.FixedPanel = System.Windows.Forms.FixedPanel.Panel1;
|
||||
this.splitContainer4.IsSplitterFixed = true;
|
||||
this.splitContainer4.Location = new System.Drawing.Point(1, 1);
|
||||
this.splitContainer4.Name = "splitContainer4";
|
||||
this.splitContainer4.Orientation = System.Windows.Forms.Orientation.Horizontal;
|
||||
//
|
||||
// splitContainer4.Panel1
|
||||
//
|
||||
this.splitContainer4.Panel1.Controls.Add(this.label1);
|
||||
this.splitContainer4.Panel1.Padding = new System.Windows.Forms.Padding(0, 2, 0, 0);
|
||||
this.splitContainer4.Panel1MinSize = 20;
|
||||
//
|
||||
// splitContainer4.Panel2
|
||||
//
|
||||
this.splitContainer4.Panel2.Controls.Add(this.splitContainer1);
|
||||
this.splitContainer4.Panel2MinSize = 20;
|
||||
this.splitContainer4.Size = new System.Drawing.Size(206, 154);
|
||||
this.splitContainer4.SplitterDistance = 25;
|
||||
this.splitContainer4.SplitterWidth = 2;
|
||||
this.splitContainer4.TabIndex = 1;
|
||||
//
|
||||
// label1
|
||||
//
|
||||
this.label1.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.label1.Location = new System.Drawing.Point(0, 2);
|
||||
this.label1.Name = "label1";
|
||||
this.label1.Size = new System.Drawing.Size(206, 23);
|
||||
this.label1.TabIndex = 0;
|
||||
this.label1.Text = "label1";
|
||||
this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
||||
//
|
||||
// UcSkuImgItem
|
||||
//
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
|
||||
this.BackColor = System.Drawing.SystemColors.MenuHighlight;
|
||||
this.Controls.Add(this.splitContainer4);
|
||||
this.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
this.Name = "UcSkuImgItem";
|
||||
this.Padding = new System.Windows.Forms.Padding(1);
|
||||
this.Size = new System.Drawing.Size(208, 156);
|
||||
this.SizeChanged += new System.EventHandler(this.UcImgChange_SizeChanged);
|
||||
this.Resize += new System.EventHandler(this.UcImgChange_Resize);
|
||||
this.splitContainer1.Panel1.ResumeLayout(false);
|
||||
this.splitContainer1.Panel2.ResumeLayout(false);
|
||||
((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).EndInit();
|
||||
this.splitContainer1.ResumeLayout(false);
|
||||
this.splitContainer2.Panel1.ResumeLayout(false);
|
||||
this.splitContainer2.Panel2.ResumeLayout(false);
|
||||
((System.ComponentModel.ISupportInitialize)(this.splitContainer2)).EndInit();
|
||||
this.splitContainer2.ResumeLayout(false);
|
||||
((System.ComponentModel.ISupportInitialize)(this.pbSkuOriginalImg)).EndInit();
|
||||
this.splitContainer3.Panel1.ResumeLayout(false);
|
||||
this.splitContainer3.Panel2.ResumeLayout(false);
|
||||
((System.ComponentModel.ISupportInitialize)(this.splitContainer3)).EndInit();
|
||||
this.splitContainer3.ResumeLayout(false);
|
||||
((System.ComponentModel.ISupportInitialize)(this.pbSkuImg)).EndInit();
|
||||
this.splitContainer4.Panel1.ResumeLayout(false);
|
||||
this.splitContainer4.Panel2.ResumeLayout(false);
|
||||
((System.ComponentModel.ISupportInitialize)(this.splitContainer4)).EndInit();
|
||||
this.splitContainer4.ResumeLayout(false);
|
||||
this.ResumeLayout(false);
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private System.Windows.Forms.SplitContainer splitContainer1;
|
||||
private System.Windows.Forms.SplitContainer splitContainer2;
|
||||
private System.Windows.Forms.SplitContainer splitContainer3;
|
||||
public System.Windows.Forms.PictureBox pbSkuImg;
|
||||
public DevComponents.DotNetBar.PanelEx panelEx2;
|
||||
public DevComponents.DotNetBar.PanelEx panelEx1;
|
||||
public System.Windows.Forms.PictureBox pbSkuOriginalImg;
|
||||
private System.Windows.Forms.SplitContainer splitContainer4;
|
||||
public System.Windows.Forms.Label label1;
|
||||
public DevComponents.DotNetBar.PanelEx pnlMore;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,75 @@
|
||||
using AllBase.Model.Result.TemuResult;
|
||||
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 Work.BLL.Tools;
|
||||
|
||||
namespace TemuKJD.ToolForms
|
||||
{
|
||||
public partial class UcSkuImgItem : UserControl
|
||||
{
|
||||
public long ProdId;
|
||||
public long SpecId;
|
||||
public string SpecName;
|
||||
public string SpecImgUrl;
|
||||
public List<AiSkuImgInfo> LstSkuImgInfo = new List<AiSkuImgInfo>();
|
||||
|
||||
public UcSkuImgItem()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
|
||||
public UcSkuImgItem(long _prodId, long _specId, string _specName, string _specImgUrl)
|
||||
{
|
||||
InitializeComponent();
|
||||
ProdId = _prodId;
|
||||
SpecId = _specId;
|
||||
SpecName = _specName;
|
||||
SpecImgUrl = _specImgUrl;
|
||||
}
|
||||
|
||||
private void UcImgChange_SizeChanged(object sender, EventArgs e)
|
||||
{
|
||||
this.Height = this.Width / 2 + 56;
|
||||
}
|
||||
|
||||
private void UcImgChange_Resize(object sender, EventArgs e)
|
||||
{
|
||||
//this.Height = this.Width / 2 + 10;
|
||||
}
|
||||
|
||||
private void pnlMore_Click(object sender, EventArgs e)
|
||||
{
|
||||
showSkuAiImgList();
|
||||
}
|
||||
|
||||
private void pbSkuImg_Click(object sender, EventArgs e)
|
||||
{
|
||||
showSkuAiImgList();
|
||||
}
|
||||
|
||||
public void showSkuAiImgList()
|
||||
{
|
||||
//DouBaoImgListForm imgLstForm = new DouBaoImgListForm(this.LstSkuImgInfo);
|
||||
//imgLstForm.ShowDialog();
|
||||
//var imgInfo = this.LstSkuImgInfo.FirstOrDefault();
|
||||
//if (imgInfo == null)
|
||||
//{
|
||||
// this.pbSkuImg.Image = Properties.Resources.nopic;
|
||||
//}
|
||||
//else
|
||||
//{
|
||||
// if (!string.IsNullOrWhiteSpace(imgInfo.img_url))
|
||||
// pbSkuImg.ImageLocation = imgInfo.img_url;
|
||||
// else if (!string.IsNullOrWhiteSpace(imgInfo.img_base64))
|
||||
// pbSkuImg.Image = Base64ChangeImgUrl.Base64ToImage(imgInfo.img_base64);
|
||||
//}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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>
|
||||
+100
@@ -0,0 +1,100 @@
|
||||
|
||||
namespace TemuKJD.ToolForms
|
||||
{
|
||||
partial class UcSkuImgListItem
|
||||
{
|
||||
/// <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.pictureBox1 = new System.Windows.Forms.PictureBox();
|
||||
this.btnDel = new DevComponents.DotNetBar.PanelEx();
|
||||
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// pictureBox1
|
||||
//
|
||||
this.pictureBox1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
|
||||
| System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.pictureBox1.Image = global::TemuKJD.Properties.Resources.nopic;
|
||||
this.pictureBox1.Location = new System.Drawing.Point(0, 0);
|
||||
this.pictureBox1.Name = "pictureBox1";
|
||||
this.pictureBox1.Size = new System.Drawing.Size(250, 250);
|
||||
this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;
|
||||
this.pictureBox1.TabIndex = 0;
|
||||
this.pictureBox1.TabStop = false;
|
||||
this.pictureBox1.Click += new System.EventHandler(this.pictureBox1_Click);
|
||||
//
|
||||
// btnDel
|
||||
//
|
||||
this.btnDel.Anchor = System.Windows.Forms.AnchorStyles.Bottom;
|
||||
this.btnDel.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
|
||||
this.btnDel.Cursor = System.Windows.Forms.Cursors.Hand;
|
||||
this.btnDel.DisabledBackColor = System.Drawing.Color.Empty;
|
||||
this.btnDel.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
this.btnDel.Location = new System.Drawing.Point(77, 253);
|
||||
this.btnDel.Name = "btnDel";
|
||||
this.btnDel.Size = new System.Drawing.Size(100, 23);
|
||||
this.btnDel.Style.Alignment = System.Drawing.StringAlignment.Center;
|
||||
this.btnDel.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
|
||||
this.btnDel.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
|
||||
this.btnDel.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder;
|
||||
this.btnDel.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash;
|
||||
this.btnDel.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None;
|
||||
this.btnDel.Style.ForeColor.Color = System.Drawing.Color.White;
|
||||
this.btnDel.Style.GradientAngle = 90;
|
||||
this.btnDel.StyleMouseDown.Alignment = System.Drawing.StringAlignment.Center;
|
||||
this.btnDel.StyleMouseDown.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(252)))), ((int)(((byte)(151)))), ((int)(((byte)(61)))));
|
||||
this.btnDel.StyleMouseDown.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(184)))), ((int)(((byte)(94)))));
|
||||
this.btnDel.StyleMouseDown.BorderColor.Color = System.Drawing.Color.FromArgb(((int)(((byte)(251)))), ((int)(((byte)(140)))), ((int)(((byte)(60)))));
|
||||
this.btnDel.StyleMouseDown.ForeColor.Color = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))));
|
||||
this.btnDel.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center;
|
||||
this.btnDel.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255)))));
|
||||
this.btnDel.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255)))));
|
||||
this.btnDel.StyleMouseOver.BorderColor.Color = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(189)))), ((int)(((byte)(105)))));
|
||||
this.btnDel.StyleMouseOver.ForeColor.Color = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))));
|
||||
this.btnDel.TabIndex = 525;
|
||||
this.btnDel.Text = "删除图片";
|
||||
//
|
||||
// UcSkuImgListItem
|
||||
//
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
|
||||
this.BackColor = System.Drawing.Color.White;
|
||||
this.Controls.Add(this.btnDel);
|
||||
this.Controls.Add(this.pictureBox1);
|
||||
this.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
this.Name = "UcSkuImgListItem";
|
||||
this.Size = new System.Drawing.Size(250, 280);
|
||||
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit();
|
||||
this.ResumeLayout(false);
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
public DevComponents.DotNetBar.PanelEx btnDel;
|
||||
public System.Windows.Forms.PictureBox pictureBox1;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
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.ToolForms
|
||||
{
|
||||
public partial class UcSkuImgListItem : UserControl
|
||||
{
|
||||
public UcSkuImgListItem()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
|
||||
private void pictureBox1_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (!string.IsNullOrEmpty(pictureBox1.ImageLocation))
|
||||
{
|
||||
ShowImgForm imgFrom = new ShowImgForm(pictureBox1.ImageLocation);
|
||||
imgFrom.ShowDialog();
|
||||
}
|
||||
else
|
||||
{
|
||||
ShowImgForm imgFrom = new ShowImgForm(pictureBox1.Image);
|
||||
imgFrom.ShowDialog();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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>
|
||||
Reference in new issue
Block a user