diff --git a/AllBase/AllBase.csproj b/AllBase/AllBase.csproj index ec7b2e3..0c49e64 100644 --- a/AllBase/AllBase.csproj +++ b/AllBase/AllBase.csproj @@ -201,6 +201,7 @@ + @@ -211,6 +212,7 @@ + diff --git a/AllBase/Model/Param/PDDProdParam/PddEditProdStockQuantity.cs b/AllBase/Model/Param/PDDProdParam/PddEditProdStockQuantity.cs new file mode 100644 index 0000000..81afa56 --- /dev/null +++ b/AllBase/Model/Param/PDDProdParam/PddEditProdStockQuantity.cs @@ -0,0 +1,23 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace AllBase.Model.Param.PDDProdParam +{ + public class PddEditProdStockQuantity + { + //{"data":[{"beforeQuantity":99,"goodsId":934133582718,"quantity":-99,"skuId":1881716571234}],"sourceId":1} + public List data { get; set; } + public int? sourceId { get; set; } = 1; + } + + public class quantityData + { + public int? beforeQuantity { get; set; } + public long? goodsId { get; set; } + public int? quantity { get; set; } + public long? skuId { get; set; } + } +} diff --git a/AllBase/Model/Result/PDDResult/PDDActivityResult/ActivityListProdInfo.cs b/AllBase/Model/Result/PDDResult/PDDActivityResult/ActivityListProdInfo.cs new file mode 100644 index 0000000..d8fad47 --- /dev/null +++ b/AllBase/Model/Result/PDDResult/PDDActivityResult/ActivityListProdInfo.cs @@ -0,0 +1,43 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace AllBase.Model.Result.PDDResult.PDDActivityResult +{ + public class ActivityListProdInfo + { + public long? goods_id { get; set; } // 933666046550, + public string goods_name { get; set; } // "男鞋时尚百搭厚底增高阿甘鞋2025春季新款老爹鞋透气运动休闲鞋男", + public string hd_thumb_url { get; set; } // "https://img.pddpic.com/gaudit-image/2026-04-05/8aee37c964f3f8d6b02912f35ebee3b7.jpeg", + public int? min_on_sale_group_price { get; set; } // 13910, + public int? max_on_sale_group_price { get; set; } // 13910, + public int? goods_quantity { get; set; } // 23976, + public int? sold_quantity { get; set; } // 0, + public int? goods_status { get; set; } // 1, + public decimal? goods_score { get; set; } // 0, + public decimal? goods_score_default { get; set; } // 0, + public string @operator { get; set; } // "无", + public int? eligible { get; set; } // 1, + public List reasons { get; set; } // [], + public object failed_rule_key { get; set; } // null, + public bool? is_recommended { get; set; } // false, + public object recommend_type { get; set; } // null, + public object recommend_type_desc { get; set; } // null, + public object recommend_desc { get; set; } // null, + public object failed_rules { get; set; } // null, + public object text { get; set; } // null, + public object feature { get; set; } // null, + public object sku_volist { get; set; } // null, + public object excel_goods_quantity { get; set; } // null, + public object excel_item_number { get; set; } // null, + public object excel_sku_list { get; set; } // null + + public string shopId { get; set; } + public string shopName { get; set; } + public PDDShopListProductInfo lstPInfo { get; set; } + public KJDDBProduct dbProduct { get; set; } + public PDDProductInfo productInfo { get; set; } + } +} diff --git a/KJDService/KJD_WebService/BLL/BXX/BXXProductManage.cs b/KJDService/KJD_WebService/BLL/BXX/BXXProductManage.cs index 39155b8..ce6e237 100644 --- a/KJDService/KJD_WebService/BLL/BXX/BXXProductManage.cs +++ b/KJDService/KJD_WebService/BLL/BXX/BXXProductManage.cs @@ -355,6 +355,7 @@ namespace KJD_Web.BLL.BXX var search_notes = RegexUtils.GetStringQuery(ref inputData, "search_notes")?.Replace("'", "\\'"); var search_db_ids = RegexUtils.GetStringQuery(ref inputData, "search_db_ids")?.Replace("'", "\\'"); var search_secret_spu_ids = RegexUtils.GetStringQuery(ref inputData, "search_secret_spu_ids")?.Replace("'", "\\'"); + var ext_code_in = RegexUtils.GetStringQuery(ref inputData, "ext_code_in")?.Replace("'", "\\'"); var get_select_count = RegexUtils.GetStringQuery(ref inputData, "get_select_count")?.Replace("'", "\\'"); var select_shop_id = RegexUtils.GetStringQuery(ref inputData, "select_shop_id")?.Replace("'", "\\'"); var from_shop_id = RegexUtils.GetStringQuery(ref inputData, "from_shop_id")?.Replace("'", "\\'"); @@ -390,6 +391,8 @@ namespace KJD_Web.BLL.BXX where += " and p.id in (" + search_db_ids + ")"; if (!string.IsNullOrEmpty(search_secret_spu_ids)) where += " and p.secret_spu_id in ('" + string.Join("','", search_secret_spu_ids.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries)) + "')"; + if (!string.IsNullOrWhiteSpace(ext_code_in)) + where += " and p.ext_code in ('" + string.Join("','", ext_code_in.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries)) + "')"; if (!string.IsNullOrEmpty(product_get_type)) where += " and p.product_get_type ='" + product_get_type + "'"; if (!string.IsNullOrEmpty(wx_safe_status)) diff --git a/TEMUKJD/KJD.csproj b/TEMUKJD/KJD.csproj index 35f6175..2d6d5ac 100644 --- a/TEMUKJD/KJD.csproj +++ b/TEMUKJD/KJD.csproj @@ -148,6 +148,12 @@ RandomComProductForm.cs + + Form + + + PDDAddActivityForm.cs + Form @@ -1166,6 +1172,9 @@ RandomComProductForm.cs + + PDDAddActivityForm.cs + PDDGetChanceProdByImgForm.cs diff --git a/TEMUKJD/PDDForms/ProductForms/ActivityForms/PDDAddActivityForm.Designer.cs b/TEMUKJD/PDDForms/ProductForms/ActivityForms/PDDAddActivityForm.Designer.cs new file mode 100644 index 0000000..8ade5e1 --- /dev/null +++ b/TEMUKJD/PDDForms/ProductForms/ActivityForms/PDDAddActivityForm.Designer.cs @@ -0,0 +1,1595 @@ + +using TemuKJD.PDDForms.ProductSelectForms; + +namespace TemuKJD.PDDForms.ProductForms.ActivityForms +{ + partial class PDDAddActivityForm + { + /// + /// 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 dataGridViewCellStyle8 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle9 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle10 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle11 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle12 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle13 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle14 = new System.Windows.Forms.DataGridViewCellStyle(); + this.splitContainer1 = new System.Windows.Forms.SplitContainer(); + this.ucGroupBoxEx2 = new TemuKJD.UserComponent.UcGroupBoxEx(this.components); + this.chkDownNoPrice = new TemuKJD.UserComponent.UcCheckBox(this.components); + this.label1 = new System.Windows.Forms.Label(); + this.chk15996 = new TemuKJD.UserComponent.UcCheckBox(this.components); + this.chk21365 = new TemuKJD.UserComponent.UcCheckBox(this.components); + this.txtAddShippingFeeTimes = new System.Windows.Forms.TextBox(); + this.label12 = new System.Windows.Forms.Label(); + this.btnApiUpload = new DevComponents.DotNetBar.PanelEx(); + this.btnStop = new DevComponents.DotNetBar.PanelEx(); + this.chk20981 = new TemuKJD.UserComponent.UcCheckBox(this.components); + this.chk22347 = new TemuKJD.UserComponent.UcCheckBox(this.components); + this.chkAddMorePriceFirst = new TemuKJD.UserComponent.UcCheckBox(this.components); + this.btnClearDgv = new DevComponents.DotNetBar.PanelEx(); + this.label14 = new System.Windows.Forms.Label(); + this.txtSinglePriceAdd = new System.Windows.Forms.TextBox(); + this.panel4 = new System.Windows.Forms.Panel(); + this.panel3 = new System.Windows.Forms.Panel(); + this.fPnlPriceRule = new System.Windows.Forms.FlowLayoutPanel(); + this.ucAddPrice1 = new TemuKJD.PDDForms.ProductSelectForms.UcAddPrice(); + this.ucAddPrice3 = new TemuKJD.PDDForms.ProductSelectForms.UcAddPrice(); + this.lblNewAddPrice = new System.Windows.Forms.Label(); + this.txtAddMorePrice = new System.Windows.Forms.TextBox(); + this.txtAddTimes = new System.Windows.Forms.TextBox(); + this.label10 = new System.Windows.Forms.Label(); + this.txtStockNum = new System.Windows.Forms.TextBox(); + this.label4 = new System.Windows.Forms.Label(); + this.label9 = new System.Windows.Forms.Label(); + this.chkStepAddPrice = new TemuKJD.UserComponent.UcCheckBox(this.components); + this.label15 = new System.Windows.Forms.Label(); + this.label11 = new System.Windows.Forms.Label(); + this.line1 = new DevComponents.DotNetBar.Controls.Line(); + this.line2 = new DevComponents.DotNetBar.Controls.Line(); + this.ucGroupBoxEx4 = new TemuKJD.UserComponent.UcGroupBoxEx(this.components); + this.panelEx2 = new DevComponents.DotNetBar.PanelEx(); + this.label2 = new System.Windows.Forms.Label(); + this.dtpStartDay = new System.Windows.Forms.DateTimePicker(); + this.btnGetProd = new DevComponents.DotNetBar.PanelEx(); + this.ucGroupBoxEx1 = new TemuKJD.UserComponent.UcGroupBoxEx(this.components); + this.btnClearShopFilter = new DevComponents.DotNetBar.PanelEx(); + this.btnFilter = new DevComponents.DotNetBar.PanelEx(); + this.txtShopGroupFilter = new System.Windows.Forms.TextBox(); + this.txtShopNameFilter = new System.Windows.Forms.TextBox(); + this.label23 = new System.Windows.Forms.Label(); + this.label22 = new System.Windows.Forms.Label(); + this.btnRefreshApi = new DevComponents.DotNetBar.PanelEx(); + this.btnRefreshShop = new DevComponents.DotNetBar.PanelEx(); + this.splitContainer3 = new System.Windows.Forms.SplitContainer(); + this.splitContainer2 = new System.Windows.Forms.SplitContainer(); + this.pbShopLoading = new System.Windows.Forms.PictureBox(); + this.dgvShop = new TemuKJD.UserComponent.DataGridViewEx(); + this.colSelect = new System.Windows.Forms.DataGridViewCheckBoxColumn(); + this.colShopLoginName = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colShopId = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colShopName = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colShopNotes = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colSelectProduct = new System.Windows.Forms.DataGridViewLinkColumn(); + this.colLoginStatus = new System.Windows.Forms.DataGridViewLinkColumn(); + this.colApiStatus = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colCanUse = new System.Windows.Forms.DataGridViewCheckBoxColumn(); + this.colRemaining = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colMessage = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.chkActivity = new TemuKJD.UserComponent.UcCheckBox(this.components); + this.btnUpload = new DevComponents.DotNetBar.PanelEx(); + this.txtTest20981 = new System.Windows.Forms.TextBox(); + this.btnTest20981 = new DevComponents.DotNetBar.PanelEx(); + this.chkUseExtCodePrice = new TemuKJD.UserComponent.UcCheckBox(this.components); + this.pbLoading = new System.Windows.Forms.PictureBox(); + this.dgvActProduct = new TemuKJD.UserComponent.DataGridViewEx(); + this.colCheck = new System.Windows.Forms.DataGridViewCheckBoxColumn(); + this.colSupplierId = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colSupplierName = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colLogin = new System.Windows.Forms.DataGridViewLinkColumn(); + this.colInShop = new System.Windows.Forms.DataGridViewLinkColumn(); + this.colSpuId = new System.Windows.Forms.DataGridViewLinkColumn(); + this.colGoodsSn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colImgUrl = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colProductSkcPic = new System.Windows.Forms.DataGridViewImageColumn(); + this.colProductName = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colProdPrice = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colStock = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colSaleCnt = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colUpdateTime = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.ColDelete = new System.Windows.Forms.DataGridViewLinkColumn(); + this.colOpResult = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.splitContainer4 = new System.Windows.Forms.SplitContainer(); + this.statusBar = new TemuKJD.UserControls.StatusBarUserControl(); + this.btnClear = new DevComponents.DotNetBar.PanelEx(); + this.panelEx1 = new DevComponents.DotNetBar.PanelEx(); + this.panel1 = new System.Windows.Forms.Panel(); + ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit(); + this.splitContainer1.Panel1.SuspendLayout(); + this.splitContainer1.Panel2.SuspendLayout(); + this.splitContainer1.SuspendLayout(); + this.ucGroupBoxEx2.SuspendLayout(); + this.panel4.SuspendLayout(); + this.panel3.SuspendLayout(); + this.fPnlPriceRule.SuspendLayout(); + this.ucGroupBoxEx4.SuspendLayout(); + this.ucGroupBoxEx1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.splitContainer3)).BeginInit(); + this.splitContainer3.Panel1.SuspendLayout(); + this.splitContainer3.Panel2.SuspendLayout(); + this.splitContainer3.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.splitContainer2)).BeginInit(); + this.splitContainer2.Panel1.SuspendLayout(); + this.splitContainer2.Panel2.SuspendLayout(); + this.splitContainer2.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.pbShopLoading)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.dgvShop)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.pbLoading)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.dgvActProduct)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.splitContainer4)).BeginInit(); + this.splitContainer4.Panel1.SuspendLayout(); + this.splitContainer4.Panel2.SuspendLayout(); + this.splitContainer4.SuspendLayout(); + this.SuspendLayout(); + // + // splitContainer1 + // + this.splitContainer1.FixedPanel = System.Windows.Forms.FixedPanel.Panel1; + this.splitContainer1.Location = new System.Drawing.Point(0, 0); + this.splitContainer1.Name = "splitContainer1"; + this.splitContainer1.Orientation = System.Windows.Forms.Orientation.Horizontal; + // + // splitContainer1.Panel1 + // + this.splitContainer1.Panel1.Controls.Add(this.ucGroupBoxEx2); + this.splitContainer1.Panel1.Controls.Add(this.ucGroupBoxEx4); + this.splitContainer1.Panel1.Controls.Add(this.ucGroupBoxEx1); + // + // splitContainer1.Panel2 + // + this.splitContainer1.Panel2.Controls.Add(this.splitContainer3); + this.splitContainer1.Size = new System.Drawing.Size(1571, 546); + this.splitContainer1.SplitterDistance = 140; + this.splitContainer1.TabIndex = 11; + // + // ucGroupBoxEx2 + // + this.ucGroupBoxEx2.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.ucGroupBoxEx2.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.ucGroupBoxEx2.BorderStyle = TemuKJD.UserComponent.UcGroupBoxEx.GroupBoxBorderStyle.ROUND; + this.ucGroupBoxEx2.Controls.Add(this.chkDownNoPrice); + this.ucGroupBoxEx2.Controls.Add(this.label1); + this.ucGroupBoxEx2.Controls.Add(this.chk15996); + this.ucGroupBoxEx2.Controls.Add(this.chk21365); + this.ucGroupBoxEx2.Controls.Add(this.txtAddShippingFeeTimes); + this.ucGroupBoxEx2.Controls.Add(this.label12); + this.ucGroupBoxEx2.Controls.Add(this.btnApiUpload); + this.ucGroupBoxEx2.Controls.Add(this.btnStop); + this.ucGroupBoxEx2.Controls.Add(this.chk20981); + this.ucGroupBoxEx2.Controls.Add(this.chk22347); + this.ucGroupBoxEx2.Controls.Add(this.chkAddMorePriceFirst); + this.ucGroupBoxEx2.Controls.Add(this.btnClearDgv); + this.ucGroupBoxEx2.Controls.Add(this.label14); + this.ucGroupBoxEx2.Controls.Add(this.txtSinglePriceAdd); + this.ucGroupBoxEx2.Controls.Add(this.panel4); + this.ucGroupBoxEx2.Controls.Add(this.lblNewAddPrice); + this.ucGroupBoxEx2.Controls.Add(this.txtAddMorePrice); + this.ucGroupBoxEx2.Controls.Add(this.txtAddTimes); + this.ucGroupBoxEx2.Controls.Add(this.label10); + this.ucGroupBoxEx2.Controls.Add(this.txtStockNum); + this.ucGroupBoxEx2.Controls.Add(this.label4); + this.ucGroupBoxEx2.Controls.Add(this.label9); + this.ucGroupBoxEx2.Controls.Add(this.chkStepAddPrice); + this.ucGroupBoxEx2.Controls.Add(this.label15); + this.ucGroupBoxEx2.Controls.Add(this.label11); + this.ucGroupBoxEx2.Controls.Add(this.line1); + this.ucGroupBoxEx2.Controls.Add(this.line2); + this.ucGroupBoxEx2.Location = new System.Drawing.Point(459, 2); + this.ucGroupBoxEx2.Name = "ucGroupBoxEx2"; + this.ucGroupBoxEx2.Size = new System.Drawing.Size(1110, 140); + this.ucGroupBoxEx2.TabIndex = 667; + this.ucGroupBoxEx2.TabStop = false; + this.ucGroupBoxEx2.Text = "活动价格配置"; + // + // chkDownNoPrice + // + this.chkDownNoPrice.AutoSize = true; + this.chkDownNoPrice.Checked = true; + this.chkDownNoPrice.CheckState = System.Windows.Forms.CheckState.Checked; + this.chkDownNoPrice.Location = new System.Drawing.Point(536, 16); + this.chkDownNoPrice.Name = "chkDownNoPrice"; + this.chkDownNoPrice.Size = new System.Drawing.Size(159, 21); + this.chkDownNoPrice.TabIndex = 861; + this.chkDownNoPrice.Text = "下架价格不满足活动商品"; + this.chkDownNoPrice.UseVisualStyleBackColor = true; + // + // label1 + // + this.label1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point(533, 53); + this.label1.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(80, 17); + this.label1.TabIndex = 851; + this.label1.Text = "勾选报名活动"; + // + // chk15996 + // + this.chk15996.AutoSize = true; + this.chk15996.Location = new System.Drawing.Point(781, 51); + this.chk15996.Name = "chk15996"; + this.chk15996.Size = new System.Drawing.Size(62, 21); + this.chk15996.TabIndex = 682; + this.chk15996.Text = "15996"; + this.chk15996.UseVisualStyleBackColor = true; + this.chk15996.Visible = false; + this.chk15996.CheckedChanged += new System.EventHandler(this.chkActivityDetail_CheckedChanged); + // + // chk21365 + // + this.chk21365.AutoSize = true; + this.chk21365.Location = new System.Drawing.Point(726, 51); + this.chk21365.Name = "chk21365"; + this.chk21365.Size = new System.Drawing.Size(62, 21); + this.chk21365.TabIndex = 681; + this.chk21365.Text = "21365"; + this.chk21365.UseVisualStyleBackColor = true; + this.chk21365.CheckedChanged += new System.EventHandler(this.chkActivityDetail_CheckedChanged); + // + // txtAddShippingFeeTimes + // + this.txtAddShippingFeeTimes.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.txtAddShippingFeeTimes.Location = new System.Drawing.Point(421, 110); + this.txtAddShippingFeeTimes.Margin = new System.Windows.Forms.Padding(0, 2, 0, 2); + this.txtAddShippingFeeTimes.Name = "txtAddShippingFeeTimes"; + this.txtAddShippingFeeTimes.Size = new System.Drawing.Size(31, 23); + this.txtAddShippingFeeTimes.TabIndex = 756; + this.txtAddShippingFeeTimes.Text = "1.0"; + this.txtAddShippingFeeTimes.TextChanged += new System.EventHandler(this.txtAddPrice_TextChanged); + // + // label12 + // + this.label12.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.label12.AutoSize = true; + this.label12.Location = new System.Drawing.Point(384, 113); + this.label12.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0); + this.label12.Name = "label12"; + this.label12.Size = new System.Drawing.Size(41, 17); + this.label12.TabIndex = 755; + this.label12.Text = "运费×"; + // + // btnApiUpload + // + this.btnApiUpload.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.btnApiUpload.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; + this.btnApiUpload.Cursor = System.Windows.Forms.Cursors.Hand; + this.btnApiUpload.DisabledBackColor = System.Drawing.Color.Empty; + this.btnApiUpload.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.btnApiUpload.Location = new System.Drawing.Point(1031, 33); + this.btnApiUpload.Name = "btnApiUpload"; + this.btnApiUpload.Size = new System.Drawing.Size(66, 23); + this.btnApiUpload.Style.Alignment = System.Drawing.StringAlignment.Center; + this.btnApiUpload.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnApiUpload.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnApiUpload.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; + this.btnApiUpload.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash; + this.btnApiUpload.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None; + this.btnApiUpload.Style.ForeColor.Color = System.Drawing.Color.White; + this.btnApiUpload.Style.GradientAngle = 90; + this.btnApiUpload.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center; + this.btnApiUpload.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnApiUpload.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnApiUpload.TabIndex = 742; + this.btnApiUpload.Text = "批量报名"; + this.btnApiUpload.Click += new System.EventHandler(this.btnApiUpload_Click); + // + // btnStop + // + this.btnStop.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.btnStop.CanvasColor = System.Drawing.SystemColors.Control; + this.btnStop.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; + this.btnStop.DisabledBackColor = System.Drawing.Color.Empty; + this.btnStop.Location = new System.Drawing.Point(1031, 68); + this.btnStop.Margin = new System.Windows.Forms.Padding(4, 2, 2, 2); + this.btnStop.Name = "btnStop"; + this.btnStop.Size = new System.Drawing.Size(66, 23); + this.btnStop.Style.Alignment = System.Drawing.StringAlignment.Center; + this.btnStop.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255))))); + this.btnStop.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255))))); + this.btnStop.Style.Border = DevComponents.DotNetBar.eBorderType.SingleLine; + this.btnStop.Style.BorderColor.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnStop.Style.ForeColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText; + this.btnStop.Style.GradientAngle = 90; + this.btnStop.StyleMouseDown.Alignment = System.Drawing.StringAlignment.Center; + this.btnStop.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center; + this.btnStop.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnStop.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnStop.StyleMouseOver.ForeColor.Color = System.Drawing.Color.White; + this.btnStop.TabIndex = 546; + this.btnStop.Text = "停止报名"; + this.btnStop.Click += new System.EventHandler(this.btnStop_Click); + // + // chk20981 + // + this.chk20981.AutoSize = true; + this.chk20981.Location = new System.Drawing.Point(671, 51); + this.chk20981.Name = "chk20981"; + this.chk20981.Size = new System.Drawing.Size(62, 21); + this.chk20981.TabIndex = 680; + this.chk20981.Text = "20981"; + this.chk20981.UseVisualStyleBackColor = true; + this.chk20981.CheckedChanged += new System.EventHandler(this.chkActivityDetail_CheckedChanged); + // + // chk22347 + // + this.chk22347.AutoSize = true; + this.chk22347.Location = new System.Drawing.Point(615, 51); + this.chk22347.Name = "chk22347"; + this.chk22347.Size = new System.Drawing.Size(62, 21); + this.chk22347.TabIndex = 679; + this.chk22347.Text = "22347"; + this.chk22347.UseVisualStyleBackColor = true; + this.chk22347.CheckedChanged += new System.EventHandler(this.chkActivityDetail_CheckedChanged); + // + // chkAddMorePriceFirst + // + this.chkAddMorePriceFirst.AutoSize = true; + this.chkAddMorePriceFirst.Location = new System.Drawing.Point(291, 111); + this.chkAddMorePriceFirst.Name = "chkAddMorePriceFirst"; + this.chkAddMorePriceFirst.Size = new System.Drawing.Size(99, 21); + this.chkAddMorePriceFirst.TabIndex = 625; + this.chkAddMorePriceFirst.Text = "加价先加再乘"; + this.chkAddMorePriceFirst.UseVisualStyleBackColor = true; + this.chkAddMorePriceFirst.CheckedChanged += new System.EventHandler(this.chkAddMorePriceFirst_CheckedChanged); + // + // btnClearDgv + // + this.btnClearDgv.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.btnClearDgv.CanvasColor = System.Drawing.SystemColors.Control; + this.btnClearDgv.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; + this.btnClearDgv.DisabledBackColor = System.Drawing.Color.Empty; + this.btnClearDgv.Location = new System.Drawing.Point(1031, 100); + this.btnClearDgv.Margin = new System.Windows.Forms.Padding(4, 2, 2, 2); + this.btnClearDgv.Name = "btnClearDgv"; + this.btnClearDgv.Size = new System.Drawing.Size(66, 23); + this.btnClearDgv.Style.Alignment = System.Drawing.StringAlignment.Center; + this.btnClearDgv.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255))))); + this.btnClearDgv.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255))))); + this.btnClearDgv.Style.Border = DevComponents.DotNetBar.eBorderType.SingleLine; + this.btnClearDgv.Style.BorderColor.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnClearDgv.Style.ForeColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText; + this.btnClearDgv.Style.GradientAngle = 90; + this.btnClearDgv.StyleMouseDown.Alignment = System.Drawing.StringAlignment.Center; + this.btnClearDgv.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center; + this.btnClearDgv.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnClearDgv.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnClearDgv.StyleMouseOver.ForeColor.Color = System.Drawing.Color.White; + this.btnClearDgv.TabIndex = 612; + this.btnClearDgv.Text = "清空选中"; + this.btnClearDgv.Click += new System.EventHandler(this.btnClearDgv_Click); + // + // label14 + // + this.label14.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.label14.AutoSize = true; + this.label14.ForeColor = System.Drawing.SystemColors.GrayText; + this.label14.Location = new System.Drawing.Point(8, 62); + this.label14.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0); + this.label14.Name = "label14"; + this.label14.Size = new System.Drawing.Size(68, 51); + this.label14.TabIndex = 599; + this.label14.Text = "阶梯加价未\r\n勾选或条件\r\n不满足,按"; + // + // txtSinglePriceAdd + // + this.txtSinglePriceAdd.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.txtSinglePriceAdd.Location = new System.Drawing.Point(241, 110); + this.txtSinglePriceAdd.Margin = new System.Windows.Forms.Padding(0, 2, 0, 2); + this.txtSinglePriceAdd.Name = "txtSinglePriceAdd"; + this.txtSinglePriceAdd.Size = new System.Drawing.Size(31, 23); + this.txtSinglePriceAdd.TabIndex = 587; + this.txtSinglePriceAdd.Text = "1.0"; + this.txtSinglePriceAdd.TextChanged += new System.EventHandler(this.txtAddPrice_TextChanged); + // + // panel4 + // + this.panel4.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left))); + this.panel4.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.panel4.Controls.Add(this.panel3); + this.panel4.Location = new System.Drawing.Point(76, 17); + this.panel4.Name = "panel4"; + this.panel4.Size = new System.Drawing.Size(450, 89); + this.panel4.TabIndex = 577; + // + // panel3 + // + this.panel3.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.panel3.AutoScroll = true; + this.panel3.BackColor = System.Drawing.Color.White; + this.panel3.Controls.Add(this.fPnlPriceRule); + this.panel3.Location = new System.Drawing.Point(1, 1); + this.panel3.Name = "panel3"; + this.panel3.Size = new System.Drawing.Size(448, 87); + this.panel3.TabIndex = 541; + // + // fPnlPriceRule + // + this.fPnlPriceRule.AutoSize = true; + this.fPnlPriceRule.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; + this.fPnlPriceRule.Controls.Add(this.ucAddPrice1); + this.fPnlPriceRule.Controls.Add(this.ucAddPrice3); + this.fPnlPriceRule.FlowDirection = System.Windows.Forms.FlowDirection.TopDown; + this.fPnlPriceRule.Location = new System.Drawing.Point(0, 0); + this.fPnlPriceRule.Name = "fPnlPriceRule"; + this.fPnlPriceRule.Size = new System.Drawing.Size(426, 58); + this.fPnlPriceRule.TabIndex = 7; + // + // ucAddPrice1 + // + this.ucAddPrice1.AutoSize = true; + this.ucAddPrice1.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.ucAddPrice1.isShowMax = true; + this.ucAddPrice1.isShowMin = true; + this.ucAddPrice1.Location = new System.Drawing.Point(3, 3); + this.ucAddPrice1.MinimumSize = new System.Drawing.Size(0, 20); + this.ucAddPrice1.Name = "ucAddPrice1"; + this.ucAddPrice1.PriceAddMore = new decimal(new int[] { + 50, + 0, + 0, + 65536}); + this.ucAddPrice1.PriceAddTimes = new decimal(new int[] { + 20, + 0, + 0, + 65536}); + this.ucAddPrice1.PriceEnd = new decimal(new int[] { + 20, + 0, + 0, + 0}); + this.ucAddPrice1.PriceStart = new decimal(new int[] { + 0, + 0, + 0, + 65536}); + this.ucAddPrice1.SinglePriceAdd = new decimal(new int[] { + 1, + 0, + 0, + 0}); + this.ucAddPrice1.Size = new System.Drawing.Size(420, 23); + this.ucAddPrice1.TabIndex = 12; + // + // ucAddPrice3 + // + this.ucAddPrice3.AutoSize = true; + this.ucAddPrice3.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.ucAddPrice3.isShowMax = true; + this.ucAddPrice3.isShowMin = true; + this.ucAddPrice3.Location = new System.Drawing.Point(3, 32); + this.ucAddPrice3.MinimumSize = new System.Drawing.Size(0, 20); + this.ucAddPrice3.Name = "ucAddPrice3"; + this.ucAddPrice3.PriceAddMore = new decimal(new int[] { + 50, + 0, + 0, + 65536}); + this.ucAddPrice3.PriceAddTimes = new decimal(new int[] { + 20, + 0, + 0, + 65536}); + this.ucAddPrice3.PriceEnd = new decimal(new int[] { + 9990, + 0, + 0, + 65536}); + this.ucAddPrice3.PriceStart = new decimal(new int[] { + 20, + 0, + 0, + 0}); + this.ucAddPrice3.SinglePriceAdd = new decimal(new int[] { + 1, + 0, + 0, + 0}); + this.ucAddPrice3.Size = new System.Drawing.Size(420, 23); + this.ucAddPrice3.TabIndex = 13; + // + // lblNewAddPrice + // + this.lblNewAddPrice.AutoSize = true; + this.lblNewAddPrice.Cursor = System.Windows.Forms.Cursors.Hand; + this.lblNewAddPrice.ForeColor = System.Drawing.SystemColors.HotTrack; + this.lblNewAddPrice.Location = new System.Drawing.Point(20, 42); + this.lblNewAddPrice.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0); + this.lblNewAddPrice.Name = "lblNewAddPrice"; + this.lblNewAddPrice.Size = new System.Drawing.Size(56, 17); + this.lblNewAddPrice.TabIndex = 567; + this.lblNewAddPrice.Text = "增加阶梯"; + this.lblNewAddPrice.Click += new System.EventHandler(this.lblNewAddPrice_Click); + // + // txtAddMorePrice + // + this.txtAddMorePrice.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.txtAddMorePrice.Location = new System.Drawing.Point(145, 110); + this.txtAddMorePrice.Margin = new System.Windows.Forms.Padding(0, 2, 0, 2); + this.txtAddMorePrice.Name = "txtAddMorePrice"; + this.txtAddMorePrice.Size = new System.Drawing.Size(31, 23); + this.txtAddMorePrice.TabIndex = 535; + this.txtAddMorePrice.Text = "1.0"; + this.txtAddMorePrice.TextChanged += new System.EventHandler(this.txtAddPrice_TextChanged); + // + // txtAddTimes + // + this.txtAddTimes.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.txtAddTimes.Location = new System.Drawing.Point(73, 110); + this.txtAddTimes.Margin = new System.Windows.Forms.Padding(0, 2, 0, 2); + this.txtAddTimes.Name = "txtAddTimes"; + this.txtAddTimes.Size = new System.Drawing.Size(31, 23); + this.txtAddTimes.TabIndex = 532; + this.txtAddTimes.Text = "1.3"; + this.txtAddTimes.TextChanged += new System.EventHandler(this.txtAddPrice_TextChanged); + // + // label10 + // + this.label10.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.label10.AutoSize = true; + this.label10.Location = new System.Drawing.Point(103, 113); + this.label10.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0); + this.label10.Name = "label10"; + this.label10.Size = new System.Drawing.Size(44, 17); + this.label10.TabIndex = 534; + this.label10.Text = "倍再加"; + // + // txtStockNum + // + this.txtStockNum.Location = new System.Drawing.Point(496, 110); + this.txtStockNum.Margin = new System.Windows.Forms.Padding(0, 2, 0, 2); + this.txtStockNum.Name = "txtStockNum"; + this.txtStockNum.Size = new System.Drawing.Size(30, 23); + this.txtStockNum.TabIndex = 530; + this.txtStockNum.Text = "99"; + this.txtStockNum.Visible = false; + this.txtStockNum.TextChanged += new System.EventHandler(this.txtAddPrice_TextChanged); + // + // label4 + // + this.label4.AutoSize = true; + this.label4.Location = new System.Drawing.Point(455, 113); + this.label4.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size(44, 17); + this.label4.TabIndex = 531; + this.label4.Text = "库存数"; + this.label4.Visible = false; + // + // label9 + // + this.label9.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.label9.AutoSize = true; + this.label9.Location = new System.Drawing.Point(8, 113); + this.label9.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0); + this.label9.Name = "label9"; + this.label9.Size = new System.Drawing.Size(68, 17); + this.label9.TabIndex = 533; + this.label9.Text = "默认加价加"; + // + // chkStepAddPrice + // + this.chkStepAddPrice.AutoSize = true; + this.chkStepAddPrice.Location = new System.Drawing.Point(8, 20); + this.chkStepAddPrice.Name = "chkStepAddPrice"; + this.chkStepAddPrice.Size = new System.Drawing.Size(75, 21); + this.chkStepAddPrice.TabIndex = 598; + this.chkStepAddPrice.Text = "阶梯加价"; + this.chkStepAddPrice.UseVisualStyleBackColor = true; + this.chkStepAddPrice.CheckedChanged += new System.EventHandler(this.chkStepAddPrice_CheckedChanged); + // + // label15 + // + this.label15.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.label15.AutoSize = true; + this.label15.Location = new System.Drawing.Point(271, 113); + this.label15.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0); + this.label15.Name = "label15"; + this.label15.Size = new System.Drawing.Size(20, 17); + this.label15.TabIndex = 588; + this.label15.Text = "元"; + // + // label11 + // + this.label11.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.label11.AutoSize = true; + this.label11.Location = new System.Drawing.Point(175, 113); + this.label11.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0); + this.label11.Name = "label11"; + this.label11.Size = new System.Drawing.Size(68, 17); + this.label11.TabIndex = 536; + this.label11.Text = "元,单买加"; + // + // line1 + // + this.line1.ForeColor = System.Drawing.SystemColors.ActiveCaption; + this.line1.Location = new System.Drawing.Point(535, 37); + this.line1.Name = "line1"; + this.line1.Size = new System.Drawing.Size(316, 10); + this.line1.TabIndex = 836; + this.line1.Text = "line1"; + // + // line2 + // + this.line2.ForeColor = System.Drawing.SystemColors.ActiveCaption; + this.line2.Location = new System.Drawing.Point(536, 74); + this.line2.Name = "line2"; + this.line2.Size = new System.Drawing.Size(315, 10); + this.line2.TabIndex = 837; + this.line2.Text = "line2"; + // + // ucGroupBoxEx4 + // + this.ucGroupBoxEx4.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left))); + this.ucGroupBoxEx4.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.ucGroupBoxEx4.BorderStyle = TemuKJD.UserComponent.UcGroupBoxEx.GroupBoxBorderStyle.ROUND; + this.ucGroupBoxEx4.Controls.Add(this.panelEx2); + this.ucGroupBoxEx4.Controls.Add(this.label2); + this.ucGroupBoxEx4.Controls.Add(this.dtpStartDay); + this.ucGroupBoxEx4.Controls.Add(this.btnGetProd); + this.ucGroupBoxEx4.Location = new System.Drawing.Point(147, 2); + this.ucGroupBoxEx4.Name = "ucGroupBoxEx4"; + this.ucGroupBoxEx4.Size = new System.Drawing.Size(312, 140); + this.ucGroupBoxEx4.TabIndex = 666; + this.ucGroupBoxEx4.TabStop = false; + this.ucGroupBoxEx4.Text = "查询活动商品"; + // + // panelEx2 + // + this.panelEx2.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.panelEx2.CanvasColor = System.Drawing.SystemColors.Control; + this.panelEx2.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; + this.panelEx2.DisabledBackColor = System.Drawing.Color.Empty; + this.panelEx2.Location = new System.Drawing.Point(125, 105); + this.panelEx2.Margin = new System.Windows.Forms.Padding(4, 2, 2, 2); + this.panelEx2.Name = "panelEx2"; + this.panelEx2.Size = new System.Drawing.Size(66, 23); + this.panelEx2.Style.Alignment = System.Drawing.StringAlignment.Center; + this.panelEx2.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255))))); + this.panelEx2.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255))))); + this.panelEx2.Style.Border = DevComponents.DotNetBar.eBorderType.SingleLine; + this.panelEx2.Style.BorderColor.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.panelEx2.Style.ForeColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText; + this.panelEx2.Style.GradientAngle = 90; + this.panelEx2.StyleMouseDown.Alignment = System.Drawing.StringAlignment.Center; + this.panelEx2.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center; + this.panelEx2.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.panelEx2.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.panelEx2.StyleMouseOver.ForeColor.Color = System.Drawing.Color.White; + this.panelEx2.TabIndex = 859; + this.panelEx2.Text = "停止查询"; + this.panelEx2.Click += new System.EventHandler(this.btnStop_Click); + // + // label2 + // + this.label2.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.label2.AutoSize = true; + this.label2.Location = new System.Drawing.Point(10, 37); + this.label2.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(140, 17); + this.label2.TabIndex = 852; + this.label2.Text = "查询此时间以后上架商品"; + // + // dtpStartDay + // + this.dtpStartDay.Location = new System.Drawing.Point(150, 34); + this.dtpStartDay.Name = "dtpStartDay"; + this.dtpStartDay.Size = new System.Drawing.Size(146, 23); + this.dtpStartDay.TabIndex = 435; + // + // btnGetProd + // + this.btnGetProd.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; + this.btnGetProd.Cursor = System.Windows.Forms.Cursors.Hand; + this.btnGetProd.DisabledBackColor = System.Drawing.Color.Empty; + this.btnGetProd.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.btnGetProd.Location = new System.Drawing.Point(196, 105); + this.btnGetProd.Name = "btnGetProd"; + this.btnGetProd.Size = new System.Drawing.Size(100, 23); + this.btnGetProd.Style.Alignment = System.Drawing.StringAlignment.Center; + this.btnGetProd.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnGetProd.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnGetProd.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; + this.btnGetProd.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash; + this.btnGetProd.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None; + this.btnGetProd.Style.ForeColor.Color = System.Drawing.Color.White; + this.btnGetProd.Style.GradientAngle = 90; + this.btnGetProd.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center; + this.btnGetProd.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnGetProd.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnGetProd.TabIndex = 431; + this.btnGetProd.Text = "查询活动商品"; + this.btnGetProd.Click += new System.EventHandler(this.btnGetProd_Click); + // + // ucGroupBoxEx1 + // + this.ucGroupBoxEx1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left))); + this.ucGroupBoxEx1.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.ucGroupBoxEx1.BorderStyle = TemuKJD.UserComponent.UcGroupBoxEx.GroupBoxBorderStyle.ROUND; + this.ucGroupBoxEx1.Controls.Add(this.btnClearShopFilter); + this.ucGroupBoxEx1.Controls.Add(this.btnFilter); + this.ucGroupBoxEx1.Controls.Add(this.txtShopGroupFilter); + this.ucGroupBoxEx1.Controls.Add(this.txtShopNameFilter); + this.ucGroupBoxEx1.Controls.Add(this.label23); + this.ucGroupBoxEx1.Controls.Add(this.label22); + this.ucGroupBoxEx1.Controls.Add(this.btnRefreshApi); + this.ucGroupBoxEx1.Controls.Add(this.btnRefreshShop); + this.ucGroupBoxEx1.Location = new System.Drawing.Point(3, 2); + this.ucGroupBoxEx1.Name = "ucGroupBoxEx1"; + this.ucGroupBoxEx1.Size = new System.Drawing.Size(144, 140); + this.ucGroupBoxEx1.TabIndex = 399; + this.ucGroupBoxEx1.TabStop = false; + this.ucGroupBoxEx1.Text = "基础"; + // + // btnClearShopFilter + // + this.btnClearShopFilter.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.btnClearShopFilter.CanvasColor = System.Drawing.SystemColors.Control; + this.btnClearShopFilter.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; + this.btnClearShopFilter.DisabledBackColor = System.Drawing.Color.Empty; + this.btnClearShopFilter.Location = new System.Drawing.Point(59, 102); + this.btnClearShopFilter.Margin = new System.Windows.Forms.Padding(4, 2, 2, 2); + this.btnClearShopFilter.Name = "btnClearShopFilter"; + this.btnClearShopFilter.Size = new System.Drawing.Size(38, 23); + this.btnClearShopFilter.Style.Alignment = System.Drawing.StringAlignment.Center; + this.btnClearShopFilter.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255))))); + this.btnClearShopFilter.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255))))); + this.btnClearShopFilter.Style.Border = DevComponents.DotNetBar.eBorderType.SingleLine; + this.btnClearShopFilter.Style.BorderColor.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnClearShopFilter.Style.ForeColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText; + this.btnClearShopFilter.Style.GradientAngle = 90; + this.btnClearShopFilter.StyleMouseDown.Alignment = System.Drawing.StringAlignment.Center; + this.btnClearShopFilter.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center; + this.btnClearShopFilter.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnClearShopFilter.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnClearShopFilter.StyleMouseOver.ForeColor.Color = System.Drawing.Color.White; + this.btnClearShopFilter.TabIndex = 565; + this.btnClearShopFilter.Text = "清空\r\n"; + this.btnClearShopFilter.Click += new System.EventHandler(this.btnClearShopFilter_Click); + // + // btnFilter + // + this.btnFilter.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; + this.btnFilter.Cursor = System.Windows.Forms.Cursors.Hand; + this.btnFilter.DisabledBackColor = System.Drawing.Color.Empty; + this.btnFilter.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.btnFilter.Location = new System.Drawing.Point(100, 102); + this.btnFilter.Name = "btnFilter"; + this.btnFilter.Size = new System.Drawing.Size(38, 23); + this.btnFilter.Style.Alignment = System.Drawing.StringAlignment.Center; + this.btnFilter.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnFilter.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnFilter.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; + this.btnFilter.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash; + this.btnFilter.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None; + this.btnFilter.Style.ForeColor.Color = System.Drawing.Color.White; + this.btnFilter.Style.GradientAngle = 90; + this.btnFilter.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center; + this.btnFilter.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnFilter.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnFilter.TabIndex = 561; + this.btnFilter.Text = "筛选"; + this.btnFilter.Click += new System.EventHandler(this.btnFilter_Click); + // + // txtShopGroupFilter + // + this.txtShopGroupFilter.Location = new System.Drawing.Point(37, 74); + this.txtShopGroupFilter.Margin = new System.Windows.Forms.Padding(0, 2, 0, 2); + this.txtShopGroupFilter.Name = "txtShopGroupFilter"; + this.txtShopGroupFilter.Size = new System.Drawing.Size(101, 23); + this.txtShopGroupFilter.TabIndex = 557; + // + // txtShopNameFilter + // + this.txtShopNameFilter.Location = new System.Drawing.Point(37, 47); + this.txtShopNameFilter.Margin = new System.Windows.Forms.Padding(0, 2, 0, 2); + this.txtShopNameFilter.Name = "txtShopNameFilter"; + this.txtShopNameFilter.Size = new System.Drawing.Size(101, 23); + this.txtShopNameFilter.TabIndex = 556; + // + // label23 + // + this.label23.AutoSize = true; + this.label23.Location = new System.Drawing.Point(5, 76); + this.label23.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0); + this.label23.Name = "label23"; + this.label23.Size = new System.Drawing.Size(32, 17); + this.label23.TabIndex = 539; + this.label23.Text = "备注"; + // + // label22 + // + this.label22.AutoSize = true; + this.label22.Location = new System.Drawing.Point(5, 50); + this.label22.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0); + this.label22.Name = "label22"; + this.label22.Size = new System.Drawing.Size(32, 17); + this.label22.TabIndex = 538; + this.label22.Text = "店名"; + // + // btnRefreshApi + // + this.btnRefreshApi.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.btnRefreshApi.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; + this.btnRefreshApi.Cursor = System.Windows.Forms.Cursors.Hand; + this.btnRefreshApi.DisabledBackColor = System.Drawing.Color.Empty; + this.btnRefreshApi.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.btnRefreshApi.Location = new System.Drawing.Point(74, 19); + this.btnRefreshApi.Name = "btnRefreshApi"; + this.btnRefreshApi.Size = new System.Drawing.Size(64, 24); + this.btnRefreshApi.Style.Alignment = System.Drawing.StringAlignment.Center; + this.btnRefreshApi.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnRefreshApi.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnRefreshApi.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; + this.btnRefreshApi.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash; + this.btnRefreshApi.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None; + this.btnRefreshApi.Style.ForeColor.Color = System.Drawing.Color.White; + this.btnRefreshApi.Style.GradientAngle = 90; + this.btnRefreshApi.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center; + this.btnRefreshApi.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnRefreshApi.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnRefreshApi.TabIndex = 438; + this.btnRefreshApi.Text = "刷新授权"; + this.btnRefreshApi.Click += new System.EventHandler(this.btnRefreshApi_Click); + // + // btnRefreshShop + // + this.btnRefreshShop.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.btnRefreshShop.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; + this.btnRefreshShop.Cursor = System.Windows.Forms.Cursors.Hand; + this.btnRefreshShop.DisabledBackColor = System.Drawing.Color.Empty; + this.btnRefreshShop.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.btnRefreshShop.Location = new System.Drawing.Point(8, 19); + this.btnRefreshShop.Name = "btnRefreshShop"; + this.btnRefreshShop.Size = new System.Drawing.Size(64, 24); + this.btnRefreshShop.Style.Alignment = System.Drawing.StringAlignment.Center; + this.btnRefreshShop.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnRefreshShop.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnRefreshShop.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; + this.btnRefreshShop.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash; + this.btnRefreshShop.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None; + this.btnRefreshShop.Style.ForeColor.Color = System.Drawing.Color.White; + this.btnRefreshShop.Style.GradientAngle = 90; + this.btnRefreshShop.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center; + this.btnRefreshShop.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnRefreshShop.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnRefreshShop.TabIndex = 431; + this.btnRefreshShop.Text = "刷新店铺"; + this.btnRefreshShop.Click += new System.EventHandler(this.btnRefreshShop_Click); + // + // splitContainer3 + // + 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.splitContainer2); + // + // splitContainer3.Panel2 + // + this.splitContainer3.Panel2.Controls.Add(this.splitContainer4); + this.splitContainer3.Size = new System.Drawing.Size(1571, 402); + this.splitContainer3.SplitterDistance = 372; + this.splitContainer3.TabIndex = 1; + // + // splitContainer2 + // + this.splitContainer2.Dock = System.Windows.Forms.DockStyle.Fill; + this.splitContainer2.FixedPanel = System.Windows.Forms.FixedPanel.Panel1; + this.splitContainer2.Location = new System.Drawing.Point(0, 0); + this.splitContainer2.Name = "splitContainer2"; + // + // splitContainer2.Panel1 + // + this.splitContainer2.Panel1.Controls.Add(this.pbShopLoading); + this.splitContainer2.Panel1.Controls.Add(this.dgvShop); + this.splitContainer2.Panel1.Padding = new System.Windows.Forms.Padding(4, 0, 0, 0); + // + // splitContainer2.Panel2 + // + this.splitContainer2.Panel2.Controls.Add(this.chkActivity); + this.splitContainer2.Panel2.Controls.Add(this.btnUpload); + this.splitContainer2.Panel2.Controls.Add(this.txtTest20981); + this.splitContainer2.Panel2.Controls.Add(this.btnTest20981); + this.splitContainer2.Panel2.Controls.Add(this.chkUseExtCodePrice); + this.splitContainer2.Panel2.Controls.Add(this.pbLoading); + this.splitContainer2.Panel2.Controls.Add(this.dgvActProduct); + this.splitContainer2.Panel2.Padding = new System.Windows.Forms.Padding(0, 0, 4, 0); + this.splitContainer2.Size = new System.Drawing.Size(1571, 372); + this.splitContainer2.SplitterDistance = 326; + this.splitContainer2.TabIndex = 0; + // + // pbShopLoading + // + this.pbShopLoading.Anchor = System.Windows.Forms.AnchorStyles.None; + this.pbShopLoading.Image = global::TemuKJD.Properties.Resources.loading_blue; + this.pbShopLoading.Location = new System.Drawing.Point(138, 161); + this.pbShopLoading.Name = "pbShopLoading"; + this.pbShopLoading.Size = new System.Drawing.Size(50, 50); + this.pbShopLoading.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; + this.pbShopLoading.TabIndex = 189; + this.pbShopLoading.TabStop = false; + this.pbShopLoading.Visible = false; + // + // dgvShop + // + this.dgvShop.AllowUserToAddRows = false; + this.dgvShop.AllowUserToDeleteRows = false; + dataGridViewCellStyle8.BackColor = System.Drawing.Color.WhiteSmoke; + this.dgvShop.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle8; + this.dgvShop.AutoRowNumber = true; + this.dgvShop.BackgroundColor = System.Drawing.Color.White; + this.dgvShop.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + dataGridViewCellStyle9.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; + dataGridViewCellStyle9.BackColor = System.Drawing.SystemColors.Control; + dataGridViewCellStyle9.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + dataGridViewCellStyle9.ForeColor = System.Drawing.SystemColors.WindowText; + dataGridViewCellStyle9.SelectionBackColor = System.Drawing.SystemColors.Highlight; + dataGridViewCellStyle9.SelectionForeColor = System.Drawing.SystemColors.HighlightText; + dataGridViewCellStyle9.WrapMode = System.Windows.Forms.DataGridViewTriState.False; + this.dgvShop.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle9; + this.dgvShop.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.dgvShop.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { + this.colSelect, + this.colShopLoginName, + this.colShopId, + this.colShopName, + this.colShopNotes, + this.colSelectProduct, + this.colLoginStatus, + this.colApiStatus, + this.colCanUse, + this.colRemaining, + this.colMessage}); + this.dgvShop.Dock = System.Windows.Forms.DockStyle.Fill; + this.dgvShop.Location = new System.Drawing.Point(4, 0); + this.dgvShop.MultiSelectCheckBox = true; + this.dgvShop.Name = "dgvShop"; + this.dgvShop.ReadOnly = true; + this.dgvShop.RowHeadersWidth = 25; + this.dgvShop.RowTemplate.Height = 23; + this.dgvShop.Size = new System.Drawing.Size(322, 372); + this.dgvShop.TabIndex = 6; + this.dgvShop.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dgvShop_CellContentClick); + // + // colSelect + // + this.colSelect.HeaderText = "全选"; + this.colSelect.Name = "colSelect"; + this.colSelect.ReadOnly = true; + this.colSelect.Resizable = System.Windows.Forms.DataGridViewTriState.True; + this.colSelect.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; + this.colSelect.Width = 28; + // + // colShopLoginName + // + this.colShopLoginName.HeaderText = "店铺登录名"; + this.colShopLoginName.Name = "colShopLoginName"; + this.colShopLoginName.ReadOnly = true; + this.colShopLoginName.Visible = false; + // + // colShopId + // + this.colShopId.HeaderText = "店铺Id"; + this.colShopId.Name = "colShopId"; + this.colShopId.ReadOnly = true; + this.colShopId.Visible = false; + this.colShopId.Width = 55; + // + // colShopName + // + this.colShopName.FillWeight = 150F; + this.colShopName.HeaderText = "店铺名称"; + this.colShopName.Name = "colShopName"; + this.colShopName.ReadOnly = true; + this.colShopName.Resizable = System.Windows.Forms.DataGridViewTriState.True; + this.colShopName.Width = 70; + // + // colShopNotes + // + this.colShopNotes.HeaderText = "备注"; + this.colShopNotes.Name = "colShopNotes"; + this.colShopNotes.ReadOnly = true; + this.colShopNotes.Width = 70; + // + // colSelectProduct + // + this.colSelectProduct.HeaderText = "选择商品"; + this.colSelectProduct.Name = "colSelectProduct"; + this.colSelectProduct.ReadOnly = true; + this.colSelectProduct.Resizable = System.Windows.Forms.DataGridViewTriState.True; + this.colSelectProduct.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; + this.colSelectProduct.Visible = false; + this.colSelectProduct.Width = 62; + // + // colLoginStatus + // + this.colLoginStatus.HeaderText = "状态"; + this.colLoginStatus.Name = "colLoginStatus"; + this.colLoginStatus.ReadOnly = true; + this.colLoginStatus.Resizable = System.Windows.Forms.DataGridViewTriState.True; + this.colLoginStatus.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; + this.colLoginStatus.Width = 38; + // + // colApiStatus + // + this.colApiStatus.HeaderText = "授权"; + this.colApiStatus.Name = "colApiStatus"; + this.colApiStatus.ReadOnly = true; + this.colApiStatus.Width = 38; + // + // colCanUse + // + this.colCanUse.HeaderText = "可用"; + this.colCanUse.Name = "colCanUse"; + this.colCanUse.ReadOnly = true; + this.colCanUse.Resizable = System.Windows.Forms.DataGridViewTriState.True; + this.colCanUse.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; + this.colCanUse.Visible = false; + this.colCanUse.Width = 28; + // + // colRemaining + // + this.colRemaining.HeaderText = "月限额"; + this.colRemaining.Name = "colRemaining"; + this.colRemaining.ReadOnly = true; + this.colRemaining.Visible = false; + // + // colMessage + // + this.colMessage.HeaderText = "消息"; + this.colMessage.Name = "colMessage"; + this.colMessage.ReadOnly = true; + // + // chkActivity + // + this.chkActivity.AutoSize = true; + this.chkActivity.Location = new System.Drawing.Point(11, 35); + this.chkActivity.Name = "chkActivity"; + this.chkActivity.Size = new System.Drawing.Size(75, 21); + this.chkActivity.TabIndex = 856; + this.chkActivity.Text = "报名活动"; + this.chkActivity.UseVisualStyleBackColor = true; + this.chkActivity.Visible = false; + // + // btnUpload + // + this.btnUpload.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.btnUpload.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; + this.btnUpload.Cursor = System.Windows.Forms.Cursors.Hand; + this.btnUpload.DisabledBackColor = System.Drawing.Color.Empty; + this.btnUpload.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.btnUpload.Location = new System.Drawing.Point(88, 34); + this.btnUpload.Name = "btnUpload"; + this.btnUpload.Size = new System.Drawing.Size(66, 23); + this.btnUpload.Style.Alignment = System.Drawing.StringAlignment.Center; + this.btnUpload.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnUpload.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnUpload.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; + this.btnUpload.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash; + this.btnUpload.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None; + this.btnUpload.Style.ForeColor.Color = System.Drawing.Color.White; + this.btnUpload.Style.GradientAngle = 90; + this.btnUpload.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center; + this.btnUpload.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnUpload.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnUpload.TabIndex = 855; + this.btnUpload.Text = "模拟上传"; + this.btnUpload.Visible = false; + // + // txtTest20981 + // + this.txtTest20981.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.txtTest20981.Location = new System.Drawing.Point(1018, 30); + this.txtTest20981.Margin = new System.Windows.Forms.Padding(0, 2, 0, 2); + this.txtTest20981.Name = "txtTest20981"; + this.txtTest20981.Size = new System.Drawing.Size(127, 23); + this.txtTest20981.TabIndex = 650; + this.txtTest20981.Visible = false; + // + // btnTest20981 + // + this.btnTest20981.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.btnTest20981.CanvasColor = System.Drawing.SystemColors.Control; + this.btnTest20981.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; + this.btnTest20981.DisabledBackColor = System.Drawing.Color.Empty; + this.btnTest20981.Location = new System.Drawing.Point(1149, 30); + this.btnTest20981.Margin = new System.Windows.Forms.Padding(4, 2, 2, 2); + this.btnTest20981.Name = "btnTest20981"; + this.btnTest20981.Size = new System.Drawing.Size(84, 23); + this.btnTest20981.Style.Alignment = System.Drawing.StringAlignment.Center; + this.btnTest20981.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255))))); + this.btnTest20981.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255))))); + this.btnTest20981.Style.Border = DevComponents.DotNetBar.eBorderType.SingleLine; + this.btnTest20981.Style.BorderColor.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnTest20981.Style.ForeColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText; + this.btnTest20981.Style.GradientAngle = 90; + this.btnTest20981.StyleMouseDown.Alignment = System.Drawing.StringAlignment.Center; + this.btnTest20981.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center; + this.btnTest20981.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnTest20981.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnTest20981.StyleMouseOver.ForeColor.Color = System.Drawing.Color.White; + this.btnTest20981.TabIndex = 649; + this.btnTest20981.Text = "测试20981"; + this.btnTest20981.Visible = false; + this.btnTest20981.Click += new System.EventHandler(this.btnTest20981_Click); + // + // chkUseExtCodePrice + // + this.chkUseExtCodePrice.AutoSize = true; + this.chkUseExtCodePrice.Checked = true; + this.chkUseExtCodePrice.CheckState = System.Windows.Forms.CheckState.Checked; + this.chkUseExtCodePrice.Location = new System.Drawing.Point(174, 35); + this.chkUseExtCodePrice.Name = "chkUseExtCodePrice"; + this.chkUseExtCodePrice.Size = new System.Drawing.Size(147, 21); + this.chkUseExtCodePrice.TabIndex = 717; + this.chkUseExtCodePrice.Text = "使用货号价格做基础价"; + this.chkUseExtCodePrice.UseVisualStyleBackColor = true; + this.chkUseExtCodePrice.Visible = false; + this.chkUseExtCodePrice.CheckedChanged += new System.EventHandler(this.chkUseExtCodePrice_CheckedChanged); + // + // 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(595, 161); + this.pbLoading.Name = "pbLoading"; + this.pbLoading.Size = new System.Drawing.Size(50, 50); + this.pbLoading.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; + this.pbLoading.TabIndex = 188; + this.pbLoading.TabStop = false; + this.pbLoading.Visible = false; + // + // dgvActProduct + // + this.dgvActProduct.AllowUserToAddRows = false; + this.dgvActProduct.AllowUserToDeleteRows = false; + dataGridViewCellStyle10.BackColor = System.Drawing.Color.WhiteSmoke; + this.dgvActProduct.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle10; + this.dgvActProduct.AutoRowNumber = true; + this.dgvActProduct.BackgroundColor = System.Drawing.Color.White; + this.dgvActProduct.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + dataGridViewCellStyle11.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; + dataGridViewCellStyle11.BackColor = System.Drawing.SystemColors.Control; + dataGridViewCellStyle11.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + dataGridViewCellStyle11.ForeColor = System.Drawing.SystemColors.WindowText; + dataGridViewCellStyle11.SelectionBackColor = System.Drawing.SystemColors.Highlight; + dataGridViewCellStyle11.SelectionForeColor = System.Drawing.SystemColors.HighlightText; + dataGridViewCellStyle11.WrapMode = System.Windows.Forms.DataGridViewTriState.False; + this.dgvActProduct.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle11; + this.dgvActProduct.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.dgvActProduct.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { + this.colCheck, + this.colSupplierId, + this.colSupplierName, + this.colLogin, + this.colInShop, + this.colSpuId, + this.colGoodsSn, + this.colImgUrl, + this.colProductSkcPic, + this.colProductName, + this.colProdPrice, + this.colStock, + this.colSaleCnt, + this.colUpdateTime, + this.ColDelete, + this.colOpResult}); + this.dgvActProduct.Dock = System.Windows.Forms.DockStyle.Fill; + this.dgvActProduct.Location = new System.Drawing.Point(0, 0); + this.dgvActProduct.MultiSelectCheckBox = true; + this.dgvActProduct.Name = "dgvActProduct"; + this.dgvActProduct.ReadOnly = true; + this.dgvActProduct.RowTemplate.Height = 23; + this.dgvActProduct.Size = new System.Drawing.Size(1237, 372); + this.dgvActProduct.TabIndex = 187; + this.dgvActProduct.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dgvSelectProduct_CellContentClick); + this.dgvActProduct.Scroll += new System.Windows.Forms.ScrollEventHandler(this.dgvSelectProduct_Scroll); + // + // colCheck + // + this.colCheck.Frozen = true; + 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; + this.colCheck.Width = 30; + // + // colSupplierId + // + this.colSupplierId.Frozen = true; + this.colSupplierId.HeaderText = "店铺Id"; + this.colSupplierId.Name = "colSupplierId"; + this.colSupplierId.ReadOnly = true; + // + // colSupplierName + // + dataGridViewCellStyle12.WrapMode = System.Windows.Forms.DataGridViewTriState.True; + this.colSupplierName.DefaultCellStyle = dataGridViewCellStyle12; + this.colSupplierName.Frozen = true; + this.colSupplierName.HeaderText = "店铺名称"; + this.colSupplierName.Name = "colSupplierName"; + this.colSupplierName.ReadOnly = true; + // + // colLogin + // + this.colLogin.HeaderText = "登录"; + this.colLogin.Name = "colLogin"; + this.colLogin.ReadOnly = true; + this.colLogin.Resizable = System.Windows.Forms.DataGridViewTriState.True; + this.colLogin.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; + this.colLogin.Width = 40; + // + // colInShop + // + this.colInShop.HeaderText = "进店"; + this.colInShop.Name = "colInShop"; + this.colInShop.ReadOnly = true; + this.colInShop.Resizable = System.Windows.Forms.DataGridViewTriState.True; + this.colInShop.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; + this.colInShop.Width = 40; + // + // colSpuId + // + this.colSpuId.HeaderText = "商品Id"; + this.colSpuId.Name = "colSpuId"; + this.colSpuId.ReadOnly = true; + this.colSpuId.Resizable = System.Windows.Forms.DataGridViewTriState.True; + this.colSpuId.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; + // + // colGoodsSn + // + this.colGoodsSn.HeaderText = "商品货号"; + this.colGoodsSn.Name = "colGoodsSn"; + this.colGoodsSn.ReadOnly = true; + // + // colImgUrl + // + this.colImgUrl.HeaderText = "图片地址"; + this.colImgUrl.Name = "colImgUrl"; + this.colImgUrl.ReadOnly = true; + this.colImgUrl.Visible = false; + // + // colProductSkcPic + // + this.colProductSkcPic.HeaderText = "图片"; + this.colProductSkcPic.ImageLayout = System.Windows.Forms.DataGridViewImageCellLayout.Zoom; + this.colProductSkcPic.Name = "colProductSkcPic"; + this.colProductSkcPic.ReadOnly = true; + this.colProductSkcPic.Width = 60; + // + // colProductName + // + dataGridViewCellStyle13.WrapMode = System.Windows.Forms.DataGridViewTriState.True; + this.colProductName.DefaultCellStyle = dataGridViewCellStyle13; + this.colProductName.HeaderText = "商品标题"; + this.colProductName.Name = "colProductName"; + this.colProductName.ReadOnly = true; + this.colProductName.Width = 140; + // + // colProdPrice + // + this.colProdPrice.HeaderText = "价格"; + this.colProdPrice.Name = "colProdPrice"; + this.colProdPrice.ReadOnly = true; + this.colProdPrice.Width = 90; + // + // colStock + // + this.colStock.HeaderText = "库存"; + this.colStock.Name = "colStock"; + this.colStock.ReadOnly = true; + // + // colSaleCnt + // + this.colSaleCnt.HeaderText = "销量"; + this.colSaleCnt.Name = "colSaleCnt"; + this.colSaleCnt.ReadOnly = true; + // + // colUpdateTime + // + dataGridViewCellStyle14.WrapMode = System.Windows.Forms.DataGridViewTriState.True; + this.colUpdateTime.DefaultCellStyle = dataGridViewCellStyle14; + this.colUpdateTime.FillWeight = 80F; + this.colUpdateTime.HeaderText = "上架时间"; + this.colUpdateTime.Name = "colUpdateTime"; + this.colUpdateTime.ReadOnly = true; + // + // ColDelete + // + this.ColDelete.HeaderText = "删除"; + this.ColDelete.Name = "ColDelete"; + this.ColDelete.ReadOnly = true; + this.ColDelete.Visible = false; + this.ColDelete.Width = 75; + // + // colOpResult + // + this.colOpResult.HeaderText = "操作结果"; + this.colOpResult.Name = "colOpResult"; + this.colOpResult.ReadOnly = true; + this.colOpResult.Width = 260; + // + // splitContainer4 + // + this.splitContainer4.Dock = System.Windows.Forms.DockStyle.Fill; + this.splitContainer4.FixedPanel = System.Windows.Forms.FixedPanel.Panel2; + this.splitContainer4.Location = new System.Drawing.Point(0, 0); + this.splitContainer4.Name = "splitContainer4"; + // + // splitContainer4.Panel1 + // + this.splitContainer4.Panel1.Controls.Add(this.statusBar); + // + // splitContainer4.Panel2 + // + this.splitContainer4.Panel2.Controls.Add(this.btnClear); + this.splitContainer4.Panel2.Controls.Add(this.panelEx1); + this.splitContainer4.Size = new System.Drawing.Size(1571, 26); + this.splitContainer4.SplitterDistance = 880; + this.splitContainer4.TabIndex = 3; + // + // statusBar + // + this.statusBar.BackColor = System.Drawing.Color.White; + this.statusBar.Dock = System.Windows.Forms.DockStyle.Fill; + this.statusBar.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.statusBar.Location = new System.Drawing.Point(0, 0); + this.statusBar.Margin = new System.Windows.Forms.Padding(0); + this.statusBar.Name = "statusBar"; + this.statusBar.Size = new System.Drawing.Size(880, 26); + this.statusBar.TabIndex = 2; + // + // btnClear + // + this.btnClear.Anchor = System.Windows.Forms.AnchorStyles.Right; + this.btnClear.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; + this.btnClear.Cursor = System.Windows.Forms.Cursors.Hand; + this.btnClear.DisabledBackColor = System.Drawing.Color.Empty; + this.btnClear.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.btnClear.Location = new System.Drawing.Point(475, 2); + this.btnClear.Name = "btnClear"; + this.btnClear.Size = new System.Drawing.Size(90, 21); + this.btnClear.Style.Alignment = System.Drawing.StringAlignment.Center; + this.btnClear.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnClear.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnClear.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; + this.btnClear.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash; + this.btnClear.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None; + this.btnClear.Style.ForeColor.Color = System.Drawing.Color.White; + this.btnClear.Style.GradientAngle = 90; + this.btnClear.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center; + this.btnClear.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnClear.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnClear.StyleMouseOver.ForeColor.Color = System.Drawing.Color.White; + this.btnClear.TabIndex = 440; + this.btnClear.Text = "清空结果"; + this.btnClear.Visible = false; + // + // panelEx1 + // + this.panelEx1.CanvasColor = System.Drawing.SystemColors.Control; + this.panelEx1.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; + this.panelEx1.DisabledBackColor = System.Drawing.Color.Empty; + this.panelEx1.Location = new System.Drawing.Point(568, 2); + this.panelEx1.Name = "panelEx1"; + this.panelEx1.Size = new System.Drawing.Size(115, 21); + this.panelEx1.Style.Alignment = System.Drawing.StringAlignment.Center; + this.panelEx1.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255))))); + this.panelEx1.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255))))); + this.panelEx1.Style.Border = DevComponents.DotNetBar.eBorderType.SingleLine; + this.panelEx1.Style.BorderColor.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.panelEx1.Style.ForeColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText; + this.panelEx1.Style.GradientAngle = 90; + this.panelEx1.StyleMouseDown.Alignment = System.Drawing.StringAlignment.Center; + this.panelEx1.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center; + this.panelEx1.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.panelEx1.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.panelEx1.StyleMouseOver.ForeColor.Color = System.Drawing.Color.White; + this.panelEx1.TabIndex = 668; + this.panelEx1.Text = "停止当前操作"; + this.panelEx1.Visible = false; + // + // panel1 + // + this.panel1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.panel1.Location = new System.Drawing.Point(699, 552); + this.panel1.Name = "panel1"; + this.panel1.Size = new System.Drawing.Size(881, 86); + this.panel1.TabIndex = 189; + this.panel1.Paint += new System.Windows.Forms.PaintEventHandler(this.panel1_Paint); + // + // PDDAddActivityForm + // + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; + this.BackColor = System.Drawing.Color.White; + this.ClientSize = new System.Drawing.Size(1583, 641); + 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 = "PDDAddActivityForm"; + this.Text = "PDDDBProdUserSelectForm"; + this.Load += new System.EventHandler(this.UserSelectDbProductForm_Load); + this.VisibleChanged += new System.EventHandler(this.UserSelectDbProductForm_VisibleChanged); + this.splitContainer1.Panel1.ResumeLayout(false); + this.splitContainer1.Panel2.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).EndInit(); + this.splitContainer1.ResumeLayout(false); + this.ucGroupBoxEx2.ResumeLayout(false); + this.ucGroupBoxEx2.PerformLayout(); + this.panel4.ResumeLayout(false); + this.panel3.ResumeLayout(false); + this.panel3.PerformLayout(); + this.fPnlPriceRule.ResumeLayout(false); + this.fPnlPriceRule.PerformLayout(); + this.ucGroupBoxEx4.ResumeLayout(false); + this.ucGroupBoxEx4.PerformLayout(); + this.ucGroupBoxEx1.ResumeLayout(false); + this.ucGroupBoxEx1.PerformLayout(); + this.splitContainer3.Panel1.ResumeLayout(false); + this.splitContainer3.Panel2.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.splitContainer3)).EndInit(); + this.splitContainer3.ResumeLayout(false); + this.splitContainer2.Panel1.ResumeLayout(false); + this.splitContainer2.Panel2.ResumeLayout(false); + this.splitContainer2.Panel2.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.splitContainer2)).EndInit(); + this.splitContainer2.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.pbShopLoading)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.dgvShop)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.pbLoading)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.dgvActProduct)).EndInit(); + this.splitContainer4.Panel1.ResumeLayout(false); + this.splitContainer4.Panel2.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.splitContainer4)).EndInit(); + this.splitContainer4.ResumeLayout(false); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.SplitContainer splitContainer1; + private UserComponent.UcGroupBoxEx ucGroupBoxEx4; + private UserComponent.UcGroupBoxEx ucGroupBoxEx1; + private DevComponents.DotNetBar.PanelEx btnRefreshShop; + private System.Windows.Forms.SplitContainer splitContainer3; + private System.Windows.Forms.SplitContainer splitContainer2; + private UserComponent.DataGridViewEx dgvShop; + private UserComponent.DataGridViewEx dgvActProduct; + private System.Windows.Forms.SplitContainer splitContainer4; + private UserControls.StatusBarUserControl statusBar; + private System.Windows.Forms.PictureBox pbLoading; + private System.Windows.Forms.Panel panel1; + private UserComponent.UcGroupBoxEx ucGroupBoxEx2; + private System.Windows.Forms.Label label11; + private System.Windows.Forms.TextBox txtAddMorePrice; + private System.Windows.Forms.TextBox txtAddTimes; + private System.Windows.Forms.TextBox txtStockNum; + private System.Windows.Forms.Label label4; + private DevComponents.DotNetBar.PanelEx btnStop; + private System.Windows.Forms.Panel panel3; + private System.Windows.Forms.Label lblNewAddPrice; + private System.Windows.Forms.Panel panel4; + private System.Windows.Forms.Label label15; + private System.Windows.Forms.TextBox txtSinglePriceAdd; + private System.Windows.Forms.Label label14; + private UserComponent.UcCheckBox chkStepAddPrice; + private DevComponents.DotNetBar.PanelEx btnClearDgv; + private UserComponent.UcCheckBox chkAddMorePriceFirst; + private System.Windows.Forms.FlowLayoutPanel fPnlPriceRule; + private UcAddPrice ucAddPrice1; + private UcAddPrice ucAddPrice3; + private System.Windows.Forms.Label label10; + private System.Windows.Forms.Label label9; + private DevComponents.DotNetBar.PanelEx btnClear; + private DevComponents.DotNetBar.PanelEx panelEx1; + private System.Windows.Forms.TextBox txtTest20981; + private DevComponents.DotNetBar.PanelEx btnTest20981; + private UserComponent.UcCheckBox chk15996; + private UserComponent.UcCheckBox chk21365; + private UserComponent.UcCheckBox chk20981; + private UserComponent.UcCheckBox chk22347; + private UserComponent.UcCheckBox chkUseExtCodePrice; + private DevComponents.DotNetBar.PanelEx btnApiUpload; + private DevComponents.DotNetBar.PanelEx btnRefreshApi; + private System.Windows.Forms.TextBox txtAddShippingFeeTimes; + private System.Windows.Forms.Label label12; + private System.Windows.Forms.PictureBox pbShopLoading; + private DevComponents.DotNetBar.Controls.Line line1; + private DevComponents.DotNetBar.Controls.Line line2; + private DevComponents.DotNetBar.PanelEx btnClearShopFilter; + private DevComponents.DotNetBar.PanelEx btnFilter; + private System.Windows.Forms.TextBox txtShopGroupFilter; + private System.Windows.Forms.TextBox txtShopNameFilter; + private System.Windows.Forms.Label label23; + private System.Windows.Forms.Label label22; + private System.Windows.Forms.DataGridViewCheckBoxColumn colSelect; + private System.Windows.Forms.DataGridViewTextBoxColumn colShopLoginName; + private System.Windows.Forms.DataGridViewTextBoxColumn colShopId; + private System.Windows.Forms.DataGridViewTextBoxColumn colShopName; + private System.Windows.Forms.DataGridViewTextBoxColumn colShopNotes; + private System.Windows.Forms.DataGridViewLinkColumn colSelectProduct; + private System.Windows.Forms.DataGridViewLinkColumn colLoginStatus; + private System.Windows.Forms.DataGridViewTextBoxColumn colApiStatus; + private System.Windows.Forms.DataGridViewCheckBoxColumn colCanUse; + private System.Windows.Forms.DataGridViewTextBoxColumn colRemaining; + private System.Windows.Forms.DataGridViewTextBoxColumn colMessage; + private DevComponents.DotNetBar.PanelEx btnGetProd; + private System.Windows.Forms.Label label1; + private DevComponents.DotNetBar.PanelEx btnUpload; + private UserComponent.UcCheckBox chkActivity; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.DateTimePicker dtpStartDay; + private System.Windows.Forms.DataGridViewCheckBoxColumn colCheck; + private System.Windows.Forms.DataGridViewTextBoxColumn colSupplierId; + private System.Windows.Forms.DataGridViewTextBoxColumn colSupplierName; + private System.Windows.Forms.DataGridViewLinkColumn colLogin; + private System.Windows.Forms.DataGridViewLinkColumn colInShop; + private System.Windows.Forms.DataGridViewLinkColumn colSpuId; + private System.Windows.Forms.DataGridViewTextBoxColumn colGoodsSn; + private System.Windows.Forms.DataGridViewTextBoxColumn colImgUrl; + private System.Windows.Forms.DataGridViewImageColumn colProductSkcPic; + private System.Windows.Forms.DataGridViewTextBoxColumn colProductName; + private System.Windows.Forms.DataGridViewTextBoxColumn colProdPrice; + private System.Windows.Forms.DataGridViewTextBoxColumn colStock; + private System.Windows.Forms.DataGridViewTextBoxColumn colSaleCnt; + private System.Windows.Forms.DataGridViewTextBoxColumn colUpdateTime; + private System.Windows.Forms.DataGridViewLinkColumn ColDelete; + private System.Windows.Forms.DataGridViewTextBoxColumn colOpResult; + private DevComponents.DotNetBar.PanelEx panelEx2; + private UserComponent.UcCheckBox chkDownNoPrice; + } +} \ No newline at end of file diff --git a/TEMUKJD/PDDForms/ProductForms/ActivityForms/PDDAddActivityForm.cs b/TEMUKJD/PDDForms/ProductForms/ActivityForms/PDDAddActivityForm.cs new file mode 100644 index 0000000..443280b --- /dev/null +++ b/TEMUKJD/PDDForms/ProductForms/ActivityForms/PDDAddActivityForm.cs @@ -0,0 +1,4434 @@ +using AllBase; +using AllBase.Helper; +using AllBase.Model.Result; +using NaiBa.Util.Extension; +using Newtonsoft.Json.Linq; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.IO; +using System.Linq; +//using System.Net; +using System.Net.Http; +using System.Text; +using System.Threading; +using System.Threading.Tasks; +using System.Windows.Forms; +using TemuKJD.Extension; +using TemuKJD.BaseForms; +using TemuKJD.ToolForms; +using Work; +using TemuKJD.PDDForms.ShopForms; +using TemuKJD.BLL; +using System.Text.RegularExpressions; +using AllBase.Model.Result.PDDResult; +using AllBase.Model.Param.PDDProdParam; +using CefSharp; +using TemuKJD.BLL.PddApi; +using System.Drawing.Imaging; +using TemuKJD.PDDForms.ProductSelectForms; +using AllBase.Model.Result.PDDResult.PDDActivityResult; + +namespace TemuKJD.PDDForms.ProductForms.ActivityForms +{ + public partial class PDDAddActivityForm : BaseForm + { + public CancellationTokenSource cancellationTokenSource { get; set; } = null; + public bool IsLoadComplate { get; set; } = false; + + bool isInit = false; + bool isChanceApi = true; + bool isStepAddPrice = false; + CheckBox chkSelectAll = null; + Dictionary dicShopGetCount = new Dictionary(); + Dictionary> dicNotSupportCate = new Dictionary>(); + public NaiBa.Util.ConcurrentList lstTemuDBProductSelect = new NaiBa.Util.ConcurrentList(); + public NaiBa.Util.ConcurrentList lstActListProdInfo = new NaiBa.Util.ConcurrentList(); + NaiBa.Util.ConcurrentList lstAddPriceRule = new NaiBa.Util.ConcurrentList(); + AddPriceRule defaultAddPriceRule = null; + PddAddActivityRule pddUploadRule = null; + public PDDAddActivityForm() + { + InitializeComponent(); + } + + private void UserSelectDbProductForm_Load(object sender, EventArgs e) + { + //Task.Run(() => { InitPddToken(); }); + RefreshApi(); + + dtpStartDay.Value = DateTime.Now.AddDays(-30); + + this.splitContainer1.Dock = DockStyle.Fill; + this.panel1.Location = new Point(40, 30); + this.panel1.Width = this.Width - 80; + this.panel1.Height = this.Height - 60; + this.panel1.SendToBack(); + + //lstTemuDBProductSelect = NaiBa.Util.Helper.ConfigHelper.LoadConfig>("pdd_db_prod_upload_list"); + //if (lstTemuDBProductSelect == null) + // lstTemuDBProductSelect = new NaiBa.Util.ConcurrentList(); + + lstAddPriceRule = NaiBa.Util.Helper.ConfigHelper.LoadConfig>("pdd_add_price_rules_for_activity"); + if (lstAddPriceRule == null) + { + lstAddPriceRule = new NaiBa.Util.ConcurrentList(); + lstAddPriceRule.Add(new AddPriceRule() { MoreThanPrice = 0, LessThanPrice = 10, AddPriceTimes = 2, AddMorePrice = 5, SinglePriceAdd = 1 }); + lstAddPriceRule.Add(new AddPriceRule() { MoreThanPrice = 10, LessThanPrice = 20, AddPriceTimes = 2, AddMorePrice = 5, SinglePriceAdd = 1 }); + lstAddPriceRule.Add(new AddPriceRule() { MoreThanPrice = 20, LessThanPrice = 999, AddPriceTimes = 2, AddMorePrice = 5, SinglePriceAdd = 1 }); + } + this.fPnlPriceRule.Controls.Clear(); + foreach (var priceItem in lstAddPriceRule) + { + var ucPrice = new UcAddPrice() + { + PriceEnd = priceItem.LessThanPrice, + PriceStart = priceItem.MoreThanPrice, + PriceAddTimes = priceItem.AddPriceTimes, + PriceAddMore = priceItem.AddMorePrice, + SinglePriceAdd = priceItem.SinglePriceAdd, + }; + if (IsSetFontScaleNone) + { + Font of = ucPrice.Font; + Font nf = new Font(of.FontFamily, (of.Size * 96.0 / FormDpi).ParseToFloat(), of.Style, of.Unit, of.GdiCharSet, of.Bold); + ucPrice.Font = nf; + } + + this.fPnlPriceRule.Controls.Add(ucPrice); + ucPrice.PriceChange += ucAddPrice_PriceChange; + } + + defaultAddPriceRule = NaiBa.Util.Helper.ConfigHelper.LoadConfig("pdd_default_add_price_rule_for_activity"); + if (defaultAddPriceRule == null) + { + defaultAddPriceRule = new AddPriceRule() { AddPriceTimes = 1.3m, AddMorePrice = 1, SinglePriceAdd = 1 }; + } + this.txtAddTimes.Text = defaultAddPriceRule.AddPriceTimes.ToString(); + this.txtAddMorePrice.Text = defaultAddPriceRule.AddMorePrice.ToString(); + this.txtSinglePriceAdd.Text = defaultAddPriceRule.SinglePriceAdd.ToString(); + this.txtStockNum.Text = defaultAddPriceRule.StockNum.ToString(); + this.txtAddShippingFeeTimes.Text = defaultAddPriceRule.AddShippingFeeTimes.ToString(); + this.chkAddMorePriceFirst.Checked = defaultAddPriceRule.AddMorePriceFirst; + + pddUploadRule = NaiBa.Util.Helper.ConfigHelper.LoadConfig("pdd_add_active_rule"); + if (pddUploadRule == null) + pddUploadRule = new PddAddActivityRule(); + this.chk20981.Checked = pddUploadRule.sign20981; + this.chk15996.Checked = pddUploadRule.sign15996; + this.chk21365.Checked = pddUploadRule.sign21365; + this.chk22347.Checked = pddUploadRule.sign22347; + this.chkUseExtCodePrice.Checked = pddUploadRule.IsUseExtCodePrice; + + this.panel1.SendToBack(); + chkSelectAll = dgvShop.Columns["colSelect"].AddHeaderCheckBox(HorizontalAlignment.Center, 0, 0, null, null, false); + dgvShop.Columns["colSelect"].HeaderText = ""; + //chkSelectAll.Width = chkSelectAll.Height = 13; + chkSelectAll.CheckedChanged += chkSelectAll_CheckedChanged; + chkSelectAll.Checked = true; + + this.dgvActProduct.AddSelectorColumn("colCheck"); + + dgvActProduct.AddImgColumn("colProductSkcPic", "colImgUrl"); + //dgvActProduct.AddImgColumn("colSkuFakeImg", "colSkuFakeImgUrl"); + + IsLoadComplate = true; + } + + private void chkSelectAll_CheckedChanged(object sender, EventArgs e) + { + if (!chkSelectAll.Checked) + { + foreach (DataGridViewRow row in dgvShop.Rows) + { + row.Cells["colSelect"].Value = false; + } + } + else + { + //var list = GlobalConfig.ShopLoginList.Where(s => s.LoginStatus == "登录成功").Select(ss => ss.ShopId); + foreach (DataGridViewRow row in dgvShop.Rows) + { + //if (list.Any(l => l == row.Cells["colShopId"]?.Value?.ToString())) + row.Cells["colSelect"].Value = true; + } + } + } + + private void btnRefreshShop_Click(object sender, EventArgs e) + { + RefreshShop(); + } + + private void UserSelectDbProductForm_VisibleChanged(object sender, EventArgs e) + { + if (Visible == true) + { + RefreshShop(); + isInit = true; + } + } + + private void RefreshShop() + { + // 店铺Id + var selectIds = dgvShop.Rows.Cast().Where(row + => row.Cells["colSelect"]?.Value.ParseToBool() == true).Select(r => r.Cells["colShopId"]?.Value.ToString()).ToList(); + // 获取被删除的店铺 + List dgvRowList = dgvShop.Rows.Cast().Where(row + => !GlobalConfig.ShopLoginList.Any(s => s.ShopId == row.Cells["colShopId"]?.Value?.ToString())).ToList(); + // 更新被删除的店铺列表 + foreach (var row in dgvRowList) + { + dgvShop.Rows.Remove(row); + } + // 绑定其他店铺(含新导入的店铺) + foreach (ShopLoginInfo shopEntity in GlobalConfig.ShopLoginList) + { + if (!string.IsNullOrEmpty(shopEntity.ShopId)) + BindShop(shopEntity, selectIds); + } + } + + private void BindShop(ShopLoginInfo shopEntity, List selectShopId = null) + { + if (shopEntity == null) + return; + if (selectShopId == null) + selectShopId = new List(); + + bool canUse = shopEntity.LoginStatus == "登录成功"; + //canUse = true; // 内部库不需要校验登录状态 + var row = dgvShop.Rows.Cast().FirstOrDefault(p => p.Cells.GetCellValueFromColumnName("colShopId").ParseToString() == shopEntity.ShopId); + if (row == null) + { + var index = this.dgvShop.Rows.Add( + false, //!isInit || (selectShopId.Contains(shopEntity.ShopId) && canUse), + shopEntity.LoginName, + shopEntity.ShopId, + shopEntity.ShopAccount, + shopEntity.Notes, + "选择商品", + canUse ? "在线" : "掉线", + shopEntity.AuthExpiresTime > DateTime.Now ? "有效" : "过期", + canUse, + shopEntity.AddProductRemaining, + shopEntity.Message + ); + row = dgvShop.Rows[index]; + } + else + { + row.Cells["colSelect"].Value = !isInit || (selectShopId.Contains(shopEntity.ShopId) && canUse); + row.Cells["colShopLoginName"].Value = shopEntity.LoginName; + row.Cells["colShopName"].Value = shopEntity.ShopAccount; + row.Cells["colShopNotes"].Value = shopEntity.Notes; + row.Cells["colLoginStatus"].Value = canUse ? "在线" : "掉线"; + row.Cells["colApiStatus"].Value = shopEntity.AuthExpiresTime > DateTime.Now ? "有效" : "过期"; + row.Cells["colLoginStatus"].Style.ForeColor = canUse ? Color.Green : Color.Red; + row.Cells["colCanUse"].Value = canUse; + row.Cells["colRemaining"].Value = shopEntity.AddProductRemaining; + row.Cells["colMessage"].Value = shopEntity.Message; + } + displayShopStatus(shopEntity); + } + + void displayShopStatus(ShopLoginInfo shop) + { + bool canUse = shop.LoginStatus == "登录成功"; + bool apiAuth = shop.AuthExpiresTime > DateTime.Now; + var rows = this.dgvShop.Rows.Cast().Where(r => r.Cells["colShopId"].Value.ParseToString() == shop?.ShopId); + foreach (var row in rows) + { + row.Cells["colCanUse"].Value = canUse; + row.Cells["colLoginStatus"].Value = canUse ? "在线" : "掉线"; + (row.Cells["colLoginStatus"] as DataGridViewLinkCell).Style.ForeColor = canUse ? Color.Blue : Color.Red; + (row.Cells["colLoginStatus"] as DataGridViewLinkCell).LinkColor = canUse ? Color.Blue : Color.Red; + (row.Cells["colLoginStatus"] as DataGridViewLinkCell).ActiveLinkColor = canUse ? Color.LightBlue : Color.OrangeRed; + (row.Cells["colLoginStatus"] as DataGridViewLinkCell).VisitedLinkColor = canUse ? Color.DarkBlue : Color.DarkRed; + row.Cells["colApiStatus"].Style.ForeColor = apiAuth ? Color.Green : Color.OrangeRed; + } + } + + private void dgvShop_CellContentClick(object sender, DataGridViewCellEventArgs e) + { + if (e.ColumnIndex < 0 || e.RowIndex < 0) + return; + string headerText = dgvShop.Columns[e.ColumnIndex].HeaderText; + string columnName = dgvShop.Columns[e.ColumnIndex].Name; + string shopId = dgvShop.Rows[e.RowIndex].Cells["colShopId"].Value.ParseToString(); + string shopAccount = dgvShop.Rows[e.RowIndex].Cells["colShopName"].Value.ToString(); + var shop = GlobalConfig.ShopLoginList.FirstOrDefault(s => s.ShopId == shopId.ToString()); + var row = dgvShop.Rows[e.RowIndex]; + switch (columnName) + { + case "colSelect": + //if (row.Cells["colCanUse"].Value.ParseToBool()) + { + row.Cells["colSelect"].Value = !row.Cells["colSelect"].Value.ParseToBool(); + + chkSelectAll.CheckedChanged -= chkSelectAll_CheckedChanged; + if (dgvShop.Rows.Cast().All(r => r.Cells["colSelect"].Value.ParseToBool())) + chkSelectAll.Checked = true; + else + chkSelectAll.Checked = false; + chkSelectAll.CheckedChanged += chkSelectAll_CheckedChanged; + } + //else + { + //BaseMsgForm.ShowInfo("店铺未登录!"); + } + break; + case "colLoginStatus": + if (PDDShopListForm.Instance == null) + PDDShopListForm.Instance = new PDDShopListForm(); + PDDShopListForm.Instance.CheckShopLogin(new string[] { shop.LoginName }, false); + PDDShopLoginForm shopLoginForm = new PDDShopLoginForm(shop); + if (shop.LoginStatus != "登录成功") + { + shopLoginForm.openType = EnumOpenType.login; + shopLoginForm.ShowDialog(); + RefreshShop(); + } + else + { + shopLoginForm.openType = EnumOpenType.manage; + shopLoginForm.WindowState = FormWindowState.Maximized; + shopLoginForm.Show(); + } + break; + case "colSelectProduct": // 认领商品 + PDDDBProdListForm dbProductForm = new PDDDBProdListForm(shop); + dbProductForm.ShowDialog(); + this.RefreshShop(); + break; + } + } + + private void dgvSelectProduct_CellContentClick(object sender, DataGridViewCellEventArgs e) + { + if (e.ColumnIndex < 0 || e.RowIndex < 0) + return; + string headerText = dgvActProduct.Columns[e.ColumnIndex].HeaderText; + var shopId = dgvActProduct.Rows[e.RowIndex].Cells["colSupplierId"].Value.ParseToString(); + var shop = GlobalConfig.ShopLoginList.FirstOrDefault(s => s.ShopId == shopId); + + switch (headerText) + { + case "删除": + if (BaseMsgForm.ShowConfirm("确定删除商品吗?删除后不可恢复!").DialogResult == DialogResult.Cancel) + return; + break; + case "登录": + { + PDDShopLoginForm shopLoginForm = new PDDShopLoginForm(shop); + shopLoginForm.openType = EnumOpenType.login; + shopLoginForm.ShowDialog(); + RefreshShop(); + } + break; + case "进店": + { + PDDShopLoginForm shopLoginForm = new PDDShopLoginForm(shop); + shopLoginForm.openType = EnumOpenType.manage; + shopLoginForm.WindowState = FormWindowState.Maximized; + shopLoginForm.InitUrl = "https://mms.pinduoduo.com/home/"; + shopLoginForm.Show(); + } + break; + case "图片": + { + ShowImgForm imgFrom = new ShowImgForm(dgvActProduct.Rows[e.RowIndex].Cells["colImgUrl"].Value.ParseToString()); + imgFrom.ShowDialog(); + break; + } + case "SKU替换图": + { + ShowImgForm imgFrom = new ShowImgForm(dgvActProduct.Rows[e.RowIndex].Cells["colSkuFakeImgUrl"].Value.ParseToString()); + imgFrom.ShowDialog(); + break; + } + case "": + dgvActProduct.Rows[e.RowIndex].Cells["colCheck"].Value = !(bool)dgvActProduct.Rows[e.RowIndex].Cells["colCheck"].Value; + break; + default: + break; + } + } + + private bool DeleteProduct(string dbId) + { + var url = BaseClass.BuildObjString("product/del_select_product"); + var data = UserLogin.GetSignaturex() + + "&db_id=" + dbId; + var dbSelectProduct = lstTemuDBProductSelect.FirstOrDefault(p => p.id.ParseToString() == dbId); + data += "&select_add_time=" + dbSelectProduct.add_time.ToString("yyyy-MM-dd HH:mm:ss"); + var html = GetHtml.PostUtf8(url, data); + if (string.IsNullOrEmpty(html) || !html.Contains("\"code\":200")) + html = GetHtml.PostUtf8(url, data); + if (string.IsNullOrEmpty(html) || !html.Contains("\"code\":200")) + html = GetHtml.PostUtf8(url, data); + if (string.IsNullOrEmpty(html) || !html.Contains("\"code\":200")) + { + BaseMsgForm.ShowError("删除商品失败,请重试!" + BaseRegex.GetStringJson(ref html, "msg")); + return false; + } + return true; + } + + private void dgvSelectProduct_Scroll(object sender, ScrollEventArgs e) + { + //ShowDgvImg(); + } + + private void btnUpload_Click(object sender, EventArgs e) + { + //var DbIdLst = dgvSelectProduct.Rows.Cast().Where(row + // => row.Cells["colCheck"]?.Value.ParseToBool() == true).Select(r => r.Cells["colSelectId"]?.Value.ToString()).ToList(); + //var prodList = this.lstTemuDBProductSelect.Where(p => DbIdLst.Contains(p.id.ParseToString())).ToArray(); + + var prodList = lstTemuDBProductSelect.ToList(); + var shopIdLst = dgvShop.Rows.Cast().Where(row + => row.Cells["colSelect"]?.Value.ParseToBool() == true).Select(r => r.Cells["colShopId"]?.Value.ToString()).ToList(); + if (shopIdLst.Count <= 0) + { + BaseMsgForm.ShowError("未勾选上传店铺!"); + return; + } + + if (prodList.Count() > 0) + { + if (PDDShopLoginForm.shopLoginInstance != null && PDDShopLoginForm.shopLoginInstance.IsDisposed != true) + PDDShopLoginForm.shopLoginInstance.Dispose(); + + this.btnUpload.Enabled = false; + cancellationTokenSource = new CancellationTokenSource(); + Task.Run(() => + { + AddProductArr(prodList, shopIdLst); + Invoke(new Action(() => + { + this.btnUpload.Enabled = true; + })); + }, cancellationTokenSource.Token); + } + else + { + BaseMsgForm.ShowError("请选择要上传的商品!"); + } + } + + void AddProductArr(List prodSelect1, List shopIdLst) + { + Invoke(new Action(() => + { + this.pbLoading.Visible = true; + this.statusBar.lblTaskStatus.Text = "正在上传" + "...".Substring(0, DateTime.Now.Second % 4); + this.statusBar.pgbTaskProgress.Maximum = lstTemuDBProductSelect.Count; + this.statusBar.UpdateProgressBar(0); + })); + + NaiBa.Util.ConcurrentList currentShopList = new NaiBa.Util.ConcurrentList(); + while (lstTemuDBProductSelect.Count > 0) + { + if (cancellationTokenSource.IsCancellationRequested) + break; + + Invoke(new Action(() => + { + shopIdLst = dgvShop.Rows.Cast().Where(row + => row.Cells["colSelect"]?.Value.ParseToBool() == true).Select(r => r.Cells["colShopId"]?.Value.ToString()).ToList(); + })); + while (shopIdLst.Count <= 0) + { + //BaseMsgForm.ShowError("请至少勾选一个店铺!"); + Invoke(new Action(() => + { + this.statusBar.lblTaskStatus.Text = "请至少勾选一个店铺"; + shopIdLst = dgvShop.Rows.Cast().Where(row + => row.Cells["colSelect"]?.Value.ParseToBool() == true).Select(r => r.Cells["colShopId"]?.Value.ToString()).ToList(); + })); + Thread.Sleep(1000); + if (cancellationTokenSource.IsCancellationRequested) + break; + } + var randomShopLst = new NaiBa.Util.ConcurrentList(); + randomShopLst.AddRange(GlobalConfig.ShopLoginList.Where(s => shopIdLst.Contains(s.ShopId) && s.LoginStatus == "登录成功")); + while (randomShopLst.Count <= 0) + { + Thread.Sleep(1000); + //BaseMsgForm.ShowError("所有店铺都已掉线!"); + + Invoke(new Action(() => + { + shopIdLst = dgvShop.Rows.Cast().Where(row + => row.Cells["colSelect"]?.Value.ParseToBool() == true).Select(r => r.Cells["colShopId"]?.Value.ToString()).ToList(); + })); + Invoke(new Action(() => + { + this.statusBar.lblTaskStatus.Text = "所有店铺都已掉线,请登录店铺"; + randomShopLst.Clear(); + randomShopLst.AddRange(GlobalConfig.ShopLoginList.Where(s => shopIdLst.Contains(s.ShopId) && s.LoginStatus == "登录成功")); + })); + if (cancellationTokenSource.IsCancellationRequested) + break; + } + if (cancellationTokenSource.IsCancellationRequested) + break; + var randomShop = randomShopLst[Randomx.GetId(randomShopLst.Count)]; + while (currentShopList.Count >= 5) // 最多5店同传 + { + Thread.Sleep(100); + } + if (cancellationTokenSource.IsCancellationRequested) + break; + + while (currentShopList.Any(s => s.ShopId == randomShop.ShopId)) + { + Thread.Sleep(500); + randomShop = randomShopLst[Randomx.GetId(randomShopLst.Count)]; + } + currentShopList.Add(randomShop); + if (cancellationTokenSource.IsCancellationRequested) + break; + + if (lstTemuDBProductSelect.Count <= 0) + { + currentShopList.Remove(randomShop); + break; + } + var prod = lstTemuDBProductSelect[0]; + if (randomShop != null) + { + prod.shop_id = randomShop.ShopId; + prod.shop_account = randomShop.ShopAccount = randomShop.ShopAccount; + } + else + { + currentShopList.Remove(randomShop); + continue; + } + if (cancellationTokenSource.IsCancellationRequested) + break; + + lstTemuDBProductSelect.RemoveAt(0); + NaiBa.Util.Helper.ConfigHelper.SaveConfig("pdd_db_prod_upload_list", this.lstTemuDBProductSelect); + //Invoke(new Action(() => + //{ + // lblWaitToUp.Text = "待上传 " + lstTemuDBProductSelect.Count + " 件"; + //})); + + Invoke(new Action(() => + { + this.statusBar.lblTaskStatus.Text = "正在上传" + "...".Substring(0, DateTime.Now.Second % 4); + this.statusBar.pgbTaskProgress.Maximum = lstTemuDBProductSelect.Count + this.statusBar.pgbTaskProgress.Value + 1; + this.statusBar.UpdateProgressBar(this.statusBar.pgbTaskProgress.Value + 1); + })); + + if (prod == null) + { + Invoke(new Action(() => + { + BaseMsgForm.ShowError("商品为空,将为您跳过该商品!"); + })); + currentShopList.Remove(randomShop); + continue; + } + + Invoke(new Action(() => + { + int rowIndex = 0; + this.dgvActProduct.Rows.Insert(rowIndex, + true, + prod.id, + prod.shop_id, + prod.shop_account, + "登录", + "进店", + //prod.spu_id, + BaseClass.SaLevel > 0 ? prod.spu_id : prod.spu_id.ParseToString().GetHashCode().ParseToString().Trim('-'), + prod.skc_id, + prod.main_img, + null, + "", + null, + prod.product_name, // 用户端显示商品原名 + prod.cat_name, + //prod.secret_spu_id == null ? prod.ext_code : prod.secret_spu_id, + BaseClass.SaLevel > 0 ? prod.ext_code : prod.ext_code.ParseToString().GetHashCode().ParseToString().Trim('-'), + prod.status, + prod.draft_id, + prod.notes, + (prod.user_notes + " 编辑").Trim(), + "删除", + "", + ""); + + dgvActProduct.Rows[rowIndex].Height = 60; + + int maxRowCount = 10000; + while (dgvActProduct.Rows.Count > maxRowCount) + { + dgvActProduct.Rows.RemoveAt(maxRowCount); + } + })); + + Invoke(new Action(() => + { + //ShowDgvImg(); + this.pbLoading.Visible = false; + })); + + Task.Run(() => + { + DateTime startTime = DateTime.Now; + for (int j = 0; j < 1; j++) + { + var shop = GlobalConfig.ShopLoginList.FirstOrDefault(s => s.ShopId == prod.shop_id); + if (shop == null) + continue; + + var row = dgvActProduct.Rows.Cast().FirstOrDefault(r => + r.Cells["colSelectId"]?.Value.ToString() == prod.id.ToString()); + double duration = 0; + if (row == null) + { + Invoke(new Action(() => + { + BaseMsgForm.ShowError("商品已被清除,将为您跳过该商品!"); + })); + continue; + } + + KJDDBProduct kjdDbProd = prod.kjdDbProduct; + //if (kjdDbProd == null) + // kjdDbProd = GetProductDetailByExtCode(prod.out_product_Id.ToString()); + if (!string.IsNullOrEmpty(kjdDbProd.secret_spu_id)) + { + Invoke(new Action(()=> { row.Cells["colExtCode"].Value = kjdDbProd.secret_spu_id; })); + } + if (kjdDbProd == null || kjdDbProd.id == 0) + { + if (kjdDbProd?.id == 0) + { + prod.status = "已清除"; + } + + Invoke(new Action(() => + { + if (row.Index >= 0) + { + row.Cells["colOpResult"].Value = "选品数据库商品已被清除"; + if (kjdDbProd?.id == 0) + row.Cells["colStatus"].Value = "已清除"; + } + })); + continue; + } + + int sleepTime = 0; + int sleepTimeTotal = 0; + var result = ""; + try + { + if (!dicShopGetCount.Keys.Contains(shop)) + dicShopGetCount[shop] = 100; + else + dicShopGetCount[shop]++; + if (dicShopGetCount[shop] > 0) + { + dicShopGetCount[shop] = 0; + + PDDShopLoginForm loginForm = null; + Invoke(new Action(() => + { + this.panel1.SendToBack(); + loginForm = new PDDShopLoginForm(shop); + loginForm.TopLevel = false; + loginForm.openType = EnumOpenType.manage; + loginForm.WindowState = FormWindowState.Maximized; + loginForm.InitUrl = "https://mms.pinduoduo.com/home/"; + loginForm.Dock = DockStyle.Fill; + this.panel1.Controls.Add(loginForm); + loginForm.Show(); + })); + sleepTime = Randomx.GetId(4000, 8000); + sleepTimeTotal += sleepTime; + Thread.Sleep(sleepTime); + if (Randomx.GetId(3) > 0) // 后面重试的地方较多,一次获取的token不够了,随机再登录一次 + { + loginForm.cefWebBrowser.Load("https://mms.pinduoduo.com/goods/goods_list?msfrom=mms_sidenav"); + sleepTime = Randomx.GetId(4000, 8000); + sleepTimeTotal += sleepTime; + Thread.Sleep(sleepTime); + } + + Invoke(new Action(() => + { + //if (PDDShopLoginForm.shopLoginInstance != null) + // PDDShopLoginForm.shopLoginInstance.Close(); + if (loginForm != null) + loginForm.Close(); + })); + } + + PDDShopListForm.Instance.CheckShopLogin(new string[] { shop.LoginName }, false); + if (shop.LoginStatus != "登录成功") + { + Invoke(new Action(() => + { + if (row.Index >= 0) + { + row.Cells["colOpResult"].Value = "店铺掉线"; + } + })); + continue; + } + + if (cancellationTokenSource.IsCancellationRequested) + break; + + //var prodDetailJson = GetHtml.UrlDecode(kjdDbProd.product_json); + //将商品上传 + result = UploadProduct(shop, kjdDbProd, prod, row.Cells["colOpResult"], startTime); + + Invoke(new Action(() => + { + if (chkActivity.Checked) + { + row.Cells["colSkuFakeImgUrl"].Value = kjdDbProd.sku_img_replace_url; + if (row.Displayed) + { + string getImgError = ""; + Image img = GetHtml.GetUrlImg(kjdDbProd.sku_img_replace_url.Replace("https://", "http://"), out getImgError); + if (string.IsNullOrEmpty(getImgError)) + row.Cells["colSkuFakeImg"].Value = img; + } + } + })); + + if (result.Contains("您的店铺操作过于频繁,请稍后操作")) + Thread.Sleep(Randomx.GetId(60000, 90000)); + + if (result.Contains("会话已过期")) + { + if (PDDShopListForm.Instance == null) + { + PDDShopListForm.Instance = new PDDShopListForm(); + } + PDDShopListForm.Instance.CheckShopLogin(new string[] { shop.LoginName }, false); + } + } + catch (Exception ex) + { + result = "{\"success\":false,\"status\":\"未上传\",\"errMsg\":\"" + ex.Message + "\"}"; + } + sleepTime = Randomx.GetId(200, 300); + sleepTimeTotal += sleepTime; + Thread.Sleep(sleepTime); + + DateTime endTime = DateTime.Now; + var timeSpan = endTime - startTime; + duration = timeSpan.TotalSeconds; + while (duration < 20) + { + Thread.Sleep(Randomx.GetId(5000, 15000)); + endTime = DateTime.Now; + timeSpan = endTime - startTime; + duration = timeSpan.TotalSeconds; + } + var error = BaseRegex.GetStringJson(ref result, "errMsg"); + if (!result.Contains("\"success\":true") && !result.Contains("上传成功")) + { + if (string.IsNullOrWhiteSpace(error)) + error = result; + Invoke(new Action(() => + { + if (row.Index >= 0) + { + row.Cells["colOpResult"].Value = error + " " + duration.ParseToInt() + "秒"; + } + })); + //continue; + goto UploadEnd; + } + prod.status = BaseRegex.GetStringJson(ref result, "status"); + if (string.IsNullOrWhiteSpace(prod.status)) + prod.status = "待上传"; + var productDraftId = BaseRegex.GetStringJson(ref result, "draftId"); + + Invoke(new Action(() => + { + if (row.Index >= 0) + { + row.Cells["colDraftId"].Value = productDraftId; // 草稿箱id + row.Cells["colAddTime"].Value = DateTime.Now.ToString("yy-MM-dd HH:mm:ss"); + row.Cells["colOpResult"].Value = (prod.status == "已上传" ? "已成功上传" : "已上传 发生错误:") + (" " + error).TrimEnd(' ') + " " + duration.ParseToInt() + "秒"; + row.Cells["colMsg"].Value = prod.status; + } + })); + + UploadEnd:; + } + currentShopList.Remove(randomShop); + }); + } + + for (int i = 0; i < 200 && currentShopList.Count > 0; i++) + { + Thread.Sleep(1000); + if (cancellationTokenSource.IsCancellationRequested) + break; + } + Invoke(new Action(() => + { + if (cancellationTokenSource.IsCancellationRequested) + BaseMsgForm.ShowInfo("上传停止!"); + else + BaseMsgForm.ShowInfo("上传完成!"); + })); + + Invoke(new Action(() => + { + this.pbLoading.Visible = false; + if (cancellationTokenSource.IsCancellationRequested) + this.statusBar.lblTaskStatus.Text = "上传停止"; + else + this.statusBar.lblTaskStatus.Text = "上传完成"; + //this.statusBar.UpdateProgressBar(lstTemuDBProductSelect.Count); + })); + } + + string UploadProduct(ShopLoginInfo shop, KJDDBProduct dbProd, TemuDBProductSelect selectProd, DataGridViewCell cell, DateTime startTime) + { + return ""; + } + + // 报名活动 + public void SignActivityInTask(ShopLoginInfo shop, PDDProductUploadParam prodParam, PDDProductUploadParam prodParamHighPrice, + PDDProductUploadParam prodParamHighPriceFakeSkuImg, DataGridViewCell cell, DateTime startTime) + { + Thread.Sleep(2000); + var endTime = DateTime.Now; + var timeSpan = endTime - startTime; + var duration = timeSpan.TotalSeconds; + Invoke(new Action(() => + { + if (cell != null) + { + cell.Value = "商品已上传,进行后续操作中" + " " + duration.ParseToInt() + "秒"; + } + })); + bool sign20981 = chk20981.Checked; + bool sign22347 = chk22347.Checked; + bool sign15996 = chk15996.Checked; + bool sign21365 = chk21365.Checked; + + Thread.Sleep(Randomx.GetId(2000, 6000)); + // 判断商品是否上架成功 + var getProdRst1 = queryActivityGoodsEnabled(shop, prodParamHighPriceFakeSkuImg.goods_id.ParseToString(), 22347, 0); + var getProdRst2 = queryActivityGoodsEnabled(shop, prodParamHighPriceFakeSkuImg.goods_id.ParseToString(), 22347, 1); + var getProdRst3 = ""; // queryActivityGoodsEnabled(shop, prodParam.goods_id.ParseToString(), 20981, 0); + var getProdRst4 = ""; // queryActivityGoodsEnabled(shop, prodParam.goods_id.ParseToString(), 20981, 1); + + if (!getProdRst1.Contains(prodParamHighPriceFakeSkuImg.goods_id.ParseToString()) && !getProdRst2.Contains(prodParamHighPriceFakeSkuImg.goods_id.ParseToString()) && + !getProdRst3.Contains(prodParamHighPriceFakeSkuImg.goods_id.ParseToString()) && !getProdRst4.Contains(prodParamHighPriceFakeSkuImg.goods_id.ParseToString())) + { + endTime = DateTime.Now; + timeSpan = endTime - startTime; + duration = timeSpan.TotalSeconds; + Invoke(new Action(() => + { + if (cell != null) + { + cell.Value = "上传错误,商品不存在" + " " + duration.ParseToInt() + "秒"; + } + })); + return; + } + else if (chk22347.Checked) + { + // 如果报了直通车,判断商品自动加入直通车以后再放行(循环12次应该已加入,否则认为加入失败跳过) + for (int i = 0; i < 30 && !getProdRst2.Contains(prodParamHighPriceFakeSkuImg.goods_id.ParseToString()) && chk22347.Checked; i++) + { + endTime = DateTime.Now; + timeSpan = endTime - startTime; + duration = timeSpan.TotalSeconds; + Invoke(new Action(() => + { + if (cell != null) + { + cell.Value = "商品已上传,进行后续操作中" + " " + duration.ParseToInt() + "秒"; + } + })); + Thread.Sleep(60 * 1000); + //getProdRst1 = queryActivityGoodsEnabled(shop, prodParam.goods_id.ParseToString(), 22347, 0); + getProdRst2 = queryActivityGoodsEnabled(shop, prodParamHighPriceFakeSkuImg.goods_id.ParseToString(), 22347, 1); + if (getProdRst2.Contains(prodParamHighPriceFakeSkuImg.goods_id.ParseToString())) + { + + } + } + } + + var getProdIdRst = get_prod_commit_id(shop, prodParamHighPriceFakeSkuImg.goods_id.ParseToString(), false); + var newCommitId = BaseRegex.GetStringJson(ref getProdIdRst, "goods_commit_id"); + prodParamHighPriceFakeSkuImg.goods_commit_id = newCommitId; + if (string.IsNullOrEmpty(newCommitId) || !getProdIdRst.Contains("\"success\":true")) + { + var error = BaseRegex.GetStringJson(ref getProdIdRst, "error_msg"); + if (string.IsNullOrEmpty(error)) + error = getProdIdRst; + + endTime = DateTime.Now; + timeSpan = endTime - startTime; + duration = timeSpan.TotalSeconds; + Invoke(new Action(() => + { + if (cell != null) + { + cell.Value = "上传失败 校验上传失败 " + error + " " + duration.ParseToInt() + "秒"; + } + })); + return; + } + + PDDProductDetailInfo newProdInfo = null; + try + { + //var prod_on_shop_rst = PDDShopBrowserObject.GetPddProdDetailOnShop(shop, prodParamHighPriceFakeSkuImg.goods_id.ParseToString(), prodParamHighPriceFakeSkuImg.goods_commit_id); + var prod_detail_rst = PDDShopBrowserObject.GetPddProdDetail(shop, prodParamHighPriceFakeSkuImg.goods_id.ParseToString(), prodParamHighPriceFakeSkuImg.goods_commit_id); + + JObject prod_detail_obj = JObject.Parse(prod_detail_rst); + var detail_json = JsonHelper.SerializeObject(prod_detail_obj["result"]); + + newProdInfo = JsonHelper.DeserializeJsonToObject(detail_json); + if (newProdInfo == null || detail_json.Length < 10) + { + Invoke(new Action(() => + { + cell.Value = "商品获取失败!商品数据格式获取失败!" + " " + duration.ParseToInt() + "秒"; + })); + return; + } + } + catch (Exception ex) + { + Invoke(new Action(() => + { + cell.Value = "商品获取失败!商品数据格式获取失败!" + ex.Message + " " + duration.ParseToInt() + "秒"; + })); + return; + } + + prodParamHighPriceFakeSkuImg.check_status = 9; + prodParamHighPriceFakeSkuImg.first_upload_carousel = null; + prodParamHighPriceFakeSkuImg.uploadDragAB = null; + prodParamHighPriceFakeSkuImg.title_keywords = null; + prodParamHighPriceFakeSkuImg.prefillWhitePic = null; + prodParamHighPriceFakeSkuImg.is_shop = 1; + prodParamHighPriceFakeSkuImg.pre_sale_time = ""; + prodParamHighPriceFakeSkuImg.goods_pattern = newProdInfo.goods_pattern; + foreach (var skuParam in prodParamHighPriceFakeSkuImg.skus) + { + var skuInfo = newProdInfo.sku.FirstOrDefault(sk => string.Join(";", sk.spec.Select(s => s.spec_name)) == string.Join(";", skuParam.spec.Select(s => s.spec_name))); + if (skuInfo != null) + { + skuParam.id = skuInfo.id; + skuParam.is_onsale = skuInfo.is_onsale; + skuParam.limit_quantity = skuInfo.limit_quantity; + skuParam.multi_price = skuInfo.multi_price; + skuParam.out_sku_sn = skuInfo.out_sku_sn; + skuParam.oversea_sku = skuInfo.oversea_sku == null ? new object() : skuInfo.oversea_sku; + skuParam.price = skuInfo.price; + skuParam.quantity_delta = txtStockNum.Text.Trim().ParseToInt(); // 商品数量 + skuParam.shipment_limit_second_list = skuInfo.shipment_limit_second_list == null ? new List() : skuInfo.shipment_limit_second_list; + skuParam.sku69_code = skuInfo.sku69_code.ParseToString(); + skuParam.sku_srv_templates = skuInfo.sku_srv_templates.ParseToString(); + skuParam.spec = JsonHelper.DeserializeJsonToList(JsonHelper.SerializeObject(skuInfo.spec)); + //skuParam.thumb_url = skuInfo.thumb_url; + //skuParam.thumb_url_file_id = skuInfo.thumb_url_file_id; + skuParam.weight = skuInfo.weight; + skuParam.length = skuInfo.length; + skuParam.price_in_yuan = ""; // 内部计算直接置空 + skuParam.multi_price_in_yuan = ""; // 内部计算直接置空 + skuParam.pre_sale_time = skuInfo.pre_sale_time; + skuParam.sku_id = skuInfo.sku_id; + foreach (var spec in skuParam.spec) + { + spec.is_custom = spec.is_custom.ParseToInt(); + } + } + skuParam.quantity_delta = 0; + } + + PDDShopLoginForm loginForm = null; + if (pddUploadRule.IsSignActivity && 1 == 2) // 测试在网页里面直接修改 不使用截断提交方式一次最多改两个,使用的话最多改一个 + { + LoadActivityPage(shop); + + Invoke(new Action(() => + { + //this.panel1.SendToBack(); + this.panel1.BringToFront(); + loginForm = new PDDShopLoginForm(shop); + loginForm.prodParam = prodParam; + loginForm.TopLevel = false; + loginForm.openType = EnumOpenType.manage; + loginForm.WindowState = FormWindowState.Maximized; + loginForm.InitUrl = "https://mms.pinduoduo.com/home/"; + loginForm.Dock = DockStyle.Fill; + this.panel1.Controls.Add(loginForm); + loginForm.Show(); + loginForm.SetPanelVisible(true); + })); + Thread.Sleep(Randomx.GetId(3000, 8000)); + if (sign20981) + { + Invoke(new Action(() => + { + loginForm.cefWebBrowser.Load("https://mms.pinduoduo.com/goods/goods_add/index?id=" + prodParamHighPriceFakeSkuImg.goods_commit_id + + "&goods_id=" + prodParamHighPriceFakeSkuImg.goods_id + "&type=edit"); + })); + } + Thread.Sleep(Randomx.GetId(5000, 10000)); + } + while (true) + { + if (loginForm == null || loginForm.Disposing || loginForm.IsDisposed) + break; + Thread.Sleep(Randomx.GetId(500, 1000)); + } + Invoke(new Action(() => + { + this.panel1.SendToBack(); + })); + + + // 还原sku替换图 + var spec0NameLst = prodParamHighPriceFakeSkuImg.skus.Select(s => s.spec[0].spec_name).Distinct().ToList(); + int flag = 0; + if (1 == 1) + { + foreach (var specName in spec0NameLst) + { + flag++; + + endTime = DateTime.Now; + timeSpan = endTime - startTime; + duration = timeSpan.TotalSeconds; + Invoke(new Action(() => + { + cell.Value = "商品已上传,进行后续操作中" + " " + (spec0NameLst.IndexOf(specName) + 1) + "/" + spec0NameLst.Count + " " + duration.ParseToInt() + "秒"; + })); + + List signLst = new List() { 20981, 15996, 21365, 22347 }; + while (signLst.Count > 0 && (flag == 1 || flag % 2 == 0 || spec0NameLst.LastOrDefault() == specName)) + { + var signId = signLst[Randomx.GetId(0, signLst.Count)]; + signLst.Remove(signId); + + if (signId == 20981 && sign20981) + { + var activityRst = activity_goods_info(shop, prodParam.goods_id.ParseToString(), "20981"); + for (int i = 0; i < 2 && !activityRst.Contains("\"success\":true"); i++) + { + Thread.Sleep(Randomx.GetId(11200, 11800)); + activityRst = activity_goods_info(shop, prodParam.goods_id.ParseToString(), "20981"); + } + Thread.Sleep(Randomx.GetId(2000, 4500)); + } + if (signId == 15996 && sign15996) + { + var activityRst = activity_goods_price_rule(shop, prodParam.goods_id.ParseToString(), 15996, 18); + for (int i = 0; i < 2 && !activityRst.Contains("\"success\":true"); i++) + { + Thread.Sleep(Randomx.GetId(11200, 11800)); + activityRst = activity_goods_price_rule(shop, prodParam.goods_id.ParseToString(), 15996, 18); + } + Thread.Sleep(Randomx.GetId(2000, 4500)); + } + if (signId == 21365 && sign21365) + { + var activityRst = activity_goods_price_rule(shop, prodParam.goods_id.ParseToString(), 21365, 27); + for (int i = 0; i < 2 && !activityRst.Contains("\"success\":true"); i++) + { + Thread.Sleep(Randomx.GetId(11200, 11800)); + activityRst = activity_goods_price_rule(shop, prodParam.goods_id.ParseToString(), 21365, 27); + } + Thread.Sleep(Randomx.GetId(2000, 4500)); + } + if (signId == 22347 && sign22347) + { + var activityRst = activity_goods_price_rule(shop, prodParam.goods_id.ParseToString(), 22347, 27); + for (int i = 0; i < 2 && !activityRst.Contains("\"success\":true"); i++) + { + Thread.Sleep(Randomx.GetId(1200, 1800)); + activityRst = activity_goods_price_rule(shop, prodParam.goods_id.ParseToString(), 22347, 27); + } + Thread.Sleep(Randomx.GetId(2000, 4500)); + } + } + //LoadActivityPage(shop); + + var fakeImgskuLst = prodParamHighPriceFakeSkuImg.skus.Where(s => s.spec[0].spec_name == specName).ToList(); + var skuImg = prodParam.skus.FirstOrDefault(s => s.spec[0].spec_name == specName)?.thumb_url; + foreach (var fakeImgSku in fakeImgskuLst) + { + fakeImgSku.thumb_url = skuImg; + fakeImgSku.thumb_url_file_id = null; + } + + if (1 == 1 && (flag % 2 == 0 || spec0NameLst.LastOrDefault() == specName)) + { + + getProdIdRst = get_prod_commit_id(shop, prodParamHighPriceFakeSkuImg.goods_id.ParseToString(), false); + newCommitId = BaseRegex.GetStringJson(ref getProdIdRst, "goods_commit_id"); + prodParamHighPriceFakeSkuImg.goods_commit_id = newCommitId; + if (string.IsNullOrEmpty(newCommitId) || !getProdIdRst.Contains("\"success\":true")) + { + var error = BaseRegex.GetStringJson(ref getProdIdRst, "error_msg"); + if (string.IsNullOrEmpty(error)) + error = getProdIdRst; + + endTime = DateTime.Now; + timeSpan = endTime - startTime; + duration = timeSpan.TotalSeconds; + Invoke(new Action(() => + { + if (cell != null) + { + cell.Value = "上传失败 校验上传失败 " + error + " " + duration.ParseToInt() + "秒"; + } + })); + return; + } + + var reSaveProdRst = save_goods_edit(shop, prodParamHighPriceFakeSkuImg, prodParamHighPriceFakeSkuImg.goods_id.ParseToString(), + prodParamHighPriceFakeSkuImg.goods_commit_id, true, "edit"); + if (!reSaveProdRst.Contains("\"success\":true")) + { + var error = BaseRegex.GetStringJson(ref reSaveProdRst, "error_msg"); + if (string.IsNullOrEmpty(error)) + error = reSaveProdRst; + + if (cell != null) + { + endTime = DateTime.Now; + timeSpan = endTime - startTime; + duration = timeSpan.TotalSeconds; + Invoke(new Action(() => + { + cell.Value = "上传失败 保存失败 " + error + " " + duration.ParseToInt() + "秒"; + })); + } + return; + } + + Thread.Sleep(Randomx.GetId(20, 100)); + var reUploadRst = submit_goods_edit(shop, prodParamHighPriceFakeSkuImg.goods_id.ParseToString(), prodParamHighPriceFakeSkuImg.goods_commit_id, true, "edit"); + if (!reUploadRst.Contains("\"success\":true")) + { + var error = BaseRegex.GetStringJson(ref reUploadRst, "error_msg"); + if (string.IsNullOrEmpty(error)) + error = reUploadRst; + + + endTime = DateTime.Now; + timeSpan = endTime - startTime; + duration = timeSpan.TotalSeconds; + Invoke(new Action(() => + { + if (cell != null) + { + cell.Value = "上传失败 保存失败 " + error + " " + duration.ParseToInt() + "秒"; + } + })); + return; + } + Thread.Sleep(Randomx.GetId(12000, 15000)); + } + } + } + + // Api还原sku替换图 + if (1 == 2) + { + JObject prodRstObj = null; + if (spec0NameLst.Count > 1) + spec0NameLst.RemoveAt(spec0NameLst.Count - 1); + + foreach (var specName in spec0NameLst) + { + flag++; + + endTime = DateTime.Now; + timeSpan = endTime - startTime; + duration = timeSpan.TotalSeconds; + Invoke(new Action(() => + { + cell.Value = "商品已上传,进行后续操作中" + " " + (spec0NameLst.IndexOf(specName) + 1) + "/" + spec0NameLst.Count + " " + duration.ParseToInt() + "秒"; + })); + + List signLst = new List() { 20981, 15996, 21365, 22347 }; + //while (signLst.Count > 0 && (flag == 1 || flag % 2 == 0 || spec0NameLst.LastOrDefault() == specName)) + if (flag == 1 || flag % 1 == 9999 || spec0NameLst.LastOrDefault() == specName) + { + while (signLst.Count > 0) + { + var signId = signLst[Randomx.GetId(0, signLst.Count)]; + signLst.Remove(signId); + + if (signId == 20981 && sign20981) + { + var activityRst = activity_goods_info(shop, prodParam.goods_id.ParseToString(), "20981"); + for (int i = 0; i < 2 && !activityRst.Contains("\"success\":true"); i++) + { + Thread.Sleep(Randomx.GetId(11200, 11800)); + activityRst = activity_goods_info(shop, prodParam.goods_id.ParseToString(), "20981"); + } + Thread.Sleep(Randomx.GetId(2000, 4500)); + } + if (signId == 15996 && sign15996) + { + var activityRst = activity_goods_price_rule(shop, prodParam.goods_id.ParseToString(), 15996, 18); + for (int i = 0; i < 2 && !activityRst.Contains("\"success\":true"); i++) + { + Thread.Sleep(Randomx.GetId(11200, 11800)); + activityRst = activity_goods_price_rule(shop, prodParam.goods_id.ParseToString(), 15996, 18); + } + Thread.Sleep(Randomx.GetId(2000, 4500)); + } + if (signId == 21365 && sign21365) + { + var activityRst = activity_goods_price_rule(shop, prodParam.goods_id.ParseToString(), 21365, 27); + for (int i = 0; i < 2 && !activityRst.Contains("\"success\":true"); i++) + { + Thread.Sleep(Randomx.GetId(11200, 11800)); + activityRst = activity_goods_price_rule(shop, prodParam.goods_id.ParseToString(), 21365, 27); + } + Thread.Sleep(Randomx.GetId(2000, 4500)); + } + if (signId == 22347 && sign22347) + { + var activityRst = activity_goods_price_rule(shop, prodParam.goods_id.ParseToString(), 22347, 27); + for (int i = 0; i < 2 && !activityRst.Contains("\"success\":true"); i++) + { + Thread.Sleep(Randomx.GetId(1200, 1800)); + activityRst = activity_goods_price_rule(shop, prodParam.goods_id.ParseToString(), 22347, 27); + } + Thread.Sleep(Randomx.GetId(2000, 4500)); + } + } + } + + if (flag == 1) + { + var pddApi = new PddApi(shop); + pddApi.Data["goods_id"] = prodParam.goods_id.ParseToString(); + var rst = pddApi.PddGoodsDetailGet(); + prodRstObj = JsonHelper.JObjectParse(rst)["goods_detail_get_response"] as JObject; + } + //LoadActivityPage(shop); + + //var fakeImgskuLst = prodParamHighPriceFakeSkuImg.skus.Where(s => s.spec[0].spec_name == specName).ToList(); + //var skuImg = prodParam.skus.FirstOrDefault(s => s.spec[0].spec_name == specName)?.thumb_url; + //foreach (var fakeImgSku in fakeImgskuLst) + //{ + // fakeImgSku.thumb_url = skuImg; + // fakeImgSku.thumb_url_file_id = null; + //} + + var fakeImgSkuObjLst = prodRstObj["sku_list"].Where(s => s["spec"][0]["spec_name"].ParseToString() == specName); + var skuImg = prodParam.skus.FirstOrDefault(s => s.spec[0].spec_name == specName)?.thumb_url; + foreach (var fakeImgSkuObj in fakeImgSkuObjLst) + { + fakeImgSkuObj["thumb_url"] = skuImg; + } + + //if (1 == 1 && (flag % 2 == 0 || spec0NameLst.LastOrDefault() == specName)) + if (1 == 1 && (flag % 9999 == 0 || spec0NameLst.LastOrDefault() == specName)) + { + var rst = ChangeAndUpdateProd(shop, prodRstObj); + Thread.Sleep(Randomx.GetId(12000, 15000)); + continue; + + getProdIdRst = get_prod_commit_id(shop, prodParamHighPriceFakeSkuImg.goods_id.ParseToString(), false); + newCommitId = BaseRegex.GetStringJson(ref getProdIdRst, "goods_commit_id"); + prodParamHighPriceFakeSkuImg.goods_commit_id = newCommitId; + if (string.IsNullOrEmpty(newCommitId) || !getProdIdRst.Contains("\"success\":true")) + { + var error = BaseRegex.GetStringJson(ref getProdIdRst, "error_msg"); + if (string.IsNullOrEmpty(error)) + error = getProdIdRst; + + endTime = DateTime.Now; + timeSpan = endTime - startTime; + duration = timeSpan.TotalSeconds; + Invoke(new Action(() => + { + if (cell != null) + { + cell.Value = "上传失败 校验上传失败 " + error + " " + duration.ParseToInt() + "秒"; + } + })); + return; + } + + var reSaveProdRst = save_goods_edit(shop, prodParamHighPriceFakeSkuImg, prodParamHighPriceFakeSkuImg.goods_id.ParseToString(), + prodParamHighPriceFakeSkuImg.goods_commit_id, true, "edit"); + if (!reSaveProdRst.Contains("\"success\":true")) + { + var error = BaseRegex.GetStringJson(ref reSaveProdRst, "error_msg"); + if (string.IsNullOrEmpty(error)) + error = reSaveProdRst; + + if (cell != null) + { + endTime = DateTime.Now; + timeSpan = endTime - startTime; + duration = timeSpan.TotalSeconds; + Invoke(new Action(() => + { + cell.Value = "上传失败 保存失败 " + error + " " + duration.ParseToInt() + "秒"; + })); + } + return; + } + + Thread.Sleep(Randomx.GetId(20, 100)); + var reUploadRst = submit_goods_edit(shop, prodParamHighPriceFakeSkuImg.goods_id.ParseToString(), prodParamHighPriceFakeSkuImg.goods_commit_id, isChanceApi, "edit"); + if (!reUploadRst.Contains("\"success\":true")) + { + var error = BaseRegex.GetStringJson(ref reUploadRst, "error_msg"); + if (string.IsNullOrEmpty(error)) + error = reUploadRst; + + + endTime = DateTime.Now; + timeSpan = endTime - startTime; + duration = timeSpan.TotalSeconds; + Invoke(new Action(() => + { + if (cell != null) + { + cell.Value = "上传失败 保存失败 " + error + " " + duration.ParseToInt() + "秒"; + } + })); + return; + } + Thread.Sleep(Randomx.GetId(12000, 15000)); + } + } + } + + + string activityErr = SignActivity(shop, prodParam, sign22347, sign20981, sign21365, sign15996); + + //Thread.Sleep(Randomx.GetId(4000, 8000)); + if (!string.IsNullOrEmpty(activityErr)) + { + //return "已上传 " + activityErr; + } + + endTime = DateTime.Now; + timeSpan = endTime - startTime; + duration = timeSpan.TotalSeconds; + Invoke(new Action(() => + { + if (cell != null) + { + if (!string.IsNullOrEmpty(activityErr)) + { + cell.Value = "已成功上传 " + activityErr + " " + duration.ParseToInt() + "秒"; + } + else + { + cell.Value = "已成功上传" + " " + duration.ParseToInt() + "秒"; + } + } + })); + } + + public void LoadActivityPage(ShopLoginInfo shop, PDDShopLoginForm loginForm = null) + { + if (pddUploadRule.IsSignActivity) + { + bool sign20981 = chk20981.Checked; + bool sign22347 = chk22347.Checked; + bool sign15996 = chk15996.Checked; + bool sign23165 = chk21365.Checked; + List activityUrlLst = new List(); + if (sign20981) + { + activityUrlLst.Add("https://mms.pinduoduo.com/act/multi-act-enroll?activityId=20981&activityType=27&SourceType=PROMO-OwnHome&formInfoSceneType=realBigSaleQuickEnrollMultiActivityScene"); + //activityUrlLst.Add("https://mms.pinduoduo.com/act/goods_price/confirm?activityId=20981&activityType=27&from=chooseGoods&SourceType=MMSActicon"); + } + if (activityUrlLst.Count <= 0) + return; + + Invoke(new Action(() => + { + //this.panel1.SendToBack(); + this.panel1.BringToFront(); + if (loginForm == null) + { + loginForm = new PDDShopLoginForm(shop); + loginForm.TopLevel = false; + loginForm.openType = EnumOpenType.manage; + loginForm.WindowState = FormWindowState.Maximized; + //loginForm.InitUrl = "https://mms.pinduoduo.com"; + loginForm.InitUrl = activityUrlLst[0]; + activityUrlLst.RemoveAt(0); + loginForm.Dock = DockStyle.Fill; + this.panel1.Controls.Add(loginForm); + loginForm.Show(); + } + })); + Thread.Sleep(Randomx.GetId(4000, 8000)); + while (activityUrlLst.Count > 0) + { + Thread.Sleep(Randomx.GetId(4000, 8000)); + } + + Invoke(new Action(() => + { + if (loginForm != null) + loginForm.Close(); + this.panel1.SendToBack(); + })); + } + } + + /// + /// 所有活动: 22347直通车加权 20981长期报名入口 21365七折活动 15996两件9块9活动(价格要求低于29.9元) 18586百万爆款(需上架满一天) 23620临时活动(已结束) + /// + /// + /// + /// + public string SignActivity(ShopLoginInfo shop, PDDProductUploadParam prodParam, bool sign22347 = true, bool sign20981 = true, bool sign21365 = true, bool sign15996 = true) + { + string activityErr = ""; + + //21365 7折活动 //活动2 + if (1 == 1 && sign21365) + { + activityErr += SignActivity21365(shop, prodParam); + int times = 0; + if (activityErr.Contains("该商品提交了信息修改") && times++ < 3) + { + Thread.Sleep(Randomx.GetId(8000, 10000)); + } + } + restoreSkuImg2: + + //活动5 18586 百万爆款 必须上架一天以上的sku才能报名暂时注释 + if (1 == 2) + { + Thread.Sleep(Randomx.GetId(500, 1500)); + var activityRst5 = activity_goods_price_rule2(shop, prodParam.goods_id.ParseToString(), 18586, 7); + if (!activityRst5.Contains("\"success\":true")) + { + var error = BaseRegex.GetStringJson(ref activityRst5, "error_msg"); + if (string.IsNullOrEmpty(error)) + error = activityRst5; + activityErr += "\r\n上传错误 586查询失败 " + error; + if (BaseClass.SaLevel != 1 && 1 != 1) + activityErr = "上传错误"; + goto restoreSkuImg5; + } + try + { + var jObj = JObject.Parse(activityRst5); + var jStr = JsonHelper.SerializeObject(jObj["result"]); + var pddActivitiPriceInfo = JsonHelper.DeserializeJsonToObject(jStr); + var pddActivitiPriceProd = pddActivitiPriceInfo.enroll_rule_param_map.FirstOrDefault().Value; + + if (pddActivitiPriceProd == null) + { + activityErr += "\r\n上传错误 586查询/新建失败 商品未提交成功或不满足参加活动条件"; + if (BaseClass.SaLevel != 1 && 1 != 1) + activityErr = "上传错误"; + goto restoreSkuImg5; + } + foreach (var activitySkuInfo in pddActivitiPriceProd.enroll_goods_spike_price.sku_info_list) + { + var sku = prodParam.skus.FirstOrDefault(sk => string.Join(",", sk.spec.Select(s => s.spec_name)) == activitySkuInfo.spec_info_str); + if (sku == null || sku.multi_price > activitySkuInfo.require_price + 1) + { + activityErr += "\r\n上传错误 586价格低于产品价 " + activitySkuInfo.require_price + " < " + sku.multi_price; + if (BaseClass.SaLevel != 1 && 1 != 1) + activityErr = "上传错误"; + goto restoreSkuImg5; + } + } + + var quantity = prodParam.skus.Sum(s => s.quantity_delta); + PDDActivitySubmitParam actSubmitParam = new PDDActivitySubmitParam(); + actSubmitParam.activity_id = pddActivitiPriceInfo.activity_id; + actSubmitParam.enroll_source_ctx.enroll_type = 14; + actSubmitParam.enroll_source_ctx.scene_full_coverage = "mmsActSingleEnrollV1"; + actSubmitParam.enroll_source_ctx.source_type = "PROMO-Pyramid"; + actSubmitParam.enroll_source_ctx.scene_type = "Pyramid"; + + var goods_vo_item = new goods_vo_param(); + goods_vo_item.goods_id = prodParam.goods_id; + foreach (var activitySkuInfo in pddActivitiPriceProd.enroll_goods_spike_price.sku_info_list) + { + var sku = prodParam.skus.FirstOrDefault(sk => string.Join(",", sk.spec.Select(s => s.spec_name)) == activitySkuInfo.spec_info_str); + if (sku == null) + { + activityErr += "\r\n上传错误 586价格sku未找到"; + if (BaseClass.SaLevel != 1 && 1 != 1) + activityErr = "上传错误"; + goto restoreSkuImg5; + } + + create_sku_vo_param sku_vo_item = new create_sku_vo_param(); + sku_vo_item.sku_id = activitySkuInfo.sku_id; + sku_vo_item.sku_activity_price = sku.multi_price; + sku_vo_item.sku_front_ctx_vo = new sku_front_ctx_vo_param() + { + filling_sku_price = sku.multi_price, + gear_rule = activitySkuInfo.gear_rule, + require_price = sku.multi_price, + filling_sku_price_gear_rule = activitySkuInfo.filling_sku_price_gear_rule, + }; + goods_vo_item.create_activity_price_vo.create_sku_vos.Add(sku_vo_item); + } + goods_vo_item.create_activity_price_vo.create_quantity_vo.goods_activity_quantity = + Math.Min(quantity.ParseToInt(), 110); // 折活动上限110 + goods_vo_item.create_material_vo.create_goods_image_vo.raw_activity_image_url = prodParam.gallery.FirstOrDefault(g => g.type == 1).url; + actSubmitParam.goods_volist.Add(goods_vo_item); + actSubmitParam.custom_ability_vo = new custom_ability_vo_item(); + actSubmitParam.custom_ability_vo.agree_pyramid_system_enroll = true; + actSubmitParam.custom_ability_vo.pyramid_activity_id = "7"; + actSubmitParam.create_protocol_vo.need_create_cost_template = true; + + var addActivityRst = add_activity_goods(shop, actSubmitParam, prodParam.goods_id.ParseToString(), 18586, 0); + var err_msg = BaseRegex.GetStringJson(ref addActivityRst, "error_msg"); + if (!addActivityRst.Contains("\"success\":true") || !string.IsNullOrEmpty(err_msg)) + { + var error = BaseRegex.GetStringJson(ref addActivityRst, "error_msg"); + if (string.IsNullOrEmpty(error)) + error = addActivityRst; + activityErr += "\r\n上传错误 586新建失败 " + error; + if (BaseClass.SaLevel != 1 && 1 != 1) + activityErr = "上传错误"; + goto restoreSkuImg5; + } + } + catch (Exception ex) + { + activityErr += "\r\n上传错误 586查询/新建失败 " + ex.Message; + if (BaseClass.SaLevel != 1 && 1 != 1) + activityErr = "上传错误"; + goto restoreSkuImg5; + } + } //活动3 + restoreSkuImg5: + + //23620 临时活动 活动已结束,停止操作 + if (1 == 2) + { + Thread.Sleep(Randomx.GetId(500, 1500)); + var activityRst4 = activity_goods_price_rule(shop, prodParam.goods_id.ParseToString(), 23620, 27); + if (!activityRst4.Contains("\"success\":true")) + { + var error = BaseRegex.GetStringJson(ref activityRst4, "error_msg"); + if (string.IsNullOrEmpty(error)) + error = activityRst4; + activityErr += "\r\n上传错误 620查询失败 " + error; + if (BaseClass.SaLevel != 1 && 1 != 1) + activityErr = "上传错误"; + goto restoreSkuImg4; + } + try + { + var jObj = JObject.Parse(activityRst4); + var jStr = JsonHelper.SerializeObject(jObj["result"]); + var pddActivitiPriceInfo = JsonHelper.DeserializeJsonToObject(jStr); + var pddActivitiPriceProd = pddActivitiPriceInfo.enroll_goods_rule_vos.FirstOrDefault(); + + if (pddActivitiPriceProd == null) + { + activityErr += "\r\n上传错误 620查询/新建失败 商品未提交成功或不满足参加活动条件"; + if (BaseClass.SaLevel != 1 && 1 != 1) + activityErr = "上传错误"; + goto restoreSkuImg4; + } + foreach (var activitySkuInfo in pddActivitiPriceProd.enroll_rule_param.enroll_goods_big_sale_price.sku_info_list) + { + var sku = prodParam.skus.FirstOrDefault(sk => string.Join(",", sk.spec.Select(s => s.spec_name)) == activitySkuInfo.spec_info_str); + if (sku == null || sku.multi_price > activitySkuInfo.require_price) + { + activityErr += "\r\n上传错误 620价格低于产品价 " + activitySkuInfo.require_price + " < " + sku.multi_price; + if (BaseClass.SaLevel != 1 && 1 != 1) + activityErr = "上传错误"; + goto restoreSkuImg4; + } + } + + var quantity = prodParam.skus.Sum(s => s.quantity_delta); + PDDActivitySubmitParam actSubmitParam = new PDDActivitySubmitParam(); + actSubmitParam.activity_id = pddActivitiPriceInfo.activity_id; + actSubmitParam.enroll_source_ctx.enroll_type = 3; + actSubmitParam.enroll_source_ctx.scene_full_coverage = "mmsActBatchEnrollV1"; + actSubmitParam.enroll_source_ctx.source_type = "MMSActicon"; + actSubmitParam.enroll_source_ctx.scene_type = "ActivityCard"; + + var goods_vo_item = new goods_vo_param(); + goods_vo_item.goods_id = prodParam.goods_id; + var skuSamePrice = prodParam.skus.Max(s => s.multi_price); + foreach (var activitySkuInfo in pddActivitiPriceProd.enroll_rule_param.enroll_goods_big_sale_price.sku_info_list) + { + var sku = prodParam.skus.FirstOrDefault(sk => string.Join(",", sk.spec.Select(s => s.spec_name)) == activitySkuInfo.spec_info_str); + if (sku == null) + { + activityErr += "\r\n上传错误 620价格sku未找到"; + if (BaseClass.SaLevel != 1 && 1 != 1) + activityErr = "上传错误"; + goto restoreSkuImg4; + } + + create_sku_vo_param sku_vo_item = new create_sku_vo_param(); + sku_vo_item.sku_id = activitySkuInfo.sku_id; + sku_vo_item.sku_activity_price = sku.multi_price; + sku_vo_item.sku_front_ctx_vo = new sku_front_ctx_vo_param() + { + filling_sku_price = sku.multi_price, + gear_rule = activitySkuInfo.gear_rule, + require_price = sku.multi_price, + filling_sku_price_gear_rule = activitySkuInfo.filling_sku_price_gear_rule, + }; + goods_vo_item.create_activity_price_vo.create_sku_vos.Add(sku_vo_item); + } + //goods_vo_item.create_activity_price_vo.create_quantity_vo.goods_activity_quantity = + // Math.Min(quantity.ParseToInt(), 300); // 7折活动上限300 + actSubmitParam.goods_volist.Add(goods_vo_item); + actSubmitParam.create_protocol_vo.need_create_cost_template = true; + + var addActivityRst = add_activity_goods(shop, actSubmitParam, prodParam.goods_id.ParseToString(), 23620, 27); + if (addActivityRst.Contains("频繁")) + { + Thread.Sleep(Randomx.GetId(5000, 10000)); + addActivityRst = add_activity_goods(shop, actSubmitParam, prodParam.goods_id.ParseToString(), 23620, 27); + } + var err_msg = BaseRegex.GetStringJson(ref addActivityRst, "error_msg"); + if (!addActivityRst.Contains("\"success\":true") || !string.IsNullOrEmpty(err_msg)) + { + var error = BaseRegex.GetStringJson(ref addActivityRst, "error_msg"); + if (string.IsNullOrEmpty(error)) + error = addActivityRst; + activityErr += "\r\n上传错误 620新建失败 " + error; + if (BaseClass.SaLevel != 1 && 1 != 1) + activityErr = "上传错误"; + goto restoreSkuImg4; + } + } + catch (Exception ex) + { + activityErr += "\r\n上传错误 620查询/新建失败 " + ex.Message; + if (BaseClass.SaLevel != 1 && 1 != 1) + activityErr = "上传错误"; + goto restoreSkuImg4; + } + } //活动4 + restoreSkuImg4: + + // 20981 长期活动 //活动1 + if (1 == 1 && sign20981) + { + activityErr += SignActivity20981(shop, prodParam); + } + + //15996 9块9 (价格要求低于29.9元) //活动3 + if (1 == 1 && sign15996 && !prodParam.skus.Any(s => s.multi_price > 2990)) + { + activityErr += SignActivity15996(shop, prodParam); + } + + // 22347 直通车加权 + if (1 == 1 && sign22347) + { + activityErr += SignActivity22347(shop, prodParam); + } + + return activityErr; + } + + string SignActivity21365(ShopLoginInfo shop, PDDProductUploadParam prodParam) + { + string activityErr = ""; + var activityRst2 = activity_goods_price_rule(shop, prodParam.goods_id.ParseToString(), 21365, 27); + if (!activityRst2.Contains("\"success\":true")) + { + var error = BaseRegex.GetStringJson(ref activityRst2, "error_msg"); + if (string.IsNullOrEmpty(error)) + error = activityRst2; + activityErr += "\r\n上传错误 365查询失败 " + error; + if (BaseClass.SaLevel != 1 && 1 != 1) + activityErr = "上传错误"; + return activityErr; + } + try + { + var jObj = JObject.Parse(activityRst2); + var jStr = JsonHelper.SerializeObject(jObj["result"]); + var pddActivitiPriceInfo = JsonHelper.DeserializeJsonToObject(jStr); + var pddActivitiPriceProd = pddActivitiPriceInfo.enroll_goods_rule_vos.FirstOrDefault(); + + if (pddActivitiPriceProd == null) + { + activityErr += "\r\n上传错误 365查询/新建失败 商品未提交成功或不满足参加活动条件"; + if (BaseClass.SaLevel != 1 && 1 != 1) + activityErr = "上传错误"; + return activityErr; + } + foreach (var activitySkuInfo in pddActivitiPriceProd.enroll_rule_param.enroll_goods_big_sale_price.sku_info_list) + { + if (activitySkuInfo.spec_info_str.Contains("福利款")) + { + } + var sku = prodParam.skus.FirstOrDefault(sk => string.Join(",", sk.spec.Select(s => s.spec_name)) == activitySkuInfo.spec_info_str); + if (sku == null || sku.multi_price > activitySkuInfo.require_price) + { + activityErr += "\r\n上传错误 365价格低于产品价 " + activitySkuInfo.require_price + " < " + sku.multi_price; + if (BaseClass.SaLevel != 1 && 1 != 1) + activityErr = "上传错误"; + return activityErr; + } + } + + var quantity = prodParam.skus.Sum(s => s.quantity_delta); + PDDActivitySubmitParam actSubmitParam = new PDDActivitySubmitParam(); + actSubmitParam.activity_id = pddActivitiPriceInfo.activity_id; + actSubmitParam.enroll_source_ctx.enroll_type = 3; + actSubmitParam.enroll_source_ctx.scene_full_coverage = "mmsActBatchEnrollV1"; + actSubmitParam.enroll_source_ctx.source_type = "MMSActicon"; + actSubmitParam.enroll_source_ctx.scene_type = "ActivityCard"; + + var goods_vo_item = new goods_vo_param(); + goods_vo_item.goods_id = prodParam.goods_id; + var skuSamePrice = prodParam.skus.Max(s => s.multi_price); + foreach (var activitySkuInfo in pddActivitiPriceProd.enroll_rule_param.enroll_goods_big_sale_price.sku_info_list) + { + var sku = prodParam.skus.FirstOrDefault(sk => string.Join(",", sk.spec.Select(s => s.spec_name)) == activitySkuInfo.spec_info_str); + if (sku == null) + { + activityErr += "\r\n上传错误 365价格sku未找到"; + if (BaseClass.SaLevel != 1 && 1 != 1) + activityErr = "上传错误"; + return activityErr; + } + + create_sku_vo_param sku_vo_item = new create_sku_vo_param(); + sku_vo_item.sku_id = activitySkuInfo.sku_id; + sku_vo_item.sku_activity_price = sku.multi_price; + sku_vo_item.sku_front_ctx_vo = new sku_front_ctx_vo_param() + { + filling_sku_price = sku.multi_price, + gear_rule = activitySkuInfo.gear_rule, + require_price = sku.multi_price, + filling_sku_price_gear_rule = activitySkuInfo.filling_sku_price_gear_rule, + }; + goods_vo_item.create_activity_price_vo.create_sku_vos.Add(sku_vo_item); + } + goods_vo_item.create_activity_price_vo.create_quantity_vo.goods_activity_quantity = + Math.Min(quantity.ParseToInt(), 300); // 7折活动库存上限300 + actSubmitParam.goods_volist.Add(goods_vo_item); + actSubmitParam.create_protocol_vo.need_create_cost_template = true; + + var addActivityRst = add_activity_goods(shop, actSubmitParam, prodParam.goods_id.ParseToString(), 21365, 27); + if (addActivityRst.Contains("频繁")) + { + Thread.Sleep(Randomx.GetId(3000, 7000)); + addActivityRst = add_activity_goods(shop, actSubmitParam, prodParam.goods_id.ParseToString(), 21365, 27); + } + var err_msg = BaseRegex.GetStringJson(ref addActivityRst, "error_msg"); + if (!addActivityRst.Contains("\"success\":true") || !string.IsNullOrEmpty(err_msg)) + { + var error = BaseRegex.GetStringJson(ref addActivityRst, "error_msg"); + if (string.IsNullOrEmpty(error)) + error = addActivityRst; + activityErr += "\r\n上传错误 365新建失败 " + error; + if (BaseClass.SaLevel != 1 && 1 != 1) + activityErr = "上传错误"; + return activityErr; + } + } + catch (Exception ex) + { + activityErr += "\r\n上传错误 365查询/新建失败 " + ex.Message; + if (BaseClass.SaLevel != 1 && 1 != 1) + activityErr = "上传错误"; + return activityErr; + } + activityErr = "\r\n365新建成功"; + return activityErr; + } + + string CheckActivity20981(ShopLoginInfo shop, PDDProductUploadParam prodParam) + { + string activityErr = ""; + Thread.Sleep(Randomx.GetId(500, 1500)); + var activityRst1 = activity_goods_info(shop, prodParam.goods_id.ParseToString(), "20981"); + if (!activityRst1.Contains("\"success\":true")) + activityRst1 = activity_goods_info(shop, prodParam.goods_id.ParseToString(), "20981"); + if (!activityRst1.Contains("\"success\":true")) + { + var error = BaseRegex.GetStringJson(ref activityRst1, "error_msg"); + if (string.IsNullOrEmpty(error)) + error = activityRst1; + activityErr += "校验失败 981查询失败 " + error; + return activityErr; + } + try + { + var jObj = JObject.Parse(activityRst1); + var jStr = JsonHelper.SerializeObject(jObj["result"]["result"]); + var pddActivitiInfo = (JsonHelper.DeserializeJsonToObject(jStr)?.theme_activity_quick_enroll_goods_render_form_list).FirstOrDefault(); + + if (pddActivitiInfo == null) + { + activityErr += "校验失败 981查询/新建失败 商品未提交成功或不满足参加活动条件"; + return activityErr; + } + foreach (var activitySku in pddActivitiInfo.activity_price_render.sku_activity_price_render_dtolist) + { + var sku = prodParam.skus.FirstOrDefault(sk => string.Join(",", sk.spec.Select(s => s.spec_name)) == activitySku.sku_name); + if (sku == null) + { + activityErr += "校验失败 981sku丢失 " + activitySku.sku_name; + return activityErr; + } + if (sku.multi_price > activitySku.suggest_price && sku.multi_price == activitySku.suggest_price + 1) + { + sku.multi_price = activitySku.suggest_price + 1; + } + if (sku.multi_price > activitySku.suggest_price) + { + // 此处临时用sku69_code记录一下需要改动库存的sku + if (sku.quantity_delta > 0) + sku.sku69_code = "yes"; + sku.multi_price = activitySku.suggest_price; + } + } + if (prodParam.skus.All(s => s.sku69_code == "yes")) + { + activityErr += "校验失败 所有981价格均低于产品价"; + return activityErr; + } + } + catch (Exception ex) + { + activityErr += "校验失败 981查询/新建失败 " + ex.Message; + return activityErr; + } + activityErr = "981校验成功"; + return activityErr; + } + + string SignActivity20981(ShopLoginInfo shop, PDDProductUploadParam prodParam) + { + string activityErr = ""; + Thread.Sleep(Randomx.GetId(500, 1500)); + var activityRst1 = activity_goods_info(shop, prodParam.goods_id.ParseToString(), "20981"); + if (!activityRst1.Contains("\"success\":true")) + { + var error = BaseRegex.GetStringJson(ref activityRst1, "error_msg"); + if (string.IsNullOrEmpty(error)) + error = activityRst1; + activityErr += "\r\n上传错误 981查询失败 " + error; + if (BaseClass.SaLevel != 1 && 1 != 1) + activityErr = "上传错误"; + //goto restoreSkuImg1; + return activityErr; + } + try + { + var jObj = JObject.Parse(activityRst1); + var jStr = JsonHelper.SerializeObject(jObj["result"]["result"]); + var pddActivitiInfo = (JsonHelper.DeserializeJsonToObject(jStr)?.theme_activity_quick_enroll_goods_render_form_list).FirstOrDefault(); + + if (pddActivitiInfo == null) + { + activityErr += "\r\n上传错误 981查询/新建失败 商品未提交成功或不满足参加活动条件"; + if (BaseClass.SaLevel != 1 && 1 != 1) + activityErr = "上传错误"; + //goto restoreSkuImg1; + return activityErr; + } + foreach (var activitySku in pddActivitiInfo.activity_price_render.sku_activity_price_render_dtolist) + { + //var sku = prodParam.skus.FirstOrDefault(s => s.sku_id == activitySku.sku_id); + var sku = prodParam.skus.FirstOrDefault(sk => string.Join(",", sk.spec.Select(s => s.spec_name)) == activitySku.sku_name); + if (sku == null || sku.multi_price > activitySku.suggest_price) + { + activityErr += "\r\n上传错误 981价格低于产品价 " + activitySku.suggest_price + " < " + sku.multi_price; + if (BaseClass.SaLevel != 1 && 1 != 1) + activityErr = "上传错误"; + //goto restoreSkuImg1; + return activityErr; + } + } + + PDDActivitySubmitParam actSubmitParam = new PDDActivitySubmitParam(); + actSubmitParam.activity_id = pddActivitiInfo.activity_id; + actSubmitParam.enroll_source_ctx.enroll_type = 34; //入口1 + //actSubmitParam.enroll_source_ctx.enroll_type = 3; //入口2 + actSubmitParam.enroll_source_ctx.scene_full_coverage = "mmsActQuickEnrollMultiActivityRealTableV1"; //入口1 + //actSubmitParam.enroll_source_ctx.scene_full_coverage = "mmsActBatchEnrollV1"; //入口2 + actSubmitParam.enroll_source_ctx.source_type = "OwnHome_MultiActEnrollMMS"; //入口1 + //actSubmitParam.enroll_source_ctx.source_type = "MMSActicon"; //入口2 + actSubmitParam.enroll_source_ctx.scene_type = null; //入口1 + //actSubmitParam.enroll_source_ctx.scene_type = "ActivityCard"; //入口2 + + var goods_vo_item = new goods_vo_param(); + goods_vo_item.goods_id = prodParam.goods_id; + var skuSamePrice = prodParam.skus.Max(s => s.multi_price); + foreach (var activitySku in pddActivitiInfo.activity_price_render.sku_activity_price_render_dtolist) + { + //var sku = prodParam.skus.FirstOrDefault(s => s.sku_id == activitySku.sku_id); + var sku = prodParam.skus.FirstOrDefault(sk => string.Join(",", sk.spec.Select(s => s.spec_name)) == activitySku.sku_name); + if (sku == null) + { + activityErr += "\r\n上传错误 981价格sku未找到"; + if (BaseClass.SaLevel != 1 && 1 != 1) + activityErr = "上传错误"; + //goto restoreSkuImg1; + return activityErr; + } + + create_sku_vo_param sku_vo_item = new create_sku_vo_param(); + sku_vo_item.sku_id = activitySku.sku_id; + sku_vo_item.sku_activity_price = sku.multi_price; //skuSamePrice; //sku.multi_price; //activitySku.suggest_price; + sku_vo_item.sku_front_ctx_vo = new sku_front_ctx_vo_param() + { + filling_sku_price = sku.multi_price, //skuSamePrice, //sku.multi_price, //activitySku.suggest_price, + gear_rule = activitySku.gear_rule, + require_price = sku.multi_price, //skuSamePrice, //sku.multi_price, //activitySku.suggest_price, + }; + goods_vo_item.create_activity_price_vo.create_sku_vos.Add(sku_vo_item); + } + actSubmitParam.goods_volist.Add(goods_vo_item); + actSubmitParam.create_protocol_vo.need_create_cost_template = true; + + if (pddActivitiInfo.need_goods_activity_price == true) + actSubmitParam.goods_volist.FirstOrDefault().view_confirmed_goods_protocol_vo.confirm_hit_cut_price = true; + + //var addActivityRst = add_activity_goods(shop, actSubmitParam, prodParam.goods_id.ParseToString(), 20981, 0); + var addActivityRst = add_activity_goods(shop, actSubmitParam, prodParam.goods_id.ParseToString(), 20981, 27); + var err_msg = BaseRegex.GetStringJson(ref addActivityRst, "error_msg"); + if (err_msg.ParseToString().Contains("报名该活动需要签署降价补差协议,立即前往链接签署")) + { + Invoke(new Action(() => + { + PDDShopLoginForm loginForm = new PDDShopLoginForm(shop); + loginForm.openType = EnumOpenType.manage; + loginForm.InitUrl = err_msg.Substring(err_msg.IndexOf("https://")); //"https://mms.pinduoduo.com/mallcenter/signProtocol/21"; + loginForm.ShowDialog(); + })); + addActivityRst = add_activity_goods(shop, actSubmitParam, prodParam.goods_id.ParseToString(), 20981, 27); + err_msg = BaseRegex.GetStringJson(ref addActivityRst, "error_msg"); + } + if (!addActivityRst.Contains("\"success\":true") || !string.IsNullOrEmpty(err_msg)) + { + var error = BaseRegex.GetStringJson(ref addActivityRst, "error_msg"); + if (string.IsNullOrEmpty(error)) + error = addActivityRst; + activityErr += "\r\n上传错误 981新建失败 " + error; + if (BaseClass.SaLevel != 1 && 1 != 1) + activityErr = "上传错误"; + //goto restoreSkuImg1; + return activityErr; + } + } // 活动1 + catch (Exception ex) + { + activityErr += "\r\n上传错误 981查询/新建失败 " + ex.Message; + if (BaseClass.SaLevel != 1 && 1 != 1) + activityErr = "上传错误"; + //goto restoreSkuImg1; + return activityErr; + } + activityErr = "\r\n981新建成功"; + return activityErr; + } + + string SignActivity15996(ShopLoginInfo shop, PDDProductUploadParam prodParam) + { + string activityErr = ""; + Thread.Sleep(Randomx.GetId(500, 1500)); + var activityRst3 = activity_goods_price_rule(shop, prodParam.goods_id.ParseToString(), 15996, 18); + if (!activityRst3.Contains("\"success\":true")) + { + var error = BaseRegex.GetStringJson(ref activityRst3, "error_msg"); + if (string.IsNullOrEmpty(error)) + error = activityRst3; + activityErr += "\r\n上传错误 996查询失败 " + error; + if (BaseClass.SaLevel != 1 && 1 != 1) + activityErr = "上传错误"; + return activityErr; + } + try + { + var jObj = JObject.Parse(activityRst3); + var jStr = JsonHelper.SerializeObject(jObj["result"]); + var pddActivitiPriceInfo = JsonHelper.DeserializeJsonToObject(jStr); + var pddActivitiPriceProd = pddActivitiPriceInfo.enroll_goods_rule_vos.FirstOrDefault(); + + if (pddActivitiPriceProd == null) + { + activityErr += "\r\n上传错误 996查询/新建失败 商品未提交成功或不满足参加活动条件"; + if (BaseClass.SaLevel != 1 && 1 != 1) + activityErr = "上传错误"; + return activityErr; + } + foreach (var activitySkuInfo in pddActivitiPriceProd.enroll_rule_param.enroll_goods_resource_price.sku_info_list) + { + var sku = prodParam.skus.FirstOrDefault(sk => string.Join(",", sk.spec.Select(s => s.spec_name)) == activitySkuInfo.spec_info_str); + if (sku == null || sku.multi_price > 2990 /*activitySkuInfo.require_price*/) + { + activityErr += "\r\n上传错误 996价格低于产品价"; + if (BaseClass.SaLevel != 1 && 1 != 1) + activityErr = "上传错误"; + return activityErr; + } + } + + PDDActivitySubmitParam actSubmitParam = new PDDActivitySubmitParam(); + actSubmitParam.activity_id = pddActivitiPriceInfo.activity_id; + actSubmitParam.enroll_source_ctx.enroll_type = 3; + actSubmitParam.enroll_source_ctx.scene_full_coverage = "mmsActBatchEnrollV1"; + actSubmitParam.enroll_source_ctx.source_type = "MMSActicon"; + actSubmitParam.enroll_source_ctx.scene_type = "ActivityCard"; + + var goods_vo_item = new goods_vo_param(); + goods_vo_item.goods_id = prodParam.goods_id; + foreach (var activitySkuInfo in pddActivitiPriceProd.enroll_rule_param.enroll_goods_resource_price.sku_info_list) + { + var sku = prodParam.skus.FirstOrDefault(sk => string.Join(",", sk.spec.Select(s => s.spec_name)) == activitySkuInfo.spec_info_str); + if (sku == null) + { + activityErr += "\r\n上传错误 996价格sku未找到"; + if (BaseClass.SaLevel != 1 && 1 != 1) + activityErr = "上传错误"; + return activityErr; + } + + create_sku_vo_param sku_vo_item = new create_sku_vo_param(); + sku_vo_item.sku_id = activitySkuInfo.sku_id; + sku_vo_item.sku_activity_price = sku.multi_price; + sku_vo_item.sku_front_ctx_vo = new sku_front_ctx_vo_param() + { + filling_sku_price = sku.multi_price, + gear_rule = activitySkuInfo.gear_rule, + require_price = sku.multi_price, + filling_sku_price_gear_rule = activitySkuInfo.filling_sku_price_gear_rule, + }; + goods_vo_item.create_discount_vo = new create_discount_vo_param(); + goods_vo_item.create_discount_vo.hit_multi_percent = true; + goods_vo_item.create_discount_vo.multi_percent_discount = 99; + goods_vo_item.create_activity_price_vo.create_sku_vos.Add(sku_vo_item); + } + actSubmitParam.goods_volist.Add(goods_vo_item); + actSubmitParam.create_protocol_vo.need_create_cost_template = true; + + var addActivityRst = add_activity_goods(shop, actSubmitParam, prodParam.goods_id.ParseToString(), 15996, 18); + var err_msg = BaseRegex.GetStringJson(ref addActivityRst, "error_msg"); + if (!addActivityRst.Contains("\"success\":true") || !string.IsNullOrEmpty(err_msg)) + { + var error = BaseRegex.GetStringJson(ref addActivityRst, "error_msg"); + if (string.IsNullOrEmpty(error)) + error = addActivityRst; + activityErr += "\r\n上传错误 996新建失败 " + error; + if (BaseClass.SaLevel != 1 && 1 != 1) + activityErr = "上传错误"; + return activityErr; + } + } + catch (Exception ex) + { + activityErr = "\r\n上传错误 996查询/新建失败 " + ex.Message; + if (BaseClass.SaLevel != 1 && 1 != 1) + activityErr = "上传错误"; + return activityErr; + } + activityErr = "\r\n996新建成功"; + return activityErr; + } + + string SignActivity22347(ShopLoginInfo shop, PDDProductUploadParam prodParam) + { + string activityErr = ""; + Thread.Sleep(Randomx.GetId(500, 1500)); + var activityRst2 = activity_goods_price_rule(shop, prodParam.goods_id.ParseToString(), 22347, 27); + if (!activityRst2.Contains("\"success\":true")) + { + var error = BaseRegex.GetStringJson(ref activityRst2, "error_msg"); + if (string.IsNullOrEmpty(error)) + error = activityRst2; + activityErr += "\r\n上传错误 347查询失败 " + error; + if (BaseClass.SaLevel != 1 && 1 != 1) + activityErr = "上传错误"; + //goto restoreSkuImg1; + return activityErr; + } + try + { + var jObj = JObject.Parse(activityRst2); + var jStr = JsonHelper.SerializeObject(jObj["result"]); + var pddActivitiPriceInfo = JsonHelper.DeserializeJsonToObject(jStr); + var pddActivitiPriceProd = pddActivitiPriceInfo.enroll_goods_rule_vos.FirstOrDefault(); + + if (pddActivitiPriceProd == null) + { + activityErr += "\r\n上传错误 347查询/新建失败 商品未提交成功或不满足参加活动条件"; + if (BaseClass.SaLevel != 1 && 1 != 1) + activityErr = "上传错误"; + //goto restoreSkuImg1; + return activityErr; + } + foreach (var activitySkuInfo in pddActivitiPriceProd.enroll_rule_param.enroll_goods_big_sale_price.sku_info_list) + { + //var sku = prodParam.skus.FirstOrDefault(s => s.sku_id == activitySku.sku_id); + var sku = prodParam.skus.FirstOrDefault(sk => string.Join(",", sk.spec.Select(s => s.spec_name)) == activitySkuInfo.spec_info_str); + if (sku == null || sku.multi_price > activitySkuInfo.require_price) + { + activityErr += "\r\n上传错误 347价格低于产品价 " + activitySkuInfo.require_price + " < " + sku.multi_price; + if (BaseClass.SaLevel != 1 && 1 != 1) + activityErr = "上传错误"; + //goto restoreSkuImg1; + return activityErr; + } + } + + PDDActivitySubmitParam actSubmitParam = new PDDActivitySubmitParam(); + actSubmitParam.activity_id = pddActivitiPriceInfo.activity_id; + actSubmitParam.enroll_source_ctx.enroll_type = 3; + actSubmitParam.enroll_source_ctx.scene_full_coverage = "mmsActBatchEnrollV1"; + actSubmitParam.enroll_source_ctx.source_type = null; + actSubmitParam.enroll_source_ctx.scene_type = null; + + var goods_vo_item = new goods_vo_param(); + goods_vo_item.goods_id = prodParam.goods_id; + var skuSamePrice = prodParam.skus.Max(s => s.multi_price); + foreach (var activitySkuInfo in pddActivitiPriceProd.enroll_rule_param.enroll_goods_big_sale_price.sku_info_list) + { + //var sku = prodParam.skus.FirstOrDefault(s => s.sku_id == activitySku.sku_id); + var sku = prodParam.skus.FirstOrDefault(sk => string.Join(",", sk.spec.Select(s => s.spec_name)) == activitySkuInfo.spec_info_str); + if (sku == null) + { + activityErr += "\r\n上传错误 347价格sku未找到"; + if (BaseClass.SaLevel != 1 && 1 != 1) + activityErr = "上传错误"; + //goto restoreSkuImg1; + return activityErr; + } + + create_sku_vo_param sku_vo_item = new create_sku_vo_param(); + sku_vo_item.sku_id = activitySkuInfo.sku_id; + sku_vo_item.sku_activity_price = sku.multi_price; //skuSamePrice; //sku.multi_price; //activitySku.suggest_price; + sku_vo_item.sku_front_ctx_vo = new sku_front_ctx_vo_param() + { + filling_sku_price = sku.multi_price, + gear_rule = activitySkuInfo.gear_rule, + require_price = sku.multi_price, + filling_sku_price_gear_rule = activitySkuInfo.filling_sku_price_gear_rule, + }; + goods_vo_item.create_activity_price_vo.create_sku_vos.Add(sku_vo_item); + } + actSubmitParam.goods_volist.Add(goods_vo_item); + actSubmitParam.create_protocol_vo.need_create_cost_template = true; + + //if (pddActivitiInfo.need_goods_activity_price == true) + actSubmitParam.goods_volist.FirstOrDefault().view_confirmed_goods_protocol_vo.confirm_hit_cut_price = true; + + var addActivityRst = add_activity_goods(shop, actSubmitParam, prodParam.goods_id.ParseToString(), 22347, 27); + var err_msg = BaseRegex.GetStringJson(ref addActivityRst, "error_msg"); + if (err_msg.ParseToString().Contains("报名该活动需要签署降价补差协议,立即前往链接签署")) + { + Invoke(new Action(() => + { + PDDShopLoginForm loginForm = new PDDShopLoginForm(shop); + loginForm.openType = EnumOpenType.manage; + loginForm.InitUrl = err_msg.Substring(err_msg.IndexOf("https://")); //"https://mms.pinduoduo.com/mallcenter/signProtocol/21"; + loginForm.ShowDialog(); + })); + addActivityRst = add_activity_goods(shop, actSubmitParam, prodParam.goods_id.ParseToString(), 22347, 27); + err_msg = BaseRegex.GetStringJson(ref addActivityRst, "error_msg"); + } + if (!addActivityRst.Contains("\"success\":true") || !string.IsNullOrEmpty(err_msg)) + { + var error = BaseRegex.GetStringJson(ref addActivityRst, "error_msg"); + if (string.IsNullOrEmpty(error)) + error = addActivityRst; + activityErr += "\r\n上传错误 347新建失败 " + error; + if (BaseClass.SaLevel != 1 && 1 != 1) + activityErr = "上传错误"; + //goto restoreSkuImg1; + return activityErr; + } + } // 活动1 + catch (Exception ex) + { + activityErr += "\r\n上传错误 347查询/新建失败 " + ex.Message; + if (BaseClass.SaLevel != 1 && 1 != 1) + activityErr = "上传错误"; + //goto restoreSkuImg1; + return activityErr; + } + activityErr = "\r\n347新建成功"; + return activityErr; + } + + /// + /// 上传sku图片 + /// + /// + /// + /// + /// + /// + public string UploadProdSkuImg(ShopLoginInfo shop, string img_base64, string goods_id, string goods_commit_id, string chanceTab) + { + Image image = null; + byte[] imageBytes = Convert.FromBase64String(img_base64); + // 使用MemoryStream创建图片对象 + using (MemoryStream ms = new MemoryStream(imageBytes)) + { + try + { + image = Image.FromStream(ms); + } + catch (Exception ex) + { + return "存图失败 " + ex.Message; + } + } + return UploadProdSkuImg(shop, image, goods_id, goods_commit_id, chanceTab); + } + + public string UploadProdSkuImg(ShopLoginInfo shop, Image image, string goods_id, string goods_commit_id, string chanceTab) + { + string img_signature = ""; + var img_signature_rst = get_upload_sku_img_signature(shop, goods_id, goods_commit_id, chanceTab); + if (!img_signature_rst.Contains("\"success\":true")) + { + Thread.Sleep(Randomx.GetId(500, 1000)); + img_signature_rst = get_upload_sku_img_signature(shop, goods_id.ParseToString(), goods_commit_id, chanceTab); + } + if (!img_signature_rst.Contains("\"success\":true")) + { + Thread.Sleep(Randomx.GetId(500, 1000)); + img_signature_rst = get_upload_sku_img_signature(shop, goods_id.ParseToString(), goods_commit_id, chanceTab); + } + if (!img_signature_rst.Contains("\"success\":true")) + { + //var error = BaseRegex.GetStringJson(ref img_signature_rst, "error_msg"); + //if (string.IsNullOrEmpty(error)) + // error = img_signature_rst; + //return "上传图片准备失败 " + error; + return img_signature_rst; + } + else + { + img_signature = BaseRegex.GetStringJson(ref img_signature_rst, "signature"); + } + + // 保存图片到文件系统 + string imgName = ""; + string imgPath = ""; + try + { + string dirverName = "D:"; + if (!DriveInfo.GetDrives().Any(d => d.Name.StartsWith(dirverName))) + dirverName = "E:"; + if (!DriveInfo.GetDrives().Any(d => d.Name.StartsWith(dirverName))) + dirverName = "C:"; + if (!Directory.Exists(dirverName + "\\img_tmp")) + Directory.CreateDirectory(dirverName + "\\img_tmp"); + imgName = "图片" + Randomx.GetId(1000, 10000) + ".jpg"; + imgPath = dirverName + "\\img_tmp\\" + imgName; + image.Save(imgPath, System.Drawing.Imaging.ImageFormat.Jpeg); + } + catch (Exception ex) + { + return "存图失败 " + ex.Message; + } + + string boundary = "----WebKitFormBoundaryi5f9ydbgu8bo3yVD"; + string body = @"------WebKitFormBoundaryi5f9ydbgu8bo3yVD +Content-Disposition: form-data; name=""upload_sign"" + +" + img_signature + @" +------WebKitFormBoundaryi5f9ydbgu8bo3yVD +Content-Disposition: form-data; name=""image""; filename=""" + imgName + @""" +Content-Type: image/jpeg + +" + imgPath + @" +------WebKitFormBoundaryi5f9ydbgu8bo3yVD +Content-Disposition: form-data; name=""pic_operations"" + +{""rules"":[{""rule"":""imageMogr2/format/jpeg/quality/80|imageView2/2/w/2000/h/2000""}]} +------WebKitFormBoundaryi5f9ydbgu8bo3yVD-- +"; + Thread.Sleep(Randomx.GetId(5, 20)); + var uploadImgRst = uploag_sku_img(shop, body, goods_id, goods_commit_id, boundary); + return uploadImgRst; + } + + public static List GetProductDetailByExtCode(string out_goods_sn) + { + if (string.IsNullOrEmpty(out_goods_sn)) + return new List(); + + List list = new List(); + + var url = BaseClass.BuildObjString("product/get_product_detail_list"); + var data = UserLogin.GetSignaturex() + "&search_secret_spu_ids=" + out_goods_sn; + + var html = GetHtml.PostUtf8(url, data); + if (string.IsNullOrEmpty(html) || !html.Contains("\"code\":200")) + html = GetHtml.PostUtf8(url, data); + if (string.IsNullOrEmpty(html) || !html.Contains("\"code\":200")) + { + return list; + } + + var jArr = JObject.Parse(html)["data"]; + var sProd = JsonHelper.SerializeObject(jArr); + + try + { + list = JsonHelper.DeserializeJsonToList(sProd); + } + catch (Exception ex) + { + return list; + } + + if (list.Count == 0) + { + url = BaseClass.BuildObjString("product/get_product_detail_list"); + data = UserLogin.GetSignaturex() + "&ext_code_in=" + out_goods_sn; + + 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")) + { + return list; + } + + jArr = JObject.Parse(html)["data"]; + if (jArr.Count() == 0) + return list; + sProd = JsonHelper.SerializeObject(jArr); + + try + { + list = JsonHelper.DeserializeJsonToList(sProd); + } + catch (Exception ex) + { + return list; + } + } + + return list; + } + + /// + /// 通过商品goodsid获取commitid + /// glide/v2/mms/edit/commit/create_by_sn + /// + /// + /// + /// + private string get_prod_commit_id(ShopLoginInfo shop, string prodId, bool _isChanceApi) + { + var anti = shop.AntiContents.LastOrDefault().ParseToString(); + if (shop.AntiContents.Count > 0) + anti = shop.AntiContents[Randomx.GetId(shop.AntiContents.Count)]; + string url = "https://mms.pinduoduo.com/glide/v2/mms/edit/commit/create_by_sn"; + string body = @"{""goods_id"":" + prodId + "}"; + string refere = "https://mms.pinduoduo.com/goods/goods_list?msfrom=mms_sidenav"; + if (_isChanceApi) + { + refere = "https://mms.pinduoduo.com/goods/category?chance_tab=search"; + } + var result = HttpResponseBLL.PDDPostResponse(shop, url, body, refere, anti); + for (int i = 0; i < 5 && result.Contains("网络繁忙,请不要频繁操作"); i++) + { + shop.AntiContents.Remove(anti); + anti = shop.AntiContents.FirstOrDefault().ParseToString(); + if (shop.AntiContents.Count > 0) + { + Thread.Sleep(Randomx.GetId(300, 500)); + anti = shop.AntiContents[Randomx.GetId(shop.AntiContents.Count)]; + result = HttpResponseBLL.PDDPostResponse(shop, url, body, refere, anti); + } + } + return result; + } + + /// + /// 获取关联属性 + /// draco-ms/mms/template/property/sub-property/v4 + /// + /// + /// + /// + /// + /// + /// + /// + private string get_sub_property_template(ShopLoginInfo shop, string catId, string template_pid, string vid, string goodsId, string commitId, string chanceTab) + { + var anti = shop.AntiContents.LastOrDefault().ParseToString(); + if (shop.AntiContents.Count > 0) + anti = shop.AntiContents[Randomx.GetId(shop.AntiContents.Count)]; + string url = "https://mms.pinduoduo.com/draco-ms/mms/template/property/sub-property/v4"; + string body = @"{""cat_id"":" + catId + @",""template_pid"":" + template_pid + @",""vid"":" + vid + @"}"; + string refere = "https://mms.pinduoduo.com/goods/goods_add/index?type=add&from=category&id=" + commitId + + "&goods_id=" + goodsId + "&sourcePage=goodsList"; + if (isChanceApi) + refere = "https://mms.pinduoduo.com/goods/goods_add/index?type=add&from=chance&id=" + commitId + + "&goods_id=" + goodsId + "&chance_tab=search&sourcePage=goodsListTopButton_CHANCE"; + if (!string.IsNullOrEmpty(chanceTab)) + refere = refere.Replace("chance_tab=search", "chance_tab=" + chanceTab); + var result = HttpResponseBLL.PDDPostResponse(shop, url, body, refere, anti); + for (int i = 0; i < 5 && (result.Contains("操作太过频繁") || result.Contains("网络繁忙,请不要频繁操作")); i++) + { + shop.AntiContents.Remove(anti); + anti = shop.AntiContents.LastOrDefault().ParseToString(); + if (shop.AntiContents.Count > 0) + { + Thread.Sleep(Randomx.GetId(300, 500)); + anti = shop.AntiContents[Randomx.GetId(shop.AntiContents.Count)]; + result = HttpResponseBLL.PDDPostResponse(shop, url, body, refere, anti); + } + } + return result; + } + + private string get_upload_sku_img_signature(ShopLoginInfo shop, string goodsId, string commitId, string chanceTab) + { + var anti = shop.AntiContents.LastOrDefault().ParseToString(); + if (shop.AntiContents.Count > 0) + anti = shop.AntiContents[Randomx.GetId(shop.AntiContents.Count)]; + string url = "https://mms.pinduoduo.com/galerie/business/get_signature"; + string body = @"{""bucket_tag"":""mms-material-img""}"; + string refere = "https://mms.pinduoduo.com/goods/goods_add/index?type=add&from=category&id=" + commitId + + "&goods_id=" + goodsId + "&sourcePage=goodsList"; + if (isChanceApi) + refere = "https://mms.pinduoduo.com/goods/goods_add/index?type=add&from=chance&id=" + commitId + + "&goods_id=" + goodsId + "&chance_tab=search&sourcePage=goodsListTopButton_CHANCE"; + if (!string.IsNullOrEmpty(chanceTab)) + refere = refere.Replace("chance_tab=search", "chance_tab=" + chanceTab); + + var result = HttpResponseBLL.PDDPostResponse(shop, url, body, refere, anti); + for (int i = 0; i < 5 && (result.Contains("\\u975E\\u6CD5\\u8BF7\\u6C42") || result.Contains("网络繁忙,请不要频繁操作")); i++) + { + shop.AntiContents.Remove(anti); + anti = shop.AntiContents.FirstOrDefault().ParseToString(); + if (shop.AntiContents.Count > 0) + { + Thread.Sleep(Randomx.GetId(300, 500)); + anti = shop.AntiContents[Randomx.GetId(shop.AntiContents.Count)]; + result = HttpResponseBLL.PDDPostResponse(shop, url, body, refere, anti); + } + } + return result; + } + + private string uploag_sku_img(ShopLoginInfo shop, string _body, string goodsId, string commitId, string boundary) + { + var anti = shop.AntiContents.LastOrDefault().ParseToString(); + if (shop.AntiContents.Count > 0) + anti = shop.AntiContents[Randomx.GetId(shop.AntiContents.Count)]; + string url = "https://file.pinduoduo.com/v3/store_image"; + string body = _body; + //string refere = "https://mms.pinduoduo.com/goods/goods_add/index?type=add&from=category&id=" + commitId + + // "&goods_id=" + goodsId + "&sourcePage=goodsList"; + //if (isChanceApi) + // refere = "https://mms.pinduoduo.com/goods/goods_add/index?type=add&from=chance&id=" + commitId + + // "&goods_id=" + goodsId + "&chance_tab=search&sourcePage=goodsListTopButton_CHANCE"; + string refere = "https://mms.pinduoduo.com/"; + var result = HttpResponseBLL.PDDPostResponseUpload(shop, url, body, refere, boundary, anti); + for (int i = 0; i < 5 && result.Contains("网络繁忙,请不要频繁操作"); i++) + { + shop.AntiContents.Remove(anti); + anti = shop.AntiContents.FirstOrDefault().ParseToString(); + if (shop.AntiContents.Count > 0) + { + Thread.Sleep(Randomx.GetId(300, 500)); + anti = shop.AntiContents[Randomx.GetId(shop.AntiContents.Count)]; + result = HttpResponseBLL.PDDPostResponseUpload(shop, url, body, refere, boundary, anti); + } + } + return result; + } + + /// + /// 保存商品详情 + /// glide/mms/goodsCommit/action/edit + /// + /// + /// + /// + /// + /// + private string save_goods_edit(ShopLoginInfo shop, PDDProductUploadParam prod, string prodId, string commitId, bool isChance, string type = "add") + { + var anti = shop.AntiContents.LastOrDefault().ParseToString(); + if (shop.AntiContents.Count > 0) + anti = shop.AntiContents[Randomx.GetId(shop.AntiContents.Count)]; + string url = "https://mms.pinduoduo.com/glide/mms/goodsCommit/action/edit"; + string body = JsonHelper.SerializeObject(prod); + if (type != "add") + { + body = body.Replace("\"first_upload_carousel\":null,", ""); + body = body.Replace("\"uploadDragAB\":null,", ""); + body = body.Replace("\"title_keywords\":null,", ""); + body = body.Replace("\"title_recommend\":null,", ""); + body = body.Replace("\"prefillWhitePic\":null,", ""); + + body = body.Replace("\"parent_spec_id\":null,", ""); + body = body.Replace("\"spec_id\":null,", ""); + body = body.Replace("\"note\":null,", ""); + body = body.Replace("\"img_url\":null,", ""); + body = body.Replace("\"group_id\":null,", ""); + //body = body.Replace("\"vid\":null,", ""); + } + string refere = "https://mms.pinduoduo.com/goods/goods_add/index?type=" + type + "&from=category&id=" + commitId + + "&goods_id=" + prodId + "&sourcePage=goodsList"; + refere = "https://mms.pinduoduo.com/goods/goods_add/index?id="+ commitId + "&goods_id=" + prodId + "&type=edit"; + if (isChance) + { + //refere = "https://mms.pinduoduo.com/goods/goods_add/index?type=" + type + "&from=chance&id=" + commitId + + // @"&goods_id=" + prodId + @"&chance_tab=hot_theme&sourcePage=goodsListTopButton_CHANCE"; + refere = "https://mms.pinduoduo.com/goods/goods_add/index?type=" + type + "&from=chance&id=" + commitId + + @"&goods_id=" + prodId + @"&chance_tab=search&sourcePage=goodsListTopButton_CHANCE"; + } + + var result = HttpResponseBLL.PDDPostResponse(shop, url, body.Replace("0asAntiContent", anti), refere, anti); + for (int i = 0; i < 5 && result.Contains("网络繁忙,请不要频繁操作"); i++) + { + shop.AntiContents.Remove(anti); + anti = shop.AntiContents.FirstOrDefault().ParseToString(); + if (shop.AntiContents.Count > 0) + { + Thread.Sleep(Randomx.GetId(300, 500)); + anti = shop.AntiContents[Randomx.GetId(shop.AntiContents.Count)]; + result = HttpResponseBLL.PDDPostResponse(shop, url, body.Replace("0asAntiContent", anti), refere, anti); + } + } + return result; + } + + /// + /// 商品提交 + /// glide/v2/mms/edit/commit/submit + /// + /// + /// + /// + /// + /// + public string submit_goods_edit(ShopLoginInfo shop, string prodId, string commitId, bool isChance, string type="add") + { + var anti = shop.AntiContents.LastOrDefault().ParseToString(); + if (shop.AntiContents.Count > 0) + anti = shop.AntiContents[Randomx.GetId(shop.AntiContents.Count)]; + string url = "https://mms.pinduoduo.com/glide/v2/mms/edit/commit/submit"; + string body = @"{""goods_commit_id"":""" + commitId + @""",""goods_id"":" + prodId + + @",""is_onsale"":true,""third_type"":0,""if_allow_submit_mall_checking"":true,""crawlerInfo"":""" + anti + @"""}"; + + string refere = "https://mms.pinduoduo.com/goods/goods_add/index?type=" + type + "&from=category&id=" + commitId + + "&goods_id=" + prodId + "&sourcePage=goodsList"; + refere = "https://mms.pinduoduo.com/goods/goods_add/index?id=" + commitId + "&goods_id=" + prodId + "&type=edit"; + if (isChance) + { + //refere = "https://mms.pinduoduo.com/goods/goods_add/index?type=" + type + "&from=chance&id=" + commitId + + // @"&goods_id=" + prodId + @"&chance_tab=hot_theme&sourcePage=goodsListTopButton_CHANCE"; + refere = "https://mms.pinduoduo.com/goods/goods_add/index?type=" + type + "&from=chance&id=" + commitId + + @"&goods_id=" + prodId + @"&chance_tab=search&sourcePage=goodsListTopButton_CHANCE"; + } + + var result = HttpResponseBLL.PDDPostResponse(shop, url, body.Replace("0asAntiContent", anti), refere, anti); + for (int i = 0; i < 5 && (result.Contains("网络繁忙,请不要频繁操作") || result.Contains("您的店铺操作过于频繁,请稍后操作")); i++) + { + shop.AntiContents.Remove(anti); + anti = shop.AntiContents.FirstOrDefault().ParseToString(); + if (shop.AntiContents.Count > 0) + { + Thread.Sleep(Randomx.GetId(300, 500)); + anti = shop.AntiContents[Randomx.GetId(shop.AntiContents.Count)]; + body = @"{""goods_commit_id"":""" + commitId + @""",""goods_id"":" + prodId + + @",""is_onsale"":true,""third_type"":0,""if_allow_submit_mall_checking"":true,""crawlerInfo"":""" + anti + @"""}"; + result = HttpResponseBLL.PDDPostResponse(shop, url, body.Replace("0asAntiContent", anti), refere, anti); + } + } + return result; + } + + private string increase_prod_stock_quantity(ShopLoginInfo shop, PddEditProdStockQuantity quantityData) + { + var anti = shop.AntiContents.LastOrDefault().ParseToString(); + if (shop.AntiContents.Count > 0) + anti = shop.AntiContents[Randomx.GetId(shop.AntiContents.Count)]; + string url = "https://mms.pinduoduo.com/vodka/v2/mms/edit/quantity/increase"; + string body = JsonHelper.SerializeObject(quantityData); + + + string refere = "https://mms.pinduoduo.com/goods/goods_list?msfrom=mms_sidenav"; + + var result = HttpResponseBLL.PDDPostResponse(shop, url, body, refere, anti); + for (int i = 0; i < 5 && (result.Contains("当前请求频繁,请2小时后重试") || result.Contains("网络繁忙,请不要频繁操作") || result.Contains("您的店铺操作过于频繁,请稍后操作")); i++) + { + shop.AntiContents.Remove(anti); + anti = shop.AntiContents.FirstOrDefault().ParseToString(); + if (shop.AntiContents.Count > 0) + { + Thread.Sleep(Randomx.GetId(300, 500)); + anti = shop.AntiContents[Randomx.GetId(shop.AntiContents.Count)]; + result = HttpResponseBLL.PDDPostResponse(shop, url, body, refere, anti); + } + } + return result; + } + + /// + /// 查询活动商品列表 20981 + /// + /// + /// + /// + /// + private string get_activity_goods_list_info(ShopLoginInfo shop, int pageNumber, string activityId = "20981") + { + var anti = shop.AntiContents.LastOrDefault().ParseToString(); + if (shop.AntiContents.Count > 0) + anti = shop.AntiContents[Randomx.GetId(shop.AntiContents.Count)]; + string url = "https://mms.pinduoduo.com/leekmms/activity/query/eligible/goods/listV2"; + string body = @"{""goods_id"":"""",""goods_name"":null,""page_number"":" + pageNumber + + @",""activity_id"":""" + activityId + @""",""eligible"":1,""page_size"":50,""order_by"":""update_at"",""desc"":true}"; + + string refere = "https://mms.pinduoduo.com/act/choose_goods/v2?id=" + activityId + "&SourceType=MMSActicon&SceneType=ActivityCard&chooseGoodsSortType=1"; + + var result = HttpResponseBLL.PDDPostResponse(shop, url, body, refere, anti); + for (int i = 0; i < 5 && (result.Contains("当前请求频繁,请2小时后重试") || result.Contains("网络繁忙,请不要频繁操作") || result.Contains("您的店铺操作过于频繁,请稍后操作")); i++) + { + shop.AntiContents.Remove(anti); + anti = shop.AntiContents.FirstOrDefault().ParseToString(); + if (shop.AntiContents.Count > 0) + { + Thread.Sleep(Randomx.GetId(300, 500)); + anti = shop.AntiContents[Randomx.GetId(shop.AntiContents.Count)]; + result = HttpResponseBLL.PDDPostResponse(shop, url, body, refere, anti); + } + } + return result; + } + + /// + /// 查询活动商品 20981 + /// + /// + /// + /// + /// + private string activity_goods_info(ShopLoginInfo shop, string prodId, string activityId = "20981") + { + var anti = shop.AntiContents.LastOrDefault().ParseToString(); + if (shop.AntiContents.Count > 0) + anti = shop.AntiContents[Randomx.GetId(shop.AntiContents.Count)]; + string url = "https://mms.pinduoduo.com/leekmms/quick_enroll/multi_activity/real_form_info"; + string body = @"{""activity_id"":" + activityId + @",""page_number"":1,""page_size"":10,""goods_id_list"":[" + prodId + @"],""source_type"":""PROMO-OwnHome""}"; + + string refere = "https://mms.pinduoduo.com/act/multi-act-enroll?activityId=" + activityId + "&SourceType=PROMO-OwnHome"; + + var result = HttpResponseBLL.PDDPostResponse(shop, url, body, refere, anti); + for (int i = 0; i < 5 && (result.Contains("当前请求频繁,请2小时后重试") || result.Contains("网络繁忙,请不要频繁操作") || result.Contains("您的店铺操作过于频繁,请稍后操作")); i++) + { + shop.AntiContents.Remove(anti); + anti = shop.AntiContents.FirstOrDefault().ParseToString(); + if (shop.AntiContents.Count > 0) + { + Thread.Sleep(Randomx.GetId(300, 500)); + anti = shop.AntiContents[Randomx.GetId(shop.AntiContents.Count)]; + result = HttpResponseBLL.PDDPostResponse(shop, url, body, refere, anti); + } + } + return result; + } + + private string activity_goods_price_rule(ShopLoginInfo shop, string prodId, int activityId = 15996, int activityType=18) + { + var anti = shop.AntiContents.LastOrDefault().ParseToString(); + if (shop.AntiContents.Count > 0) + anti = shop.AntiContents[Randomx.GetId(shop.AntiContents.Count)]; + string url = "https://mms.pinduoduo.com/leekmms/activity/query/enroll/rule_suggest_price"; + string body = @"{""activity_id"":" + activityId + @",""goods_id_list"":[" + prodId + + @"],""source_type"":""MMSActicon"",""behavior_collection_v1_cas_boost_factor"":""dXlyaGxldXItNDkwOTQzMTM0LTE3NTg2OTQxNjYyNjM=""}"; + + string refere = "https://mms.pinduoduo.com/act/goods_price/confirm?activityId=" + activityId + + "&activityType=" + activityType + "&from=chooseGoods&SourceType=MMSActicon&SceneType=ActivityCard"; + if (activityId == 22347) + refere = "https://mms.pinduoduo.com/act/goods_price/confirm?activityId=" + activityId + "&activityType=" + activityType + "&from=chooseGoods"; + + var result = HttpResponseBLL.PDDPostResponse(shop, url, body, refere, anti); + for (int i = 0; i < 5 && (result.Contains("当前请求频繁,请2小时后重试") || result.Contains("网络繁忙,请不要频繁操作") || result.Contains("您的店铺操作过于频繁,请稍后操作")); i++) + { + shop.AntiContents.Remove(anti); + anti = shop.AntiContents.FirstOrDefault().ParseToString(); + if (shop.AntiContents.Count > 0) + { + Thread.Sleep(Randomx.GetId(300, 500)); + anti = shop.AntiContents[Randomx.GetId(shop.AntiContents.Count)]; + result = HttpResponseBLL.PDDPostResponse(shop, url, body, refere, anti); + } + } + return result; + } + + private string activity_goods_price_rule2(ShopLoginInfo shop, string prodId, int activityId = 18586, int pyramidActivityId = 7) + { + var anti = shop.AntiContents.LastOrDefault().ParseToString(); + if (shop.AntiContents.Count > 0) + anti = shop.AntiContents[Randomx.GetId(shop.AntiContents.Count)]; + string url = "https://mms.pinduoduo.com/leekmms/activity/query/enroll/rule"; + string body = @"{""activity_id"":" + activityId + @",""goods_id_list"":[" + prodId + + @"],""source_type"":""MMSActicon"",""behavior_collection_v1_cas_boost_factor"":""dXlyaGxldXItNDkwOTQzMTM0LTE3NTg2OTQxNjYyNjM=""}"; + + string refere = "https://mms.pinduoduo.com/act/sign?id=" + activityId + "&pyramidActivityId=" + pyramidActivityId + "&SourceType=PROMO-Pyramid&SceneType=Pyramid"; + + var result = HttpResponseBLL.PDDPostResponse(shop, url, body, refere, anti); + for (int i = 0; i < 5 && (result.Contains("当前请求频繁,请2小时后重试") || result.Contains("网络繁忙,请不要频繁操作") || result.Contains("您的店铺操作过于频繁,请稍后操作")); i++) + { + shop.AntiContents.Remove(anti); + anti = shop.AntiContents.FirstOrDefault().ParseToString(); + if (shop.AntiContents.Count > 0) + { + Thread.Sleep(Randomx.GetId(300, 500)); + anti = shop.AntiContents[Randomx.GetId(shop.AntiContents.Count)]; + result = HttpResponseBLL.PDDPostResponse(shop, url, body, refere, anti); + } + } + return result; + } + + /// + /// 设置活动 + /// + /// + /// + /// + /// + /// + /// + private string add_activity_goods(ShopLoginInfo shop, PDDActivitySubmitParam actSubmitParam, string prodId, int activityId, int activityType) + { + var anti = shop.AntiContents.LastOrDefault().ParseToString(); + if (shop.AntiContents.Count > 0) + anti = shop.AntiContents[Randomx.GetId(shop.AntiContents.Count)]; + string url = "https://mms.pinduoduo.com/lakemms/enrollV2"; + string body = JsonHelper.SerializeObject(actSubmitParam); + + string refere = "https://mms.pinduoduo.com/act/goods_price/confirm?activityId=" + activityId + + "&activityType=" + activityType + "&from=chooseGoods&SourceType=MMSActicon&SceneType=ActivityCard"; + if (activityId == 20981) + { + //refere = "https://mms.pinduoduo.com/act/multi-act-enroll?activityId=" + activityId + "&SourceType=PROMO-OwnHome"; + //入口1 + refere = "https://mms.pinduoduo.com/act/multi-act-enroll?activityId=20981&activityType=27&SourceType=PROMO-OwnHome"; + //入口2 + //refere = "https://mms.pinduoduo.com/act/goods_price/confirm?activityId=20981&activityType=27&from=chooseGoods&SourceType=MMSActicon&SceneType=ActivityCard"; + } + if (activityId == 22347) + refere = "https://mms.pinduoduo.com/act/goods_price/confirm?activityId=22347&activityType=27&from=chooseGoods"; + if (activityId == 18586) + refere = "https://mms.pinduoduo.com/act/sign?id=18586&pyramidActivityId=7&SourceType=PROMO-Pyramid&SceneType=Pyramid"; + + var result = HttpResponseBLL.PDDPostResponse(shop, url, body, refere, anti); + for (int i = 0; i < 5 && (result.Contains("当前请求频繁,请2小时后重试") || result.Contains("网络繁忙,请不要频繁操作") || result.Contains("您的店铺操作过于频繁,请稍后操作")); i++) + { + shop.AntiContents.Remove(anti); + anti = shop.AntiContents.FirstOrDefault().ParseToString(); + if (shop.AntiContents.Count > 0) + { + Thread.Sleep(Randomx.GetId(300, 500)); + anti = shop.AntiContents[Randomx.GetId(shop.AntiContents.Count)]; + result = HttpResponseBLL.PDDPostResponse(shop, url, body, refere, anti); + } + } + return result; + } + + private string queryActivityGoodsEnabled(ShopLoginInfo shop, string prodId, int activityId, int canUse = 1) + { + var anti = shop.AntiContents.LastOrDefault().ParseToString(); + if (shop.AntiContents.Count > 0) + anti = shop.AntiContents[Randomx.GetId(shop.AntiContents.Count)]; + string url = "https://mms.pinduoduo.com/leekmms/activity/query/eligible/goods/listV2"; + string body = @"{""activity_id"":""" + activityId + @""",""page_number"":1,""page_size"":50,""query_goods_from_excel"":false,""eligible"":" + canUse + + @",""goods_id_list"":[" + prodId + "]}"; + + string refere = "https://mms.pinduoduo.com/act/choose_goods/v2?id=" + activityId + "&SourceType=MMSActicon&SceneType=ActivityCard&chooseGoodsType=0"; + + var result = HttpResponseBLL.PDDPostResponse(shop, url, body, refere, anti); + for (int i = 0; i < 5 && (result.Contains("当前请求频繁,请2小时后重试") || result.Contains("网络繁忙,请不要频繁操作") || result.Contains("您的店铺操作过于频繁,请稍后操作")); i++) + { + shop.AntiContents.Remove(anti); + anti = shop.AntiContents.FirstOrDefault().ParseToString(); + if (shop.AntiContents.Count > 0) + { + Thread.Sleep(Randomx.GetId(300, 500)); + anti = shop.AntiContents[Randomx.GetId(shop.AntiContents.Count)]; + result = HttpResponseBLL.PDDPostResponse(shop, url, body, refere, anti); + } + } + return result; + } + + private void panel1_Paint(object sender, PaintEventArgs e) + { + + } + + private void btnStop_Click(object sender, EventArgs e) + { + if (this.cancellationTokenSource != null) + this.cancellationTokenSource.Cancel(); + } + + /// + /// 测试机会商品 + /// + /// + void testUploadProd(ShopLoginInfo shop) + { + var rst = GetChanceGoodsId(shop); + var draftId = BaseRegex.GetStringJson(ref rst, "draft_id"); + var goods_id = BaseRegex.GetLongJson(ref rst, "goods_id"); + + rst = QueryChanceCommitDetail(shop, goods_id.ToString(), draftId, ""); + rst = GetChanceProdTemplate(shop, 21999.ToString(), goods_id.ToString(), draftId, ""); + rst = QueryKeywords(shop, goods_id.ToString(), draftId); + rst = SaveDecoration(shop, goods_id.ToString(), draftId, "", ""); + rst = PreviewDecoration(shop, goods_id.ToString(), draftId, ""); + rst = GoodsCommit(shop, goods_id.ToString(), draftId, "" ,""); + rst = GoodsSubmit(shop, goods_id.ToString(), draftId, ""); + } + + public static string GetChanceGoodsList(ShopLoginInfo shop, string searchWord, List labels = null, string desc="", int page = 1, + long? cat1 = null, long? cat2 = null, decimal? price1 = null, decimal? price2 = null) + { + //labels + //newinfashion_new 当季新品 + //hot_follow 热门跟款 + //wide_popular 全网热销 + //thousand_rec 潜力商品 + //hot_favorites_goods 热门商品 + var anti = shop.AntiContents.LastOrDefault().ParseToString(); + if (shop.AntiContents.Count > 0) + anti = shop.AntiContents[Randomx.GetId(shop.AntiContents.Count)]; + //string url = "https://mms.pinduoduo.com/opportunity-goods/chance-goods/quick_release"; + string url = "https://mms.pinduoduo.com/opportunity-goods/chance-goods/home_list"; + JObject jObj = new JObject(); + jObj["size"] = 35; + jObj["page"] = page; + if (labels != null) + { + JArray lblArr = new JArray(); + jObj["labels"] = lblArr; + foreach (var label in labels) + lblArr.Add(label); + } + if (string.IsNullOrEmpty(searchWord)) + { + //jObj["banner_type"] = 0; + } + else + { + jObj["search_word"] = searchWord; + } + if (cat1 != null) + { + jObj["cat_id_1"] = cat1; + } + if (cat2 != null) + { + jObj["cat_id_2"] = cat2; + } + if (!string.IsNullOrWhiteSpace(desc)) + { + jObj["desc"] = desc; + } + if (price1 != null) + { + jObj["min_price"] = price1; + } + if (price2 != null) + { + jObj["max_price"] = price2; + } + //全网热销/不搜索 string body = @"{""size"":35,""page"":1,""labels"":[""wide_popular""],""banner_type"":0}"; + //不限/搜索 string body = @"{""size"":35,""page"":1,""search_word"":""" + searchWord + @"""}"; + string body = JsonHelper.SerializeObject(jObj); + string refere = "https://mms.pinduoduo.com/goods/goods_list/chance?sourcePage=goodsListTopButton"; + if (!string.IsNullOrEmpty(searchWord)) + refere = "https://mms.pinduoduo.com/goods/goods_list/chance/chance_list?search_word=" + GetHtml.UrlEncodeUtf8(searchWord) + + "&sourcePage=goodsListTopButton"; + if (cat1 != null) + refere = "https://mms.pinduoduo.com/goods/goods_list/chance/chance_list?cat_id=[" + cat1 + "]"; + + var result = HttpResponseBLL.PDDPostResponse(shop, url, body, refere, anti); + for (int i = 0; i < 5 && result.Contains("网络繁忙,请不要频繁操作"); i++) + { + shop.AntiContents.Remove(anti); + anti = shop.AntiContents.FirstOrDefault().ParseToString(); + if (shop.AntiContents.Count > 0) + { + Thread.Sleep(Randomx.GetId(300, 500)); + anti = shop.AntiContents[Randomx.GetId(shop.AntiContents.Count)]; + result = HttpResponseBLL.PDDPostResponse(shop, url, body, refere, anti); + } + } + return result; + } + + public static string GetChanceGoodsId(ShopLoginInfo shop, string searchWord = "头发绳", string chanceId = "fff84ef8fc1b2919a9c3383d350f44cc", string _refere="") + { + var anti = shop.AntiContents.LastOrDefault().ParseToString(); + if (shop.AntiContents.Count > 0) + anti = shop.AntiContents[Randomx.GetId(shop.AntiContents.Count)]; + string url = "https://mms.pinduoduo.com/opportunity-goods/chance-goods/quick_release"; + string body = @"{""chance_id"":""" + chanceId + @"""}"; + string refere = "https://mms.pinduoduo.com/goods/goods_list/chance/chance_list?search_word=" + GetHtml.UrlEncodeUtf8(searchWord) + + "&sourcePage=goodsListTopButton"; + if (string.IsNullOrWhiteSpace(searchWord)) + refere = "https://mms.pinduoduo.com/goods/goods_list/chance?sourcePage=goodsListTopButton"; + if (!string.IsNullOrEmpty(_refere)) + refere = _refere; + + var result = HttpResponseBLL.PDDPostResponse(shop, url, body, refere, anti); + for (int i = 0; i < 5 && result.Contains("网络繁忙,请不要频繁操作"); i++) + { + shop.AntiContents.Remove(anti); + anti = shop.AntiContents.FirstOrDefault().ParseToString(); + if (shop.AntiContents.Count > 0) + { + Thread.Sleep(Randomx.GetId(300, 500)); + anti = shop.AntiContents[Randomx.GetId(shop.AntiContents.Count)]; + result = HttpResponseBLL.PDDPostResponse(shop, url, body, refere, anti); + } + } + return result; + } + + private string QueryChanceCommitDetail(ShopLoginInfo shop, string goodsId, string commitId, string chanceTab) + { + var anti = shop.AntiContents.LastOrDefault().ParseToString(); + if (shop.AntiContents.Count > 0) + anti = shop.AntiContents[Randomx.GetId(shop.AntiContents.Count)]; + string url = "https://mms.pinduoduo.com/glide/v2/mms/query/commit/detail"; + string body = "{\"goods_commit_id\":\"" + commitId + "\",\"goods_id\":\"" + goodsId + "\"}"; + string refere = "https://mms.pinduoduo.com/goods/goods_add/index?type=add&from=chance&id=" + commitId + + "&goods_id=" + goodsId + "&chance_tab=search&sourcePage=goodsListTopButton_CHANCE"; + if (!string.IsNullOrEmpty(chanceTab)) + refere = refere.Replace("chance_tab=search", "chance_tab=" + chanceTab); + + var result = HttpResponseBLL.PDDPostResponse(shop, url, body.Replace("0asAntiContent", anti), refere, anti); + for (int i = 0; i < 5 && result.Contains("网络繁忙,请不要频繁操作"); i++) + { + shop.AntiContents.Remove(anti); + anti = shop.AntiContents.FirstOrDefault().ParseToString(); + if (shop.AntiContents.Count > 0) + { + Thread.Sleep(Randomx.GetId(300, 500)); + anti = shop.AntiContents[Randomx.GetId(shop.AntiContents.Count)]; + body = "{\"goods_commit_id\":\"" + commitId + "\",\"goods_id\":\"" + goodsId + "\"}"; + result = HttpResponseBLL.PDDPostResponse(shop, url, body.Replace("0asAntiContent", anti), refere, anti); + } + } + return result; + } + + //private string SearchCategories(ShopLoginInfo shop, string goodsId, string commitId, string keyword) + //{ + // var anti = shop.AntiContents.LastOrDefault().ParseToString(); + // if (shop.AntiContents.Count > 0) + // anti = shop.AntiContents[Randomx.GetId(shop.AntiContents.Count)]; + // string url = "https://mms.pinduoduo.com/vodka/v2/mms/search/categories/v2?keyword=" + GetHtml.UrlEncodeUtf8(keyword); + // string body = @""; + // string refere = "https://mms.pinduoduo.com/goods/category?id=" + commitId + "&goods_id=" + goodsId + "&type=add&sourcePage=goodsList"; + // if (isChanceApi) + // refere = "https://mms.pinduoduo.com/goods/category?id=" + commitId + "&is_shop=0&goods_id=" + goodsId + + // "&changeCate=1&type=add&chance_tab=search&sourcePage=goodsListTopButton_CHANCE"; + // var result = HttpResponseBLL.PDDGetResponse(shop, url, body, refere, anti); + // for (int i = 0; i < 5 && result.Contains("网络繁忙,请不要频繁操作"); i++) + // { + // shop.AntiContents.Remove(anti); + // anti = shop.AntiContents.FirstOrDefault().ParseToString(); + // if (shop.AntiContents.Count > 0) + // { + // Thread.Sleep(Randomx.GetId(300, 500)); + // anti = shop.AntiContents[Randomx.GetId(shop.AntiContents.Count)]; + // result = HttpResponseBLL.PDDPostResponse(shop, url, body, refere, anti); + // } + // } + // return result; + //} + + private string GetChanceProdTemplate(ShopLoginInfo shop, string catId, string prodId, string commitId, string chanceTab) + { + var anti = shop.AntiContents.LastOrDefault().ParseToString(); + if (shop.AntiContents.Count > 0) + anti = shop.AntiContents[Randomx.GetId(shop.AntiContents.Count)]; + string url = "https://mms.pinduoduo.com/draco-ms/mms/template/mall?catId=" + catId + + "&goodsCommitId=" + commitId + "&goodsId=" + prodId; + + string body = @""; + string refere = "https://mms.pinduoduo.com/goods/goods_add/index?type=add&from=chance&id=" + commitId + + "&goods_id=" + prodId + "&chance_tab=search&sourcePage=goodsListTopButton_CHANCE"; + if (!string.IsNullOrEmpty(chanceTab)) + refere = refere.Replace("chance_tab=search", "chance_tab=" + chanceTab); + + var result = HttpResponseBLL.PDDGetResponse(shop, url, body, refere, anti); + for (int i = 0; i < 5 && (result.Contains("操作太过频繁") || result.Contains("网络繁忙,请不要频繁操作")); i++) + { + shop.AntiContents.Remove(anti); + anti = shop.AntiContents.LastOrDefault().ParseToString(); + if (shop.AntiContents.Count > 0) + { + Thread.Sleep(Randomx.GetId(300, 500)); + anti = shop.AntiContents[Randomx.GetId(shop.AntiContents.Count)]; + result = HttpResponseBLL.PDDGetResponse(shop, url, body, refere, anti); + } + } + return result; + } + + private string QueryKeywords(ShopLoginInfo shop, string goodsId, string commitId, string cat_id = "21999", + string title = "头绳女黑色加粗橡皮筋高马尾皮筋扎头发发圈成人耐用皮套发绳头绳", + string image_url = "https://img.pddpic.com/mms-material-img/2021-08-30/1f41bc24-0d8b-4f3e-a804-dec8baf8c0bc.jpeg.a.jpeg", string chanceTab = "") + { + var anti = shop.AntiContents.LastOrDefault().ParseToString(); + if (shop.AntiContents.Count > 0) + anti = shop.AntiContents[Randomx.GetId(shop.AntiContents.Count)]; + string url = "https://mms.pinduoduo.com/smart-goods/mms/query/keywordsRecommend"; + + string body = @"{""title"":""" + title + @""",""cat_id"":" + cat_id + @",""image_url"":""" + image_url + + @""",""goods_commit_id"":""" + commitId + @""",""goods_id"":" + commitId + @"}"; + + string refere = "https://mms.pinduoduo.com/goods/goods_add/index?type=add&from=chance&id=" + commitId + + "&goods_id=" + goodsId + "&chance_tab=search&sourcePage=goodsListTopButton_CHANCE"; + if (!string.IsNullOrEmpty(chanceTab)) + refere = refere.Replace("chance_tab=search", "chance_tab=" + chanceTab); + + var result = HttpResponseBLL.PDDPostResponse(shop, url, body.Replace("0asAntiContent", anti), refere, anti); + for (int i = 0; i < 5 && result.Contains("网络繁忙,请不要频繁操作"); i++) + { + shop.AntiContents.Remove(anti); + anti = shop.AntiContents.FirstOrDefault().ParseToString(); + if (shop.AntiContents.Count > 0) + { + Thread.Sleep(Randomx.GetId(300, 500)); + anti = shop.AntiContents[Randomx.GetId(shop.AntiContents.Count)]; + body = "{\"goods_commit_id\":\"" + commitId + "\",\"goods_id\":\"" + goodsId + "\"}"; + result = HttpResponseBLL.PDDPostResponse(shop, url, body.Replace("0asAntiContent", anti), refere, anti); + } + } + return result; + } + + private string SaveDecoration(ShopLoginInfo shop, string goodsId, string commitId, string decoration_json = "", string chanceTab = "") + { + var anti = shop.AntiContents.LastOrDefault().ParseToString(); + if (shop.AntiContents.Count > 0) + anti = shop.AntiContents[Randomx.GetId(shop.AntiContents.Count)]; + string url = "https://mms.pinduoduo.com/gorse/mms/goods/decoration/commit/save"; + + string body = @"{""goods_commit_id"":""" + commitId + @""",""goods_id"":" + goodsId + @",""floor_list"":[{""type"":""image"",""content_list"":[{""img_url"":""https://img.pddpic.com/mms-material-img/2021-08-30/1f41bc24-0d8b-4f3e-a804-dec8baf8c0bc.jpeg.a.jpeg""}]},{""type"":""image"",""content_list"":[{""img_url"":""https://img.pddpic.com/mms-material-img/2025-08-20/84dbb787-5108-41b4-b812-50983edbc7f4.jpeg.a.jpeg""}]},{""type"":""image"",""content_list"":[{""img_url"":""https://img.pddpic.com/mms-material-img/2025-08-16/67a30d1d-7b57-4e3f-be73-ceeb0f116a5f.png.a.jpeg""}]},{""type"":""image"",""content_list"":[{""img_url"":""https://img.pddpic.com/mms-material-img/2021-08-30/f51c21d6-c91e-444c-863b-e4e9eeb86147.jpeg.a.jpeg""}]},{""type"":""image"",""content_list"":[{""img_url"":""https://img.pddpic.com/mms-material-img/2021-08-30/594efdf1-986b-4e1f-9066-2e66eb38c617.jpeg.a.jpeg""}]},{""type"":""image"",""content_list"":[{""img_url"":""https://img.pddpic.com/mms-material-img/2021-08-30/3112213d-e0e2-4dc7-860b-d0a26b534a93.jpeg.a.jpeg""}]},{""type"":""image"",""content_list"":[{""img_url"":""https://img.pddpic.com/mms-material-img/2021-08-30/00d6d0cd-688f-4be3-b53f-1a05c97f2b14.jpeg.a.jpeg""}]},{""type"":""image"",""content_list"":[{""img_url"":""https://img.pddpic.com/mms-material-img/2021-08-30/590d0970-b81a-4c3e-aae0-0112b9e83b80.jpeg.a.jpeg""}]},{""type"":""image"",""content_list"":[{""img_url"":""https://img.pddpic.com/mms-material-img/2021-08-30/b9d133ef-0406-457d-b0a9-4bdc936b87dc.jpeg.a.jpeg""}]},{""type"":""image"",""content_list"":[{""img_url"":""https://img.pddpic.com/mms-material-img/2021-08-30/b4cd08ed-0d73-486c-8098-200cb2a7a653.jpeg.a.jpeg""}]}]}"; + if (!string.IsNullOrWhiteSpace(decoration_json)) + body = decoration_json; + + string refere = "https://mms.pinduoduo.com/goods/goods_add/index?type=add&from=chance&id=" + commitId + + "&goods_id=" + goodsId + "&chance_tab=search&sourcePage=goodsListTopButton_CHANCE"; + if (!string.IsNullOrEmpty(chanceTab)) + refere = refere.Replace("chance_tab=search", "chance_tab=" + chanceTab); + + var result = HttpResponseBLL.PDDPostResponse(shop, url, body.Replace("0asAntiContent", anti), refere, anti); + for (int i = 0; i < 5 && result.Contains("网络繁忙,请不要频繁操作"); i++) + { + shop.AntiContents.Remove(anti); + anti = shop.AntiContents.FirstOrDefault().ParseToString(); + if (shop.AntiContents.Count > 0) + { + Thread.Sleep(Randomx.GetId(300, 500)); + anti = shop.AntiContents[Randomx.GetId(shop.AntiContents.Count)]; + body = "{\"goods_commit_id\":\"" + commitId + "\",\"goods_id\":\"" + goodsId + "\"}"; + result = HttpResponseBLL.PDDPostResponse(shop, url, body.Replace("0asAntiContent", anti), refere, anti); + } + } + return result; + } + + private string PreviewDecoration(ShopLoginInfo shop, string goodsId, string commitId, string chanceTab) + { + var anti = shop.AntiContents.LastOrDefault().ParseToString(); + if (shop.AntiContents.Count > 0) + anti = shop.AntiContents[Randomx.GetId(shop.AntiContents.Count)]; + string url = "https://mms.pinduoduo.com/gorse/mms/goods/decoration/preview"; + + string body = @"{""goods_commit_id"":" + commitId + @",""goods_id"":" + goodsId + @"}"; + + string refere = "https://mms.pinduoduo.com/goods/goods_add/index?type=add&from=chance&id=" + commitId + + "&goods_id=" + goodsId + "&chance_tab=search&sourcePage=goodsListTopButton_CHANCE"; + if (!string.IsNullOrEmpty(chanceTab)) + refere = refere.Replace("chance_tab=search", "chance_tab=" + chanceTab); + + var result = HttpResponseBLL.PDDPostResponse(shop, url, body.Replace("0asAntiContent", anti), refere, anti); + for (int i = 0; i < 5 && result.Contains("网络繁忙,请不要频繁操作"); i++) + { + shop.AntiContents.Remove(anti); + anti = shop.AntiContents.FirstOrDefault().ParseToString(); + if (shop.AntiContents.Count > 0) + { + Thread.Sleep(Randomx.GetId(300, 500)); + anti = shop.AntiContents[Randomx.GetId(shop.AntiContents.Count)]; + body = "{\"goods_commit_id\":\"" + commitId + "\",\"goods_id\":\"" + goodsId + "\"}"; + result = HttpResponseBLL.PDDPostResponse(shop, url, body.Replace("0asAntiContent", anti), refere, anti); + } + } + return result; + } + + private string GoodsCommit(ShopLoginInfo shop, string goodsId, string commitId, string goods_json = "", string chanceTab = "") + { + var anti = shop.AntiContents.LastOrDefault().ParseToString(); + if (shop.AntiContents.Count > 0) + anti = shop.AntiContents[Randomx.GetId(shop.AntiContents.Count)]; + string url = "https://mms.pinduoduo.com/glide/mms/goodsCommit/action/edit"; + + string body = ""; + body = @"{""goods_id"":" + goodsId + @",""goods_commit_id"":""" + commitId + @""",""goods_commit_check"":[],""reject_reason"":[],""reject_status"":"""",""check_status"":0,""goods_name"":""头绳女黑色加粗橡皮筋高马尾皮筋扎头发发圈成人耐用皮套发绳头绳"",""carousel_video"":[],""detail_video"":[],""goods_desc"":""头绳女黑色加粗橡皮筋高马尾皮筋扎头发发圈成人耐用皮套发绳头绳"",""warm_tips"":"""",""cat_id"":21999,""cats"":[""饰品/流行首饰/摆件/保养鉴定"",""发饰"",""头绳"",null],""image_url"":"""",""oversea_goods"":{},""spu"":{},""isbn_properties_related"":{""isInit"":true},""propertys_standard"":[],""is_draft"":false,""goods_name_prefix"":"""",""name_prefix"":"""",""size_spec_id"":null,""is_gold_price_matched"":null,""hasBatchEnter"":false,""instruction_vo"":{""template_id"":null,""template_status"":-1,""template_name"":null,""rejected_reason"":null},""ai_carousel_gallery"":[],""explanation_video"":[],""tag_price_gallery"":[],""ingredient_gallery"":[],""nutrition_gallery"":[],""ai_goods_video"":[],""third_type"":0,""cat_ids"":[17412,17417,21999,0],""bad_fruit_claim"":0,""booking_notes"":{},""instruction_template_id"":null,""propertys_tid"":37612,""propertys_edit_search_spu"":false,""service_time"":1757920151248,""electric_status"":0,""isGoodsLock"":false,""title_keywords"":[{""keyword"":""橡皮筋加厚加粗"",""source"":""5"",""hot"":true,""rk"":null,""bad_keyword"":null,""good_tag_desc"":null,""bad_tag_desc"":null},{""keyword"":""头绳扎头发"",""source"":""4"",""hot"":true,""rk"":null,""bad_keyword"":null,""good_tag_desc"":null,""bad_tag_desc"":null},{""keyword"":""小圈"",""source"":""1"",""hot"":false,""rk"":null,""bad_keyword"":null,""good_tag_desc"":null,""bad_tag_desc"":null},{""keyword"":""头绳成人耐用"",""source"":""5"",""hot"":false,""rk"":null,""bad_keyword"":null,""good_tag_desc"":null,""bad_tag_desc"":null}],""title_recommend"":null,""imageEnhanceGray"":false,""materialModalAbGray"":true,""uploadDragAB"":false,""materialReplaceTagGray"":true,""hide_apply"":false,""showGoodsInstruction"":false,""decorationCanEdit"":true,""decorationDetail"":[{""floor_id"":90286134196,""key"":""DecImage"",""type"":""image"",""priority"":0,""content_list"":[{""img_url"":""https://img.pddpic.com/mms-material-img/2021-08-30/1f41bc24-0d8b-4f3e-a804-dec8baf8c0bc.jpeg.a.jpeg"",""file_id"":null,""height"":800,""width"":800,""file_status"":null,""goods_id"":null,""goods_name"":null,""show_price"":null,""status"":null,""min_on_sale_group_price"":null,""text"":null,""hot_zone_list"":null,""text_module_details"":null,""activity_sn"":null,""combine_buy_element_dtolist"":null}],""check_status"":null,""check_id"":null,""check_name"":null,""comment"":null,""if_have_template"":null,""floor_status"":null,""template_id"":null,""template_type"":null,""template_json"":null},{""floor_id"":90286134197,""key"":""DecImage"",""type"":""image"",""priority"":1,""content_list"":[{""img_url"":""https://img.pddpic.com/mms-material-img/2025-08-20/84dbb787-5108-41b4-b812-50983edbc7f4.jpeg.a.jpeg"",""file_id"":null,""height"":800,""width"":800,""file_status"":null,""goods_id"":null,""goods_name"":null,""show_price"":null,""status"":null,""min_on_sale_group_price"":null,""text"":null,""hot_zone_list"":null,""text_module_details"":null,""activity_sn"":null,""combine_buy_element_dtolist"":null}],""check_status"":null,""check_id"":null,""check_name"":null,""comment"":null,""if_have_template"":null,""floor_status"":null,""template_id"":null,""template_type"":null,""template_json"":null},{""floor_id"":90286134198,""key"":""DecImage"",""type"":""image"",""priority"":2,""content_list"":[{""img_url"":""https://img.pddpic.com/mms-material-img/2025-08-16/67a30d1d-7b57-4e3f-be73-ceeb0f116a5f.png.a.jpeg"",""file_id"":null,""height"":800,""width"":800,""file_status"":null,""goods_id"":null,""goods_name"":null,""show_price"":null,""status"":null,""min_on_sale_group_price"":null,""text"":null,""hot_zone_list"":null,""text_module_details"":null,""activity_sn"":null,""combine_buy_element_dtolist"":null}],""check_status"":null,""check_id"":null,""check_name"":null,""comment"":null,""if_have_template"":null,""floor_status"":null,""template_id"":null,""template_type"":null,""template_json"":null},{""floor_id"":90286134199,""key"":""DecImage"",""type"":""image"",""priority"":3,""content_list"":[{""img_url"":""https://img.pddpic.com/mms-material-img/2021-08-30/f51c21d6-c91e-444c-863b-e4e9eeb86147.jpeg.a.jpeg"",""file_id"":null,""height"":800,""width"":800,""file_status"":null,""goods_id"":null,""goods_name"":null,""show_price"":null,""status"":null,""min_on_sale_group_price"":null,""text"":null,""hot_zone_list"":null,""text_module_details"":null,""activity_sn"":null,""combine_buy_element_dtolist"":null}],""check_status"":null,""check_id"":null,""check_name"":null,""comment"":null,""if_have_template"":null,""floor_status"":null,""template_id"":null,""template_type"":null,""template_json"":null},{""floor_id"":90286134200,""key"":""DecImage"",""type"":""image"",""priority"":4,""content_list"":[{""img_url"":""https://img.pddpic.com/mms-material-img/2021-08-30/594efdf1-986b-4e1f-9066-2e66eb38c617.jpeg.a.jpeg"",""file_id"":null,""height"":800,""width"":800,""file_status"":null,""goods_id"":null,""goods_name"":null,""show_price"":null,""status"":null,""min_on_sale_group_price"":null,""text"":null,""hot_zone_list"":null,""text_module_details"":null,""activity_sn"":null,""combine_buy_element_dtolist"":null}],""check_status"":null,""check_id"":null,""check_name"":null,""comment"":null,""if_have_template"":null,""floor_status"":null,""template_id"":null,""template_type"":null,""template_json"":null},{""floor_id"":90286134201,""key"":""DecImage"",""type"":""image"",""priority"":5,""content_list"":[{""img_url"":""https://img.pddpic.com/mms-material-img/2021-08-30/3112213d-e0e2-4dc7-860b-d0a26b534a93.jpeg.a.jpeg"",""file_id"":null,""height"":800,""width"":800,""file_status"":null,""goods_id"":null,""goods_name"":null,""show_price"":null,""status"":null,""min_on_sale_group_price"":null,""text"":null,""hot_zone_list"":null,""text_module_details"":null,""activity_sn"":null,""combine_buy_element_dtolist"":null}],""check_status"":null,""check_id"":null,""check_name"":null,""comment"":null,""if_have_template"":null,""floor_status"":null,""template_id"":null,""template_type"":null,""template_json"":null},{""floor_id"":90286134202,""key"":""DecImage"",""type"":""image"",""priority"":6,""content_list"":[{""img_url"":""https://img.pddpic.com/mms-material-img/2021-08-30/00d6d0cd-688f-4be3-b53f-1a05c97f2b14.jpeg.a.jpeg"",""file_id"":null,""height"":800,""width"":800,""file_status"":null,""goods_id"":null,""goods_name"":null,""show_price"":null,""status"":null,""min_on_sale_group_price"":null,""text"":null,""hot_zone_list"":null,""text_module_details"":null,""activity_sn"":null,""combine_buy_element_dtolist"":null}],""check_status"":null,""check_id"":null,""check_name"":null,""comment"":null,""if_have_template"":null,""floor_status"":null,""template_id"":null,""template_type"":null,""template_json"":null},{""floor_id"":90286134203,""key"":""DecImage"",""type"":""image"",""priority"":7,""content_list"":[{""img_url"":""https://img.pddpic.com/mms-material-img/2021-08-30/590d0970-b81a-4c3e-aae0-0112b9e83b80.jpeg.a.jpeg"",""file_id"":null,""height"":800,""width"":800,""file_status"":null,""goods_id"":null,""goods_name"":null,""show_price"":null,""status"":null,""min_on_sale_group_price"":null,""text"":null,""hot_zone_list"":null,""text_module_details"":null,""activity_sn"":null,""combine_buy_element_dtolist"":null}],""check_status"":null,""check_id"":null,""check_name"":null,""comment"":null,""if_have_template"":null,""floor_status"":null,""template_id"":null,""template_type"":null,""template_json"":null},{""floor_id"":90286134204,""key"":""DecImage"",""type"":""image"",""priority"":8,""content_list"":[{""img_url"":""https://img.pddpic.com/mms-material-img/2021-08-30/b9d133ef-0406-457d-b0a9-4bdc936b87dc.jpeg.a.jpeg"",""file_id"":null,""height"":800,""width"":800,""file_status"":null,""goods_id"":null,""goods_name"":null,""show_price"":null,""status"":null,""min_on_sale_group_price"":null,""text"":null,""hot_zone_list"":null,""text_module_details"":null,""activity_sn"":null,""combine_buy_element_dtolist"":null}],""check_status"":null,""check_id"":null,""check_name"":null,""comment"":null,""if_have_template"":null,""floor_status"":null,""template_id"":null,""template_type"":null,""template_json"":null},{""floor_id"":90286134205,""key"":""DecImage"",""type"":""image"",""priority"":9,""content_list"":[{""img_url"":""https://img.pddpic.com/mms-material-img/2021-08-30/b4cd08ed-0d73-486c-8098-200cb2a7a653.jpeg.a.jpeg"",""file_id"":null,""height"":800,""width"":800,""file_status"":null,""goods_id"":null,""goods_name"":null,""show_price"":null,""status"":null,""min_on_sale_group_price"":null,""text"":null,""hot_zone_list"":null,""text_module_details"":null,""activity_sn"":null,""combine_buy_element_dtolist"":null}],""check_status"":null,""check_id"":null,""check_name"":null,""comment"":null,""if_have_template"":null,""floor_status"":null,""template_id"":null,""template_type"":null,""template_json"":null}],""decorationPreview"":""https://mobile.yangkeduo.com/comm_goods_decoration_preview.html?goods_id=818714131727&_oak_decoration_token=MIcdC90kLZgXxSq/tXYmXZPM9tAfZHQ+PJy8b+CLcIiJmQmJQ+dKebG6gMCPJ5+sV9IwOXi8PVvQnGJmJqAgvQ=="",""must_have_spu"":false,""can_not_change_cat"":false,""can_not_change_spu"":false,""is_transfer_spu"":false,""tiny_name"":"""",""size_parent_spec_id"":null,""is_shop"":0,""goods_type"":1,""invoice_status"":0,""privacy_delivery"":0,""invoice_mode"":null,""zhi_huan_bu_xiu"":0,""quan_guo_lian_bao"":0,""second_hand"":0,""is_two_num_group"":false,""is_pre_sale"":0,""pre_sale_time"":"""",""country_id"":""0"",""origin_country_id"":0,""warehouse"":"""",""customs"":"""",""is_customs"":0,""shipment_limit_second"":86400,""delivery_type"":null,""cost_template_id"":136204643207510,""weight"":"""",""is_all_weight_same"":true,""groups"":{""single_price"":0,""group_price"":0,""carnival_price"":null,""customer_num"":2,""buy_limit"":999999,""order_limit"":999999,""regular_limit"":"""",""regular_limit_duration"":null,""min_num_of_order"":null,""community_group_buying"":0},""is_folt"":0,""is_refundable"":1,""thawed_refund"":0,""damage_claim"":0,""lack_of_weight_claim"":0,""goods_certificate"":0,""goods_pattern"":8,""customizable"":0,""local_service_id_list"":null,""shop_group_id"":0,""schedule_sale"":{""sale_type"":0},""card_verification_list"":[],""is_spring_festival_open_tag"":false,""transport_type_list"":[],""is_refundable_fifteen_day"":0,""is_warranty_one_year"":0,""extend_warranty_dto"":{""extend_warranty"":0},""home_delivery_template_name"":"""",""invoice_mode_sub_type"":null,""is_certificate_provide"":0,""isAddLocalCityGoods"":false,""is_customized"":0,""isCoupon"":false,""allow_purchase_info_supply"":false,""effect_logistics_weight_limit"":2000,""same_city_template_id"":0,""is_default_template_id"":1,""cost_template_error"":"""",""allergy_refund"":0,""is_wp_service"":0,""is_size_change_casually"":0,""origin_is_pre_sale"":0,""goods_srv_templates"":[],""is_only_for_remote_area"":false,""default_template_gray"":true,""shipment_limit_second_origin_value"":0,""elec_goods_attributes"":null,""delivery_one_day"":0,""is_sku_shipment"":0,""mai_jia_zi_ti"":null,""shang_men_an_zhuang"":null,""song_huo_an_zhuang"":null,""song_huo_ru_hu"":null,""qualification_id_list"":[],""skus"":[{""id"":2987502296033,""sku_id"":1786578055567,""limit_quantity"":999999,""out_sku_sn"":"""",""is_onsale"":1,""pre_sale_time"":0,""multi_price_in_yuan"":""52.2"",""price_in_yuan"":""53.2"",""multi_price"":5220,""price"":5320,""quantity_delta"":100,""thumb_url"":""https://img.pddpic.com/mms-material-img/2023-10-28/6600b1f4-fca3-4ecc-b148-a2ebed15dba3.jpeg"",""weight"":0,""spec"":[{""parent_id"":1473,""parent_name"":""型号"",""spec_id"":26152576539,""spec_name"":""黑珠加粗20+送2条"",""is_custom"":null},{""parent_id"":1218,""parent_name"":""款式"",""spec_id"":28116379993,""spec_name"":""加粗耐用##用断包退#"",""is_custom"":null}],""length"":null,""oversea_sku"":{},""sku_srv_templates"":"""",""shipment_limit_second_list"":[],""sku69_code"":""""},{""id"":2987502296034,""sku_id"":1786578055568,""limit_quantity"":999999,""out_sku_sn"":"""",""is_onsale"":1,""pre_sale_time"":0,""multi_price_in_yuan"":""53.7"",""price_in_yuan"":""54.7"",""multi_price"":5370,""price"":5470,""quantity_delta"":100,""thumb_url"":""https://img.pddpic.com/mms-material-img/2023-10-28/6600b1f4-fca3-4ecc-b148-a2ebed15dba3.jpeg"",""weight"":0,""spec"":[{""parent_id"":1473,""parent_name"":""型号"",""spec_id"":26152569947,""spec_name"":""黑珠加粗50+送2条"",""is_custom"":null},{""parent_id"":1218,""parent_name"":""款式"",""spec_id"":28116379993,""spec_name"":""加粗耐用##用断包退#"",""is_custom"":null}],""length"":null,""oversea_sku"":{},""sku_srv_templates"":"""",""shipment_limit_second_list"":[],""sku69_code"":""""},{""id"":2987502296035,""sku_id"":1786578055569,""limit_quantity"":999999,""out_sku_sn"":"""",""is_onsale"":1,""pre_sale_time"":0,""multi_price_in_yuan"":""55.17"",""price_in_yuan"":""56.17"",""multi_price"":5517,""price"":5617,""quantity_delta"":100,""thumb_url"":""https://img.pddpic.com/mms-material-img/2023-10-28/6600b1f4-fca3-4ecc-b148-a2ebed15dba3.jpeg"",""weight"":0,""spec"":[{""parent_id"":1473,""parent_name"":""型号"",""spec_id"":26131354541,""spec_name"":""黑珠加粗100条+送2条"",""is_custom"":null},{""parent_id"":1218,""parent_name"":""款式"",""spec_id"":28116379993,""spec_name"":""加粗耐用##用断包退#"",""is_custom"":null}],""length"":null,""oversea_sku"":{},""sku_srv_templates"":"""",""shipment_limit_second_list"":[],""sku69_code"":""""},{""id"":2987502296036,""sku_id"":1786578055570,""limit_quantity"":999999,""out_sku_sn"":"""",""is_onsale"":1,""pre_sale_time"":0,""multi_price_in_yuan"":""51.38"",""price_in_yuan"":""52.38"",""multi_price"":5138,""price"":5238,""quantity_delta"":100,""thumb_url"":""https://img.pddpic.com/mms-material-img/2023-10-28/0b505a40-3f30-4337-ac02-c7b86dd99818.jpeg"",""weight"":0,""spec"":[{""parent_id"":1473,""parent_name"":""型号"",""spec_id"":26448027901,""spec_name"":""普通黑色20条"",""is_custom"":null},{""parent_id"":1218,""parent_name"":""款式"",""spec_id"":28116379993,""spec_name"":""加粗耐用##用断包退#"",""is_custom"":null}],""length"":null,""oversea_sku"":{},""sku_srv_templates"":"""",""shipment_limit_second_list"":[],""sku69_code"":""""},{""id"":2987502296037,""sku_id"":1786578055571,""limit_quantity"":999999,""out_sku_sn"":"""",""is_onsale"":1,""pre_sale_time"":0,""multi_price_in_yuan"":""51.94"",""price_in_yuan"":""52.94"",""multi_price"":5194,""price"":5294,""quantity_delta"":100,""thumb_url"":""https://img.pddpic.com/mms-material-img/2023-10-28/0b505a40-3f30-4337-ac02-c7b86dd99818.jpeg"",""weight"":0,""spec"":[{""parent_id"":1473,""parent_name"":""型号"",""spec_id"":26448043249,""spec_name"":""普通黑色50条"",""is_custom"":null},{""parent_id"":1218,""parent_name"":""款式"",""spec_id"":28116379993,""spec_name"":""加粗耐用##用断包退#"",""is_custom"":null}],""length"":null,""oversea_sku"":{},""sku_srv_templates"":"""",""shipment_limit_second_list"":[],""sku69_code"":""""},{""id"":2987502296038,""sku_id"":1786578055572,""limit_quantity"":999999,""out_sku_sn"":"""",""is_onsale"":1,""pre_sale_time"":0,""multi_price_in_yuan"":""52.59"",""price_in_yuan"":""53.59"",""multi_price"":5259,""price"":5359,""quantity_delta"":100,""thumb_url"":""https://img.pddpic.com/mms-material-img/2023-10-28/0b505a40-3f30-4337-ac02-c7b86dd99818.jpeg"",""weight"":0,""spec"":[{""parent_id"":1473,""parent_name"":""型号"",""spec_id"":26448036633,""spec_name"":""普通黑色100条"",""is_custom"":null},{""parent_id"":1218,""parent_name"":""款式"",""spec_id"":28116379993,""spec_name"":""加粗耐用##用断包退#"",""is_custom"":null}],""length"":null,""oversea_sku"":{},""sku_srv_templates"":"""",""shipment_limit_second_list"":[],""sku69_code"":""""},{""id"":2987502296039,""sku_id"":1786578055573,""limit_quantity"":999999,""out_sku_sn"":"""",""is_onsale"":1,""pre_sale_time"":0,""multi_price_in_yuan"":""20.82"",""price_in_yuan"":""21.82"",""multi_price"":2082,""price"":2182,""quantity_delta"":100,""thumb_url"":""https://img.pddpic.com/mms-material-img/2023-10-28/0b505a40-3f30-4337-ac02-c7b86dd99818.jpeg"",""weight"":0,""spec"":[{""parent_id"":1473,""parent_name"":""型号"",""spec_id"":14739983001,""spec_name"":""普通黑色1条"",""is_custom"":null},{""parent_id"":1218,""parent_name"":""款式"",""spec_id"":28116379993,""spec_name"":""加粗耐用##用断包退#"",""is_custom"":null}],""length"":null,""oversea_sku"":{},""sku_srv_templates"":"""",""shipment_limit_second_list"":[],""sku69_code"":""""}],""market_price_in_yuan"":""57.17"",""market_price"":5717,""out_goods_sn"":"""",""dead_line_seconds"":86399,""two_pieces_discount"":95,""gold_price_template_id"":0,""processing_charges"":0,""processing_charges_in_yuan"":""0"",""processing_charges_type"":0,""gallery"":[{""url"":""https://img.pddpic.com/mms-material-img/2021-08-30/1f41bc24-0d8b-4f3e-a804-dec8baf8c0bc.jpeg.a.jpeg"",""type"":1,""file_id"":null},{""url"":""https://img.pddpic.com/mms-material-img/2025-08-20/84dbb787-5108-41b4-b812-50983edbc7f4.jpeg.a.jpeg"",""type"":1,""file_id"":null},{""url"":""https://img.pddpic.com/mms-material-img/2025-08-16/67a30d1d-7b57-4e3f-be73-ceeb0f116a5f.png.a.jpeg"",""type"":1,""file_id"":null},{""url"":""https://img.pddpic.com/mms-material-img/2021-08-30/f51c21d6-c91e-444c-863b-e4e9eeb86147.jpeg.a.jpeg"",""type"":1,""file_id"":null},{""url"":""https://img.pddpic.com/mms-material-img/2021-08-30/594efdf1-986b-4e1f-9066-2e66eb38c617.jpeg.a.jpeg"",""type"":1,""file_id"":null},{""url"":""https://img.pddpic.com/mms-material-img/2021-08-30/3112213d-e0e2-4dc7-860b-d0a26b534a93.jpeg.a.jpeg"",""type"":1,""file_id"":null},{""url"":""https://img.pddpic.com/mms-material-img/2021-08-30/00d6d0cd-688f-4be3-b53f-1a05c97f2b14.jpeg.a.jpeg"",""type"":1,""file_id"":null},{""url"":""https://img.pddpic.com/mms-material-img/2021-08-30/590d0970-b81a-4c3e-aae0-0112b9e83b80.jpeg.a.jpeg"",""type"":1,""file_id"":null},{""url"":""https://img.pddpic.com/mms-material-img/2021-08-30/b9d133ef-0406-457d-b0a9-4bdc936b87dc.jpeg.a.jpeg"",""type"":1,""file_id"":null},{""url"":""https://img.pddpic.com/mms-material-img/2021-08-30/b4cd08ed-0d73-486c-8098-200cb2a7a653.jpeg.a.jpeg"",""type"":1,""file_id"":null},{""url"":""https://img.pddpic.com/mms-material-img/2021-08-30/1f41bc24-0d8b-4f3e-a804-dec8baf8c0bc.jpeg.a.jpeg"",""type"":2,""file_id"":null},{""url"":""https://img.pddpic.com/mms-material-img/2025-08-20/84dbb787-5108-41b4-b812-50983edbc7f4.jpeg.a.jpeg"",""type"":2,""file_id"":null},{""url"":""https://img.pddpic.com/mms-material-img/2025-08-16/67a30d1d-7b57-4e3f-be73-ceeb0f116a5f.png.a.jpeg"",""type"":2,""file_id"":null},{""url"":""https://img.pddpic.com/mms-material-img/2021-08-30/f51c21d6-c91e-444c-863b-e4e9eeb86147.jpeg.a.jpeg"",""type"":2,""file_id"":null},{""url"":""https://img.pddpic.com/mms-material-img/2021-08-30/594efdf1-986b-4e1f-9066-2e66eb38c617.jpeg.a.jpeg"",""type"":2,""file_id"":null},{""url"":""https://img.pddpic.com/mms-material-img/2021-08-30/3112213d-e0e2-4dc7-860b-d0a26b534a93.jpeg.a.jpeg"",""type"":2,""file_id"":null},{""url"":""https://img.pddpic.com/mms-material-img/2021-08-30/00d6d0cd-688f-4be3-b53f-1a05c97f2b14.jpeg.a.jpeg"",""type"":2,""file_id"":null},{""url"":""https://img.pddpic.com/mms-material-img/2021-08-30/590d0970-b81a-4c3e-aae0-0112b9e83b80.jpeg.a.jpeg"",""type"":2,""file_id"":null},{""url"":""https://img.pddpic.com/mms-material-img/2021-08-30/b9d133ef-0406-457d-b0a9-4bdc936b87dc.jpeg.a.jpeg"",""type"":2,""file_id"":null},{""url"":""https://img.pddpic.com/mms-material-img/2021-08-30/b4cd08ed-0d73-486c-8098-200cb2a7a653.jpeg.a.jpeg"",""type"":2,""file_id"":null}],""is_sku_pre_sale"":0,""is_group_pre_sale"":0,""goods_properties"":[{""template_pid"":286862,""template_module_id"":48657,""ref_pid"":310,""pid"":5,""value"":"""",""value_unit"":"""",""content"":""""},{""template_pid"":292595,""template_module_id"":48657,""ref_pid"":317,""pid"":16,""vid"":10571,""value"":"""",""value_unit"":"""",""content"":""棉""},{""template_pid"":292917,""template_module_id"":48657,""ref_pid"":322,""pid"":12,""vid"":55441,""value"":"""",""value_unit"":"""",""content"":""日韩""},{""template_pid"":293164,""template_module_id"":48657,""ref_pid"":338,""pid"":32,""vid"":13287,""value"":"""",""value_unit"":"""",""content"":""女""},{""template_pid"":293217,""template_module_id"":48657,""ref_pid"":1285,""pid"":205,""vid"":91144,""value"":"""",""value_unit"":"""",""content"":""其它""},{""template_pid"":476195,""template_module_id"":48657,""ref_pid"":1906,""pid"":587,""vid"":2236202,""value"":"""",""value_unit"":"""",""content"":""2025年秋季""}],""is_goods_copy"":null,""is_auto_save"":false,"; + body += @"""validate_message"":""ee2a56d193d66ebf79bd00463b6e4b4478ab4b821ef57007d3b25462004c27b0"","; + body += @"""validate_message_v2"":""0071076bef833c50e99b7a0129d066b8e04216cac5fdd4708b7d5d06009fbdb6"","; + body += @"""crawlerInfo"":""0asWfacpriQ8y9eckSehSk4nj-2cGeo7SgEFsE_tgKVODMdP9qGAmgoNTEmANwl5wMIUQwQLskBh1Wn7LsUcJD97bn0TA7pfrJJo_WimycvsQdEEIc1ve-qJY0qonTst3P--i2USZOYY1nqOql_fPeNyczSIZmdFj_mGSUhx_F1eIIxxPXhwZVjpTOUIBj4dOvTdZcDg0zwcUs6sk-bf_zGlnvto-p8SZN76LrCJzrJAqqkx3egO-JEcu8Qg0MKjpwck0hcj1CjeuZ8CoNUnDhoj2EJRTJGXMPbhVFDkrPAoq32X9mTjXy0P9EEQV9Hjibsm_gqWFeS9jekUKvyqaznTE7O0YR9Usj_ytQxfANsSv_Rw9jKeAjN6p95drfVm3sjPxw3EvqAFFYF3bEkSw_AIGZlSp9zq3XKl3IlhMEaHW0vrkcYpgPwbFqgx8gHIhD53RnLnZZDl6D5AS0tworQixyziGIiWENfpq3BrurNLYYa8YQQh77RKQbe8SAQC3_7LoNc3TzrQKhnqf0f5a7""}"; + + body = @"{""goods_id"":" + goodsId + @",""goods_commit_id"":""" + commitId + @""",""goods_commit_check"":[],""reject_reason"":[],""reject_status"":"""",""check_status"":0,""goods_name"":""头绳女黑色加粗橡皮筋高马尾皮筋扎头发发圈成人耐用皮套发绳头绳"",""carousel_video"":[],""detail_video"":[],""goods_desc"":""头绳女黑色加粗橡皮筋高马尾皮筋扎头发发圈成人耐用皮套发绳头绳"",""warm_tips"":"""",""cat_id"":21999,""cats"":[""饰品/流行首饰/摆件/保养鉴定"",""发饰"",""头绳"",null],""image_url"":"""",""oversea_goods"":{},""spu"":{},""isbn_properties_related"":{""isInit"":true},""propertys_standard"":[],""is_draft"":false,""goods_name_prefix"":"""",""name_prefix"":"""",""size_spec_id"":null,""is_gold_price_matched"":null,""hasBatchEnter"":false,""instruction_vo"":{""template_id"":null,""template_status"":-1,""template_name"":null,""rejected_reason"":null},""ai_carousel_gallery"":[],""explanation_video"":[],""tag_price_gallery"":[],""ingredient_gallery"":[],""nutrition_gallery"":[],""ai_goods_video"":[],""third_type"":0,""cat_ids"":[17412,17417,21999,0],""bad_fruit_claim"":0,""booking_notes"":{},""instruction_template_id"":null,""propertys_tid"":37612,""propertys_edit_search_spu"":false,""service_time"":1757920151248,""electric_status"":0,""isGoodsLock"":false,""title_keywords"":[{""keyword"":""橡皮筋加厚加粗"",""source"":""5"",""hot"":true,""rk"":null,""bad_keyword"":null,""good_tag_desc"":null,""bad_tag_desc"":null},{""keyword"":""头绳扎头发"",""source"":""4"",""hot"":true,""rk"":null,""bad_keyword"":null,""good_tag_desc"":null,""bad_tag_desc"":null},{""keyword"":""小圈"",""source"":""1"",""hot"":false,""rk"":null,""bad_keyword"":null,""good_tag_desc"":null,""bad_tag_desc"":null},{""keyword"":""头绳成人耐用"",""source"":""5"",""hot"":false,""rk"":null,""bad_keyword"":null,""good_tag_desc"":null,""bad_tag_desc"":null}],""title_recommend"":null,""imageEnhanceGray"":false,""materialModalAbGray"":true,""uploadDragAB"":false,""materialReplaceTagGray"":true,""hide_apply"":false,""showGoodsInstruction"":false,""decorationCanEdit"":true,""decorationDetail"":[{""floor_id"":90286134196,""key"":""DecImage"",""type"":""image"",""priority"":0,""content_list"":[{""img_url"":""https://img.pddpic.com/mms-material-img/2021-08-30/1f41bc24-0d8b-4f3e-a804-dec8baf8c0bc.jpeg.a.jpeg"",""file_id"":null,""height"":800,""width"":800,""file_status"":null,""goods_id"":null,""goods_name"":null,""show_price"":null,""status"":null,""min_on_sale_group_price"":null,""text"":null,""hot_zone_list"":null,""text_module_details"":null,""activity_sn"":null,""combine_buy_element_dtolist"":null}],""check_status"":null,""check_id"":null,""check_name"":null,""comment"":null,""if_have_template"":null,""floor_status"":null,""template_id"":null,""template_type"":null,""template_json"":null},{""floor_id"":90286134197,""key"":""DecImage"",""type"":""image"",""priority"":1,""content_list"":[{""img_url"":""https://img.pddpic.com/mms-material-img/2025-08-20/84dbb787-5108-41b4-b812-50983edbc7f4.jpeg.a.jpeg"",""file_id"":null,""height"":800,""width"":800,""file_status"":null,""goods_id"":null,""goods_name"":null,""show_price"":null,""status"":null,""min_on_sale_group_price"":null,""text"":null,""hot_zone_list"":null,""text_module_details"":null,""activity_sn"":null,""combine_buy_element_dtolist"":null}],""check_status"":null,""check_id"":null,""check_name"":null,""comment"":null,""if_have_template"":null,""floor_status"":null,""template_id"":null,""template_type"":null,""template_json"":null},{""floor_id"":90286134198,""key"":""DecImage"",""type"":""image"",""priority"":2,""content_list"":[{""img_url"":""https://img.pddpic.com/mms-material-img/2025-08-16/67a30d1d-7b57-4e3f-be73-ceeb0f116a5f.png.a.jpeg"",""file_id"":null,""height"":800,""width"":800,""file_status"":null,""goods_id"":null,""goods_name"":null,""show_price"":null,""status"":null,""min_on_sale_group_price"":null,""text"":null,""hot_zone_list"":null,""text_module_details"":null,""activity_sn"":null,""combine_buy_element_dtolist"":null}],""check_status"":null,""check_id"":null,""check_name"":null,""comment"":null,""if_have_template"":null,""floor_status"":null,""template_id"":null,""template_type"":null,""template_json"":null},{""floor_id"":90286134199,""key"":""DecImage"",""type"":""image"",""priority"":3,""content_list"":[{""img_url"":""https://img.pddpic.com/mms-material-img/2021-08-30/f51c21d6-c91e-444c-863b-e4e9eeb86147.jpeg.a.jpeg"",""file_id"":null,""height"":800,""width"":800,""file_status"":null,""goods_id"":null,""goods_name"":null,""show_price"":null,""status"":null,""min_on_sale_group_price"":null,""text"":null,""hot_zone_list"":null,""text_module_details"":null,""activity_sn"":null,""combine_buy_element_dtolist"":null}],""check_status"":null,""check_id"":null,""check_name"":null,""comment"":null,""if_have_template"":null,""floor_status"":null,""template_id"":null,""template_type"":null,""template_json"":null},{""floor_id"":90286134200,""key"":""DecImage"",""type"":""image"",""priority"":4,""content_list"":[{""img_url"":""https://img.pddpic.com/mms-material-img/2021-08-30/594efdf1-986b-4e1f-9066-2e66eb38c617.jpeg.a.jpeg"",""file_id"":null,""height"":800,""width"":800,""file_status"":null,""goods_id"":null,""goods_name"":null,""show_price"":null,""status"":null,""min_on_sale_group_price"":null,""text"":null,""hot_zone_list"":null,""text_module_details"":null,""activity_sn"":null,""combine_buy_element_dtolist"":null}],""check_status"":null,""check_id"":null,""check_name"":null,""comment"":null,""if_have_template"":null,""floor_status"":null,""template_id"":null,""template_type"":null,""template_json"":null},{""floor_id"":90286134201,""key"":""DecImage"",""type"":""image"",""priority"":5,""content_list"":[{""img_url"":""https://img.pddpic.com/mms-material-img/2021-08-30/3112213d-e0e2-4dc7-860b-d0a26b534a93.jpeg.a.jpeg"",""file_id"":null,""height"":800,""width"":800,""file_status"":null,""goods_id"":null,""goods_name"":null,""show_price"":null,""status"":null,""min_on_sale_group_price"":null,""text"":null,""hot_zone_list"":null,""text_module_details"":null,""activity_sn"":null,""combine_buy_element_dtolist"":null}],""check_status"":null,""check_id"":null,""check_name"":null,""comment"":null,""if_have_template"":null,""floor_status"":null,""template_id"":null,""template_type"":null,""template_json"":null},{""floor_id"":90286134202,""key"":""DecImage"",""type"":""image"",""priority"":6,""content_list"":[{""img_url"":""https://img.pddpic.com/mms-material-img/2021-08-30/00d6d0cd-688f-4be3-b53f-1a05c97f2b14.jpeg.a.jpeg"",""file_id"":null,""height"":800,""width"":800,""file_status"":null,""goods_id"":null,""goods_name"":null,""show_price"":null,""status"":null,""min_on_sale_group_price"":null,""text"":null,""hot_zone_list"":null,""text_module_details"":null,""activity_sn"":null,""combine_buy_element_dtolist"":null}],""check_status"":null,""check_id"":null,""check_name"":null,""comment"":null,""if_have_template"":null,""floor_status"":null,""template_id"":null,""template_type"":null,""template_json"":null},{""floor_id"":90286134203,""key"":""DecImage"",""type"":""image"",""priority"":7,""content_list"":[{""img_url"":""https://img.pddpic.com/mms-material-img/2021-08-30/590d0970-b81a-4c3e-aae0-0112b9e83b80.jpeg.a.jpeg"",""file_id"":null,""height"":800,""width"":800,""file_status"":null,""goods_id"":null,""goods_name"":null,""show_price"":null,""status"":null,""min_on_sale_group_price"":null,""text"":null,""hot_zone_list"":null,""text_module_details"":null,""activity_sn"":null,""combine_buy_element_dtolist"":null}],""check_status"":null,""check_id"":null,""check_name"":null,""comment"":null,""if_have_template"":null,""floor_status"":null,""template_id"":null,""template_type"":null,""template_json"":null},{""floor_id"":90286134204,""key"":""DecImage"",""type"":""image"",""priority"":8,""content_list"":[{""img_url"":""https://img.pddpic.com/mms-material-img/2021-08-30/b9d133ef-0406-457d-b0a9-4bdc936b87dc.jpeg.a.jpeg"",""file_id"":null,""height"":800,""width"":800,""file_status"":null,""goods_id"":null,""goods_name"":null,""show_price"":null,""status"":null,""min_on_sale_group_price"":null,""text"":null,""hot_zone_list"":null,""text_module_details"":null,""activity_sn"":null,""combine_buy_element_dtolist"":null}],""check_status"":null,""check_id"":null,""check_name"":null,""comment"":null,""if_have_template"":null,""floor_status"":null,""template_id"":null,""template_type"":null,""template_json"":null},{""floor_id"":90286134205,""key"":""DecImage"",""type"":""image"",""priority"":9,""content_list"":[{""img_url"":""https://img.pddpic.com/mms-material-img/2021-08-30/b4cd08ed-0d73-486c-8098-200cb2a7a653.jpeg.a.jpeg"",""file_id"":null,""height"":800,""width"":800,""file_status"":null,""goods_id"":null,""goods_name"":null,""show_price"":null,""status"":null,""min_on_sale_group_price"":null,""text"":null,""hot_zone_list"":null,""text_module_details"":null,""activity_sn"":null,""combine_buy_element_dtolist"":null}],""check_status"":null,""check_id"":null,""check_name"":null,""comment"":null,""if_have_template"":null,""floor_status"":null,""template_id"":null,""template_type"":null,""template_json"":null}],""decorationPreview"":""https://mobile.yangkeduo.com/comm_goods_decoration_preview.html?goods_id=818714131727&_oak_decoration_token=MIcdC90kLZgXxSq/tXYmXZPM9tAfZHQ+PJy8b+CLcIiJmQmJQ+dKebG6gMCPJ5+sV9IwOXi8PVvQnGJmJqAgvQ=="",""must_have_spu"":false,""can_not_change_cat"":false,""can_not_change_spu"":false,""is_transfer_spu"":false,""tiny_name"":"""",""size_parent_spec_id"":null,""is_shop"":0,""goods_type"":1,""invoice_status"":0,""privacy_delivery"":0,""invoice_mode"":null,""zhi_huan_bu_xiu"":0,""quan_guo_lian_bao"":0,""second_hand"":0,""is_two_num_group"":false,""is_pre_sale"":0,""pre_sale_time"":"""",""country_id"":""0"",""origin_country_id"":0,""warehouse"":"""",""customs"":"""",""is_customs"":0,""shipment_limit_second"":172800,""delivery_type"":null,""cost_template_id"":136204643207510,""weight"":"""",""is_all_weight_same"":true,""groups"":{""single_price"":0,""group_price"":0,""carnival_price"":null,""customer_num"":2,""buy_limit"":999999,""order_limit"":999999,""regular_limit"":"""",""regular_limit_duration"":null,""min_num_of_order"":null,""community_group_buying"":0},""is_folt"":0,""is_refundable"":1,""thawed_refund"":0,""damage_claim"":0,""lack_of_weight_claim"":0,""goods_certificate"":0,""goods_pattern"":8,""customizable"":0,""local_service_id_list"":null,""shop_group_id"":0,""schedule_sale"":{""sale_type"":0},""card_verification_list"":[],""is_spring_festival_open_tag"":false,""transport_type_list"":[],""is_refundable_fifteen_day"":0,""is_warranty_one_year"":0,""extend_warranty_dto"":{""extend_warranty"":0},""home_delivery_template_name"":"""",""invoice_mode_sub_type"":null,""is_certificate_provide"":0,""isAddLocalCityGoods"":false,""is_customized"":0,""isCoupon"":false,""allow_purchase_info_supply"":false,""effect_logistics_weight_limit"":2000,""same_city_template_id"":0,""is_default_template_id"":1,""cost_template_error"":"""",""allergy_refund"":0,""is_wp_service"":0,""is_size_change_casually"":0,""origin_is_pre_sale"":0,""goods_srv_templates"":[],""is_only_for_remote_area"":false,""default_template_gray"":true,""shipment_limit_second_origin_value"":0,""elec_goods_attributes"":null,""delivery_one_day"":0,""is_sku_shipment"":0,""mai_jia_zi_ti"":null,""shang_men_an_zhuang"":null,""song_huo_an_zhuang"":null,""song_huo_ru_hu"":null,""qualification_id_list"":[],""skus"":[{""id"":2987502296033,""sku_id"":1786578055567,""limit_quantity"":999999,""out_sku_sn"":"""",""is_onsale"":1,""pre_sale_time"":0,""multi_price_in_yuan"":""52.2"",""price_in_yuan"":""53.2"",""multi_price"":5220,""price"":5320,""quantity_delta"":100,""thumb_url"":""https://img.pddpic.com/mms-material-img/2023-10-28/6600b1f4-fca3-4ecc-b148-a2ebed15dba3.jpeg"",""weight"":0,""spec"":[{""parent_id"":1473,""parent_name"":""型号"",""spec_id"":26152576539,""spec_name"":""黑珠加粗20+送2条"",""is_custom"":null},{""parent_id"":1218,""parent_name"":""款式"",""spec_id"":28116379993,""spec_name"":""加粗耐用##用断包退#"",""is_custom"":null}],""length"":null,""oversea_sku"":{},""sku_srv_templates"":"""",""shipment_limit_second_list"":[],""sku69_code"":""""},{""id"":2987502296034,""sku_id"":1786578055568,""limit_quantity"":999999,""out_sku_sn"":"""",""is_onsale"":1,""pre_sale_time"":0,""multi_price_in_yuan"":""53.7"",""price_in_yuan"":""54.7"",""multi_price"":5370,""price"":5470,""quantity_delta"":100,""thumb_url"":""https://img.pddpic.com/mms-material-img/2023-10-28/6600b1f4-fca3-4ecc-b148-a2ebed15dba3.jpeg"",""weight"":0,""spec"":[{""parent_id"":1473,""parent_name"":""型号"",""spec_id"":26152569947,""spec_name"":""黑珠加粗50+送2条"",""is_custom"":null},{""parent_id"":1218,""parent_name"":""款式"",""spec_id"":28116379993,""spec_name"":""加粗耐用##用断包退#"",""is_custom"":null}],""length"":null,""oversea_sku"":{},""sku_srv_templates"":"""",""shipment_limit_second_list"":[],""sku69_code"":""""},{""id"":2987502296035,""sku_id"":1786578055569,""limit_quantity"":999999,""out_sku_sn"":"""",""is_onsale"":1,""pre_sale_time"":0,""multi_price_in_yuan"":""55.17"",""price_in_yuan"":""56.17"",""multi_price"":5517,""price"":5617,""quantity_delta"":100,""thumb_url"":""https://img.pddpic.com/mms-material-img/2023-10-28/6600b1f4-fca3-4ecc-b148-a2ebed15dba3.jpeg"",""weight"":0,""spec"":[{""parent_id"":1473,""parent_name"":""型号"",""spec_id"":26131354541,""spec_name"":""黑珠加粗100条+送2条"",""is_custom"":null},{""parent_id"":1218,""parent_name"":""款式"",""spec_id"":28116379993,""spec_name"":""加粗耐用##用断包退#"",""is_custom"":null}],""length"":null,""oversea_sku"":{},""sku_srv_templates"":"""",""shipment_limit_second_list"":[],""sku69_code"":""""},{""id"":2987502296036,""sku_id"":1786578055570,""limit_quantity"":999999,""out_sku_sn"":"""",""is_onsale"":1,""pre_sale_time"":0,""multi_price_in_yuan"":""51.38"",""price_in_yuan"":""52.38"",""multi_price"":5138,""price"":5238,""quantity_delta"":100,""thumb_url"":""https://img.pddpic.com/mms-material-img/2023-10-28/0b505a40-3f30-4337-ac02-c7b86dd99818.jpeg"",""weight"":0,""spec"":[{""parent_id"":1473,""parent_name"":""型号"",""spec_id"":26448027901,""spec_name"":""普通黑色20条"",""is_custom"":null},{""parent_id"":1218,""parent_name"":""款式"",""spec_id"":28116379993,""spec_name"":""加粗耐用##用断包退#"",""is_custom"":null}],""length"":null,""oversea_sku"":{},""sku_srv_templates"":"""",""shipment_limit_second_list"":[],""sku69_code"":""""},{""id"":2987502296037,""sku_id"":1786578055571,""limit_quantity"":999999,""out_sku_sn"":"""",""is_onsale"":1,""pre_sale_time"":0,""multi_price_in_yuan"":""51.94"",""price_in_yuan"":""52.94"",""multi_price"":5194,""price"":5294,""quantity_delta"":100,""thumb_url"":""https://img.pddpic.com/mms-material-img/2023-10-28/0b505a40-3f30-4337-ac02-c7b86dd99818.jpeg"",""weight"":0,""spec"":[{""parent_id"":1473,""parent_name"":""型号"",""spec_id"":26448043249,""spec_name"":""普通黑色50条"",""is_custom"":null},{""parent_id"":1218,""parent_name"":""款式"",""spec_id"":28116379993,""spec_name"":""加粗耐用##用断包退#"",""is_custom"":null}],""length"":null,""oversea_sku"":{},""sku_srv_templates"":"""",""shipment_limit_second_list"":[],""sku69_code"":""""},{""id"":2987502296038,""sku_id"":1786578055572,""limit_quantity"":999999,""out_sku_sn"":"""",""is_onsale"":1,""pre_sale_time"":0,""multi_price_in_yuan"":""52.59"",""price_in_yuan"":""53.59"",""multi_price"":5259,""price"":5359,""quantity_delta"":100,""thumb_url"":""https://img.pddpic.com/mms-material-img/2023-10-28/0b505a40-3f30-4337-ac02-c7b86dd99818.jpeg"",""weight"":0,""spec"":[{""parent_id"":1473,""parent_name"":""型号"",""spec_id"":26448036633,""spec_name"":""普通黑色100条"",""is_custom"":null},{""parent_id"":1218,""parent_name"":""款式"",""spec_id"":28116379993,""spec_name"":""加粗耐用##用断包退#"",""is_custom"":null}],""length"":null,""oversea_sku"":{},""sku_srv_templates"":"""",""shipment_limit_second_list"":[],""sku69_code"":""""},{""id"":2987502296039,""sku_id"":1786578055573,""limit_quantity"":999999,""out_sku_sn"":"""",""is_onsale"":1,""pre_sale_time"":0,""multi_price_in_yuan"":""20.82"",""price_in_yuan"":""21.82"",""multi_price"":2082,""price"":2182,""quantity_delta"":100,""thumb_url"":""https://img.pddpic.com/mms-material-img/2023-10-28/0b505a40-3f30-4337-ac02-c7b86dd99818.jpeg"",""weight"":0,""spec"":[{""parent_id"":1473,""parent_name"":""型号"",""spec_id"":14739983001,""spec_name"":""普通黑色1条"",""is_custom"":null},{""parent_id"":1218,""parent_name"":""款式"",""spec_id"":28116379993,""spec_name"":""加粗耐用##用断包退#"",""is_custom"":null}],""length"":null,""oversea_sku"":{},""sku_srv_templates"":"""",""shipment_limit_second_list"":[],""sku69_code"":""""}],""market_price_in_yuan"":""57.17"",""market_price"":5717,""out_goods_sn"":"""",""dead_line_seconds"":86399,""two_pieces_discount"":95,""gold_price_template_id"":0,""processing_charges"":0,""processing_charges_in_yuan"":""0"",""processing_charges_type"":0,""gallery"":[{""url"":""https://img.pddpic.com/mms-material-img/2021-08-30/1f41bc24-0d8b-4f3e-a804-dec8baf8c0bc.jpeg.a.jpeg"",""type"":1,""file_id"":null},{""url"":""https://img.pddpic.com/mms-material-img/2025-08-20/84dbb787-5108-41b4-b812-50983edbc7f4.jpeg.a.jpeg"",""type"":1,""file_id"":null},{""url"":""https://img.pddpic.com/mms-material-img/2025-08-16/67a30d1d-7b57-4e3f-be73-ceeb0f116a5f.png.a.jpeg"",""type"":1,""file_id"":null},{""url"":""https://img.pddpic.com/mms-material-img/2021-08-30/f51c21d6-c91e-444c-863b-e4e9eeb86147.jpeg.a.jpeg"",""type"":1,""file_id"":null},{""url"":""https://img.pddpic.com/mms-material-img/2021-08-30/594efdf1-986b-4e1f-9066-2e66eb38c617.jpeg.a.jpeg"",""type"":1,""file_id"":null},{""url"":""https://img.pddpic.com/mms-material-img/2021-08-30/3112213d-e0e2-4dc7-860b-d0a26b534a93.jpeg.a.jpeg"",""type"":1,""file_id"":null},{""url"":""https://img.pddpic.com/mms-material-img/2021-08-30/00d6d0cd-688f-4be3-b53f-1a05c97f2b14.jpeg.a.jpeg"",""type"":1,""file_id"":null},{""url"":""https://img.pddpic.com/mms-material-img/2021-08-30/590d0970-b81a-4c3e-aae0-0112b9e83b80.jpeg.a.jpeg"",""type"":1,""file_id"":null},{""url"":""https://img.pddpic.com/mms-material-img/2021-08-30/b9d133ef-0406-457d-b0a9-4bdc936b87dc.jpeg.a.jpeg"",""type"":1,""file_id"":null},{""url"":""https://img.pddpic.com/mms-material-img/2021-08-30/b4cd08ed-0d73-486c-8098-200cb2a7a653.jpeg.a.jpeg"",""type"":1,""file_id"":null},{""url"":""https://img.pddpic.com/mms-material-img/2021-08-30/1f41bc24-0d8b-4f3e-a804-dec8baf8c0bc.jpeg.a.jpeg"",""type"":2,""file_id"":null},{""url"":""https://img.pddpic.com/mms-material-img/2025-08-20/84dbb787-5108-41b4-b812-50983edbc7f4.jpeg.a.jpeg"",""type"":2,""file_id"":null},{""url"":""https://img.pddpic.com/mms-material-img/2025-08-16/67a30d1d-7b57-4e3f-be73-ceeb0f116a5f.png.a.jpeg"",""type"":2,""file_id"":null},{""url"":""https://img.pddpic.com/mms-material-img/2021-08-30/f51c21d6-c91e-444c-863b-e4e9eeb86147.jpeg.a.jpeg"",""type"":2,""file_id"":null},{""url"":""https://img.pddpic.com/mms-material-img/2021-08-30/594efdf1-986b-4e1f-9066-2e66eb38c617.jpeg.a.jpeg"",""type"":2,""file_id"":null},{""url"":""https://img.pddpic.com/mms-material-img/2021-08-30/3112213d-e0e2-4dc7-860b-d0a26b534a93.jpeg.a.jpeg"",""type"":2,""file_id"":null},{""url"":""https://img.pddpic.com/mms-material-img/2021-08-30/00d6d0cd-688f-4be3-b53f-1a05c97f2b14.jpeg.a.jpeg"",""type"":2,""file_id"":null},{""url"":""https://img.pddpic.com/mms-material-img/2021-08-30/590d0970-b81a-4c3e-aae0-0112b9e83b80.jpeg.a.jpeg"",""type"":2,""file_id"":null},{""url"":""https://img.pddpic.com/mms-material-img/2021-08-30/b9d133ef-0406-457d-b0a9-4bdc936b87dc.jpeg.a.jpeg"",""type"":2,""file_id"":null},{""url"":""https://img.pddpic.com/mms-material-img/2021-08-30/b4cd08ed-0d73-486c-8098-200cb2a7a653.jpeg.a.jpeg"",""type"":2,""file_id"":null}],""is_sku_pre_sale"":0,""is_group_pre_sale"":0,""goods_properties"":[{""template_pid"":286862,""template_module_id"":48657,""ref_pid"":310,""pid"":5,""value"":"""",""value_unit"":"""",""content"":""""},{""template_pid"":292595,""template_module_id"":48657,""ref_pid"":317,""pid"":16,""vid"":10571,""value"":"""",""value_unit"":"""",""content"":""棉""},{""template_pid"":292917,""template_module_id"":48657,""ref_pid"":322,""pid"":12,""vid"":55441,""value"":"""",""value_unit"":"""",""content"":""日韩""},{""template_pid"":293164,""template_module_id"":48657,""ref_pid"":338,""pid"":32,""vid"":13287,""value"":"""",""value_unit"":"""",""content"":""女""},{""template_pid"":293217,""template_module_id"":48657,""ref_pid"":1285,""pid"":205,""vid"":91144,""value"":"""",""value_unit"":"""",""content"":""其它""},{""template_pid"":476195,""template_module_id"":48657,""ref_pid"":1906,""pid"":587,""vid"":2236202,""value"":"""",""value_unit"":"""",""content"":""2025年秋季""}],""is_goods_copy"":null,""is_auto_save"":false,"; + body += @"""validate_message"":""002a56d193d66ebf79bd00463b6e4b4478ab4b821ef57007d3b25462004c27b0"","; + body += @"""validate_message_v2"":""ee71076bef833c50e99b7a0129d066b8e04216cac5fdd4708b7d5d06009fbdb6"","; + body += @"""crawlerInfo"":""0asAntiContent""}"; + if (!string.IsNullOrEmpty(goods_json)) + { + body = goods_json; + } + + string refere = "https://mms.pinduoduo.com/goods/goods_add/index?type=add&from=chance&id=" + commitId + + "&goods_id=" + goodsId + "&chance_tab=search&sourcePage=goodsListTopButton_CHANCE"; + if (!string.IsNullOrEmpty(chanceTab)) + refere = refere.Replace("chance_tab=search", "chance_tab=" + chanceTab); + + var result = HttpResponseBLL.PDDPostResponse(shop, url, body.Replace("0asAntiContent", anti), refere, anti); + for (int i = 0; i < 5 && result.Contains("网络繁忙,请不要频繁操作"); i++) + { + shop.AntiContents.Remove(anti); + anti = shop.AntiContents.FirstOrDefault().ParseToString(); + if (shop.AntiContents.Count > 0) + { + Thread.Sleep(Randomx.GetId(300, 500)); + anti = shop.AntiContents[Randomx.GetId(shop.AntiContents.Count)]; + body = "{\"goods_commit_id\":\"" + commitId + "\",\"goods_id\":\"" + goodsId + "\"}"; + result = HttpResponseBLL.PDDPostResponse(shop, url, body.Replace("0asAntiContent", anti), refere, anti); + } + } + return result; + } + + private string GoodsSubmit(ShopLoginInfo shop, string goodsId, string commitId, string chanceTab="") + { + var anti = shop.AntiContents.LastOrDefault().ParseToString(); + if (shop.AntiContents.Count > 0) + anti = shop.AntiContents[Randomx.GetId(shop.AntiContents.Count)]; + string url = "https://mms.pinduoduo.com/glide/v2/mms/edit/commit/submit"; + + string body = ""; + body = @"{""goods_commit_id"":""" + commitId + @""",""goods_id"":" + goodsId + + @",""is_onsale"":true,""third_type"":0,""if_allow_submit_mall_checking"":true," + + @"""crawlerInfo"":""0asAfacpYjo8Y9TFpfjqiS1b4Tbk4hfRZGuTBCmar9DzyS9lb5kwk9F8IPcZEaFnjkBa-l-rcJkOuJDGWRVEru8_Q36B0ZbaR6AhKmluJhISICKNvDnLF1dDa85t41uO0fum3FLaCc5YMFkrz1Xyc_TTr13vYA4RVfIOxdoK4T5edPjFoHTaaC5qrTxCcHlfsUXf7_C0eBscfybHOMdHqVefeFzND7qLh6h36ZrWKcZmB4e6HkxbLf88rPTmc39f6oGun0pUoQcmmTlWoy50zhhF9yQR9JGm8tbhCFkFKPLWF82m9tCIec6T2tAmaT8MMXPlUGUifflVLa872o1cCukaNgUBGyBlvc_ytWfUVR4DZeWSCkyOzbR2wZpBv-xeNh8sE-ZtkNh_4Lt0L7e-3DuhGYlJ4CwLrXbWYNDiLHamNMH88WFVgTZaH-PpIn874igQN0nW0ZqmAGBMW445EnoGrOOrQWLZNgkMMymurIGpbOaLXxiKNA7JRH7UWQiKSKqvK8K1Ya4omzGUNZTqEOK""}"; + + body = @"{""goods_commit_id"":""" + commitId + @""",""goods_id"":" + goodsId + + @",""is_onsale"":true,""third_type"":0,""if_allow_submit_mall_checking"":true," + + @"""crawlerInfo"":""0asAntiContent""}"; + + string refere = "https://mms.pinduoduo.com/goods/goods_add/index?type=add&from=chance&id=" + commitId + + "&goods_id=" + goodsId + "&chance_tab=search&sourcePage=goodsListTopButton_CHANCE"; + if (!string.IsNullOrEmpty(chanceTab)) + refere = refere.Replace("chance_tab=search", "chance_tab=" + chanceTab); + + var result = HttpResponseBLL.PDDPostResponse(shop, url, body.Replace("0asAntiContent", anti), refere, anti); + for (int i = 0; i < 5 && result.Contains("网络繁忙,请不要频繁操作"); i++) + { + shop.AntiContents.Remove(anti); + anti = shop.AntiContents.FirstOrDefault().ParseToString(); + if (shop.AntiContents.Count > 0) + { + Thread.Sleep(Randomx.GetId(300, 500)); + anti = shop.AntiContents[Randomx.GetId(shop.AntiContents.Count)]; + body = "{\"goods_commit_id\":\"" + commitId + "\",\"goods_id\":\"" + goodsId + "\"}"; + result = HttpResponseBLL.PDDPostResponse(shop, url, body.Replace("0asAntiContent", anti), refere, anti); + } + } + return result; + } + + + public string uploadWhiteBackPicture(ShopLoginInfo shop, string img_base64, string goods_id, string goods_commit_id, string chanceTab) + { + //if (string.IsNullOrEmpty(img_base64)) + // img_base64 = "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"; + byte[] imageBytes = Convert.FromBase64String(img_base64); + // 使用MemoryStream创建图片对象 + string imgName = ""; + string imgPath = ""; + using (MemoryStream ms = new MemoryStream(imageBytes)) + { + Image image = Image.FromStream(ms); + // 保存图片到文件系统 + try + { + string dirverName = "D:"; + if (!DriveInfo.GetDrives().Any(d => d.Name.StartsWith(dirverName))) + dirverName = "E:"; + if (!DriveInfo.GetDrives().Any(d => d.Name.StartsWith(dirverName))) + dirverName = "C:"; + if (!Directory.Exists(dirverName + "\\img_tmp")) + Directory.CreateDirectory(dirverName + "\\img_tmp"); + imgName = "图片" + Randomx.GetId(1000, 10000) + ".jpg"; + imgPath = dirverName + "\\img_tmp\\" + imgName; + image.Save(imgPath, System.Drawing.Imaging.ImageFormat.Jpeg); + } + catch (Exception ex) { return "存图失败 " + ex.Message; } + } + string boundary = "----WebKitFormBoundaryFqcwRDsfAuvxgM4a"; + string body = @"------WebKitFormBoundaryFqcwRDsfAuvxgM4a +Content-Disposition: form-data; name=""file""; filename=""" + imgName + @""" +Content-Type: image/jpeg + +" + imgPath + @" +------WebKitFormBoundaryFqcwRDsfAuvxgM4a-- +"; + + var anti = shop.AntiContents.LastOrDefault().ParseToString(); + if (shop.AntiContents.Count > 0) + anti = shop.AntiContents[Randomx.GetId(shop.AntiContents.Count)]; + string url = "https://aid.pinduoduo.com/api/banner-intelligent/material/upload"; + string refere = "https://aid.pinduoduo.com/tools/matting?origin=goods_material&msfrom=mms_globalsearch"; + var result = HttpResponseBLL.PDDPostResponseUpload(shop, url, body, refere, boundary, anti); + for (int i = 0; i < 5 && result.Contains("网络繁忙,请不要频繁操作"); i++) + { + shop.AntiContents.Remove(anti); + anti = shop.AntiContents.FirstOrDefault().ParseToString(); + if (shop.AntiContents.Count > 0) + { + Thread.Sleep(Randomx.GetId(300, 500)); + anti = shop.AntiContents[Randomx.GetId(shop.AntiContents.Count)]; + result = HttpResponseBLL.PDDPostResponseUpload(shop, url, body, refere, boundary, anti); + } + } + return result; + } + + private string getWhiteBackPicture(ShopLoginInfo shop, string ImgUrl) + { + var anti = shop.AntiContents.LastOrDefault().ParseToString(); + if (shop.AntiContents.Count > 0) + anti = shop.AntiContents[Randomx.GetId(shop.AntiContents.Count)]; + string url = "https://aid.pinduoduo.com/api/banner-intelligent/matting/batch"; + + string body = @"[""" + ImgUrl + @"""]"; + string refere = "https://aid.pinduoduo.com/tools/matting?origin=goods_material&msfrom=mms_globalsearch"; + + var result = HttpResponseBLL.PDDPostResponse(shop, url, body.Replace("0asAntiContent", anti), refere, anti); + for (int i = 0; i < 5 && result.Contains("网络繁忙,请不要频繁操作"); i++) + { + shop.AntiContents.Remove(anti); + anti = shop.AntiContents.FirstOrDefault().ParseToString(); + if (shop.AntiContents.Count > 0) + { + Thread.Sleep(Randomx.GetId(300, 500)); + anti = shop.AntiContents[Randomx.GetId(shop.AntiContents.Count)]; + result = HttpResponseBLL.PDDPostResponse(shop, url, body.Replace("0asAntiContent", anti), refere, anti); + } + } + return result; + } + + private void btnGetProd_Click(object sender, EventArgs e) + { + this.GetActivityProductList(); + } + + DateTime startTime = DateTime.Now; + void GetActivityProductList() + { + var lstShopId = dgvShop.Rows.Cast() + .Where(row => row.Cells["colSelect"]?.Value.ParseToBool() == true && row.Cells["colLoginStatus"]?.Value.ParseToString() == "在线") + .Select(r => r.Cells["colShopId"]?.Value.ToString()).ToList(); + if (lstShopId.Count == 0) + { + BaseMsgForm.ShowInfo("请选择登录的店铺!"); + return; + } + lstActListProdInfo.Clear(); + dgvActProduct.Rows.Clear(); + startTime = dtpStartDay.Value; + + var dgvRows = this.dgvShop.Rows.Cast();//.Where(r => lstShopId.Contains(r.Cells["colShopId"].Value.ParseToString())); + foreach (var row in dgvRows) + { + row.Cells["colMessage"].Value = ""; + } + + btnGetProd.Enabled = false; + if (cancellationTokenSource != null) + cancellationTokenSource.Cancel(); + cancellationTokenSource = new CancellationTokenSource(); + Task.Run(() => + { + var lstShopIdTemp = new List(); + lstShopIdTemp.AddRange(lstShopId); + int i = 0; + + foreach (var shopId in lstShopIdTemp) + { + this.Invoke(new Action(() => + { + this.statusBar.lblTaskStatus.Text = "正在查询..."; + this.statusBar.pgbTaskProgress.Maximum = lstShopIdTemp.Count; + this.statusBar.UpdateProgressBar(i + 1); + i++; + })); + + if (cancellationTokenSource.IsCancellationRequested) + break; + + var shop = GlobalConfig.ShopLoginList.FirstOrDefault(s => s.ShopId == shopId); + if (shop == null) + continue; + + #region 检测登录 + if (shop.LoginStatus == "登录成功") + { + PDDShopListForm.Instance.CheckShopLogin(new string[] { shop.LoginName }, false); + } + if (shop.LoginStatus != "登录成功") + { + Invoke(new Action(() => + { + var rows = this.dgvShop.Rows.Cast().Where(r => r.Cells["colShopLoginName"].Value.ToString() == shop.LoginName); + foreach (var row in rows) + { + row.Cells["colMessage"].Value = "店铺掉线"; + row.Cells["colLoginStatus"].Value = "掉线"; + row.Cells["colCanUse"].Value = false; + } + })); + continue; + } + #endregion + + Invoke(new Action(() => + { + var rows = this.dgvShop.Rows.Cast().Where(r => r.Cells["colShopId"].Value.ToString() == shop.ShopId); + foreach (var row in rows) + { + row.Cells["colMessage"].Value = "正在查询"; + } + })); + + int page = 0; + int pageSize = 50; + int total = 0; + int totalPage = 1; + bool isError = false; + string errMsg = ""; + while (page < totalPage) + { + if (cancellationTokenSource.IsCancellationRequested) + break; + page++; + Invoke(new Action(() => + { + this.statusBar.lblTaskStatus.Text = "正在查询... 店铺:" + shop.ShopAccount + " 第 " + page + " 页" + (page == 0 ? "" : ",共 " + totalPage + " 页,可报名商品:" + total); + })); + + int tryCount = 0; + tryAgain: + + GetToken(shop); + + if (page > 1) + Thread.Sleep(Randomx.GetId(3000, 7000)); + + string activityProdLstRst = get_activity_goods_list_info(shop, page); + if (activityProdLstRst.Contains("繁忙") && tryCount < 5) + { + tryCount++; + Thread.Sleep(Randomx.GetId(5000, 10000)); + goto tryAgain; + } + if (!activityProdLstRst.Contains("\"success\":true")) + { + PDDShopListForm.Instance.CheckShopLogin(new string[] { shop.LoginName }, false); + if (shop.LoginStatus != "登录成功") + break; + + isError = true; + string sErr = BaseRegex.GetStringJson(ref activityProdLstRst, "error_msg"); + if (!string.IsNullOrWhiteSpace(sErr) && !errMsg.Contains(sErr)) + errMsg += sErr + " "; + page++; + continue; + } + var actStr = JsonHelper.SerializeObject(JsonHelper.JObjectParse(activityProdLstRst)["result"]["result"]); + var actListProdInfoLst = JsonHelper.DeserializeJsonToList(actStr); + + int? isOnsale = 1; + //"goods_id_list":["819969337632","819963304053"]," + List goods_id_list = actListProdInfoLst.Select(a => a.goods_id.ParseToString()).ToList(); + string goods_name = ""; + List out_goods_sn_list = null; + List skuSns = null; + long? minPrice = null, maxPrice = null; + string jsonStr = PDDProductUpDownForm.shop_goods_search(shop, goods_id_list, goods_name, out_goods_sn_list, skuSns, isOnsale, minPrice, maxPrice, 1, pageSize); + if (jsonStr.Contains("繁忙") && tryCount < 5) + { + tryCount++; + Thread.Sleep(Randomx.GetId(5000, 10000)); + goto tryAgain; + } + if (!jsonStr.Contains("\"success\":true")) + { + PDDShopListForm.Instance.CheckShopLogin(new string[] { shop.LoginName }, false); + if (shop.LoginStatus != "登录成功") + break; + + isError = true; + string sErr = BaseRegex.GetStringJson(ref jsonStr, "error_msg"); + if (!string.IsNullOrWhiteSpace(sErr) && !errMsg.Contains(sErr)) + errMsg += sErr + " "; + page++; + continue; + } + + + var jArr = new JArray(); + try + { + var jObj = JObject.Parse(jsonStr); + jArr = jObj["result"]?["goods_list"] as JArray; + if (jArr == null) + jArr = new JArray(); + } + catch (Exception ex) { BaseMsgForm.ShowError(ex.Message); } + foreach (var item in jArr) + { + string sItem = item.ToString(); + PDDShopListProductInfo pInfo = JsonHelper.DeserializeJsonToObject(sItem); // 反序列化得到类 + pInfo.shopId = shop.ShopId; + pInfo.shopName = shop.ShopAccount; + var actLstProd = actListProdInfoLst.FirstOrDefault(a => a.goods_id == pInfo.id); + if (actLstProd != null) + actLstProd.lstPInfo = pInfo; + } + + //933725610315 + total = BaseRegex.GetStringJson(ref activityProdLstRst, "mall_total_goods").ParseToInt(); + totalPage = Math.Ceiling(1m * total / pageSize).ParseToInt(); + + foreach (var actLstProd in actListProdInfoLst) + { + if (actLstProd.lstPInfo?.updated_at != null && BaseClass.StampToDateTime(actLstProd.lstPInfo.updated_at.ParseToInt()) < startTime) + { + total = lstActListProdInfo.Where(a => a.shopId == shop.ShopId).ToList().Count; + totalPage = Math.Ceiling(1m * total / pageSize).ParseToInt(); + break; + } + + if (actLstProd != null && !lstActListProdInfo.Any(a => a.goods_id == actLstProd.goods_id)) + { + actLstProd.shopId = shop.ShopId; + actLstProd.shopName = shop.ShopAccount; + this.lstActListProdInfo.Add(actLstProd); + + Invoke(new Action(() => + { + int rowId = this.dgvActProduct.Rows.Add( + true, + shop.ShopId, + shop.ShopAccount, + "登录", + "进店", + actLstProd.goods_id, // 商品Id + actLstProd.lstPInfo?.out_goods_sn, // 商品Id + actLstProd.hd_thumb_url.Replace("https", "http"), + DataGridViewExtension.defaultBitmap, // 列表图片 + actLstProd.goods_name, + actLstProd.min_on_sale_group_price + " - " + actLstProd.max_on_sale_group_price, + actLstProd.goods_quantity, + actLstProd.sold_quantity, + BaseClass.StampToDateTime((actLstProd.lstPInfo?.updated_at).ParseToInt()), + "删除", + "" // 操作结果,状态 + ); + + dgvActProduct.Rows[rowId].Height = 60; + })); + } + } + } + + Invoke(new Action(() => + { + var rows = this.dgvShop.Rows.Cast().Where(r => r.Cells["colShopId"].Value.ToString() == shop.ShopId); + + if (!isError) + { + foreach (var row in rows) + { + row.Cells["colMessage"].Value = "已查询 查询到符合条件商品:" + lstActListProdInfo.Where(a => a.shopId == shop.ShopId).ToList().Count; + } + } + else + { + foreach (var row in rows) + { + row.Cells["colMessage"].Value = "查询失败 " + errMsg; + } + } + })); + } + Invoke(new Action(() => + { + btnGetProd.Enabled = true; + string sRst = "查询结束!"; + if (cancellationTokenSource.IsCancellationRequested) + sRst = "已取消查询!"; + + BaseMsgForm.ShowInfo(sRst); + //this.statusBar.lblTaskStatus.Text = sRst; + this.statusBar.lblTaskStatus.Text = this.statusBar.lblTaskStatus.Text.Replace("正在查询...", sRst); + })); + }, cancellationTokenSource.Token); + } + + public void GetToken(ShopLoginInfo shop) + { + if (!dicShopGetCount.Keys.Contains(shop)) + { + var antiLst = shop.AntiContents.Take(Math.Max(1, shop.AntiContents.Count - 5)).ToList(); + shop.AntiContents.RemoveAll(a => antiLst.Contains(a)); + dicShopGetCount[shop] = 100; + } + else + dicShopGetCount[shop]++; + if (dicShopGetCount[shop] > 5) + { + dicShopGetCount[shop] = 0; + + PDDShopLoginForm loginForm = null; + Invoke(new Action(() => + { + this.panel1.SendToBack(); + loginForm = new PDDShopLoginForm(shop); + loginForm.TopLevel = false; + loginForm.openType = EnumOpenType.manage; + loginForm.WindowState = FormWindowState.Maximized; + loginForm.InitUrl = "https://mms.pinduoduo.com/goods/goods_list?msfrom=mms_sidenav"; + loginForm.Dock = DockStyle.Fill; + this.panel1.Controls.Add(loginForm); + loginForm.Show(); + })); + Thread.Sleep(Randomx.GetId(3000, 5000)); + + Invoke(new Action(() => + { + if (loginForm != null) + loginForm.Close(); + })); + } + } + + + private void lblNewAddPrice_Click(object sender, EventArgs e) + { + var ucPrice = new UcAddPrice(); + if (IsSetFontScaleNone) + { + Font of = ucPrice.Font; + Font nf = new Font(of.FontFamily, (of.Size * 96.0 / FormDpi).ParseToFloat(), of.Style, of.Unit, of.GdiCharSet, of.Bold); + ucPrice.Font = nf; + } + ucPrice.PriceChange += ucAddPrice_PriceChange; + this.fPnlPriceRule.Controls.Add(ucPrice); + } + + private void ucAddPrice_PriceChange(object obj) + { + List priceRuleLst = new List(); + foreach (var ucItem in fPnlPriceRule.Controls) + { + var ucPrice = ucItem as UcAddPrice; + if (ucPrice != null) + { + priceRuleLst.Add(new AddPriceRule() + { + AddMorePrice = ucPrice.PriceAddMore, + AddPriceTimes = ucPrice.PriceAddTimes, + LessThanPrice = ucPrice.PriceEnd, + MoreThanPrice = ucPrice.PriceStart, + SinglePriceAdd = ucPrice.SinglePriceAdd, + }); + } + } + this.lstAddPriceRule.Clear(); + this.lstAddPriceRule.AddRange(priceRuleLst); + + NaiBa.Util.Helper.ConfigHelper.SaveConfig("pdd_add_price_rules_for_activity", lstAddPriceRule); + } + + private void txtAddPrice_TextChanged(object sender, EventArgs e) + { + if (IsLoadComplate) + { + defaultAddPriceRule.AddPriceTimes = txtAddTimes.Text.Trim().ParseToDecimal(); + defaultAddPriceRule.AddMorePrice = txtAddMorePrice.Text.Trim().ParseToDecimal(); + defaultAddPriceRule.SinglePriceAdd = txtSinglePriceAdd.Text.Trim().ParseToDecimal(); + defaultAddPriceRule.StockNum = txtStockNum.Text.Trim().ParseToInt(); + defaultAddPriceRule.AddShippingFeeTimes = txtAddShippingFeeTimes.Text.Trim().ParseToDecimal(); + NaiBa.Util.Helper.ConfigHelper.SaveConfig("pdd_default_add_price_rule_for_activity", defaultAddPriceRule); + } + } + + private void chkStepAddPrice_CheckedChanged(object sender, EventArgs e) + { + isStepAddPrice = this.chkStepAddPrice.Checked; + } + + private void btnClearDgv_Click(object sender, EventArgs e) + { + //this.dgvSelectProduct.Rows.Clear(); + var rows = this.dgvActProduct.Rows.Cast().ToList(); //Cast后Rows做foreach循环时仍会夹花跳过,所以要ToList转一个新的数组。 + foreach (var row in rows) + { + if (row.Cells["colCheck"].Value.ParseToBool() == true) + this.dgvActProduct.Rows.Remove(row); + } + } + + private void chkAddMorePriceFirst_CheckedChanged(object sender, EventArgs e) + { + if (IsLoadComplate) + { + defaultAddPriceRule.AddMorePriceFirst = chkAddMorePriceFirst.Checked; + NaiBa.Util.Helper.ConfigHelper.SaveConfig("pdd_default_add_price_rule_for_activity", defaultAddPriceRule); + } + } + + private void chkActivityDetail_CheckedChanged(object sender, EventArgs e) + { + //if (!chk15996.Checked && !chk20981.Checked && !chk21365.Checked && !chk22347.Checked) + // chkActivity.Checked = false; + if (IsLoadComplate) + { + pddUploadRule.sign20981 = chk20981.Checked; + pddUploadRule.sign15996 = chk15996.Checked; + pddUploadRule.sign21365 = chk21365.Checked; + pddUploadRule.sign22347 = chk22347.Checked; + NaiBa.Util.Helper.ConfigHelper.SaveConfig("pdd_upload_rule", pddUploadRule); + } + } + + + private void chkUseExtCodePrice_CheckedChanged(object sender, EventArgs e) + { + if (IsLoadComplate) + { + pddUploadRule.IsUseExtCodePrice = chkUseExtCodePrice.Checked; + NaiBa.Util.Helper.ConfigHelper.SaveConfig("pdd_upload_rule", pddUploadRule); + } + } + + private void btnTest20981_Click(object sender, EventArgs e) + { + var shop = GlobalConfig.ShopLoginList.First(s => s.ShopAccount == "阿杰小铺浦哈哈"); // 926699000463 境达外套店 + var pddApi = new PddApi(shop); + pddApi.Data["goods_id"] = "926703971749"; + var rst = pddApi.PddGoodsDetailGet(); + + var prodRstObj = JsonHelper.JObjectParse(rst)["goods_detail_get_response"] as JObject; + ChangeAndUpdateProd(shop, prodRstObj); + + #region + //pddApi = new PddApi(shop); + //pddApi.Data["page"] = 1; + //var rst1 = pddApi.PddGoodsLogisticsTemplateGet(); + + //rst = rst.Replace("\"shelf_life\":null", "\"shelf_life\":0"); + //rst = rst.Replace("\"start_production_date\":null", "\"start_production_date\":0"); + //rst = rst.Replace("\"end_production_date\":null", "\"end_production_date\":0"); + //ProductDetailBasex tp = JsonHelper.DeserializeJsonToObject(rst); + //var r = tp.goods_detail_get_response; + + + //var api = new PddApi(shop); + //api.Data.Add("goods_id", r.goods_id.ToString()); + //api.Data.Add("goods_name", r.goods_name); + //api.Data.Add("goods_type", r.goods_type.ToString()); + //api.Data.Add("cat_id", r.cat_id.ToString()); + ////api.Data.Add("tiny_name", r.tiny_name); + //api.Data.Add("country_id", r.country_id.ToString()); + //api.Data.Add("is_pre_sale", r.is_pre_sale == 1 ? "true" : "false"); + //api.Data.Add("shipment_limit_second", r.shipment_limit_second.ToString()); + //api.Data.Add("cost_template_id", r.cost_template_id.ToString()); + //api.Data.Add("customer_num", r.customer_num.ToString()); + //api.Data.Add("is_refundable", r.is_refundable == 1 ? "true" : "false"); + //api.Data.Add("second_hand", r.second_hand == 1 ? "true" : "false"); + //api.Data.Add("is_folt", r.is_folt == 1 ? "true" : "false"); + //api.Data.Add("out_goods_id", r.outer_goods_id); + //api.Data.Add("hd_thumb_url", r.hd_thumb_url); + //api.Data.Add("thumb_url", r.thumb_url); + //api.Data.Add("image_url", r.image_url); + //api.Data.Add("goods_desc", r.goods_desc); + //api.Data.Add("buy_limit", r.buy_limit.ToString()); + //api.Data.Add("order_limit", r.order_limit.ToString()); + //api.Data.Add("pre_sale_time", r.pre_sale_time.ToString()); + //if (r.shelf_life > 0) + //{ + // api.Data.Add("start_production_date", r.start_production_date.ToString()); + // api.Data.Add("end_production_date", r.end_production_date.ToString()); + // api.Data.Add("shelf_life", r.shelf_life.ToString()); + //} + //api.Data.Add("market_price", r.market_price.ToString()); + //api.Data.Add("warehouse", r.warehouse); + //api.Data.Add("is_customs", r.is_customs == 1 ? "true" : "false"); + //api.Data.Add("customs", r.customs); + //api.Data.Add("warm_tips", r.warm_tips); + //api.Data.Add("fabric", r.fabricx.ToString()); + //api.Data.Add("fabric_content", r.fabric_contentx.ToString()); + //api.Data.Add("mall_id", r.mall_id.ToString()); + ////api.FromWeiDian = true; + //// 构造sku属性,计算最高价格和最低价格 + //var skuApiString = ""; + //long? minPrice = null; + //long? maxPrice = null; + //if (r.sku_list.Count > 0) + // maxPrice = minPrice = r.sku_list[0].multi_price; + //for (int i = 0; i < r.sku_list.Count; i++) + //{ + // string spec = ""; + // for (int j = 0; j < r.sku_list[i].spec.Count; j++) + // spec += "," + r.sku_list[i].spec[j].spec_id; + // spec = spec.Trim(','); + // skuApiString += ",{\"is_onsale\":" + r.sku_list[i].is_onsale + ",\"limit_quantity\":" + r.sku_list[i].limit_quantity + + // ",\"price\":\"" + r.sku_list[i].price + "\",\"weight\":1000,\"multi_price\":\"" + r.sku_list[i].multi_price + + // "\",\"thumb_url\":\"" + r.sku_list[i].thumb_url + "\",\"out_sku_sn\":\"" + r.sku_list[i].out_sku_sn + + // "\",\"quantity\":" + r.sku_list[i].quantity + ",\"spec_id_list\":\"[" + spec + "]\"}"; + // if (r.sku_list[i].multi_price > maxPrice) + // maxPrice = r.sku_list[i].multi_price; + // if (r.sku_list[i].multi_price < minPrice) + // minPrice = r.sku_list[i].multi_price; + //} + //skuApiString = skuApiString.Trim(','); + //api.Data.Add("sku_list", "[" + skuApiString + "]"); + //api.Data.Add("carousel_gallery", JsonHelper.SerializeObject(r.carousel_gallery_list)); + //api.Data.Add("detail_gallery", JsonHelper.SerializeObject(r.detail_gallery_list)); + //api.Data.Add("list_desc", JsonHelper.SerializeObject(r.list_desc)); + //api.Data.Add("galleries", JsonHelper.SerializeObject(r.galleries)); + //api.Data.Add("goods_property", JsonHelper.SerializeObject(r.goods_property_list)); + //#region 更新属性 + ////int Cat1 = 0; + //// 获取拼多多商品属性 + ////ProductCollectBase pb = new ProductCollectBase(); + ////if (PinduoduoCatList.CatIds.ContainsKey(r.cat_id)) + //// Cat1 = PinduoduoCatList.CatIds[r.cat_id].cat1; + ////string mustCode = ""; + ////string goods_properties = UploadPinduoduoProperties.GetNew(r.cat_id, Cat1, ref pb, ref shop, out mustCode); // 获取商品属性信息 + //string goods_properties = ""; + //for (int i = 0; i < r.goods_property_list.Count; i++) + //{ + // var p = r.goods_property_list[i]; + // var str = ",{\"template_pid\":" + p.template_pid + ",\"vid\":" + p.vid + ",\"value\":\"" + p.vvalue + "\",\"value_unit\":\"" + p.punit + "\"}"; + // string temp = BaseRegex.GetMatchRegexString(ref str, @"(\d{2,4}-\d{1,2}-\d{1,2})"); + // if (!string.IsNullOrEmpty(temp)) + // str = ",{\"template_pid\":" + p.template_pid + ",\"vid\":" + p.vid + ",\"value\":\"" + DateTime.Now.ToString("yyyy-MM-dd") + "\",\"value_unit\":\"" + p.punit + "\"}"; + // goods_properties += str; + //} + //if (!string.IsNullOrEmpty(goods_properties)) + //{ + // api.Data.Remove("goods_properties"); + // api.Data.Add("goods_properties", "[" + goods_properties.Substring(1) + "]"); + //} + //#endregion + ////api.Data["sync_goods_operate"] = "1"; // 下架商品编辑后保持原样不上架 + //api.Data["sync_goods_operate"] = "0"; // 下架商品编辑后更改为上架状态 + + //rst = api.PddGoodsInformationUpdate(); + //return; + #endregion + } + + string ChangeAndUpdateProd(ShopLoginInfo shop, JObject prodRstObj) + { + try + { + var pddApi = new PddApi(shop); + pddApi.Data["auto_fill_spu_property"] = false; + pddApi.Data["bad_fruit_claim"] = prodRstObj["bad_fruit_claim"]; + pddApi.Data["buy_limit"] = prodRstObj["buy_limit"]; + pddApi.Data["carousel_gallery"] = JsonHelper.SerializeObject(prodRstObj["carousel_gallery_list"]); + pddApi.Data["cat_id"] = prodRstObj["cat_id"]; + pddApi.Data["cost_template_id"] = prodRstObj["cost_template_id"].ToString(); + pddApi.Data["country_id"] = prodRstObj["country_id"]; + pddApi.Data["customer_num"] = prodRstObj["customer_num"]; + pddApi.Data["customs"] = prodRstObj["customs"]; + pddApi.Data["delivery_one_day"] = prodRstObj["delivery_one_day"]; + pddApi.Data["delivery_type"] = prodRstObj["delivery_type"]; + pddApi.Data["detail_gallery"] = JsonHelper.SerializeObject(prodRstObj["detail_gallery_list"]); + pddApi.Data["elec_goods_attributes"] = prodRstObj["elec_goods_attributes"]; + pddApi.Data["goods_desc"] = prodRstObj["goods_desc"].ParseToString(); + pddApi.Data["goods_id"] = prodRstObj["goods_id"]; + pddApi.Data["goods_name"] = prodRstObj["goods_name"].ParseToString(); + + string goods_properties = ""; + for (int i = 0; i < prodRstObj["goods_property_list"].Count(); i++) + { + var propObj = JObject.Parse(JsonHelper.SerializeObject(prodRstObj["goods_property_list"][i])); + propObj["value"] = propObj["vvalue"]; + propObj["value_unit"] = propObj["punit"]; + propObj.Remove("vvalue"); + propObj.Remove("punit"); + goods_properties += JsonHelper.SerializeObject(propObj) + ","; + } + pddApi.Data["goods_properties"] = "[" + goods_properties.Trim(',') + "]"; + + pddApi.Data["goods_trade_attr"] = prodRstObj["goods_trade_attr"]; + pddApi.Data["goods_travel_attr"] = prodRstObj["goods_travel_attr"]; + pddApi.Data["goods_type"] = prodRstObj["goods_type"]; + //pddApi.Data["ignore_edit_warn"] = false; + pddApi.Data["image_url"] = prodRstObj["image_url"]; + pddApi.Data["invoice_status"] = prodRstObj["invoice_status"]; + pddApi.Data["is_customs"] = prodRstObj["is_customs"].ParseToInt() == 1; + pddApi.Data["is_folt"] = prodRstObj["is_folt"].ParseToInt() == 1; //是否支持假一赔十,false-不支持,true-支持 + pddApi.Data["is_group_pre_sale"] = prodRstObj["is_group_pre_sale"]; + pddApi.Data["is_pre_sale"] = prodRstObj["is_pre_sale"].ParseToInt() == 1; + pddApi.Data["is_refundable"] = prodRstObj["is_refundable"].ParseToInt() == 1; + pddApi.Data["is_sku_pre_sale"] = prodRstObj["is_sku_pre_sale"]; + pddApi.Data["lack_of_weight_claim"] = prodRstObj["lack_of_weight_claim"]; + pddApi.Data["local_service_id_list"] = prodRstObj["local_service_id_list"]; + //if (!prodRstObj["mai_jia_zi_ti"].IsJTokenNullOrEmpty()) + // pddApi.Data["mai_jia_zi_ti"] = prodRstObj["mai_jia_zi_ti"]; + pddApi.Data["market_price"] = prodRstObj["market_price"]; + //pddApi.Data["operate_type"] = 0; // 是否提交草稿,默认提交 0:提交,1:保存 + pddApi.Data["order_limit"] = prodRstObj["order_limit"]; + pddApi.Data["origin_country_id"] = prodRstObj["origin_country_id"]; + pddApi.Data["out_goods_id"] = prodRstObj["out_goods_id"]; + pddApi.Data["out_source_goods_id"] = prodRstObj["out_source_goods_id"]; + pddApi.Data["out_source_type"] = prodRstObj["out_source_type"]; + pddApi.Data["oversea_goods"] = prodRstObj["oversea_goods"]; + pddApi.Data["oversea_type"] = prodRstObj["oversea_type"]; + pddApi.Data["pre_sale_time"] = prodRstObj["pre_sale_time"]; + pddApi.Data["privacy_delivery"] = prodRstObj["privacy_delivery"]; + pddApi.Data["quan_guo_lian_bao"] = prodRstObj["quan_guo_lian_bao"]; + pddApi.Data["second_hand"] = prodRstObj["second_hand"].ParseToInt() == 1; + //if (!prodRstObj["shang_men_an_zhuang"].IsJTokenNullOrEmpty()) + // pddApi.Data["shang_men_an_zhuang"] = prodRstObj["shang_men_an_zhuang"]; + pddApi.Data["shipment_limit_second"] = prodRstObj["shipment_limit_second"]; + pddApi.Data["shop_group_id"] = prodRstObj["shop_group_id"]; + if (!prodRstObj["size_spec_id"].IsJTokenNullOrEmpty()) + pddApi.Data["size_spec_id"] = prodRstObj["size_spec_id"]; + + string skuStr = ""; + for (int i = 0; i < prodRstObj["sku_list"].Count(); i++) + { + var skuObj = JObject.Parse(JsonHelper.SerializeObject(prodRstObj["sku_list"][i])); + skuObj["sku_properties"] = skuObj["sku_property_list"]; + skuObj["quantity"] = 0; + string spec = ""; + foreach (var specObj in skuObj["spec"]) + { + spec += "," + specObj["spec_id"].ParseToString(); + } + spec = spec.Trim(','); + skuObj["spec_id_list"] = "[" + spec + "]"; + skuObj.Remove("sku_property_list"); + //skuObj.Remove("sku_properties"); + skuObj.Remove("spec"); + skuStr += JsonHelper.SerializeObject(skuObj) + ","; + } + skuStr = skuStr.Trim(','); + pddApi.Data["sku_list"] = "[" + skuStr + "]"; + + pddApi.Data["sku_type"] = prodRstObj["sku_type"]; + //if (!prodRstObj["song_huo_an_zhuang"].IsJTokenNullOrEmpty()) + // pddApi.Data["song_huo_an_zhuang"] = prodRstObj["song_huo_an_zhuang"]; + //if (!prodRstObj["song_huo_ru_hu"].IsJTokenNullOrEmpty()) + // pddApi.Data["song_huo_ru_hu"] = prodRstObj["song_huo_ru_hu"]; + //pddApi.Data["sync_goods_operate"] = 1; // 提交后上架状态,0:上架,1:保持原样 + if (prodRstObj["tiny_name"].ParseToString().Length > 8) + pddApi.Data["tiny_name"] = prodRstObj["tiny_name"].ParseToString(); + pddApi.Data["two_pieces_discount"] = prodRstObj["two_pieces_discount"]; + pddApi.Data["warehouse"] = prodRstObj["warehouse"]; + pddApi.Data["warm_tips"] = prodRstObj["warm_tips"]; + pddApi.Data["zhi_huan_bu_xiu"] = prodRstObj["zhi_huan_bu_xiu"]; + // 医疗器械 不填 + //pddApi.Data["medical_device_certificate_gallery"] = ""; + //pddApi.Data["medical_device_confirm"] = ""; + + foreach (var key in pddApi.Data.Select(d => d.Key).ToList()) + { + if (pddApi.Data[key].IsNullOrEmpty()) + { + pddApi.Data.Remove(key); + } + }; + + var rst = pddApi.PddGoodsInformationUpdate(); + return rst; + } + catch (Exception ex) + { + return "{\"success\":false,\"error_msg\"\"接口转换商品失败 " + ex.Message + "\"}"; + } + } + + private void btnApiUpload_Click(object sender, EventArgs e) + { + var dgvRows = dgvActProduct.Rows.Cast().Where(r => r.Cells["colCheck"].Value.ParseToBool() == true).ToList(); + if (dgvRows.Count == 0) + { + BaseMsgForm.ShowError("请选择报名商品"); + return; + } + AddActivity(dgvRows); + } + + public void AddActivity(List rowLst) + { + var dgvRows = rowLst;//.Where(r => lstShopId.Contains(r.Cells["colShopId"].Value.ParseToString())); + foreach (var row in dgvRows) + { + row.Cells["colOpResult"].Value = ""; + } + this.statusBar.lblTaskStatus.Text = "正在操作..."; + + btnGetProd.Enabled = false; + if (cancellationTokenSource != null) + cancellationTokenSource.Cancel(); + cancellationTokenSource = new CancellationTokenSource(); + Task.Run(() => + { + foreach (var row in rowLst) + { + if (cancellationTokenSource.IsCancellationRequested) + break; + + Invoke(new Action(() => + { + row.Cells["colOpResult"].Value = ""; + })); + + try + { + var shopId = row.Cells["colSupplierId"].Value.ParseToString(); + var shop = GlobalConfig.ShopLoginList.FirstOrDefault(s => s.ShopId == shopId); + if (shop == null) + { + Invoke(new Action(() => + { + row.Cells["colOpResult"].Value = "店铺不存在"; + })); + continue; + } + var actProd = lstActListProdInfo.FirstOrDefault(a => a.goods_id == row.Cells["colSpuId"].Value.ParseToLong()); + if (actProd == null || (actProd.lstPInfo?.out_goods_sn).IsNullOrEmpty()) + { + Invoke(new Action(() => + { + if (actProd == null) + row.Cells["colOpResult"].Value = "商品不存在"; + else + row.Cells["colOpResult"].Value = "源商品不存在"; + })); + continue; + } + + #region 检测登录 + //if (shop.LoginStatus == "登录成功") + //{ + // PDDShopListForm.Instance.CheckShopLogin(new string[] { shop.LoginName }, false); + //} + if (shop.LoginStatus != "登录成功") + { + Invoke(new Action(() => + { + var rows = this.dgvShop.Rows.Cast().Where(r => r.Cells["colShopLoginName"].Value.ToString() == shop.LoginName); + foreach (var rw in rows) + { + rw.Cells["colMessage"].Value = "店铺掉线"; + rw.Cells["colLoginStatus"].Value = "掉线"; + rw.Cells["colCanUse"].Value = false; + } + row.Cells["colOpResult"].Value = "店铺掉线"; + })); + continue; + } + #endregion + + #region 获取anti_content; + GetToken(shop); + #endregion + + #region 获取数据库商品详情 + var dbProds = GetProductDetailByExtCode(actProd.lstPInfo.out_goods_sn); + if (dbProds.Count == 0 || dbProds.Count > 1) + { + Invoke(new Action(() => + { + if (dbProds.Count == 0) + row.Cells["colOpResult"].Value = "未匹配到源商品,跳过"; + else + row.Cells["colOpResult"].Value = "匹配到多个同货号源商品无法确定,跳过"; + })); + continue; + } + var dbProd = dbProds.FirstOrDefault(); + #region 将聚水潭产品数据格式进行转换成pdd格式统一上传,匹配加密的spuCode和skuCoke + if (dbProd.product_get_type_text == "厂商直采" && dbProd.sku_secret_json != null && dbProd.sku_secret_json.Contains("goodsId")) + { + string convertRst = ""; + var pProd = new PDDProdFormConverter().JstPddProdToPddConvert(out convertRst, dbProd); + if (!string.IsNullOrEmpty(convertRst)) + { + Invoke(new Action(() => + { + row.Cells["colOpResult"].Value = "商品查询错误 " + convertRst; + })); + continue; + } + } + #endregion + + PDDProductInfo prodInfo = null; + try + { + prodInfo = JsonHelper.DeserializeJsonToObject(dbProd.product_json); + } + catch (Exception ex) + { + Invoke(new Action(() => + { + row.Cells["colOpResult"].Value = "商品格式化错误 " + ex.Message; + })); + continue; + } + + actProd.dbProduct = dbProd; + #endregion + + #region 厂商直采获取推单运费模板,计算运费加价。 + var shippingTemplateJson = ""; + var shipPrice = 0; + + if (dbProd.product_get_type_text == "厂商直采" && dbProd.wx_cat_leaf != null) + { + var urlShipping = BaseClass.BuildWXObjString("product/wx_get_shipping_template"); + var dataShipping = Work.UserLogin.GetSignaturex() + + "&coid=" + dbProd.skc_id; + var htmlShipping = GetHtml.PostUtf8(urlShipping, dataShipping); + if (string.IsNullOrEmpty(htmlShipping) || !htmlShipping.Contains("\"code\":200")) + htmlShipping = GetHtml.PostUtf8(urlShipping, dataShipping); + if (string.IsNullOrEmpty(htmlShipping) || !htmlShipping.Contains("\"code\":200")) + { + } + else + { + if (htmlShipping.Contains("\"data\":\"\"")) + { + } + else + { + try + { + shippingTemplateJson = JsonHelper.SerializeObject(JsonHelper.JObjectParse(htmlShipping)["data"]); + } + catch + { + + } + } + } + + if (string.IsNullOrEmpty(shippingTemplateJson)) + { + // 获取运费模板 + var urlShip = BaseClass.BuildWXObjString("product/e57_get_freight_template"); + var dataShip = Work.UserLogin.GetSignaturex() + "&coid=" + dbProd.skc_id; + var shipRst = GetHtml.PostUtf8(urlShip, dataShip); + if (string.IsNullOrEmpty(shipRst) || !shipRst.Contains("\"code\":0")) + shipRst = GetHtml.PostUtf8(urlShipping, dataShipping); + if (!shipRst.Contains("\"code\":0")) + { + var errMsg = BaseRegex.GetStringJson(ref shipRst, "msg"); + if (string.IsNullOrEmpty(errMsg)) + errMsg = shipRst; + Invoke(new Action(() => + { + row.Cells["colOpResult"].Value = "运费模板获取失败 " + errMsg; + })); + continue; + } + try + { + //[{"id":"204","warehouseNum":"15016108","freightType":0,"provinces":"香港特别行政区,台湾省,澳门特别行政区","freightPrice":9999900,"createBy":"vmslin","createTime":"2026-01-30T16:45:03+08:00","updateBy":"vmslin","updateTime":"2026-01-30T16:45:03+08:00"},{"id":"205","warehouseNum":"15016108","freightType":3,"provinces":"海南省,新疆维吾尔自治区,西藏自治区,内蒙古自治区","freightPrice":1530,"createBy":"vmslin","createTime":"2026-01-30T16:45:51+08:00","updateBy":"vmslin","updateTime":"2026-01-30T16:45:51+08:00"},{"id":"206","warehouseNum":"15016108","freightType":1,"provinces":"北京市,上海市","freightPrice":410,"createBy":"vmslin","createTime":"2026-01-30T16:46:04+08:00","updateBy":"vmslin","updateTime":"2026-01-30T16:46:04+08:00"},{"id":"207","warehouseNum":"15016108","freightType":1,"provinces":"安徽省,重庆市,福建省,广东省,甘肃省,广西壮族自治区,贵州省,河北省,湖北省,黑龙江省,河南省,湖南省,吉林省,江苏省,江西省,辽宁省,宁夏回族自治区,青海省,四川省,山东省,山西省,陕西省,天津市,云南省,浙江省","freightPrice":310,"createBy":"vmslin","createTime":"2026-01-30T16:46:17+08:00","updateBy":"vmslin","updateTime":"2026-01-30T16:46:17+08:00"}] + shippingTemplateJson = JsonHelper.SerializeObject(JsonHelper.JObjectParse(shipRst)["data"]); + if (shipRst.Contains("\"code\":0") && !string.IsNullOrEmpty(shippingTemplateJson)) + { + urlShipping = BaseClass.BuildWXObjString("product/wx_add_mdy_shipping_template"); + dataShipping = Work.UserLogin.GetSignaturex() + + "&coid=" + dbProd.skc_id + + "&shipping_template_json=" + shippingTemplateJson; + htmlShipping = GetHtml.PostUtf8(urlShipping, dataShipping); + if (string.IsNullOrEmpty(htmlShipping) || !htmlShipping.Contains("\"code\":200")) + htmlShipping = GetHtml.PostUtf8(urlShipping, dataShipping); + } + } + catch (Exception ex) + { + } + } + + if (!string.IsNullOrEmpty(shippingTemplateJson)) + { + try + { + int count = 0; + var shipObjs = JArray.Parse(shippingTemplateJson); + foreach (var shipObj in shipObjs) + { + var provincesStr = shipObj["provinces"].ParseToString(); + if (provincesStr.Split(',').Length > count) + { + count = provincesStr.Split(',').Length; + shipPrice = shipObj["freightPrice"].ParseToInt(); + } + } + } + catch (Exception ex) + { + Invoke(new Action(() => + { + row.Cells["colOpResult"].Value = "运费模板获取失败 " + ex.Message; + })); + continue; + } + } + if (shipPrice <= 0) + { + Invoke(new Action(() => + { + row.Cells["colOpResult"].Value = "运费模板获取失败 未获取到"; + })); + continue; + } + } + #endregion + + #region 生成一组正常加价后的sku + List addPriceSkuInfoLst = new List(); + int marketPrice = prodInfo.detail.market_price.ParseToInt(); + { + foreach (var sku in prodInfo.detail.sku) + { + var skuInfo = JsonHelper.DeserializeJsonToObject(JsonHelper.SerializeObject(sku)); + skuInfo.is_onsale = skuInfo.is_onsale != null ? skuInfo.is_onsale : 1; + skuInfo.limit_quantity = 999; // 只入参999 + + // 厂商直采的上家缺货则保持缺货。 + if (skuInfo.quantity != 0) + skuInfo.quantity = txtStockNum.Text.Trim().ParseToInt(); + + var new_multi_price = sku.multi_price + (shipPrice * defaultAddPriceRule.AddShippingFeeTimes).ParseToInt(); + // 使用货号价格做基础价 + if (chkUseExtCodePrice.Checked && dbProd.ext_code_price > 0) + { + new_multi_price = dbProd.ext_code_price + (shipPrice * defaultAddPriceRule.AddShippingFeeTimes).ParseToInt(); + } + + skuInfo.multi_price = (new_multi_price * this.txtAddTimes.Text.Trim().ParseToDecimal() + this.txtAddMorePrice.Text.Trim().ParseToDecimal() * 100).ParseToInt(); + //skuInfo.price = (sku.price * this.txtAddTimes.Text.Trim().ParseToDecimal() + this.txtAddMorePrice.Text.Trim().ParseToDecimal() * 100).ParseToInt(); + if (defaultAddPriceRule.AddMorePriceFirst) // 先加后乘 + skuInfo.multi_price = ((new_multi_price + this.txtAddMorePrice.Text.Trim().ParseToDecimal() * 100) * this.txtAddTimes.Text.Trim().ParseToDecimal()).ParseToInt(); + skuInfo.price = skuInfo.multi_price + Math.Max(100, this.txtSinglePriceAdd.Text.Trim().ParseToDecimal() * 100).ParseToInt(); + + // 阶梯式加价,如果命中则按阶梯式加价进行 + if (isStepAddPrice) + { + foreach (var addPrice in lstAddPriceRule) + { + if (new_multi_price > addPrice.MoreThanPrice * 100 && new_multi_price <= addPrice.LessThanPrice * 100) + { + if (defaultAddPriceRule.AddMorePriceFirst) // 先加后乘 + skuInfo.multi_price = ((new_multi_price + addPrice.AddMorePrice * 100) * addPrice.AddPriceTimes).ParseToInt(); + else + skuInfo.multi_price = (new_multi_price * addPrice.AddPriceTimes + addPrice.AddMorePrice * 100).ParseToInt(); + skuInfo.price = skuInfo.multi_price + Math.Max(100, addPrice.SinglePriceAdd * 100).ParseToInt(); ; + break; + } + } + } + // 聚水潭商品 加邮费×倍率 放前面 + //skuInfo.multi_price += (shipPrice * defaultAddPriceRule.AddShippingFeeTimes).ParseToInt(); + //skuInfo.price += (shipPrice * defaultAddPriceRule.AddShippingFeeTimes).ParseToInt(); + + if (marketPrice < skuInfo.price + 1000) + { + marketPrice = skuInfo.price.ParseToInt() + 1000; + //pddApi.Data["market_price"] = marketPrice; + } + + addPriceSkuInfoLst.Add(skuInfo); + } + } + #endregion + + PDDProductUploadParam prodParam = new PDDProductUploadParam(); + prodParam.goods_id = actProd.goods_id; + + // 生成正常加价的sku列表 + int index = -1; + prodParam.skus = new List(); + foreach (var skuGetRstInfo in actProd.lstPInfo.sku_list) + { + index++; + var skuInfo = addPriceSkuInfoLst.FirstOrDefault(s => s.out_sku_sn == skuGetRstInfo.outSkuSn); + if (skuInfo == null) + skuInfo = addPriceSkuInfoLst[index]; + + //var skuParam = JsonHelper.DeserializeJsonToObject(JsonHelper.SerializeObject(skuGetRstInfo)); + var skuParam = new sku_param(); + skuParam.sku_id = skuGetRstInfo.skuId; + skuParam.thumb_url = skuGetRstInfo.skuThumbUrl; + skuParam.quantity_delta = skuGetRstInfo.skuQuantity; + skuParam.spec = new List(); + List spStrLst = skuGetRstInfo.newSpec.Split(',').ToList(); + int specIndex = -1; + foreach (var spId in skuGetRstInfo.specIdList) + { + specIndex++; + skuParam.spec.Add(new spec_param() { spec_id = spId, spec_name = spStrLst[specIndex] }); + } + + skuParam.multi_price = skuInfo.multi_price; + skuParam.multi_price_in_yuan = skuInfo.multi_price_in_yuan.ParseToString(); + skuParam.price = skuInfo.price; + skuParam.price_in_yuan = skuInfo.price_in_yuan.ParseToString(); + + if (prodParam.market_price < skuParam.price + 1000) + { + prodParam.market_price = skuParam.price + 1000; + prodParam.market_price_in_yuan = (prodParam.market_price * 0.01).ParseToString(); + } + prodParam.skus.Add(skuParam); + } + + bool sign20981 = chk20981.Checked && chk20981.Visible; + bool sign22347 = chk22347.Checked && chk22347.Visible; + bool sign15996 = chk15996.Checked && chk15996.Visible; + bool sign21365 = chk21365.Checked && chk21365.Visible; + + if ((sign20981 || sign22347 || sign15996 || sign21365) == false) + { + Invoke(new Action(() => + { + row.Cells["colOpResult"].Value = "未选择报名活动"; + })); + break; + } + + string checkActivityRst = CheckActivity20981(shop, prodParam); + if (!checkActivityRst.Contains("校验成功")) + { + Invoke(new Action(() => + { + row.Cells["colOpResult"].Value = checkActivityRst; + })); + continue; + } + + if (prodParam.skus.Any(s => s.sku69_code == "yes")) + { + PddEditProdStockQuantity prodQuantity = new PddEditProdStockQuantity(); + prodQuantity.data = new List(); + foreach(var sku in prodParam.skus) + { + if (sku.sku69_code == "yes") + { + prodQuantity.data.Add(new quantityData() + { + beforeQuantity = sku.quantity_delta, + goodsId = prodParam.goods_id, + quantity = -sku.quantity_delta, + skuId = sku.sku_id, + }); + } + } + var mdyQuantityRst = increase_prod_stock_quantity(shop, prodQuantity); + if (!mdyQuantityRst.Contains("\"success\":true")) + { + //todo 处理修改失败的,修改成功拿去报活动; + } + } + + //string activityErr = SignActivity(shop, prodParam, sign22347, sign20981, sign21365, sign15996); + //Invoke(new Action(() => + //{ + // row.Cells["colOpResult"].Value = activityErr; + //})); + } + catch (Exception ex) + { + Invoke(new Action(() => + { + row.Cells["colOpResult"].Value = "发生错误 " + ex.Message; + })); + } + } + Invoke(new Action(() => + { + btnGetProd.Enabled = true; + string sRst = "操作结束!"; + if (cancellationTokenSource.IsCancellationRequested) + sRst = "已取消操作!"; + + BaseMsgForm.ShowInfo(sRst); + //this.statusBar.lblTaskStatus.Text = sRst; + this.statusBar.lblTaskStatus.Text = this.statusBar.lblTaskStatus.Text.Replace("正在操作...", sRst); + })); + }, cancellationTokenSource.Token); + } + + + private void btnRefreshApi_Click(object sender, EventArgs e) + { + RefreshApi(true); + } + + void RefreshApi(bool isForceRefresh = false) + { + pbShopLoading.Visible = true; + // 选中的店铺Id + Task.Run(() => + { + while (!StartUp.IsShopInit) + { + Thread.Sleep(500); + } + + var selectIds = dgvShop.Rows.Cast().Where(row + => row.Cells["colSelect"]?.Value.ParseToBool() == true).Select(r => r.Cells["colShopId"]?.Value.ToString()).ToList(); + foreach (var shop in GlobalConfig.ShopLoginList) + { + if (isForceRefresh || (shop.AuthAddTime <= DateTime.Now.AddDays(-1) && shop.AuthExpiresTime <= DateTime.Now)) + { + Invoke(new Action(() => + { + shop.Message = ""; + BindShop(shop, selectIds); + })); + PddApiHelper.RefreshApi(shop, isForceRefresh); + Invoke(new Action(() => + { + shop.Message = "授权更新完成"; + BindShop(shop, selectIds); + })); + } + } + List> NewApiInfolsts = JsonHelper.DeserializeJsonToList>(JsonHelper.SerializeObject(GlobalConfig.ShopLoginList.Select(s => s.ApiAuthInfoList).ToList())); + foreach (var newLst in NewApiInfolsts) + { + if (newLst.FirstOrDefault()!= null) + { + var oldApiAuths = PddApiHelper.LstAuthInfos.FirstOrDefault(oldLst => oldLst.FirstOrDefault()?.ShopId == newLst.FirstOrDefault().ShopId); + if (oldApiAuths != null) + { + oldApiAuths.Clear(); + oldApiAuths.AddRange(newLst); + } + else + { + PddApiHelper.LstAuthInfos.Add(newLst); + } + } + } + + PddApiHelper.LstAuthInfos = PddApiHelper.LstAuthInfos.Where(a => a.OrderBy(o => o.AddTime).LastOrDefault().AddTime > DateTime.Now.AddDays(-30)).ToList(); + NaiBa.Util.Helper.ConfigHelper.SaveConfig("pdd_shop_api_auth_info_lists", PddApiHelper.LstAuthInfos); + Invoke(new Action(() => { pbShopLoading.Visible = false; })); + }); + } + + private void btnClearShopFilter_Click(object sender, EventArgs e) + { + txtShopGroupFilter.Text = ""; + txtShopNameFilter.Text = ""; + } + + private void btnFilter_Click(object sender, EventArgs e) + { + foreach(DataGridViewRow r in dgvShop.Rows) + { + r.Visible = true; + if (!string.IsNullOrWhiteSpace(txtShopNameFilter.Text)) + { + if (!r.Cells["colShopName"].Value.ParseToString().Contains(txtShopNameFilter.Text.Trim())) + r.Visible = false; + } + if (!string.IsNullOrWhiteSpace(txtShopGroupFilter.Text)) + { + if (!r.Cells["colShopNotes"].Value.ParseToString().Contains(txtShopGroupFilter.Text.Trim())) + r.Visible = false; + } + } + } + } + + public class PddAddActivityRule + { + /// + /// 是否报名活动(提交一个虚拟高倍率加价再通过活动价格实现商品原价) + /// + public bool IsSignActivity { get; set; } = true; + + /// + /// 保底价 + /// + public decimal LowPriceSkuLowestPrice { get; set; } = 5m; + + public bool IsUseExtCodePrice { get; set; } + + public bool sign20981 { get; set; } + public bool sign22347 { get; set; } + public bool sign15996 { get; set; } + public bool sign21365 { get; set; } + } +} diff --git a/TEMUKJD/PDDForms/ProductForms/ActivityForms/PDDAddActivityForm.resx b/TEMUKJD/PDDForms/ProductForms/ActivityForms/PDDAddActivityForm.resx new file mode 100644 index 0000000..8ffcdeb --- /dev/null +++ b/TEMUKJD/PDDForms/ProductForms/ActivityForms/PDDAddActivityForm.resx @@ -0,0 +1,198 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + \ No newline at end of file diff --git a/TEMUKJD/PDDForms/ProductForms/CouponForms/PDDProdActivityToolShouJianLiJianForm.Designer.cs b/TEMUKJD/PDDForms/ProductForms/CouponForms/PDDProdActivityToolShouJianLiJianForm.Designer.cs index c273206..86d82a9 100644 --- a/TEMUKJD/PDDForms/ProductForms/CouponForms/PDDProdActivityToolShouJianLiJianForm.Designer.cs +++ b/TEMUKJD/PDDForms/ProductForms/CouponForms/PDDProdActivityToolShouJianLiJianForm.Designer.cs @@ -65,24 +65,10 @@ namespace TemuKJD.PDDForms.ProductForms.CouponForms this.splitContainer3 = new System.Windows.Forms.SplitContainer(); this.splitContainer2 = new System.Windows.Forms.SplitContainer(); this.dgvShop = new TemuKJD.UserComponent.DataGridViewEx(); - this.colSelect = new System.Windows.Forms.DataGridViewCheckBoxColumn(); - this.colShopLoginName = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.colShopId = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.colShopName = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.colShopNotes = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.colSelectProduct = new System.Windows.Forms.DataGridViewLinkColumn(); - this.colLoginStatus = new System.Windows.Forms.DataGridViewLinkColumn(); - this.colCanUse = new System.Windows.Forms.DataGridViewCheckBoxColumn(); - this.colRemaining = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.colMessage = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.pbLoading = new System.Windows.Forms.PictureBox(); this.panel1 = new System.Windows.Forms.Panel(); this.ucSplitPage1 = new TemuKJD.UserControls.UcSplitPage(); this.dgvProduct = new TemuKJD.UserComponent.DataGridViewEx(); - this.splitContainer4 = new System.Windows.Forms.SplitContainer(); - this.statusBar = new TemuKJD.UserControls.StatusBarUserControl(); - this.btnClear = new DevComponents.DotNetBar.PanelEx(); - this.btnCancel = new DevComponents.DotNetBar.PanelEx(); this.colCheck = new System.Windows.Forms.DataGridViewCheckBoxColumn(); this.colSupplierId = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.colSupplierName = new System.Windows.Forms.DataGridViewTextBoxColumn(); @@ -100,6 +86,20 @@ namespace TemuKJD.PDDForms.ProductForms.CouponForms this.colSalesThirtyDays = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.colIsCanSet = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.colOpResult = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.splitContainer4 = new System.Windows.Forms.SplitContainer(); + this.statusBar = new TemuKJD.UserControls.StatusBarUserControl(); + this.btnClear = new DevComponents.DotNetBar.PanelEx(); + this.btnCancel = new DevComponents.DotNetBar.PanelEx(); + this.colSelect = new System.Windows.Forms.DataGridViewCheckBoxColumn(); + this.colShopLoginName = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colShopId = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colShopName = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colShopNotes = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colSelectProduct = new System.Windows.Forms.DataGridViewLinkColumn(); + this.colLoginStatus = new System.Windows.Forms.DataGridViewLinkColumn(); + this.colCanUse = new System.Windows.Forms.DataGridViewCheckBoxColumn(); + this.colRemaining = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colMessage = new System.Windows.Forms.DataGridViewTextBoxColumn(); ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit(); this.splitContainer1.Panel1.SuspendLayout(); this.splitContainer1.Panel2.SuspendLayout(); @@ -579,6 +579,7 @@ namespace TemuKJD.PDDForms.ProductForms.CouponForms this.dgvShop.AllowUserToDeleteRows = false; dataGridViewCellStyle1.BackColor = System.Drawing.Color.WhiteSmoke; this.dgvShop.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle1; + this.dgvShop.AutoRowNumber = true; this.dgvShop.BackgroundColor = System.Drawing.Color.White; this.dgvShop.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); dataGridViewCellStyle2.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; @@ -603,6 +604,7 @@ namespace TemuKJD.PDDForms.ProductForms.CouponForms this.colMessage}); this.dgvShop.Dock = System.Windows.Forms.DockStyle.Fill; this.dgvShop.Location = new System.Drawing.Point(4, 0); + this.dgvShop.MultiSelectCheckBox = true; this.dgvShop.Name = "dgvShop"; this.dgvShop.ReadOnly = true; this.dgvShop.RowHeadersWidth = 25; @@ -611,88 +613,6 @@ namespace TemuKJD.PDDForms.ProductForms.CouponForms this.dgvShop.TabIndex = 6; this.dgvShop.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dgvShop_CellContentClick); // - // colSelect - // - this.colSelect.HeaderText = "全选"; - this.colSelect.Name = "colSelect"; - this.colSelect.ReadOnly = true; - this.colSelect.Resizable = System.Windows.Forms.DataGridViewTriState.True; - this.colSelect.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; - this.colSelect.Width = 28; - // - // colShopLoginName - // - this.colShopLoginName.HeaderText = "店铺登录名"; - this.colShopLoginName.Name = "colShopLoginName"; - this.colShopLoginName.ReadOnly = true; - this.colShopLoginName.Visible = false; - // - // colShopId - // - this.colShopId.HeaderText = "店铺Id"; - this.colShopId.Name = "colShopId"; - this.colShopId.ReadOnly = true; - this.colShopId.Visible = false; - this.colShopId.Width = 55; - // - // colShopName - // - this.colShopName.FillWeight = 150F; - this.colShopName.HeaderText = "店铺名称"; - this.colShopName.Name = "colShopName"; - this.colShopName.ReadOnly = true; - this.colShopName.Resizable = System.Windows.Forms.DataGridViewTriState.True; - this.colShopName.Width = 70; - // - // colShopNotes - // - this.colShopNotes.HeaderText = "分组"; - this.colShopNotes.Name = "colShopNotes"; - this.colShopNotes.ReadOnly = true; - this.colShopNotes.Width = 70; - // - // colSelectProduct - // - this.colSelectProduct.HeaderText = "选择商品"; - this.colSelectProduct.Name = "colSelectProduct"; - this.colSelectProduct.ReadOnly = true; - this.colSelectProduct.Resizable = System.Windows.Forms.DataGridViewTriState.True; - this.colSelectProduct.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; - this.colSelectProduct.Visible = false; - this.colSelectProduct.Width = 62; - // - // colLoginStatus - // - this.colLoginStatus.HeaderText = "状态"; - this.colLoginStatus.Name = "colLoginStatus"; - this.colLoginStatus.ReadOnly = true; - this.colLoginStatus.Resizable = System.Windows.Forms.DataGridViewTriState.True; - this.colLoginStatus.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; - this.colLoginStatus.Width = 40; - // - // colCanUse - // - this.colCanUse.HeaderText = "可用"; - this.colCanUse.Name = "colCanUse"; - this.colCanUse.ReadOnly = true; - this.colCanUse.Resizable = System.Windows.Forms.DataGridViewTriState.True; - this.colCanUse.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; - this.colCanUse.Visible = false; - this.colCanUse.Width = 28; - // - // colRemaining - // - this.colRemaining.HeaderText = "月限额"; - this.colRemaining.Name = "colRemaining"; - this.colRemaining.ReadOnly = true; - this.colRemaining.Visible = false; - // - // colMessage - // - this.colMessage.HeaderText = "消息"; - this.colMessage.Name = "colMessage"; - this.colMessage.ReadOnly = true; - // // pbLoading // this.pbLoading.Anchor = System.Windows.Forms.AnchorStyles.None; @@ -737,6 +657,7 @@ namespace TemuKJD.PDDForms.ProductForms.CouponForms this.dgvProduct.AllowUserToDeleteRows = false; dataGridViewCellStyle3.BackColor = System.Drawing.Color.WhiteSmoke; this.dgvProduct.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle3; + this.dgvProduct.AutoRowNumber = true; this.dgvProduct.BackgroundColor = System.Drawing.Color.White; this.dgvProduct.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); dataGridViewCellStyle4.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; @@ -768,6 +689,7 @@ namespace TemuKJD.PDDForms.ProductForms.CouponForms this.colOpResult}); this.dgvProduct.Dock = System.Windows.Forms.DockStyle.Fill; this.dgvProduct.Location = new System.Drawing.Point(0, 0); + this.dgvProduct.MultiSelectCheckBox = true; this.dgvProduct.Name = "dgvProduct"; this.dgvProduct.ReadOnly = true; this.dgvProduct.RowTemplate.Height = 23; @@ -775,86 +697,6 @@ namespace TemuKJD.PDDForms.ProductForms.CouponForms this.dgvProduct.TabIndex = 190; this.dgvProduct.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dgvProduct_CellContentClick); // - // splitContainer4 - // - this.splitContainer4.Dock = System.Windows.Forms.DockStyle.Fill; - this.splitContainer4.FixedPanel = System.Windows.Forms.FixedPanel.Panel2; - this.splitContainer4.Location = new System.Drawing.Point(0, 0); - this.splitContainer4.Name = "splitContainer4"; - // - // splitContainer4.Panel1 - // - this.splitContainer4.Panel1.Controls.Add(this.statusBar); - // - // splitContainer4.Panel2 - // - this.splitContainer4.Panel2.Controls.Add(this.btnClear); - this.splitContainer4.Panel2.Controls.Add(this.btnCancel); - this.splitContainer4.Size = new System.Drawing.Size(1184, 26); - this.splitContainer4.SplitterDistance = 493; - this.splitContainer4.TabIndex = 3; - // - // statusBar - // - this.statusBar.BackColor = System.Drawing.Color.White; - this.statusBar.Dock = System.Windows.Forms.DockStyle.Fill; - this.statusBar.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.statusBar.Location = new System.Drawing.Point(0, 0); - this.statusBar.Margin = new System.Windows.Forms.Padding(0); - this.statusBar.Name = "statusBar"; - this.statusBar.Size = new System.Drawing.Size(493, 26); - this.statusBar.TabIndex = 2; - // - // btnClear - // - this.btnClear.Anchor = System.Windows.Forms.AnchorStyles.Right; - this.btnClear.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; - this.btnClear.Cursor = System.Windows.Forms.Cursors.Hand; - this.btnClear.DisabledBackColor = System.Drawing.Color.Empty; - this.btnClear.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.btnClear.Location = new System.Drawing.Point(4, 1); - this.btnClear.Name = "btnClear"; - this.btnClear.Size = new System.Drawing.Size(90, 21); - this.btnClear.Style.Alignment = System.Drawing.StringAlignment.Center; - this.btnClear.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); - this.btnClear.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); - this.btnClear.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; - this.btnClear.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash; - this.btnClear.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None; - this.btnClear.Style.ForeColor.Color = System.Drawing.Color.White; - this.btnClear.Style.GradientAngle = 90; - this.btnClear.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center; - this.btnClear.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); - this.btnClear.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); - this.btnClear.StyleMouseOver.ForeColor.Color = System.Drawing.Color.White; - this.btnClear.TabIndex = 440; - this.btnClear.Text = "清空结果"; - this.btnClear.Visible = false; - // - // btnCancel - // - this.btnCancel.CanvasColor = System.Drawing.SystemColors.Control; - this.btnCancel.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; - this.btnCancel.DisabledBackColor = System.Drawing.Color.Empty; - this.btnCancel.Location = new System.Drawing.Point(568, 1); - this.btnCancel.Name = "btnCancel"; - this.btnCancel.Size = new System.Drawing.Size(115, 21); - this.btnCancel.Style.Alignment = System.Drawing.StringAlignment.Center; - this.btnCancel.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255))))); - this.btnCancel.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255))))); - this.btnCancel.Style.Border = DevComponents.DotNetBar.eBorderType.SingleLine; - this.btnCancel.Style.BorderColor.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); - this.btnCancel.Style.ForeColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText; - this.btnCancel.Style.GradientAngle = 90; - this.btnCancel.StyleMouseDown.Alignment = System.Drawing.StringAlignment.Center; - this.btnCancel.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center; - this.btnCancel.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); - this.btnCancel.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); - this.btnCancel.StyleMouseOver.ForeColor.Color = System.Drawing.Color.White; - this.btnCancel.TabIndex = 668; - this.btnCancel.Text = "停止当前操作"; - this.btnCancel.Click += new System.EventHandler(this.btnCancel_Click); - // // colCheck // this.colCheck.Frozen = true; @@ -984,6 +826,168 @@ namespace TemuKJD.PDDForms.ProductForms.CouponForms this.colOpResult.ReadOnly = true; this.colOpResult.Width = 200; // + // splitContainer4 + // + this.splitContainer4.Dock = System.Windows.Forms.DockStyle.Fill; + this.splitContainer4.FixedPanel = System.Windows.Forms.FixedPanel.Panel2; + this.splitContainer4.Location = new System.Drawing.Point(0, 0); + this.splitContainer4.Name = "splitContainer4"; + // + // splitContainer4.Panel1 + // + this.splitContainer4.Panel1.Controls.Add(this.statusBar); + // + // splitContainer4.Panel2 + // + this.splitContainer4.Panel2.Controls.Add(this.btnClear); + this.splitContainer4.Panel2.Controls.Add(this.btnCancel); + this.splitContainer4.Size = new System.Drawing.Size(1184, 26); + this.splitContainer4.SplitterDistance = 493; + this.splitContainer4.TabIndex = 3; + // + // statusBar + // + this.statusBar.BackColor = System.Drawing.Color.White; + this.statusBar.Dock = System.Windows.Forms.DockStyle.Fill; + this.statusBar.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.statusBar.Location = new System.Drawing.Point(0, 0); + this.statusBar.Margin = new System.Windows.Forms.Padding(0); + this.statusBar.Name = "statusBar"; + this.statusBar.Size = new System.Drawing.Size(493, 26); + this.statusBar.TabIndex = 2; + // + // btnClear + // + this.btnClear.Anchor = System.Windows.Forms.AnchorStyles.Right; + this.btnClear.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; + this.btnClear.Cursor = System.Windows.Forms.Cursors.Hand; + this.btnClear.DisabledBackColor = System.Drawing.Color.Empty; + this.btnClear.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.btnClear.Location = new System.Drawing.Point(4, 1); + this.btnClear.Name = "btnClear"; + this.btnClear.Size = new System.Drawing.Size(90, 21); + this.btnClear.Style.Alignment = System.Drawing.StringAlignment.Center; + this.btnClear.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnClear.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnClear.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; + this.btnClear.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash; + this.btnClear.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None; + this.btnClear.Style.ForeColor.Color = System.Drawing.Color.White; + this.btnClear.Style.GradientAngle = 90; + this.btnClear.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center; + this.btnClear.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnClear.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnClear.StyleMouseOver.ForeColor.Color = System.Drawing.Color.White; + this.btnClear.TabIndex = 440; + this.btnClear.Text = "清空结果"; + this.btnClear.Visible = false; + // + // btnCancel + // + this.btnCancel.CanvasColor = System.Drawing.SystemColors.Control; + this.btnCancel.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; + this.btnCancel.DisabledBackColor = System.Drawing.Color.Empty; + this.btnCancel.Location = new System.Drawing.Point(568, 1); + this.btnCancel.Name = "btnCancel"; + this.btnCancel.Size = new System.Drawing.Size(115, 21); + this.btnCancel.Style.Alignment = System.Drawing.StringAlignment.Center; + this.btnCancel.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255))))); + this.btnCancel.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255))))); + this.btnCancel.Style.Border = DevComponents.DotNetBar.eBorderType.SingleLine; + this.btnCancel.Style.BorderColor.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnCancel.Style.ForeColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText; + this.btnCancel.Style.GradientAngle = 90; + this.btnCancel.StyleMouseDown.Alignment = System.Drawing.StringAlignment.Center; + this.btnCancel.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center; + this.btnCancel.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnCancel.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnCancel.StyleMouseOver.ForeColor.Color = System.Drawing.Color.White; + this.btnCancel.TabIndex = 668; + this.btnCancel.Text = "停止当前操作"; + this.btnCancel.Click += new System.EventHandler(this.btnCancel_Click); + // + // colSelect + // + this.colSelect.HeaderText = "全选"; + this.colSelect.Name = "colSelect"; + this.colSelect.ReadOnly = true; + this.colSelect.Resizable = System.Windows.Forms.DataGridViewTriState.True; + this.colSelect.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; + this.colSelect.Width = 28; + // + // colShopLoginName + // + this.colShopLoginName.HeaderText = "店铺登录名"; + this.colShopLoginName.Name = "colShopLoginName"; + this.colShopLoginName.ReadOnly = true; + this.colShopLoginName.Visible = false; + // + // colShopId + // + this.colShopId.HeaderText = "店铺Id"; + this.colShopId.Name = "colShopId"; + this.colShopId.ReadOnly = true; + this.colShopId.Visible = false; + this.colShopId.Width = 55; + // + // colShopName + // + this.colShopName.FillWeight = 150F; + this.colShopName.HeaderText = "店铺名称"; + this.colShopName.Name = "colShopName"; + this.colShopName.ReadOnly = true; + this.colShopName.Resizable = System.Windows.Forms.DataGridViewTriState.True; + this.colShopName.Width = 70; + // + // colShopNotes + // + this.colShopNotes.HeaderText = "备注"; + this.colShopNotes.Name = "colShopNotes"; + this.colShopNotes.ReadOnly = true; + this.colShopNotes.Width = 70; + // + // colSelectProduct + // + this.colSelectProduct.HeaderText = "选择商品"; + this.colSelectProduct.Name = "colSelectProduct"; + this.colSelectProduct.ReadOnly = true; + this.colSelectProduct.Resizable = System.Windows.Forms.DataGridViewTriState.True; + this.colSelectProduct.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; + this.colSelectProduct.Visible = false; + this.colSelectProduct.Width = 62; + // + // colLoginStatus + // + this.colLoginStatus.HeaderText = "状态"; + this.colLoginStatus.Name = "colLoginStatus"; + this.colLoginStatus.ReadOnly = true; + this.colLoginStatus.Resizable = System.Windows.Forms.DataGridViewTriState.True; + this.colLoginStatus.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; + this.colLoginStatus.Width = 40; + // + // colCanUse + // + this.colCanUse.HeaderText = "可用"; + this.colCanUse.Name = "colCanUse"; + this.colCanUse.ReadOnly = true; + this.colCanUse.Resizable = System.Windows.Forms.DataGridViewTriState.True; + this.colCanUse.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; + this.colCanUse.Visible = false; + this.colCanUse.Width = 28; + // + // colRemaining + // + this.colRemaining.HeaderText = "月限额"; + this.colRemaining.Name = "colRemaining"; + this.colRemaining.ReadOnly = true; + this.colRemaining.Visible = false; + // + // colMessage + // + this.colMessage.HeaderText = "消息"; + this.colMessage.Name = "colMessage"; + this.colMessage.ReadOnly = true; + // // PDDProdActivityToolShouJianLiJianForm // this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; @@ -991,6 +995,7 @@ namespace TemuKJD.PDDForms.ProductForms.CouponForms this.ClientSize = new System.Drawing.Size(1184, 521); 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 = "PDDProdActivityToolShouJianLiJianForm"; this.Text = "PDDProdActivityToolShouJianLiJianForm"; this.Load += new System.EventHandler(this.PDDProdActivityToolShouJianLiJianForm_Load); @@ -1058,16 +1063,6 @@ namespace TemuKJD.PDDForms.ProductForms.CouponForms private System.Windows.Forms.SplitContainer splitContainer3; private System.Windows.Forms.SplitContainer splitContainer2; private UserComponent.DataGridViewEx dgvShop; - private System.Windows.Forms.DataGridViewCheckBoxColumn colSelect; - private System.Windows.Forms.DataGridViewTextBoxColumn colShopLoginName; - private System.Windows.Forms.DataGridViewTextBoxColumn colShopId; - private System.Windows.Forms.DataGridViewTextBoxColumn colShopName; - private System.Windows.Forms.DataGridViewTextBoxColumn colShopNotes; - private System.Windows.Forms.DataGridViewLinkColumn colSelectProduct; - private System.Windows.Forms.DataGridViewLinkColumn colLoginStatus; - private System.Windows.Forms.DataGridViewCheckBoxColumn colCanUse; - private System.Windows.Forms.DataGridViewTextBoxColumn colRemaining; - private System.Windows.Forms.DataGridViewTextBoxColumn colMessage; private System.Windows.Forms.PictureBox pbLoading; private System.Windows.Forms.Panel panel1; private UserControls.UcSplitPage ucSplitPage1; @@ -1095,5 +1090,15 @@ namespace TemuKJD.PDDForms.ProductForms.CouponForms private System.Windows.Forms.DataGridViewTextBoxColumn colSalesThirtyDays; private System.Windows.Forms.DataGridViewTextBoxColumn colIsCanSet; private System.Windows.Forms.DataGridViewTextBoxColumn colOpResult; + private System.Windows.Forms.DataGridViewCheckBoxColumn colSelect; + private System.Windows.Forms.DataGridViewTextBoxColumn colShopLoginName; + private System.Windows.Forms.DataGridViewTextBoxColumn colShopId; + private System.Windows.Forms.DataGridViewTextBoxColumn colShopName; + private System.Windows.Forms.DataGridViewTextBoxColumn colShopNotes; + private System.Windows.Forms.DataGridViewLinkColumn colSelectProduct; + private System.Windows.Forms.DataGridViewLinkColumn colLoginStatus; + private System.Windows.Forms.DataGridViewCheckBoxColumn colCanUse; + private System.Windows.Forms.DataGridViewTextBoxColumn colRemaining; + private System.Windows.Forms.DataGridViewTextBoxColumn colMessage; } } \ No newline at end of file diff --git a/TEMUKJD/PDDForms/ProductForms/CouponForms/PDDProdActivityToolXianShiXianLiangForm.Designer.cs b/TEMUKJD/PDDForms/ProductForms/CouponForms/PDDProdActivityToolXianShiXianLiangForm.Designer.cs index c8fac11..69c22fb 100644 --- a/TEMUKJD/PDDForms/ProductForms/CouponForms/PDDProdActivityToolXianShiXianLiangForm.Designer.cs +++ b/TEMUKJD/PDDForms/ProductForms/CouponForms/PDDProdActivityToolXianShiXianLiangForm.Designer.cs @@ -67,16 +67,6 @@ namespace TemuKJD.PDDForms.ProductForms.CouponForms this.splitContainer3 = new System.Windows.Forms.SplitContainer(); this.splitContainer2 = new System.Windows.Forms.SplitContainer(); this.dgvShop = new TemuKJD.UserComponent.DataGridViewEx(); - this.colSelect = new System.Windows.Forms.DataGridViewCheckBoxColumn(); - this.colShopLoginName = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.colShopId = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.colShopName = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.colShopNotes = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.colSelectProduct = new System.Windows.Forms.DataGridViewLinkColumn(); - this.colLoginStatus = new System.Windows.Forms.DataGridViewLinkColumn(); - this.colCanUse = new System.Windows.Forms.DataGridViewCheckBoxColumn(); - this.colRemaining = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.colMessage = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.pbLoading = new System.Windows.Forms.PictureBox(); this.panel1 = new System.Windows.Forms.Panel(); this.ucSplitPage1 = new TemuKJD.UserControls.UcSplitPage(); @@ -101,6 +91,16 @@ namespace TemuKJD.PDDForms.ProductForms.CouponForms this.statusBar = new TemuKJD.UserControls.StatusBarUserControl(); this.btnClear = new DevComponents.DotNetBar.PanelEx(); this.btnCancel = new DevComponents.DotNetBar.PanelEx(); + this.colSelect = new System.Windows.Forms.DataGridViewCheckBoxColumn(); + this.colShopLoginName = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colShopId = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colShopName = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colShopNotes = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colSelectProduct = new System.Windows.Forms.DataGridViewLinkColumn(); + this.colLoginStatus = new System.Windows.Forms.DataGridViewLinkColumn(); + this.colCanUse = new System.Windows.Forms.DataGridViewCheckBoxColumn(); + this.colRemaining = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colMessage = new System.Windows.Forms.DataGridViewTextBoxColumn(); ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit(); this.splitContainer1.Panel1.SuspendLayout(); this.splitContainer1.Panel2.SuspendLayout(); @@ -606,6 +606,7 @@ namespace TemuKJD.PDDForms.ProductForms.CouponForms this.dgvShop.AllowUserToDeleteRows = false; dataGridViewCellStyle1.BackColor = System.Drawing.Color.WhiteSmoke; this.dgvShop.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle1; + this.dgvShop.AutoRowNumber = true; this.dgvShop.BackgroundColor = System.Drawing.Color.White; this.dgvShop.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); dataGridViewCellStyle2.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; @@ -630,6 +631,7 @@ namespace TemuKJD.PDDForms.ProductForms.CouponForms this.colMessage}); this.dgvShop.Dock = System.Windows.Forms.DockStyle.Fill; this.dgvShop.Location = new System.Drawing.Point(4, 0); + this.dgvShop.MultiSelectCheckBox = true; this.dgvShop.Name = "dgvShop"; this.dgvShop.ReadOnly = true; this.dgvShop.RowHeadersWidth = 25; @@ -638,88 +640,6 @@ namespace TemuKJD.PDDForms.ProductForms.CouponForms this.dgvShop.TabIndex = 6; this.dgvShop.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dgvShop_CellContentClick); // - // colSelect - // - this.colSelect.HeaderText = "全选"; - this.colSelect.Name = "colSelect"; - this.colSelect.ReadOnly = true; - this.colSelect.Resizable = System.Windows.Forms.DataGridViewTriState.True; - this.colSelect.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; - this.colSelect.Width = 28; - // - // colShopLoginName - // - this.colShopLoginName.HeaderText = "店铺登录名"; - this.colShopLoginName.Name = "colShopLoginName"; - this.colShopLoginName.ReadOnly = true; - this.colShopLoginName.Visible = false; - // - // colShopId - // - this.colShopId.HeaderText = "店铺Id"; - this.colShopId.Name = "colShopId"; - this.colShopId.ReadOnly = true; - this.colShopId.Visible = false; - this.colShopId.Width = 55; - // - // colShopName - // - this.colShopName.FillWeight = 150F; - this.colShopName.HeaderText = "店铺名称"; - this.colShopName.Name = "colShopName"; - this.colShopName.ReadOnly = true; - this.colShopName.Resizable = System.Windows.Forms.DataGridViewTriState.True; - this.colShopName.Width = 70; - // - // colShopNotes - // - this.colShopNotes.HeaderText = "分组"; - this.colShopNotes.Name = "colShopNotes"; - this.colShopNotes.ReadOnly = true; - this.colShopNotes.Width = 70; - // - // colSelectProduct - // - this.colSelectProduct.HeaderText = "选择商品"; - this.colSelectProduct.Name = "colSelectProduct"; - this.colSelectProduct.ReadOnly = true; - this.colSelectProduct.Resizable = System.Windows.Forms.DataGridViewTriState.True; - this.colSelectProduct.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; - this.colSelectProduct.Visible = false; - this.colSelectProduct.Width = 62; - // - // colLoginStatus - // - this.colLoginStatus.HeaderText = "状态"; - this.colLoginStatus.Name = "colLoginStatus"; - this.colLoginStatus.ReadOnly = true; - this.colLoginStatus.Resizable = System.Windows.Forms.DataGridViewTriState.True; - this.colLoginStatus.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; - this.colLoginStatus.Width = 40; - // - // colCanUse - // - this.colCanUse.HeaderText = "可用"; - this.colCanUse.Name = "colCanUse"; - this.colCanUse.ReadOnly = true; - this.colCanUse.Resizable = System.Windows.Forms.DataGridViewTriState.True; - this.colCanUse.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; - this.colCanUse.Visible = false; - this.colCanUse.Width = 28; - // - // colRemaining - // - this.colRemaining.HeaderText = "月限额"; - this.colRemaining.Name = "colRemaining"; - this.colRemaining.ReadOnly = true; - this.colRemaining.Visible = false; - // - // colMessage - // - this.colMessage.HeaderText = "消息"; - this.colMessage.Name = "colMessage"; - this.colMessage.ReadOnly = true; - // // pbLoading // this.pbLoading.Anchor = System.Windows.Forms.AnchorStyles.None; @@ -764,6 +684,7 @@ namespace TemuKJD.PDDForms.ProductForms.CouponForms this.dgvProduct.AllowUserToDeleteRows = false; dataGridViewCellStyle3.BackColor = System.Drawing.Color.WhiteSmoke; this.dgvProduct.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle3; + this.dgvProduct.AutoRowNumber = true; this.dgvProduct.BackgroundColor = System.Drawing.Color.White; this.dgvProduct.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); dataGridViewCellStyle4.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; @@ -794,6 +715,7 @@ namespace TemuKJD.PDDForms.ProductForms.CouponForms this.colOpResult}); this.dgvProduct.Dock = System.Windows.Forms.DockStyle.Fill; this.dgvProduct.Location = new System.Drawing.Point(0, 0); + this.dgvProduct.MultiSelectCheckBox = true; this.dgvProduct.Name = "dgvProduct"; this.dgvProduct.ReadOnly = true; this.dgvProduct.RowTemplate.Height = 23; @@ -1003,6 +925,88 @@ namespace TemuKJD.PDDForms.ProductForms.CouponForms this.btnCancel.Text = "停止当前操作"; this.btnCancel.Click += new System.EventHandler(this.btnCancel_Click); // + // colSelect + // + this.colSelect.HeaderText = "全选"; + this.colSelect.Name = "colSelect"; + this.colSelect.ReadOnly = true; + this.colSelect.Resizable = System.Windows.Forms.DataGridViewTriState.True; + this.colSelect.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; + this.colSelect.Width = 28; + // + // colShopLoginName + // + this.colShopLoginName.HeaderText = "店铺登录名"; + this.colShopLoginName.Name = "colShopLoginName"; + this.colShopLoginName.ReadOnly = true; + this.colShopLoginName.Visible = false; + // + // colShopId + // + this.colShopId.HeaderText = "店铺Id"; + this.colShopId.Name = "colShopId"; + this.colShopId.ReadOnly = true; + this.colShopId.Visible = false; + this.colShopId.Width = 55; + // + // colShopName + // + this.colShopName.FillWeight = 150F; + this.colShopName.HeaderText = "店铺名称"; + this.colShopName.Name = "colShopName"; + this.colShopName.ReadOnly = true; + this.colShopName.Resizable = System.Windows.Forms.DataGridViewTriState.True; + this.colShopName.Width = 70; + // + // colShopNotes + // + this.colShopNotes.HeaderText = "备注"; + this.colShopNotes.Name = "colShopNotes"; + this.colShopNotes.ReadOnly = true; + this.colShopNotes.Width = 70; + // + // colSelectProduct + // + this.colSelectProduct.HeaderText = "选择商品"; + this.colSelectProduct.Name = "colSelectProduct"; + this.colSelectProduct.ReadOnly = true; + this.colSelectProduct.Resizable = System.Windows.Forms.DataGridViewTriState.True; + this.colSelectProduct.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; + this.colSelectProduct.Visible = false; + this.colSelectProduct.Width = 62; + // + // colLoginStatus + // + this.colLoginStatus.HeaderText = "状态"; + this.colLoginStatus.Name = "colLoginStatus"; + this.colLoginStatus.ReadOnly = true; + this.colLoginStatus.Resizable = System.Windows.Forms.DataGridViewTriState.True; + this.colLoginStatus.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; + this.colLoginStatus.Width = 40; + // + // colCanUse + // + this.colCanUse.HeaderText = "可用"; + this.colCanUse.Name = "colCanUse"; + this.colCanUse.ReadOnly = true; + this.colCanUse.Resizable = System.Windows.Forms.DataGridViewTriState.True; + this.colCanUse.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; + this.colCanUse.Visible = false; + this.colCanUse.Width = 28; + // + // colRemaining + // + this.colRemaining.HeaderText = "月限额"; + this.colRemaining.Name = "colRemaining"; + this.colRemaining.ReadOnly = true; + this.colRemaining.Visible = false; + // + // colMessage + // + this.colMessage.HeaderText = "消息"; + this.colMessage.Name = "colMessage"; + this.colMessage.ReadOnly = true; + // // PDDProdActivityToolXianShiXianLiangForm // this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; @@ -1010,6 +1014,7 @@ namespace TemuKJD.PDDForms.ProductForms.CouponForms this.ClientSize = new System.Drawing.Size(1184, 521); 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 = "PDDProdActivityToolXianShiXianLiangForm"; this.Text = "PDDProdActivityToolXianShiXianLiangForm"; this.Load += new System.EventHandler(this.PDDProdActivityToolXianShiXianLiangForm_Load); @@ -1066,16 +1071,6 @@ namespace TemuKJD.PDDForms.ProductForms.CouponForms private System.Windows.Forms.SplitContainer splitContainer3; private System.Windows.Forms.SplitContainer splitContainer2; private UserComponent.DataGridViewEx dgvShop; - private System.Windows.Forms.DataGridViewCheckBoxColumn colSelect; - private System.Windows.Forms.DataGridViewTextBoxColumn colShopLoginName; - private System.Windows.Forms.DataGridViewTextBoxColumn colShopId; - private System.Windows.Forms.DataGridViewTextBoxColumn colShopName; - private System.Windows.Forms.DataGridViewTextBoxColumn colShopNotes; - private System.Windows.Forms.DataGridViewLinkColumn colSelectProduct; - private System.Windows.Forms.DataGridViewLinkColumn colLoginStatus; - private System.Windows.Forms.DataGridViewCheckBoxColumn colCanUse; - private System.Windows.Forms.DataGridViewTextBoxColumn colRemaining; - private System.Windows.Forms.DataGridViewTextBoxColumn colMessage; private System.Windows.Forms.PictureBox pbLoading; private System.Windows.Forms.Panel panel1; private UserControls.UcSplitPage ucSplitPage1; @@ -1118,5 +1113,15 @@ namespace TemuKJD.PDDForms.ProductForms.CouponForms private UserComponent.UcGroupBoxEx ucGroupBoxEx3; private System.Windows.Forms.Label label3; private System.Windows.Forms.NumericUpDown numMinSaleCount; + private System.Windows.Forms.DataGridViewCheckBoxColumn colSelect; + private System.Windows.Forms.DataGridViewTextBoxColumn colShopLoginName; + private System.Windows.Forms.DataGridViewTextBoxColumn colShopId; + private System.Windows.Forms.DataGridViewTextBoxColumn colShopName; + private System.Windows.Forms.DataGridViewTextBoxColumn colShopNotes; + private System.Windows.Forms.DataGridViewLinkColumn colSelectProduct; + private System.Windows.Forms.DataGridViewLinkColumn colLoginStatus; + private System.Windows.Forms.DataGridViewCheckBoxColumn colCanUse; + private System.Windows.Forms.DataGridViewTextBoxColumn colRemaining; + private System.Windows.Forms.DataGridViewTextBoxColumn colMessage; } } \ No newline at end of file diff --git a/TEMUKJD/PDDForms/ProductForms/CouponForms/PDDProdCouponJingXiForm.Designer.cs b/TEMUKJD/PDDForms/ProductForms/CouponForms/PDDProdCouponJingXiForm.Designer.cs index 1f0438a..3977da6 100644 --- a/TEMUKJD/PDDForms/ProductForms/CouponForms/PDDProdCouponJingXiForm.Designer.cs +++ b/TEMUKJD/PDDForms/ProductForms/CouponForms/PDDProdCouponJingXiForm.Designer.cs @@ -58,24 +58,10 @@ namespace TemuKJD.PDDForms.ProductForms.CouponForms this.splitContainer3 = new System.Windows.Forms.SplitContainer(); this.splitContainer2 = new System.Windows.Forms.SplitContainer(); this.dgvShop = new TemuKJD.UserComponent.DataGridViewEx(); - this.colSelect = new System.Windows.Forms.DataGridViewCheckBoxColumn(); - this.colShopLoginName = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.colShopId = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.colShopName = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.colShopNotes = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.colSelectProduct = new System.Windows.Forms.DataGridViewLinkColumn(); - this.colLoginStatus = new System.Windows.Forms.DataGridViewLinkColumn(); - this.colCanUse = new System.Windows.Forms.DataGridViewCheckBoxColumn(); - this.colRemaining = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.colMessage = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.pbLoading = new System.Windows.Forms.PictureBox(); this.panel1 = new System.Windows.Forms.Panel(); this.ucSplitPage1 = new TemuKJD.UserControls.UcSplitPage(); this.dgvProduct = new TemuKJD.UserComponent.DataGridViewEx(); - this.splitContainer4 = new System.Windows.Forms.SplitContainer(); - this.statusBar = new TemuKJD.UserControls.StatusBarUserControl(); - this.btnClear = new DevComponents.DotNetBar.PanelEx(); - this.btnCancel = new DevComponents.DotNetBar.PanelEx(); this.colCheck = new System.Windows.Forms.DataGridViewCheckBoxColumn(); this.colSupplierId = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.colSupplierName = new System.Windows.Forms.DataGridViewTextBoxColumn(); @@ -91,6 +77,20 @@ namespace TemuKJD.PDDForms.ProductForms.CouponForms this.colSalesThirtyDays = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.colIsCanSet = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.colOpResult = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.splitContainer4 = new System.Windows.Forms.SplitContainer(); + this.statusBar = new TemuKJD.UserControls.StatusBarUserControl(); + this.btnClear = new DevComponents.DotNetBar.PanelEx(); + this.btnCancel = new DevComponents.DotNetBar.PanelEx(); + this.colSelect = new System.Windows.Forms.DataGridViewCheckBoxColumn(); + this.colShopLoginName = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colShopId = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colShopName = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colShopNotes = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colSelectProduct = new System.Windows.Forms.DataGridViewLinkColumn(); + this.colLoginStatus = new System.Windows.Forms.DataGridViewLinkColumn(); + this.colCanUse = new System.Windows.Forms.DataGridViewCheckBoxColumn(); + this.colRemaining = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colMessage = new System.Windows.Forms.DataGridViewTextBoxColumn(); ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit(); this.splitContainer1.Panel1.SuspendLayout(); this.splitContainer1.Panel2.SuspendLayout(); @@ -452,6 +452,7 @@ namespace TemuKJD.PDDForms.ProductForms.CouponForms this.dgvShop.AllowUserToDeleteRows = false; dataGridViewCellStyle1.BackColor = System.Drawing.Color.WhiteSmoke; this.dgvShop.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle1; + this.dgvShop.AutoRowNumber = true; this.dgvShop.BackgroundColor = System.Drawing.Color.White; this.dgvShop.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); dataGridViewCellStyle2.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; @@ -476,6 +477,7 @@ namespace TemuKJD.PDDForms.ProductForms.CouponForms this.colMessage}); this.dgvShop.Dock = System.Windows.Forms.DockStyle.Fill; this.dgvShop.Location = new System.Drawing.Point(4, 0); + this.dgvShop.MultiSelectCheckBox = true; this.dgvShop.Name = "dgvShop"; this.dgvShop.ReadOnly = true; this.dgvShop.RowHeadersWidth = 25; @@ -484,88 +486,6 @@ namespace TemuKJD.PDDForms.ProductForms.CouponForms this.dgvShop.TabIndex = 6; this.dgvShop.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dgvShop_CellContentClick); // - // colSelect - // - this.colSelect.HeaderText = "全选"; - this.colSelect.Name = "colSelect"; - this.colSelect.ReadOnly = true; - this.colSelect.Resizable = System.Windows.Forms.DataGridViewTriState.True; - this.colSelect.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; - this.colSelect.Width = 28; - // - // colShopLoginName - // - this.colShopLoginName.HeaderText = "店铺登录名"; - this.colShopLoginName.Name = "colShopLoginName"; - this.colShopLoginName.ReadOnly = true; - this.colShopLoginName.Visible = false; - // - // colShopId - // - this.colShopId.HeaderText = "店铺Id"; - this.colShopId.Name = "colShopId"; - this.colShopId.ReadOnly = true; - this.colShopId.Visible = false; - this.colShopId.Width = 55; - // - // colShopName - // - this.colShopName.FillWeight = 150F; - this.colShopName.HeaderText = "店铺名称"; - this.colShopName.Name = "colShopName"; - this.colShopName.ReadOnly = true; - this.colShopName.Resizable = System.Windows.Forms.DataGridViewTriState.True; - this.colShopName.Width = 70; - // - // colShopNotes - // - this.colShopNotes.HeaderText = "分组"; - this.colShopNotes.Name = "colShopNotes"; - this.colShopNotes.ReadOnly = true; - this.colShopNotes.Width = 70; - // - // colSelectProduct - // - this.colSelectProduct.HeaderText = "选择商品"; - this.colSelectProduct.Name = "colSelectProduct"; - this.colSelectProduct.ReadOnly = true; - this.colSelectProduct.Resizable = System.Windows.Forms.DataGridViewTriState.True; - this.colSelectProduct.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; - this.colSelectProduct.Visible = false; - this.colSelectProduct.Width = 62; - // - // colLoginStatus - // - this.colLoginStatus.HeaderText = "状态"; - this.colLoginStatus.Name = "colLoginStatus"; - this.colLoginStatus.ReadOnly = true; - this.colLoginStatus.Resizable = System.Windows.Forms.DataGridViewTriState.True; - this.colLoginStatus.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; - this.colLoginStatus.Width = 40; - // - // colCanUse - // - this.colCanUse.HeaderText = "可用"; - this.colCanUse.Name = "colCanUse"; - this.colCanUse.ReadOnly = true; - this.colCanUse.Resizable = System.Windows.Forms.DataGridViewTriState.True; - this.colCanUse.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; - this.colCanUse.Visible = false; - this.colCanUse.Width = 28; - // - // colRemaining - // - this.colRemaining.HeaderText = "月限额"; - this.colRemaining.Name = "colRemaining"; - this.colRemaining.ReadOnly = true; - this.colRemaining.Visible = false; - // - // colMessage - // - this.colMessage.HeaderText = "消息"; - this.colMessage.Name = "colMessage"; - this.colMessage.ReadOnly = true; - // // pbLoading // this.pbLoading.Anchor = System.Windows.Forms.AnchorStyles.None; @@ -610,6 +530,7 @@ namespace TemuKJD.PDDForms.ProductForms.CouponForms this.dgvProduct.AllowUserToDeleteRows = false; dataGridViewCellStyle3.BackColor = System.Drawing.Color.WhiteSmoke; this.dgvProduct.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle3; + this.dgvProduct.AutoRowNumber = true; this.dgvProduct.BackgroundColor = System.Drawing.Color.White; this.dgvProduct.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); dataGridViewCellStyle4.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; @@ -639,6 +560,7 @@ namespace TemuKJD.PDDForms.ProductForms.CouponForms this.colOpResult}); this.dgvProduct.Dock = System.Windows.Forms.DockStyle.Fill; this.dgvProduct.Location = new System.Drawing.Point(0, 0); + this.dgvProduct.MultiSelectCheckBox = true; this.dgvProduct.Name = "dgvProduct"; this.dgvProduct.ReadOnly = true; this.dgvProduct.RowTemplate.Height = 23; @@ -646,86 +568,6 @@ namespace TemuKJD.PDDForms.ProductForms.CouponForms this.dgvProduct.TabIndex = 187; this.dgvProduct.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dgvProduct_CellContentClick); // - // splitContainer4 - // - this.splitContainer4.Dock = System.Windows.Forms.DockStyle.Fill; - this.splitContainer4.FixedPanel = System.Windows.Forms.FixedPanel.Panel2; - this.splitContainer4.Location = new System.Drawing.Point(0, 0); - this.splitContainer4.Name = "splitContainer4"; - // - // splitContainer4.Panel1 - // - this.splitContainer4.Panel1.Controls.Add(this.statusBar); - // - // splitContainer4.Panel2 - // - this.splitContainer4.Panel2.Controls.Add(this.btnClear); - this.splitContainer4.Panel2.Controls.Add(this.btnCancel); - this.splitContainer4.Size = new System.Drawing.Size(1184, 26); - this.splitContainer4.SplitterDistance = 493; - this.splitContainer4.TabIndex = 3; - // - // statusBar - // - this.statusBar.BackColor = System.Drawing.Color.White; - this.statusBar.Dock = System.Windows.Forms.DockStyle.Fill; - this.statusBar.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.statusBar.Location = new System.Drawing.Point(0, 0); - this.statusBar.Margin = new System.Windows.Forms.Padding(0); - this.statusBar.Name = "statusBar"; - this.statusBar.Size = new System.Drawing.Size(493, 26); - this.statusBar.TabIndex = 2; - // - // btnClear - // - this.btnClear.Anchor = System.Windows.Forms.AnchorStyles.Right; - this.btnClear.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; - this.btnClear.Cursor = System.Windows.Forms.Cursors.Hand; - this.btnClear.DisabledBackColor = System.Drawing.Color.Empty; - this.btnClear.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.btnClear.Location = new System.Drawing.Point(4, 1); - this.btnClear.Name = "btnClear"; - this.btnClear.Size = new System.Drawing.Size(90, 21); - this.btnClear.Style.Alignment = System.Drawing.StringAlignment.Center; - this.btnClear.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); - this.btnClear.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); - this.btnClear.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; - this.btnClear.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash; - this.btnClear.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None; - this.btnClear.Style.ForeColor.Color = System.Drawing.Color.White; - this.btnClear.Style.GradientAngle = 90; - this.btnClear.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center; - this.btnClear.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); - this.btnClear.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); - this.btnClear.StyleMouseOver.ForeColor.Color = System.Drawing.Color.White; - this.btnClear.TabIndex = 440; - this.btnClear.Text = "清空结果"; - this.btnClear.Visible = false; - // - // btnCancel - // - this.btnCancel.CanvasColor = System.Drawing.SystemColors.Control; - this.btnCancel.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; - this.btnCancel.DisabledBackColor = System.Drawing.Color.Empty; - this.btnCancel.Location = new System.Drawing.Point(568, 1); - this.btnCancel.Name = "btnCancel"; - this.btnCancel.Size = new System.Drawing.Size(115, 21); - this.btnCancel.Style.Alignment = System.Drawing.StringAlignment.Center; - this.btnCancel.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255))))); - this.btnCancel.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255))))); - this.btnCancel.Style.Border = DevComponents.DotNetBar.eBorderType.SingleLine; - this.btnCancel.Style.BorderColor.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); - this.btnCancel.Style.ForeColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText; - this.btnCancel.Style.GradientAngle = 90; - this.btnCancel.StyleMouseDown.Alignment = System.Drawing.StringAlignment.Center; - this.btnCancel.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center; - this.btnCancel.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); - this.btnCancel.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); - this.btnCancel.StyleMouseOver.ForeColor.Color = System.Drawing.Color.White; - this.btnCancel.TabIndex = 668; - this.btnCancel.Text = "停止当前操作"; - this.btnCancel.Click += new System.EventHandler(this.btnCancel_Click); - // // colCheck // this.colCheck.Frozen = true; @@ -840,6 +682,168 @@ namespace TemuKJD.PDDForms.ProductForms.CouponForms this.colOpResult.ReadOnly = true; this.colOpResult.Width = 200; // + // splitContainer4 + // + this.splitContainer4.Dock = System.Windows.Forms.DockStyle.Fill; + this.splitContainer4.FixedPanel = System.Windows.Forms.FixedPanel.Panel2; + this.splitContainer4.Location = new System.Drawing.Point(0, 0); + this.splitContainer4.Name = "splitContainer4"; + // + // splitContainer4.Panel1 + // + this.splitContainer4.Panel1.Controls.Add(this.statusBar); + // + // splitContainer4.Panel2 + // + this.splitContainer4.Panel2.Controls.Add(this.btnClear); + this.splitContainer4.Panel2.Controls.Add(this.btnCancel); + this.splitContainer4.Size = new System.Drawing.Size(1184, 26); + this.splitContainer4.SplitterDistance = 493; + this.splitContainer4.TabIndex = 3; + // + // statusBar + // + this.statusBar.BackColor = System.Drawing.Color.White; + this.statusBar.Dock = System.Windows.Forms.DockStyle.Fill; + this.statusBar.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.statusBar.Location = new System.Drawing.Point(0, 0); + this.statusBar.Margin = new System.Windows.Forms.Padding(0); + this.statusBar.Name = "statusBar"; + this.statusBar.Size = new System.Drawing.Size(493, 26); + this.statusBar.TabIndex = 2; + // + // btnClear + // + this.btnClear.Anchor = System.Windows.Forms.AnchorStyles.Right; + this.btnClear.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; + this.btnClear.Cursor = System.Windows.Forms.Cursors.Hand; + this.btnClear.DisabledBackColor = System.Drawing.Color.Empty; + this.btnClear.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.btnClear.Location = new System.Drawing.Point(4, 1); + this.btnClear.Name = "btnClear"; + this.btnClear.Size = new System.Drawing.Size(90, 21); + this.btnClear.Style.Alignment = System.Drawing.StringAlignment.Center; + this.btnClear.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnClear.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnClear.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; + this.btnClear.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash; + this.btnClear.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None; + this.btnClear.Style.ForeColor.Color = System.Drawing.Color.White; + this.btnClear.Style.GradientAngle = 90; + this.btnClear.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center; + this.btnClear.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnClear.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnClear.StyleMouseOver.ForeColor.Color = System.Drawing.Color.White; + this.btnClear.TabIndex = 440; + this.btnClear.Text = "清空结果"; + this.btnClear.Visible = false; + // + // btnCancel + // + this.btnCancel.CanvasColor = System.Drawing.SystemColors.Control; + this.btnCancel.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; + this.btnCancel.DisabledBackColor = System.Drawing.Color.Empty; + this.btnCancel.Location = new System.Drawing.Point(568, 1); + this.btnCancel.Name = "btnCancel"; + this.btnCancel.Size = new System.Drawing.Size(115, 21); + this.btnCancel.Style.Alignment = System.Drawing.StringAlignment.Center; + this.btnCancel.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255))))); + this.btnCancel.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255))))); + this.btnCancel.Style.Border = DevComponents.DotNetBar.eBorderType.SingleLine; + this.btnCancel.Style.BorderColor.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnCancel.Style.ForeColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText; + this.btnCancel.Style.GradientAngle = 90; + this.btnCancel.StyleMouseDown.Alignment = System.Drawing.StringAlignment.Center; + this.btnCancel.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center; + this.btnCancel.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnCancel.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnCancel.StyleMouseOver.ForeColor.Color = System.Drawing.Color.White; + this.btnCancel.TabIndex = 668; + this.btnCancel.Text = "停止当前操作"; + this.btnCancel.Click += new System.EventHandler(this.btnCancel_Click); + // + // colSelect + // + this.colSelect.HeaderText = "全选"; + this.colSelect.Name = "colSelect"; + this.colSelect.ReadOnly = true; + this.colSelect.Resizable = System.Windows.Forms.DataGridViewTriState.True; + this.colSelect.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; + this.colSelect.Width = 28; + // + // colShopLoginName + // + this.colShopLoginName.HeaderText = "店铺登录名"; + this.colShopLoginName.Name = "colShopLoginName"; + this.colShopLoginName.ReadOnly = true; + this.colShopLoginName.Visible = false; + // + // colShopId + // + this.colShopId.HeaderText = "店铺Id"; + this.colShopId.Name = "colShopId"; + this.colShopId.ReadOnly = true; + this.colShopId.Visible = false; + this.colShopId.Width = 55; + // + // colShopName + // + this.colShopName.FillWeight = 150F; + this.colShopName.HeaderText = "店铺名称"; + this.colShopName.Name = "colShopName"; + this.colShopName.ReadOnly = true; + this.colShopName.Resizable = System.Windows.Forms.DataGridViewTriState.True; + this.colShopName.Width = 70; + // + // colShopNotes + // + this.colShopNotes.HeaderText = "备注"; + this.colShopNotes.Name = "colShopNotes"; + this.colShopNotes.ReadOnly = true; + this.colShopNotes.Width = 70; + // + // colSelectProduct + // + this.colSelectProduct.HeaderText = "选择商品"; + this.colSelectProduct.Name = "colSelectProduct"; + this.colSelectProduct.ReadOnly = true; + this.colSelectProduct.Resizable = System.Windows.Forms.DataGridViewTriState.True; + this.colSelectProduct.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; + this.colSelectProduct.Visible = false; + this.colSelectProduct.Width = 62; + // + // colLoginStatus + // + this.colLoginStatus.HeaderText = "状态"; + this.colLoginStatus.Name = "colLoginStatus"; + this.colLoginStatus.ReadOnly = true; + this.colLoginStatus.Resizable = System.Windows.Forms.DataGridViewTriState.True; + this.colLoginStatus.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; + this.colLoginStatus.Width = 40; + // + // colCanUse + // + this.colCanUse.HeaderText = "可用"; + this.colCanUse.Name = "colCanUse"; + this.colCanUse.ReadOnly = true; + this.colCanUse.Resizable = System.Windows.Forms.DataGridViewTriState.True; + this.colCanUse.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; + this.colCanUse.Visible = false; + this.colCanUse.Width = 28; + // + // colRemaining + // + this.colRemaining.HeaderText = "月限额"; + this.colRemaining.Name = "colRemaining"; + this.colRemaining.ReadOnly = true; + this.colRemaining.Visible = false; + // + // colMessage + // + this.colMessage.HeaderText = "消息"; + this.colMessage.Name = "colMessage"; + this.colMessage.ReadOnly = true; + // // PDDProdCouponJingXiForm // this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; @@ -847,6 +851,7 @@ namespace TemuKJD.PDDForms.ProductForms.CouponForms this.ClientSize = new System.Drawing.Size(1184, 521); 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 = "PDDProdCouponJingXiForm"; this.Text = "PDDProdCouponJingXiForm"; this.Load += new System.EventHandler(this.PDDProductCouponForm_Load); @@ -888,16 +893,6 @@ namespace TemuKJD.PDDForms.ProductForms.CouponForms private System.Windows.Forms.SplitContainer splitContainer3; private System.Windows.Forms.SplitContainer splitContainer2; private UserComponent.DataGridViewEx dgvShop; - private System.Windows.Forms.DataGridViewCheckBoxColumn colSelect; - private System.Windows.Forms.DataGridViewTextBoxColumn colShopLoginName; - private System.Windows.Forms.DataGridViewTextBoxColumn colShopId; - private System.Windows.Forms.DataGridViewTextBoxColumn colShopName; - private System.Windows.Forms.DataGridViewTextBoxColumn colShopNotes; - private System.Windows.Forms.DataGridViewLinkColumn colSelectProduct; - private System.Windows.Forms.DataGridViewLinkColumn colLoginStatus; - private System.Windows.Forms.DataGridViewCheckBoxColumn colCanUse; - private System.Windows.Forms.DataGridViewTextBoxColumn colRemaining; - private System.Windows.Forms.DataGridViewTextBoxColumn colMessage; private System.Windows.Forms.PictureBox pbLoading; private System.Windows.Forms.Panel panel1; private UserControls.UcSplitPage ucSplitPage1; @@ -938,5 +933,15 @@ namespace TemuKJD.PDDForms.ProductForms.CouponForms private System.Windows.Forms.DataGridViewTextBoxColumn colSalesThirtyDays; private System.Windows.Forms.DataGridViewTextBoxColumn colIsCanSet; private System.Windows.Forms.DataGridViewTextBoxColumn colOpResult; + private System.Windows.Forms.DataGridViewCheckBoxColumn colSelect; + private System.Windows.Forms.DataGridViewTextBoxColumn colShopLoginName; + private System.Windows.Forms.DataGridViewTextBoxColumn colShopId; + private System.Windows.Forms.DataGridViewTextBoxColumn colShopName; + private System.Windows.Forms.DataGridViewTextBoxColumn colShopNotes; + private System.Windows.Forms.DataGridViewLinkColumn colSelectProduct; + private System.Windows.Forms.DataGridViewLinkColumn colLoginStatus; + private System.Windows.Forms.DataGridViewCheckBoxColumn colCanUse; + private System.Windows.Forms.DataGridViewTextBoxColumn colRemaining; + private System.Windows.Forms.DataGridViewTextBoxColumn colMessage; } } \ No newline at end of file diff --git a/TEMUKJD/PDDForms/ProductForms/CouponForms/PDDProdCouponLingQuanZhongXinForm.Designer.cs b/TEMUKJD/PDDForms/ProductForms/CouponForms/PDDProdCouponLingQuanZhongXinForm.Designer.cs index c4626a5..603d1a6 100644 --- a/TEMUKJD/PDDForms/ProductForms/CouponForms/PDDProdCouponLingQuanZhongXinForm.Designer.cs +++ b/TEMUKJD/PDDForms/ProductForms/CouponForms/PDDProdCouponLingQuanZhongXinForm.Designer.cs @@ -38,20 +38,25 @@ namespace TemuKJD.PDDForms.ProductForms.CouponForms this.splitContainer3 = new System.Windows.Forms.SplitContainer(); this.splitContainer2 = new System.Windows.Forms.SplitContainer(); this.dgvShop = new TemuKJD.UserComponent.DataGridViewEx(); - this.colSelect = new System.Windows.Forms.DataGridViewCheckBoxColumn(); - this.colShopLoginName = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.colShopId = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.colShopName = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.colShopNotes = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.colSelectProduct = new System.Windows.Forms.DataGridViewLinkColumn(); - this.colLoginStatus = new System.Windows.Forms.DataGridViewLinkColumn(); - this.colCanUse = new System.Windows.Forms.DataGridViewCheckBoxColumn(); - this.colRemaining = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.colMessage = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.pbLoading = new System.Windows.Forms.PictureBox(); this.panel1 = new System.Windows.Forms.Panel(); this.ucSplitPage1 = new TemuKJD.UserControls.UcSplitPage(); this.dgvProduct = new TemuKJD.UserComponent.DataGridViewEx(); + this.colCheck = new System.Windows.Forms.DataGridViewCheckBoxColumn(); + this.colSupplierId = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colSupplierName = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.col_coupon_sn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colImgUrl = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colImg = new System.Windows.Forms.DataGridViewImageColumn(); + this.colSpuId = new System.Windows.Forms.DataGridViewLinkColumn(); + this.colProductName = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colPrice = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colStock = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colFavorites = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colSales = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colSalesThirtyDays = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colIsCanSet = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colOpResult = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.splitContainer4 = new System.Windows.Forms.SplitContainer(); this.statusBar = new TemuKJD.UserControls.StatusBarUserControl(); this.btnClear = new DevComponents.DotNetBar.PanelEx(); @@ -77,21 +82,16 @@ namespace TemuKJD.PDDForms.ProductForms.CouponForms this.numCoupon2KeepDays = new System.Windows.Forms.NumericUpDown(); this.dtpCoupon2StartTime = new System.Windows.Forms.DateTimePicker(); this.btnCreate = new DevComponents.DotNetBar.PanelEx(); - this.colCheck = new System.Windows.Forms.DataGridViewCheckBoxColumn(); - this.colSupplierId = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.colSupplierName = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.col_coupon_sn = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.colImgUrl = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.colImg = new System.Windows.Forms.DataGridViewImageColumn(); - this.colSpuId = new System.Windows.Forms.DataGridViewLinkColumn(); - this.colProductName = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.colPrice = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.colStock = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.colFavorites = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.colSales = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.colSalesThirtyDays = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.colIsCanSet = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.colOpResult = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colSelect = new System.Windows.Forms.DataGridViewCheckBoxColumn(); + this.colShopLoginName = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colShopId = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colShopName = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colShopNotes = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colSelectProduct = new System.Windows.Forms.DataGridViewLinkColumn(); + this.colLoginStatus = new System.Windows.Forms.DataGridViewLinkColumn(); + this.colCanUse = new System.Windows.Forms.DataGridViewCheckBoxColumn(); + this.colRemaining = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colMessage = new System.Windows.Forms.DataGridViewTextBoxColumn(); ((System.ComponentModel.ISupportInitialize)(this.splitContainer3)).BeginInit(); this.splitContainer3.Panel1.SuspendLayout(); this.splitContainer3.Panel2.SuspendLayout(); @@ -165,6 +165,7 @@ namespace TemuKJD.PDDForms.ProductForms.CouponForms this.dgvShop.AllowUserToDeleteRows = false; dataGridViewCellStyle1.BackColor = System.Drawing.Color.WhiteSmoke; this.dgvShop.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle1; + this.dgvShop.AutoRowNumber = true; this.dgvShop.BackgroundColor = System.Drawing.Color.White; this.dgvShop.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); dataGridViewCellStyle2.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; @@ -189,6 +190,7 @@ namespace TemuKJD.PDDForms.ProductForms.CouponForms this.colMessage}); this.dgvShop.Dock = System.Windows.Forms.DockStyle.Fill; this.dgvShop.Location = new System.Drawing.Point(4, 0); + this.dgvShop.MultiSelectCheckBox = true; this.dgvShop.Name = "dgvShop"; this.dgvShop.ReadOnly = true; this.dgvShop.RowHeadersWidth = 25; @@ -197,88 +199,6 @@ namespace TemuKJD.PDDForms.ProductForms.CouponForms this.dgvShop.TabIndex = 6; this.dgvShop.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dgvShop_CellContentClick); // - // colSelect - // - this.colSelect.HeaderText = "全选"; - this.colSelect.Name = "colSelect"; - this.colSelect.ReadOnly = true; - this.colSelect.Resizable = System.Windows.Forms.DataGridViewTriState.True; - this.colSelect.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; - this.colSelect.Width = 28; - // - // colShopLoginName - // - this.colShopLoginName.HeaderText = "店铺登录名"; - this.colShopLoginName.Name = "colShopLoginName"; - this.colShopLoginName.ReadOnly = true; - this.colShopLoginName.Visible = false; - // - // colShopId - // - this.colShopId.HeaderText = "店铺Id"; - this.colShopId.Name = "colShopId"; - this.colShopId.ReadOnly = true; - this.colShopId.Visible = false; - this.colShopId.Width = 55; - // - // colShopName - // - this.colShopName.FillWeight = 150F; - this.colShopName.HeaderText = "店铺名称"; - this.colShopName.Name = "colShopName"; - this.colShopName.ReadOnly = true; - this.colShopName.Resizable = System.Windows.Forms.DataGridViewTriState.True; - this.colShopName.Width = 70; - // - // colShopNotes - // - this.colShopNotes.HeaderText = "分组"; - this.colShopNotes.Name = "colShopNotes"; - this.colShopNotes.ReadOnly = true; - this.colShopNotes.Width = 70; - // - // colSelectProduct - // - this.colSelectProduct.HeaderText = "选择商品"; - this.colSelectProduct.Name = "colSelectProduct"; - this.colSelectProduct.ReadOnly = true; - this.colSelectProduct.Resizable = System.Windows.Forms.DataGridViewTriState.True; - this.colSelectProduct.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; - this.colSelectProduct.Visible = false; - this.colSelectProduct.Width = 62; - // - // colLoginStatus - // - this.colLoginStatus.HeaderText = "状态"; - this.colLoginStatus.Name = "colLoginStatus"; - this.colLoginStatus.ReadOnly = true; - this.colLoginStatus.Resizable = System.Windows.Forms.DataGridViewTriState.True; - this.colLoginStatus.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; - this.colLoginStatus.Width = 40; - // - // colCanUse - // - this.colCanUse.HeaderText = "可用"; - this.colCanUse.Name = "colCanUse"; - this.colCanUse.ReadOnly = true; - this.colCanUse.Resizable = System.Windows.Forms.DataGridViewTriState.True; - this.colCanUse.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; - this.colCanUse.Visible = false; - this.colCanUse.Width = 28; - // - // colRemaining - // - this.colRemaining.HeaderText = "月限额"; - this.colRemaining.Name = "colRemaining"; - this.colRemaining.ReadOnly = true; - this.colRemaining.Visible = false; - // - // colMessage - // - this.colMessage.HeaderText = "消息"; - this.colMessage.Name = "colMessage"; - this.colMessage.ReadOnly = true; - // // pbLoading // this.pbLoading.Anchor = System.Windows.Forms.AnchorStyles.None; @@ -323,6 +243,7 @@ namespace TemuKJD.PDDForms.ProductForms.CouponForms this.dgvProduct.AllowUserToDeleteRows = false; dataGridViewCellStyle3.BackColor = System.Drawing.Color.WhiteSmoke; this.dgvProduct.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle3; + this.dgvProduct.AutoRowNumber = true; this.dgvProduct.BackgroundColor = System.Drawing.Color.White; this.dgvProduct.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); dataGridViewCellStyle4.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; @@ -352,6 +273,7 @@ namespace TemuKJD.PDDForms.ProductForms.CouponForms this.colOpResult}); this.dgvProduct.Dock = System.Windows.Forms.DockStyle.Fill; this.dgvProduct.Location = new System.Drawing.Point(0, 0); + this.dgvProduct.MultiSelectCheckBox = true; this.dgvProduct.Name = "dgvProduct"; this.dgvProduct.ReadOnly = true; this.dgvProduct.RowTemplate.Height = 23; @@ -359,6 +281,120 @@ namespace TemuKJD.PDDForms.ProductForms.CouponForms this.dgvProduct.TabIndex = 187; this.dgvProduct.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dgvProduct_CellContentClick); // + // colCheck + // + this.colCheck.Frozen = true; + 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; + this.colCheck.Width = 30; + // + // colSupplierId + // + this.colSupplierId.HeaderText = "店铺Id"; + this.colSupplierId.Name = "colSupplierId"; + this.colSupplierId.ReadOnly = true; + // + // colSupplierName + // + this.colSupplierName.HeaderText = "店铺名称"; + this.colSupplierName.Name = "colSupplierName"; + this.colSupplierName.ReadOnly = true; + this.colSupplierName.Width = 110; + // + // col_coupon_sn + // + this.col_coupon_sn.HeaderText = "活动编码"; + this.col_coupon_sn.Name = "col_coupon_sn"; + this.col_coupon_sn.ReadOnly = true; + this.col_coupon_sn.Visible = false; + // + // colImgUrl + // + this.colImgUrl.HeaderText = "图片地址"; + this.colImgUrl.Name = "colImgUrl"; + this.colImgUrl.ReadOnly = true; + this.colImgUrl.Visible = false; + // + // colImg + // + this.colImg.HeaderText = "图片"; + this.colImg.ImageLayout = System.Windows.Forms.DataGridViewImageCellLayout.Zoom; + this.colImg.Name = "colImg"; + this.colImg.ReadOnly = true; + this.colImg.Width = 60; + // + // colSpuId + // + this.colSpuId.HeaderText = "商品ID"; + this.colSpuId.Name = "colSpuId"; + this.colSpuId.ReadOnly = true; + this.colSpuId.Resizable = System.Windows.Forms.DataGridViewTriState.True; + this.colSpuId.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; + this.colSpuId.Width = 80; + // + // colProductName + // + dataGridViewCellStyle5.WrapMode = System.Windows.Forms.DataGridViewTriState.True; + this.colProductName.DefaultCellStyle = dataGridViewCellStyle5; + this.colProductName.HeaderText = "商品标题"; + this.colProductName.Name = "colProductName"; + this.colProductName.ReadOnly = true; + this.colProductName.Width = 260; + // + // colPrice + // + this.colPrice.HeaderText = "价格"; + this.colPrice.Name = "colPrice"; + this.colPrice.ReadOnly = true; + this.colPrice.Width = 90; + // + // colStock + // + this.colStock.HeaderText = "库存"; + this.colStock.Name = "colStock"; + this.colStock.ReadOnly = true; + this.colStock.Width = 70; + // + // colFavorites + // + this.colFavorites.HeaderText = "收藏"; + this.colFavorites.Name = "colFavorites"; + this.colFavorites.ReadOnly = true; + this.colFavorites.Visible = false; + this.colFavorites.Width = 50; + // + // colSales + // + this.colSales.HeaderText = "总销量"; + this.colSales.Name = "colSales"; + this.colSales.ReadOnly = true; + this.colSales.Visible = false; + this.colSales.Width = 60; + // + // colSalesThirtyDays + // + this.colSalesThirtyDays.HeaderText = "30日销量"; + this.colSalesThirtyDays.Name = "colSalesThirtyDays"; + this.colSalesThirtyDays.ReadOnly = true; + this.colSalesThirtyDays.Visible = false; + this.colSalesThirtyDays.Width = 70; + // + // colIsCanSet + // + this.colIsCanSet.HeaderText = "是否可设置"; + this.colIsCanSet.Name = "colIsCanSet"; + this.colIsCanSet.ReadOnly = true; + // + // colOpResult + // + this.colOpResult.HeaderText = "操作结果"; + this.colOpResult.Name = "colOpResult"; + this.colOpResult.ReadOnly = true; + this.colOpResult.Width = 200; + // // splitContainer4 // this.splitContainer4.Dock = System.Windows.Forms.DockStyle.Fill; @@ -746,119 +782,87 @@ namespace TemuKJD.PDDForms.ProductForms.CouponForms this.btnCreate.Text = "开始创建"; this.btnCreate.Click += new System.EventHandler(this.btnCreate_Click); // - // colCheck + // colSelect // - this.colCheck.Frozen = true; - 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; - this.colCheck.Width = 30; + this.colSelect.HeaderText = "全选"; + this.colSelect.Name = "colSelect"; + this.colSelect.ReadOnly = true; + this.colSelect.Resizable = System.Windows.Forms.DataGridViewTriState.True; + this.colSelect.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; + this.colSelect.Width = 28; // - // colSupplierId + // colShopLoginName // - this.colSupplierId.HeaderText = "店铺Id"; - this.colSupplierId.Name = "colSupplierId"; - this.colSupplierId.ReadOnly = true; + this.colShopLoginName.HeaderText = "店铺登录名"; + this.colShopLoginName.Name = "colShopLoginName"; + this.colShopLoginName.ReadOnly = true; + this.colShopLoginName.Visible = false; // - // colSupplierName + // colShopId // - this.colSupplierName.HeaderText = "店铺名称"; - this.colSupplierName.Name = "colSupplierName"; - this.colSupplierName.ReadOnly = true; - this.colSupplierName.Width = 110; + this.colShopId.HeaderText = "店铺Id"; + this.colShopId.Name = "colShopId"; + this.colShopId.ReadOnly = true; + this.colShopId.Visible = false; + this.colShopId.Width = 55; // - // col_coupon_sn + // colShopName // - this.col_coupon_sn.HeaderText = "活动编码"; - this.col_coupon_sn.Name = "col_coupon_sn"; - this.col_coupon_sn.ReadOnly = true; - this.col_coupon_sn.Visible = false; + this.colShopName.FillWeight = 150F; + this.colShopName.HeaderText = "店铺名称"; + this.colShopName.Name = "colShopName"; + this.colShopName.ReadOnly = true; + this.colShopName.Resizable = System.Windows.Forms.DataGridViewTriState.True; + this.colShopName.Width = 70; // - // colImgUrl + // colShopNotes // - this.colImgUrl.HeaderText = "图片地址"; - this.colImgUrl.Name = "colImgUrl"; - this.colImgUrl.ReadOnly = true; - this.colImgUrl.Visible = false; + this.colShopNotes.HeaderText = "备注"; + this.colShopNotes.Name = "colShopNotes"; + this.colShopNotes.ReadOnly = true; + this.colShopNotes.Width = 70; // - // colImg + // colSelectProduct // - this.colImg.HeaderText = "图片"; - this.colImg.ImageLayout = System.Windows.Forms.DataGridViewImageCellLayout.Zoom; - this.colImg.Name = "colImg"; - this.colImg.ReadOnly = true; - this.colImg.Width = 60; + this.colSelectProduct.HeaderText = "选择商品"; + this.colSelectProduct.Name = "colSelectProduct"; + this.colSelectProduct.ReadOnly = true; + this.colSelectProduct.Resizable = System.Windows.Forms.DataGridViewTriState.True; + this.colSelectProduct.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; + this.colSelectProduct.Visible = false; + this.colSelectProduct.Width = 62; // - // colSpuId + // colLoginStatus // - this.colSpuId.HeaderText = "商品ID"; - this.colSpuId.Name = "colSpuId"; - this.colSpuId.ReadOnly = true; - this.colSpuId.Resizable = System.Windows.Forms.DataGridViewTriState.True; - this.colSpuId.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; - this.colSpuId.Width = 80; + this.colLoginStatus.HeaderText = "状态"; + this.colLoginStatus.Name = "colLoginStatus"; + this.colLoginStatus.ReadOnly = true; + this.colLoginStatus.Resizable = System.Windows.Forms.DataGridViewTriState.True; + this.colLoginStatus.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; + this.colLoginStatus.Width = 40; // - // colProductName + // colCanUse // - dataGridViewCellStyle5.WrapMode = System.Windows.Forms.DataGridViewTriState.True; - this.colProductName.DefaultCellStyle = dataGridViewCellStyle5; - this.colProductName.HeaderText = "商品标题"; - this.colProductName.Name = "colProductName"; - this.colProductName.ReadOnly = true; - this.colProductName.Width = 260; + this.colCanUse.HeaderText = "可用"; + this.colCanUse.Name = "colCanUse"; + this.colCanUse.ReadOnly = true; + this.colCanUse.Resizable = System.Windows.Forms.DataGridViewTriState.True; + this.colCanUse.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; + this.colCanUse.Visible = false; + this.colCanUse.Width = 28; // - // colPrice + // colRemaining // - this.colPrice.HeaderText = "价格"; - this.colPrice.Name = "colPrice"; - this.colPrice.ReadOnly = true; - this.colPrice.Width = 90; + this.colRemaining.HeaderText = "月限额"; + this.colRemaining.Name = "colRemaining"; + this.colRemaining.ReadOnly = true; + this.colRemaining.Visible = false; // - // colStock + // colMessage // - this.colStock.HeaderText = "库存"; - this.colStock.Name = "colStock"; - this.colStock.ReadOnly = true; - this.colStock.Width = 70; - // - // colFavorites - // - this.colFavorites.HeaderText = "收藏"; - this.colFavorites.Name = "colFavorites"; - this.colFavorites.ReadOnly = true; - this.colFavorites.Visible = false; - this.colFavorites.Width = 50; - // - // colSales - // - this.colSales.HeaderText = "总销量"; - this.colSales.Name = "colSales"; - this.colSales.ReadOnly = true; - this.colSales.Visible = false; - this.colSales.Width = 60; - // - // colSalesThirtyDays - // - this.colSalesThirtyDays.HeaderText = "30日销量"; - this.colSalesThirtyDays.Name = "colSalesThirtyDays"; - this.colSalesThirtyDays.ReadOnly = true; - this.colSalesThirtyDays.Visible = false; - this.colSalesThirtyDays.Width = 70; - // - // colIsCanSet - // - this.colIsCanSet.HeaderText = "是否可设置"; - this.colIsCanSet.Name = "colIsCanSet"; - this.colIsCanSet.ReadOnly = true; - // - // colOpResult - // - this.colOpResult.HeaderText = "操作结果"; - this.colOpResult.Name = "colOpResult"; - this.colOpResult.ReadOnly = true; - this.colOpResult.Width = 200; + this.colMessage.HeaderText = "消息"; + this.colMessage.Name = "colMessage"; + this.colMessage.ReadOnly = true; // // PDDProdCouponLingQuanZhongXinForm // @@ -867,6 +871,7 @@ namespace TemuKJD.PDDForms.ProductForms.CouponForms this.ClientSize = new System.Drawing.Size(1184, 474); 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 = "PDDProdCouponLingQuanZhongXinForm"; this.Text = "PDDProdCouponLingQuanZhongXinForm"; this.Load += new System.EventHandler(this.PDDProdCouponLingQuanZhongXinForm_Load); @@ -905,16 +910,6 @@ namespace TemuKJD.PDDForms.ProductForms.CouponForms private System.Windows.Forms.SplitContainer splitContainer3; private System.Windows.Forms.SplitContainer splitContainer2; private UserComponent.DataGridViewEx dgvShop; - private System.Windows.Forms.DataGridViewCheckBoxColumn colSelect; - private System.Windows.Forms.DataGridViewTextBoxColumn colShopLoginName; - private System.Windows.Forms.DataGridViewTextBoxColumn colShopId; - private System.Windows.Forms.DataGridViewTextBoxColumn colShopName; - private System.Windows.Forms.DataGridViewTextBoxColumn colShopNotes; - private System.Windows.Forms.DataGridViewLinkColumn colSelectProduct; - private System.Windows.Forms.DataGridViewLinkColumn colLoginStatus; - private System.Windows.Forms.DataGridViewCheckBoxColumn colCanUse; - private System.Windows.Forms.DataGridViewTextBoxColumn colRemaining; - private System.Windows.Forms.DataGridViewTextBoxColumn colMessage; private System.Windows.Forms.PictureBox pbLoading; private System.Windows.Forms.Panel panel1; private UserControls.UcSplitPage ucSplitPage1; @@ -959,5 +954,15 @@ namespace TemuKJD.PDDForms.ProductForms.CouponForms private System.Windows.Forms.DataGridViewTextBoxColumn colSalesThirtyDays; private System.Windows.Forms.DataGridViewTextBoxColumn colIsCanSet; private System.Windows.Forms.DataGridViewTextBoxColumn colOpResult; + private System.Windows.Forms.DataGridViewCheckBoxColumn colSelect; + private System.Windows.Forms.DataGridViewTextBoxColumn colShopLoginName; + private System.Windows.Forms.DataGridViewTextBoxColumn colShopId; + private System.Windows.Forms.DataGridViewTextBoxColumn colShopName; + private System.Windows.Forms.DataGridViewTextBoxColumn colShopNotes; + private System.Windows.Forms.DataGridViewLinkColumn colSelectProduct; + private System.Windows.Forms.DataGridViewLinkColumn colLoginStatus; + private System.Windows.Forms.DataGridViewCheckBoxColumn colCanUse; + private System.Windows.Forms.DataGridViewTextBoxColumn colRemaining; + private System.Windows.Forms.DataGridViewTextBoxColumn colMessage; } } \ No newline at end of file diff --git a/TEMUKJD/PDDForms/ProductForms/CouponForms/PDDProdCouponShangPinLiJianForm.Designer.cs b/TEMUKJD/PDDForms/ProductForms/CouponForms/PDDProdCouponShangPinLiJianForm.Designer.cs index 262c5d1..0da70b4 100644 --- a/TEMUKJD/PDDForms/ProductForms/CouponForms/PDDProdCouponShangPinLiJianForm.Designer.cs +++ b/TEMUKJD/PDDForms/ProductForms/CouponForms/PDDProdCouponShangPinLiJianForm.Designer.cs @@ -38,20 +38,25 @@ namespace TemuKJD.PDDForms.ProductForms.CouponForms this.splitContainer3 = new System.Windows.Forms.SplitContainer(); this.splitContainer2 = new System.Windows.Forms.SplitContainer(); this.dgvShop = new TemuKJD.UserComponent.DataGridViewEx(); - this.colSelect = new System.Windows.Forms.DataGridViewCheckBoxColumn(); - this.colShopLoginName = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.colShopId = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.colShopName = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.colShopNotes = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.colSelectProduct = new System.Windows.Forms.DataGridViewLinkColumn(); - this.colLoginStatus = new System.Windows.Forms.DataGridViewLinkColumn(); - this.colCanUse = new System.Windows.Forms.DataGridViewCheckBoxColumn(); - this.colRemaining = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.colMessage = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.pbLoading = new System.Windows.Forms.PictureBox(); this.panel1 = new System.Windows.Forms.Panel(); this.ucSplitPage1 = new TemuKJD.UserControls.UcSplitPage(); this.dgvProduct = new TemuKJD.UserComponent.DataGridViewEx(); + this.colCheck = new System.Windows.Forms.DataGridViewCheckBoxColumn(); + this.colSupplierId = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colSupplierName = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.col_coupon_sn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colImgUrl = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colImg = new System.Windows.Forms.DataGridViewImageColumn(); + this.colSpuId = new System.Windows.Forms.DataGridViewLinkColumn(); + this.colProductName = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colPrice = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colStock = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colFavorites = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colSales = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colSalesThirtyDays = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colIsCanSet = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colOpResult = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.splitContainer4 = new System.Windows.Forms.SplitContainer(); this.statusBar = new TemuKJD.UserControls.StatusBarUserControl(); this.btnClear = new DevComponents.DotNetBar.PanelEx(); @@ -74,21 +79,16 @@ namespace TemuKJD.PDDForms.ProductForms.CouponForms this.chkCoupon2 = new TemuKJD.UserComponent.UcCheckBox(this.components); this.btnCreate = new DevComponents.DotNetBar.PanelEx(); this.splitContainer1 = new System.Windows.Forms.SplitContainer(); - this.colCheck = new System.Windows.Forms.DataGridViewCheckBoxColumn(); - this.colSupplierId = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.colSupplierName = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.col_coupon_sn = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.colImgUrl = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.colImg = new System.Windows.Forms.DataGridViewImageColumn(); - this.colSpuId = new System.Windows.Forms.DataGridViewLinkColumn(); - this.colProductName = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.colPrice = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.colStock = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.colFavorites = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.colSales = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.colSalesThirtyDays = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.colIsCanSet = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.colOpResult = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colSelect = new System.Windows.Forms.DataGridViewCheckBoxColumn(); + this.colShopLoginName = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colShopId = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colShopName = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colShopNotes = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colSelectProduct = new System.Windows.Forms.DataGridViewLinkColumn(); + this.colLoginStatus = new System.Windows.Forms.DataGridViewLinkColumn(); + this.colCanUse = new System.Windows.Forms.DataGridViewCheckBoxColumn(); + this.colRemaining = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colMessage = new System.Windows.Forms.DataGridViewTextBoxColumn(); ((System.ComponentModel.ISupportInitialize)(this.splitContainer3)).BeginInit(); this.splitContainer3.Panel1.SuspendLayout(); this.splitContainer3.Panel2.SuspendLayout(); @@ -162,6 +162,7 @@ namespace TemuKJD.PDDForms.ProductForms.CouponForms this.dgvShop.AllowUserToDeleteRows = false; dataGridViewCellStyle1.BackColor = System.Drawing.Color.WhiteSmoke; this.dgvShop.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle1; + this.dgvShop.AutoRowNumber = true; this.dgvShop.BackgroundColor = System.Drawing.Color.White; this.dgvShop.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); dataGridViewCellStyle2.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; @@ -186,6 +187,7 @@ namespace TemuKJD.PDDForms.ProductForms.CouponForms this.colMessage}); this.dgvShop.Dock = System.Windows.Forms.DockStyle.Fill; this.dgvShop.Location = new System.Drawing.Point(4, 0); + this.dgvShop.MultiSelectCheckBox = true; this.dgvShop.Name = "dgvShop"; this.dgvShop.ReadOnly = true; this.dgvShop.RowHeadersWidth = 25; @@ -194,88 +196,6 @@ namespace TemuKJD.PDDForms.ProductForms.CouponForms this.dgvShop.TabIndex = 6; this.dgvShop.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dgvShop_CellContentClick); // - // colSelect - // - this.colSelect.HeaderText = "全选"; - this.colSelect.Name = "colSelect"; - this.colSelect.ReadOnly = true; - this.colSelect.Resizable = System.Windows.Forms.DataGridViewTriState.True; - this.colSelect.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; - this.colSelect.Width = 28; - // - // colShopLoginName - // - this.colShopLoginName.HeaderText = "店铺登录名"; - this.colShopLoginName.Name = "colShopLoginName"; - this.colShopLoginName.ReadOnly = true; - this.colShopLoginName.Visible = false; - // - // colShopId - // - this.colShopId.HeaderText = "店铺Id"; - this.colShopId.Name = "colShopId"; - this.colShopId.ReadOnly = true; - this.colShopId.Visible = false; - this.colShopId.Width = 55; - // - // colShopName - // - this.colShopName.FillWeight = 150F; - this.colShopName.HeaderText = "店铺名称"; - this.colShopName.Name = "colShopName"; - this.colShopName.ReadOnly = true; - this.colShopName.Resizable = System.Windows.Forms.DataGridViewTriState.True; - this.colShopName.Width = 70; - // - // colShopNotes - // - this.colShopNotes.HeaderText = "分组"; - this.colShopNotes.Name = "colShopNotes"; - this.colShopNotes.ReadOnly = true; - this.colShopNotes.Width = 70; - // - // colSelectProduct - // - this.colSelectProduct.HeaderText = "选择商品"; - this.colSelectProduct.Name = "colSelectProduct"; - this.colSelectProduct.ReadOnly = true; - this.colSelectProduct.Resizable = System.Windows.Forms.DataGridViewTriState.True; - this.colSelectProduct.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; - this.colSelectProduct.Visible = false; - this.colSelectProduct.Width = 62; - // - // colLoginStatus - // - this.colLoginStatus.HeaderText = "状态"; - this.colLoginStatus.Name = "colLoginStatus"; - this.colLoginStatus.ReadOnly = true; - this.colLoginStatus.Resizable = System.Windows.Forms.DataGridViewTriState.True; - this.colLoginStatus.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; - this.colLoginStatus.Width = 40; - // - // colCanUse - // - this.colCanUse.HeaderText = "可用"; - this.colCanUse.Name = "colCanUse"; - this.colCanUse.ReadOnly = true; - this.colCanUse.Resizable = System.Windows.Forms.DataGridViewTriState.True; - this.colCanUse.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; - this.colCanUse.Visible = false; - this.colCanUse.Width = 28; - // - // colRemaining - // - this.colRemaining.HeaderText = "月限额"; - this.colRemaining.Name = "colRemaining"; - this.colRemaining.ReadOnly = true; - this.colRemaining.Visible = false; - // - // colMessage - // - this.colMessage.HeaderText = "消息"; - this.colMessage.Name = "colMessage"; - this.colMessage.ReadOnly = true; - // // pbLoading // this.pbLoading.Anchor = System.Windows.Forms.AnchorStyles.None; @@ -320,6 +240,7 @@ namespace TemuKJD.PDDForms.ProductForms.CouponForms this.dgvProduct.AllowUserToDeleteRows = false; dataGridViewCellStyle3.BackColor = System.Drawing.Color.WhiteSmoke; this.dgvProduct.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle3; + this.dgvProduct.AutoRowNumber = true; this.dgvProduct.BackgroundColor = System.Drawing.Color.White; this.dgvProduct.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); dataGridViewCellStyle4.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; @@ -349,6 +270,7 @@ namespace TemuKJD.PDDForms.ProductForms.CouponForms this.colOpResult}); this.dgvProduct.Dock = System.Windows.Forms.DockStyle.Fill; this.dgvProduct.Location = new System.Drawing.Point(0, 0); + this.dgvProduct.MultiSelectCheckBox = true; this.dgvProduct.Name = "dgvProduct"; this.dgvProduct.ReadOnly = true; this.dgvProduct.RowTemplate.Height = 23; @@ -356,6 +278,120 @@ namespace TemuKJD.PDDForms.ProductForms.CouponForms this.dgvProduct.TabIndex = 187; this.dgvProduct.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dgvProduct_CellContentClick); // + // colCheck + // + this.colCheck.Frozen = true; + 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; + this.colCheck.Width = 30; + // + // colSupplierId + // + this.colSupplierId.HeaderText = "店铺Id"; + this.colSupplierId.Name = "colSupplierId"; + this.colSupplierId.ReadOnly = true; + // + // colSupplierName + // + this.colSupplierName.HeaderText = "店铺名称"; + this.colSupplierName.Name = "colSupplierName"; + this.colSupplierName.ReadOnly = true; + this.colSupplierName.Width = 110; + // + // col_coupon_sn + // + this.col_coupon_sn.HeaderText = "活动编码"; + this.col_coupon_sn.Name = "col_coupon_sn"; + this.col_coupon_sn.ReadOnly = true; + this.col_coupon_sn.Visible = false; + // + // colImgUrl + // + this.colImgUrl.HeaderText = "图片地址"; + this.colImgUrl.Name = "colImgUrl"; + this.colImgUrl.ReadOnly = true; + this.colImgUrl.Visible = false; + // + // colImg + // + this.colImg.HeaderText = "图片"; + this.colImg.ImageLayout = System.Windows.Forms.DataGridViewImageCellLayout.Zoom; + this.colImg.Name = "colImg"; + this.colImg.ReadOnly = true; + this.colImg.Width = 60; + // + // colSpuId + // + this.colSpuId.HeaderText = "商品ID"; + this.colSpuId.Name = "colSpuId"; + this.colSpuId.ReadOnly = true; + this.colSpuId.Resizable = System.Windows.Forms.DataGridViewTriState.True; + this.colSpuId.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; + this.colSpuId.Width = 80; + // + // colProductName + // + dataGridViewCellStyle5.WrapMode = System.Windows.Forms.DataGridViewTriState.True; + this.colProductName.DefaultCellStyle = dataGridViewCellStyle5; + this.colProductName.HeaderText = "商品标题"; + this.colProductName.Name = "colProductName"; + this.colProductName.ReadOnly = true; + this.colProductName.Width = 260; + // + // colPrice + // + this.colPrice.HeaderText = "价格"; + this.colPrice.Name = "colPrice"; + this.colPrice.ReadOnly = true; + this.colPrice.Width = 90; + // + // colStock + // + this.colStock.HeaderText = "库存"; + this.colStock.Name = "colStock"; + this.colStock.ReadOnly = true; + this.colStock.Width = 70; + // + // colFavorites + // + this.colFavorites.HeaderText = "收藏"; + this.colFavorites.Name = "colFavorites"; + this.colFavorites.ReadOnly = true; + this.colFavorites.Visible = false; + this.colFavorites.Width = 50; + // + // colSales + // + this.colSales.HeaderText = "总销量"; + this.colSales.Name = "colSales"; + this.colSales.ReadOnly = true; + this.colSales.Visible = false; + this.colSales.Width = 60; + // + // colSalesThirtyDays + // + this.colSalesThirtyDays.HeaderText = "30日销量"; + this.colSalesThirtyDays.Name = "colSalesThirtyDays"; + this.colSalesThirtyDays.ReadOnly = true; + this.colSalesThirtyDays.Visible = false; + this.colSalesThirtyDays.Width = 70; + // + // colIsCanSet + // + this.colIsCanSet.HeaderText = "是否可设置"; + this.colIsCanSet.Name = "colIsCanSet"; + this.colIsCanSet.ReadOnly = true; + // + // colOpResult + // + this.colOpResult.HeaderText = "操作结果"; + this.colOpResult.Name = "colOpResult"; + this.colOpResult.ReadOnly = true; + this.colOpResult.Width = 200; + // // splitContainer4 // this.splitContainer4.Dock = System.Windows.Forms.DockStyle.Fill; @@ -700,119 +736,87 @@ namespace TemuKJD.PDDForms.ProductForms.CouponForms this.splitContainer1.SplitterDistance = 140; this.splitContainer1.TabIndex = 15; // - // colCheck + // colSelect // - this.colCheck.Frozen = true; - 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; - this.colCheck.Width = 30; + this.colSelect.HeaderText = "全选"; + this.colSelect.Name = "colSelect"; + this.colSelect.ReadOnly = true; + this.colSelect.Resizable = System.Windows.Forms.DataGridViewTriState.True; + this.colSelect.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; + this.colSelect.Width = 28; // - // colSupplierId + // colShopLoginName // - this.colSupplierId.HeaderText = "店铺Id"; - this.colSupplierId.Name = "colSupplierId"; - this.colSupplierId.ReadOnly = true; + this.colShopLoginName.HeaderText = "店铺登录名"; + this.colShopLoginName.Name = "colShopLoginName"; + this.colShopLoginName.ReadOnly = true; + this.colShopLoginName.Visible = false; // - // colSupplierName + // colShopId // - this.colSupplierName.HeaderText = "店铺名称"; - this.colSupplierName.Name = "colSupplierName"; - this.colSupplierName.ReadOnly = true; - this.colSupplierName.Width = 110; + this.colShopId.HeaderText = "店铺Id"; + this.colShopId.Name = "colShopId"; + this.colShopId.ReadOnly = true; + this.colShopId.Visible = false; + this.colShopId.Width = 55; // - // col_coupon_sn + // colShopName // - this.col_coupon_sn.HeaderText = "活动编码"; - this.col_coupon_sn.Name = "col_coupon_sn"; - this.col_coupon_sn.ReadOnly = true; - this.col_coupon_sn.Visible = false; + this.colShopName.FillWeight = 150F; + this.colShopName.HeaderText = "店铺名称"; + this.colShopName.Name = "colShopName"; + this.colShopName.ReadOnly = true; + this.colShopName.Resizable = System.Windows.Forms.DataGridViewTriState.True; + this.colShopName.Width = 70; // - // colImgUrl + // colShopNotes // - this.colImgUrl.HeaderText = "图片地址"; - this.colImgUrl.Name = "colImgUrl"; - this.colImgUrl.ReadOnly = true; - this.colImgUrl.Visible = false; + this.colShopNotes.HeaderText = "备注"; + this.colShopNotes.Name = "colShopNotes"; + this.colShopNotes.ReadOnly = true; + this.colShopNotes.Width = 70; // - // colImg + // colSelectProduct // - this.colImg.HeaderText = "图片"; - this.colImg.ImageLayout = System.Windows.Forms.DataGridViewImageCellLayout.Zoom; - this.colImg.Name = "colImg"; - this.colImg.ReadOnly = true; - this.colImg.Width = 60; + this.colSelectProduct.HeaderText = "选择商品"; + this.colSelectProduct.Name = "colSelectProduct"; + this.colSelectProduct.ReadOnly = true; + this.colSelectProduct.Resizable = System.Windows.Forms.DataGridViewTriState.True; + this.colSelectProduct.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; + this.colSelectProduct.Visible = false; + this.colSelectProduct.Width = 62; // - // colSpuId + // colLoginStatus // - this.colSpuId.HeaderText = "商品ID"; - this.colSpuId.Name = "colSpuId"; - this.colSpuId.ReadOnly = true; - this.colSpuId.Resizable = System.Windows.Forms.DataGridViewTriState.True; - this.colSpuId.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; - this.colSpuId.Width = 80; + this.colLoginStatus.HeaderText = "状态"; + this.colLoginStatus.Name = "colLoginStatus"; + this.colLoginStatus.ReadOnly = true; + this.colLoginStatus.Resizable = System.Windows.Forms.DataGridViewTriState.True; + this.colLoginStatus.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; + this.colLoginStatus.Width = 40; // - // colProductName + // colCanUse // - dataGridViewCellStyle5.WrapMode = System.Windows.Forms.DataGridViewTriState.True; - this.colProductName.DefaultCellStyle = dataGridViewCellStyle5; - this.colProductName.HeaderText = "商品标题"; - this.colProductName.Name = "colProductName"; - this.colProductName.ReadOnly = true; - this.colProductName.Width = 260; + this.colCanUse.HeaderText = "可用"; + this.colCanUse.Name = "colCanUse"; + this.colCanUse.ReadOnly = true; + this.colCanUse.Resizable = System.Windows.Forms.DataGridViewTriState.True; + this.colCanUse.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; + this.colCanUse.Visible = false; + this.colCanUse.Width = 28; // - // colPrice + // colRemaining // - this.colPrice.HeaderText = "价格"; - this.colPrice.Name = "colPrice"; - this.colPrice.ReadOnly = true; - this.colPrice.Width = 90; + this.colRemaining.HeaderText = "月限额"; + this.colRemaining.Name = "colRemaining"; + this.colRemaining.ReadOnly = true; + this.colRemaining.Visible = false; // - // colStock + // colMessage // - this.colStock.HeaderText = "库存"; - this.colStock.Name = "colStock"; - this.colStock.ReadOnly = true; - this.colStock.Width = 70; - // - // colFavorites - // - this.colFavorites.HeaderText = "收藏"; - this.colFavorites.Name = "colFavorites"; - this.colFavorites.ReadOnly = true; - this.colFavorites.Visible = false; - this.colFavorites.Width = 50; - // - // colSales - // - this.colSales.HeaderText = "总销量"; - this.colSales.Name = "colSales"; - this.colSales.ReadOnly = true; - this.colSales.Visible = false; - this.colSales.Width = 60; - // - // colSalesThirtyDays - // - this.colSalesThirtyDays.HeaderText = "30日销量"; - this.colSalesThirtyDays.Name = "colSalesThirtyDays"; - this.colSalesThirtyDays.ReadOnly = true; - this.colSalesThirtyDays.Visible = false; - this.colSalesThirtyDays.Width = 70; - // - // colIsCanSet - // - this.colIsCanSet.HeaderText = "是否可设置"; - this.colIsCanSet.Name = "colIsCanSet"; - this.colIsCanSet.ReadOnly = true; - // - // colOpResult - // - this.colOpResult.HeaderText = "操作结果"; - this.colOpResult.Name = "colOpResult"; - this.colOpResult.ReadOnly = true; - this.colOpResult.Width = 200; + this.colMessage.HeaderText = "消息"; + this.colMessage.Name = "colMessage"; + this.colMessage.ReadOnly = true; // // PDDProdCouponShangPinLiJianForm // @@ -821,6 +825,7 @@ namespace TemuKJD.PDDForms.ProductForms.CouponForms this.ClientSize = new System.Drawing.Size(1184, 552); 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 = "PDDProdCouponShangPinLiJianForm"; this.Text = "PDDProdCouponShangPinLiJianForm"; this.Load += new System.EventHandler(this.PDDProdCouponShangPinLiJianForm_Load); @@ -859,16 +864,6 @@ namespace TemuKJD.PDDForms.ProductForms.CouponForms private System.Windows.Forms.SplitContainer splitContainer3; private System.Windows.Forms.SplitContainer splitContainer2; private UserComponent.DataGridViewEx dgvShop; - private System.Windows.Forms.DataGridViewCheckBoxColumn colSelect; - private System.Windows.Forms.DataGridViewTextBoxColumn colShopLoginName; - private System.Windows.Forms.DataGridViewTextBoxColumn colShopId; - private System.Windows.Forms.DataGridViewTextBoxColumn colShopName; - private System.Windows.Forms.DataGridViewTextBoxColumn colShopNotes; - private System.Windows.Forms.DataGridViewLinkColumn colSelectProduct; - private System.Windows.Forms.DataGridViewLinkColumn colLoginStatus; - private System.Windows.Forms.DataGridViewCheckBoxColumn colCanUse; - private System.Windows.Forms.DataGridViewTextBoxColumn colRemaining; - private System.Windows.Forms.DataGridViewTextBoxColumn colMessage; private System.Windows.Forms.PictureBox pbLoading; private System.Windows.Forms.Panel panel1; private UserControls.UcSplitPage ucSplitPage1; @@ -910,5 +905,15 @@ namespace TemuKJD.PDDForms.ProductForms.CouponForms private System.Windows.Forms.DataGridViewTextBoxColumn colSalesThirtyDays; private System.Windows.Forms.DataGridViewTextBoxColumn colIsCanSet; private System.Windows.Forms.DataGridViewTextBoxColumn colOpResult; + private System.Windows.Forms.DataGridViewCheckBoxColumn colSelect; + private System.Windows.Forms.DataGridViewTextBoxColumn colShopLoginName; + private System.Windows.Forms.DataGridViewTextBoxColumn colShopId; + private System.Windows.Forms.DataGridViewTextBoxColumn colShopName; + private System.Windows.Forms.DataGridViewTextBoxColumn colShopNotes; + private System.Windows.Forms.DataGridViewLinkColumn colSelectProduct; + private System.Windows.Forms.DataGridViewLinkColumn colLoginStatus; + private System.Windows.Forms.DataGridViewCheckBoxColumn colCanUse; + private System.Windows.Forms.DataGridViewTextBoxColumn colRemaining; + private System.Windows.Forms.DataGridViewTextBoxColumn colMessage; } } \ No newline at end of file diff --git a/TEMUKJD/PDDForms/ProductForms/PDDProductForm.Designer.cs b/TEMUKJD/PDDForms/ProductForms/PDDProductForm.Designer.cs index dee6f89..16cd958 100644 --- a/TEMUKJD/PDDForms/ProductForms/PDDProductForm.Designer.cs +++ b/TEMUKJD/PDDForms/ProductForms/PDDProductForm.Designer.cs @@ -31,10 +31,12 @@ System.Windows.Forms.TreeNode treeNode1 = new System.Windows.Forms.TreeNode("选品上传"); System.Windows.Forms.TreeNode treeNode2 = new System.Windows.Forms.TreeNode("商品列表"); System.Windows.Forms.TreeNode treeNode3 = new System.Windows.Forms.TreeNode("营销工具"); - System.Windows.Forms.TreeNode treeNode4 = new System.Windows.Forms.TreeNode("商品管理", new System.Windows.Forms.TreeNode[] { + System.Windows.Forms.TreeNode treeNode4 = new System.Windows.Forms.TreeNode("营销活动"); + System.Windows.Forms.TreeNode treeNode5 = new System.Windows.Forms.TreeNode("商品管理", new System.Windows.Forms.TreeNode[] { treeNode1, treeNode2, - treeNode3}); + treeNode3, + treeNode4}); this.panel1 = new System.Windows.Forms.Panel(); this.panel3 = new System.Windows.Forms.Panel(); this.panel2 = new System.Windows.Forms.Panel(); @@ -131,10 +133,12 @@ treeNode2.Text = "商品列表"; treeNode3.Name = "营销工具"; treeNode3.Text = "营销工具"; - treeNode4.Name = "商品管理"; - treeNode4.Text = "商品管理"; + treeNode4.Name = "营销活动"; + treeNode4.Text = "营销活动"; + treeNode5.Name = "商品管理"; + treeNode5.Text = "商品管理"; this.tv.Nodes.AddRange(new System.Windows.Forms.TreeNode[] { - treeNode4}); + treeNode5}); this.tv.OverForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(235)))), ((int)(((byte)(235)))), ((int)(((byte)(235))))); this.tv.Size = new System.Drawing.Size(140, 521); this.tv.TabIndex = 1; diff --git a/TEMUKJD/PDDForms/ProductForms/PDDProductForm.cs b/TEMUKJD/PDDForms/ProductForms/PDDProductForm.cs index 024c83c..c87145d 100644 --- a/TEMUKJD/PDDForms/ProductForms/PDDProductForm.cs +++ b/TEMUKJD/PDDForms/ProductForms/PDDProductForm.cs @@ -12,6 +12,7 @@ using TemuKJD.BaseForms; using AllBase; using TemuKJD.PDDForms.ProductSelectForms; using TemuKJD.PDDForms.ProductForms.CouponForms; +using TemuKJD.PDDForms.ProductForms.ActivityForms; namespace TemuKJD.PDDForms.ProductForms { @@ -21,6 +22,7 @@ namespace TemuKJD.PDDForms.ProductForms public Lazy userSelectDbProductForm = new Lazy(); public Lazy productUpDownForm = new Lazy(); public Lazy prodCouponForm = new Lazy(); + public Lazy addActivityForm = new Lazy(); public PDDProductForm() { @@ -70,6 +72,9 @@ namespace TemuKJD.PDDForms.ProductForms case "营销工具": SetForm(prodCouponForm.Value); break; + case "营销活动": + SetForm(addActivityForm.Value); + break; } })); }).Start(); diff --git a/TEMUKJD/PDDForms/ProductForms/PDDProductUpDownForm.Designer.cs b/TEMUKJD/PDDForms/ProductForms/PDDProductUpDownForm.Designer.cs index 0fd3dc4..49eccc4 100644 --- a/TEMUKJD/PDDForms/ProductForms/PDDProductUpDownForm.Designer.cs +++ b/TEMUKJD/PDDForms/ProductForms/PDDProductUpDownForm.Designer.cs @@ -30,13 +30,17 @@ namespace TemuKJD.PDDForms.ProductForms private void InitializeComponent() { this.components = new System.ComponentModel.Container(); - System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle26 = new System.Windows.Forms.DataGridViewCellStyle(); - System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle27 = new System.Windows.Forms.DataGridViewCellStyle(); - System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle28 = new System.Windows.Forms.DataGridViewCellStyle(); - System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle29 = new System.Windows.Forms.DataGridViewCellStyle(); - System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle30 = 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(); + 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.splitContainer1 = new System.Windows.Forms.SplitContainer(); this.ucGroupBoxEx2 = new TemuKJD.UserComponent.UcGroupBoxEx(this.components); + this.txtMinPrice = new System.Windows.Forms.TextBox(); + this.label4 = new System.Windows.Forms.Label(); + this.txtMaxPrice = new System.Windows.Forms.TextBox(); + this.label9 = new System.Windows.Forms.Label(); this.btnUp = new DevComponents.DotNetBar.PanelEx(); this.btnDown = new DevComponents.DotNetBar.PanelEx(); this.label3 = new System.Windows.Forms.Label(); @@ -44,37 +48,27 @@ namespace TemuKJD.PDDForms.ProductForms this.txtSkuSns = new System.Windows.Forms.TextBox(); this.label1 = new System.Windows.Forms.Label(); this.pnlEmpty = new DevComponents.DotNetBar.PanelEx(); - this.btnClearDgv = new DevComponents.DotNetBar.PanelEx(); - this.txtShopId = new System.Windows.Forms.TextBox(); this.label5 = new System.Windows.Forms.Label(); this.btnSearch = new DevComponents.DotNetBar.PanelEx(); this.cmbStatus = new System.Windows.Forms.ComboBox(); this.label8 = new System.Windows.Forms.Label(); this.txtSPU = new System.Windows.Forms.TextBox(); - this.label7 = new System.Windows.Forms.Label(); this.txtExtCode = new System.Windows.Forms.TextBox(); this.label2 = new System.Windows.Forms.Label(); this.btnDelSelect = new DevComponents.DotNetBar.PanelEx(); - this.txtShopName = new System.Windows.Forms.TextBox(); - this.label6 = new System.Windows.Forms.Label(); this.ucGroupBoxEx1 = new TemuKJD.UserComponent.UcGroupBoxEx(this.components); this.btnRefreshShop = new DevComponents.DotNetBar.PanelEx(); this.splitContainer3 = new System.Windows.Forms.SplitContainer(); this.splitContainer2 = new System.Windows.Forms.SplitContainer(); this.dgvShop = new TemuKJD.UserComponent.DataGridViewEx(); - this.colSelect = new System.Windows.Forms.DataGridViewCheckBoxColumn(); - this.colShopLoginName = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.colShopId = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.colShopName = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.colShopNotes = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.colSelectProduct = new System.Windows.Forms.DataGridViewLinkColumn(); - this.colLoginStatus = new System.Windows.Forms.DataGridViewLinkColumn(); - this.colCanUse = new System.Windows.Forms.DataGridViewCheckBoxColumn(); - this.colRemaining = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.colMessage = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.pbLoading = new System.Windows.Forms.PictureBox(); this.panel1 = new System.Windows.Forms.Panel(); this.ucSplitPage1 = new TemuKJD.UserControls.UcSplitPage(); + this.txtShopName = new System.Windows.Forms.TextBox(); + this.label6 = new System.Windows.Forms.Label(); + this.label7 = new System.Windows.Forms.Label(); + this.txtShopId = new System.Windows.Forms.TextBox(); + this.btnClearDgv = new DevComponents.DotNetBar.PanelEx(); this.dgvProduct = new TemuKJD.UserComponent.DataGridViewEx(); this.colCheck = new System.Windows.Forms.DataGridViewCheckBoxColumn(); this.colSupplierId = new System.Windows.Forms.DataGridViewTextBoxColumn(); @@ -97,10 +91,16 @@ namespace TemuKJD.PDDForms.ProductForms this.statusBar = new TemuKJD.UserControls.StatusBarUserControl(); this.btnClear = new DevComponents.DotNetBar.PanelEx(); this.panelEx1 = new DevComponents.DotNetBar.PanelEx(); - this.txtMinPrice = new System.Windows.Forms.TextBox(); - this.label4 = new System.Windows.Forms.Label(); - this.txtMaxPrice = new System.Windows.Forms.TextBox(); - this.label9 = new System.Windows.Forms.Label(); + this.colSelect = new System.Windows.Forms.DataGridViewCheckBoxColumn(); + this.colShopLoginName = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colShopId = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colShopName = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colShopNotes = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colSelectProduct = new System.Windows.Forms.DataGridViewLinkColumn(); + this.colLoginStatus = new System.Windows.Forms.DataGridViewLinkColumn(); + this.colCanUse = new System.Windows.Forms.DataGridViewCheckBoxColumn(); + this.colRemaining = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colMessage = new System.Windows.Forms.DataGridViewTextBoxColumn(); ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit(); this.splitContainer1.Panel1.SuspendLayout(); this.splitContainer1.Panel2.SuspendLayout(); @@ -178,6 +178,44 @@ namespace TemuKJD.PDDForms.ProductForms this.ucGroupBoxEx2.TabStop = false; this.ucGroupBoxEx2.Text = "商品查询"; // + // txtMinPrice + // + this.txtMinPrice.Location = new System.Drawing.Point(383, 73); + this.txtMinPrice.Margin = new System.Windows.Forms.Padding(0, 2, 0, 2); + this.txtMinPrice.Name = "txtMinPrice"; + this.txtMinPrice.Size = new System.Drawing.Size(85, 23); + this.txtMinPrice.TabIndex = 658; + // + // label4 + // + this.label4.AutoSize = true; + this.label4.Location = new System.Drawing.Point(472, 76); + this.label4.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size(56, 17); + this.label4.TabIndex = 661; + this.label4.Text = "最高价格"; + this.label4.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // txtMaxPrice + // + this.txtMaxPrice.Location = new System.Drawing.Point(528, 73); + this.txtMaxPrice.Margin = new System.Windows.Forms.Padding(0, 2, 0, 2); + this.txtMaxPrice.Name = "txtMaxPrice"; + this.txtMaxPrice.Size = new System.Drawing.Size(86, 23); + this.txtMaxPrice.TabIndex = 660; + // + // label9 + // + this.label9.AutoSize = true; + this.label9.Location = new System.Drawing.Point(327, 76); + this.label9.Margin = new System.Windows.Forms.Padding(3, 0, 0, 0); + this.label9.Name = "label9"; + this.label9.Size = new System.Drawing.Size(56, 17); + this.label9.TabIndex = 659; + this.label9.Text = "最低价格"; + this.label9.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // // btnUp // this.btnUp.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); @@ -289,42 +327,6 @@ namespace TemuKJD.PDDForms.ProductForms this.pnlEmpty.Text = "清空条件"; this.pnlEmpty.Click += new System.EventHandler(this.pnlEmpty_Click); // - // btnClearDgv - // - this.btnClearDgv.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.btnClearDgv.CanvasColor = System.Drawing.SystemColors.Control; - this.btnClearDgv.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; - this.btnClearDgv.DisabledBackColor = System.Drawing.Color.Empty; - this.btnClearDgv.Location = new System.Drawing.Point(822, 18); - this.btnClearDgv.Margin = new System.Windows.Forms.Padding(4, 2, 2, 2); - this.btnClearDgv.Name = "btnClearDgv"; - this.btnClearDgv.Size = new System.Drawing.Size(124, 23); - this.btnClearDgv.Style.Alignment = System.Drawing.StringAlignment.Center; - this.btnClearDgv.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255))))); - this.btnClearDgv.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255))))); - this.btnClearDgv.Style.Border = DevComponents.DotNetBar.eBorderType.SingleLine; - this.btnClearDgv.Style.BorderColor.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); - this.btnClearDgv.Style.ForeColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText; - this.btnClearDgv.Style.GradientAngle = 90; - this.btnClearDgv.StyleMouseDown.Alignment = System.Drawing.StringAlignment.Center; - this.btnClearDgv.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center; - this.btnClearDgv.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); - this.btnClearDgv.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); - this.btnClearDgv.StyleMouseOver.ForeColor.Color = System.Drawing.Color.White; - this.btnClearDgv.TabIndex = 612; - this.btnClearDgv.Text = "清空列表选中"; - this.btnClearDgv.Visible = false; - this.btnClearDgv.Click += new System.EventHandler(this.btnClearDgv_Click); - // - // txtShopId - // - this.txtShopId.Location = new System.Drawing.Point(577, 18); - this.txtShopId.Margin = new System.Windows.Forms.Padding(0, 2, 0, 2); - this.txtShopId.Name = "txtShopId"; - this.txtShopId.Size = new System.Drawing.Size(85, 23); - this.txtShopId.TabIndex = 481; - this.txtShopId.Visible = false; - // // label5 // this.label5.AutoSize = true; @@ -389,17 +391,6 @@ namespace TemuKJD.PDDForms.ProductForms this.txtSPU.Size = new System.Drawing.Size(86, 23); this.txtSPU.TabIndex = 499; // - // label7 - // - this.label7.AutoSize = true; - this.label7.Location = new System.Drawing.Point(666, 21); - 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 = 484; - this.label7.Text = "店铺名称"; - this.label7.Visible = false; - // // txtExtCode // this.txtExtCode.Location = new System.Drawing.Point(91, 73); @@ -443,26 +434,6 @@ namespace TemuKJD.PDDForms.ProductForms this.btnDelSelect.Text = "删除选中记录"; this.btnDelSelect.Click += new System.EventHandler(this.btnDelSelect_Click); // - // txtShopName - // - this.txtShopName.Location = new System.Drawing.Point(722, 18); - this.txtShopName.Margin = new System.Windows.Forms.Padding(0, 2, 0, 2); - this.txtShopName.Name = "txtShopName"; - this.txtShopName.Size = new System.Drawing.Size(86, 23); - this.txtShopName.TabIndex = 483; - this.txtShopName.Visible = false; - // - // label6 - // - this.label6.AutoSize = true; - this.label6.Location = new System.Drawing.Point(533, 21); - this.label6.Margin = new System.Windows.Forms.Padding(3, 0, 0, 0); - this.label6.Name = "label6"; - this.label6.Size = new System.Drawing.Size(44, 17); - this.label6.TabIndex = 482; - this.label6.Text = "店铺Id"; - this.label6.Visible = false; - // // ucGroupBoxEx1 // this.ucGroupBoxEx1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) @@ -547,18 +518,19 @@ namespace TemuKJD.PDDForms.ProductForms // this.dgvShop.AllowUserToAddRows = false; this.dgvShop.AllowUserToDeleteRows = false; - dataGridViewCellStyle26.BackColor = System.Drawing.Color.WhiteSmoke; - this.dgvShop.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle26; + dataGridViewCellStyle1.BackColor = System.Drawing.Color.WhiteSmoke; + this.dgvShop.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle1; + this.dgvShop.AutoRowNumber = true; this.dgvShop.BackgroundColor = System.Drawing.Color.White; this.dgvShop.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); - dataGridViewCellStyle27.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; - dataGridViewCellStyle27.BackColor = System.Drawing.SystemColors.Control; - dataGridViewCellStyle27.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - dataGridViewCellStyle27.ForeColor = System.Drawing.SystemColors.WindowText; - dataGridViewCellStyle27.SelectionBackColor = System.Drawing.SystemColors.Highlight; - dataGridViewCellStyle27.SelectionForeColor = System.Drawing.SystemColors.HighlightText; - dataGridViewCellStyle27.WrapMode = System.Windows.Forms.DataGridViewTriState.False; - this.dgvShop.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle27; + 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, @@ -573,6 +545,7 @@ namespace TemuKJD.PDDForms.ProductForms this.colMessage}); this.dgvShop.Dock = System.Windows.Forms.DockStyle.Fill; this.dgvShop.Location = new System.Drawing.Point(4, 0); + this.dgvShop.MultiSelectCheckBox = true; this.dgvShop.Name = "dgvShop"; this.dgvShop.ReadOnly = true; this.dgvShop.RowHeadersWidth = 25; @@ -581,88 +554,6 @@ namespace TemuKJD.PDDForms.ProductForms this.dgvShop.TabIndex = 6; this.dgvShop.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dgvShop_CellContentClick); // - // colSelect - // - this.colSelect.HeaderText = "全选"; - this.colSelect.Name = "colSelect"; - this.colSelect.ReadOnly = true; - this.colSelect.Resizable = System.Windows.Forms.DataGridViewTriState.True; - this.colSelect.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; - this.colSelect.Width = 28; - // - // colShopLoginName - // - this.colShopLoginName.HeaderText = "店铺登录名"; - this.colShopLoginName.Name = "colShopLoginName"; - this.colShopLoginName.ReadOnly = true; - this.colShopLoginName.Visible = false; - // - // colShopId - // - this.colShopId.HeaderText = "店铺Id"; - this.colShopId.Name = "colShopId"; - this.colShopId.ReadOnly = true; - this.colShopId.Visible = false; - this.colShopId.Width = 55; - // - // colShopName - // - this.colShopName.FillWeight = 150F; - this.colShopName.HeaderText = "店铺名称"; - this.colShopName.Name = "colShopName"; - this.colShopName.ReadOnly = true; - this.colShopName.Resizable = System.Windows.Forms.DataGridViewTriState.True; - this.colShopName.Width = 70; - // - // colShopNotes - // - this.colShopNotes.HeaderText = "分组"; - this.colShopNotes.Name = "colShopNotes"; - this.colShopNotes.ReadOnly = true; - this.colShopNotes.Width = 70; - // - // colSelectProduct - // - this.colSelectProduct.HeaderText = "选择商品"; - this.colSelectProduct.Name = "colSelectProduct"; - this.colSelectProduct.ReadOnly = true; - this.colSelectProduct.Resizable = System.Windows.Forms.DataGridViewTriState.True; - this.colSelectProduct.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; - this.colSelectProduct.Visible = false; - this.colSelectProduct.Width = 62; - // - // colLoginStatus - // - this.colLoginStatus.HeaderText = "状态"; - this.colLoginStatus.Name = "colLoginStatus"; - this.colLoginStatus.ReadOnly = true; - this.colLoginStatus.Resizable = System.Windows.Forms.DataGridViewTriState.True; - this.colLoginStatus.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; - this.colLoginStatus.Width = 40; - // - // colCanUse - // - this.colCanUse.HeaderText = "可用"; - this.colCanUse.Name = "colCanUse"; - this.colCanUse.ReadOnly = true; - this.colCanUse.Resizable = System.Windows.Forms.DataGridViewTriState.True; - this.colCanUse.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; - this.colCanUse.Visible = false; - this.colCanUse.Width = 28; - // - // colRemaining - // - this.colRemaining.HeaderText = "月限额"; - this.colRemaining.Name = "colRemaining"; - this.colRemaining.ReadOnly = true; - this.colRemaining.Visible = false; - // - // colMessage - // - this.colMessage.HeaderText = "消息"; - this.colMessage.Name = "colMessage"; - this.colMessage.ReadOnly = true; - // // pbLoading // this.pbLoading.Anchor = System.Windows.Forms.AnchorStyles.None; @@ -705,22 +596,90 @@ namespace TemuKJD.PDDForms.ProductForms this.ucSplitPage1.TotalPage = 1; this.ucSplitPage1.Visible = false; // + // txtShopName + // + this.txtShopName.Location = new System.Drawing.Point(722, 18); + this.txtShopName.Margin = new System.Windows.Forms.Padding(0, 2, 0, 2); + this.txtShopName.Name = "txtShopName"; + this.txtShopName.Size = new System.Drawing.Size(86, 23); + this.txtShopName.TabIndex = 483; + this.txtShopName.Visible = false; + // + // label6 + // + this.label6.AutoSize = true; + this.label6.Location = new System.Drawing.Point(533, 21); + this.label6.Margin = new System.Windows.Forms.Padding(3, 0, 0, 0); + this.label6.Name = "label6"; + this.label6.Size = new System.Drawing.Size(44, 17); + this.label6.TabIndex = 482; + this.label6.Text = "店铺Id"; + this.label6.Visible = false; + // + // label7 + // + this.label7.AutoSize = true; + this.label7.Location = new System.Drawing.Point(666, 21); + 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 = 484; + this.label7.Text = "店铺名称"; + this.label7.Visible = false; + // + // txtShopId + // + this.txtShopId.Location = new System.Drawing.Point(577, 18); + this.txtShopId.Margin = new System.Windows.Forms.Padding(0, 2, 0, 2); + this.txtShopId.Name = "txtShopId"; + this.txtShopId.Size = new System.Drawing.Size(85, 23); + this.txtShopId.TabIndex = 481; + this.txtShopId.Visible = false; + // + // btnClearDgv + // + this.btnClearDgv.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.btnClearDgv.CanvasColor = System.Drawing.SystemColors.Control; + this.btnClearDgv.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; + this.btnClearDgv.DisabledBackColor = System.Drawing.Color.Empty; + this.btnClearDgv.Location = new System.Drawing.Point(822, 18); + this.btnClearDgv.Margin = new System.Windows.Forms.Padding(4, 2, 2, 2); + this.btnClearDgv.Name = "btnClearDgv"; + this.btnClearDgv.Size = new System.Drawing.Size(124, 23); + this.btnClearDgv.Style.Alignment = System.Drawing.StringAlignment.Center; + this.btnClearDgv.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255))))); + this.btnClearDgv.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255))))); + this.btnClearDgv.Style.Border = DevComponents.DotNetBar.eBorderType.SingleLine; + this.btnClearDgv.Style.BorderColor.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnClearDgv.Style.ForeColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText; + this.btnClearDgv.Style.GradientAngle = 90; + this.btnClearDgv.StyleMouseDown.Alignment = System.Drawing.StringAlignment.Center; + this.btnClearDgv.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center; + this.btnClearDgv.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnClearDgv.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnClearDgv.StyleMouseOver.ForeColor.Color = System.Drawing.Color.White; + this.btnClearDgv.TabIndex = 612; + this.btnClearDgv.Text = "清空列表选中"; + this.btnClearDgv.Visible = false; + this.btnClearDgv.Click += new System.EventHandler(this.btnClearDgv_Click); + // // dgvProduct // this.dgvProduct.AllowUserToAddRows = false; this.dgvProduct.AllowUserToDeleteRows = false; - dataGridViewCellStyle28.BackColor = System.Drawing.Color.WhiteSmoke; - this.dgvProduct.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle28; + dataGridViewCellStyle3.BackColor = System.Drawing.Color.WhiteSmoke; + this.dgvProduct.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle3; + this.dgvProduct.AutoRowNumber = true; this.dgvProduct.BackgroundColor = System.Drawing.Color.White; this.dgvProduct.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); - dataGridViewCellStyle29.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; - dataGridViewCellStyle29.BackColor = System.Drawing.SystemColors.Control; - dataGridViewCellStyle29.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - dataGridViewCellStyle29.ForeColor = System.Drawing.SystemColors.WindowText; - dataGridViewCellStyle29.SelectionBackColor = System.Drawing.SystemColors.Highlight; - dataGridViewCellStyle29.SelectionForeColor = System.Drawing.SystemColors.HighlightText; - dataGridViewCellStyle29.WrapMode = System.Windows.Forms.DataGridViewTriState.False; - this.dgvProduct.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle29; + 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.dgvProduct.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle4; this.dgvProduct.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; this.dgvProduct.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { this.colCheck, @@ -742,6 +701,7 @@ namespace TemuKJD.PDDForms.ProductForms this.colOpResult}); this.dgvProduct.Dock = System.Windows.Forms.DockStyle.Fill; this.dgvProduct.Location = new System.Drawing.Point(0, 0); + this.dgvProduct.MultiSelectCheckBox = true; this.dgvProduct.Name = "dgvProduct"; this.dgvProduct.ReadOnly = true; this.dgvProduct.RowTemplate.Height = 23; @@ -804,8 +764,8 @@ namespace TemuKJD.PDDForms.ProductForms // // colProductName // - dataGridViewCellStyle30.WrapMode = System.Windows.Forms.DataGridViewTriState.True; - this.colProductName.DefaultCellStyle = dataGridViewCellStyle30; + dataGridViewCellStyle5.WrapMode = System.Windows.Forms.DataGridViewTriState.True; + this.colProductName.DefaultCellStyle = dataGridViewCellStyle5; this.colProductName.HeaderText = "商品标题"; this.colProductName.Name = "colProductName"; this.colProductName.ReadOnly = true; @@ -953,43 +913,87 @@ namespace TemuKJD.PDDForms.ProductForms this.panelEx1.Text = "停止当前操作"; this.panelEx1.Click += new System.EventHandler(this.btnCancel_Click); // - // txtMinPrice + // colSelect // - this.txtMinPrice.Location = new System.Drawing.Point(383, 73); - this.txtMinPrice.Margin = new System.Windows.Forms.Padding(0, 2, 0, 2); - this.txtMinPrice.Name = "txtMinPrice"; - this.txtMinPrice.Size = new System.Drawing.Size(85, 23); - this.txtMinPrice.TabIndex = 658; + this.colSelect.HeaderText = "全选"; + this.colSelect.Name = "colSelect"; + this.colSelect.ReadOnly = true; + this.colSelect.Resizable = System.Windows.Forms.DataGridViewTriState.True; + this.colSelect.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; + this.colSelect.Width = 28; // - // label4 + // colShopLoginName // - this.label4.AutoSize = true; - this.label4.Location = new System.Drawing.Point(472, 76); - this.label4.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0); - this.label4.Name = "label4"; - this.label4.Size = new System.Drawing.Size(56, 17); - this.label4.TabIndex = 661; - this.label4.Text = "最高价格"; - this.label4.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + this.colShopLoginName.HeaderText = "店铺登录名"; + this.colShopLoginName.Name = "colShopLoginName"; + this.colShopLoginName.ReadOnly = true; + this.colShopLoginName.Visible = false; // - // txtMaxPrice + // colShopId // - this.txtMaxPrice.Location = new System.Drawing.Point(528, 73); - this.txtMaxPrice.Margin = new System.Windows.Forms.Padding(0, 2, 0, 2); - this.txtMaxPrice.Name = "txtMaxPrice"; - this.txtMaxPrice.Size = new System.Drawing.Size(86, 23); - this.txtMaxPrice.TabIndex = 660; + this.colShopId.HeaderText = "店铺Id"; + this.colShopId.Name = "colShopId"; + this.colShopId.ReadOnly = true; + this.colShopId.Visible = false; + this.colShopId.Width = 55; // - // label9 + // colShopName // - this.label9.AutoSize = true; - this.label9.Location = new System.Drawing.Point(327, 76); - this.label9.Margin = new System.Windows.Forms.Padding(3, 0, 0, 0); - this.label9.Name = "label9"; - this.label9.Size = new System.Drawing.Size(56, 17); - this.label9.TabIndex = 659; - this.label9.Text = "最低价格"; - this.label9.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + this.colShopName.FillWeight = 150F; + this.colShopName.HeaderText = "店铺名称"; + this.colShopName.Name = "colShopName"; + this.colShopName.ReadOnly = true; + this.colShopName.Resizable = System.Windows.Forms.DataGridViewTriState.True; + this.colShopName.Width = 70; + // + // colShopNotes + // + this.colShopNotes.HeaderText = "备注"; + this.colShopNotes.Name = "colShopNotes"; + this.colShopNotes.ReadOnly = true; + this.colShopNotes.Width = 70; + // + // colSelectProduct + // + this.colSelectProduct.HeaderText = "选择商品"; + this.colSelectProduct.Name = "colSelectProduct"; + this.colSelectProduct.ReadOnly = true; + this.colSelectProduct.Resizable = System.Windows.Forms.DataGridViewTriState.True; + this.colSelectProduct.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; + this.colSelectProduct.Visible = false; + this.colSelectProduct.Width = 62; + // + // colLoginStatus + // + this.colLoginStatus.HeaderText = "状态"; + this.colLoginStatus.Name = "colLoginStatus"; + this.colLoginStatus.ReadOnly = true; + this.colLoginStatus.Resizable = System.Windows.Forms.DataGridViewTriState.True; + this.colLoginStatus.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; + this.colLoginStatus.Width = 40; + // + // colCanUse + // + this.colCanUse.HeaderText = "可用"; + this.colCanUse.Name = "colCanUse"; + this.colCanUse.ReadOnly = true; + this.colCanUse.Resizable = System.Windows.Forms.DataGridViewTriState.True; + this.colCanUse.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; + this.colCanUse.Visible = false; + this.colCanUse.Width = 28; + // + // colRemaining + // + this.colRemaining.HeaderText = "月限额"; + this.colRemaining.Name = "colRemaining"; + this.colRemaining.ReadOnly = true; + this.colRemaining.Visible = false; + // + // colMessage + // + this.colMessage.HeaderText = "消息"; + this.colMessage.Name = "colMessage"; + this.colMessage.ReadOnly = true; // // PDDProductUpDownForm // @@ -998,6 +1002,7 @@ namespace TemuKJD.PDDForms.ProductForms this.ClientSize = new System.Drawing.Size(1362, 581); 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 = "PDDProductUpDownForm"; this.Text = "PDDProductUpDownForm"; this.Load += new System.EventHandler(this.PDDProductUpDownForm_Load); @@ -1040,16 +1045,6 @@ namespace TemuKJD.PDDForms.ProductForms private System.Windows.Forms.SplitContainer splitContainer3; private System.Windows.Forms.SplitContainer splitContainer2; private UserComponent.DataGridViewEx dgvShop; - private System.Windows.Forms.DataGridViewCheckBoxColumn colSelect; - private System.Windows.Forms.DataGridViewTextBoxColumn colShopLoginName; - private System.Windows.Forms.DataGridViewTextBoxColumn colShopId; - private System.Windows.Forms.DataGridViewTextBoxColumn colShopName; - private System.Windows.Forms.DataGridViewTextBoxColumn colShopNotes; - private System.Windows.Forms.DataGridViewLinkColumn colSelectProduct; - private System.Windows.Forms.DataGridViewLinkColumn colLoginStatus; - private System.Windows.Forms.DataGridViewCheckBoxColumn colCanUse; - private System.Windows.Forms.DataGridViewTextBoxColumn colRemaining; - private System.Windows.Forms.DataGridViewTextBoxColumn colMessage; private System.Windows.Forms.PictureBox pbLoading; private System.Windows.Forms.Panel panel1; private UserComponent.DataGridViewEx dgvProduct; @@ -1098,5 +1093,15 @@ namespace TemuKJD.PDDForms.ProductForms private System.Windows.Forms.Label label4; private System.Windows.Forms.TextBox txtMaxPrice; private System.Windows.Forms.Label label9; + private System.Windows.Forms.DataGridViewCheckBoxColumn colSelect; + private System.Windows.Forms.DataGridViewTextBoxColumn colShopLoginName; + private System.Windows.Forms.DataGridViewTextBoxColumn colShopId; + private System.Windows.Forms.DataGridViewTextBoxColumn colShopName; + private System.Windows.Forms.DataGridViewTextBoxColumn colShopNotes; + private System.Windows.Forms.DataGridViewLinkColumn colSelectProduct; + private System.Windows.Forms.DataGridViewLinkColumn colLoginStatus; + private System.Windows.Forms.DataGridViewCheckBoxColumn colCanUse; + private System.Windows.Forms.DataGridViewTextBoxColumn colRemaining; + private System.Windows.Forms.DataGridViewTextBoxColumn colMessage; } } \ No newline at end of file diff --git a/TEMUKJD/PDDForms/ProductForms/PDDProductUpDownForm.cs b/TEMUKJD/PDDForms/ProductForms/PDDProductUpDownForm.cs index 3a8b363..31a90db 100644 --- a/TEMUKJD/PDDForms/ProductForms/PDDProductUpDownForm.cs +++ b/TEMUKJD/PDDForms/ProductForms/PDDProductUpDownForm.cs @@ -415,7 +415,7 @@ namespace TemuKJD.PDDForms.ProductForms } - private string shop_goods_search(ShopLoginInfo shop, List goods_id_list, string goods_name, + public static string shop_goods_search(ShopLoginInfo shop, List goods_id_list, string goods_name, List out_goods_sn_list = null, List out_sku_sns = null, int? isOnsale = null, long? minPrice=null, long? maxPrice=null, int page=1, int pageSize = 100) { var anti = shop.AntiContents.LastOrDefault().ParseToString(); @@ -795,7 +795,11 @@ namespace TemuKJD.PDDForms.ProductForms public void GetToken(ShopLoginInfo shop) { if (!dicShopGetCount.Keys.Contains(shop)) + { + var antiLst = shop.AntiContents.Take(Math.Max(1, shop.AntiContents.Count - 5)).ToList(); + shop.AntiContents.RemoveAll(a => antiLst.Contains(a)); dicShopGetCount[shop] = 100; + } else dicShopGetCount[shop]++; if (dicShopGetCount[shop] > 5) diff --git a/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdUserSelectForm.Designer.cs b/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdUserSelectForm.Designer.cs index f02206d..b0e5d4f 100644 --- a/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdUserSelectForm.Designer.cs +++ b/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdUserSelectForm.Designer.cs @@ -30,15 +30,16 @@ namespace TemuKJD.PDDForms.ProductSelectForms private void InitializeComponent() { this.components = new System.ComponentModel.Container(); - System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle8 = new System.Windows.Forms.DataGridViewCellStyle(); - System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle9 = new System.Windows.Forms.DataGridViewCellStyle(); - System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle10 = new System.Windows.Forms.DataGridViewCellStyle(); - System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle11 = new System.Windows.Forms.DataGridViewCellStyle(); - System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle12 = new System.Windows.Forms.DataGridViewCellStyle(); - System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle13 = new System.Windows.Forms.DataGridViewCellStyle(); - System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle14 = 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(); + 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(); this.splitContainer1 = new System.Windows.Forms.SplitContainer(); this.ucGroupBoxEx2 = new TemuKJD.UserComponent.UcGroupBoxEx(this.components); + this.chkDisturbGoodsName = new TemuKJD.UserComponent.UcCheckBox(this.components); this.chk15996 = new TemuKJD.UserComponent.UcCheckBox(this.components); this.chk21365 = new TemuKJD.UserComponent.UcCheckBox(this.components); this.label21 = new System.Windows.Forms.Label(); @@ -118,23 +119,18 @@ namespace TemuKJD.PDDForms.ProductSelectForms this.lblGoodsCount = new System.Windows.Forms.Label(); this.label16 = new System.Windows.Forms.Label(); this.ucGroupBoxEx1 = new TemuKJD.UserComponent.UcGroupBoxEx(this.components); + this.btnClearShopFilter = new DevComponents.DotNetBar.PanelEx(); + this.btnFilter = new DevComponents.DotNetBar.PanelEx(); + this.txtShopGroupFilter = new System.Windows.Forms.TextBox(); + this.txtShopNameFilter = new System.Windows.Forms.TextBox(); + this.label23 = new System.Windows.Forms.Label(); + this.label22 = new System.Windows.Forms.Label(); this.btnRefreshApi = new DevComponents.DotNetBar.PanelEx(); this.btnRefreshShop = new DevComponents.DotNetBar.PanelEx(); this.splitContainer3 = new System.Windows.Forms.SplitContainer(); this.splitContainer2 = new System.Windows.Forms.SplitContainer(); this.pbShopLoading = new System.Windows.Forms.PictureBox(); this.dgvShop = new TemuKJD.UserComponent.DataGridViewEx(); - this.colSelect = new System.Windows.Forms.DataGridViewCheckBoxColumn(); - this.colShopLoginName = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.colShopId = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.colShopName = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.colShopNotes = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.colSelectProduct = new System.Windows.Forms.DataGridViewLinkColumn(); - this.colLoginStatus = new System.Windows.Forms.DataGridViewLinkColumn(); - this.colApiStatus = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.colCanUse = new System.Windows.Forms.DataGridViewCheckBoxColumn(); - this.colRemaining = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.colMessage = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.txtTest20981 = new System.Windows.Forms.TextBox(); this.btnTest20981 = new DevComponents.DotNetBar.PanelEx(); this.pbLoading = new System.Windows.Forms.PictureBox(); @@ -166,7 +162,17 @@ namespace TemuKJD.PDDForms.ProductSelectForms this.btnClear = new DevComponents.DotNetBar.PanelEx(); this.panelEx1 = new DevComponents.DotNetBar.PanelEx(); this.panel1 = new System.Windows.Forms.Panel(); - this.chkDisturbGoodsName = new TemuKJD.UserComponent.UcCheckBox(this.components); + this.colSelect = new System.Windows.Forms.DataGridViewCheckBoxColumn(); + this.colShopLoginName = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colShopId = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colShopName = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colShopNotes = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colSelectProduct = new System.Windows.Forms.DataGridViewLinkColumn(); + this.colLoginStatus = new System.Windows.Forms.DataGridViewLinkColumn(); + this.colApiStatus = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colCanUse = new System.Windows.Forms.DataGridViewCheckBoxColumn(); + this.colRemaining = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colMessage = new System.Windows.Forms.DataGridViewTextBoxColumn(); ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit(); this.splitContainer1.Panel1.SuspendLayout(); this.splitContainer1.Panel2.SuspendLayout(); @@ -287,6 +293,16 @@ namespace TemuKJD.PDDForms.ProductSelectForms this.ucGroupBoxEx2.TabStop = false; this.ucGroupBoxEx2.Text = "商品上传"; // + // chkDisturbGoodsName + // + this.chkDisturbGoodsName.AutoSize = true; + this.chkDisturbGoodsName.Location = new System.Drawing.Point(845, 38); + this.chkDisturbGoodsName.Name = "chkDisturbGoodsName"; + this.chkDisturbGoodsName.Size = new System.Drawing.Size(75, 21); + this.chkDisturbGoodsName.TabIndex = 838; + this.chkDisturbGoodsName.Text = "标题打乱"; + this.chkDisturbGoodsName.UseVisualStyleBackColor = true; + // // chk15996 // this.chk15996.AutoSize = true; @@ -1338,6 +1354,12 @@ namespace TemuKJD.PDDForms.ProductSelectForms | System.Windows.Forms.AnchorStyles.Left))); this.ucGroupBoxEx1.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); this.ucGroupBoxEx1.BorderStyle = TemuKJD.UserComponent.UcGroupBoxEx.GroupBoxBorderStyle.ROUND; + this.ucGroupBoxEx1.Controls.Add(this.btnClearShopFilter); + this.ucGroupBoxEx1.Controls.Add(this.btnFilter); + this.ucGroupBoxEx1.Controls.Add(this.txtShopGroupFilter); + this.ucGroupBoxEx1.Controls.Add(this.txtShopNameFilter); + this.ucGroupBoxEx1.Controls.Add(this.label23); + this.ucGroupBoxEx1.Controls.Add(this.label22); this.ucGroupBoxEx1.Controls.Add(this.btnRefreshApi); this.ucGroupBoxEx1.Controls.Add(this.btnRefreshShop); this.ucGroupBoxEx1.Location = new System.Drawing.Point(3, 2); @@ -1347,6 +1369,92 @@ namespace TemuKJD.PDDForms.ProductSelectForms this.ucGroupBoxEx1.TabStop = false; this.ucGroupBoxEx1.Text = "基础"; // + // btnClearShopFilter + // + this.btnClearShopFilter.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.btnClearShopFilter.CanvasColor = System.Drawing.SystemColors.Control; + this.btnClearShopFilter.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; + this.btnClearShopFilter.DisabledBackColor = System.Drawing.Color.Empty; + this.btnClearShopFilter.Location = new System.Drawing.Point(59, 102); + this.btnClearShopFilter.Margin = new System.Windows.Forms.Padding(4, 2, 2, 2); + this.btnClearShopFilter.Name = "btnClearShopFilter"; + this.btnClearShopFilter.Size = new System.Drawing.Size(38, 23); + this.btnClearShopFilter.Style.Alignment = System.Drawing.StringAlignment.Center; + this.btnClearShopFilter.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255))))); + this.btnClearShopFilter.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255))))); + this.btnClearShopFilter.Style.Border = DevComponents.DotNetBar.eBorderType.SingleLine; + this.btnClearShopFilter.Style.BorderColor.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnClearShopFilter.Style.ForeColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText; + this.btnClearShopFilter.Style.GradientAngle = 90; + this.btnClearShopFilter.StyleMouseDown.Alignment = System.Drawing.StringAlignment.Center; + this.btnClearShopFilter.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center; + this.btnClearShopFilter.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnClearShopFilter.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnClearShopFilter.StyleMouseOver.ForeColor.Color = System.Drawing.Color.White; + this.btnClearShopFilter.TabIndex = 565; + this.btnClearShopFilter.Text = "清空\r\n"; + this.btnClearShopFilter.Click += new System.EventHandler(this.btnClearShopFilter_Click); + // + // btnFilter + // + this.btnFilter.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; + this.btnFilter.Cursor = System.Windows.Forms.Cursors.Hand; + this.btnFilter.DisabledBackColor = System.Drawing.Color.Empty; + this.btnFilter.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.btnFilter.Location = new System.Drawing.Point(100, 102); + this.btnFilter.Name = "btnFilter"; + this.btnFilter.Size = new System.Drawing.Size(38, 23); + this.btnFilter.Style.Alignment = System.Drawing.StringAlignment.Center; + this.btnFilter.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnFilter.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnFilter.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; + this.btnFilter.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash; + this.btnFilter.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None; + this.btnFilter.Style.ForeColor.Color = System.Drawing.Color.White; + this.btnFilter.Style.GradientAngle = 90; + this.btnFilter.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center; + this.btnFilter.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnFilter.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnFilter.TabIndex = 561; + this.btnFilter.Text = "筛选"; + this.btnFilter.Click += new System.EventHandler(this.btnFilter_Click); + // + // txtShopGroupFilter + // + this.txtShopGroupFilter.Location = new System.Drawing.Point(37, 74); + this.txtShopGroupFilter.Margin = new System.Windows.Forms.Padding(0, 2, 0, 2); + this.txtShopGroupFilter.Name = "txtShopGroupFilter"; + this.txtShopGroupFilter.Size = new System.Drawing.Size(101, 23); + this.txtShopGroupFilter.TabIndex = 557; + // + // txtShopNameFilter + // + this.txtShopNameFilter.Location = new System.Drawing.Point(37, 47); + this.txtShopNameFilter.Margin = new System.Windows.Forms.Padding(0, 2, 0, 2); + this.txtShopNameFilter.Name = "txtShopNameFilter"; + this.txtShopNameFilter.Size = new System.Drawing.Size(101, 23); + this.txtShopNameFilter.TabIndex = 556; + // + // label23 + // + this.label23.AutoSize = true; + this.label23.Location = new System.Drawing.Point(5, 76); + this.label23.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0); + this.label23.Name = "label23"; + this.label23.Size = new System.Drawing.Size(32, 17); + this.label23.TabIndex = 539; + this.label23.Text = "备注"; + // + // label22 + // + this.label22.AutoSize = true; + this.label22.Location = new System.Drawing.Point(5, 50); + this.label22.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0); + this.label22.Name = "label22"; + this.label22.Size = new System.Drawing.Size(32, 17); + this.label22.TabIndex = 538; + this.label22.Text = "店名"; + // // btnRefreshApi // this.btnRefreshApi.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); @@ -1354,7 +1462,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms this.btnRefreshApi.Cursor = System.Windows.Forms.Cursors.Hand; this.btnRefreshApi.DisabledBackColor = System.Drawing.Color.Empty; this.btnRefreshApi.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.btnRefreshApi.Location = new System.Drawing.Point(74, 21); + this.btnRefreshApi.Location = new System.Drawing.Point(74, 19); this.btnRefreshApi.Name = "btnRefreshApi"; this.btnRefreshApi.Size = new System.Drawing.Size(64, 24); this.btnRefreshApi.Style.Alignment = System.Drawing.StringAlignment.Center; @@ -1379,7 +1487,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms this.btnRefreshShop.Cursor = System.Windows.Forms.Cursors.Hand; this.btnRefreshShop.DisabledBackColor = System.Drawing.Color.Empty; this.btnRefreshShop.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.btnRefreshShop.Location = new System.Drawing.Point(8, 21); + this.btnRefreshShop.Location = new System.Drawing.Point(8, 19); this.btnRefreshShop.Name = "btnRefreshShop"; this.btnRefreshShop.Size = new System.Drawing.Size(64, 24); this.btnRefreshShop.Style.Alignment = System.Drawing.StringAlignment.Center; @@ -1456,19 +1564,19 @@ namespace TemuKJD.PDDForms.ProductSelectForms // this.dgvShop.AllowUserToAddRows = false; this.dgvShop.AllowUserToDeleteRows = false; - dataGridViewCellStyle8.BackColor = System.Drawing.Color.WhiteSmoke; - this.dgvShop.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle8; + dataGridViewCellStyle1.BackColor = System.Drawing.Color.WhiteSmoke; + this.dgvShop.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle1; this.dgvShop.AutoRowNumber = true; this.dgvShop.BackgroundColor = System.Drawing.Color.White; this.dgvShop.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); - dataGridViewCellStyle9.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; - dataGridViewCellStyle9.BackColor = System.Drawing.SystemColors.Control; - dataGridViewCellStyle9.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - dataGridViewCellStyle9.ForeColor = System.Drawing.SystemColors.WindowText; - dataGridViewCellStyle9.SelectionBackColor = System.Drawing.SystemColors.Highlight; - dataGridViewCellStyle9.SelectionForeColor = System.Drawing.SystemColors.HighlightText; - dataGridViewCellStyle9.WrapMode = System.Windows.Forms.DataGridViewTriState.False; - this.dgvShop.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle9; + 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, @@ -1493,95 +1601,6 @@ namespace TemuKJD.PDDForms.ProductSelectForms this.dgvShop.TabIndex = 6; this.dgvShop.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dgvShop_CellContentClick); // - // colSelect - // - this.colSelect.HeaderText = "全选"; - this.colSelect.Name = "colSelect"; - this.colSelect.ReadOnly = true; - this.colSelect.Resizable = System.Windows.Forms.DataGridViewTriState.True; - this.colSelect.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; - this.colSelect.Width = 28; - // - // colShopLoginName - // - this.colShopLoginName.HeaderText = "店铺登录名"; - this.colShopLoginName.Name = "colShopLoginName"; - this.colShopLoginName.ReadOnly = true; - this.colShopLoginName.Visible = false; - // - // colShopId - // - this.colShopId.HeaderText = "店铺Id"; - this.colShopId.Name = "colShopId"; - this.colShopId.ReadOnly = true; - this.colShopId.Visible = false; - this.colShopId.Width = 55; - // - // colShopName - // - this.colShopName.FillWeight = 150F; - this.colShopName.HeaderText = "店铺名称"; - this.colShopName.Name = "colShopName"; - this.colShopName.ReadOnly = true; - this.colShopName.Resizable = System.Windows.Forms.DataGridViewTriState.True; - this.colShopName.Width = 70; - // - // colShopNotes - // - this.colShopNotes.HeaderText = "分组"; - this.colShopNotes.Name = "colShopNotes"; - this.colShopNotes.ReadOnly = true; - this.colShopNotes.Width = 70; - // - // colSelectProduct - // - this.colSelectProduct.HeaderText = "选择商品"; - this.colSelectProduct.Name = "colSelectProduct"; - this.colSelectProduct.ReadOnly = true; - this.colSelectProduct.Resizable = System.Windows.Forms.DataGridViewTriState.True; - this.colSelectProduct.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; - this.colSelectProduct.Visible = false; - this.colSelectProduct.Width = 62; - // - // colLoginStatus - // - this.colLoginStatus.HeaderText = "状态"; - this.colLoginStatus.Name = "colLoginStatus"; - this.colLoginStatus.ReadOnly = true; - this.colLoginStatus.Resizable = System.Windows.Forms.DataGridViewTriState.True; - this.colLoginStatus.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; - this.colLoginStatus.Width = 38; - // - // colApiStatus - // - this.colApiStatus.HeaderText = "授权"; - this.colApiStatus.Name = "colApiStatus"; - this.colApiStatus.ReadOnly = true; - this.colApiStatus.Width = 38; - // - // colCanUse - // - this.colCanUse.HeaderText = "可用"; - this.colCanUse.Name = "colCanUse"; - this.colCanUse.ReadOnly = true; - this.colCanUse.Resizable = System.Windows.Forms.DataGridViewTriState.True; - this.colCanUse.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; - this.colCanUse.Visible = false; - this.colCanUse.Width = 28; - // - // colRemaining - // - this.colRemaining.HeaderText = "月限额"; - this.colRemaining.Name = "colRemaining"; - this.colRemaining.ReadOnly = true; - this.colRemaining.Visible = false; - // - // colMessage - // - this.colMessage.HeaderText = "消息"; - this.colMessage.Name = "colMessage"; - this.colMessage.ReadOnly = true; - // // txtTest20981 // this.txtTest20981.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); @@ -1635,19 +1654,19 @@ namespace TemuKJD.PDDForms.ProductSelectForms // this.dgvSelectProduct.AllowUserToAddRows = false; this.dgvSelectProduct.AllowUserToDeleteRows = false; - dataGridViewCellStyle10.BackColor = System.Drawing.Color.WhiteSmoke; - this.dgvSelectProduct.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle10; + dataGridViewCellStyle3.BackColor = System.Drawing.Color.WhiteSmoke; + this.dgvSelectProduct.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle3; this.dgvSelectProduct.AutoRowNumber = true; this.dgvSelectProduct.BackgroundColor = System.Drawing.Color.White; this.dgvSelectProduct.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); - dataGridViewCellStyle11.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; - dataGridViewCellStyle11.BackColor = System.Drawing.SystemColors.Control; - dataGridViewCellStyle11.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - dataGridViewCellStyle11.ForeColor = System.Drawing.SystemColors.WindowText; - dataGridViewCellStyle11.SelectionBackColor = System.Drawing.SystemColors.Highlight; - dataGridViewCellStyle11.SelectionForeColor = System.Drawing.SystemColors.HighlightText; - dataGridViewCellStyle11.WrapMode = System.Windows.Forms.DataGridViewTriState.False; - this.dgvSelectProduct.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle11; + dataGridViewCellStyle4.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; + dataGridViewCellStyle4.BackColor = System.Drawing.SystemColors.Control; + dataGridViewCellStyle4.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + dataGridViewCellStyle4.ForeColor = System.Drawing.SystemColors.WindowText; + dataGridViewCellStyle4.SelectionBackColor = System.Drawing.SystemColors.Highlight; + dataGridViewCellStyle4.SelectionForeColor = System.Drawing.SystemColors.HighlightText; + dataGridViewCellStyle4.WrapMode = System.Windows.Forms.DataGridViewTriState.False; + this.dgvSelectProduct.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle4; this.dgvSelectProduct.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; this.dgvSelectProduct.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { this.colCheck, @@ -1709,8 +1728,8 @@ namespace TemuKJD.PDDForms.ProductSelectForms // // colSupplierName // - dataGridViewCellStyle12.WrapMode = System.Windows.Forms.DataGridViewTriState.True; - this.colSupplierName.DefaultCellStyle = dataGridViewCellStyle12; + dataGridViewCellStyle5.WrapMode = System.Windows.Forms.DataGridViewTriState.True; + this.colSupplierName.DefaultCellStyle = dataGridViewCellStyle5; this.colSupplierName.Frozen = true; this.colSupplierName.HeaderText = "店铺名称"; this.colSupplierName.Name = "colSupplierName"; @@ -1788,8 +1807,8 @@ namespace TemuKJD.PDDForms.ProductSelectForms // // colProductName // - dataGridViewCellStyle13.WrapMode = System.Windows.Forms.DataGridViewTriState.True; - this.colProductName.DefaultCellStyle = dataGridViewCellStyle13; + dataGridViewCellStyle6.WrapMode = System.Windows.Forms.DataGridViewTriState.True; + this.colProductName.DefaultCellStyle = dataGridViewCellStyle6; this.colProductName.HeaderText = "商品标题"; this.colProductName.Name = "colProductName"; this.colProductName.ReadOnly = true; @@ -1849,8 +1868,8 @@ namespace TemuKJD.PDDForms.ProductSelectForms // // colAddTime // - dataGridViewCellStyle14.WrapMode = System.Windows.Forms.DataGridViewTriState.True; - this.colAddTime.DefaultCellStyle = dataGridViewCellStyle14; + dataGridViewCellStyle7.WrapMode = System.Windows.Forms.DataGridViewTriState.True; + this.colAddTime.DefaultCellStyle = dataGridViewCellStyle7; this.colAddTime.FillWeight = 80F; this.colAddTime.HeaderText = "上传时间"; this.colAddTime.Name = "colAddTime"; @@ -1954,15 +1973,94 @@ namespace TemuKJD.PDDForms.ProductSelectForms this.panel1.TabIndex = 189; this.panel1.Paint += new System.Windows.Forms.PaintEventHandler(this.panel1_Paint); // - // chkDisturbGoodsName + // colSelect // - this.chkDisturbGoodsName.AutoSize = true; - this.chkDisturbGoodsName.Location = new System.Drawing.Point(845, 38); - this.chkDisturbGoodsName.Name = "chkDisturbGoodsName"; - this.chkDisturbGoodsName.Size = new System.Drawing.Size(75, 21); - this.chkDisturbGoodsName.TabIndex = 838; - this.chkDisturbGoodsName.Text = "标题打乱"; - this.chkDisturbGoodsName.UseVisualStyleBackColor = true; + this.colSelect.HeaderText = "全选"; + this.colSelect.Name = "colSelect"; + this.colSelect.ReadOnly = true; + this.colSelect.Resizable = System.Windows.Forms.DataGridViewTriState.True; + this.colSelect.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; + this.colSelect.Width = 28; + // + // colShopLoginName + // + this.colShopLoginName.HeaderText = "店铺登录名"; + this.colShopLoginName.Name = "colShopLoginName"; + this.colShopLoginName.ReadOnly = true; + this.colShopLoginName.Visible = false; + // + // colShopId + // + this.colShopId.HeaderText = "店铺Id"; + this.colShopId.Name = "colShopId"; + this.colShopId.ReadOnly = true; + this.colShopId.Visible = false; + this.colShopId.Width = 55; + // + // colShopName + // + this.colShopName.FillWeight = 150F; + this.colShopName.HeaderText = "店铺名称"; + this.colShopName.Name = "colShopName"; + this.colShopName.ReadOnly = true; + this.colShopName.Resizable = System.Windows.Forms.DataGridViewTriState.True; + this.colShopName.Width = 70; + // + // colShopNotes + // + this.colShopNotes.HeaderText = "备注"; + this.colShopNotes.Name = "colShopNotes"; + this.colShopNotes.ReadOnly = true; + this.colShopNotes.Width = 70; + // + // colSelectProduct + // + this.colSelectProduct.HeaderText = "选择商品"; + this.colSelectProduct.Name = "colSelectProduct"; + this.colSelectProduct.ReadOnly = true; + this.colSelectProduct.Resizable = System.Windows.Forms.DataGridViewTriState.True; + this.colSelectProduct.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; + this.colSelectProduct.Visible = false; + this.colSelectProduct.Width = 62; + // + // colLoginStatus + // + this.colLoginStatus.HeaderText = "状态"; + this.colLoginStatus.Name = "colLoginStatus"; + this.colLoginStatus.ReadOnly = true; + this.colLoginStatus.Resizable = System.Windows.Forms.DataGridViewTriState.True; + this.colLoginStatus.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; + this.colLoginStatus.Width = 38; + // + // colApiStatus + // + this.colApiStatus.HeaderText = "授权"; + this.colApiStatus.Name = "colApiStatus"; + this.colApiStatus.ReadOnly = true; + this.colApiStatus.Width = 38; + // + // colCanUse + // + this.colCanUse.HeaderText = "可用"; + this.colCanUse.Name = "colCanUse"; + this.colCanUse.ReadOnly = true; + this.colCanUse.Resizable = System.Windows.Forms.DataGridViewTriState.True; + this.colCanUse.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; + this.colCanUse.Visible = false; + this.colCanUse.Width = 28; + // + // colRemaining + // + this.colRemaining.HeaderText = "月限额"; + this.colRemaining.Name = "colRemaining"; + this.colRemaining.ReadOnly = true; + this.colRemaining.Visible = false; + // + // colMessage + // + this.colMessage.HeaderText = "消息"; + this.colMessage.Name = "colMessage"; + this.colMessage.ReadOnly = true; // // PDDDBProdUserSelectForm // @@ -1994,6 +2092,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms this.ucGroupBoxEx4.PerformLayout(); ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); this.ucGroupBoxEx1.ResumeLayout(false); + this.ucGroupBoxEx1.PerformLayout(); this.splitContainer3.Panel1.ResumeLayout(false); this.splitContainer3.Panel2.ResumeLayout(false); ((System.ComponentModel.ISupportInitialize)(this.splitContainer3)).EndInit(); @@ -2103,17 +2202,6 @@ namespace TemuKJD.PDDForms.ProductSelectForms private UserComponent.UcCheckBox chkSkipQualification; private DevComponents.DotNetBar.PanelEx btnApiUpload; private DevComponents.DotNetBar.PanelEx btnRefreshApi; - private System.Windows.Forms.DataGridViewCheckBoxColumn colSelect; - private System.Windows.Forms.DataGridViewTextBoxColumn colShopLoginName; - private System.Windows.Forms.DataGridViewTextBoxColumn colShopId; - private System.Windows.Forms.DataGridViewTextBoxColumn colShopName; - private System.Windows.Forms.DataGridViewTextBoxColumn colShopNotes; - private System.Windows.Forms.DataGridViewLinkColumn colSelectProduct; - private System.Windows.Forms.DataGridViewLinkColumn colLoginStatus; - private System.Windows.Forms.DataGridViewTextBoxColumn colApiStatus; - private System.Windows.Forms.DataGridViewCheckBoxColumn colCanUse; - private System.Windows.Forms.DataGridViewTextBoxColumn colRemaining; - private System.Windows.Forms.DataGridViewTextBoxColumn colMessage; private System.Windows.Forms.DataGridViewCheckBoxColumn colCheck; private System.Windows.Forms.DataGridViewTextBoxColumn colSelectId; private System.Windows.Forms.DataGridViewTextBoxColumn colSupplierId; @@ -2147,5 +2235,22 @@ namespace TemuKJD.PDDForms.ProductSelectForms private DevComponents.DotNetBar.Controls.Line line1; private DevComponents.DotNetBar.Controls.Line line2; private UserComponent.UcCheckBox chkDisturbGoodsName; + private DevComponents.DotNetBar.PanelEx btnClearShopFilter; + private DevComponents.DotNetBar.PanelEx btnFilter; + private System.Windows.Forms.TextBox txtShopGroupFilter; + private System.Windows.Forms.TextBox txtShopNameFilter; + private System.Windows.Forms.Label label23; + private System.Windows.Forms.Label label22; + private System.Windows.Forms.DataGridViewCheckBoxColumn colSelect; + private System.Windows.Forms.DataGridViewTextBoxColumn colShopLoginName; + private System.Windows.Forms.DataGridViewTextBoxColumn colShopId; + private System.Windows.Forms.DataGridViewTextBoxColumn colShopName; + private System.Windows.Forms.DataGridViewTextBoxColumn colShopNotes; + private System.Windows.Forms.DataGridViewLinkColumn colSelectProduct; + private System.Windows.Forms.DataGridViewLinkColumn colLoginStatus; + private System.Windows.Forms.DataGridViewTextBoxColumn colApiStatus; + private System.Windows.Forms.DataGridViewCheckBoxColumn colCanUse; + private System.Windows.Forms.DataGridViewTextBoxColumn colRemaining; + private System.Windows.Forms.DataGridViewTextBoxColumn colMessage; } } \ No newline at end of file diff --git a/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdUserSelectForm.cs b/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdUserSelectForm.cs index 9870f2a..0f37ecf 100644 --- a/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdUserSelectForm.cs +++ b/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdUserSelectForm.cs @@ -7407,6 +7407,11 @@ Content-Type: image/jpeg skuInfo.quantity = txtStockNum.Text.Trim().ParseToInt(); var new_multi_price = sku.multi_price + (shipPrice * defaultAddPriceRule.AddShippingFeeTimes).ParseToInt(); + // 使用货号价格做基础价 + if (chkUseExtCodePrice.Checked && dbProd.ext_code_price > 0) + { + new_multi_price = dbProd.ext_code_price + (shipPrice * defaultAddPriceRule.AddShippingFeeTimes).ParseToInt(); + } skuInfo.multi_price = (new_multi_price * this.txtAddTimesFake.Text.Trim().ParseToDecimal() + this.txtAddMorePrice.Text.Trim().ParseToDecimal() * 100).ParseToInt(); //skuInfo.price = (sku.price * this.txtAddTimesFake.Text.Trim().ParseToDecimal() + this.txtAddMorePrice.Text.Trim().ParseToDecimal() * 100).ParseToInt(); @@ -7474,11 +7479,11 @@ Content-Type: image/jpeg //break; } - foreach (var sk in addPriceFakeSkuInfoLst) - { - sk.multi_price = maxPrice1; - sk.price = maxPrice1 + 100; - } + //foreach (var sk in addPriceFakeSkuInfoLst) + //{ + // sk.multi_price = maxPrice1; + // sk.price = maxPrice1 + 100; + //} } #endregion @@ -7497,6 +7502,11 @@ Content-Type: image/jpeg skuInfo.quantity = txtStockNum.Text.Trim().ParseToInt(); var new_multi_price = sku.multi_price + (shipPrice * defaultAddPriceRule.AddShippingFeeTimes).ParseToInt(); + // 使用货号价格做基础价 + if (chkUseExtCodePrice.Checked && dbProd.ext_code_price > 0) + { + new_multi_price = dbProd.ext_code_price + (shipPrice * defaultAddPriceRule.AddShippingFeeTimes).ParseToInt(); + } skuInfo.multi_price = (new_multi_price * this.txtAddTimes.Text.Trim().ParseToDecimal() + this.txtAddMorePrice.Text.Trim().ParseToDecimal() * 100).ParseToInt(); //skuInfo.price = (sku.price * this.txtAddTimes.Text.Trim().ParseToDecimal() + this.txtAddMorePrice.Text.Trim().ParseToDecimal() * 100).ParseToInt(); @@ -8353,6 +8363,30 @@ Content-Type: image/jpeg lblWaitToUp.Text = "待上传 " + lstTemuDBProductSelect.Count + " 件"; })); } + + private void btnClearShopFilter_Click(object sender, EventArgs e) + { + txtShopGroupFilter.Text = ""; + txtShopNameFilter.Text = ""; + } + + private void btnFilter_Click(object sender, EventArgs e) + { + foreach(DataGridViewRow r in dgvShop.Rows) + { + r.Visible = true; + if (!string.IsNullOrWhiteSpace(txtShopNameFilter.Text)) + { + if (!r.Cells["colShopName"].Value.ParseToString().Contains(txtShopNameFilter.Text.Trim())) + r.Visible = false; + } + if (!string.IsNullOrWhiteSpace(txtShopGroupFilter.Text)) + { + if (!r.Cells["colShopNotes"].Value.ParseToString().Contains(txtShopGroupFilter.Text.Trim())) + r.Visible = false; + } + } + } } public class AddPriceRule @@ -8395,7 +8429,7 @@ Content-Type: image/jpeg /// /// 是否报名活动(提交一个虚拟高倍率加价再通过活动价格实现商品原价) /// - public bool IsSignActivity { get; set; } = true; + public bool IsSignActivity { get; set; } = false; /// /// 准备报名活动的商品原价加价倍率 /// diff --git a/TEMUKJD/PDDForms/ProductSelectForms/PDDGetChanceProdByImgForm.Designer.cs b/TEMUKJD/PDDForms/ProductSelectForms/PDDGetChanceProdByImgForm.Designer.cs index fa9f350..bbbceb7 100644 --- a/TEMUKJD/PDDForms/ProductSelectForms/PDDGetChanceProdByImgForm.Designer.cs +++ b/TEMUKJD/PDDForms/ProductSelectForms/PDDGetChanceProdByImgForm.Designer.cs @@ -30,15 +30,16 @@ namespace TemuKJD.PDDForms.ProductSelectForms private void InitializeComponent() { this.components = new System.ComponentModel.Container(); - System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle8 = new System.Windows.Forms.DataGridViewCellStyle(); - System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle9 = new System.Windows.Forms.DataGridViewCellStyle(); - System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle10 = new System.Windows.Forms.DataGridViewCellStyle(); - System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle11 = new System.Windows.Forms.DataGridViewCellStyle(); - System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle12 = new System.Windows.Forms.DataGridViewCellStyle(); - System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle13 = new System.Windows.Forms.DataGridViewCellStyle(); - System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle14 = 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(); + 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(); this.splitContainer1 = new System.Windows.Forms.SplitContainer(); this.ucGroupBoxEx1 = new TemuKJD.UserComponent.UcGroupBoxEx(this.components); + this.chkReGet = new TemuKJD.UserComponent.UcCheckBox(this.components); this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); this.txtPrice = new System.Windows.Forms.TextBox(); this.label13 = new System.Windows.Forms.Label(); @@ -75,15 +76,6 @@ namespace TemuKJD.PDDForms.ProductSelectForms this.splitContainer3 = new System.Windows.Forms.SplitContainer(); this.pbShopLoading = new System.Windows.Forms.PictureBox(); this.dgvShop = new TemuKJD.UserComponent.DataGridViewEx(); - this.colSelect = new System.Windows.Forms.DataGridViewCheckBoxColumn(); - this.colUserName = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.colShopLoginName = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.colShopId = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.colShopName = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.colShopNotes = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.colLoginStatus = new System.Windows.Forms.DataGridViewLinkColumn(); - this.colCanUse = new System.Windows.Forms.DataGridViewCheckBoxColumn(); - this.colMessage = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.txtSearchChance = new System.Windows.Forms.TextBox(); this.txtSearchCount = new System.Windows.Forms.TextBox(); this.cmbSearchLabel = new System.Windows.Forms.ComboBox(); @@ -115,7 +107,15 @@ namespace TemuKJD.PDDForms.ProductSelectForms this.chk = new TemuKJD.UserComponent.UcCheckBox(this.components); this.statusBar = new TemuKJD.UserControls.StatusBarUserControl(); this.ucSplitPage1 = new TemuKJD.UserControls.UcSplitPage(); - this.chkReGet = new TemuKJD.UserComponent.UcCheckBox(this.components); + this.colSelect = new System.Windows.Forms.DataGridViewCheckBoxColumn(); + this.colUserName = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colShopLoginName = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colShopId = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colShopName = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colShopNotes = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colLoginStatus = new System.Windows.Forms.DataGridViewLinkColumn(); + this.colCanUse = new System.Windows.Forms.DataGridViewCheckBoxColumn(); + this.colMessage = new System.Windows.Forms.DataGridViewTextBoxColumn(); ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit(); this.splitContainer1.Panel1.SuspendLayout(); this.splitContainer1.Panel2.SuspendLayout(); @@ -195,6 +195,17 @@ namespace TemuKJD.PDDForms.ProductSelectForms this.ucGroupBoxEx1.TabStop = false; this.ucGroupBoxEx1.Text = "操作"; // + // chkReGet + // + this.chkReGet.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.chkReGet.AutoSize = true; + this.chkReGet.Location = new System.Drawing.Point(1173, 21); + this.chkReGet.Name = "chkReGet"; + this.chkReGet.Size = new System.Drawing.Size(159, 21); + this.chkReGet.TabIndex = 1096; + this.chkReGet.Text = "再次获取已获取过的商品"; + this.chkReGet.UseVisualStyleBackColor = true; + // // tableLayoutPanel1 // this.tableLayoutPanel1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left) @@ -652,7 +663,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms this.label4.Name = "label4"; this.label4.Size = new System.Drawing.Size(68, 17); this.label4.TabIndex = 709; - this.label4.Text = "店铺分组:"; + this.label4.Text = "店铺备注:"; // // label3 // @@ -736,19 +747,19 @@ namespace TemuKJD.PDDForms.ProductSelectForms // this.dgvShop.AllowUserToAddRows = false; this.dgvShop.AllowUserToDeleteRows = false; - dataGridViewCellStyle8.BackColor = System.Drawing.Color.WhiteSmoke; - this.dgvShop.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle8; + dataGridViewCellStyle1.BackColor = System.Drawing.Color.WhiteSmoke; + this.dgvShop.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle1; this.dgvShop.AutoRowNumber = true; this.dgvShop.BackgroundColor = System.Drawing.Color.White; this.dgvShop.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); - dataGridViewCellStyle9.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; - dataGridViewCellStyle9.BackColor = System.Drawing.SystemColors.Control; - dataGridViewCellStyle9.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - dataGridViewCellStyle9.ForeColor = System.Drawing.SystemColors.WindowText; - dataGridViewCellStyle9.SelectionBackColor = System.Drawing.SystemColors.Highlight; - dataGridViewCellStyle9.SelectionForeColor = System.Drawing.SystemColors.HighlightText; - dataGridViewCellStyle9.WrapMode = System.Windows.Forms.DataGridViewTriState.False; - this.dgvShop.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle9; + 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, @@ -762,6 +773,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms this.colMessage}); this.dgvShop.Dock = System.Windows.Forms.DockStyle.Fill; this.dgvShop.Location = new System.Drawing.Point(0, 0); + this.dgvShop.MultiSelectCheckBox = true; this.dgvShop.Name = "dgvShop"; this.dgvShop.ReadOnly = true; this.dgvShop.RowHeadersWidth = 25; @@ -770,78 +782,6 @@ namespace TemuKJD.PDDForms.ProductSelectForms this.dgvShop.TabIndex = 7; this.dgvShop.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dgvShop_CellContentClick); // - // colSelect - // - this.colSelect.HeaderText = "全选"; - this.colSelect.Name = "colSelect"; - this.colSelect.ReadOnly = true; - this.colSelect.Resizable = System.Windows.Forms.DataGridViewTriState.True; - this.colSelect.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; - this.colSelect.Width = 28; - // - // colUserName - // - this.colUserName.HeaderText = "店铺所属用户名称"; - this.colUserName.Name = "colUserName"; - this.colUserName.ReadOnly = true; - this.colUserName.Visible = false; - // - // colShopLoginName - // - this.colShopLoginName.HeaderText = "店铺登录名"; - this.colShopLoginName.Name = "colShopLoginName"; - this.colShopLoginName.ReadOnly = true; - this.colShopLoginName.Visible = false; - // - // colShopId - // - this.colShopId.HeaderText = "店铺Id"; - this.colShopId.Name = "colShopId"; - this.colShopId.ReadOnly = true; - this.colShopId.Visible = false; - this.colShopId.Width = 55; - // - // colShopName - // - this.colShopName.FillWeight = 150F; - this.colShopName.HeaderText = "店铺名称"; - this.colShopName.Name = "colShopName"; - this.colShopName.ReadOnly = true; - this.colShopName.Resizable = System.Windows.Forms.DataGridViewTriState.True; - this.colShopName.Width = 70; - // - // colShopNotes - // - this.colShopNotes.HeaderText = "分组"; - this.colShopNotes.Name = "colShopNotes"; - this.colShopNotes.ReadOnly = true; - this.colShopNotes.Width = 70; - // - // colLoginStatus - // - this.colLoginStatus.HeaderText = "状态"; - this.colLoginStatus.Name = "colLoginStatus"; - this.colLoginStatus.ReadOnly = true; - this.colLoginStatus.Resizable = System.Windows.Forms.DataGridViewTriState.True; - this.colLoginStatus.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; - this.colLoginStatus.Width = 40; - // - // colCanUse - // - this.colCanUse.HeaderText = "可用"; - this.colCanUse.Name = "colCanUse"; - this.colCanUse.ReadOnly = true; - this.colCanUse.Resizable = System.Windows.Forms.DataGridViewTriState.True; - this.colCanUse.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; - this.colCanUse.Visible = false; - this.colCanUse.Width = 28; - // - // colMessage - // - this.colMessage.HeaderText = "消息"; - this.colMessage.Name = "colMessage"; - this.colMessage.ReadOnly = true; - // // txtSearchChance // this.txtSearchChance.Location = new System.Drawing.Point(86, 106); @@ -1038,20 +978,20 @@ namespace TemuKJD.PDDForms.ProductSelectForms // this.dgvChanceProduct.AllowUserToAddRows = false; this.dgvChanceProduct.AllowUserToDeleteRows = false; - dataGridViewCellStyle10.BackColor = System.Drawing.Color.WhiteSmoke; - this.dgvChanceProduct.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle10; + dataGridViewCellStyle3.BackColor = System.Drawing.Color.WhiteSmoke; + this.dgvChanceProduct.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle3; this.dgvChanceProduct.AutoRowNumber = true; this.dgvChanceProduct.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.Fill; this.dgvChanceProduct.BackgroundColor = System.Drawing.Color.White; this.dgvChanceProduct.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); - dataGridViewCellStyle11.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; - dataGridViewCellStyle11.BackColor = System.Drawing.SystemColors.Control; - dataGridViewCellStyle11.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - dataGridViewCellStyle11.ForeColor = System.Drawing.SystemColors.WindowText; - dataGridViewCellStyle11.SelectionBackColor = System.Drawing.SystemColors.Highlight; - dataGridViewCellStyle11.SelectionForeColor = System.Drawing.SystemColors.HighlightText; - dataGridViewCellStyle11.WrapMode = System.Windows.Forms.DataGridViewTriState.False; - this.dgvChanceProduct.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle11; + 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.dgvChanceProduct.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle4; this.dgvChanceProduct.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; this.dgvChanceProduct.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { this.colCheck, @@ -1066,6 +1006,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms this.colMsg}); this.dgvChanceProduct.Dock = System.Windows.Forms.DockStyle.Fill; this.dgvChanceProduct.Location = new System.Drawing.Point(0, 0); + this.dgvChanceProduct.MultiSelectCheckBox = true; this.dgvChanceProduct.Name = "dgvChanceProduct"; this.dgvChanceProduct.ReadOnly = true; this.dgvChanceProduct.RowTemplate.Height = 23; @@ -1109,8 +1050,8 @@ namespace TemuKJD.PDDForms.ProductSelectForms // // colGoodsName // - dataGridViewCellStyle12.WrapMode = System.Windows.Forms.DataGridViewTriState.True; - this.colGoodsName.DefaultCellStyle = dataGridViewCellStyle12; + dataGridViewCellStyle5.WrapMode = System.Windows.Forms.DataGridViewTriState.True; + this.colGoodsName.DefaultCellStyle = dataGridViewCellStyle5; this.colGoodsName.FillWeight = 120F; this.colGoodsName.HeaderText = "商品名称"; this.colGoodsName.Name = "colGoodsName"; @@ -1131,8 +1072,8 @@ namespace TemuKJD.PDDForms.ProductSelectForms // // colPrice // - dataGridViewCellStyle13.WrapMode = System.Windows.Forms.DataGridViewTriState.True; - this.colPrice.DefaultCellStyle = dataGridViewCellStyle13; + dataGridViewCellStyle6.WrapMode = System.Windows.Forms.DataGridViewTriState.True; + this.colPrice.DefaultCellStyle = dataGridViewCellStyle6; this.colPrice.FillWeight = 70F; this.colPrice.HeaderText = "价格"; this.colPrice.Name = "colPrice"; @@ -1147,8 +1088,8 @@ namespace TemuKJD.PDDForms.ProductSelectForms // // colMsg // - dataGridViewCellStyle14.WrapMode = System.Windows.Forms.DataGridViewTriState.True; - this.colMsg.DefaultCellStyle = dataGridViewCellStyle14; + dataGridViewCellStyle7.WrapMode = System.Windows.Forms.DataGridViewTriState.True; + this.colMsg.DefaultCellStyle = dataGridViewCellStyle7; this.colMsg.FillWeight = 200F; this.colMsg.HeaderText = "操作结果"; this.colMsg.Name = "colMsg"; @@ -1194,16 +1135,77 @@ namespace TemuKJD.PDDForms.ProductSelectForms this.ucSplitPage1.TotalPage = 1; this.ucSplitPage1.PageChange += new System.Action(this.ucSplitPage1_PageChange); // - // chkReGet + // colSelect // - this.chkReGet.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.chkReGet.AutoSize = true; - this.chkReGet.Location = new System.Drawing.Point(1173, 21); - this.chkReGet.Name = "chkReGet"; - this.chkReGet.Size = new System.Drawing.Size(159, 21); - this.chkReGet.TabIndex = 1096; - this.chkReGet.Text = "再次获取已获取过的商品"; - this.chkReGet.UseVisualStyleBackColor = true; + this.colSelect.HeaderText = "全选"; + this.colSelect.Name = "colSelect"; + this.colSelect.ReadOnly = true; + this.colSelect.Resizable = System.Windows.Forms.DataGridViewTriState.True; + this.colSelect.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; + this.colSelect.Width = 28; + // + // colUserName + // + this.colUserName.HeaderText = "店铺所属用户名称"; + this.colUserName.Name = "colUserName"; + this.colUserName.ReadOnly = true; + this.colUserName.Visible = false; + // + // colShopLoginName + // + this.colShopLoginName.HeaderText = "店铺登录名"; + this.colShopLoginName.Name = "colShopLoginName"; + this.colShopLoginName.ReadOnly = true; + this.colShopLoginName.Visible = false; + // + // colShopId + // + this.colShopId.HeaderText = "店铺Id"; + this.colShopId.Name = "colShopId"; + this.colShopId.ReadOnly = true; + this.colShopId.Visible = false; + this.colShopId.Width = 55; + // + // colShopName + // + this.colShopName.FillWeight = 150F; + this.colShopName.HeaderText = "店铺名称"; + this.colShopName.Name = "colShopName"; + this.colShopName.ReadOnly = true; + this.colShopName.Resizable = System.Windows.Forms.DataGridViewTriState.True; + this.colShopName.Width = 70; + // + // colShopNotes + // + this.colShopNotes.HeaderText = "备注"; + this.colShopNotes.Name = "colShopNotes"; + this.colShopNotes.ReadOnly = true; + this.colShopNotes.Width = 70; + // + // colLoginStatus + // + this.colLoginStatus.HeaderText = "状态"; + this.colLoginStatus.Name = "colLoginStatus"; + this.colLoginStatus.ReadOnly = true; + this.colLoginStatus.Resizable = System.Windows.Forms.DataGridViewTriState.True; + this.colLoginStatus.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; + this.colLoginStatus.Width = 40; + // + // colCanUse + // + this.colCanUse.HeaderText = "可用"; + this.colCanUse.Name = "colCanUse"; + this.colCanUse.ReadOnly = true; + this.colCanUse.Resizable = System.Windows.Forms.DataGridViewTriState.True; + this.colCanUse.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; + this.colCanUse.Visible = false; + this.colCanUse.Width = 28; + // + // colMessage + // + this.colMessage.HeaderText = "消息"; + this.colMessage.Name = "colMessage"; + this.colMessage.ReadOnly = true; // // PDDGetChanceProdByImgForm // @@ -1211,6 +1213,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms this.ClientSize = new System.Drawing.Size(1344, 635); 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 = "PDDGetChanceProdByImgForm"; this.Text = "PDDGetChanceProd"; this.Load += new System.EventHandler(this.PDDGetChanceProd_Load); @@ -1271,15 +1274,6 @@ namespace TemuKJD.PDDForms.ProductSelectForms private UserComponent.UcGroupBoxEx ucGroupBoxEx1; private DevComponents.DotNetBar.PanelEx btnAddToDb; private System.Windows.Forms.PictureBox pbShopLoading; - private System.Windows.Forms.DataGridViewCheckBoxColumn colSelect; - private System.Windows.Forms.DataGridViewTextBoxColumn colUserName; - private System.Windows.Forms.DataGridViewTextBoxColumn colShopLoginName; - private System.Windows.Forms.DataGridViewTextBoxColumn colShopId; - private System.Windows.Forms.DataGridViewTextBoxColumn colShopName; - private System.Windows.Forms.DataGridViewTextBoxColumn colShopNotes; - private System.Windows.Forms.DataGridViewLinkColumn colLoginStatus; - private System.Windows.Forms.DataGridViewCheckBoxColumn colCanUse; - private System.Windows.Forms.DataGridViewTextBoxColumn colMessage; private System.Windows.Forms.TextBox txtSearchCount; private System.Windows.Forms.Label label5; private UserComponent.UcCheckBox chkOverride; @@ -1322,5 +1316,14 @@ namespace TemuKJD.PDDForms.ProductSelectForms private System.Windows.Forms.Label label16; private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1; private UserComponent.UcCheckBox chkReGet; + private System.Windows.Forms.DataGridViewCheckBoxColumn colSelect; + private System.Windows.Forms.DataGridViewTextBoxColumn colUserName; + private System.Windows.Forms.DataGridViewTextBoxColumn colShopLoginName; + private System.Windows.Forms.DataGridViewTextBoxColumn colShopId; + private System.Windows.Forms.DataGridViewTextBoxColumn colShopName; + private System.Windows.Forms.DataGridViewTextBoxColumn colShopNotes; + private System.Windows.Forms.DataGridViewLinkColumn colLoginStatus; + private System.Windows.Forms.DataGridViewCheckBoxColumn colCanUse; + private System.Windows.Forms.DataGridViewTextBoxColumn colMessage; } } \ No newline at end of file diff --git a/TEMUKJD/PDDForms/ProductSelectForms/PDDGetChanceProdForm.Designer.cs b/TEMUKJD/PDDForms/ProductSelectForms/PDDGetChanceProdForm.Designer.cs index bd85cc7..e51b845 100644 --- a/TEMUKJD/PDDForms/ProductSelectForms/PDDGetChanceProdForm.Designer.cs +++ b/TEMUKJD/PDDForms/ProductSelectForms/PDDGetChanceProdForm.Designer.cs @@ -30,13 +30,13 @@ namespace TemuKJD.PDDForms.ProductSelectForms private void InitializeComponent() { this.components = new System.ComponentModel.Container(); - System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle8 = new System.Windows.Forms.DataGridViewCellStyle(); - System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle9 = new System.Windows.Forms.DataGridViewCellStyle(); - System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle10 = new System.Windows.Forms.DataGridViewCellStyle(); - System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle11 = new System.Windows.Forms.DataGridViewCellStyle(); - System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle12 = new System.Windows.Forms.DataGridViewCellStyle(); - System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle13 = new System.Windows.Forms.DataGridViewCellStyle(); - System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle14 = 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(); + 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(); this.splitContainer1 = new System.Windows.Forms.SplitContainer(); this.ucGroupBoxEx1 = new TemuKJD.UserComponent.UcGroupBoxEx(this.components); this.label11 = new System.Windows.Forms.Label(); @@ -77,15 +77,6 @@ namespace TemuKJD.PDDForms.ProductSelectForms this.splitContainer3 = new System.Windows.Forms.SplitContainer(); this.pbShopLoading = new System.Windows.Forms.PictureBox(); this.dgvShop = new TemuKJD.UserComponent.DataGridViewEx(); - this.colSelect = new System.Windows.Forms.DataGridViewCheckBoxColumn(); - this.colUserName = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.colShopLoginName = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.colShopId = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.colShopName = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.colShopNotes = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.colLoginStatus = new System.Windows.Forms.DataGridViewLinkColumn(); - this.colCanUse = new System.Windows.Forms.DataGridViewCheckBoxColumn(); - this.colMessage = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.pbLoading = new System.Windows.Forms.PictureBox(); this.panel2 = new System.Windows.Forms.Panel(); this.dgvChanceProduct = new TemuKJD.UserComponent.DataGridViewEx(); @@ -102,6 +93,15 @@ namespace TemuKJD.PDDForms.ProductSelectForms this.chk = new TemuKJD.UserComponent.UcCheckBox(this.components); this.statusBar = new TemuKJD.UserControls.StatusBarUserControl(); this.ucSplitPage1 = new TemuKJD.UserControls.UcSplitPage(); + this.colSelect = new System.Windows.Forms.DataGridViewCheckBoxColumn(); + this.colUserName = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colShopLoginName = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colShopId = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colShopName = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colShopNotes = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colLoginStatus = new System.Windows.Forms.DataGridViewLinkColumn(); + this.colCanUse = new System.Windows.Forms.DataGridViewCheckBoxColumn(); + this.colMessage = new System.Windows.Forms.DataGridViewTextBoxColumn(); ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit(); this.splitContainer1.Panel1.SuspendLayout(); this.splitContainer1.Panel2.SuspendLayout(); @@ -640,7 +640,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms this.label4.Name = "label4"; this.label4.Size = new System.Drawing.Size(68, 17); this.label4.TabIndex = 709; - this.label4.Text = "店铺分组:"; + this.label4.Text = "店铺备注:"; // // label3 // @@ -709,19 +709,19 @@ namespace TemuKJD.PDDForms.ProductSelectForms // this.dgvShop.AllowUserToAddRows = false; this.dgvShop.AllowUserToDeleteRows = false; - dataGridViewCellStyle8.BackColor = System.Drawing.Color.WhiteSmoke; - this.dgvShop.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle8; + dataGridViewCellStyle1.BackColor = System.Drawing.Color.WhiteSmoke; + this.dgvShop.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle1; this.dgvShop.AutoRowNumber = true; this.dgvShop.BackgroundColor = System.Drawing.Color.White; this.dgvShop.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); - dataGridViewCellStyle9.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; - dataGridViewCellStyle9.BackColor = System.Drawing.SystemColors.Control; - dataGridViewCellStyle9.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - dataGridViewCellStyle9.ForeColor = System.Drawing.SystemColors.WindowText; - dataGridViewCellStyle9.SelectionBackColor = System.Drawing.SystemColors.Highlight; - dataGridViewCellStyle9.SelectionForeColor = System.Drawing.SystemColors.HighlightText; - dataGridViewCellStyle9.WrapMode = System.Windows.Forms.DataGridViewTriState.False; - this.dgvShop.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle9; + 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, @@ -735,6 +735,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms this.colMessage}); this.dgvShop.Dock = System.Windows.Forms.DockStyle.Fill; this.dgvShop.Location = new System.Drawing.Point(0, 0); + this.dgvShop.MultiSelectCheckBox = true; this.dgvShop.Name = "dgvShop"; this.dgvShop.ReadOnly = true; this.dgvShop.RowHeadersWidth = 25; @@ -743,78 +744,6 @@ namespace TemuKJD.PDDForms.ProductSelectForms this.dgvShop.TabIndex = 7; this.dgvShop.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dgvShop_CellContentClick); // - // colSelect - // - this.colSelect.HeaderText = "全选"; - this.colSelect.Name = "colSelect"; - this.colSelect.ReadOnly = true; - this.colSelect.Resizable = System.Windows.Forms.DataGridViewTriState.True; - this.colSelect.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; - this.colSelect.Width = 28; - // - // colUserName - // - this.colUserName.HeaderText = "店铺所属用户名称"; - this.colUserName.Name = "colUserName"; - this.colUserName.ReadOnly = true; - this.colUserName.Visible = false; - // - // colShopLoginName - // - this.colShopLoginName.HeaderText = "店铺登录名"; - this.colShopLoginName.Name = "colShopLoginName"; - this.colShopLoginName.ReadOnly = true; - this.colShopLoginName.Visible = false; - // - // colShopId - // - this.colShopId.HeaderText = "店铺Id"; - this.colShopId.Name = "colShopId"; - this.colShopId.ReadOnly = true; - this.colShopId.Visible = false; - this.colShopId.Width = 55; - // - // colShopName - // - this.colShopName.FillWeight = 150F; - this.colShopName.HeaderText = "店铺名称"; - this.colShopName.Name = "colShopName"; - this.colShopName.ReadOnly = true; - this.colShopName.Resizable = System.Windows.Forms.DataGridViewTriState.True; - this.colShopName.Width = 70; - // - // colShopNotes - // - this.colShopNotes.HeaderText = "分组"; - this.colShopNotes.Name = "colShopNotes"; - this.colShopNotes.ReadOnly = true; - this.colShopNotes.Width = 70; - // - // colLoginStatus - // - this.colLoginStatus.HeaderText = "状态"; - this.colLoginStatus.Name = "colLoginStatus"; - this.colLoginStatus.ReadOnly = true; - this.colLoginStatus.Resizable = System.Windows.Forms.DataGridViewTriState.True; - this.colLoginStatus.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; - this.colLoginStatus.Width = 40; - // - // colCanUse - // - this.colCanUse.HeaderText = "可用"; - this.colCanUse.Name = "colCanUse"; - this.colCanUse.ReadOnly = true; - this.colCanUse.Resizable = System.Windows.Forms.DataGridViewTriState.True; - this.colCanUse.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; - this.colCanUse.Visible = false; - this.colCanUse.Width = 28; - // - // colMessage - // - this.colMessage.HeaderText = "消息"; - this.colMessage.Name = "colMessage"; - this.colMessage.ReadOnly = true; - // // pbLoading // this.pbLoading.Anchor = System.Windows.Forms.AnchorStyles.None; @@ -841,20 +770,20 @@ namespace TemuKJD.PDDForms.ProductSelectForms // this.dgvChanceProduct.AllowUserToAddRows = false; this.dgvChanceProduct.AllowUserToDeleteRows = false; - dataGridViewCellStyle10.BackColor = System.Drawing.Color.WhiteSmoke; - this.dgvChanceProduct.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle10; + dataGridViewCellStyle3.BackColor = System.Drawing.Color.WhiteSmoke; + this.dgvChanceProduct.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle3; this.dgvChanceProduct.AutoRowNumber = true; this.dgvChanceProduct.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.Fill; this.dgvChanceProduct.BackgroundColor = System.Drawing.Color.White; this.dgvChanceProduct.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); - dataGridViewCellStyle11.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; - dataGridViewCellStyle11.BackColor = System.Drawing.SystemColors.Control; - dataGridViewCellStyle11.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - dataGridViewCellStyle11.ForeColor = System.Drawing.SystemColors.WindowText; - dataGridViewCellStyle11.SelectionBackColor = System.Drawing.SystemColors.Highlight; - dataGridViewCellStyle11.SelectionForeColor = System.Drawing.SystemColors.HighlightText; - dataGridViewCellStyle11.WrapMode = System.Windows.Forms.DataGridViewTriState.False; - this.dgvChanceProduct.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle11; + 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.dgvChanceProduct.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle4; this.dgvChanceProduct.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; this.dgvChanceProduct.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { this.colCheck, @@ -869,6 +798,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms this.colMsg}); this.dgvChanceProduct.Dock = System.Windows.Forms.DockStyle.Fill; this.dgvChanceProduct.Location = new System.Drawing.Point(0, 0); + this.dgvChanceProduct.MultiSelectCheckBox = true; this.dgvChanceProduct.Name = "dgvChanceProduct"; this.dgvChanceProduct.ReadOnly = true; this.dgvChanceProduct.RowTemplate.Height = 23; @@ -912,8 +842,8 @@ namespace TemuKJD.PDDForms.ProductSelectForms // // colGoodsName // - dataGridViewCellStyle12.WrapMode = System.Windows.Forms.DataGridViewTriState.True; - this.colGoodsName.DefaultCellStyle = dataGridViewCellStyle12; + dataGridViewCellStyle5.WrapMode = System.Windows.Forms.DataGridViewTriState.True; + this.colGoodsName.DefaultCellStyle = dataGridViewCellStyle5; this.colGoodsName.FillWeight = 120F; this.colGoodsName.HeaderText = "商品名称"; this.colGoodsName.Name = "colGoodsName"; @@ -934,8 +864,8 @@ namespace TemuKJD.PDDForms.ProductSelectForms // // colPrice // - dataGridViewCellStyle13.WrapMode = System.Windows.Forms.DataGridViewTriState.True; - this.colPrice.DefaultCellStyle = dataGridViewCellStyle13; + dataGridViewCellStyle6.WrapMode = System.Windows.Forms.DataGridViewTriState.True; + this.colPrice.DefaultCellStyle = dataGridViewCellStyle6; this.colPrice.FillWeight = 70F; this.colPrice.HeaderText = "价格"; this.colPrice.Name = "colPrice"; @@ -950,8 +880,8 @@ namespace TemuKJD.PDDForms.ProductSelectForms // // colMsg // - dataGridViewCellStyle14.WrapMode = System.Windows.Forms.DataGridViewTriState.True; - this.colMsg.DefaultCellStyle = dataGridViewCellStyle14; + dataGridViewCellStyle7.WrapMode = System.Windows.Forms.DataGridViewTriState.True; + this.colMsg.DefaultCellStyle = dataGridViewCellStyle7; this.colMsg.FillWeight = 200F; this.colMsg.HeaderText = "操作结果"; this.colMsg.Name = "colMsg"; @@ -997,12 +927,85 @@ namespace TemuKJD.PDDForms.ProductSelectForms this.ucSplitPage1.TotalPage = 1; this.ucSplitPage1.PageChange += new System.Action(this.ucSplitPage1_PageChange); // + // colSelect + // + this.colSelect.HeaderText = "全选"; + this.colSelect.Name = "colSelect"; + this.colSelect.ReadOnly = true; + this.colSelect.Resizable = System.Windows.Forms.DataGridViewTriState.True; + this.colSelect.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; + this.colSelect.Width = 28; + // + // colUserName + // + this.colUserName.HeaderText = "店铺所属用户名称"; + this.colUserName.Name = "colUserName"; + this.colUserName.ReadOnly = true; + this.colUserName.Visible = false; + // + // colShopLoginName + // + this.colShopLoginName.HeaderText = "店铺登录名"; + this.colShopLoginName.Name = "colShopLoginName"; + this.colShopLoginName.ReadOnly = true; + this.colShopLoginName.Visible = false; + // + // colShopId + // + this.colShopId.HeaderText = "店铺Id"; + this.colShopId.Name = "colShopId"; + this.colShopId.ReadOnly = true; + this.colShopId.Visible = false; + this.colShopId.Width = 55; + // + // colShopName + // + this.colShopName.FillWeight = 150F; + this.colShopName.HeaderText = "店铺名称"; + this.colShopName.Name = "colShopName"; + this.colShopName.ReadOnly = true; + this.colShopName.Resizable = System.Windows.Forms.DataGridViewTriState.True; + this.colShopName.Width = 70; + // + // colShopNotes + // + this.colShopNotes.HeaderText = "备注"; + this.colShopNotes.Name = "colShopNotes"; + this.colShopNotes.ReadOnly = true; + this.colShopNotes.Width = 70; + // + // colLoginStatus + // + this.colLoginStatus.HeaderText = "状态"; + this.colLoginStatus.Name = "colLoginStatus"; + this.colLoginStatus.ReadOnly = true; + this.colLoginStatus.Resizable = System.Windows.Forms.DataGridViewTriState.True; + this.colLoginStatus.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; + this.colLoginStatus.Width = 40; + // + // colCanUse + // + this.colCanUse.HeaderText = "可用"; + this.colCanUse.Name = "colCanUse"; + this.colCanUse.ReadOnly = true; + this.colCanUse.Resizable = System.Windows.Forms.DataGridViewTriState.True; + this.colCanUse.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; + this.colCanUse.Visible = false; + this.colCanUse.Width = 28; + // + // colMessage + // + this.colMessage.HeaderText = "消息"; + this.colMessage.Name = "colMessage"; + this.colMessage.ReadOnly = true; + // // PDDGetChanceProdForm // this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; this.ClientSize = new System.Drawing.Size(1344, 635); 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 = "PDDGetChanceProdForm"; this.Text = "PDDGetChanceProd"; this.Load += new System.EventHandler(this.PDDGetChanceProd_Load); @@ -1060,15 +1063,6 @@ namespace TemuKJD.PDDForms.ProductSelectForms private UserComponent.UcGroupBoxEx ucGroupBoxEx1; private DevComponents.DotNetBar.PanelEx btnAddToDb; private System.Windows.Forms.PictureBox pbShopLoading; - private System.Windows.Forms.DataGridViewCheckBoxColumn colSelect; - private System.Windows.Forms.DataGridViewTextBoxColumn colUserName; - private System.Windows.Forms.DataGridViewTextBoxColumn colShopLoginName; - private System.Windows.Forms.DataGridViewTextBoxColumn colShopId; - private System.Windows.Forms.DataGridViewTextBoxColumn colShopName; - private System.Windows.Forms.DataGridViewTextBoxColumn colShopNotes; - private System.Windows.Forms.DataGridViewLinkColumn colLoginStatus; - private System.Windows.Forms.DataGridViewCheckBoxColumn colCanUse; - private System.Windows.Forms.DataGridViewTextBoxColumn colMessage; private System.Windows.Forms.TextBox txtSearchCount; private System.Windows.Forms.Label label5; private UserComponent.UcCheckBox chkOverride; @@ -1097,5 +1091,14 @@ namespace TemuKJD.PDDForms.ProductSelectForms private System.Windows.Forms.TextBox txtSearchMaxPrice; private System.Windows.Forms.TextBox txtSearchMinPrice; private System.Windows.Forms.Label label10; + private System.Windows.Forms.DataGridViewCheckBoxColumn colSelect; + private System.Windows.Forms.DataGridViewTextBoxColumn colUserName; + private System.Windows.Forms.DataGridViewTextBoxColumn colShopLoginName; + private System.Windows.Forms.DataGridViewTextBoxColumn colShopId; + private System.Windows.Forms.DataGridViewTextBoxColumn colShopName; + private System.Windows.Forms.DataGridViewTextBoxColumn colShopNotes; + private System.Windows.Forms.DataGridViewLinkColumn colLoginStatus; + private System.Windows.Forms.DataGridViewCheckBoxColumn colCanUse; + private System.Windows.Forms.DataGridViewTextBoxColumn colMessage; } } \ No newline at end of file diff --git a/TEMUKJD/WXForms/ProductForms/WXUserProdListForm.Designer.cs b/TEMUKJD/WXForms/ProductForms/WXUserProdListForm.Designer.cs index f64ae0e..362f666 100644 --- a/TEMUKJD/WXForms/ProductForms/WXUserProdListForm.Designer.cs +++ b/TEMUKJD/WXForms/ProductForms/WXUserProdListForm.Designer.cs @@ -404,7 +404,7 @@ namespace TemuKJD.WXForms.ProductForms this.cmbCat3.DropDownWidth = 1; this.cmbCat3.FormattingEnabled = true; this.cmbCat3.IntegralHeight = false; - this.cmbCat3.Location = new System.Drawing.Point(733, 5); + this.cmbCat3.Location = new System.Drawing.Point(733, 7); this.cmbCat3.Margin = new System.Windows.Forms.Padding(0, 3, 3, 3); this.cmbCat3.Name = "cmbCat3"; this.cmbCat3.Size = new System.Drawing.Size(151, 25); @@ -432,7 +432,7 @@ namespace TemuKJD.WXForms.ProductForms this.cmbCat2.DropDownWidth = 1; this.cmbCat2.FormattingEnabled = true; this.cmbCat2.IntegralHeight = false; - this.cmbCat2.Location = new System.Drawing.Point(525, 5); + this.cmbCat2.Location = new System.Drawing.Point(525, 7); this.cmbCat2.Margin = new System.Windows.Forms.Padding(0, 3, 3, 3); this.cmbCat2.Name = "cmbCat2"; this.cmbCat2.Size = new System.Drawing.Size(151, 25); @@ -460,7 +460,7 @@ namespace TemuKJD.WXForms.ProductForms this.cmbCat1.DropDownWidth = 1; this.cmbCat1.FormattingEnabled = true; this.cmbCat1.IntegralHeight = false; - this.cmbCat1.Location = new System.Drawing.Point(298, 5); + this.cmbCat1.Location = new System.Drawing.Point(298, 7); this.cmbCat1.Margin = new System.Windows.Forms.Padding(0, 3, 3, 3); this.cmbCat1.Name = "cmbCat1"; this.cmbCat1.Size = new System.Drawing.Size(151, 25); @@ -520,7 +520,7 @@ namespace TemuKJD.WXForms.ProductForms "安全+未校验", "安全商品", "未校验"}); - this.cmbWxSafe.Location = new System.Drawing.Point(71, 40); + this.cmbWxSafe.Location = new System.Drawing.Point(71, 42); this.cmbWxSafe.Margin = new System.Windows.Forms.Padding(0, 3, 3, 3); this.cmbWxSafe.Name = "cmbWxSafe"; this.cmbWxSafe.Size = new System.Drawing.Size(151, 25); @@ -543,7 +543,7 @@ namespace TemuKJD.WXForms.ProductForms // 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(934, 7); + this.cmbGroupFilter.Location = new System.Drawing.Point(934, 5); this.cmbGroupFilter.Margin = new System.Windows.Forms.Padding(0, 3, 3, 3); this.cmbGroupFilter.Name = "cmbGroupFilter"; this.cmbGroupFilter.Size = new System.Drawing.Size(151, 25); @@ -564,7 +564,7 @@ namespace TemuKJD.WXForms.ProductForms "机会商品", "以图搜品", "外部数据"}); - this.cmbSourceType.Location = new System.Drawing.Point(733, 40); + this.cmbSourceType.Location = new System.Drawing.Point(733, 42); this.cmbSourceType.Margin = new System.Windows.Forms.Padding(0, 3, 3, 3); this.cmbSourceType.Name = "cmbSourceType"; this.cmbSourceType.Size = new System.Drawing.Size(151, 25);