From c489c30bf1845ad8dbbad2232add3cf3f5438cc1 Mon Sep 17 00:00:00 2001 From: wule Date: Wed, 18 Mar 2026 20:45:32 +0800 Subject: [PATCH] =?UTF-8?q?1688=E5=95=86=E5=93=81=E9=87=87=E9=9B=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- AllBase/AllBase.csproj | 3 + AllBase/BaseClass.cs | 2 +- AllBase/BaseRegex.cs | 97 ++ AllBase/JsonHelper.cs | 16 + .../Result/1688/_1688ClientProductInfo.cs | 183 +++ .../Result/1688/_1688OneProductListInfo.cs | 103 ++ .../WXResult/WXClientProductInfoLite.cs | 122 ++ .../WXResult/WXGetEditProductInfoLite.cs | 8 +- TEMUKJD/BLL/PDDProdFormConverter.cs | 4 +- TEMUKJD/BLL/_1688HttpResponseBLL.cs | 148 +++ TEMUKJD/KJD.csproj | 21 + .../PDDDBProdListForm.Designer.cs | 21 +- .../ProductSelectForms/PDDDBProdListForm.cs | 7 +- TEMUKJD/Properties/Resources.Designer.cs | 10 + TEMUKJD/Properties/Resources.resx | 3 + TEMUKJD/Resources/wang_wang_icon.png | Bin 0 -> 3458 bytes .../ToolForms/Get1688ProductForm.Designer.cs | 977 +++++++++++++++ TEMUKJD/ToolForms/Get1688ProductForm.cs | 1089 +++++++++++++++++ TEMUKJD/ToolForms/Get1688ProductForm.resx | 171 +++ .../GetJuShuitanProdForm.Designer.cs | 16 +- TEMUKJD/ToolForms/GetJuShuitanProdForm.cs | 13 +- ...GetJuShuitanProductSKUListForm.Designer.cs | 256 ++-- TEMUKJD/ToolForms/WebForm.Designer.cs | 193 +++ TEMUKJD/ToolForms/WebForm.cs | 300 +++++ TEMUKJD/ToolForms/WebForm.resx | 298 +++++ TEMUKJD/ToolForms/WebFormObj.cs | 14 + TEMUKJD/UserComponent/DataGridViewEx.cs | 6 +- .../UserComponent/UcComboBoxMutiSelect .cs | 75 ++ .../AdminForms/WXAdminForm.Designer.cs | 20 +- TEMUKJD/WXForms/AdminForms/WXAdminForm.cs | 6 +- .../WXDBProdUploadForm.Designer.cs | 2 + .../ProductForms/WXDBProdUploadForm.cs | 8 +- .../WXForms/ShopForms/WXShopAddEditForm.cs | 14 +- .../ShopForms/WXShopListForm.Designer.cs | 138 +-- TEMUKJD/WXForms/ShopForms/WXShopListForm.cs | 5 +- 35 files changed, 4095 insertions(+), 254 deletions(-) create mode 100644 AllBase/Model/Result/1688/_1688ClientProductInfo.cs create mode 100644 AllBase/Model/Result/1688/_1688OneProductListInfo.cs create mode 100644 AllBase/Model/Result/WXResult/WXClientProductInfoLite.cs create mode 100644 TEMUKJD/BLL/_1688HttpResponseBLL.cs create mode 100644 TEMUKJD/Resources/wang_wang_icon.png create mode 100644 TEMUKJD/ToolForms/Get1688ProductForm.Designer.cs create mode 100644 TEMUKJD/ToolForms/Get1688ProductForm.cs create mode 100644 TEMUKJD/ToolForms/Get1688ProductForm.resx create mode 100644 TEMUKJD/ToolForms/WebForm.Designer.cs create mode 100644 TEMUKJD/ToolForms/WebForm.cs create mode 100644 TEMUKJD/ToolForms/WebForm.resx create mode 100644 TEMUKJD/ToolForms/WebFormObj.cs diff --git a/AllBase/AllBase.csproj b/AllBase/AllBase.csproj index 26403c4..1dc3191 100644 --- a/AllBase/AllBase.csproj +++ b/AllBase/AllBase.csproj @@ -197,8 +197,11 @@ + + + diff --git a/AllBase/BaseClass.cs b/AllBase/BaseClass.cs index ff3db2f..3a99615 100644 --- a/AllBase/BaseClass.cs +++ b/AllBase/BaseClass.cs @@ -27,7 +27,7 @@ namespace AllBase /// /// 版本ID /// - public static int VersionCount = 913; + public static int VersionCount = 920; //public static int VersionCount = 613; /// diff --git a/AllBase/BaseRegex.cs b/AllBase/BaseRegex.cs index c5ef634..ae154d1 100644 --- a/AllBase/BaseRegex.cs +++ b/AllBase/BaseRegex.cs @@ -6,6 +6,7 @@ */ using System; +using System.Linq; using System.Text; using System.Text.RegularExpressions; @@ -673,6 +674,102 @@ namespace AllBase return temp; } + public static string GetOneJsonObjStrJson(ref string html, string reg) + { + return GetJsonObjStrJson(ref html, reg).FirstOrDefault(); + } + + public static System.Collections.Generic.List GetJsonObjStrJson(ref string html, string reg, int level = 0) + { + System.Collections.Generic.List rstLst = new System.Collections.Generic.List(); + if (html == null) + return rstLst; + + string htmlTmp = html.Replace("\\{", "\\这里是正花括号占位符").Replace("\\}", "\\这里是反花括号占位符"); + + retry: + string lvStr = ""; + if (level == 1) + { + lvStr += "\""; + } + var index1 = htmlTmp.IndexOf("\"" + reg + "\":" + lvStr + "{"); + if (index1 < 0) + return rstLst; + + htmlTmp = htmlTmp.Substring(index1 + ("\"" + reg + "\":" + lvStr + "{").Length - 1); + // 括号计数 + int braceNum = 0; + //string rst = "{"; + //while (htmlTmp.Length > 0) + for (int i = 0; i < htmlTmp.Length; i++) + { + //rst += htmlTmp.Substring(0, 1); + //if (htmlTmp.StartsWith("{")) + // braceNum++; + //else if (htmlTmp.StartsWith("}")) + // braceNum--; + if (htmlTmp[i] == '{') + braceNum++; + else if (htmlTmp[i] == '}') + braceNum--; + //htmlTmp = htmlTmp.Substring(1); + if (braceNum == 0) + { + rstLst.Add(htmlTmp.Substring(0, i + 1).Replace("\\这里是正花括号占位符", "\\{").Replace("\\这里是反花括号占位符", "\\}")); + htmlTmp = htmlTmp.Substring(i + 1); + //rstLst.Add(rst.Replace("\\这里是正花括号占位符", "\\{").Replace("\\这里是反花括号占位符", "\\}")); + break; + } + + // 循环完了还没结果返回空列表 + if (i == htmlTmp.Length - 1) + return rstLst; + } + if (htmlTmp.Length > 0) + goto retry; + + return rstLst; + } + + public static System.Collections.Generic.List GetJsonArrStrJson(ref string html, string reg) + { + System.Collections.Generic.List rstLst = new System.Collections.Generic.List(); + if (html == null) + return rstLst; + + string htmlTmp = html.Replace("\\[", "\\这里是正方括号占位符").Replace("\\]", "\\这里是反方括号占位符"); + + retry: + var index1 = htmlTmp.IndexOf("\"" + reg + "\":["); + if (index1 < 0) + return rstLst; + + htmlTmp = htmlTmp.Substring(index1 + ("\"" + reg + "\":[").Length); + // 括号计数 + int braceNum = 1; + string rst = "["; + while (htmlTmp.Length > 0) + { + rst += htmlTmp.Substring(0, 1); + if (htmlTmp.StartsWith("[")) + braceNum++; + else if (htmlTmp.StartsWith("}")) + braceNum--; + htmlTmp = htmlTmp.Substring(1); + if (braceNum == 0) + { + rstLst.Add(rst.Replace("\\这里是正方括号占位符", "\\[").Replace("\\这里是反方括号占位符", "\\]")); + break; + } + } + if (htmlTmp.Length > 0) + goto retry; + + return rstLst; + } + + /// /// 获取值 /// diff --git a/AllBase/JsonHelper.cs b/AllBase/JsonHelper.cs index 2c58767..c43e8b0 100644 --- a/AllBase/JsonHelper.cs +++ b/AllBase/JsonHelper.cs @@ -83,6 +83,22 @@ namespace AllBase return list; } + public static List DeserializeJsonToListNullable(string json) where T : class + { + try + { + JsonSerializer serializer = new JsonSerializer(); + StringReader sr = new StringReader(json); + object o = serializer.Deserialize(new JsonTextReader(sr), typeof(List)); + List list = o as List; + return list; + } + catch + { + return null; + } + } + /// /// 反序列化JSON到给定的匿名对象. /// diff --git a/AllBase/Model/Result/1688/_1688ClientProductInfo.cs b/AllBase/Model/Result/1688/_1688ClientProductInfo.cs new file mode 100644 index 0000000..6f4447a --- /dev/null +++ b/AllBase/Model/Result/1688/_1688ClientProductInfo.cs @@ -0,0 +1,183 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace AllBase.Model.Result._1688 +{ + public class _1688ClientProductInfo + { + /// + /// 视频 + /// + public _1688video video { get; set; } + /// + /// 主图 + /// + public List mainImage { get; set; } // [ "https://cbu01.alicdn.com/img/ibank/O1CN01uMQVpc1SbsMQKCM1r_!!2213822092266-0-cib.jpg", ...] + /// + /// 详情图 + /// + public List offerImgList { get; set; } // [ "https://cbu01.alicdn.com/img/ibank/O1CN0183ad2V1NXgrFDjILN_!!2217110111580-0-cib.jpg", ...] + /// + /// sku + /// + public _1688skuModel skuModel { get; set; } + public _1688offerBaseInfo offerBaseInfo { get; set; } + /// + /// 店铺模板 //商品标题 店铺信息 主类目id 等 + /// + public _1688tempModel tempModel { get; set; } + /// + /// + /// + //public _1688exposeInfo exposeInfo { get; set; } + /// + /// 商品属性信息 + /// + public _1688offerDetail offerDetail {get;set;} + /// + /// 运费 + /// + public decimal? postFeeValue { get; set; } // 2.5 + } + + public class _1688offerBaseInfo + { + public long? sellerUserId { get; set; } // 2217080371361, + public string sellerLoginId { get; set; } // "赛龙宠物", + public string sellerMemberId { get; set; } // "b2b-2217080371361a853b", + public long? offerId { get; set; } // 757406440159, + //public long? buyerUserId { get; set; } // 794184311, + //public string buyerLoginId { get; set; } // "lord_darthvader", + //public string buyerMemberId { get; set; } // "b2b-7941843117d583", + public string sellerWinportUrl { get; set; } // "https://shop5856d77490jj8.1688.com", + public long? catId { get; set; } // 122584001, + public string tradeTemplateId { get; set; } // "[0]", + public bool? wholeNetworkEvaluation { get; set; } // false, + public bool? shieldPcOfferDetail { get; set; } // false + + } + + public class _1688offerDetail + { + public string brandName { get; set; } // "懿仝" + public string detailUrl { get; set; } // "https://itemcdn.tmall.com/desc/icoss!0853216545098!1304502852?var=desc" + /// + /// 商品属性 + /// + public List<_1688featureAttributes> featureAttributes { get; set; } + public List<_1688image> imageList { get; set; } + public long? leafCategoryId { get; set; } // 122584001 + public string leafCategoryName { get; set; } // "猫砂" + public List<_1688image> mainImageList { get; set; } + public long? offerId { get; set; } // 757406440159 + public string offerType { get; set; } // "fashion" + public object status { get; set; } // "PUBLISHED" + public string subject { get; set; } // "比亿奇膨润土猫沙40斤实惠装 混合猫砂除臭结团猫舍批发厂家直销" + public long? topCategoryId { get; set; } // 122916001 + } + + public class _1688image + { + public string fullPathImageURI { get; set; } // "https://cbu01.alicdn.com/img/ibank/O1CN01G4BnYt1LvO0gv4tGd_!!2217080371361-0-cib.jpg", + //public string imageURI { get; set; } // "img/ibank/O1CN01G4BnYt1LvO0gv4tGd_!!2217080371361-0-cib.jpg", + //public string searchImageURI { get; set; } // "https://cbu01.alicdn.com/img/ibank/O1CN01G4BnYt1LvO0gv4tGd_!!2217080371361-0-cib.search.jpg", + //public string size220x220ImageURI { get; set; } // "https://cbu01.alicdn.com/img/ibank/O1CN01G4BnYt1LvO0gv4tGd_!!2217080371361-0-cib.220x220.jpg", + //public string size310x310ImageURI { get; set; } // "https://cbu01.alicdn.com/img/ibank/O1CN01G4BnYt1LvO0gv4tGd_!!2217080371361-0-cib.310x310.jpg", + //public string summImageURI { get; set; } // "https://cbu01.alicdn.com/img/ibank/O1CN01G4BnYt1LvO0gv4tGd_!!2217080371361-0-cib.summ.jpg" + } + + public class _1688featureAttributes + { + public List decisionValues { get; set; } // [ "膨润土" ], + public long? fid { get; set; } // 122594618, + public bool? isSpecial { get; set; } // false, + public bool? itemCpvDecision { get; set; } // true, + public bool? lectotype { get; set; } // false, + public string name { get; set; } // "猫砂种类", + public int? outputType { get; set; } // 0, + public string value { get; set; } // "膨润土", + public List values { get; set; } // [ "膨润土" ] + } + + //public class _1688exposeInfo + //{ + // public _1688exposeArgs exposeArgs { get; set; } + //} + + //public class _1688exposeArgs + //{ + // public string isYanxuanOffer { get; set; } // "false", + // public string evo_page_newod { get; set; } // "1", + // public string sceneType { get; set; } // "default", + // public string ipvId { get; set; } // "213e049817737434077575644e0e5f", + // public string isPlusMember { get; set; } // "false", + // public string verticalType { get; set; } // "slsj", + // public string offerId { get; set; } // "982078393519", + // public string channelType { get; set; } // "dsc" + //} + + public class _1688tempModel + { + public string offerUnit { get; set; } // "件", + public long? offerId { get; set; } // 757406440159, + public string offerTitle { get; set; } // "比亿奇膨润土猫沙40斤实惠装 混合猫砂除臭结团猫舍批发厂家直销", + public string defaultOfferImg { get; set; } // "", + public long? topCategoryId { get; set; } // 122916001, + public long? postCategoryId { get; set; } // 122584001, + public string companyName { get; set; } // "赛龙宠物用品有限公司", + public long? sellerUserId { get; set; } // 2217080371361, + public string sellerLoginId { get; set; } // "赛龙宠物", + public string sellerMemberId { get; set; } // "b2b-2217080371361a853b", + public string winportUrl { get; set; } // "https://winport.m.1688.com/page/index.html?memberId=b2b-2217080371361a853b", + public int? saledCount { get; set; } // 1550301 + + } + + public class _1688video + { + public string coverUrl { get; set; } // "https://cbu01.alicdn.com/img/ibank/O1CN01TFpYU11Bs2sOyWtx9_!!0-0-cib.jpg", + public long? videoId { get; set; } // 425966848068, + public int? state { get; set; } // 6, + public string title { get; set; } // "莫代尔蕾丝长裤", + public string videoUrl { get; set; } // "https://cloud.video.taobao.com/play/u/2213822092266/p/2/e/6/t/1/425966848068.mp4" + + } + + public class _1688skuModel + { + public List<_1688skuProp> skuProps { get; set; } + public Dictionary skuInfoMap { get; set; } = new Dictionary(); // key:"浅灰+浅灰>L(建议100-125斤)" + public string skuPriceScale { get; set; } // "10.50-21.00" + public Dictionary skuInfoMapOriginal { get; set; } = new Dictionary(); // key:"浅灰+浅灰>L(建议100-125斤)" + public string skuPriceScaleOriginal { get; set; } // "10.50-21.00" + } + + public class _1688skuInfo + { + public string specId { get; set; } // "9245e6730c7356a7eaaaeab64f57a6d7", + public string specAttrs { get; set; } // "浅灰+浅灰>L(建议100-125斤)", //sku规格 + public string price { get; set; } // "21.00", //价格不含邮费 + public int? saleCount { get; set; } // 0, + public string discountPrice { get; set; } // "21.00", //折扣价格不含邮费 + public int? canBookCount { get; set; } // 9999, //库存 + public string retailPrice { get; set; } // "", + public string skuId { get; set; } // 6106718751233, + public string isPromotionSku { get; set; } // true + } + + public class _1688skuProp + { + public long? fid { get; set; } // 1234 + public string prop { get; set; } // "规格" + public List<_1688skuValue> value { get; set; } + } + + public class _1688skuValue + { + public string imageUrl { get; set; } // "https://cbu01.alicdn.com/img/ibank/O1CN01Awb9mH1NXgrEYzkNl_!!2217110111580-0-cib.jpg" + public string name { get; set; } // "5个装/渐变紫/A4旋转文件夹(送标签贴)" + } +} diff --git a/AllBase/Model/Result/1688/_1688OneProductListInfo.cs b/AllBase/Model/Result/1688/_1688OneProductListInfo.cs new file mode 100644 index 0000000..b5cc7e1 --- /dev/null +++ b/AllBase/Model/Result/1688/_1688OneProductListInfo.cs @@ -0,0 +1,103 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace AllBase.Model.Result._1688 +{ + public class _1688OneProductListInfo + { + public List<_1688ciphertextInfo> ciphertextInfoList { get; set; } + /// + /// 月代发(排序) + /// + public int? dfSalesForSort { get; set; } // 62858 + public _1688fullfillInfo fullfillInfo { get; set; } + public _1688memberInfo memberInfo { get; set; } + /// + /// 商品Id + /// + public long? offerId { get; set; } // 757406440159, + public string offerPic { get; set; } // "https://cbu01.alicdn.com/img/ibank/O1CN01G4BnYt1LvO0gv4tGd_!!2217080371361-0-cib.jpg", + public string postDate { get; set; } // "2023-12-22 10:40:33", + public decimal price { get; set; } // 9.9, + public _1688proxyAdvice proxyAdvice { get; set; } + public _1688saleInfo saleInfo { get; set; } + public long? sellerId { get; set; } // 2217080371361 + public string title { get; set; } // "比亿奇膨润土猫沙40斤实惠装 混合猫砂除臭结团猫舍批发厂家直销" + public string traceInfo { get; set; } // "object_id@757406440159^object_type@offer^^fx_param@%7B%22filter%22%3A%5B%5D%2C%22keyword%22%3A%22%22%2C%22pageIndex%22%3A1%2C%22pageSize%22%3A50%2C%22sceneCode%22%3A%22fxyx%22%2C%22searchMode%22%3A%22KEYWORD_SEARCH%22%2C%22sortModel%22%3A%7B%22desc%22%3Atrue%2C%22field%22%3A%22l68%22%7D%2C%22terminal%22%3A%22PC%22%7D^version@2" + public int? version { get; set; } // 2 + public bool? yjby { get;set;} // true + + public string getProductMsg { get; set; } + public string _1688ProductJson { get; set; } + public KJDDBProduct dbProduct { get; set; } + } + + public class _1688saleInfo + { + /// + /// 月代发 + /// + public string blurDfSales { get; set; } // "6w+", + /// + /// 近7天代发 + /// + public string blurDfSales7d { get; set; } // "1w+", + /// + /// 近30天趋势 + /// + public List blurDfTrend { get; set; } + /// + /// 月代发数字 + /// + public int? dfSales { get; set; } + } + + public class _1688proxyAdvice + { + /// + /// 铺货数 + /// + public string outDistributeCnt { get; set; } // "4k+", + /// + /// 商品退货率 + /// + public string qualityRefundRate { get; set; } // "0.0%" + + } + + public class _1688memberInfo + { + public string companyName { get; set; } // "赛龙(辽宁)宠物用品有限公司", + public bool? hasXchf { get; set; } // true, + public bool? isPm { get; set; } // true, + public bool? isPmPlus { get; set; } // true, + public bool? isTp { get; set; } // true, + public int? tpYear { get; set; } // 3 + + } + + public class _1688fullfillInfo + { + /// + /// 预计13H内发货 + /// + public int? expectedSendHour { get; set; } // 13 + public string frequentLogisticCompany { get; set; } // "极兔速递", + public bool? pickupAssurance24H { get; set; } // false, + public bool? pickupAssurance48H { get; set; } // false, + // 24小时支揽率 + public string pickupRate24H { get; set; } // "74.3%", + // 48小时支揽率 + public string pickupRate48H { get; set; } // "99.8%" + } + + public class _1688ciphertextInfo + { + public string image { get; set; } // "https://gw.alicdn.com/imgextra/i1/O1CN01VTxqDc1J9AoUBqPOA_!!6000000000985-2-tps-45-45.png", + public string key { get; set; } // "thyny", + public string name { get; set; } // "淘宝(菜鸟)" + } +} diff --git a/AllBase/Model/Result/WXResult/WXClientProductInfoLite.cs b/AllBase/Model/Result/WXResult/WXClientProductInfoLite.cs new file mode 100644 index 0000000..f86e9e2 --- /dev/null +++ b/AllBase/Model/Result/WXResult/WXClientProductInfoLite.cs @@ -0,0 +1,122 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace AllBase.Model.Result.WXResult +{ + public class WXClientProductInfoLite + { + public string product_id { get; set; } // "10000066623849", + public string appid { get; set; } // "wx62cca7dc2354b687" + public string title { get; set; } // "2026新款情侣棒球帽立体C字母刺绣显脸小时尚百搭休闲韩版大头围鸭舌帽", + public string sub_title { get; set; } // "2025新款C字母立体刺绣棒球帽", + public List category { get; set; } // { "cat_id": "6093" } + + /// + /// 主图列表 + /// + public List head_img { get; set; } // ["https://wst.wxapp.tc.qq.com/161/20304/snscosdownload/SH/reserved/64f0a5760000484b151963b6bb81bc1e000000a000004f50", ...] + + /// + /// 商品详情(图) + /// + public wx_client_detail detail { get; set; } + + /// + /// 商品属性 + /// + public List param { get; set; } + /// + /// 品牌id + /// + public string brand_id { get; set; } // "10250056" + + public wx_sku sku_list { get; set; } + + public List product_sale_attrs { get; set; } + + public List productSkus { get; set; } + + public string total_sold_num { get; set; } + + public List headVideoInfo { get; set; } + } + + public class wx_client_head_video_info + { + public string videoUrl { get; set; } // "https://wst.wxapp.tc.qq.com/162/20302/snssvpdownload/SH/reserved/0bc3yya5qaabfaaeaq6thjt2nrwd3ddadwaa.f100001.mp4?wdis_k=7cdc03c564ae62499c03d8034036e65c4405cd2d&wdis_t=1773699072&appid=none&scene=0&ext=eyJjaSI6MTAwMDY5LCJjczBjIjoxNywiY3MwbyI6NDA1MzAsImNzMWMiOjQsImNzMW8iOjExMDQ0OSwicnMiOiIyNDIwNDozIn0", + public string videoHeadImg { get; set; } // "https://wst.wxapp.tc.qq.com/162/20302/snssvpdownload/SH/reserved/0bc3yya5qaabfaaeaq6thjt2nrwd3ddadwaa.f1400_0.jpeg?wdis_k=7f202df2767ca6d4b8cec6f52d1706ea8e497708&wdis_t=1773699072&appid=none&scene=0&ext=eyJjaSI6MTAwMDY5LCJjczBjIjoxNywiY3MwbyI6NDA1MzAsImNzMWMiOjQsImNzMW8iOjExMDQ0OSwicnMiOiIyNDIwNDozIn0", + public int? videoLen { get; set; } // 24, + public string videoSize { get; set; } // "0", + public int? videoSource { get; set; } // 0, + public int? videoFormat { get; set; } // 0, + public string playableVideoUrl { get; set; } // "https://wst.wxapp.tc.qq.com/162/20302/snssvpdownload/SH/reserved/0bc3yya5qaabfaaeaq6thjt2nrwd3ddadwaa.f100001.mp4?wdis_k=7cdc03c564ae62499c03d8034036e65c4405cd2d&wdis_t=1773699072&appid=none&scene=0&ext=eyJjaSI6MTAwMDY5LCJjczBjIjoxNywiY3MwbyI6NDA1MzAsImNzMWMiOjQsImNzMW8iOjExMDQ0OSwicnMiOiIyNDIwNDozIn0", + public int? videoWidth { get; set; } // 1080, + public int? videoHeight { get; set; } // 1080, + public string videoH265Url { get; set; } // "https://wst.wxapp.tc.qq.com/162/20302/snssvpdownload/SH/reserved/0bc3yya5qaabfaaeaq6thjt2nrwd3ddadwaa.f100003.mp4?wdis_k=057570644d9b72ff0c62e85b1c54cf0f0a8b42f6&wdis_t=1773699072&appid=none&scene=0&ext=eyJjaSI6MTAwMDY5LCJjczBjIjoxNywiY3MwbyI6NDA1MzAsImNzMWMiOjQsImNzMW8iOjExMDQ0OSwicnMiOiIyNDIwNDozIn0", + public int? videoH265Width { get; set; } // 720, + public int? videoH265Height { get; set; } // 720 + } + + public class wx_client_product_sale_attr + { + public string key { get; set; } // "颜色" + public List items { get; set; } + public bool? has_img { get; set; } + } + + public class wx_client_product_sale_attr_item + { + public string value { get; set; } // "卡其色" + public string img_url { get; set; } // "https://wst.wxapp.tc.qq.com/161/20304/snscosdownload/SH/reserved/64eb0fd5000f2ca50a23b45f3567b01e000000a100004f50" + public List sku_ids { get; set; } // [ "1597139289" ] + } + + public class wx_sku + { + public List sku_info { get; set; } + public string min_price_sku_id { get; set; } // "1597139289" + public string default_selected_sku_id { get; set; } // "1597139289" + } + + public class wx_client_sku_info + { + public string sku_id { get; set; } // "1597139289", + public int? price { get; set; } // 5980, + public bool? is_discounted { get; set; } // true, + public int? discounted_price { get; set; } // 2990, + public int? origin_price { get; set; } // 5980, + } + + public class wx_client_detail + { + /// + /// 详情图 + /// + public List detail_img { get; set; } // ["https://wst.wxapp.tc.qq.com/161/20304/snscosdownload/SH/reserved/64f21d2b00009e7a156bc7cd6d63b01e000000a000004f50", ...] + public string desc { get; set; } // "纯萃美2025新款情侣棒球帽立体C字母刺绣显脸小时尚百搭休闲网红款韩版大头围硬顶鸭舌帽男女同款" + } + + public class wx_client_param + { + public List categorys { get; set; } + } + + public class wx_client_category + { + public string cat_id { get; set; } // "0", + public string name { get; set; } // "主要材质", "C字母刺绣" + public string f_cat_id { get; set; } // "0", + public string brand_cat { get; set; } // "0", + public wx_client_cat_info cat_info { get; set; } + } + + public class wx_client_cat_info + { + public int? is_required { get; set; } // 1, + public int? is_customize { get; set; } // 0, + public int? input_type { get; set; } // 1 + } +} diff --git a/AllBase/Model/Result/WXResult/WXGetEditProductInfoLite.cs b/AllBase/Model/Result/WXResult/WXGetEditProductInfoLite.cs index 1c22092..2fd3e70 100644 --- a/AllBase/Model/Result/WXResult/WXGetEditProductInfoLite.cs +++ b/AllBase/Model/Result/WXResult/WXGetEditProductInfoLite.cs @@ -34,7 +34,7 @@ namespace AllBase.Model.Result.WXResult public class WXProductInfo { - public List productSkus { get; set; } + public List productSkus { get; set; } public WXProductKeyInfo productKey { get; set; } public WXProductInfoInfo info { get; set; } public int? status { get; set; } // 5 @@ -46,13 +46,13 @@ namespace AllBase.Model.Result.WXResult public int source { get; set; } // 1 } - public class WXProductSkuInfoInfoLite + public class WXProductSkuInfoLite { public WXSkuKeyInfoLite skuKey { get; set; } - public WXProductSkuInfoLite productSkuInfo { get; set; } + public WXProductSkuInfoInfoLite productSkuInfo { get; set; } } - public class WXProductSkuInfoLite + public class WXProductSkuInfoInfoLite { public List saleParam { get; set; } public string thumbImg { get; set; } // "https://wst.wxapp.tc.qq.com/161/20304/snscosdownload/SH/reserved/69a6a1ae000e63741a5ddf35d5b71715000000a000004f50" diff --git a/TEMUKJD/BLL/PDDProdFormConverter.cs b/TEMUKJD/BLL/PDDProdFormConverter.cs index 6b7cef8..68d3cda 100644 --- a/TEMUKJD/BLL/PDDProdFormConverter.cs +++ b/TEMUKJD/BLL/PDDProdFormConverter.cs @@ -692,8 +692,8 @@ namespace TemuKJD.BLL var skuItemNoStr = string.Join("\r\n", jstGoodsObj["skuInfo"]["goodsSkuDetail"].Select(s => s["itemNo"].ParseToString())); if (skuCount != itemNoCount) { - convertRst = "SKU货号重复"; - return null; + //convertRst = "SKU货号重复"; + //return null; } prodInfo.detail.sku_type = null; prodInfo.detail.song_huo_an_zhuang = null; diff --git a/TEMUKJD/BLL/_1688HttpResponseBLL.cs b/TEMUKJD/BLL/_1688HttpResponseBLL.cs new file mode 100644 index 0000000..e012889 --- /dev/null +++ b/TEMUKJD/BLL/_1688HttpResponseBLL.cs @@ -0,0 +1,148 @@ +using AllBase; +using AllBase.Model.Result; +using NaiBa.Util.Extension; +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Net; +using System.Text; +using System.Threading.Tasks; + +namespace TemuKJD.BLL +{ + public class _1688HttpResponseBLL + { + public static string _1688PostResponse(ShopLoginInfo shop, string _url, string _data, string referer, string cookieStr = "") + { + string cookies = ""; + try + { + var cookieLst = JsonHelper.DeserializeJsonToList(shop?.Cookies.ParseToString()); + if (cookieLst == null) + cookieLst = new List(); + foreach (var cook in cookieLst) + { + cookies += cook.Name + "=" + cook.Value + ";"; + } + if (!string.IsNullOrEmpty(cookieStr)) + cookies = cookieStr; + } + catch { } + + HttpWebResponse response = null; + string result; + try + { + string url = _url; + HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); + + request.KeepAlive = true; + request.Headers.Add("sec-ch-ua-platform", @"""Windows"""); + request.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36"; + request.Accept = "application/json"; + request.Headers.Add("sec-ch-ua", @"""Not)A;Brand"";v=""8"", ""Chromium"";v=""138"""); + request.ContentType = "application/x-www-form-urlencoded"; + request.Headers.Add("sec-ch-ua-mobile", @"?0"); + request.Headers.Add("Origin", @"https://air.1688.com"); + //request.Headers.Set(HttpRequestHeader.Cookie, @"arms_uid=a58d9d64-aa66-4a78-aa87-4de3175197ff; mtop_partitioned_detect=1; x5sectag=144389; leftMenuLastMode=EXPEND; cna=erU/IgGo8H0CAXVHNph3HiUA; xlly_s=1; leftMenuModeTip=shown; x5sec=7b22733b32223a2238353662363032366538363632383037222c22617365727665723b33223a22307c4350714f34383047454b3774327551424967706a5958427a62476c6b5a5859794d494351694a7742227d; cookie1=URoqgBzQ20SrVy1cn1dmknRZMiZQrf567IApLWd2hMI%3D; cookie2=1271c47e018b2f0f362e801b004dd90d; cookie17=VAiTSxHZ%2BTEw; sgcookie=E100j64PT2aTop2IQP8xMMnqcQabEEoQQ%2BBtscrD4dLlLFaj9jE4FMFCyHMuXDWv1JA0rqeei5aWTZp%2BfsMEVSaLPOucnM9Tty%2FOHSfqykHeWKv8mKPEhheDua6WJ2Y9JaC8; t=310a85e84cc926e19c722aa92c8884af; _tb_token_=763e3b10683ee; sg=r13; csg=07b5d3ed; lid=lord_darthvader; unb=794184311; uc4=nk4=0%40De%2FIKVy6P8cTMgRdynX8Fy0qzX%2B8KMNjTYU%3D&id4=0%40VhEEQOCV0%2FJni%2FiaAdHv%2F6qh6AU%3D; _nk_=lord_darthvader; _csrf_token=1773717425399; __cn_logon__=true; __cn_logon_id__=lord_darthvader; __last_loginid__=b2b-7941843117d583; __last_memberid__=b2b-7941843117d583; last_mid=b2b-7941843117d583; _m_h5_tk=c3acdfd37c7b7b6bf1474092458e4123_1773727866169; _m_h5_tk_enc=aefb20cb0e84cef37176df025b1f4912; taklid=ea5e2073c0cb4d139018c3cdc2d0ce0f; x5sec=7b22733b32223a2231346564663864343863636235613264222c22617365727665723b33223a22307c4350575134383047454f6e6a322f54342f2f2f2f2f774561437a63354e4445344e444d784d5473794967706a5958427a62476c6b5a5859794d4a374236726345227d; _user_vitals_session_data_={""user_line_track"":true,""ul_session_id"":""atmxc5zzna9"",""last_page_id"":""air.1688.com%2Fymmyy2ozq6a""}; tfstk=gBcn7uGsBvyIgYSwigPBCwq1g59TAWN7o0C827EyQlr6R2e-z5WaRyyr9W3Kj70SzklKwpMoEmnaLYLQTu5o24hK2WkKEzmx88o822LlRfmcw6KBd45uw7-vDIdxRwF7anU8XU_AArzY8QUU4RPQySE1ZvAxR2_N-g8xQIdlu67OLTrr45ralzPPTuyeSRzYz75UU6WNblaza7yz815akzzU8kreSVr_r7zUa_8g_lauauozaF0ZhPfzmbls_njPA1S-JUg3-Jqq8kuKRf54X9gajPPs6y0iO2W5a_lg-JGGaM3sJJHrl-GKTQf_9qDa_PGJf6roQr08sbxC9uNUl-MYIM8QJYusUkGDqsqEOAcu6j-5MmmKbjF-TUBi08qnQXyGz_PTtAmoESSw5yHr5YrIi3f0YXgiH8DBmtiqWqhQCbxcbuMLl5zswh1UqAzP4DWN372lNP8-_T67LPagD7GEZ1yNzGnpSFXXdJz_JnLMST67LPagDFYGhMwU5yKA.; isg=BNrackIhZ23LAevB06-DTTNPK4D8C17lbsS8YuRPhmxiV36RzZlX977hJyNLh9Z9"); + request.Headers.Set(HttpRequestHeader.Cookie, cookies); + request.Headers.Add("Sec-Fetch-Site", @"same-site"); + request.Headers.Add("Sec-Fetch-Mode", @"cors"); + request.Headers.Add("Sec-Fetch-Dest", @"empty"); + //request.Referer = "https://air.1688.com/app/channel-fe/search/index.html?spm=a21vf6.home.0.0"; + request.Referer = referer; + request.Headers.Set(HttpRequestHeader.AcceptEncoding, "gzip, deflate"); + request.Headers.Set(HttpRequestHeader.AcceptLanguage, "zh-CN,zh;q=0.9"); + + request.Method = "POST"; + request.ServicePoint.Expect100Continue = false; + + string body = _data; + byte[] postBytes = System.Text.Encoding.UTF8.GetBytes(body); + request.ContentLength = postBytes.Length; + Stream stream = request.GetRequestStream(); + stream.Write(postBytes, 0, postBytes.Length); + stream.Close(); + + response = (HttpWebResponse)request.GetResponse(); + } + catch (WebException ex) + { + if (ex.Status == WebExceptionStatus.ProtocolError) + { + response = (HttpWebResponse)ex.Response; + result = GetProxyHtml.ReadResponse(response); + return result; + } + else return ex.Message; + } + catch (Exception e) + { + if (response != null) response.Close(); + return e.Message; + } + result = GetProxyHtml.ReadResponse(response); + return result; + } + + public static string _1688GetResponse(ShopLoginInfo shop, string _url, string referer, string appVersion = null) + { + string cookies = ""; + try + { + var cookieLst = JsonHelper.DeserializeJsonToList(shop?.Cookies.ParseToString()); + if (cookieLst == null) + cookieLst = new List(); + foreach (var cook in cookieLst) + { + cookies += cook.Name + "=" + cook.Value + ";"; + } + } + catch { } + + HttpWebResponse response = null; + string result; + try + { + string url = _url; + HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); + + request.KeepAlive = true; + request.Headers.Add("sec-ch-ua", @"""Not)A;Brand"";v=""8"", ""Chromium"";v=""138"""); + request.Headers.Add("sec-ch-ua-mobile", @"?0"); + request.Headers.Add("sec-ch-ua-platform", @"""Windows"""); + request.Headers.Add("Upgrade-Insecure-Requests", @"1"); + request.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36"; + request.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7"; + request.Headers.Set(HttpRequestHeader.Cookie, @"mtop_partitioned_detect=1; leftMenuLastMode=EXPEND; cna=erU/IgGo8H0CAXVHNph3HiUA; xlly_s=1; leftMenuModeTip=shown; cookie1=URoqgBzQ20SrVy1cn1dmknRZMiZQrf567IApLWd2hMI%3D; cookie2=1271c47e018b2f0f362e801b004dd90d; cookie17=VAiTSxHZ%2BTEw; sgcookie=E100j64PT2aTop2IQP8xMMnqcQabEEoQQ%2BBtscrD4dLlLFaj9jE4FMFCyHMuXDWv1JA0rqeei5aWTZp%2BfsMEVSaLPOucnM9Tty%2FOHSfqykHeWKv8mKPEhheDua6WJ2Y9JaC8; t=310a85e84cc926e19c722aa92c8884af; _tb_token_=763e3b10683ee; sg=r13; csg=07b5d3ed; lid=lord_darthvader; unb=794184311; uc4=nk4=0%40De%2FIKVy6P8cTMgRdynX8Fy0qzX%2B8KMNjTYU%3D&id4=0%40VhEEQOCV0%2FJni%2FiaAdHv%2F6qh6AU%3D; _nk_=lord_darthvader; _csrf_token=1773717425399; __cn_logon__=true; __cn_logon_id__=lord_darthvader; __last_loginid__=b2b-7941843117d583; __last_memberid__=b2b-7941843117d583; last_mid=b2b-7941843117d583; _user_vitals_session_data_={""user_line_track"":true,""ul_session_id"":""atmxc5zzna9"",""last_page_id"":""air.1688.com%2Fwpga7o124t""}; mtop_partitioned_detect=1; _m_h5_tk=1ba79123dd95e615df41b434818e21f0_1773822327146; _m_h5_tk_enc=b2d00bd8d3da4b7cd215b01f217cac49; isg=BJ6eJ-Upe3MYS68Vv_sPwVdT7zTgX2LZSmh4Vkgnj-HIaz9FsO0l6RVNY3fn01rx; tfstk=gb2ZSxwQOOBZRn_u4uDVUwts8jDt3x7Ws-gjmoqmfV0G65G0TmiWoEqcWryq-rujlAb90xzUR5Mbjip48o4PXm_ThyW48zV6lo2jm-zKIjFslVgq3oUPAa65FlEtHfb5PTMaTT9ieIAmSEG3xcMqjSkKuOEtHxbBAKf5UlU1ftY-ommhYmivnc4msBmnc2mmjK4m-XmoVFDmnrjEtmmJoI0iSH0nq20mnx4mxMox-cDmnrqhYmHntlqDL0GGjTF0Mq7IQfuuj2JzvJoG14W--KbLKcrEllxvnK2EbfeehjlqZfN02be_ItJKCuPnKDefJd04t0rjL-79CqHi2bFSTFjtfSqLiVePuLugBWyqd8bvFzz_-8MbIiOUrjuatRcemKDIQWz4gYYhvcN0vS0TUZJrSREUNjPOzQUuAuwt9-7y-qFs2vmLhwpiuWmc4WYxx4DgH58DgfmKY4sFYj73VQD3I1B6MIhneDu5fcOvMfmKY4sFYIdxt0nEPGi1."); + request.Headers.Add("Sec-Fetch-Site", @"none"); + request.Headers.Add("Sec-Fetch-Mode", @"navigate"); + request.Headers.Add("Sec-Fetch-User", @"?1"); + request.Headers.Add("Sec-Fetch-Dest", @"document"); + //request.Headers.Set(HttpRequestHeader.AcceptEncoding, "gzip, deflate, br, zstd"); + request.Headers.Set(HttpRequestHeader.AcceptEncoding, "gzip, deflate"); + request.Headers.Set(HttpRequestHeader.AcceptLanguage, "zh-CN,zh;q=0.9"); + + response = (HttpWebResponse)request.GetResponse(); + } + catch (WebException ex) + { + if (ex.Status == WebExceptionStatus.ProtocolError) + { + response = (HttpWebResponse)ex.Response; + result = GetProxyHtml.ReadResponse(response); + return result; + } + else return ex.Message; + } + catch (Exception e) + { + if (response != null) response.Close(); + return e.Message; + } + result = GetProxyHtml.ReadResponse(response); + return result; + } + } +} diff --git a/TEMUKJD/KJD.csproj b/TEMUKJD/KJD.csproj index 3fa3b9d..8ec09ed 100644 --- a/TEMUKJD/KJD.csproj +++ b/TEMUKJD/KJD.csproj @@ -128,6 +128,7 @@ + Form @@ -149,6 +150,12 @@ GetJuShuitanAuthForm.cs + + Form + + + Get1688ProductForm.cs + Form @@ -167,6 +174,13 @@ ImgToolForm.cs + + Form + + + WebForm.cs + + Form @@ -1115,6 +1129,9 @@ GetJuShuitanAuthForm.cs + + Get1688ProductForm.cs + GetJuShuitanProductSKUListForm.cs @@ -1124,6 +1141,9 @@ ImgToolForm.cs + + WebForm.cs + DataGridViewEx.cs @@ -1588,6 +1608,7 @@ + diff --git a/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdListForm.Designer.cs b/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdListForm.Designer.cs index 9c0cbf7..c852fd4 100644 --- a/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdListForm.Designer.cs +++ b/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdListForm.Designer.cs @@ -617,7 +617,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms "是", "否", "回传未拉回"}); - this.cmbHasReturn.Location = new System.Drawing.Point(560, 75); + this.cmbHasReturn.Location = new System.Drawing.Point(560, 77); this.cmbHasReturn.Margin = new System.Windows.Forms.Padding(0, 3, 3, 3); this.cmbHasReturn.Name = "cmbHasReturn"; this.cmbHasReturn.Size = new System.Drawing.Size(33, 25); @@ -648,7 +648,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms // this.cmbCat2.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.cmbCat2.FormattingEnabled = true; - this.cmbCat2.Location = new System.Drawing.Point(254, 75); + this.cmbCat2.Location = new System.Drawing.Point(254, 77); this.cmbCat2.Margin = new System.Windows.Forms.Padding(0, 3, 3, 3); this.cmbCat2.Name = "cmbCat2"; this.cmbCat2.Size = new System.Drawing.Size(34, 25); @@ -726,12 +726,13 @@ namespace TemuKJD.PDDForms.ProductSelectForms this.cmbSourceType.Items.AddRange(new object[] { "", "厂商直采", + "1688厂家", "微信店采", "母店采集", "机会商品", "以图搜品", "外部数据"}); - this.cmbSourceType.Location = new System.Drawing.Point(254, 40); + this.cmbSourceType.Location = new System.Drawing.Point(254, 42); this.cmbSourceType.Margin = new System.Windows.Forms.Padding(0, 3, 3, 3); this.cmbSourceType.Name = "cmbSourceType"; this.cmbSourceType.Size = new System.Drawing.Size(34, 25); @@ -777,7 +778,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms "", "是", "否"}); - this.cmbWxCat.Location = new System.Drawing.Point(560, 5); + this.cmbWxCat.Location = new System.Drawing.Point(560, 7); this.cmbWxCat.Margin = new System.Windows.Forms.Padding(0, 3, 3, 3); this.cmbWxCat.Name = "cmbWxCat"; this.cmbWxCat.Size = new System.Drawing.Size(33, 25); @@ -799,7 +800,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms this.cmbSort.Items.AddRange(new object[] { "入库时间", "认领总数"}); - this.cmbSort.Location = new System.Drawing.Point(345, 40); + this.cmbSort.Location = new System.Drawing.Point(345, 42); this.cmbSort.Margin = new System.Windows.Forms.Padding(0, 3, 3, 3); this.cmbSort.Name = "cmbSort"; this.cmbSort.Size = new System.Drawing.Size(34, 25); @@ -888,7 +889,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms // this.cmbGroupFilter.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.cmbGroupFilter.FormattingEnabled = true; - this.cmbGroupFilter.Location = new System.Drawing.Point(163, 40); + this.cmbGroupFilter.Location = new System.Drawing.Point(163, 42); this.cmbGroupFilter.Margin = new System.Windows.Forms.Padding(0, 3, 3, 3); this.cmbGroupFilter.Name = "cmbGroupFilter"; this.cmbGroupFilter.Size = new System.Drawing.Size(34, 25); @@ -928,7 +929,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms "是", "否", "导出未拉回"}); - this.cmbExportToOutServer.Location = new System.Drawing.Point(560, 40); + this.cmbExportToOutServer.Location = new System.Drawing.Point(560, 42); this.cmbExportToOutServer.Margin = new System.Windows.Forms.Padding(0, 3, 3, 3); this.cmbExportToOutServer.Name = "cmbExportToOutServer"; this.cmbExportToOutServer.Size = new System.Drawing.Size(33, 25); @@ -964,7 +965,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms "安全商品", "违规商品", "未校验"}); - this.cmbWxSafe.Location = new System.Drawing.Point(453, 40); + this.cmbWxSafe.Location = new System.Drawing.Point(453, 42); this.cmbWxSafe.Margin = new System.Windows.Forms.Padding(0, 3, 3, 3); this.cmbWxSafe.Name = "cmbWxSafe"; this.cmbWxSafe.Size = new System.Drawing.Size(33, 25); @@ -1006,7 +1007,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms // this.cmbCat1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.cmbCat1.FormattingEnabled = true; - this.cmbCat1.Location = new System.Drawing.Point(163, 75); + this.cmbCat1.Location = new System.Drawing.Point(163, 77); this.cmbCat1.Margin = new System.Windows.Forms.Padding(0, 3, 3, 3); this.cmbCat1.Name = "cmbCat1"; this.cmbCat1.Size = new System.Drawing.Size(34, 25); @@ -1028,7 +1029,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms // this.cmbCat3.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.cmbCat3.FormattingEnabled = true; - this.cmbCat3.Location = new System.Drawing.Point(345, 75); + this.cmbCat3.Location = new System.Drawing.Point(345, 77); this.cmbCat3.Margin = new System.Windows.Forms.Padding(0, 3, 3, 3); this.cmbCat3.Name = "cmbCat3"; this.cmbCat3.Size = new System.Drawing.Size(34, 25); diff --git a/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdListForm.cs b/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdListForm.cs index ca43bd9..dcd3257 100644 --- a/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdListForm.cs +++ b/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdListForm.cs @@ -574,10 +574,11 @@ namespace TemuKJD.PDDForms.ProductSelectForms case "资料编码/真实上家": try { + string url = ""; if (string.IsNullOrEmpty(dbProduct.real_spu_id) || string.IsNullOrEmpty(dbProduct.real_coid)) - return; - - string url = "https://sc.scm121.com/manage/goods/qualitySupplier/goodsDetail/" + dbProduct.real_spu_id + "?itemCoId=" + dbProduct.real_coid + "&noBack=true"; + url = "https://sc.scm121.com/manage/goods/qualitySupplier/goodsDetail/" + dbProduct.spu_id + "?itemCoId=" + dbProduct.skc_id + "&noBack=true"; + else + url = "https://sc.scm121.com/manage/goods/qualitySupplier/goodsDetail/" + dbProduct.real_spu_id + "?itemCoId=" + dbProduct.real_coid + "&noBack=true"; Process.Start(new ProcessStartInfo(url) { UseShellExecute = true diff --git a/TEMUKJD/Properties/Resources.Designer.cs b/TEMUKJD/Properties/Resources.Designer.cs index 81af79b..9bed737 100644 --- a/TEMUKJD/Properties/Resources.Designer.cs +++ b/TEMUKJD/Properties/Resources.Designer.cs @@ -1103,6 +1103,16 @@ namespace TemuKJD.Properties { } } + /// + /// 查找 System.Drawing.Bitmap 类型的本地化资源。 + /// + internal static System.Drawing.Bitmap wang_wang_icon { + get { + object obj = ResourceManager.GetObject("wang_wang_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + /// /// 查找 System.Drawing.Bitmap 类型的本地化资源。 /// diff --git a/TEMUKJD/Properties/Resources.resx b/TEMUKJD/Properties/Resources.resx index a543610..ab66cb5 100644 --- a/TEMUKJD/Properties/Resources.resx +++ b/TEMUKJD/Properties/Resources.resx @@ -418,6 +418,9 @@ ..\Resources\tree_运费模板_select.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\resources\wang_wang_icon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + ..\static\base.css;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8 diff --git a/TEMUKJD/Resources/wang_wang_icon.png b/TEMUKJD/Resources/wang_wang_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..f1132257a7fe67fb622c64fc785866af94a74a1d GIT binary patch literal 3458 zcmb_f3se)=7EJ;{ARUtyaW>s8xAI6!8@)eWD9%1;I*Nu~;o&u@A8*Z-Pia&wkc>owa7>&b|Adv(GvE z-n(W~Ow{WR_AlEL2n2^PS+E>`n=QAk4gS2a2>c9x+397=j06H@mgOcA%J#fOAlQ_t z6$w~EWP}((wG0qORS3hR)#GRaVPSwt4?^h(MpYpxYMq2O*l>cTH3&5zR1t#>Kr9xADiAS1KhTdW@>@XVusA#>i_2tl0G2?^6N))p>f}Yk-5KCy zu{=0*(i#3Gp`~J&Ud&`>W@a)nxeU~h!eom?A|{K&R&c7$78MElzW;B^tdr$bf(tYEYo4=6R)Jo>QiB_zX6O>JzWl!Dyz@_ZKseU=Twj zG`wtn0E-K-1q!xM%omDTocS#L$$AEjL}7Ju)^DIf1)C*ii*WR>ptxvY5Ci`d3`62% z)Sw0Nh}Bv!1!3xSDKzR-9>qbZ1~uT0adzAZ7Lk$SFr5(tbr2F3ETQ2+Gt_EWEaLMZ zp-{vI5QN18AdtraR4SMUu!S&3h08Ko#X+9W4@RL3OKC0hpUE6XA>78#UO57UlPuz? z0FjWx1z;|Z3y5GY2!K40&Bq7$Ff_#`+Mvc)8mRfDRSPQ^x5#IS5EV<93U=EPw@bxPE*{#1p|ni<~DEB9^I*c8 zcB@~IkH6%3a(-qif*bvV;y?3lM3b>h(0~M{;JN#AbuoXBy%Ajd$J|AH4#;EqaR6Aw z7XW?&9v@Ko2|xgWK#0c@`mxzu)$`b2$Xz66iJq(Rf8suw7$_Cgr6Bm`$)x>1(fk!< zKBM`YX#RU`{f*HuEqmrOkuiU(zlpJ5?5}t!C%W)W+tQpmF7S`30|(LJi8A2FiA(gD zEq+RE4GRubm~MPu9hL{4_b>e+BV-2Mi#}9FL+N^Du96(* zTwmR~pEew>_W9;*xo0fAZSm8_YkQ{qhLlOmf~)%m3&u_w-#bP?@{hPw84~P#@)k!m zzh1a<>Fp|-<4syqyrQp?77*K;XrF!Hz);t=x$4m;dr1`gvEUL==~hQ*oWV%{>Vf~f zfkOG&BSlB)eN|3h#>i!9%gQPem2jLgwDj0j(nETEqVukA((SWN1#jk5wW=+g}ALt3k#Xd_44H9DUUy}_6aZ6FUxIot$a@@b@A;h*zj6YnY9b!u5*xU z()@hNd%~W~PZQrK6@JdUP?;PvlX6AvPF=;c%lUk#m$Y?S6}{(k>*(87@%IwU$Iq9y z@0PZiWF>;1;>=qZUpExqpC6a#TB*?+N2ynq+>e=e_ug%^l;rdNKD7;h3r|aIn>Ir0 zSR(s2OJO%S(nxUkI`2>p249t>0MbKRGcm;bRLIwx9h$|=)QzhK$e7qYq0hZ~Xs~u( zng>RU?i{CgM4MY~FvxLAsB=qG)J39v?|0#=HaKl0Wgj6XR%J)zL9xY`x1JXq>U}!K z)oyk2jIAT|&ooCe@uf_YYM{@Js`E_H&G0@FZeS7~u zqqA$t*E%6$TRd?aeduZ2PJ;i|phsLFAbQ*eTNtggmP{*1)JpD*-2yKTYs=G>v$DHM zr4F@iBd5>wRW!9P-Sv--vYrP4d7+fdku}1{4PQX3H@Gh{9^XwUnJ{v&78~E2e~59~dt|-wEhnnq_|tasqsy1JKzpA^`bYg<&b{Q6 z^eL%ycJK1jHfaMjJTFt$;jT{iGe5RRB_&Otah4R2n3s}68S%PzBIo-(gJonNW>ebr zmiyc9tXgE^oIA4J--ElHKI&7aBDPWLI<|w|(T0f8FW)BjH_$6juRKZUTTfh4K_a>W z(yrbP24=N>yuZF7_Z3^#N$p-@{S%?|0;%*>`y4|zrFh7S5|g9u%&pBJufI_Jod;f& z6sv$kt<9%gsK+ZmK9ujjYPMd}9cN{C5o>mQ6MHP{tb0eB;4tq)I+Spj?DJ}m=z!bW z!|jw6i-4ZUmO!@?WvZR+3FaTpmunZrALSPLeARO5?oY4vToHvnq;*8&8S4Gux|<^O z{o8N^I(uVLei{!e30xKYaVqgta)utRAPwsBZNBm^ydV2Y4M=QrwARK1mG#;w>$`Ry zlnxJ|j2SiS*Ytm3EjY0$FeGimb?V9$Qcjf8!G^yX%dw(d31jxgMX?Xq?|fWMmq`zq zLL4??-qB}9ruDx=m?g_?46pAII2Aoezf>m}JeFYgw55i4D&T?I@VZlBinpd=y2j7a zi0kH=6_CvBT7!3BxUyu9@`ug^(#zyx@2(ngfpfyZKHJX=y#!%N8Z4J2OTlCGnz zrKIZ(KFv4cjycZ1bQvW+4mID=?N^36?^ZT{_wJ_Rp6hGE6itSSJr>h + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle2 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle3 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle4 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle5 = new System.Windows.Forms.DataGridViewCellStyle(); + this.line1 = new DevComponents.DotNetBar.Controls.Line(); + this.label2 = new System.Windows.Forms.Label(); + this.btnImportCookie = new DevComponents.DotNetBar.PanelEx(); + this.btnSaveCookie = new DevComponents.DotNetBar.PanelEx(); + this.txtCookie = new System.Windows.Forms.TextBox(); + this.txtSupplierName = new System.Windows.Forms.TextBox(); + this.label3 = new System.Windows.Forms.Label(); + this.txtPageStart = new System.Windows.Forms.TextBox(); + this.txtPageEnd = new System.Windows.Forms.TextBox(); + this.label4 = new System.Windows.Forms.Label(); + this.statusBar = new TemuKJD.UserControls.StatusBarUserControl(); + this.btnSaveDb = new DevComponents.DotNetBar.PanelEx(); + this.btnStopStop = new DevComponents.DotNetBar.PanelEx(); + this.chkOverride = new TemuKJD.UserComponent.UcCheckBox(this.components); + this.btnSearchTitle = new DevComponents.DotNetBar.PanelEx(); + this.txtTitle = new System.Windows.Forms.TextBox(); + this.btnCancelSelect = new DevComponents.DotNetBar.PanelEx(); + this.btnGetGoods = new DevComponents.DotNetBar.PanelEx(); + this.label8 = new System.Windows.Forms.Label(); + this.txtWaitSeconds = new System.Windows.Forms.TextBox(); + this.label7 = new System.Windows.Forms.Label(); + this.btnExportCookie = new DevComponents.DotNetBar.PanelEx(); + this.pnlMultiLogin = new System.Windows.Forms.Panel(); + this.cmbMultiCookieName = new DevComponents.DotNetBar.Controls.ComboBoxEx(); + this.btnMultiLogin = new DevComponents.DotNetBar.PanelEx(); + this.btnDel = new DevComponents.DotNetBar.PanelEx(); + this.splitContainer1 = new System.Windows.Forms.SplitContainer(); + this.ucTabControlMetro1 = new PinBaoBao.UserControls.UcTabControlMetro(); + this.tabPage1 = new System.Windows.Forms.TabPage(); + this.splitContainer2 = new System.Windows.Forms.SplitContainer(); + this.btnNext = new System.Windows.Forms.Button(); + this.btnPrev = new System.Windows.Forms.Button(); + this.txtAddress = new System.Windows.Forms.TextBox(); + this.tabPage2 = new System.Windows.Forms.TabPage(); + this.pbLoading = new System.Windows.Forms.PictureBox(); + this.dgvProduct = new TemuKJD.UserComponent.DataGridViewEx(); + this.colCheck = new System.Windows.Forms.DataGridViewCheckBoxColumn(); + this.colCoId = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colSupplierName = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colProductId = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colGoodsName = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colCate = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colImgUrl = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colImg = new System.Windows.Forms.DataGridViewImageColumn(); + this.colPrice = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colStock = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colMonthSend = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.col7DaySend = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colPickupRate48H = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colOutDistributeCnt = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colWangwang = new System.Windows.Forms.DataGridViewImageColumn(); + this.colDel = new System.Windows.Forms.DataGridViewLinkColumn(); + this.colMsg = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.chkSkip = new TemuKJD.UserComponent.UcCheckBox(this.components); + this.btnGetDetail = new DevComponents.DotNetBar.PanelEx(); + this.pnlMultiLogin.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit(); + this.splitContainer1.Panel1.SuspendLayout(); + this.splitContainer1.Panel2.SuspendLayout(); + this.splitContainer1.SuspendLayout(); + this.ucTabControlMetro1.SuspendLayout(); + this.tabPage1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.splitContainer2)).BeginInit(); + this.splitContainer2.Panel1.SuspendLayout(); + this.splitContainer2.SuspendLayout(); + this.tabPage2.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.pbLoading)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.dgvProduct)).BeginInit(); + this.SuspendLayout(); + // + // line1 + // + this.line1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.line1.ForeColor = System.Drawing.SystemColors.AppWorkspace; + this.line1.Location = new System.Drawing.Point(298, 7); + this.line1.Name = "line1"; + this.line1.Size = new System.Drawing.Size(20, 74); + this.line1.TabIndex = 790; + this.line1.Text = "line1"; + this.line1.VerticalLine = true; + // + // label2 + // + this.label2.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.label2.AutoSize = true; + this.label2.Location = new System.Drawing.Point(748, 8); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(44, 17); + this.label2.TabIndex = 789; + this.label2.Text = "供应商"; + // + // btnImportCookie + // + this.btnImportCookie.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.btnImportCookie.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; + this.btnImportCookie.Cursor = System.Windows.Forms.Cursors.Hand; + this.btnImportCookie.DisabledBackColor = System.Drawing.Color.Empty; + this.btnImportCookie.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.btnImportCookie.Location = new System.Drawing.Point(153, 3); + this.btnImportCookie.Name = "btnImportCookie"; + this.btnImportCookie.Size = new System.Drawing.Size(146, 25); + this.btnImportCookie.Style.Alignment = System.Drawing.StringAlignment.Center; + this.btnImportCookie.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnImportCookie.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnImportCookie.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; + this.btnImportCookie.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash; + this.btnImportCookie.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None; + this.btnImportCookie.Style.ForeColor.Color = System.Drawing.Color.White; + this.btnImportCookie.Style.GradientAngle = 90; + this.btnImportCookie.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center; + this.btnImportCookie.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnImportCookie.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnImportCookie.TabIndex = 761; + this.btnImportCookie.Text = "导入cookie并刷新"; + this.btnImportCookie.Click += new System.EventHandler(this.btnImportCookie_Click); + // + // btnSaveCookie + // + this.btnSaveCookie.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.btnSaveCookie.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; + this.btnSaveCookie.Cursor = System.Windows.Forms.Cursors.Hand; + this.btnSaveCookie.DisabledBackColor = System.Drawing.Color.Empty; + this.btnSaveCookie.Location = new System.Drawing.Point(153, 30); + this.btnSaveCookie.Name = "btnSaveCookie"; + this.btnSaveCookie.Size = new System.Drawing.Size(146, 25); + this.btnSaveCookie.Style.Alignment = System.Drawing.StringAlignment.Center; + this.btnSaveCookie.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnSaveCookie.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnSaveCookie.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; + this.btnSaveCookie.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash; + this.btnSaveCookie.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None; + this.btnSaveCookie.Style.ForeColor.Color = System.Drawing.Color.White; + this.btnSaveCookie.Style.GradientAngle = 90; + this.btnSaveCookie.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center; + this.btnSaveCookie.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnSaveCookie.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnSaveCookie.TabIndex = 765; + this.btnSaveCookie.Text = "保存网页cookie"; + this.btnSaveCookie.Click += new System.EventHandler(this.btnSaveCookie_Click); + // + // txtCookie + // + this.txtCookie.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.txtCookie.Location = new System.Drawing.Point(4, 4); + this.txtCookie.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); + this.txtCookie.Multiline = true; + this.txtCookie.Name = "txtCookie"; + this.txtCookie.Size = new System.Drawing.Size(145, 78); + this.txtCookie.TabIndex = 766; + this.txtCookie.Text = "填写cookie后点击导入cookie并刷新"; + // + // txtSupplierName + // + this.txtSupplierName.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.txtSupplierName.Location = new System.Drawing.Point(792, 5); + this.txtSupplierName.Name = "txtSupplierName"; + this.txtSupplierName.ReadOnly = true; + this.txtSupplierName.Size = new System.Drawing.Size(605, 23); + this.txtSupplierName.TabIndex = 788; + // + // label3 + // + this.label3.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.label3.AutoSize = true; + this.label3.Location = new System.Drawing.Point(324, 8); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(44, 17); + this.label3.TabIndex = 807; + this.label3.Text = "起始页"; + // + // txtPageStart + // + this.txtPageStart.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.txtPageStart.Location = new System.Drawing.Point(368, 5); + this.txtPageStart.Name = "txtPageStart"; + this.txtPageStart.Size = new System.Drawing.Size(43, 23); + this.txtPageStart.TabIndex = 808; + this.txtPageStart.Text = "1"; + this.txtPageStart.TextChanged += new System.EventHandler(this.txtPageStart_TextChanged); + // + // txtPageEnd + // + this.txtPageEnd.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.txtPageEnd.Location = new System.Drawing.Point(461, 5); + this.txtPageEnd.Name = "txtPageEnd"; + this.txtPageEnd.Size = new System.Drawing.Size(43, 23); + this.txtPageEnd.TabIndex = 809; + this.txtPageEnd.Text = "200"; + this.txtPageEnd.TextChanged += new System.EventHandler(this.txtPageEnd_TextChanged); + // + // label4 + // + this.label4.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.label4.AutoSize = true; + this.label4.Location = new System.Drawing.Point(417, 8); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size(44, 17); + this.label4.TabIndex = 810; + this.label4.Text = "结束页"; + // + // statusBar + // + this.statusBar.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.statusBar.BackColor = System.Drawing.Color.White; + this.statusBar.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.statusBar.Location = new System.Drawing.Point(315, 60); + this.statusBar.Margin = new System.Windows.Forms.Padding(0); + this.statusBar.Name = "statusBar"; + this.statusBar.Size = new System.Drawing.Size(689, 25); + this.statusBar.TabIndex = 823; + // + // btnSaveDb + // + this.btnSaveDb.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.btnSaveDb.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; + this.btnSaveDb.Cursor = System.Windows.Forms.Cursors.Hand; + this.btnSaveDb.DisabledBackColor = System.Drawing.Color.Empty; + this.btnSaveDb.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.btnSaveDb.Location = new System.Drawing.Point(1321, 58); + this.btnSaveDb.Name = "btnSaveDb"; + this.btnSaveDb.Size = new System.Drawing.Size(76, 23); + this.btnSaveDb.Style.Alignment = System.Drawing.StringAlignment.Center; + this.btnSaveDb.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnSaveDb.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnSaveDb.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; + this.btnSaveDb.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash; + this.btnSaveDb.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None; + this.btnSaveDb.Style.ForeColor.Color = System.Drawing.Color.White; + this.btnSaveDb.Style.GradientAngle = 90; + this.btnSaveDb.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center; + this.btnSaveDb.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnSaveDb.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnSaveDb.TabIndex = 831; + this.btnSaveDb.Text = "商品入库"; + this.btnSaveDb.Click += new System.EventHandler(this.btnSaveDb_Click); + // + // btnStopStop + // + this.btnStopStop.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.btnStopStop.CanvasColor = System.Drawing.SystemColors.Control; + this.btnStopStop.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; + this.btnStopStop.DisabledBackColor = System.Drawing.Color.Empty; + this.btnStopStop.Location = new System.Drawing.Point(1071, 58); + this.btnStopStop.Name = "btnStopStop"; + this.btnStopStop.Size = new System.Drawing.Size(76, 23); + this.btnStopStop.Style.Alignment = System.Drawing.StringAlignment.Center; + this.btnStopStop.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255))))); + this.btnStopStop.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255))))); + this.btnStopStop.Style.Border = DevComponents.DotNetBar.eBorderType.SingleLine; + this.btnStopStop.Style.BorderColor.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnStopStop.Style.ForeColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText; + this.btnStopStop.Style.GradientAngle = 90; + this.btnStopStop.StyleMouseDown.Alignment = System.Drawing.StringAlignment.Center; + this.btnStopStop.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center; + this.btnStopStop.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnStopStop.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnStopStop.StyleMouseOver.ForeColor.Color = System.Drawing.Color.White; + this.btnStopStop.TabIndex = 853; + this.btnStopStop.Text = "停止查询"; + this.btnStopStop.Click += new System.EventHandler(this.btnStopStop_Click); + // + // chkOverride + // + this.chkOverride.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.chkOverride.AutoSize = true; + this.chkOverride.Location = new System.Drawing.Point(1230, 33); + this.chkOverride.Name = "chkOverride"; + this.chkOverride.Size = new System.Drawing.Size(171, 21); + this.chkOverride.TabIndex = 920; + this.chkOverride.Text = "入库时覆盖库中已存在商品"; + this.chkOverride.UseVisualStyleBackColor = true; + // + // btnSearchTitle + // + this.btnSearchTitle.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.btnSearchTitle.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; + this.btnSearchTitle.Cursor = System.Windows.Forms.Cursors.Hand; + this.btnSearchTitle.DisabledBackColor = System.Drawing.Color.Empty; + this.btnSearchTitle.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.btnSearchTitle.Location = new System.Drawing.Point(523, 33); + this.btnSearchTitle.Name = "btnSearchTitle"; + this.btnSearchTitle.Size = new System.Drawing.Size(56, 23); + this.btnSearchTitle.Style.Alignment = System.Drawing.StringAlignment.Center; + this.btnSearchTitle.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnSearchTitle.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnSearchTitle.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; + this.btnSearchTitle.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash; + this.btnSearchTitle.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None; + this.btnSearchTitle.Style.ForeColor.Color = System.Drawing.Color.White; + this.btnSearchTitle.Style.GradientAngle = 90; + this.btnSearchTitle.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center; + this.btnSearchTitle.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnSearchTitle.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnSearchTitle.TabIndex = 967; + this.btnSearchTitle.Text = "搜索标题"; + this.btnSearchTitle.Click += new System.EventHandler(this.btnSearchTitle_Click); + // + // txtTitle + // + this.txtTitle.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.txtTitle.Location = new System.Drawing.Point(319, 33); + this.txtTitle.Name = "txtTitle"; + this.txtTitle.Size = new System.Drawing.Size(202, 23); + this.txtTitle.TabIndex = 968; + // + // btnCancelSelect + // + this.btnCancelSelect.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.btnCancelSelect.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; + this.btnCancelSelect.Cursor = System.Windows.Forms.Cursors.Hand; + this.btnCancelSelect.DisabledBackColor = System.Drawing.Color.Empty; + this.btnCancelSelect.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.btnCancelSelect.Location = new System.Drawing.Point(581, 33); + this.btnCancelSelect.Name = "btnCancelSelect"; + this.btnCancelSelect.Size = new System.Drawing.Size(115, 23); + this.btnCancelSelect.Style.Alignment = System.Drawing.StringAlignment.Center; + this.btnCancelSelect.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnCancelSelect.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnCancelSelect.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; + this.btnCancelSelect.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash; + this.btnCancelSelect.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None; + this.btnCancelSelect.Style.ForeColor.Color = System.Drawing.Color.White; + this.btnCancelSelect.Style.GradientAngle = 90; + this.btnCancelSelect.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center; + this.btnCancelSelect.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnCancelSelect.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnCancelSelect.TabIndex = 999; + this.btnCancelSelect.Text = "取消选中已入库"; + this.btnCancelSelect.Click += new System.EventHandler(this.btnCancelSelect_Click); + // + // btnGetGoods + // + this.btnGetGoods.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.btnGetGoods.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; + this.btnGetGoods.Cursor = System.Windows.Forms.Cursors.Hand; + this.btnGetGoods.DisabledBackColor = System.Drawing.Color.Empty; + this.btnGetGoods.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.btnGetGoods.Location = new System.Drawing.Point(1151, 58); + this.btnGetGoods.Name = "btnGetGoods"; + this.btnGetGoods.Size = new System.Drawing.Size(82, 23); + this.btnGetGoods.Style.Alignment = System.Drawing.StringAlignment.Center; + this.btnGetGoods.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnGetGoods.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnGetGoods.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; + this.btnGetGoods.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash; + this.btnGetGoods.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None; + this.btnGetGoods.Style.ForeColor.Color = System.Drawing.Color.White; + this.btnGetGoods.Style.GradientAngle = 90; + this.btnGetGoods.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center; + this.btnGetGoods.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnGetGoods.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnGetGoods.TabIndex = 798; + this.btnGetGoods.Text = "采集商品列表"; + this.btnGetGoods.Click += new System.EventHandler(this.btnCollectSupplier_Click); + // + // label8 + // + this.label8.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.label8.AutoSize = true; + this.label8.Location = new System.Drawing.Point(1025, 34); + this.label8.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0); + this.label8.Name = "label8"; + this.label8.Size = new System.Drawing.Size(20, 17); + this.label8.TabIndex = 1029; + this.label8.Text = "秒"; + // + // txtWaitSeconds + // + this.txtWaitSeconds.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.txtWaitSeconds.Location = new System.Drawing.Point(1001, 31); + this.txtWaitSeconds.Margin = new System.Windows.Forms.Padding(0, 2, 0, 2); + this.txtWaitSeconds.Name = "txtWaitSeconds"; + this.txtWaitSeconds.Size = new System.Drawing.Size(24, 23); + this.txtWaitSeconds.TabIndex = 1028; + this.txtWaitSeconds.Text = "8"; + this.txtWaitSeconds.TextChanged += new System.EventHandler(this.txtWaitSeconds_TextChanged); + // + // label7 + // + this.label7.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.label7.AutoSize = true; + this.label7.Location = new System.Drawing.Point(945, 34); + this.label7.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0); + this.label7.Name = "label7"; + this.label7.Size = new System.Drawing.Size(56, 17); + this.label7.TabIndex = 1027; + this.label7.Text = "额外等待"; + // + // btnExportCookie + // + this.btnExportCookie.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.btnExportCookie.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; + this.btnExportCookie.Cursor = System.Windows.Forms.Cursors.Hand; + this.btnExportCookie.DisabledBackColor = System.Drawing.Color.Empty; + this.btnExportCookie.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.btnExportCookie.Location = new System.Drawing.Point(153, 57); + this.btnExportCookie.Name = "btnExportCookie"; + this.btnExportCookie.Size = new System.Drawing.Size(146, 25); + this.btnExportCookie.Style.Alignment = System.Drawing.StringAlignment.Center; + this.btnExportCookie.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnExportCookie.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnExportCookie.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; + this.btnExportCookie.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash; + this.btnExportCookie.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None; + this.btnExportCookie.Style.ForeColor.Color = System.Drawing.Color.White; + this.btnExportCookie.Style.GradientAngle = 90; + this.btnExportCookie.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center; + this.btnExportCookie.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnExportCookie.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnExportCookie.TabIndex = 1063; + this.btnExportCookie.Text = "导出cookie"; + this.btnExportCookie.Click += new System.EventHandler(this.btnExportCookie_Click); + // + // pnlMultiLogin + // + this.pnlMultiLogin.Controls.Add(this.cmbMultiCookieName); + this.pnlMultiLogin.Controls.Add(this.btnMultiLogin); + this.pnlMultiLogin.Controls.Add(this.btnDel); + this.pnlMultiLogin.Location = new System.Drawing.Point(5, 634); + this.pnlMultiLogin.Name = "pnlMultiLogin"; + this.pnlMultiLogin.Size = new System.Drawing.Size(251, 31); + this.pnlMultiLogin.TabIndex = 461; + this.pnlMultiLogin.Visible = false; + // + // cmbMultiCookieName + // + this.cmbMultiCookieName.DisplayMember = "Text"; + this.cmbMultiCookieName.DrawMode = System.Windows.Forms.DrawMode.OwnerDrawFixed; + this.cmbMultiCookieName.FormattingEnabled = true; + this.cmbMultiCookieName.ItemHeight = 18; + this.cmbMultiCookieName.Location = new System.Drawing.Point(3, 3); + this.cmbMultiCookieName.Name = "cmbMultiCookieName"; + this.cmbMultiCookieName.Size = new System.Drawing.Size(158, 24); + this.cmbMultiCookieName.Style = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; + this.cmbMultiCookieName.TabIndex = 379; + this.cmbMultiCookieName.Text = "cookie1"; + // + // btnMultiLogin + // + this.btnMultiLogin.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.btnMultiLogin.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; + this.btnMultiLogin.Cursor = System.Windows.Forms.Cursors.Hand; + this.btnMultiLogin.DisabledBackColor = System.Drawing.Color.Empty; + this.btnMultiLogin.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.btnMultiLogin.Location = new System.Drawing.Point(185, 3); + this.btnMultiLogin.Name = "btnMultiLogin"; + this.btnMultiLogin.Size = new System.Drawing.Size(60, 24); + this.btnMultiLogin.Style.Alignment = System.Drawing.StringAlignment.Center; + this.btnMultiLogin.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnMultiLogin.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnMultiLogin.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; + this.btnMultiLogin.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash; + this.btnMultiLogin.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None; + this.btnMultiLogin.Style.ForeColor.Color = System.Drawing.Color.White; + this.btnMultiLogin.Style.GradientAngle = 90; + this.btnMultiLogin.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center; + this.btnMultiLogin.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnMultiLogin.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnMultiLogin.TabIndex = 460; + this.btnMultiLogin.Text = "多重登录"; + // + // btnDel + // + this.btnDel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.btnDel.CanvasColor = System.Drawing.SystemColors.Control; + this.btnDel.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; + this.btnDel.DisabledBackColor = System.Drawing.Color.Empty; + this.btnDel.Location = new System.Drawing.Point(163, 3); + this.btnDel.Name = "btnDel"; + this.btnDel.Size = new System.Drawing.Size(20, 24); + this.btnDel.Style.Alignment = System.Drawing.StringAlignment.Center; + this.btnDel.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255))))); + this.btnDel.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255))))); + this.btnDel.Style.Border = DevComponents.DotNetBar.eBorderType.SingleLine; + this.btnDel.Style.BorderColor.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnDel.Style.ForeColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText; + this.btnDel.Style.GradientAngle = 90; + this.btnDel.StyleMouseDown.Alignment = System.Drawing.StringAlignment.Center; + this.btnDel.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center; + this.btnDel.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnDel.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnDel.StyleMouseOver.ForeColor.Color = System.Drawing.Color.White; + this.btnDel.TabIndex = 409; + this.btnDel.Text = "删"; + // + // splitContainer1 + // + this.splitContainer1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(224)))), ((int)(((byte)(224)))), ((int)(((byte)(224))))); + this.splitContainer1.Dock = System.Windows.Forms.DockStyle.Fill; + this.splitContainer1.FixedPanel = System.Windows.Forms.FixedPanel.Panel2; + this.splitContainer1.Location = new System.Drawing.Point(0, 0); + this.splitContainer1.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); + this.splitContainer1.Name = "splitContainer1"; + this.splitContainer1.Orientation = System.Windows.Forms.Orientation.Horizontal; + // + // splitContainer1.Panel1 + // + this.splitContainer1.Panel1.Controls.Add(this.ucTabControlMetro1); + this.splitContainer1.Panel1.Controls.Add(this.pnlMultiLogin); + // + // splitContainer1.Panel2 + // + this.splitContainer1.Panel2.BackColor = System.Drawing.Color.White; + this.splitContainer1.Panel2.Controls.Add(this.chkSkip); + this.splitContainer1.Panel2.Controls.Add(this.btnGetDetail); + this.splitContainer1.Panel2.Controls.Add(this.btnExportCookie); + this.splitContainer1.Panel2.Controls.Add(this.label7); + this.splitContainer1.Panel2.Controls.Add(this.txtWaitSeconds); + this.splitContainer1.Panel2.Controls.Add(this.label8); + this.splitContainer1.Panel2.Controls.Add(this.btnGetGoods); + this.splitContainer1.Panel2.Controls.Add(this.btnCancelSelect); + this.splitContainer1.Panel2.Controls.Add(this.txtTitle); + this.splitContainer1.Panel2.Controls.Add(this.btnSearchTitle); + this.splitContainer1.Panel2.Controls.Add(this.chkOverride); + this.splitContainer1.Panel2.Controls.Add(this.btnStopStop); + this.splitContainer1.Panel2.Controls.Add(this.btnSaveDb); + this.splitContainer1.Panel2.Controls.Add(this.statusBar); + this.splitContainer1.Panel2.Controls.Add(this.label4); + this.splitContainer1.Panel2.Controls.Add(this.txtPageEnd); + this.splitContainer1.Panel2.Controls.Add(this.txtPageStart); + this.splitContainer1.Panel2.Controls.Add(this.label3); + this.splitContainer1.Panel2.Controls.Add(this.txtSupplierName); + this.splitContainer1.Panel2.Controls.Add(this.txtCookie); + this.splitContainer1.Panel2.Controls.Add(this.btnSaveCookie); + this.splitContainer1.Panel2.Controls.Add(this.btnImportCookie); + this.splitContainer1.Panel2.Controls.Add(this.label2); + this.splitContainer1.Panel2.Controls.Add(this.line1); + this.splitContainer1.Size = new System.Drawing.Size(1404, 561); + this.splitContainer1.SplitterDistance = 473; + this.splitContainer1.SplitterWidth = 3; + this.splitContainer1.TabIndex = 4; + // + // ucTabControlMetro1 + // + this.ucTabControlMetro1.BackgroundColor = System.Drawing.Color.FromArgb(((int)(((byte)(251)))), ((int)(((byte)(251)))), ((int)(((byte)(251))))); + this.ucTabControlMetro1.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(174)))), ((int)(((byte)(157))))); + this.ucTabControlMetro1.Controls.Add(this.tabPage1); + this.ucTabControlMetro1.Controls.Add(this.tabPage2); + this.ucTabControlMetro1.Dock = System.Windows.Forms.DockStyle.Fill; + this.ucTabControlMetro1.ItemSize = new System.Drawing.Size(72, 24); + this.ucTabControlMetro1.Location = new System.Drawing.Point(0, 0); + this.ucTabControlMetro1.Name = "ucTabControlMetro1"; + this.ucTabControlMetro1.SelectedIndex = 0; + this.ucTabControlMetro1.ShowCloseButton = false; + this.ucTabControlMetro1.Size = new System.Drawing.Size(1404, 473); + this.ucTabControlMetro1.TabIndex = 462; + this.ucTabControlMetro1.TabSelectColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.ucTabControlMetro1.TabSelectTextColor = System.Drawing.Color.Gray; + this.ucTabControlMetro1.TabUnSelectTextColor = System.Drawing.Color.White; + // + // tabPage1 + // + this.tabPage1.Controls.Add(this.splitContainer2); + this.tabPage1.Location = new System.Drawing.Point(4, 28); + this.tabPage1.Margin = new System.Windows.Forms.Padding(5); + this.tabPage1.Name = "tabPage1"; + this.tabPage1.Padding = new System.Windows.Forms.Padding(3); + this.tabPage1.Size = new System.Drawing.Size(1396, 441); + this.tabPage1.TabIndex = 0; + this.tabPage1.Text = "商品页面"; + this.tabPage1.UseVisualStyleBackColor = true; + // + // 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(3, 3); + this.splitContainer2.Name = "splitContainer2"; + this.splitContainer2.Orientation = System.Windows.Forms.Orientation.Horizontal; + // + // splitContainer2.Panel1 + // + this.splitContainer2.Panel1.Controls.Add(this.btnNext); + this.splitContainer2.Panel1.Controls.Add(this.btnPrev); + this.splitContainer2.Panel1.Controls.Add(this.txtAddress); + this.splitContainer2.Size = new System.Drawing.Size(1390, 435); + this.splitContainer2.SplitterDistance = 26; + this.splitContainer2.TabIndex = 6; + // + // btnNext + // + this.btnNext.Location = new System.Drawing.Point(31, 3); + this.btnNext.Name = "btnNext"; + this.btnNext.Size = new System.Drawing.Size(32, 23); + this.btnNext.TabIndex = 9; + this.btnNext.Text = "→"; + this.btnNext.UseVisualStyleBackColor = true; + this.btnNext.Click += new System.EventHandler(this.btnNext_Click); + // + // btnPrev + // + this.btnPrev.Location = new System.Drawing.Point(-1, 3); + this.btnPrev.Name = "btnPrev"; + this.btnPrev.Size = new System.Drawing.Size(32, 23); + this.btnPrev.TabIndex = 8; + this.btnPrev.Text = "←"; + this.btnPrev.UseVisualStyleBackColor = true; + this.btnPrev.Click += new System.EventHandler(this.btnPrev_Click); + // + // txtAddress + // + this.txtAddress.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.txtAddress.Location = new System.Drawing.Point(64, 3); + this.txtAddress.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); + this.txtAddress.Name = "txtAddress"; + this.txtAddress.Size = new System.Drawing.Size(1326, 23); + this.txtAddress.TabIndex = 7; + this.txtAddress.KeyDown += new System.Windows.Forms.KeyEventHandler(this.txtAddress_KeyDown); + // + // tabPage2 + // + this.tabPage2.Controls.Add(this.pbLoading); + this.tabPage2.Controls.Add(this.dgvProduct); + this.tabPage2.Location = new System.Drawing.Point(4, 28); + this.tabPage2.Name = "tabPage2"; + this.tabPage2.Padding = new System.Windows.Forms.Padding(3); + this.tabPage2.Size = new System.Drawing.Size(1396, 440); + this.tabPage2.TabIndex = 1; + this.tabPage2.Text = "采集商品列表"; + this.tabPage2.UseVisualStyleBackColor = true; + // + // 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(673, 193); + this.pbLoading.Name = "pbLoading"; + this.pbLoading.Size = new System.Drawing.Size(50, 50); + this.pbLoading.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; + this.pbLoading.TabIndex = 8; + this.pbLoading.TabStop = false; + this.pbLoading.Visible = false; + // + // dgvProduct + // + this.dgvProduct.AllowUserToAddRows = false; + this.dgvProduct.AllowUserToDeleteRows = false; + dataGridViewCellStyle1.BackColor = System.Drawing.Color.WhiteSmoke; + this.dgvProduct.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle1; + this.dgvProduct.AutoRowNumber = true; + this.dgvProduct.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.Fill; + this.dgvProduct.BackgroundColor = System.Drawing.Color.White; + this.dgvProduct.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + dataGridViewCellStyle2.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; + dataGridViewCellStyle2.BackColor = System.Drawing.SystemColors.Control; + dataGridViewCellStyle2.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + dataGridViewCellStyle2.ForeColor = System.Drawing.SystemColors.WindowText; + dataGridViewCellStyle2.SelectionBackColor = System.Drawing.SystemColors.Highlight; + dataGridViewCellStyle2.SelectionForeColor = System.Drawing.SystemColors.HighlightText; + dataGridViewCellStyle2.WrapMode = System.Windows.Forms.DataGridViewTriState.False; + this.dgvProduct.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle2; + this.dgvProduct.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.dgvProduct.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { + this.colCheck, + this.colCoId, + this.colSupplierName, + this.colProductId, + this.colGoodsName, + this.colCate, + this.colImgUrl, + this.colImg, + this.colPrice, + this.colStock, + this.colMonthSend, + this.col7DaySend, + this.colPickupRate48H, + this.colOutDistributeCnt, + this.colWangwang, + this.colDel, + this.colMsg}); + this.dgvProduct.Dock = System.Windows.Forms.DockStyle.Fill; + this.dgvProduct.Location = new System.Drawing.Point(3, 3); + this.dgvProduct.Name = "dgvProduct"; + this.dgvProduct.ReadOnly = true; + this.dgvProduct.RowTemplate.Height = 23; + this.dgvProduct.Size = new System.Drawing.Size(1390, 434); + this.dgvProduct.TabIndex = 7; + this.dgvProduct.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dgvProduct_CellContentClick); + // + // colCheck + // + this.colCheck.FillWeight = 26F; + this.colCheck.HeaderText = "选"; + this.colCheck.Name = "colCheck"; + this.colCheck.ReadOnly = true; + this.colCheck.Resizable = System.Windows.Forms.DataGridViewTriState.True; + this.colCheck.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; + // + // colCoId + // + this.colCoId.FillWeight = 50F; + this.colCoId.HeaderText = "供应商Id"; + this.colCoId.Name = "colCoId"; + this.colCoId.ReadOnly = true; + // + // colSupplierName + // + this.colSupplierName.FillWeight = 90F; + this.colSupplierName.HeaderText = "供应商名称"; + this.colSupplierName.Name = "colSupplierName"; + this.colSupplierName.ReadOnly = true; + // + // colProductId + // + this.colProductId.FillWeight = 50F; + this.colProductId.HeaderText = "商品Id"; + this.colProductId.Name = "colProductId"; + this.colProductId.ReadOnly = true; + // + // colGoodsName + // + dataGridViewCellStyle3.WrapMode = System.Windows.Forms.DataGridViewTriState.True; + this.colGoodsName.DefaultCellStyle = dataGridViewCellStyle3; + this.colGoodsName.HeaderText = "商品名称"; + this.colGoodsName.Name = "colGoodsName"; + this.colGoodsName.ReadOnly = true; + // + // colCate + // + this.colCate.FillWeight = 40F; + this.colCate.HeaderText = "商品类目"; + this.colCate.Name = "colCate"; + this.colCate.ReadOnly = true; + // + // colImgUrl + // + this.colImgUrl.FillWeight = 300F; + this.colImgUrl.HeaderText = "图片路径"; + this.colImgUrl.Name = "colImgUrl"; + this.colImgUrl.ReadOnly = true; + this.colImgUrl.Visible = false; + // + // colImg + // + this.colImg.FillWeight = 40F; + this.colImg.HeaderText = "图片"; + this.colImg.ImageLayout = System.Windows.Forms.DataGridViewImageCellLayout.Zoom; + this.colImg.Name = "colImg"; + this.colImg.ReadOnly = true; + this.colImg.Resizable = System.Windows.Forms.DataGridViewTriState.True; + this.colImg.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; + // + // colPrice + // + dataGridViewCellStyle4.WrapMode = System.Windows.Forms.DataGridViewTriState.True; + this.colPrice.DefaultCellStyle = dataGridViewCellStyle4; + this.colPrice.FillWeight = 40F; + this.colPrice.HeaderText = "供货价"; + this.colPrice.Name = "colPrice"; + this.colPrice.ReadOnly = true; + // + // colStock + // + this.colStock.FillWeight = 50F; + this.colStock.HeaderText = "库存"; + this.colStock.Name = "colStock"; + this.colStock.ReadOnly = true; + this.colStock.Visible = false; + // + // colMonthSend + // + this.colMonthSend.FillWeight = 40F; + this.colMonthSend.HeaderText = "月代发"; + this.colMonthSend.Name = "colMonthSend"; + this.colMonthSend.ReadOnly = true; + // + // col7DaySend + // + this.col7DaySend.FillWeight = 40F; + this.col7DaySend.HeaderText = "7天代发"; + this.col7DaySend.Name = "col7DaySend"; + this.col7DaySend.ReadOnly = true; + // + // colPickupRate48H + // + this.colPickupRate48H.FillWeight = 45F; + this.colPickupRate48H.HeaderText = "48H支揽率"; + this.colPickupRate48H.Name = "colPickupRate48H"; + this.colPickupRate48H.ReadOnly = true; + // + // colOutDistributeCnt + // + this.colOutDistributeCnt.FillWeight = 40F; + this.colOutDistributeCnt.HeaderText = "铺货数"; + this.colOutDistributeCnt.Name = "colOutDistributeCnt"; + this.colOutDistributeCnt.ReadOnly = true; + // + // colWangwang + // + this.colWangwang.FillWeight = 30F; + this.colWangwang.HeaderText = "旺旺聊天"; + this.colWangwang.ImageLayout = System.Windows.Forms.DataGridViewImageCellLayout.Zoom; + this.colWangwang.Name = "colWangwang"; + this.colWangwang.ReadOnly = true; + // + // colDel + // + this.colDel.FillWeight = 35F; + this.colDel.HeaderText = "删除"; + this.colDel.Name = "colDel"; + this.colDel.ReadOnly = true; + // + // colMsg + // + dataGridViewCellStyle5.WrapMode = System.Windows.Forms.DataGridViewTriState.True; + this.colMsg.DefaultCellStyle = dataGridViewCellStyle5; + this.colMsg.FillWeight = 160F; + this.colMsg.HeaderText = "操作结果"; + this.colMsg.Name = "colMsg"; + this.colMsg.ReadOnly = true; + // + // chkSkip + // + this.chkSkip.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.chkSkip.AutoSize = true; + this.chkSkip.Checked = true; + this.chkSkip.CheckState = System.Windows.Forms.CheckState.Checked; + this.chkSkip.Location = new System.Drawing.Point(1055, 33); + this.chkSkip.Name = "chkSkip"; + this.chkSkip.Size = new System.Drawing.Size(171, 21); + this.chkSkip.TabIndex = 1119; + this.chkSkip.Text = "采集时跳过库中已存在商品"; + this.chkSkip.UseVisualStyleBackColor = true; + // + // btnGetDetail + // + this.btnGetDetail.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.btnGetDetail.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; + this.btnGetDetail.Cursor = System.Windows.Forms.Cursors.Hand; + this.btnGetDetail.DisabledBackColor = System.Drawing.Color.Empty; + this.btnGetDetail.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.btnGetDetail.Location = new System.Drawing.Point(1236, 58); + this.btnGetDetail.Name = "btnGetDetail"; + this.btnGetDetail.Size = new System.Drawing.Size(82, 23); + this.btnGetDetail.Style.Alignment = System.Drawing.StringAlignment.Center; + this.btnGetDetail.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnGetDetail.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnGetDetail.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; + this.btnGetDetail.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash; + this.btnGetDetail.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None; + this.btnGetDetail.Style.ForeColor.Color = System.Drawing.Color.White; + this.btnGetDetail.Style.GradientAngle = 90; + this.btnGetDetail.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center; + this.btnGetDetail.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnGetDetail.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnGetDetail.TabIndex = 1091; + this.btnGetDetail.Text = "采集商品详情"; + this.btnGetDetail.Click += new System.EventHandler(this.btnGetDetail_Click); + // + // Get1688ProductForm + // + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; + this.ClientSize = new System.Drawing.Size(1404, 561); + this.Controls.Add(this.splitContainer1); + this.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.KeyPreview = true; + this.Name = "Get1688ProductForm"; + this.Text = "获取1688商品列表"; + this.Load += new System.EventHandler(this.GetJuShuitanProdForm_Load); + this.pnlMultiLogin.ResumeLayout(false); + this.splitContainer1.Panel1.ResumeLayout(false); + this.splitContainer1.Panel2.ResumeLayout(false); + this.splitContainer1.Panel2.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).EndInit(); + this.splitContainer1.ResumeLayout(false); + this.ucTabControlMetro1.ResumeLayout(false); + this.tabPage1.ResumeLayout(false); + this.splitContainer2.Panel1.ResumeLayout(false); + this.splitContainer2.Panel1.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.splitContainer2)).EndInit(); + this.splitContainer2.ResumeLayout(false); + this.tabPage2.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.pbLoading)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.dgvProduct)).EndInit(); + this.ResumeLayout(false); + + } + + #endregion + + private DevComponents.DotNetBar.Controls.Line line1; + private System.Windows.Forms.Label label2; + private DevComponents.DotNetBar.PanelEx btnImportCookie; + private DevComponents.DotNetBar.PanelEx btnSaveCookie; + private System.Windows.Forms.TextBox txtCookie; + private System.Windows.Forms.TextBox txtSupplierName; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.TextBox txtPageStart; + private System.Windows.Forms.TextBox txtPageEnd; + private System.Windows.Forms.Label label4; + private UserControls.StatusBarUserControl statusBar; + private DevComponents.DotNetBar.PanelEx btnSaveDb; + private DevComponents.DotNetBar.PanelEx btnStopStop; + private UserComponent.UcCheckBox chkOverride; + private DevComponents.DotNetBar.PanelEx btnSearchTitle; + private System.Windows.Forms.TextBox txtTitle; + private DevComponents.DotNetBar.PanelEx btnCancelSelect; + private DevComponents.DotNetBar.PanelEx btnGetGoods; + private System.Windows.Forms.Label label8; + private System.Windows.Forms.TextBox txtWaitSeconds; + private System.Windows.Forms.Label label7; + private DevComponents.DotNetBar.PanelEx btnExportCookie; + private System.Windows.Forms.Panel pnlMultiLogin; + private DevComponents.DotNetBar.Controls.ComboBoxEx cmbMultiCookieName; + private DevComponents.DotNetBar.PanelEx btnMultiLogin; + private DevComponents.DotNetBar.PanelEx btnDel; + private System.Windows.Forms.SplitContainer splitContainer1; + private PinBaoBao.UserControls.UcTabControlMetro ucTabControlMetro1; + private System.Windows.Forms.TabPage tabPage1; + private System.Windows.Forms.SplitContainer splitContainer2; + private System.Windows.Forms.Button btnNext; + private System.Windows.Forms.Button btnPrev; + private System.Windows.Forms.TextBox txtAddress; + private System.Windows.Forms.TabPage tabPage2; + private System.Windows.Forms.PictureBox pbLoading; + private UserComponent.DataGridViewEx dgvProduct; + private DevComponents.DotNetBar.PanelEx btnGetDetail; + private UserComponent.UcCheckBox chkSkip; + private System.Windows.Forms.DataGridViewCheckBoxColumn colCheck; + private System.Windows.Forms.DataGridViewTextBoxColumn colCoId; + private System.Windows.Forms.DataGridViewTextBoxColumn colSupplierName; + private System.Windows.Forms.DataGridViewTextBoxColumn colProductId; + private System.Windows.Forms.DataGridViewTextBoxColumn colGoodsName; + private System.Windows.Forms.DataGridViewTextBoxColumn colCate; + private System.Windows.Forms.DataGridViewTextBoxColumn colImgUrl; + private System.Windows.Forms.DataGridViewImageColumn colImg; + private System.Windows.Forms.DataGridViewTextBoxColumn colPrice; + private System.Windows.Forms.DataGridViewTextBoxColumn colStock; + private System.Windows.Forms.DataGridViewTextBoxColumn colMonthSend; + private System.Windows.Forms.DataGridViewTextBoxColumn col7DaySend; + private System.Windows.Forms.DataGridViewTextBoxColumn colPickupRate48H; + private System.Windows.Forms.DataGridViewTextBoxColumn colOutDistributeCnt; + private System.Windows.Forms.DataGridViewImageColumn colWangwang; + private System.Windows.Forms.DataGridViewLinkColumn colDel; + private System.Windows.Forms.DataGridViewTextBoxColumn colMsg; + } +} \ No newline at end of file diff --git a/TEMUKJD/ToolForms/Get1688ProductForm.cs b/TEMUKJD/ToolForms/Get1688ProductForm.cs new file mode 100644 index 0000000..32e7667 --- /dev/null +++ b/TEMUKJD/ToolForms/Get1688ProductForm.cs @@ -0,0 +1,1089 @@ +using AllBase; +using AllBase.Model.Result; +using AllBase.Model.Result._1688; +using AllBase.Model.Result.JST; +using AllBase.Model.Result.PDDResult; +using CefSharp; +using CefSharp.WinForms; +using NaiBa.CefHelper; +using NaiBa.CefHelper.Handler; +using NaiBa.Util; +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.Globalization; +using System.Linq; +using System.Text; +using System.Text.RegularExpressions; +using System.Threading; +using System.Threading.Tasks; +using System.Windows.Forms; +using TemuKJD.BaseForms; +using TemuKJD.BLL; +using TemuKJD.Extension; +using TemuKJD.Helper; +using TemuKJD.PDDForms.ProductSelectForms; +using TemuKJD.WXForms.ProductForms; +using Work; + +namespace TemuKJD.ToolForms +{ + public partial class Get1688ProductForm : BaseForms.BaseForm + { + List lst1688cookie = null; + public bool isGetProdLst = false; + Dictionary dicAfterSale = new Dictionary(); + public CancellationTokenSource cancellationTokenSource { get; set; } = null; + public CancellationTokenSource CancelReturn { get; set; } = null; + //string InitUrl = "https://air.1688.com/app/channel-fe/search/index.html?spm=a260k.home2025.centralDoor.dyjdf.51c435972rph5F#/result?topOfferIds=673868452000"; + //string InitUrl = "https://air.1688.com/app/channel-fe/search/index.html?spm=a260k.home2025.centralDoor.dyjdf.51c435972rph5F#/result"; + string InitUrl = "https://air.1688.com/app/channel-fe/search/index.html?spm=a21vf6.home.0.0#/result"; + public ChromiumWebBrowser cefWebBrowser = null; + private string currentUrl = ""; + private string currentGet1688ListParamData = ""; + private string currentGet1688ListProductData = ""; + private string appVersion = ""; + private string currentSupplierId = ""; + int getDetailWait = 1; + int pageStart = 1; + int pageEnd = 9999; + ConcurrentList<_1688OneProductListInfo> lst1688OneProductListInfo = new ConcurrentList<_1688OneProductListInfo>(); + + public Get1688ProductForm() + { + InitializeComponent(); + } + + private void GetJuShuitanProdForm_Load(object sender, EventArgs e) + { + this.splitContainer1.SplitterDistance = 472; + this.dgvProduct.AddSelectorColumn("colCheck"); + this.dgvProduct.AddImgColumn("colImg", "colImgUrl"); + + lst1688cookie = NaiBa.Util.Helper.ConfigHelper.LoadConfig>("1688_cookies"); + if (lst1688cookie == null) + lst1688cookie = new List(); + + lst1688OneProductListInfo = NaiBa.Util.Helper.ConfigHelper.LoadConfig>("1688_product_list_" + MainForm.ProcessCount); + if (lst1688OneProductListInfo == null) + lst1688OneProductListInfo = new ConcurrentList<_1688OneProductListInfo>(); + + pbLoading.Visible = true; + Task.Run(() => + { + int id = 0; + foreach (var prod in lst1688OneProductListInfo) + { + id++; + if (id % 50 == 0) + Thread.Sleep(1); + Invoke(new Action(() => + { + var rowId = this.dgvProduct.Rows.Add( + true, + prod.sellerId, + prod.memberInfo.companyName, + prod.offerId, + prod.title, + prod?.dbProduct?.cat_name != null ? prod?.dbProduct?.cat_name : prod?.dbProduct?.cat_id, + prod.offerPic.ParseToString().Replace("https://", "http://"), + DataGridViewExtension.defaultBitmap, + //"", //prod.skuId, + //"", //prod.color + ";" + prod.spec, + prod?.dbProduct?.price_text == null ? prod?.dbProduct?.price_text : prod.price.ParseToString(), + "", //prod.stock, + prod.saleInfo.blurDfSales, + prod.saleInfo.blurDfSales7d, + prod.fullfillInfo.pickupRate48H, + prod.proxyAdvice.outDistributeCnt, + TemuKJD.Properties.Resources.wang_wang_icon, + "删除", + prod.getProductMsg + ); ; + dgvProduct.Rows[rowId].Height = 60; + + //if (chanceProductResult.dbProduct != null) + //{ + // var dbProd = chanceProductResult.dbProduct; + // var row = dgvChanceProduct.Rows[rowId]; + // row.Cells["colGoodsName"].Value = dbProd.product_name; + // row.Cells["colCate"].Value = dbProd.cat_name; + // row.Cells["colPrice"].Value = dbProd.price_text; + //} + })); + } + Invoke(new Action(() => + { + pbLoading.Visible = false; + })); + }); + + InitCef(); + } + + void InitCef() + { + if (cefWebBrowser == null) + { + cefWebBrowser = CEFBrowser.CreateChromiumWebBrowser(InitUrl, false); + + CustomResourceRequestHandlerLocal resourceRequestHandler = new CustomResourceRequestHandlerLocal(); + resourceRequestHandler.ResourceLoadCompleteEvent += RequestHandler_ResourceLoadComplete; + resourceRequestHandler.BeforeResourceLoadEvent += RequestHandler_BeforeResourceLoad; + cefWebBrowser.RequestHandler = new CustomRequestHandler(resourceRequestHandler); + var lifeSapnHandler = new LifeSpanHandlerLocal(PopWindowType.SelfWindow); + cefWebBrowser.LifeSpanHandler = lifeSapnHandler; + cefWebBrowser.KeyboardHandler = new KeyboardHandler(); + cefWebBrowser.FrameLoadEnd += CefWebBrowser_FrameLoadEnd; + cefWebBrowser.AddressChanged += CefWebBrowser_AddressChanged; + cefWebBrowser.LoadError += CefWebBrowser_LoadError; + cefWebBrowser.Dock = DockStyle.Fill; + + + Invoke(new Action(() => + { + splitContainer2.Panel2.Controls.Add(cefWebBrowser); + //cefWebBrowser.Load(shopMainUrl); + })); + } + + Task.Run(() => + { + //string serverCookie = ""; + //var url = BaseClass.BuildPDDObjString("user/get_scm121_cookie"); + //var data = UserLogin.GetSignaturex(); + //var result = GetHtml.PostUtf8(url, data); + //if (!result.Contains("\"code\":200")) + // result = GetHtml.PostUtf8(url, data); + + //List cookieLst = new List(); + //try + //{ + // serverCookie = JsonHelper.SerializeObject(JsonHelper.JObjectParse(result)["cookie"]); + // cookieLst = JsonHelper.DeserializeJsonToList(serverCookie); + // if (cookieLst == null) + // cookieLst = new List(); + //} + //catch + //{ + //} + List cookieLst = lst1688cookie; + + + // cef138必须init后方可设置或删除cookie + while (!cefWebBrowser.IsBrowserInitialized || !cefWebBrowser.GetBrowser().MainFrame.IsValid) + Thread.Sleep(20); + CEFBrowser.DeleteCookie(cefWebBrowser.GetCookieManager(null)); + + //cef 138 如果没有设置RequestContext 可能为空,直接getCookieManager + //if (this.openType != EnumOpenType.login) + { + //var t = CEFBrowser.SetCookieAsync(JsonHelper.SerializeObject(cookieLst), cefWebBrowser.GetCookieManager(null)); + foreach (var cook in cookieLst) + { + var t = CEFBrowser.SetCookieAsync(cook.Domain.Trim('.'), cook.Name + "=" + cook.Value + ";", cefWebBrowser.GetCookieManager(null)); + t.Wait(5000); + } + } + cefWebBrowser.Load(InitUrl); + }); + } + private void CefWebBrowser_FrameLoadEnd(object sender, CefSharp.FrameLoadEndEventArgs e) + { + } + + public string currentDetailData = ""; + private void RequestHandler_ResourceLoadComplete(object sender, string url, string postData, string responseData, IRequest request) + { + //if (url.Contains("api/goods/buyer/supplier/goods/list")) + //{ + // if (request.Headers.AllKeys.Contains("App-Version")) + // appVersion = request.Headers["App-Version"]; + // Task.Run(() => { GetCurrent1688SearchData(postData, responseData, request); }); + //} + //if (url.Contains("https://sc.scm121.com/api/goods/buyer/supplier/goods/skuList")) + //{ + // if (request.Headers.AllKeys.Contains("App-Version")) + // appVersion = request.Headers["App-Version"]; + // Task.Run(() => { GetCurrentSupplierSearchSkuData(postData, responseData, request); }); + //} + + if (url.Contains("https://h5api.m.1688.com/h5/mtop.alibaba.1688.distribution.buyer.selection.search")) + { + Task.Run(() => { GetCurrent1688SearchData(postData, responseData, request); }); + } + + if (url.Contains("https://detail.1688.com/offer/")) + { + currentDetailData = responseData; + } + + if (responseData.Contains("赛龙宠物")) + { + + } + } + + + void GetCurrent1688SearchData(string postData, string responseData, IRequest request) + { + currentGet1688ListParamData = GetHtml.UrlDecode(postData.Replace("data=", "")); + currentGet1688ListProductData = responseData; + if (isGetProdLst) + { + + } + } + + private bool RequestHandler_BeforeResourceLoad(object sender, string url, string postData, IRequest request) + { + return false; + } + private void CefWebBrowser_AddressChanged(object sender, CefSharp.AddressChangedEventArgs e) + { + if (this.Created && !this.Disposing && !this.IsDisposed) + { + Task.Run(() => + { + Invoke(new Action(() => + { + currentUrl = e.Address; + txtAddress.Text = e.Address; + })); + }); + } + } + private void CefWebBrowser_LoadError(object sender, CefSharp.LoadErrorEventArgs e) + { + } + + private void btnImportCookie_Click(object sender, EventArgs e) + { + if (!txtCookie.Text.Contains("_tb_token_")) + { + BaseMsgForm.ShowError("导入的cookie无效,请重新输入"); + return; + } + + Task.Run(() => + { + var t = CEFBrowser.SetCookieAsync(".1688.com", txtCookie.Text, cefWebBrowser.GetCookieManager(null)); + t.Wait(5000); + cefWebBrowser.Load(InitUrl); + }); + } + + private void btnSaveCookie_Click(object sender, EventArgs e) + { + List cookieList = CEFBrowser.GetCookieList(".1688.com", cefWebBrowser.GetCookieManager(null)); + NaiBa.Util.Helper.ConfigHelper.SaveConfig("1688_cookies", cookieList); + BaseMsgForm.ShowInfo("保存成功"); + + //var url = BaseClass.BuildPDDObjString("user/update_scm121_cookie"); + //var data = UserLogin.GetSignaturex(); + //data += "&cookie=" + GetHtml.UrlEncodeUtf8(JsonHelper.SerializeObject(cookieList)); + //var result = GetHtml.PostUtf8(url, data); + //if (!result.Contains("\"code\":200")) + // result = GetHtml.PostUtf8(url, data); + + //if (result.Contains("\"code\":200")) + // BaseMsgForm.ShowInfo("保存成功"); + //else + // BaseMsgForm.ShowInfo("保存失败,请重试"); + } + + private void btnPrev_Click(object sender, EventArgs e) + { + cefWebBrowser.Back(); + } + + private void btnNext_Click(object sender, EventArgs e) + { + cefWebBrowser.Forward(); + } + + private void txtAddress_KeyDown(object sender, KeyEventArgs e) + { + if (e.KeyCode == Keys.Enter) + { + if (cefWebBrowser != null) + { + cefWebBrowser.Load(txtAddress.Text); + } + } + } + + private void dgvProduct_CellContentClick(object sender, DataGridViewCellEventArgs e) + { + if (e.ColumnIndex < 0 || e.RowIndex < 0) + return; + string headerText = dgvProduct.Columns[e.ColumnIndex].HeaderText; + var prodId = dgvProduct.Rows[e.RowIndex].Cells["colProductId"].Value.ParseToString(); + var prod = lst1688OneProductListInfo.FirstOrDefault(p => p.offerId.ParseToString() == prodId); + var row = dgvProduct.Rows[e.RowIndex]; + + switch (headerText) + { + case "删除": + //if (BaseMsgForm.ShowConfirm("确定删除商品吗?删除后不可恢复!").DialogResult == DialogResult.Cancel) + // return; + //DeleteProduct(dbId); + dgvProduct.Rows.Remove(row); + lst1688OneProductListInfo.Remove(prod); + NaiBa.Util.Helper.ConfigHelper.SaveConfig("1688_product_list_" + MainForm.ProcessCount, lst1688OneProductListInfo); + break; + case "图片": + var imgUrl = dgvProduct.Rows[e.RowIndex].Cells["colImgUrl"].Value.ParseToString(); + Dictionary dic = new Dictionary(); + dic[imgUrl] = imgUrl; + ShowImgForm imgFrom = new ShowImgForm(imgUrl, dic); + imgFrom.ShowDialog(); + break; + case "": + dgvProduct.Rows[e.RowIndex].Cells["colCheck"].Value = !(bool)dgvProduct.Rows[e.RowIndex].Cells["colCheck"].Value; + break; + case "旺旺聊天": + //https://air.1688.com/app/ocms-fusion-components-1688/def_cbu_web_im/index.html?touid=cnalichn%E8%B5%9B%E9%BE%99%E5%AE%A0%E7%89%A9&siteid=cnalichn&status=1&portalId=&gid=&offerId=757406440159#/ + var url = "https://air.1688.com/app/ocms-fusion-components-1688/def_cbu_web_im/index.html?touid=cnalichn" + prod.memberInfo.companyName + + "&siteid=cnalichn&status=1&portalId=&gid=&offerId=" + prod.offerId + "#/"; + //WebForm + url = "https://detail.1688.com/offer/" + prod.offerId + ".html?spm=a21vf6.result.0.0.5a8a12ffMLgKMw&fxcv=2&sk=consign"; + List cookieList = CEFBrowser.GetCookieList(".1688.com", cefWebBrowser.GetCookieManager(null)); + var shop = new ShopLoginInfo(); + shop.Cookies = JsonHelper.SerializeObject(cookieList); + if (WebForm.instance != null) + { + WebForm.instance.InitUrl = url; + WebForm.instance.Show(); + WebForm.instance.initCefAndMainShop(); + } + else + { + WebForm webForm = new WebForm(shop, url); + webForm.Show(); + } + Task.Run(() => + { + Thread.Sleep(Randomx.GetId(1000, 2000)); + WebForm.instance.ClickWangwang(); + }); + break; + default: + break; + } + } + + private void btnCollectSupplier_Click(object sender, EventArgs e) + { + if (string.IsNullOrEmpty(currentGet1688ListParamData) || string.IsNullOrEmpty(currentGet1688ListProductData)) + { + BaseMsgForm.ShowError("请在网页上选择一件代发商品列表页面"); + return; + } + if (dgvProduct.Rows.Count > 0) + { + if (BaseMsgForm.ShowConfirm("当前列表已有采集数据,是否重新采集?").DialogResult == DialogResult.Cancel) + { + return; + } + } + + this.pbLoading.Visible = true; + dgvProduct.Rows.Clear(); + lst1688OneProductListInfo.Clear(); + if (cancellationTokenSource != null && cancellationTokenSource.IsCancellationRequested) + cancellationTokenSource.Cancel(); + cancellationTokenSource = new CancellationTokenSource(); + Task.Run(() => + { + try + { + Get1688GoodsList(); + } + catch (Exception ex) + { + BaseMsgForm.ShowError(ex.Message); + } + Invoke(new Action(() => + { + this.pbLoading.Visible = false; + //this.statusBar.lblTaskStatus.Text = "正在删除..."; + })); + }, cancellationTokenSource.Token); + } + + void Get1688GoodsList() + { + List cookieList = CEFBrowser.GetCookieList(".1688.com", cefWebBrowser.GetCookieManager(null)); + var shop = new ShopLoginInfo(); + shop.Cookies = JsonHelper.SerializeObject(cookieList); + int totalPage = 99999999; + + var JobjStr = JsonHelper.JObjectParse(currentGet1688ListParamData)["sceneSearchParamStr"].ParseToString(); + var Jobj = JsonHelper.JObjectParse(JobjStr); + + pageStart = Jobj["pageIndex"].ParseToInt(); + int page = pageStart; + while (page < pageEnd && page < totalPage) + { + if (cancellationTokenSource.IsCancellationRequested) + break; + + JobjStr = JsonHelper.JObjectParse(currentGet1688ListParamData)["sceneSearchParamStr"].ParseToString(); + Jobj = JsonHelper.JObjectParse(JobjStr); + page = Jobj["pageIndex"].ParseToInt(); + totalPage = BaseRegex.GetIntJson(ref currentGet1688ListProductData, "totalPage"); + + if (page % 10 == 9) + NaiBa.Util.Helper.ConfigHelper.SaveConfig("1688_product_list_" + MainForm.ProcessCount, lst1688OneProductListInfo); + + //Jobj["pageNum"] = page; + Invoke(new Action(() => + { + this.statusBar.lblTaskStatus.Text = "正在采集第 " + page + " 页"; + })); + Thread.Sleep(Randomx.GetId(100, 200)); + + List<_1688OneProductListInfo> _1688Lst = new List<_1688OneProductListInfo>(); + try + { + foreach (var jItem in JsonHelper.JObjectParse(currentGet1688ListProductData)["data"]["data"]) + { + _1688OneProductListInfo _1688Prod = JsonHelper.DeserializeJsonToObject<_1688OneProductListInfo>(JsonHelper.SerializeObject(jItem)); + _1688Prod._1688ProductJson = JsonHelper.SerializeObject(jItem); + _1688Prod.dbProduct = new KJDDBProduct(); + _1688Prod.dbProduct.from_shop_id = _1688Prod.sellerId.ParseToString(); + _1688Prod.dbProduct.from_shop_name = _1688Prod.memberInfo.companyName; + //_1688Prod.dbProduct.offline_supplier_id = ""; + //_1688Prod.dbProduct.offline_supplier_name = ""; + _1688Prod.dbProduct.spu_id = _1688Prod.offerId.ParseToString(); + _1688Prod.dbProduct.skc_id = ""; + _1688Prod.dbProduct.price_text = _1688Prod.price.ParseToString(); + //_1688Prod.dbProduct.main_cat_id = ""; + //_1688Prod.dbProduct.main_cat_name = ""; + //_1688Prod.dbProduct.cat_id = ""; + //_1688Prod.dbProduct.cat_name = ""; + //_1688Prod.dbProduct.ext_code = ""; + _1688Prod.dbProduct.product_name = _1688Prod.title; + _1688Prod.dbProduct.product_json = ""; + _1688Prod.dbProduct.size_json = "{}"; + _1688Prod.dbProduct.main_img = _1688Prod.offerPic; + _1688Prod.dbProduct.sale_count = _1688Prod.saleInfo.dfSales; + _1688Prod.dbProduct.sale_count_text = _1688Prod.saleInfo.blurDfSales; + _1688Prod.dbProduct.product_get_type_text = "1688厂家"; + _1688Lst.Add(_1688Prod); + } + if (_1688Lst.Count <= 0) + break; + + //_1688Lst = _1688Lst.Where(p => !lst1688OneProductListInfo.Any(pr => pr.offerId == p.offerId)).ToList(); + lst1688OneProductListInfo.AddRange(_1688Lst); + } + catch (Exception ex) + { + Invoke(new Action(() => + { + this.statusBar.lblTaskStatus.Text = "发生错误 " + ex.Message; + })); + Thread.Sleep(2000); + } + + Invoke(new Action(() => + { + foreach (var prod in _1688Lst) + { + var id = dgvProduct.Rows.Add( + true, + prod.sellerId, + prod.memberInfo.companyName, + prod.offerId, + prod.title, + prod?.dbProduct?.cat_name != null ? prod?.dbProduct?.cat_name : prod?.dbProduct?.cat_id, + prod.offerPic.ParseToString().Replace("https://", "http://"), + DataGridViewExtension.defaultBitmap, + //"", //prod.skuId, + //"", //prod.color + ";" + prod.spec, + prod?.dbProduct?.price_text == null ? prod?.dbProduct?.price_text : prod.price.ParseToString(), + "", //prod.stock, + prod.saleInfo.blurDfSales, + prod.saleInfo.blurDfSales7d, + prod.fullfillInfo.pickupRate48H, + prod.proxyAdvice.outDistributeCnt, + TemuKJD.Properties.Resources.wang_wang_icon, + "删除", + prod.getProductMsg + ); + dgvProduct.Rows[id].Height = 60; + + } + })); + + var jsStr = "window.scrollTo(0, document.body.scrollHeight); " + + "document.getElementsByClassName('ant-pagination-item-link')[document.getElementsByClassName('ant-pagination-item-link').length - 1].click();"; + var response = cefWebBrowser.GetBrowser().MainFrame.EvaluateScriptAsync(jsStr); + response.Wait(2000); + Thread.Sleep(Randomx.GetId(3000, 5000)); + } + NaiBa.Util.Helper.ConfigHelper.SaveConfig("1688_product_list_" + MainForm.ProcessCount, lst1688OneProductListInfo); + Invoke(new Action(() => + { + BaseMsgForm.ShowInfo("采集完成"); + })); + } + + private void btnGetDetail_Click(object sender, EventArgs e) + { + this.pbLoading.Visible = true; + List cookieList = CEFBrowser.GetCookieList(".1688.com", cefWebBrowser.GetCookieManager(null)); + var shop = new ShopLoginInfo(); + shop.Cookies = JsonHelper.SerializeObject(cookieList); + + List rowLst = new List(); + rowLst.AddRange(dgvProduct.Rows.Cast().Where(r => r.Cells["colCheck"].Value.ParseToBool() == true)); + if(rowLst.Count == 0) + { + BaseMsgForm.ShowError("请选择要采集详情的商品"); + return; + } + + if (cancellationTokenSource != null) + cancellationTokenSource.Cancel(); + cancellationTokenSource = new CancellationTokenSource(); + Task.Run(() => + { + foreach (var row in rowLst) + { + if (cancellationTokenSource.IsCancellationRequested) + break; + if (row.Index % 20 == 0) + NaiBa.Util.Helper.ConfigHelper.SaveConfig("1688_product_list_" + MainForm.ProcessCount, lst1688OneProductListInfo); + + Invoke(new Action(() => + { + this.statusBar.lblTaskStatus.Text = "正在采集表格第 " + (row.Index + 1) + " 行详情数据"; + })); + + var prodId = row.Cells["colProductId"].Value.ParseToString(); + var prod = lst1688OneProductListInfo.FirstOrDefault(c => c.offerId.ParseToString() == prodId); + + if (chkSkip.Checked) + { + // 不存在或已经采集过 + if (prod == null || prod?.dbProduct?.product_json?.ParseToString().Length > 10) + continue; + + if (prod.getProductMsg == "商品已存在,跳过详情采集") + continue; + if (prod.getProductMsg.ParseToString().Contains("入库成功") || prod.getProductMsg.ParseToString().Contains("已存在相同id商品")) + continue; + + bool isExist = false; + var existUrl = BaseClass.BuildPDDObjString("product/get_product_spu_id_list"); + string existData = UserLogin.GetSignaturex() + "&search_spu_ids=" + prod.offerId; + string html = GetHtml.PostUtf8(existUrl, existData); + if (string.IsNullOrEmpty(html) || !html.Contains("\"code\":200")) + html = GetHtml.PostUtf8(existUrl, existData); + if (string.IsNullOrEmpty(html) || !html.Contains("\"code\":200")) + { + prod.getProductMsg = "采集详情失败,产品数据库连接失败"; + try { row.Cells["colMsg"].Value = prod.getProductMsg; } catch { } + continue; + } + else + { + if (html.Contains("\"data\":[") && !html.Contains("\"data\":[]")) + isExist = true; + } + prod.getProductMsg = "商品已存在,跳过详情采集"; + if (isExist) + { + try { row.Cells["colMsg"].Value = prod.getProductMsg; } catch { } + continue; + } + } + Thread.Sleep(Randomx.GetId(500, 1500)); + + // 采集商品详情 + currentDetailData = ""; + //var get1688DetailRst = Get1688DetailData(shop, prod); + string url = "https://detail.1688.com/offer/" + prod.offerId + ".html?fxcv=2&sk=consign"; + this.cefWebBrowser.Load(url); + // 额外休眠 + Thread.Sleep(Math.Max(3, getDetailWait) * 1000); + string get1688DetailRst = currentDetailData; + + + //Invoke(new Action(() => { this.ucTabControlMetro1.SelectedIndex = 0; })); + if (!get1688DetailRst.Contains("\"success\":true")) + { + if (get1688DetailRst.Contains("___tmd___") || get1688DetailRst.Contains("___TMD___")) + { + Invoke(new Action(() => { this.ucTabControlMetro1.SelectedIndex = 0; })); + Thread.Sleep(5000); + } + + var errMsg = BaseRegex.GetStringJson(ref get1688DetailRst, "message"); + if (string.IsNullOrEmpty(errMsg)) + errMsg = get1688DetailRst; + prod.getProductMsg = "采集失败 " + errMsg; + Invoke(new Action(() => + { + try { row.Cells["colMsg"].Value = prod.getProductMsg; } catch { } + })); + continue; + } + + try + { + _1688ClientProductInfo _1688ProdDetail = new _1688ClientProductInfo(); + // 视频 + var videoStrs = BaseRegex.GetJsonObjStrJson(ref get1688DetailRst, "video"); + _1688ProdDetail.video = JsonHelper.DeserializeJsonToObjectNullable<_1688video>(videoStrs.FirstOrDefault()); + // 主图详情图 + var mainImgStrs = BaseRegex.GetJsonArrStrJson(ref get1688DetailRst, "mainImage"); + _1688ProdDetail.mainImage = JsonHelper.DeserializeJsonToListNullable(mainImgStrs.FirstOrDefault()); + var detailImgStrs = BaseRegex.GetJsonArrStrJson(ref get1688DetailRst, "offerImgList"); + _1688ProdDetail.offerImgList = JsonHelper.DeserializeJsonToListNullable(detailImgStrs.FirstOrDefault()); + + var skuModelRst = BaseRegex.GetJsonObjStrJson(ref get1688DetailRst, "skuModel"); + _1688ProdDetail.skuModel = JsonHelper.DeserializeJsonToObjectNullable<_1688skuModel>(skuModelRst.FirstOrDefault()); + + var offerBaseInfoRst = BaseRegex.GetJsonObjStrJson(ref get1688DetailRst, "offerBaseInfo"); + _1688ProdDetail.offerBaseInfo = JsonHelper.DeserializeJsonToObjectNullable<_1688offerBaseInfo>(offerBaseInfoRst.FirstOrDefault()); + var tempModelRst = BaseRegex.GetJsonObjStrJson(ref get1688DetailRst, "tempModel"); + _1688ProdDetail.tempModel = JsonHelper.DeserializeJsonToObjectNullable<_1688tempModel>(tempModelRst.FirstOrDefault()); + + var offerDetailRst = BaseRegex.GetJsonObjStrJson(ref get1688DetailRst, "offerDetail"); + if (offerDetailRst.Count == 0) + { + var get1688DetailRstTmp = Regex.Unescape(get1688DetailRst); + offerDetailRst = BaseRegex.GetJsonObjStrJson(ref get1688DetailRstTmp, "offerDetail"); + } + _1688ProdDetail.offerDetail = JsonHelper.DeserializeJsonToObjectNullable<_1688offerDetail>(offerDetailRst.FirstOrDefault()); + if (_1688ProdDetail.offerDetail == null) + { + //var offerDomainRst = BaseRegex.GetJsonObjStrJson(ref get1688DetailRst, "offerDomain", 1); + //var offerDomainStr = offerDomainRst.FirstOrDefault(); + //if (offerDomainStr.Contains("\\\"")) + // offerDomainStr = Regex.Unescape(offerDomainRst.FirstOrDefault()); + //if (!string.IsNullOrEmpty(offerDomainStr)) + //{ + // _1688ProdDetail.offerDetail = new _1688offerDetail(); + //} + } + + _1688ProdDetail.postFeeValue = BaseRegex.GetDecimalJson(ref get1688DetailRst, "postFeeValue"); + + if (_1688ProdDetail.offerDetail == null || _1688ProdDetail.offerDetail.featureAttributes == null || + _1688ProdDetail.offerDetail.featureAttributes.Count == 0 || + _1688ProdDetail.mainImage == null || _1688ProdDetail.mainImage.Count == 0 || _1688ProdDetail.offerImgList == null || + _1688ProdDetail.skuModel == null || _1688ProdDetail.skuModel.skuInfoMap == null || _1688ProdDetail.skuModel.skuInfoMap.Count == 0 || + _1688ProdDetail.skuModel.skuProps == null || _1688ProdDetail.skuModel.skuProps.Count == 0) + { + prod.getProductMsg = "解析1688商品详情失败,丢失商品信息"; + Invoke(new Action(() => + { + try { row.Cells["colMsg"].Value = prod.getProductMsg; } catch { } + })); + continue; + } + + if (_1688ProdDetail.offerBaseInfo == null || _1688ProdDetail.tempModel == null) + { + prod.getProductMsg = "解析1688商品详情失败,丢失基础信息"; + Invoke(new Action(() => + { + try { row.Cells["colMsg"].Value = prod.getProductMsg; } catch { } + })); + continue; + } + var prodDataJson = JsonHelper.SerializeObject(_1688ProdDetail); + + prod.dbProduct.cat_id = _1688ProdDetail.offerDetail.leafCategoryId.ParseToString(); + // 获取属性 + if (prod.dbProduct.cat_id.IsNullOrEmpty()) + prod.dbProduct.cat_id = "1"; + prod.dbProduct.cat_name = _1688ProdDetail.offerDetail.leafCategoryName; + prod.dbProduct.main_cat_id = _1688ProdDetail.offerDetail.topCategoryId.ParseToString(); + var priceMin = _1688ProdDetail.skuModel.skuInfoMap.Values.Min(x => x.discountPrice.ParseToDecimal()); + if (priceMin == 0) + priceMin = _1688ProdDetail.skuModel.skuInfoMap.Values.Min(x => x.price.ParseToDecimal()); + var priceMax = _1688ProdDetail.skuModel.skuInfoMap.Values.Max(x => x.discountPrice.ParseToDecimal()); + if (priceMax == 0) + priceMax = _1688ProdDetail.skuModel.skuInfoMap.Values.Max(x => x.price.ParseToDecimal()); + priceMin += _1688ProdDetail.postFeeValue == null ? 0 : _1688ProdDetail.postFeeValue.ParseToDecimal(); + priceMax += _1688ProdDetail.postFeeValue == null ? 0 : _1688ProdDetail.postFeeValue.ParseToDecimal(); + prod.dbProduct.price_text = priceMin + "-" + priceMax; + prod.dbProduct.product_json = "{\"_1688DetailData\":" + prodDataJson + ",\"_1688ListProd\":" + prod._1688ProductJson + "}"; + prod.getProductMsg = "采集成功"; + + MainForm.instance.Invoke(new Action(() => + { + row.Cells["colMsg"].Value = prod.getProductMsg; + row.Cells["colCate"].Value = prod.dbProduct.cat_name.IsNullOrEmpty() ? prod.dbProduct.cat_id : prod.dbProduct.cat_name; + row.Cells["colPrice"].Value = prod.dbProduct.price_text; + })); + } + catch (Exception ex) + { + prod.getProductMsg = "解析1688商品详情失败 " + ex.Message; + Invoke(new Action(() => + { + try { row.Cells["colMsg"].Value = prod.getProductMsg; } catch { } + })); + continue; + } + } + NaiBa.Util.Helper.ConfigHelper.SaveConfig("1688_product_list_" + MainForm.ProcessCount, lst1688OneProductListInfo); + Invoke(new Action(() => + { + BaseMsgForm.ShowInfo("采集完成"); + this.pbLoading.Visible = false; + })); + }, cancellationTokenSource.Token); + } + + private void txtPageStart_TextChanged(object sender, EventArgs e) + { + pageStart = txtPageStart.Text.Trim().ParseToInt(); + } + + private void txtPageEnd_TextChanged(object sender, EventArgs e) + { + pageEnd = txtPageEnd.Text.Trim().ParseToInt(); + } + + private void btnStopStop_Click(object sender, EventArgs e) + { + if (cancellationTokenSource != null) + cancellationTokenSource.Cancel(); + Task.Run(() => + { + Thread.Sleep(3000); + Invoke(new Action(() => + { + if (cancellationTokenSource == null || cancellationTokenSource.IsCancellationRequested) + pbLoading.Visible = false; + })); + }); + } + + private void btnSaveDb_Click(object sender, EventArgs e) + { + //"&product_get_type=" + HttpUtility.UrlEncode("厂商直采", Encoding.UTF8); + List cookieList = CEFBrowser.GetCookieList(".scm121.com", cefWebBrowser.GetCookieManager(null)); + var shop = new ShopLoginInfo(); + shop.Cookies = JsonHelper.SerializeObject(cookieList); + + List rowLst = new List(); + rowLst.AddRange(dgvProduct.Rows.Cast().Where(r => r.Cells["colCheck"].Value.ParseToBool() == true)); + + if (cancellationTokenSource != null && cancellationTokenSource.IsCancellationRequested) + cancellationTokenSource.Cancel(); + cancellationTokenSource = new CancellationTokenSource(); + + this.pbLoading.Visible = true; + var t = Task.Run(() => + { + int success = 0; + int total = rowLst.Count; + foreach (var row in rowLst) + { + if (cancellationTokenSource.IsCancellationRequested) + break; + + Invoke(new Action(() => + { + row.Cells["colMsg"].Value = ""; + })); + + Invoke(new Action(() => + { + this.statusBar.lblTaskStatus.Text = "正在入库表格第 " + (row.Index + 1) + " 行数据 成功 " + success + " 条"; + })); + + var prodId = row.Cells["colProductId"].Value.ParseToString(); + var prod = lst1688OneProductListInfo.FirstOrDefault(c => c.offerId.ParseToString() == prodId); + if (prod == null || prod.dbProduct == null || prod.dbProduct.product_json.Length < 10) + continue; + var dbProd = prod.dbProduct; + + if (!chkOverride.Checked && !prod.getProductMsg.IsNullOrEmpty()) + { + if (prod.getProductMsg.Contains("已存在相同Id商品") || prod.getProductMsg.Contains("商品覆盖成功") || prod.getProductMsg.Contains("商品入库成功")) + { + //已存在相同Id商品,跳过 + //商品覆盖成功! + //商品入库成功! + prod.getProductMsg = "已存在相同Id商品,跳过"; + Invoke(new Action(() => + { + row.Cells["colMsg"].Value = prod.getProductMsg; + })); + success++; + continue; + } + } + + Thread.Sleep(25); + if (row.Index % 20 == 0) + NaiBa.Util.Helper.ConfigHelper.SaveConfig("1688_product_list_" + MainForm.ProcessCount, lst1688OneProductListInfo); + + bool isExist = false; + var existUrl = BaseClass.BuildPDDObjString("product/get_product_spu_id_list"); + string existData = UserLogin.GetSignaturex() + "&search_spu_ids=" + prod.offerId; + string html = GetHtml.PostUtf8(existUrl, existData); + if (string.IsNullOrEmpty(html) || !html.Contains("\"code\":200")) + html = GetHtml.PostUtf8(existUrl, existData); + if (string.IsNullOrEmpty(html) || !html.Contains("\"code\":200")) + { + Invoke(new Action(() => + { + row.Cells["colMsg"].Value = "入库失败,产品数据库连接失败"; + })); + continue; + } + else + { + if (html.Contains("\"data\":[") && !html.Contains("\"data\":[]")) + isExist = true; + } + + //var SetPartnerSpuRst = ""; + var url = BaseClass.BuildPDDObjString("product/add_product"); + if (isExist) + { + if (chkOverride.Checked) + { + url = BaseClass.BuildPDDObjString("product/mdy_product"); + } + else + { + //入库成功 已存在相同id商品 + prod.getProductMsg = "已存在相同SkuId,跳过"; + Invoke(new Action(() => + { + row.Cells["colMsg"].Value = prod.getProductMsg; + })); + success++; + continue; + } + } + + var data = Work.UserLogin.GetSignaturex() + + "&from_shop_id=" + prod.dbProduct.from_shop_id + + "&from_shop_name=" + prod.dbProduct.from_shop_name + + //"&offline_supplier_id=" + prod.dbProduct.offline_supplier_id + + //"&offline_supplier_name=" + prod.dbProduct.offline_supplier_name + + "&spu_id=" + prod.dbProduct.spu_id.ParseToString() + + "&skc_id=" + prod.dbProduct.skc_id.ParseToString() + + "&price_text=" + prod.dbProduct.price_text + + "&ext_code=" + HttpUtility.UrlEncode(prod.dbProduct.ext_code, Encoding.UTF8) + + "&product_name=" + HttpUtility.UrlEncode(prod.dbProduct.product_name, Encoding.UTF8) + + "&product_json=" + HttpUtility.UrlEncode(dbProd.product_json, Encoding.UTF8) + + "&size_json=" + HttpUtility.UrlEncode(dbProd.size_json, Encoding.UTF8) + + "&sale_count=" + dbProd.sale_count + + "&sale_count_text=" + HttpUtility.UrlEncode(dbProd.sale_count_text, Encoding.UTF8) + + "&main_img=" + HttpUtility.UrlEncode(dbProd.main_img, Encoding.UTF8) + + "&wx_safe_status=" + HttpUtility.UrlEncode("未校验", Encoding.UTF8) + + "&product_get_type=" + HttpUtility.UrlEncode("1688厂家", Encoding.UTF8); + if (!isExist) + { + data += "&main_cat_id=" + prod.dbProduct.main_cat_id + + "&main_cat_name=" + HttpUtility.UrlEncode(prod.dbProduct.main_cat_name.ParseToString(), Encoding.UTF8) + + "&cat_id=" + prod.dbProduct.cat_id + + "&cat_name=" + HttpUtility.UrlEncode((prod.dbProduct.cat_name ?? prod.dbProduct.cat_name).ParseToString(), Encoding.UTF8); + } + + html = GetHtml.PostUtf8(url, data); + if (string.IsNullOrEmpty(html) || !html.Contains("\"code\":200")) + html = GetHtml.PostUtf8(url, data); + if (string.IsNullOrEmpty(html) || !html.Contains("\"code\":200")) + { + string msg = "商品入库失败!请检查网络连接:" + BaseRegex.GetStringJson(ref html, "msg"); + Invoke(new Action(() => + { + row.Cells["colMsg"].Value = msg; + })); + } + else + { + success++; + prod.getProductMsg = "商品入库成功!"; + if (url == BaseClass.BuildPDDObjString("product/mdy_product")) + prod.getProductMsg = "商品覆盖成功!"; + Invoke(new Action(() => + { + row.Cells["colMsg"].Value = prod.getProductMsg; + })); + } + } + NaiBa.Util.Helper.ConfigHelper.SaveConfig("1688_product_list_" + MainForm.ProcessCount, lst1688OneProductListInfo); + + Invoke(new Action(() => + { + this.pbLoading.Visible = false; + BaseMsgForm.ShowInfo("商品入库完毕!"); + })); + }, cancellationTokenSource.Token); + } + + + public string GetGoodsLst(ShopLoginInfo shop, JObject searchDataObj) + { + string url = "https://sc.scm121.com/api/goods/buyer/supplier/goods/list"; + string referer = "https://sc.scm121.com/manage/goods/qualitySupplier/detail/" + searchDataObj["supplierId"] + "?showErpList=1"; + var lstRst = JSTHttpResponseBLL.JSTPostResponse(shop, url, JsonHelper.SerializeObject(searchDataObj), referer, appVersion); + for (int i = 0; i < 3 && !lstRst.Contains("\"success\":true"); i++) + { + Thread.Sleep(Randomx.GetId(1000, 2000)); + lstRst = JSTHttpResponseBLL.JSTPostResponse(shop, url, JsonHelper.SerializeObject(searchDataObj), referer, appVersion); + } + return lstRst; + } + + public string GetProdLst(ShopLoginInfo shop, JObject searchDataObj, string supplierId) + { + string url = "https://sc.scm121.com/api/goods/buyer/supplier/goods/skuList"; + string referer = "https://sc.scm121.com/manage/goods/qualitySupplier/detail/" + supplierId + "?showErpList=1"; + var lstRst = JSTHttpResponseBLL.JSTPostResponse(shop, url, JsonHelper.SerializeObject(searchDataObj), referer, appVersion); + for (int i = 0; i < 3 && !lstRst.Contains("\"success\":true"); i++) + { + Thread.Sleep(Randomx.GetId(1000, 2000)); + lstRst = JSTHttpResponseBLL.JSTPostResponse(shop, url, JsonHelper.SerializeObject(searchDataObj), referer, appVersion); + } + return lstRst; + } + + public string GetSkuPriceLst(ShopLoginInfo shop, JObject searchDataObj, string supplierId) + { + string url = "https://sc.scm121.com/api/goods/buyer/supplier/asyncQuerySkuAdditional"; + string referer = "https://sc.scm121.com/manage/goods/qualitySupplier/detail/" + supplierId + "?showErpList=1"; + var lstRst = JSTHttpResponseBLL.JSTPostResponse(shop, url, JsonHelper.SerializeObject(searchDataObj), referer, appVersion); + for (int i = 0; i < 3 && !lstRst.Contains("\"success\":true"); i++) + { + Thread.Sleep(Randomx.GetId(1000, 2000)); + lstRst = JSTHttpResponseBLL.JSTPostResponse(shop, url, JsonHelper.SerializeObject(searchDataObj), referer, appVersion); + } + return lstRst; + } + + public string GetHotLst(ShopLoginInfo shop, JObject searchDataObj) + { + string url = "https://sc.ttdahuo.com/api/goods/freshman/mall/goods/list"; + string referer = "https://sc.ttdahuo.com/findCooperation/newlywedZone"; + var lstRst = JSTHttpResponseBLL.JSTPostResponse(shop, url, JsonHelper.SerializeObject(searchDataObj), referer, appVersion); + for (int i = 0; i < 3 && !lstRst.Contains("\"success\":true"); i++) + { + Thread.Sleep(Randomx.GetId(1000, 2000)); + lstRst = JSTHttpResponseBLL.JSTPostResponse(shop, url, JsonHelper.SerializeObject(searchDataObj), referer, appVersion); + } + return lstRst; + } + + public string Get1688DetailData(ShopLoginInfo shop, _1688OneProductListInfo _1688prod) + { + //string url = "https://detail.1688.com/offer/1024976470101.html?spm=a21vf6.result.0.0.30b812ff1rz1M0&fxcv=2&sk=consign"; + string url = "https://detail.1688.com/offer/" + _1688prod.offerId + ".html?fxcv=2&sk=consign"; + this.cefWebBrowser.Load(url); + //url = "https://detail.1688.com/offer/" + _1688prod.offerId + ".html?spm=a21vf6.result.0.0.30b812fftV88TJ&fxcv=2&sk=consign"; + string referer = ""; + var getDetailRst = _1688HttpResponseBLL._1688GetResponse(shop, url, referer, appVersion); + for (int i = 0; i< 3 && !getDetailRst.Contains("\"success\":true"); i++) + { + Thread.Sleep(Randomx.GetId(1000, 2000)); + getDetailRst = _1688HttpResponseBLL._1688GetResponse(shop, url, referer, appVersion); + } + return getDetailRst; + } + + private void btnSearchTitle_Click(object sender, EventArgs e) + { + pbLoading.Visible = true; + Task.Run(() => + { + foreach (DataGridViewRow row in dgvProduct.Rows) + { + Invoke(new Action(() => + { + + row.Visible = (row.Cells["colGoodsName"].Value.ParseToString().Contains(txtTitle.Text.Trim()) || txtTitle.Text.Trim() == ""); + if (row.Visible == false) + row.Cells["colCheck"].Value = false; + + })); + } + Invoke(new Action(() => + { + pbLoading.Visible = false; + })); + }); + } + + private void btnCancelSelect_Click(object sender, EventArgs e) + { + Task.Run(() => { + + foreach(DataGridViewRow row in dgvProduct.Rows) + { + if (row.Cells["colMsg"].Value.ParseToString().Contains("入库成功") || row.Cells["colMsg"].Value.ParseToString().Contains("已存在相同id商品")) + { + Invoke(new Action(() => + { + row.Cells["colcheck"].Value = false; + })); + } + } + }); + } + + private void txtWaitSeconds_TextChanged(object sender, EventArgs e) + { + getDetailWait = txtWaitSeconds.Text.ParseToInt(); + } + + private void btnExportCookie_Click(object sender, EventArgs e) + { + List cookieList = CEFBrowser.GetCookieList(".scm121.com", cefWebBrowser.GetCookieManager(null)); + var shop = new ShopLoginInfo(); + shop.Cookies = JsonHelper.SerializeObject(cookieList); + + List cooks = null; + try { cooks = JsonHelper.DeserializeJsonToList(shop.Cookies); } catch (Exception ex) { } + if (cooks == null) + cooks = new List(); + + string cookJs = ""; + var keys = new string[] { "acw_tc", "DISTRYBUTION_TOKEN" }; + foreach (var shopCook in cooks) + { + var cookie = shopCook.Name + "=" + shopCook.Value; + if (!keys.Any(k => cookie.StartsWith(k))) + continue; + cookJs += "\r\ndocument.cookie='" + cookie.Substring(0, Math.Max(0, cookie.IndexOf("="))) + "=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;';"; + } + foreach (var shopCook in cooks) + { + var cookie = shopCook.Name + "=" + shopCook.Value; + if (!keys.Any(k => cookie.StartsWith(k))) + continue; + cookJs += "\r\ndocument.cookie='" + cookie + "; domain=.scm121.com; expires=" + + DateTime.Now.AddMonths(1).ToUniversalTime().ToString("ddd, dd MMM yyyy HH:mm:ss 'UTC'", new DateTimeFormatInfo()) + "; path=/';"; + } + cookJs += "\r\nsetTimeout(() => { window.location.href='https://sc.scm121.com/suppliersManage/suppliersList/onlineSuppliers'; }, 200)"; + Clipboard.SetDataObject(cookJs); + BaseMsgForm.ShowInfo("复制成功"); + } + + + private void btnStop_Click(object sender, EventArgs e) + { + if (CancelReturn != null) + CancelReturn.Cancel(); + } + } +} diff --git a/TEMUKJD/ToolForms/Get1688ProductForm.resx b/TEMUKJD/ToolForms/Get1688ProductForm.resx new file mode 100644 index 0000000..4c69ba7 --- /dev/null +++ b/TEMUKJD/ToolForms/Get1688ProductForm.resx @@ -0,0 +1,171 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + \ No newline at end of file diff --git a/TEMUKJD/ToolForms/GetJuShuitanProdForm.Designer.cs b/TEMUKJD/ToolForms/GetJuShuitanProdForm.Designer.cs index d2a6132..5912ac4 100644 --- a/TEMUKJD/ToolForms/GetJuShuitanProdForm.Designer.cs +++ b/TEMUKJD/ToolForms/GetJuShuitanProdForm.Designer.cs @@ -164,7 +164,7 @@ namespace TemuKJD.ToolForms this.splitContainer2.Panel1.Controls.Add(this.btnNext); this.splitContainer2.Panel1.Controls.Add(this.btnPrev); this.splitContainer2.Panel1.Controls.Add(this.txtAddress); - this.splitContainer2.Size = new System.Drawing.Size(1390, 437); + this.splitContainer2.Size = new System.Drawing.Size(1390, 436); this.splitContainer2.SplitterDistance = 26; this.splitContainer2.TabIndex = 6; // @@ -249,7 +249,7 @@ namespace TemuKJD.ToolForms this.dgvProduct.Name = "dgvProduct"; this.dgvProduct.ReadOnly = true; this.dgvProduct.RowTemplate.Height = 23; - this.dgvProduct.Size = new System.Drawing.Size(1390, 436); + this.dgvProduct.Size = new System.Drawing.Size(1390, 437); this.dgvProduct.TabIndex = 7; this.dgvProduct.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dgvProduct_CellContentClick); // @@ -406,7 +406,7 @@ namespace TemuKJD.ToolForms this.splitContainer1.Panel2.Controls.Add(this.label2); this.splitContainer1.Panel2.Controls.Add(this.line1); this.splitContainer1.Size = new System.Drawing.Size(1404, 561); - this.splitContainer1.SplitterDistance = 473; + this.splitContainer1.SplitterDistance = 474; this.splitContainer1.SplitterWidth = 3; this.splitContainer1.TabIndex = 4; // @@ -418,11 +418,12 @@ namespace TemuKJD.ToolForms this.ucTabControlMetro1.Controls.Add(this.tabPage2); this.ucTabControlMetro1.Controls.Add(this.tabPage3); this.ucTabControlMetro1.Dock = System.Windows.Forms.DockStyle.Fill; + this.ucTabControlMetro1.ItemSize = new System.Drawing.Size(72, 24); this.ucTabControlMetro1.Location = new System.Drawing.Point(0, 0); this.ucTabControlMetro1.Name = "ucTabControlMetro1"; this.ucTabControlMetro1.SelectedIndex = 0; this.ucTabControlMetro1.ShowCloseButton = false; - this.ucTabControlMetro1.Size = new System.Drawing.Size(1404, 473); + this.ucTabControlMetro1.Size = new System.Drawing.Size(1404, 474); this.ucTabControlMetro1.TabIndex = 462; this.ucTabControlMetro1.TabSelectColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); this.ucTabControlMetro1.TabSelectTextColor = System.Drawing.Color.Gray; @@ -431,10 +432,10 @@ namespace TemuKJD.ToolForms // tabPage1 // this.tabPage1.Controls.Add(this.splitContainer2); - this.tabPage1.Location = new System.Drawing.Point(4, 26); + this.tabPage1.Location = new System.Drawing.Point(4, 28); this.tabPage1.Name = "tabPage1"; this.tabPage1.Padding = new System.Windows.Forms.Padding(3); - this.tabPage1.Size = new System.Drawing.Size(1396, 443); + this.tabPage1.Size = new System.Drawing.Size(1396, 442); this.tabPage1.TabIndex = 0; this.tabPage1.Text = "商品页面"; this.tabPage1.UseVisualStyleBackColor = true; @@ -446,7 +447,7 @@ namespace TemuKJD.ToolForms this.tabPage2.Location = new System.Drawing.Point(4, 26); this.tabPage2.Name = "tabPage2"; this.tabPage2.Padding = new System.Windows.Forms.Padding(3); - this.tabPage2.Size = new System.Drawing.Size(1396, 442); + this.tabPage2.Size = new System.Drawing.Size(1396, 443); this.tabPage2.TabIndex = 1; this.tabPage2.Text = "采集列表"; this.tabPage2.UseVisualStyleBackColor = true; @@ -1377,6 +1378,7 @@ namespace TemuKJD.ToolForms this.ClientSize = new System.Drawing.Size(1404, 561); this.Controls.Add(this.splitContainer1); this.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.KeyPreview = true; this.Name = "GetJuShuitanProdForm"; this.Text = "获取厂商产品"; this.Load += new System.EventHandler(this.GetJuShuitanProdForm_Load); diff --git a/TEMUKJD/ToolForms/GetJuShuitanProdForm.cs b/TEMUKJD/ToolForms/GetJuShuitanProdForm.cs index b020fd7..1a13417 100644 --- a/TEMUKJD/ToolForms/GetJuShuitanProdForm.cs +++ b/TEMUKJD/ToolForms/GetJuShuitanProdForm.cs @@ -1016,7 +1016,8 @@ namespace TemuKJD.ToolForms List rowLst = new List(); rowLst.AddRange(dgvProduct.Rows.Cast().Where(r => r.Cells["colCheck"].Value.ParseToBool() == true)); - //if (cancellationTokenSource == null || cancellationTokenSource.IsCancellationRequested) + if (cancellationTokenSource != null) + cancellationTokenSource.Cancel(); cancellationTokenSource = new CancellationTokenSource(); Task.Run(() => { @@ -1057,11 +1058,9 @@ namespace TemuKJD.ToolForms html = GetHtml.PostUtf8(existUrl, existData); if (string.IsNullOrEmpty(html) || !html.Contains("\"code\":200")) { - //Invoke(new Action(() => - //{ - // row.Cells["colMsg"].Value = "采集详情失败,产品数据库连接失败"; - //})); - //continue; + prod.getProductMsg = "采集详情失败,产品数据库连接失败"; + try { row.Cells["colMsg"].Value = prod.getProductMsg; } catch { } + continue; } else { @@ -1076,7 +1075,7 @@ namespace TemuKJD.ToolForms } } Thread.Sleep(Randomx.GetId(500, 1500)); - // 休眠 + // 额外休眠 Thread.Sleep(getDetailWait * 1000); // 爆款专区查询真实供应商coid和供应商退货地址 diff --git a/TEMUKJD/ToolForms/GetJuShuitanProductSKUListForm.Designer.cs b/TEMUKJD/ToolForms/GetJuShuitanProductSKUListForm.Designer.cs index 2867c0f..e49307f 100644 --- a/TEMUKJD/ToolForms/GetJuShuitanProductSKUListForm.Designer.cs +++ b/TEMUKJD/ToolForms/GetJuShuitanProductSKUListForm.Designer.cs @@ -32,14 +32,14 @@ namespace TemuKJD.ToolForms this.components = new System.ComponentModel.Container(); System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = new System.Windows.Forms.DataGridViewCellStyle(); System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle2 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle3 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle4 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle5 = new System.Windows.Forms.DataGridViewCellStyle(); System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle6 = new System.Windows.Forms.DataGridViewCellStyle(); System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle7 = new System.Windows.Forms.DataGridViewCellStyle(); System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle8 = new System.Windows.Forms.DataGridViewCellStyle(); System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle9 = new System.Windows.Forms.DataGridViewCellStyle(); System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle10 = new System.Windows.Forms.DataGridViewCellStyle(); - System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle3 = new System.Windows.Forms.DataGridViewCellStyle(); - System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle4 = new System.Windows.Forms.DataGridViewCellStyle(); - System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle5 = new System.Windows.Forms.DataGridViewCellStyle(); this.line1 = new DevComponents.DotNetBar.Controls.Line(); this.label2 = new System.Windows.Forms.Label(); this.btnImportCookie = new DevComponents.DotNetBar.PanelEx(); @@ -77,6 +77,19 @@ namespace TemuKJD.ToolForms this.tabPage2 = new System.Windows.Forms.TabPage(); this.pbLoading = new System.Windows.Forms.PictureBox(); this.dgvProduct = new TemuKJD.UserComponent.DataGridViewEx(); + this.colCheck = new System.Windows.Forms.DataGridViewCheckBoxColumn(); + this.colCoId = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colSupplierName = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colProductId = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colGoodsName = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colImgUrl = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colImg = new System.Windows.Forms.DataGridViewImageColumn(); + this.colSkuId = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colSkuName = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colPrice = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colStock = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colDel = new System.Windows.Forms.DataGridViewLinkColumn(); + this.colMsg = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.tabPage3 = new System.Windows.Forms.TabPage(); this.splitContainer3 = new System.Windows.Forms.SplitContainer(); this.ucSplitPage1 = new TemuKJD.UserControls.UcSplitPage(); @@ -107,19 +120,6 @@ namespace TemuKJD.ToolForms this.colDownDrpItemStatus = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.dataGridViewLinkColumn1 = new System.Windows.Forms.DataGridViewLinkColumn(); this.dataGridViewTextBoxColumn8 = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.colCheck = new System.Windows.Forms.DataGridViewCheckBoxColumn(); - this.colCoId = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.colSupplierName = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.colProductId = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.colGoodsName = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.colImgUrl = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.colImg = new System.Windows.Forms.DataGridViewImageColumn(); - this.colSkuId = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.colSkuName = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.colPrice = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.colStock = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.colDel = new System.Windows.Forms.DataGridViewLinkColumn(); - this.colMsg = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.pnlMultiLogin.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit(); this.splitContainer1.Panel1.SuspendLayout(); @@ -626,7 +626,7 @@ namespace TemuKJD.ToolForms this.splitContainer1.Panel2.Controls.Add(this.label2); this.splitContainer1.Panel2.Controls.Add(this.line1); this.splitContainer1.Size = new System.Drawing.Size(1404, 561); - this.splitContainer1.SplitterDistance = 470; + this.splitContainer1.SplitterDistance = 471; this.splitContainer1.SplitterWidth = 3; this.splitContainer1.TabIndex = 4; // @@ -638,11 +638,12 @@ namespace TemuKJD.ToolForms this.ucTabControlMetro1.Controls.Add(this.tabPage2); this.ucTabControlMetro1.Controls.Add(this.tabPage3); this.ucTabControlMetro1.Dock = System.Windows.Forms.DockStyle.Fill; + this.ucTabControlMetro1.ItemSize = new System.Drawing.Size(72, 24); this.ucTabControlMetro1.Location = new System.Drawing.Point(0, 0); this.ucTabControlMetro1.Name = "ucTabControlMetro1"; this.ucTabControlMetro1.SelectedIndex = 0; this.ucTabControlMetro1.ShowCloseButton = false; - this.ucTabControlMetro1.Size = new System.Drawing.Size(1404, 470); + this.ucTabControlMetro1.Size = new System.Drawing.Size(1404, 471); this.ucTabControlMetro1.TabIndex = 462; this.ucTabControlMetro1.TabSelectColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); this.ucTabControlMetro1.TabSelectTextColor = System.Drawing.Color.Gray; @@ -651,10 +652,10 @@ namespace TemuKJD.ToolForms // tabPage1 // this.tabPage1.Controls.Add(this.splitContainer2); - this.tabPage1.Location = new System.Drawing.Point(4, 26); + this.tabPage1.Location = new System.Drawing.Point(4, 28); this.tabPage1.Name = "tabPage1"; this.tabPage1.Padding = new System.Windows.Forms.Padding(3); - this.tabPage1.Size = new System.Drawing.Size(1396, 440); + this.tabPage1.Size = new System.Drawing.Size(1396, 439); this.tabPage1.TabIndex = 0; this.tabPage1.Text = "商品页面"; this.tabPage1.UseVisualStyleBackColor = true; @@ -673,7 +674,7 @@ namespace TemuKJD.ToolForms this.splitContainer2.Panel1.Controls.Add(this.btnNext); this.splitContainer2.Panel1.Controls.Add(this.btnPrev); this.splitContainer2.Panel1.Controls.Add(this.txtAddress); - this.splitContainer2.Size = new System.Drawing.Size(1390, 434); + this.splitContainer2.Size = new System.Drawing.Size(1390, 433); this.splitContainer2.SplitterDistance = 26; this.splitContainer2.TabIndex = 6; // @@ -774,13 +775,115 @@ namespace TemuKJD.ToolForms this.dgvProduct.TabIndex = 7; this.dgvProduct.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dgvProduct_CellContentClick); // + // colCheck + // + this.colCheck.FillWeight = 26F; + this.colCheck.HeaderText = "选"; + this.colCheck.Name = "colCheck"; + this.colCheck.ReadOnly = true; + this.colCheck.Resizable = System.Windows.Forms.DataGridViewTriState.True; + this.colCheck.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; + // + // colCoId + // + this.colCoId.FillWeight = 50F; + this.colCoId.HeaderText = "供应商Id"; + this.colCoId.Name = "colCoId"; + this.colCoId.ReadOnly = true; + // + // colSupplierName + // + this.colSupplierName.FillWeight = 90F; + this.colSupplierName.HeaderText = "供应商名称"; + this.colSupplierName.Name = "colSupplierName"; + this.colSupplierName.ReadOnly = true; + // + // colProductId + // + this.colProductId.FillWeight = 50F; + this.colProductId.HeaderText = "商品Id"; + this.colProductId.Name = "colProductId"; + this.colProductId.ReadOnly = true; + // + // colGoodsName + // + dataGridViewCellStyle3.WrapMode = System.Windows.Forms.DataGridViewTriState.True; + this.colGoodsName.DefaultCellStyle = dataGridViewCellStyle3; + this.colGoodsName.HeaderText = "商品名称"; + this.colGoodsName.Name = "colGoodsName"; + this.colGoodsName.ReadOnly = true; + // + // colImgUrl + // + this.colImgUrl.FillWeight = 300F; + this.colImgUrl.HeaderText = "图片路径"; + this.colImgUrl.Name = "colImgUrl"; + this.colImgUrl.ReadOnly = true; + this.colImgUrl.Visible = false; + // + // colImg + // + this.colImg.FillWeight = 40F; + this.colImg.HeaderText = "图片"; + this.colImg.ImageLayout = System.Windows.Forms.DataGridViewImageCellLayout.Zoom; + this.colImg.Name = "colImg"; + this.colImg.ReadOnly = true; + this.colImg.Resizable = System.Windows.Forms.DataGridViewTriState.True; + this.colImg.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; + // + // colSkuId + // + this.colSkuId.FillWeight = 50F; + this.colSkuId.HeaderText = "SkuId"; + this.colSkuId.Name = "colSkuId"; + this.colSkuId.ReadOnly = true; + // + // colSkuName + // + this.colSkuName.FillWeight = 50F; + this.colSkuName.HeaderText = "Sku名称"; + this.colSkuName.Name = "colSkuName"; + this.colSkuName.ReadOnly = true; + // + // colPrice + // + dataGridViewCellStyle4.WrapMode = System.Windows.Forms.DataGridViewTriState.True; + this.colPrice.DefaultCellStyle = dataGridViewCellStyle4; + this.colPrice.FillWeight = 70F; + this.colPrice.HeaderText = "供货价"; + this.colPrice.Name = "colPrice"; + this.colPrice.ReadOnly = true; + // + // colStock + // + this.colStock.FillWeight = 50F; + this.colStock.HeaderText = "库存"; + this.colStock.Name = "colStock"; + this.colStock.ReadOnly = true; + // + // colDel + // + this.colDel.FillWeight = 35F; + this.colDel.HeaderText = "删除"; + this.colDel.Name = "colDel"; + this.colDel.ReadOnly = true; + // + // colMsg + // + dataGridViewCellStyle5.WrapMode = System.Windows.Forms.DataGridViewTriState.True; + this.colMsg.DefaultCellStyle = dataGridViewCellStyle5; + this.colMsg.FillWeight = 190F; + this.colMsg.HeaderText = "操作结果"; + this.colMsg.Name = "colMsg"; + this.colMsg.ReadOnly = true; + // // tabPage3 // this.tabPage3.Controls.Add(this.splitContainer3); this.tabPage3.Location = new System.Drawing.Point(4, 26); this.tabPage3.Name = "tabPage3"; this.tabPage3.Padding = new System.Windows.Forms.Padding(3); - this.tabPage3.Size = new System.Drawing.Size(1396, 439); + this.tabPage3.Size = new System.Drawing.Size(1396, 440); this.tabPage3.TabIndex = 2; this.tabPage3.Text = "聚水潭Sku回传"; this.tabPage3.UseVisualStyleBackColor = true; @@ -812,7 +915,7 @@ namespace TemuKJD.ToolForms // this.splitContainer3.Panel2.Controls.Add(this.pictureBox1); this.splitContainer3.Panel2.Controls.Add(this.dgvDownSku); - this.splitContainer3.Size = new System.Drawing.Size(1390, 433); + this.splitContainer3.Size = new System.Drawing.Size(1390, 434); this.splitContainer3.SplitterDistance = 82; this.splitContainer3.TabIndex = 1; // @@ -955,7 +1058,7 @@ namespace TemuKJD.ToolForms // this.pictureBox1.Anchor = System.Windows.Forms.AnchorStyles.None; this.pictureBox1.Image = global::TemuKJD.Properties.Resources.loading_blue; - this.pictureBox1.Location = new System.Drawing.Point(670, 148); + this.pictureBox1.Location = new System.Drawing.Point(670, 149); this.pictureBox1.Name = "pictureBox1"; this.pictureBox1.Size = new System.Drawing.Size(50, 50); this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; @@ -1003,7 +1106,7 @@ namespace TemuKJD.ToolForms this.dgvDownSku.Name = "dgvDownSku"; this.dgvDownSku.ReadOnly = true; this.dgvDownSku.RowTemplate.Height = 23; - this.dgvDownSku.Size = new System.Drawing.Size(1390, 347); + this.dgvDownSku.Size = new System.Drawing.Size(1390, 348); this.dgvDownSku.TabIndex = 8; // // colDownSelect @@ -1122,114 +1225,13 @@ namespace TemuKJD.ToolForms this.dataGridViewTextBoxColumn8.Name = "dataGridViewTextBoxColumn8"; this.dataGridViewTextBoxColumn8.ReadOnly = true; // - // colCheck - // - this.colCheck.FillWeight = 26F; - this.colCheck.HeaderText = "选"; - this.colCheck.Name = "colCheck"; - this.colCheck.ReadOnly = true; - this.colCheck.Resizable = System.Windows.Forms.DataGridViewTriState.True; - this.colCheck.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; - // - // colCoId - // - this.colCoId.FillWeight = 50F; - this.colCoId.HeaderText = "供应商Id"; - this.colCoId.Name = "colCoId"; - this.colCoId.ReadOnly = true; - // - // colSupplierName - // - this.colSupplierName.FillWeight = 90F; - this.colSupplierName.HeaderText = "供应商名称"; - this.colSupplierName.Name = "colSupplierName"; - this.colSupplierName.ReadOnly = true; - // - // colProductId - // - this.colProductId.FillWeight = 50F; - this.colProductId.HeaderText = "商品Id"; - this.colProductId.Name = "colProductId"; - this.colProductId.ReadOnly = true; - // - // colGoodsName - // - dataGridViewCellStyle3.WrapMode = System.Windows.Forms.DataGridViewTriState.True; - this.colGoodsName.DefaultCellStyle = dataGridViewCellStyle3; - this.colGoodsName.HeaderText = "商品名称"; - this.colGoodsName.Name = "colGoodsName"; - this.colGoodsName.ReadOnly = true; - // - // colImgUrl - // - this.colImgUrl.FillWeight = 300F; - this.colImgUrl.HeaderText = "图片路径"; - this.colImgUrl.Name = "colImgUrl"; - this.colImgUrl.ReadOnly = true; - this.colImgUrl.Visible = false; - // - // colImg - // - this.colImg.FillWeight = 40F; - this.colImg.HeaderText = "图片"; - this.colImg.ImageLayout = System.Windows.Forms.DataGridViewImageCellLayout.Zoom; - this.colImg.Name = "colImg"; - this.colImg.ReadOnly = true; - this.colImg.Resizable = System.Windows.Forms.DataGridViewTriState.True; - this.colImg.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; - // - // colSkuId - // - this.colSkuId.FillWeight = 50F; - this.colSkuId.HeaderText = "SkuId"; - this.colSkuId.Name = "colSkuId"; - this.colSkuId.ReadOnly = true; - // - // colSkuName - // - this.colSkuName.FillWeight = 50F; - this.colSkuName.HeaderText = "Sku名称"; - this.colSkuName.Name = "colSkuName"; - this.colSkuName.ReadOnly = true; - // - // colPrice - // - dataGridViewCellStyle4.WrapMode = System.Windows.Forms.DataGridViewTriState.True; - this.colPrice.DefaultCellStyle = dataGridViewCellStyle4; - this.colPrice.FillWeight = 70F; - this.colPrice.HeaderText = "供货价"; - this.colPrice.Name = "colPrice"; - this.colPrice.ReadOnly = true; - // - // colStock - // - this.colStock.FillWeight = 50F; - this.colStock.HeaderText = "库存"; - this.colStock.Name = "colStock"; - this.colStock.ReadOnly = true; - // - // colDel - // - this.colDel.FillWeight = 35F; - this.colDel.HeaderText = "删除"; - this.colDel.Name = "colDel"; - this.colDel.ReadOnly = true; - // - // colMsg - // - dataGridViewCellStyle5.WrapMode = System.Windows.Forms.DataGridViewTriState.True; - this.colMsg.DefaultCellStyle = dataGridViewCellStyle5; - this.colMsg.FillWeight = 190F; - this.colMsg.HeaderText = "操作结果"; - this.colMsg.Name = "colMsg"; - this.colMsg.ReadOnly = true; - // // GetJuShuitanProductSKUListForm // this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; this.ClientSize = new System.Drawing.Size(1404, 561); this.Controls.Add(this.splitContainer1); this.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.KeyPreview = true; this.Name = "GetJuShuitanProductSKUListForm"; this.Text = "获取厂商Sku列表"; this.Load += new System.EventHandler(this.GetJuShuitanProdForm_Load); diff --git a/TEMUKJD/ToolForms/WebForm.Designer.cs b/TEMUKJD/ToolForms/WebForm.Designer.cs new file mode 100644 index 0000000..72c1a82 --- /dev/null +++ b/TEMUKJD/ToolForms/WebForm.Designer.cs @@ -0,0 +1,193 @@ +namespace TemuKJD.ToolForms +{ + partial class WebForm + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(WebForm)); + this.splitContainer1 = new System.Windows.Forms.SplitContainer(); + this.splitContainer2 = new System.Windows.Forms.SplitContainer(); + this.btnGo = new System.Windows.Forms.Button(); + this.btnNext = new System.Windows.Forms.Button(); + this.btnPrev = new System.Windows.Forms.Button(); + this.txtAddress = new System.Windows.Forms.TextBox(); + this.splitContainer3 = new System.Windows.Forms.SplitContainer(); + ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit(); + this.splitContainer1.SuspendLayout(); + ((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.SuspendLayout(); + this.SuspendLayout(); + // + // splitContainer1 + // + this.splitContainer1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(224)))), ((int)(((byte)(224)))), ((int)(((byte)(224))))); + this.splitContainer1.Dock = System.Windows.Forms.DockStyle.Fill; + this.splitContainer1.FixedPanel = System.Windows.Forms.FixedPanel.Panel2; + this.splitContainer1.Location = new System.Drawing.Point(0, 0); + this.splitContainer1.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); + this.splitContainer1.Name = "splitContainer1"; + // + // splitContainer1.Panel2 + // + this.splitContainer1.Panel2.BackColor = System.Drawing.Color.White; + this.splitContainer1.Panel2MinSize = 1; + this.splitContainer1.Size = new System.Drawing.Size(1438, 692); + this.splitContainer1.SplitterDistance = 1410; + this.splitContainer1.SplitterWidth = 3; + this.splitContainer1.TabIndex = 4; + // + // 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"; + this.splitContainer2.Orientation = System.Windows.Forms.Orientation.Horizontal; + // + // splitContainer2.Panel1 + // + this.splitContainer2.Panel1.Controls.Add(this.btnGo); + this.splitContainer2.Panel1.Controls.Add(this.btnNext); + this.splitContainer2.Panel1.Controls.Add(this.btnPrev); + this.splitContainer2.Panel1.Controls.Add(this.txtAddress); + // + // splitContainer2.Panel2 + // + this.splitContainer2.Panel2.Controls.Add(this.splitContainer3); + this.splitContainer2.Size = new System.Drawing.Size(1438, 766); + this.splitContainer2.SplitterDistance = 26; + this.splitContainer2.TabIndex = 5; + // + // btnGo + // + this.btnGo.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.btnGo.Location = new System.Drawing.Point(1387, 3); + this.btnGo.Name = "btnGo"; + this.btnGo.Size = new System.Drawing.Size(48, 23); + this.btnGo.TabIndex = 10; + this.btnGo.Text = "跳转"; + this.btnGo.UseVisualStyleBackColor = true; + this.btnGo.Click += new System.EventHandler(this.btnGo_Click); + // + // btnNext + // + this.btnNext.Location = new System.Drawing.Point(35, 3); + this.btnNext.Name = "btnNext"; + this.btnNext.Size = new System.Drawing.Size(32, 23); + this.btnNext.TabIndex = 9; + this.btnNext.Text = "→"; + this.btnNext.UseVisualStyleBackColor = true; + this.btnNext.Click += new System.EventHandler(this.btnNext_Click); + // + // btnPrev + // + this.btnPrev.Location = new System.Drawing.Point(3, 3); + this.btnPrev.Name = "btnPrev"; + this.btnPrev.Size = new System.Drawing.Size(32, 23); + this.btnPrev.TabIndex = 8; + this.btnPrev.Text = "←"; + this.btnPrev.UseVisualStyleBackColor = true; + this.btnPrev.Click += new System.EventHandler(this.btnPrev_Click); + // + // txtAddress + // + this.txtAddress.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.txtAddress.Location = new System.Drawing.Point(68, 3); + this.txtAddress.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); + this.txtAddress.Name = "txtAddress"; + this.txtAddress.Size = new System.Drawing.Size(1317, 23); + this.txtAddress.TabIndex = 7; + this.txtAddress.KeyDown += new System.Windows.Forms.KeyEventHandler(this.txtAddress_KeyDown); + // + // splitContainer3 + // + this.splitContainer3.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(224)))), ((int)(((byte)(224)))), ((int)(((byte)(224))))); + this.splitContainer3.Dock = System.Windows.Forms.DockStyle.Fill; + this.splitContainer3.FixedPanel = System.Windows.Forms.FixedPanel.Panel2; + 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.splitContainer1); + // + // splitContainer3.Panel2 + // + this.splitContainer3.Panel2.BackColor = System.Drawing.Color.White; + this.splitContainer3.Size = new System.Drawing.Size(1438, 736); + this.splitContainer3.SplitterDistance = 692; + this.splitContainer3.TabIndex = 5; + // + // WebForm + // + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; + this.ClientSize = new System.Drawing.Size(1440, 800); + 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.KeyPreview = true; + this.Name = "WebForm"; + this.ShowMaximizeBox = true; + this.Text = "店铺登录"; + this.TitleText = "店铺登录"; + this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.WebForm_FormClosing); + this.FormClosed += new System.Windows.Forms.FormClosedEventHandler(this.ShopLoginForm_FormClosed); + this.Load += new System.EventHandler(this.ShopLoginForm_Load); + this.Controls.SetChildIndex(this.splitContainer2, 0); + ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).EndInit(); + this.splitContainer1.ResumeLayout(false); + this.splitContainer2.Panel1.ResumeLayout(false); + this.splitContainer2.Panel1.PerformLayout(); + this.splitContainer2.Panel2.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.splitContainer2)).EndInit(); + this.splitContainer2.ResumeLayout(false); + this.splitContainer3.Panel1.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.splitContainer3)).EndInit(); + this.splitContainer3.ResumeLayout(false); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.SplitContainer splitContainer1; + private System.Windows.Forms.SplitContainer splitContainer2; + private System.Windows.Forms.TextBox txtAddress; + private System.Windows.Forms.Button btnNext; + private System.Windows.Forms.Button btnPrev; + private System.Windows.Forms.SplitContainer splitContainer3; + private System.Windows.Forms.Button btnGo; + } +} \ No newline at end of file diff --git a/TEMUKJD/ToolForms/WebForm.cs b/TEMUKJD/ToolForms/WebForm.cs new file mode 100644 index 0000000..46828da --- /dev/null +++ b/TEMUKJD/ToolForms/WebForm.cs @@ -0,0 +1,300 @@ +using AllBase; +using AllBase.Helper; +using AllBase.Model.Result; +using CefSharp; +using CefSharp.WinForms; +//using TemuKJD.DashBoardForms; +using TemuKJD.Helper; +using TemuKJD.BaseForms; +using Microsoft.Win32; +using NaiBa.CefHelper; +using NaiBa.CefHelper.Handler; +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.Linq; +using System.Text; +using System.Threading; +using System.Threading.Tasks; +//using System.Web.Hosting; +using System.Windows.Forms; +using Work; +using Work.BLL.Tools; +using TemuKJD.BLL; +using AllBase.Model.Result.PDDResult; +using NaiBa.Util; + +namespace TemuKJD.ToolForms +{ + public partial class WebForm : BaseGeneralForm + { + public int CloseAfterSecond { get; set; } + public ChromiumWebBrowser cefWebBrowser = null; + public ShopLoginInfo cookieShop = null; + public string InitUrl = "about:blank"; + private string currentUrl = ""; + public static WebForm instance = null; + + public WebForm(ShopLoginInfo shopInfo, string url) + { + InitializeComponent(); + + instance = this; + this.cookieShop = shopInfo; + if (!string.IsNullOrEmpty(url)) + InitUrl = url; + } + + private void ShopLoginForm_Load(object sender, EventArgs e) + { + this.Size = new Size(1680, 900); + this.CenterToScreen(); + + this.splitContainer3.SplitterDistance = this.splitContainer3.Height - 62; + this.splitContainer1.SplitterDistance = this.splitContainer1.Width - 5; + + if (CloseAfterSecond > 0) + { + Task.Run(() => + { + Thread.Sleep(1000 * CloseAfterSecond); + if (this.Created) + { + Invoke(new Action(() => { this.Close(); })); + } + }); + } + + initCefAndMainShop(); + } + + /// + /// 初始化CEF并登录主店铺 + /// + public void initCefAndMainShop() + { + if (cookieShop == null || cookieShop.Cookies == null) + return; + + if (cefWebBrowser == null) + { + cefWebBrowser = CEFBrowser.CreateChromiumWebBrowser(InitUrl, false); + CustomResourceRequestHandlerLocal resourceRequestHandler = new CustomResourceRequestHandlerLocal(); + resourceRequestHandler.ResourceLoadCompleteEvent += RequestHandler_ResourceLoadComplete; + resourceRequestHandler.BeforeResourceLoadEvent += RequestHandler_BeforeResourceLoad; + cefWebBrowser.RequestHandler = new CustomRequestHandler(resourceRequestHandler); + var lifeSapnHandler = new LifeSpanHandlerLocal(PopWindowType.SelfWindow); + cefWebBrowser.LifeSpanHandler = lifeSapnHandler; + cefWebBrowser.KeyboardHandler = new KeyboardHandler(); + cefWebBrowser.FrameLoadEnd += CefWebBrowser_FrameLoadEnd; + cefWebBrowser.AddressChanged += CefWebBrowser_AddressChanged; + cefWebBrowser.LoadError += CefWebBrowser_LoadError; + cefWebBrowser.Dock = DockStyle.Fill; + + //js绑定C#对象 + WebFormObj webObj = new WebFormObj(); + webObj.OnInfoReceived += ShopObj_OnInfoReceived; + CefSharpSettings.WcfEnabled = true; + cefWebBrowser.JavascriptObjectRepository.Register( + name: "webObj", + objectToBind: webObj, + isAsync: false, + options: new BindingOptions { Binder = BindingOptions.DefaultBinder.Binder /*CamelCaseJavascriptNames = false*/ /*cef79*/ } + ); + + List cookieLst = new List(); + try + { + if (cookieShop != null) + { + cookieLst = JsonHelper.DeserializeJsonToList(cookieShop.Cookies.ParseToString()); + if (cookieLst == null) + cookieLst = new List(); + } + } + catch + { + } + + Task.Run(() => + { + Invoke(new Action(() => + { + splitContainer1.Panel1.Controls.Add(cefWebBrowser); + })); + // cef138必须init后方可设置或删除cookie + while (!cefWebBrowser.IsBrowserInitialized || !cefWebBrowser.GetBrowser().MainFrame.IsValid) + Thread.Sleep(20); + CEFBrowser.DeleteCookie(cefWebBrowser.GetCookieManager(null)); + + //cef 138 如果没有设置RequestContext 可能为空,直接getCookieManager + //异步设置cookie + //var t = CEFBrowser.SetCookieAsync(JsonHelper.SerializeObject(cookieLst), cefWebBrowser.GetCookieManager(null)); + string address = InitUrl; + foreach (var cook in cookieLst) + { + // 同步设置cookie + cefWebBrowser.GetCookieManager(null).SetCookie(address, cook); + //var t = CEFBrowser.SetCookieAsync(cook.Domain, cook.Name + "=" + cook.Value + ";", cefWebBrowser.GetCookieManager(null)); + //t.Wait(5000); + } + cefWebBrowser.Load(InitUrl); + }); + } + else + cefWebBrowser.Load(InitUrl); + } + + public void ClickWangwang() + { + + var host = cefWebBrowser.GetBrowser().GetHost(); + + int x1 = 520; + int y1 = 520; + var rx = -15 + Randomx.GetId(31); + var ry = -15 + Randomx.GetId(31); + // 随机按下点的位置,提高仿真性 + int x = x1 + rx; + int y = y1 + ry; + + // 按下鼠标左键 + host.SendMouseClickEvent(x, y, MouseButtonType.Left, false, 1, CefEventFlags.None); + Thread.Sleep(100 + Randomx.GetId(200)); + host.SendMouseClickEvent(x, y, MouseButtonType.Left, true, 1, CefEventFlags.None); + + string jsStr = @"var aLst = document.getElementsByTagName('a'); + for (i=0; i= 0) + aLst[i].click(); + if (aLst[i].innerHTML.indexOf('6000000001299-2-tps-134-28.png') >= 0) + aLst[i].click(); + }"; + for (int i = 0; i < 10; i++) + { + jsStr = @"function clickFunc() { + var aLst = document.getElementsByTagName('span'); + for (i=0; i= 0) { + aLst[i].parentElement.click(); + return true; + } + } + } + clickFunc();"; + // + var brow = cefWebBrowser.GetBrowser(); + var response = cefWebBrowser.GetBrowser().MainFrame.EvaluateScriptAsync(jsStr); + response.Wait(5000); + if (response.Result.Result.ParseToBool()) + break; + Thread.Sleep(Randomx.GetId(250, 750)); + } + } + + private void ShopObj_OnInfoReceived(string information) + { + //BaseMsgForm.ShowInfo(information); + if (!string.IsNullOrEmpty(information)) + cefWebBrowser.GetBrowser().MainFrame.EvaluateScriptAsync("alert('" + information + "');"); + } + + private void CefWebBrowser_LoadError(object sender, CefSharp.LoadErrorEventArgs e) + { + } + + private void CefWebBrowser_AddressChanged(object sender, CefSharp.AddressChangedEventArgs e) + { + if (this.Created && !this.Disposing && !this.IsDisposed) + { + Invoke(new Action(() => + { + currentUrl = e.Address; + txtAddress.Text = e.Address; + })); + } + } + + private void CefWebBrowser_FrameLoadEnd(object sender, CefSharp.FrameLoadEndEventArgs e) + { + //js绑定C#对象 html页面内声明绑定的C#对象 + StringBuilder sb = new StringBuilder(); + sb.Append("(function(){"); + sb.Append("CefSharp.BindObjectAsync('webObj');"); + sb.Append("})();"); + cefWebBrowser.GetBrowser().MainFrame.EvaluateScriptAsync(sb.ToString()); + } + + public string offerLoginId = ""; + //public Func BeforeResourceLoadEvent; // sender, requestUrl, postData, request, true(表示取消执行) + private bool RequestHandler_BeforeResourceLoad(object sender, string url, string postData, IRequest request) + { + if (url.StartsWith("https://detail.1688.com/hh.gif")) + { + Task.Run(() => + { + offerLoginId = BaseRegex.GetStringJson(ref postData, "offerLoginId"); + Thread.Sleep(500); + //this.Load + }); + } + + return false; + } + + private void RequestHandler_ResourceLoadComplete(object sender, string url, string postData, string responseData, IRequest request) + { + } + + private void ShopLoginForm_FormClosed(object sender, FormClosedEventArgs e) + { + //OnSaveComplete(shop); + Task.Run(() => { + Thread.Sleep(500); + if (!this.Disposing && !this.IsDisposed) + { + MainForm.instance.Invoke(new Action(() => { this.Dispose(); })); + } + }); + } + + private void txtAddress_KeyDown(object sender, KeyEventArgs e) + { + if (e.KeyCode == Keys.Enter) + { + if (cefWebBrowser != null) + { + cefWebBrowser.Load(txtAddress.Text); + } + } + } + + private void btnPrev_Click(object sender, EventArgs e) + { + cefWebBrowser.Back(); + } + + private void btnNext_Click(object sender, EventArgs e) + { + cefWebBrowser.Forward(); + } + + private void btnGo_Click(object sender, EventArgs e) + { + if (cefWebBrowser != null) + { + cefWebBrowser.Load(txtAddress.Text); + } + } + + private void WebForm_FormClosing(object sender, FormClosingEventArgs e) + { + e.Cancel = true; + Hide(); + } + } +} diff --git a/TEMUKJD/ToolForms/WebForm.resx b/TEMUKJD/ToolForms/WebForm.resx new file mode 100644 index 0000000..c963c3c --- /dev/null +++ b/TEMUKJD/ToolForms/WebForm.resx @@ -0,0 +1,298 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + AAABAAEAgIAQYAAAAABoKAAAFgAAACgAAACAAAAAAAEAAAEABAAAAAAAACgAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAACAAACAAAAAgIAAgAAAAIAAgACAgAAAgICAAMDAwAAAAP8AAP8AAAD//wD/AAAA/wD/AP// + AAD///8AAAAAAAAAAAAAAAAABEZmbMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMZmZkQAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAZszMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM + zMxmAAAAAAAAAAAAAAAAAAAAAAAAAAAEbMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM + zMzMzMzMzMZAAAAAAAAAAAAAAAAAAAAAAAAEbMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM + zMzMzMzMzMzMzMzMxkAAAAAAAAAAAAAAAAAAAAAEbMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM + zMzMzMzMzMzMzMzMzMzMzMzGQAAAAAAAAAAAAAAAAAAAbMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM + zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMYAAAAAAAAAAAAAAAAARszMzMzMzMzMzMzMzMzMzMzMzMzMzMzM + zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMZAAAAAAAAAAAAAAABszMzMzMzMzMzMzMzMzMzMzMzMzM + zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMxgAAAAAAAAAAAAAGzMzMzMzMzMzMzMzMzMzMzM + zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMxgAAAAAAAAAAAAbMzMzMzMzMzMzMzMzM + zMzMzMzMzMx3d4iIiIiIiIh3fMzMzMzMzMzMzMzMzMzMzMzMzMzMzMxgAAAAAAAAAABszMzMzMzMzMzM + zMzMzMzMzMzHeIiIiIj/////////iIiIiId8zMzMzMzMzMzMzMzMzMzMzMzMxgAAAAAAAAAGzMzMzMzM + zMzMzMzMzMzMzMeIiI/////////////////////4iIh8zMzMzMzMzMzMzMzMzMzMzMxgAAAAAAAATMzM + zMzMzMzMzMzMzMzMzHiI////////////////////////////iIfMzMzMzMzMzMzMzMzMzMzMxAAAAAAA + AGzMzMzMzMzMzMzMzMzMx3iP///////////////////////////////4iHzMzMzMzMzMzMzMzMzMzMYA + AAAAAAbMzMzMzMzMzMzMzMzMx3iP//////////////////////////////////+IfMzMzMzMzMzMzMzM + zMzMYAAAAABMzMzMzMzMzMzMzMzMx3iP/////////////////////////////////////4h8zMzMzMzM + zMzMzMzMzMQAAAAAbMzMzMzMzMzMzMzMzHiP////////////////////////////////////////h3zM + zMzMzMzMzMzMzMzGAAAABMzMzMzMzMzMzMzMzHiP//////////////////////////////////////// + //iHzMzMzMzMzMzMzMzMzEAAAAbMzMzMzMzMzMzMzMeI//////////////////////////////////// + ////////+IfMzMzMzMzMzMzMzMxgAABMzMzMzMzMzMzMzMx4//////////////////////////////// + //////////////+IfMzMzMzMzMzMzMzMxAAAbMzMzMzMzMzMzMzHj/////////////////////////// + /////////////////////4fMzMzMzMzMzMzMzMYAAMzMzMzMzMzMzMzMeP////////////////////// + ///////////////////////////4fMzMzMzMzMzMzMzMAAbMzMzMzMzMzMzMx4////////////////// + /////////////////////////////////4fMzMzMzMzMzMzMzGAGzMzMzMzMzMzMzHj///////////// + ///////////////////////////////////////4fMzMzMzMzMzMzMxgDMzMzMzMzMzMzMyI//////// + /////////////////////////////////////////////4zMzMzMzMzMzMzMwEzMzMzMzMzMzMzHj/// + //////////////////////////////////////////////////+HzMzMzMzMzMzMzMRszMzMzMzMzMzM + eP//////////////////////////////////////////////////////+HzMzMzMzMzMzMzGbMzMzMzM + zMzMzHj///////////////////////////////////////////////////////+MzMzMzMzMzMzMxmzM + zMzMzMzMzMyP////+IiP////////////////////////////////////////+I//////h8zMzMzMzMzM + zMZszMzMzMzMzMzHj////4iIiI//////////////////////////////////////+IiIj/////jMzMzM + zMzMzMzGbMzMzMzMzMzMyP////iIiIiI/////////////////////////////////////4iIiIj////4 + fMzMzMzMzMzMxszMzMzMzMzMzHj////4iIiIiP////////////////////////////////////+IiIiI + j////4zMzMzMzMzMzMbMzMzMzMzMzMx4////iIiIiIj////////////////////////////////////4 + iIiIiI////+HzMzMzMzMzMzMzMzMzMzMzMzMj////4iIiIiI//////////////+IiP//iI////////// + ////+IiIiIiP////h8zMzMzMzMzMzMzMzMzMzMzMzI/////4iIiIiP/////////////4d3eIiIeIj/// + //////////+IiIiIj/////jMzMzMzMzMzMzMzMzMzMzMzMyP////+IiIiIj/////////////iIiId3eI + iI//////////////iIiIiI/////4zMzMzMzMzMzMzMzMzMzMzMzHj/////+IiIiP/////////////4// + /4d4j/+P//////////////iIiIj/////+MzMzMzMzMzMzMzMzMzMzMzMx4//////+IiP//////////// + ///////4j///////////////////iIiP//////jMzMzMzMzMzMzMzMzMzMzMzMeP//////////+IiIj/ + ///////////////////////////////////////////4fMzMzMzMzMzMzMzMzMzMzMzH//////////+H + fMx8eP//////////////////////////iId3iP//////////+HzMzMzMzMzMzMzMzMzMzMzMyP////// + ///4fMzHh8eP////////////////////////+MzMzMd4//////////h8zMzMzMzMzMzMzMzMzMzMzMf/ + ////////+MzMePjMeP///////////////////////4zMzMeHx4/////////4fMzMzMzMzMzMzMzMzMzM + zMzH/////////4fMd3eHzMeP//////////////////////iMzMzIiHx4////////+HzMzMzMzMzMzMzM + zMzMzMzMx/////////+Hx4iIfMzMj//////////////////////4h3d8x4h8yP////////jMzMzMzMzM + zMzMzMzMzMzMzMeP////////+HiP+IfMzI//////////////////////+HiIiHd3zHj////////4zMzM + zMzMzMzMzMzMzMzMzMzHj/////////h4//+HzMeP//////////////////////h4//h8zMyP//////// + +MzMzMzMzMzMzMzMzMzMzMzMzI/////////4iP//h8x4///////////////////////4j//4fMzHj/// + //////jMzMzMzMzMzMzMzMzMzMzMzMyP///////4iIiP+IfHj///////////////////////+Ij/+HzM + eP/////////4zMzMzMzMzMzMzMzMzMzMzMzMj///////iIiIiIh3eP////////////////////////+I + j4h8x3iI////////h8zMzMzMzMzMzMzMzMzMzMzMzH//////+Hj///iIiI////////////////////// + /////4iId4iIiIj//////4zMzMzMzMzMzMzMzMzMzMzMzMx4//////iP////iP////////////////// + /////////////4iP//iI//////+MzMzMzMzMzMzMzMzMzMzMzMzMyP//////////+I////////////// + ///////////////////4eP//iP//////jMzMzMzMzMzMzMzMzMzMzMzMzMj///////////iP//////// + /////////////////////////4j/////////+HzMzMzMzMzMzMzMzMzMzMzMzMzHj/////////////// + //////////////////////////////+I//////////jMzMzMzMzMzMzMzMzMzMzMzMzMzI////////// + //////////////////////////////////////////////+HzMzMzMzMzMzMzMzMzMzMzMzMzMyP//// + ////////////////////////////////////////////////////h8zMzMzMzMzMzMzMzMzMzMzMzMzM + eP///////////////////////////////////////////////////////4zMzMzMzMzMzMzMzMzMzMzM + zMzMzMj///////////////////////////////////////////////////////h8zMzMzMzMzMzMzMzM + zMzMzMzMzMzHj//////////////////////////////////////////////////////4zMzMzMzMzMzM + zMzMzMzMzMzMzMzMzI//////////////////////////////////////////////////////h8zMzMzM + zMzMzMzMzMzMzMzMzMzMzMx4////////////////////////////////////////////////////+HzM + zMzMzMzMzMzMzMzMzMzMzMzMzMzMyI////+I//////////////////////////////////////////// + //h8zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMeP////+Ij///////////////////////////////////// + //////+HzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMeP////+IiIiIj//////////////////////////4 + ////iI/////4fMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMiP/////4iIiP////////////////////// + ////+IiIiIj/////iHzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzHiP////////////////////////// + ///////////4iIj//////4fMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzHiP//////////////////// + //////////////////////////h8zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzHiP////////////// + //////////////////////////////+HzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzHj///////// + ///////////////////////////////////4fMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMeP//// + ////////////////////////////////////////+MzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzI + j/////////////////////////////////////////////h8zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM + zMzMeP//////////////////////////////////////////////h8zMzMzMzMzMzMzMzMzMzMzMzMzM + zMzMzMzMx4////////+I//////////////////////////////////////jMzMzMzMzMzMzMzMzMzMzM + zMzMzMzMzMzMzMeP///////4iIj///////////////////////////iP///////4fMzMzMzMzMzMzMzM + zMzMzMzMzMzMzMzMzMx4////////iIiIiP///////////////////////4iIiP///////4zMzMzMzMzM + zMzMzMzMzMzMzMzMzMzMzMzMj///////+IiIiIiI////////////////////+IiIiIj///////+HzMzM + zMzMzMzMzMzMzMzMzMzMzMzMzMzMx4////////iIiIiIj////////////////////4iIiIiIj/////// + +MzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMj///////+IiIiIiI////////////////////+IiIiIiI// + //////h8zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMx4////////iIiIiIiP////////////////////iIiI + iIiI///////4fMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMj///////+IiIiIiIj/////iIiIiIiIj///// + /4iIiIiIiP///////4zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMx4////////iIiIiIiI/////4zMzMzMzM + j/////+IiIiIiIiP//////+HzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMeP//////+IiIiIiIj/////+MzM + zMzMzI//////+IiIiIiIj///////+MzMzMzMzMzMzMzMzMzMzMzMzMzMzMzI////////iIiIiIiI//// + //jMzMzMzMyP//////iIiIiIiIj///////jMzMzMzMzMzMzMzMzMzMzMzMzMzMzMeP///////4iIiIiI + iP/////4zMzMzMzMj//////4iIiIiIiI///////4fMzMzMzMzMzMzMzMzMzMzMzMzMzMzI////////iI + iIiIiI//////+MzMzMzMzI//////+IiIiIiIiP///////4zMzMzMzMzMzMzMzMzMzMzMzMzMzMyP//// + ///4iIiIiIiP//////fMzMzMzMyP//////+IiIiIiIj///////+MzMzMzMzMzMzMzMzMzMzMzMzMzMzH + j///////+IiIiIiI//////+HzMzMzMzMeP//////iIiIiIiIj///////jMzMzMzMzMzMzMzMzMzMzMzM + zMzMyP////////iIiIiIiP//////jMzMzMzMzHj///////iIiIiIiI///////4fMzMzMzMzMzMzMzMzM + zMzMzMzMzMj///////+IiIiIiI///////4zMzMzMzMzI///////4iIiIiIiI///////3zMzMzMzMzMzM + zMzMzMzMzMzMzMzI////////iIiIiIiP//////+MzMzMzMzMyP//////+IiIiIiIiP//////+MzMzMzM + zMzMzMzMzMzMzMzMzMzMeP///////4iIiIiIj///////jMzMzMzMzMj///////+IiIiIiIj///////jM + zMzMzMzMzMzMzMzMzMzMzMzMzI////////+IiIiIiP//////+HzMzMzMzMzHj///////iIiIiIiI//// + ///4zMzMzMzMzMzMzMzMzMzMzMzMzMyP////////iIiIiI////////jMzMzMzMzMzI///////4iIiIiI + iI//////+MzMzMzMzMzMzMzMzMzMzMzMzMzMj////////4iIiIiP///////4zMzMzMzMzMyP///////4 + iIiIiIiP//////jMzMzMzMzMzMzMzMzMzMzMzMzMzI////////+IiIiI////////h8zMzMzMzMzMeP// + /////4iIiIiIj//////4fMzMzMzMzMzMzMzMzMzMzMzMzMyP////////iIiIj////////4fMzMzMzMzM + zHj///////+IiIiIiI//////+HzMzMzMzMzMzMzMzMzMzMzMzMzHj/////////iIiP////////+MzMzM + zMzMzMzI////////+IiIiIiP//////h8zMzMzMzMzMzMxmzMzMzMzMzMx4/////////4iP/////////4 + fMzMzMzMzMzMx4////////+IiIiIj//////4fMzMzMzMzMzMzMZszMzMzMzMzMeP//////////////// + ////+MzMzMzMzMzMzMyP////////iIiIiP//////+HzMzMzMzMzMzMzGbMzMzMzMzMzH//////////// + //////////fMzMzMzMzMzMzMeP////////iIiIj///////98zMzMzMzMzMzMxmzMzMzMzMzMyP////// + //////////////+HzMzMzMzMzMzMzHj/////////+IiP////////jMzMzMzMzMzMzMZszMzMzMzMzMj/ + ////////////////////jMzMzMzMzMzMzMzIj////////////////////4zMzMzMzMzMzMzGTMzMzMzM + zMzH////////////////////+HzMzMzMzMzMzMzMx4////////////////////+MzMzMzMzMzMzMxAzM + zMzMzMzMx/////////////////////jMzMzMzMzMzMzMzMyI///////////////////4fMzMzMzMzMzM + zMAGzMzMzMzMzMeP//////////////////+HzMzMzMzMzMzMzMzMeP//////////////////+HzMzMzM + zMzMzMxgBszMzMzMzMzHj//////////////////4fMzMzMzMzMzMzMzMzMeP//////////////////h8 + zMzMzMzMzMzMYADMzMzMzMzMzI//////////////////+HzMzMzMzMzMzMzMzMzHj/////////////// + ///4zMzMzMzMzMzMzAAAbMzMzMzMzMyP/////////////////4fMzMzMzMzMzMzMzMzMzHj///////// + ////////+MzMzMzMzMzMzMYAAEzMzMzMzMzMj/////////////////+MzMzMzMzMzMzMzMzMzMzIj/// + /////////////4fMzMzMzMzMzMzEAAAGzMzMzMzMzHj////////////////4fMzMzMzMzMzMzMzMzMzM + x4////////////////+MzMzMzMzMzMzMYAAABMzMzMzMzMx4////////////////h8zMzMzMzMzMzMzM + zMzMzMx4///////////////4fMzMzMzMzMzMzEAAAABszMzMzMzMx4//////////////+HzMzMzMzMzM + zMzMzMzMzMzMx4//////////////+MzMzMzMzMzMzMYAAAAATMzMzMzMzMyP/////////////4fMzMzM + zMzMzMzMzMzMzMzMzMeI/////////////4fMzMzMzMzMzMzEAAAAAAbMzMzMzMzMeP////////////h8 + zMzMzMzMzMzMzMzMzMzMzMzMeI////////////h8zMzMzMzMzMzMYAAAAAAAbMzMzMzMzMeP//////// + //iHzMzMzMzMzMzMzMzMzMzMzMzMzMyI//////////+HzMzMzMzMzMzMxgAAAAAAAEzMzMzMzMzMeP// + //////iHfMzMzMzMzMzMzMzMzMzMzMzMzMzMx4/////////4fMzMzMzMzMzMzMQAAAAAAAAGzMzMzMzM + zMeI//////iHfMzMzMzMzMzMzMzMzMzMzMzMzMzMzMx4j//////4h8zMzMzMzMzMzMxgAAAAAAAAAGzM + zMzMzMzMx4iIiIiHzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzHiIj/+Ih3zMzMzMzMzMzMzGAAAAAAAA + AAAGzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMx3iId8zMzMzMzMzMzMzMYAAA + AAAAAAAAAGzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM + xgAAAAAAAAAAAAAGzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM + zMzMzGAAAAAAAAAAAAAAAEbMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM + zMzMzMzMzGQAAAAAAAAAAAAAAAAAbMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM + zMzMzMzMzMzMzMYAAAAAAAAAAAAAAAAAAARszMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM + zMzMzMzMzMzMzMzMzMZAAAAAAAAAAAAAAAAAAAAABGzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM + zMzMzMzMzMzMzMzMzMzMzMZAAAAAAAAAAAAAAAAAAAAAAAAEbMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM + zMzMzMzMzMzMzMzMzMzMzMzMzMZAAAAAAAAAAAAAAAAAAAAAAAAAAABmzMzMzMzMzMzMzMzMzMzMzMzM + zMzMzMzMzMzMzMzMzMzMzMzMzMzMzGYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARGZmzMzMzMzMzMzMzM + zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMZmZEAAAAAAAAAAAAAAAAD////+AAAAAAAAAAD/////////AAAA + AAAAAAAAAP//////+AAAAAAAAAAAAAAf/////+AAAAAAAAAAAAAAB/////+AAAAAAAAAAAAAAAH////+ + AAAAAAAAAAAAAAAAf////AAAAAAAAAAAAAAAAD////AAAAAAAAAAAAAAAAAP///gAAAAAAAAAAAAAAAA + B///wAAAAAAAAAAAAAAAAAP//4AAAAAAAAAAAAAAAAAB//8AAAAAAAAAAAAAAAAAAP/+AAAAAAAAAAAA + AAAAAAB//gAAAAAAAAAAAAAAAAAAf/wAAAAAAAAAAAAAAAAAAD/4AAAAAAAAAAAAAAAAAAAf+AAAAAAA + AAAAAAAAAAAAH/AAAAAAAAAAAAAAAAAAAA/wAAAAAAAAAAAAAAAAAAAP4AAAAAAAAAAAAAAAAAAAB+AA + AAAAAAAAAAAAAAAAAAfAAAAAAAAAAAAAAAAAAAADwAAAAAAAAAAAAAAAAAAAA8AAAAAAAAAAAAAAAAAA + AAOAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAA + AAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABAAAAAAAA + AAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAA + AAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAA + AAAAAAABgAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAPAAAAAAAAAAAAAAAAAAAADwAAAAAAA + AAAAAAAAAAAAA+AAAAAAAAAAAAAAAAAAAAfgAAAAAAAAAAAAAAAAAAAH8AAAAAAAAAAAAAAAAAAAD/AA + AAAAAAAAAAAAAAAAAA/4AAAAAAAAAAAAAAAAAAAf+AAAAAAAAAAAAAAAAAAAH/wAAAAAAAAAAAAAAAAA + AD/+AAAAAAAAAAAAAAAAAAB//gAAAAAAAAAAAAAAAAAAf/8AAAAAAAAAAAAAAAAAAP//gAAAAAAAAAAA + AAAAAAH//8AAAAAAAAAAAAAAAAAD///gAAAAAAAAAAAAAAAAB///8AAAAAAAAAAAAAAAAA////wAAAAA + AAAAAAAAAAA////+AAAAAAAAAAAAAAAAf////4AAAAAAAAAAAAAAAf/////gAAAAAAAAAAAAAAf///// + +AAAAAAAAAAAAAAf//////8AAAAAAAAAAAAA/////////gAAAAAAAAAAf////w== + + + \ No newline at end of file diff --git a/TEMUKJD/ToolForms/WebFormObj.cs b/TEMUKJD/ToolForms/WebFormObj.cs new file mode 100644 index 0000000..d278d59 --- /dev/null +++ b/TEMUKJD/ToolForms/WebFormObj.cs @@ -0,0 +1,14 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace TemuKJD.ToolForms +{ + public class WebFormObj + { + public delegate void InfoReceivedHandler(string information); + public event InfoReceivedHandler OnInfoReceived; + } +} diff --git a/TEMUKJD/UserComponent/DataGridViewEx.cs b/TEMUKJD/UserComponent/DataGridViewEx.cs index 461605b..0155798 100644 --- a/TEMUKJD/UserComponent/DataGridViewEx.cs +++ b/TEMUKJD/UserComponent/DataGridViewEx.cs @@ -49,7 +49,11 @@ namespace TemuKJD.UserComponent { if (e.ColumnIndex < 0) return; - var colIndex = this.Columns.Cast().FirstOrDefault(c => c is DataGridViewCheckBoxColumn).Index; + + var chkCol = this.Columns.Cast().FirstOrDefault(c => c is DataGridViewCheckBoxColumn); + if (chkCol == null) + return; + var colIndex = chkCol.Index; if (colIndex < 0 || e.ColumnIndex != colIndex) return; diff --git a/TEMUKJD/UserComponent/UcComboBoxMutiSelect .cs b/TEMUKJD/UserComponent/UcComboBoxMutiSelect .cs index da96c06..dab14d0 100644 --- a/TEMUKJD/UserComponent/UcComboBoxMutiSelect .cs +++ b/TEMUKJD/UserComponent/UcComboBoxMutiSelect .cs @@ -39,6 +39,7 @@ namespace TemuKJD.UserComponent } } + Label lblX = null; CheckedListBox checkedListBox = null; public UcComboBoxMutiSelect() { @@ -52,6 +53,80 @@ namespace TemuKJD.UserComponent this.DropDownHeight = 1; this.DropDown += UcComboBoxMutiSelect_DropDown; this.DropDownClosed += UcComboBoxMutiSelect_DropDownClosed; + + Task.Run(() => + { + for (int i = 0; i < 50; i++) + { + System.Threading.Thread.Sleep(100); + var parentForm = FindForm(); + if (parentForm != null && parentForm.Visible == true) + { + Invoke(new Action(() => + { + UpdateClearLabel(); + })); + break; + } + } + this.Move += UcComboBoxMutiSelect_Move; + this.Resize += UcComboBoxMutiSelect_Resize; + this.SizeChanged += UcComboBoxMutiSelect_SizeChanged; + }); + } + + private void UcComboBoxMutiSelect_SizeChanged(object sender, EventArgs e) + { + UpdateClearLabel(); + } + + private void UcComboBoxMutiSelect_Resize(object sender, EventArgs e) + { + UpdateClearLabel(); + } + + private void UcComboBoxMutiSelect_Move(object sender, EventArgs e) + { + UpdateClearLabel(); + } + + private void UpdateClearLabel() + { + if (lblX == null) + { + lblX = new Label(); + lblX.Click += LblX_Click; + //lblX.BorderStyle = BorderStyle.FixedSingle; + lblX.Text = "×"; + lblX.ForeColor = Color.FromArgb(63, 126, 255); + lblX.BackColor = this.BackColor; + lblX.AutoSize = false; + //lblX.AutoSize = true; + //lblX.Width = 17; + lblX.Width = 15; + lblX.Height = 19; + lblX.SendToBack(); + Form form = this.FindForm(); + form.Controls.Add(lblX); + } + Point relativeLocation = this.GetRelativePosition(); + //lblX.Location = new Point(relativeLocation.X + this.Width - 19 - lblX.Width, relativeLocation.Y + (this.Height - lblX.Height) / 2); + lblX.Location = new Point(relativeLocation.X + this.Width - 19 - lblX.Width, relativeLocation.Y + (this.Height - lblX.Height) / 2); + lblX.BringToFront(); + } + + private void LblX_Click(object sender, EventArgs e) + { + if (this.lblX.Text == "×") + { + this.lblX.Text = "↶"; + this.Text = ""; + } + else + { + this.lblX.Text = "×"; + this.Text = "全部"; + } } private void UcComboBoxMutiSelect_DropDownClosed(object sender, EventArgs e) diff --git a/TEMUKJD/WXForms/AdminForms/WXAdminForm.Designer.cs b/TEMUKJD/WXForms/AdminForms/WXAdminForm.Designer.cs index 414b79c..84142e5 100644 --- a/TEMUKJD/WXForms/AdminForms/WXAdminForm.Designer.cs +++ b/TEMUKJD/WXForms/AdminForms/WXAdminForm.Designer.cs @@ -33,14 +33,16 @@ System.Windows.Forms.TreeNode treeNode3 = new System.Windows.Forms.TreeNode("PDD产品库"); System.Windows.Forms.TreeNode treeNode4 = new System.Windows.Forms.TreeNode("厂家商品采集"); System.Windows.Forms.TreeNode treeNode5 = new System.Windows.Forms.TreeNode("Sku采集回传"); - System.Windows.Forms.TreeNode treeNode6 = new System.Windows.Forms.TreeNode("图片工具"); - System.Windows.Forms.TreeNode treeNode7 = new System.Windows.Forms.TreeNode("超级权限管理", new System.Windows.Forms.TreeNode[] { + System.Windows.Forms.TreeNode treeNode6 = new System.Windows.Forms.TreeNode("1688厂家采集"); + System.Windows.Forms.TreeNode treeNode7 = new System.Windows.Forms.TreeNode("图片工具"); + System.Windows.Forms.TreeNode treeNode8 = new System.Windows.Forms.TreeNode("超级权限管理", new System.Windows.Forms.TreeNode[] { treeNode1, treeNode2, treeNode3, treeNode4, treeNode5, - treeNode6}); + treeNode6, + treeNode7}); this.panel1 = new System.Windows.Forms.Panel(); this.panel3 = new System.Windows.Forms.Panel(); this.panel2 = new System.Windows.Forms.Panel(); @@ -141,12 +143,14 @@ treeNode4.Text = "厂家商品采集"; treeNode5.Name = "Sku采集回传"; treeNode5.Text = "Sku采集回传"; - treeNode6.Name = "图片工具"; - treeNode6.Text = "图片工具"; - treeNode7.Name = "超级权限管理"; - treeNode7.Text = "超级权限管理"; + treeNode6.Name = "1688厂家采集"; + treeNode6.Text = "1688厂家采集"; + treeNode7.Name = "图片工具"; + treeNode7.Text = "图片工具"; + treeNode8.Name = "超级权限管理"; + treeNode8.Text = "超级权限管理"; this.tv.Nodes.AddRange(new System.Windows.Forms.TreeNode[] { - treeNode7}); + treeNode8}); this.tv.OverForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(235)))), ((int)(((byte)(235)))), ((int)(((byte)(235))))); this.tv.Size = new System.Drawing.Size(140, 446); this.tv.TabIndex = 1; diff --git a/TEMUKJD/WXForms/AdminForms/WXAdminForm.cs b/TEMUKJD/WXForms/AdminForms/WXAdminForm.cs index 9ff6151..d347a1a 100644 --- a/TEMUKJD/WXForms/AdminForms/WXAdminForm.cs +++ b/TEMUKJD/WXForms/AdminForms/WXAdminForm.cs @@ -22,6 +22,7 @@ namespace TemuKJD.WXForms.AdminForms public Lazy pddDbProdListForm = new Lazy(); public Lazy getJuShuitanProdForm = new Lazy(); public Lazy getJuShuitanProductSKUListForm = new Lazy(); + public Lazy get1688ProdForm = new Lazy(); public Lazy imgToolForm = new Lazy(); public WXAdminForm() @@ -33,7 +34,7 @@ namespace TemuKJD.WXForms.AdminForms tv.SelectedNode = tv.Nodes[0].Nodes[0]; tv.ExpandGroup(tv.Nodes[0].Name); - List hideName = new List() { "图片工具", "Sku采集回传1", "超级用户管理", "超级店铺管理", "PDD产品库", "SKU替换图", "选品加价管理", "认领待上传", "库存上传", "商品核价" }; + List hideName = new List() { "1688厂家采集1", "图片工具", "Sku采集回传1", "超级用户管理", "超级店铺管理", "PDD产品库", "SKU替换图", "选品加价管理", "认领待上传", "库存上传", "商品核价" }; if (BaseClass.GroupId == 3) { @@ -89,6 +90,9 @@ namespace TemuKJD.WXForms.AdminForms case "Sku采集回传": SetForm(getJuShuitanProductSKUListForm.Value); break; + case "1688厂家采集": + SetForm(get1688ProdForm.Value); + break; case "图片工具": SetForm(imgToolForm.Value); break; diff --git a/TEMUKJD/WXForms/ProductForms/WXDBProdUploadForm.Designer.cs b/TEMUKJD/WXForms/ProductForms/WXDBProdUploadForm.Designer.cs index e5e1fa5..7a6ac16 100644 --- a/TEMUKJD/WXForms/ProductForms/WXDBProdUploadForm.Designer.cs +++ b/TEMUKJD/WXForms/ProductForms/WXDBProdUploadForm.Designer.cs @@ -1127,6 +1127,7 @@ namespace TemuKJD.WXForms.ProductForms this.cmbSourceType.Items.AddRange(new object[] { "", "厂商直采", + "1688厂家", "微信店采", "店铺采集", "机会商品", @@ -2266,6 +2267,7 @@ namespace TemuKJD.WXForms.ProductForms this.Controls.Add(this.splitContainer1); this.Controls.Add(this.panel1); this.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.KeyPreview = true; this.Name = "WXDBProdUploadForm"; this.Text = "微信小店"; this.Load += new System.EventHandler(this.UserSelectDbProductForm_Load); diff --git a/TEMUKJD/WXForms/ProductForms/WXDBProdUploadForm.cs b/TEMUKJD/WXForms/ProductForms/WXDBProdUploadForm.cs index f255d19..1e5366b 100644 --- a/TEMUKJD/WXForms/ProductForms/WXDBProdUploadForm.cs +++ b/TEMUKJD/WXForms/ProductForms/WXDBProdUploadForm.cs @@ -1520,7 +1520,11 @@ namespace TemuKJD.WXForms.ProductForms var skuJArr2 = prodJObj2["detail"]["sku"] as JArray; foreach (var skuJObj2 in skuJArr2) { - if (skuJObj2["multi_price"].ParseToInt() >= this.txtMinPrice.Text.Trim().ParseToDecimal() * 100) + var limitPrice = this.txtMinPrice.Text.Trim().ParseToDecimal() * 100; + // 供应商价加价10%(最低1元)赚取差价 先加价后过滤,过滤条件也要相应增加10% + //if (dbProd.product_get_type_text == "厂商直采") + // limitPrice += Math.Max(100m, limitPrice * 0.1m); + if (skuJObj2["multi_price"].ParseToInt() >= limitPrice) skuJArr.Add(skuJObj2); } if (skuJArr.Count == 0) @@ -2980,6 +2984,8 @@ namespace TemuKJD.WXForms.ProductForms attrValue = "100 g"; else if (attr.value == "cm") attrValue = "20 cm"; + else if (attr.value.Contains("岁以上") && attr.value.Contains("个月以上")) + attrValue = "7 岁以上"; } var wxPropParam = new wxPropParam(); diff --git a/TEMUKJD/WXForms/ShopForms/WXShopAddEditForm.cs b/TEMUKJD/WXForms/ShopForms/WXShopAddEditForm.cs index 88baebc..0970932 100644 --- a/TEMUKJD/WXForms/ShopForms/WXShopAddEditForm.cs +++ b/TEMUKJD/WXForms/ShopForms/WXShopAddEditForm.cs @@ -56,24 +56,14 @@ namespace TemuKJD.WXForms.ShopForms shop.Notes = this.txtNotes.Text; shop.CompanyName = AllBase.BaseClass.CompanyName; - // 同一个登录账号下的店铺使用同样的groupName和Notes - var shopLst = GlobalConfig.ShopLoginList.Where(s => s.LoginName == shop.LoginName && s.ShopId != shop.ShopId).ToList(); - foreach (var shop in shopLst) - { - shop.GroupName = shop.GroupName; - shop.Notes = shop.Notes; - } - - var shopSubAccountLstTmp = shop.ShopSubAccountList; foreach (var sp in lstShopLoginInfo) { sp.GroupName = this.cmbGroup.Text; sp.Notes = this.txtNotes.Text; sp.CompanyName = AllBase.BaseClass.CompanyName; - sp.ShopSubAccountList.Clear(); - sp.ShopSubAccountList.AddRange(shopSubAccountLstTmp); + sp.SubUserName = shop.SubUserName; } - + this.OnSaveComplete(lstShopLoginInfo, isAdd); this.Close(); } diff --git a/TEMUKJD/WXForms/ShopForms/WXShopListForm.Designer.cs b/TEMUKJD/WXForms/ShopForms/WXShopListForm.Designer.cs index aff84fb..654afa5 100644 --- a/TEMUKJD/WXForms/ShopForms/WXShopListForm.Designer.cs +++ b/TEMUKJD/WXForms/ShopForms/WXShopListForm.Designer.cs @@ -28,12 +28,14 @@ /// private void InitializeComponent() { - System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle3 = new System.Windows.Forms.DataGridViewCellStyle(); - System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle4 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle2 = new System.Windows.Forms.DataGridViewCellStyle(); this.label1 = new System.Windows.Forms.Label(); this.splitContainer1 = new System.Windows.Forms.SplitContainer(); this.tableLayoutPanel2 = new System.Windows.Forms.TableLayoutPanel(); this.panel5 = new System.Windows.Forms.Panel(); + this.btnCheck = new DevComponents.DotNetBar.PanelEx(); + this.btnEdit = new DevComponents.DotNetBar.PanelEx(); this.btnLoginSelect = new TemuKJD.UserControls.ButtonEx(); this.panel4 = new System.Windows.Forms.Panel(); this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); @@ -85,8 +87,6 @@ this.colDelete = new System.Windows.Forms.DataGridViewLinkColumn(); this.chkAutoDrag = new System.Windows.Forms.CheckBox(); this.statusBar = new TemuKJD.UserControls.StatusBarUserControl(); - this.btnEdit = new DevComponents.DotNetBar.PanelEx(); - this.btnCheck = new DevComponents.DotNetBar.PanelEx(); ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit(); this.splitContainer1.Panel1.SuspendLayout(); this.splitContainer1.Panel2.SuspendLayout(); @@ -158,6 +158,58 @@ this.panel5.Size = new System.Drawing.Size(249, 40); this.panel5.TabIndex = 1; // + // btnCheck + // + this.btnCheck.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); + this.btnCheck.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; + this.btnCheck.Cursor = System.Windows.Forms.Cursors.Hand; + this.btnCheck.DisabledBackColor = System.Drawing.Color.Empty; + this.btnCheck.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.btnCheck.Location = new System.Drawing.Point(98, 10); + this.btnCheck.Margin = new System.Windows.Forms.Padding(0, 3, 0, 3); + this.btnCheck.Name = "btnCheck"; + this.btnCheck.Size = new System.Drawing.Size(60, 23); + this.btnCheck.Style.Alignment = System.Drawing.StringAlignment.Center; + this.btnCheck.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnCheck.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnCheck.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; + this.btnCheck.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash; + this.btnCheck.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None; + this.btnCheck.Style.ForeColor.Color = System.Drawing.Color.White; + this.btnCheck.Style.GradientAngle = 90; + this.btnCheck.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center; + this.btnCheck.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnCheck.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnCheck.TabIndex = 810; + this.btnCheck.Text = "检测选中"; + this.btnCheck.Click += new System.EventHandler(this.btnCheck_Click); + // + // btnEdit + // + this.btnEdit.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); + this.btnEdit.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; + this.btnEdit.Cursor = System.Windows.Forms.Cursors.Hand; + this.btnEdit.DisabledBackColor = System.Drawing.Color.Empty; + this.btnEdit.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.btnEdit.Location = new System.Drawing.Point(33, 10); + this.btnEdit.Margin = new System.Windows.Forms.Padding(0, 3, 0, 3); + this.btnEdit.Name = "btnEdit"; + this.btnEdit.Size = new System.Drawing.Size(60, 23); + this.btnEdit.Style.Alignment = System.Drawing.StringAlignment.Center; + this.btnEdit.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnEdit.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnEdit.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; + this.btnEdit.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash; + this.btnEdit.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None; + this.btnEdit.Style.ForeColor.Color = System.Drawing.Color.White; + this.btnEdit.Style.GradientAngle = 90; + this.btnEdit.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center; + this.btnEdit.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnEdit.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnEdit.TabIndex = 806; + this.btnEdit.Text = "编辑选中"; + this.btnEdit.Click += new System.EventHandler(this.btnEdit_Click); + // // btnLoginSelect // this.btnLoginSelect.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); @@ -235,7 +287,7 @@ this.cmbGroup.DropDownWidth = 1; this.cmbGroup.FormattingEnabled = true; this.cmbGroup.IntegralHeight = false; - this.cmbGroup.Location = new System.Drawing.Point(307, 5); + this.cmbGroup.Location = new System.Drawing.Point(307, 8); this.cmbGroup.Margin = new System.Windows.Forms.Padding(0, 0, 0, 4); this.cmbGroup.Name = "cmbGroup"; this.cmbGroup.Size = new System.Drawing.Size(48, 25); @@ -261,7 +313,7 @@ this.cmbNotes.DropDownWidth = 1; this.cmbNotes.FormattingEnabled = true; this.cmbNotes.IntegralHeight = false; - this.cmbNotes.Location = new System.Drawing.Point(224, 5); + this.cmbNotes.Location = new System.Drawing.Point(224, 8); this.cmbNotes.Margin = new System.Windows.Forms.Padding(0, 0, 0, 4); this.cmbNotes.Name = "cmbNotes"; this.cmbNotes.Size = new System.Drawing.Size(48, 25); @@ -394,7 +446,7 @@ this.cmbSubAccount.DropDownWidth = 1; this.cmbSubAccount.FormattingEnabled = true; this.cmbSubAccount.IntegralHeight = false; - this.cmbSubAccount.Location = new System.Drawing.Point(402, 5); + this.cmbSubAccount.Location = new System.Drawing.Point(402, 8); this.cmbSubAccount.Margin = new System.Windows.Forms.Padding(0, 0, 0, 4); this.cmbSubAccount.Name = "cmbSubAccount"; this.cmbSubAccount.Size = new System.Drawing.Size(48, 25); @@ -530,20 +582,20 @@ // this.dgvShop.AllowUserToAddRows = false; this.dgvShop.AllowUserToDeleteRows = false; - dataGridViewCellStyle3.BackColor = System.Drawing.Color.WhiteSmoke; - this.dgvShop.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle3; + dataGridViewCellStyle1.BackColor = System.Drawing.Color.WhiteSmoke; + this.dgvShop.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle1; this.dgvShop.AutoRowNumber = true; this.dgvShop.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.Fill; this.dgvShop.BackgroundColor = System.Drawing.Color.White; this.dgvShop.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); - dataGridViewCellStyle4.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; - dataGridViewCellStyle4.BackColor = System.Drawing.SystemColors.Control; - dataGridViewCellStyle4.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - dataGridViewCellStyle4.ForeColor = System.Drawing.SystemColors.WindowText; - dataGridViewCellStyle4.SelectionBackColor = System.Drawing.SystemColors.Highlight; - dataGridViewCellStyle4.SelectionForeColor = System.Drawing.SystemColors.HighlightText; - dataGridViewCellStyle4.WrapMode = System.Windows.Forms.DataGridViewTriState.False; - this.dgvShop.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle4; + dataGridViewCellStyle2.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; + dataGridViewCellStyle2.BackColor = System.Drawing.SystemColors.Control; + dataGridViewCellStyle2.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + dataGridViewCellStyle2.ForeColor = System.Drawing.SystemColors.WindowText; + dataGridViewCellStyle2.SelectionBackColor = System.Drawing.SystemColors.Highlight; + dataGridViewCellStyle2.SelectionForeColor = System.Drawing.SystemColors.HighlightText; + dataGridViewCellStyle2.WrapMode = System.Windows.Forms.DataGridViewTriState.False; + this.dgvShop.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle2; this.dgvShop.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; this.dgvShop.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { this.colSelect, @@ -821,58 +873,6 @@ this.statusBar.Size = new System.Drawing.Size(1264, 29); this.statusBar.TabIndex = 1; // - // btnEdit - // - this.btnEdit.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); - this.btnEdit.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; - this.btnEdit.Cursor = System.Windows.Forms.Cursors.Hand; - this.btnEdit.DisabledBackColor = System.Drawing.Color.Empty; - this.btnEdit.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.btnEdit.Location = new System.Drawing.Point(33, 10); - this.btnEdit.Margin = new System.Windows.Forms.Padding(0, 3, 0, 3); - this.btnEdit.Name = "btnEdit"; - this.btnEdit.Size = new System.Drawing.Size(60, 23); - this.btnEdit.Style.Alignment = System.Drawing.StringAlignment.Center; - this.btnEdit.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); - this.btnEdit.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); - this.btnEdit.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; - this.btnEdit.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash; - this.btnEdit.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None; - this.btnEdit.Style.ForeColor.Color = System.Drawing.Color.White; - this.btnEdit.Style.GradientAngle = 90; - this.btnEdit.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center; - this.btnEdit.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); - this.btnEdit.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); - this.btnEdit.TabIndex = 806; - this.btnEdit.Text = "编辑选中"; - this.btnEdit.Click += new System.EventHandler(this.btnEdit_Click); - // - // btnCheck - // - this.btnCheck.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); - this.btnCheck.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; - this.btnCheck.Cursor = System.Windows.Forms.Cursors.Hand; - this.btnCheck.DisabledBackColor = System.Drawing.Color.Empty; - this.btnCheck.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.btnCheck.Location = new System.Drawing.Point(98, 10); - this.btnCheck.Margin = new System.Windows.Forms.Padding(0, 3, 0, 3); - this.btnCheck.Name = "btnCheck"; - this.btnCheck.Size = new System.Drawing.Size(60, 23); - this.btnCheck.Style.Alignment = System.Drawing.StringAlignment.Center; - this.btnCheck.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); - this.btnCheck.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); - this.btnCheck.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; - this.btnCheck.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash; - this.btnCheck.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None; - this.btnCheck.Style.ForeColor.Color = System.Drawing.Color.White; - this.btnCheck.Style.GradientAngle = 90; - this.btnCheck.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center; - this.btnCheck.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); - this.btnCheck.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); - this.btnCheck.TabIndex = 810; - this.btnCheck.Text = "检测选中"; - this.btnCheck.Click += new System.EventHandler(this.btnCheck_Click); - // // WXShopListForm // this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; diff --git a/TEMUKJD/WXForms/ShopForms/WXShopListForm.cs b/TEMUKJD/WXForms/ShopForms/WXShopListForm.cs index be5c1e8..7508e0b 100644 --- a/TEMUKJD/WXForms/ShopForms/WXShopListForm.cs +++ b/TEMUKJD/WXForms/ShopForms/WXShopListForm.cs @@ -293,6 +293,7 @@ namespace TemuKJD.WXForms.ShopForms Invoke(new Action(() => { this.statusBar.pgbTaskProgress.Value = i; this.statusBar.pgbTaskProgress.Text = i + "/" + shopInfoLst.Count; + this.statusBar.pgbTaskProgress.Maximum = shopInfoLst.Count; i++; })); ShopBLL.MdyPDDServerShopSubInfo(shopInfo); @@ -466,7 +467,9 @@ namespace TemuKJD.WXForms.ShopForms } if (!string.IsNullOrEmpty(txtShopName.Text)) { - shopList = shopList.Where(s => s.ShopAccount.ParseToString().ToLower().Contains(txtShopName.Text.ToLower())).ToList(); + shopList = shopList.Where(s => s.ShopAccount.ParseToString().ToLower().Contains(txtShopName.Text.ToLower()) || + txtShopName.Text.ToLower().Split(new string[] { ",", ",", ";", ";", " " }, StringSplitOptions.RemoveEmptyEntries) + .Contains(s.ShopAccount.ParseToString().ToLower())).ToList(); } }));