From 84dbc94047d058b16ff2429730166d3f89b15e0d Mon Sep 17 00:00:00 2001 From: wule Date: Thu, 22 Jan 2026 19:10:51 +0800 Subject: [PATCH] =?UTF-8?q?1=E5=BE=AE=E4=BF=A1=E4=BC=98=E5=8C=96=E5=AE=A2?= =?UTF-8?q?=E6=9C=8D=E6=A3=80=E6=B5=8B=E9=80=BB=E8=BE=91=20=E6=96=B0?= =?UTF-8?q?=E5=A2=9E=E6=B6=88=E6=81=AF=E6=8F=90=E9=86=92=202=E5=BE=AE?= =?UTF-8?q?=E4=BF=A1=E6=97=A5=E4=B8=8A=E8=B4=A7=E6=95=B0=E9=87=8F=E8=AE=B0?= =?UTF-8?q?=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- AllBase/AllBase.csproj | 1 + AllBase/BaseClass.cs | 2 +- AllBase/Model/Config/WxShopUploadInfo.cs | 30 ++ TEMUKJD/BaseForms/BaseGeneralForm.designer.cs | 9 +- TEMUKJD/KJD.csproj | 9 + ...oductThirdSelectListManageForm.Designer.cs | 8 +- TEMUKJD/UserControls/UcSplitPage.cs | 2 +- .../WXDBProdUploadForm.Designer.cs | 401 ++++++++++-------- .../ProductForms/WXDBProdUploadForm.cs | 67 ++- .../ProductForms/WXDBProdUploadForm.resx | 3 + TEMUKJD/WXForms/TalkForms/TalkMessageForm.cs | 89 ++++ .../TalkForms/TalkMessageForm.designer.cs | 100 +++++ .../WXForms/TalkForms/TalkMessageForm.resx | 301 +++++++++++++ .../WXForms/TalkForms/WxTalkForm.Designer.cs | 33 +- TEMUKJD/WXForms/TalkForms/WxTalkForm.cs | 218 +++++++--- 15 files changed, 1006 insertions(+), 267 deletions(-) create mode 100644 AllBase/Model/Config/WxShopUploadInfo.cs create mode 100644 TEMUKJD/WXForms/TalkForms/TalkMessageForm.cs create mode 100644 TEMUKJD/WXForms/TalkForms/TalkMessageForm.designer.cs create mode 100644 TEMUKJD/WXForms/TalkForms/TalkMessageForm.resx diff --git a/AllBase/AllBase.csproj b/AllBase/AllBase.csproj index 6d37985..bed7b0e 100644 --- a/AllBase/AllBase.csproj +++ b/AllBase/AllBase.csproj @@ -177,6 +177,7 @@ + diff --git a/AllBase/BaseClass.cs b/AllBase/BaseClass.cs index eaf97c2..c3280a5 100644 --- a/AllBase/BaseClass.cs +++ b/AllBase/BaseClass.cs @@ -27,7 +27,7 @@ namespace AllBase /// /// 版本ID /// - public static int VersionCount = 798; + public static int VersionCount = 799; //public static int VersionCount = 613; /// diff --git a/AllBase/Model/Config/WxShopUploadInfo.cs b/AllBase/Model/Config/WxShopUploadInfo.cs new file mode 100644 index 0000000..ebd2c50 --- /dev/null +++ b/AllBase/Model/Config/WxShopUploadInfo.cs @@ -0,0 +1,30 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace AllBase.Model.Config +{ + public class WxShopUploadInfo + { + /// + /// 日提审数量 + /// + public Dictionary DicDaySubmitCount { get; set; } = new Dictionary(); + /// + /// 日上货数量 + /// + public Dictionary DicDayUploadCount { get; set; } = new Dictionary(); + + /// + /// 在售商品数 + /// + public int OnSaleCount { get; set; } + /// + /// 刷新在售商品时间 + /// + + public int OnSaleRefreshDay { get; set; } + } +} diff --git a/TEMUKJD/BaseForms/BaseGeneralForm.designer.cs b/TEMUKJD/BaseForms/BaseGeneralForm.designer.cs index e858171..e1d4654 100644 --- a/TEMUKJD/BaseForms/BaseGeneralForm.designer.cs +++ b/TEMUKJD/BaseForms/BaseGeneralForm.designer.cs @@ -120,11 +120,12 @@ // this.lbTitle.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); + this.lbTitle.AutoSize = true; this.lbTitle.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); this.lbTitle.ForeColor = System.Drawing.Color.White; this.lbTitle.Location = new System.Drawing.Point(31, 7); this.lbTitle.Name = "lbTitle"; - this.lbTitle.Size = new System.Drawing.Size(588, 17); + this.lbTitle.Size = new System.Drawing.Size(45, 17); this.lbTitle.TabIndex = 2; this.lbTitle.Text = "label1"; this.lbTitle.MouseDown += new System.Windows.Forms.MouseEventHandler(this.lbTitle_MouseDown); @@ -145,20 +146,20 @@ this.pbCloseBase.MouseLeave += new System.EventHandler(this.PictureBox1_MouseLeave); this.pbCloseBase.MouseHover += new System.EventHandler(this.PictureBox1_MouseHover); // - // LRBaseForm + // BaseGeneralForm // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(98)))), ((int)(((byte)(200))))); this.ClientSize = new System.Drawing.Size(659, 535); this.Controls.Add(this.panel1); this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; - this.Name = "LRBaseForm"; + this.Name = "BaseGeneralForm"; this.Padding = new System.Windows.Forms.Padding(1); this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; this.Text = "LcBaseForm"; this.Load += new System.EventHandler(this.LcBaseForm_Load); this.panel1.ResumeLayout(false); + this.panel1.PerformLayout(); ((System.ComponentModel.ISupportInitialize)(this.pbMinBase)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.pbNormalBase)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.pbMaxBase)).EndInit(); diff --git a/TEMUKJD/KJD.csproj b/TEMUKJD/KJD.csproj index 1db3aca..dc1478d 100644 --- a/TEMUKJD/KJD.csproj +++ b/TEMUKJD/KJD.csproj @@ -1012,6 +1012,12 @@ SupportQrCodeForm.cs + + Form + + + TalkMessageForm.cs + @@ -1433,6 +1439,9 @@ SupportQrCodeForm.cs + + TalkMessageForm.cs + WxTalkForm.cs diff --git a/TEMUKJD/KJDForms/ProductThirdSelectForms/ProductThirdSelectListManageForm.Designer.cs b/TEMUKJD/KJDForms/ProductThirdSelectForms/ProductThirdSelectListManageForm.Designer.cs index 1d30833..14ef73f 100644 --- a/TEMUKJD/KJDForms/ProductThirdSelectForms/ProductThirdSelectListManageForm.Designer.cs +++ b/TEMUKJD/KJDForms/ProductThirdSelectForms/ProductThirdSelectListManageForm.Designer.cs @@ -1139,7 +1139,7 @@ this.cmbSearchYear.Items.AddRange(new object[] { "2025", "2026"}); - this.cmbSearchYear.Location = new System.Drawing.Point(1017, 11); + this.cmbSearchYear.Location = new System.Drawing.Point(1017, 8); this.cmbSearchYear.Margin = new System.Windows.Forms.Padding(0); this.cmbSearchYear.Name = "cmbSearchYear"; this.cmbSearchYear.Size = new System.Drawing.Size(55, 25); @@ -1154,7 +1154,7 @@ "全部", "重上", "已买"}); - this.cmbUserNotes.Location = new System.Drawing.Point(927, 8); + this.cmbUserNotes.Location = new System.Drawing.Point(927, 11); this.cmbUserNotes.Margin = new System.Windows.Forms.Padding(0); this.cmbUserNotes.Name = "cmbUserNotes"; this.cmbUserNotes.Size = new System.Drawing.Size(52, 25); @@ -1171,7 +1171,7 @@ "核价成功", "核价成功(重复)", "重复"}); - this.cmbNotes.Location = new System.Drawing.Point(813, 8); + this.cmbNotes.Location = new System.Drawing.Point(813, 11); this.cmbNotes.Margin = new System.Windows.Forms.Padding(0); this.cmbNotes.Name = "cmbNotes"; this.cmbNotes.Size = new System.Drawing.Size(52, 25); @@ -1198,7 +1198,7 @@ "已上传", "草稿箱", "全部"}); - this.cmbStatus.Location = new System.Drawing.Point(723, 8); + this.cmbStatus.Location = new System.Drawing.Point(723, 11); this.cmbStatus.Margin = new System.Windows.Forms.Padding(0); this.cmbStatus.Name = "cmbStatus"; this.cmbStatus.Size = new System.Drawing.Size(52, 25); diff --git a/TEMUKJD/UserControls/UcSplitPage.cs b/TEMUKJD/UserControls/UcSplitPage.cs index 2b10bda..c9dff84 100644 --- a/TEMUKJD/UserControls/UcSplitPage.cs +++ b/TEMUKJD/UserControls/UcSplitPage.cs @@ -73,8 +73,8 @@ namespace TemuKJD.UserControls } else this.lblPage.Text = "" + currentPage; - OnPageChange(this); } + OnPageChange(this); } } diff --git a/TEMUKJD/WXForms/ProductForms/WXDBProdUploadForm.Designer.cs b/TEMUKJD/WXForms/ProductForms/WXDBProdUploadForm.Designer.cs index 0973575..e8c3f1a 100644 --- a/TEMUKJD/WXForms/ProductForms/WXDBProdUploadForm.Designer.cs +++ b/TEMUKJD/WXForms/ProductForms/WXDBProdUploadForm.Designer.cs @@ -32,12 +32,12 @@ namespace TemuKJD.WXForms.ProductForms private void InitializeComponent() { this.components = new System.ComponentModel.Container(); - System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle7 = new System.Windows.Forms.DataGridViewCellStyle(); - System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle8 = new System.Windows.Forms.DataGridViewCellStyle(); - System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle9 = new System.Windows.Forms.DataGridViewCellStyle(); - System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle10 = new System.Windows.Forms.DataGridViewCellStyle(); - System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle11 = new System.Windows.Forms.DataGridViewCellStyle(); - System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle12 = new System.Windows.Forms.DataGridViewCellStyle(); + 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(); this.splitContainer1 = new System.Windows.Forms.SplitContainer(); this.ucGroupBoxEx2 = new TemuKJD.UserComponent.UcGroupBoxEx(this.components); this.label18 = new System.Windows.Forms.Label(); @@ -96,26 +96,17 @@ namespace TemuKJD.WXForms.ProductForms this.panelEx2 = new DevComponents.DotNetBar.PanelEx(); this.label16 = new System.Windows.Forms.Label(); this.ucGroupBoxEx1 = new TemuKJD.UserComponent.UcGroupBoxEx(this.components); + this.btnRefreshNum = 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.pbLoadingShop = 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.colCanUse = new System.Windows.Forms.DataGridViewCheckBoxColumn(); - this.colUploadCount = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.colRemaining = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.colMessage = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.chkTestNoAuditUpload = new TemuKJD.UserComponent.UcCheckBox(this.components); this.并发上传 = new DevComponents.DotNetBar.PanelEx(); this.pbLoading = new System.Windows.Forms.PictureBox(); this.label11 = new System.Windows.Forms.Label(); this.txtSinglePriceAdd = new System.Windows.Forms.TextBox(); + this.chkTestNoAuditUpload = new TemuKJD.UserComponent.UcCheckBox(this.components); this.dgvSelectProduct = new TemuKJD.UserComponent.DataGridViewEx(); this.colCheck = new System.Windows.Forms.DataGridViewCheckBoxColumn(); this.colSelectId = new System.Windows.Forms.DataGridViewTextBoxColumn(); @@ -144,6 +135,18 @@ namespace TemuKJD.WXForms.ProductForms this.btnClear = new DevComponents.DotNetBar.PanelEx(); this.panelEx1 = new DevComponents.DotNetBar.PanelEx(); this.panel1 = new System.Windows.Forms.Panel(); + 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.colUploadCount = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colOnSaleNum = new System.Windows.Forms.DataGridViewTextBoxColumn(); + 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(); @@ -162,6 +165,7 @@ namespace TemuKJD.WXForms.ProductForms this.splitContainer2.Panel1.SuspendLayout(); this.splitContainer2.Panel2.SuspendLayout(); this.splitContainer2.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.pbLoadingShop)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.dgvShop)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.pbLoading)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.dgvSelectProduct)).BeginInit(); @@ -238,7 +242,7 @@ namespace TemuKJD.WXForms.ProductForms // label18 // this.label18.AutoSize = true; - this.label18.Location = new System.Drawing.Point(662, 120); + this.label18.Location = new System.Drawing.Point(576, 120); this.label18.Margin = new System.Windows.Forms.Padding(3, 0, 0, 0); this.label18.Name = "label18"; this.label18.Size = new System.Drawing.Size(54, 17); @@ -247,7 +251,7 @@ namespace TemuKJD.WXForms.ProductForms // // txtPreDays // - this.txtPreDays.Location = new System.Drawing.Point(629, 117); + this.txtPreDays.Location = new System.Drawing.Point(543, 117); this.txtPreDays.Margin = new System.Windows.Forms.Padding(0, 3, 3, 3); this.txtPreDays.Name = "txtPreDays"; this.txtPreDays.Size = new System.Drawing.Size(33, 23); @@ -258,7 +262,7 @@ namespace TemuKJD.WXForms.ProductForms // chkPreSale // this.chkPreSale.AutoSize = true; - this.chkPreSale.Location = new System.Drawing.Point(537, 118); + this.chkPreSale.Location = new System.Drawing.Point(451, 118); this.chkPreSale.Name = "chkPreSale"; this.chkPreSale.Size = new System.Drawing.Size(99, 21); this.chkPreSale.TabIndex = 789; @@ -271,7 +275,7 @@ namespace TemuKJD.WXForms.ProductForms this.chkSkipUploaded.AutoSize = true; this.chkSkipUploaded.Checked = true; this.chkSkipUploaded.CheckState = System.Windows.Forms.CheckState.Checked; - this.chkSkipUploaded.Location = new System.Drawing.Point(537, 91); + this.chkSkipUploaded.Location = new System.Drawing.Point(451, 91); this.chkSkipUploaded.Name = "chkSkipUploaded"; this.chkSkipUploaded.Size = new System.Drawing.Size(135, 21); this.chkSkipUploaded.TabIndex = 755; @@ -284,7 +288,7 @@ namespace TemuKJD.WXForms.ProductForms this.chkSameSpecPrice.AutoSize = true; this.chkSameSpecPrice.Checked = true; this.chkSameSpecPrice.CheckState = System.Windows.Forms.CheckState.Checked; - this.chkSameSpecPrice.Location = new System.Drawing.Point(662, 41); + this.chkSameSpecPrice.Location = new System.Drawing.Point(576, 41); this.chkSameSpecPrice.Name = "chkSameSpecPrice"; this.chkSameSpecPrice.Size = new System.Drawing.Size(99, 21); this.chkSameSpecPrice.TabIndex = 745; @@ -295,7 +299,7 @@ namespace TemuKJD.WXForms.ProductForms // label5 // this.label5.AutoSize = true; - this.label5.Location = new System.Drawing.Point(625, 18); + this.label5.Location = new System.Drawing.Point(539, 18); this.label5.Margin = new System.Windows.Forms.Padding(3, 0, 0, 0); this.label5.Name = "label5"; this.label5.Size = new System.Drawing.Size(76, 17); @@ -304,7 +308,7 @@ namespace TemuKJD.WXForms.ProductForms // // txtMinPrice // - this.txtMinPrice.Location = new System.Drawing.Point(592, 15); + this.txtMinPrice.Location = new System.Drawing.Point(506, 15); this.txtMinPrice.Margin = new System.Windows.Forms.Padding(0, 3, 3, 3); this.txtMinPrice.Name = "txtMinPrice"; this.txtMinPrice.Size = new System.Drawing.Size(33, 23); @@ -315,7 +319,7 @@ namespace TemuKJD.WXForms.ProductForms // label8 // this.label8.AutoSize = true; - this.label8.Location = new System.Drawing.Point(534, 18); + this.label8.Location = new System.Drawing.Point(448, 18); this.label8.Margin = new System.Windows.Forms.Padding(3, 0, 0, 0); this.label8.Name = "label8"; this.label8.Size = new System.Drawing.Size(68, 17); @@ -324,7 +328,7 @@ namespace TemuKJD.WXForms.ProductForms // // txtReplaceText // - this.txtReplaceText.Location = new System.Drawing.Point(664, 65); + this.txtReplaceText.Location = new System.Drawing.Point(578, 65); this.txtReplaceText.Margin = new System.Windows.Forms.Padding(0, 3, 3, 3); this.txtReplaceText.Name = "txtReplaceText"; this.txtReplaceText.Size = new System.Drawing.Size(285, 23); @@ -335,7 +339,7 @@ namespace TemuKJD.WXForms.ProductForms // label3 // this.label3.AutoSize = true; - this.label3.Location = new System.Drawing.Point(534, 68); + this.label3.Location = new System.Drawing.Point(448, 68); this.label3.Margin = new System.Windows.Forms.Padding(3, 0, 0, 0); this.label3.Name = "label3"; this.label3.Size = new System.Drawing.Size(140, 17); @@ -345,7 +349,7 @@ namespace TemuKJD.WXForms.ProductForms // chkUpDraft // this.chkUpDraft.AutoSize = true; - this.chkUpDraft.Location = new System.Drawing.Point(678, 91); + this.chkUpDraft.Location = new System.Drawing.Point(592, 91); this.chkUpDraft.Name = "chkUpDraft"; this.chkUpDraft.Size = new System.Drawing.Size(99, 21); this.chkUpDraft.TabIndex = 769; @@ -358,7 +362,7 @@ namespace TemuKJD.WXForms.ProductForms this.chkHighestPriceSku.AutoSize = true; this.chkHighestPriceSku.Checked = true; this.chkHighestPriceSku.CheckState = System.Windows.Forms.CheckState.Checked; - this.chkHighestPriceSku.Location = new System.Drawing.Point(537, 41); + this.chkHighestPriceSku.Location = new System.Drawing.Point(451, 41); this.chkHighestPriceSku.Name = "chkHighestPriceSku"; this.chkHighestPriceSku.Size = new System.Drawing.Size(119, 21); this.chkHighestPriceSku.TabIndex = 739; @@ -427,6 +431,7 @@ namespace TemuKJD.WXForms.ProductForms // // chkAddMorePriceFirst // + this.chkAddMorePriceFirst.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); this.chkAddMorePriceFirst.AutoSize = true; this.chkAddMorePriceFirst.Location = new System.Drawing.Point(213, 121); this.chkAddMorePriceFirst.Name = "chkAddMorePriceFirst"; @@ -493,7 +498,7 @@ namespace TemuKJD.WXForms.ProductForms 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, 99); + this.panel4.Size = new System.Drawing.Size(366, 99); this.panel4.TabIndex = 577; // // panel3 @@ -506,7 +511,7 @@ namespace TemuKJD.WXForms.ProductForms 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, 97); + this.panel3.Size = new System.Drawing.Size(364, 97); this.panel3.TabIndex = 541; // // fPnlPriceRule @@ -668,6 +673,7 @@ namespace TemuKJD.WXForms.ProductForms // // txtStockNum // + this.txtStockNum.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); this.txtStockNum.Location = new System.Drawing.Point(393, 120); this.txtStockNum.Margin = new System.Windows.Forms.Padding(0, 2, 0, 2); this.txtStockNum.Name = "txtStockNum"; @@ -678,6 +684,7 @@ namespace TemuKJD.WXForms.ProductForms // // label4 // + this.label4.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); this.label4.AutoSize = true; this.label4.Location = new System.Drawing.Point(337, 123); this.label4.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0); @@ -996,6 +1003,7 @@ namespace TemuKJD.WXForms.ProductForms | 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.btnRefreshNum); this.ucGroupBoxEx1.Controls.Add(this.btnRefreshShop); this.ucGroupBoxEx1.Location = new System.Drawing.Point(3, 2); this.ucGroupBoxEx1.Name = "ucGroupBoxEx1"; @@ -1004,6 +1012,31 @@ namespace TemuKJD.WXForms.ProductForms this.ucGroupBoxEx1.TabStop = false; this.ucGroupBoxEx1.Text = "基础"; // + // btnRefreshNum + // + this.btnRefreshNum.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.btnRefreshNum.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; + this.btnRefreshNum.Cursor = System.Windows.Forms.Cursors.Hand; + this.btnRefreshNum.DisabledBackColor = System.Drawing.Color.Empty; + this.btnRefreshNum.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.btnRefreshNum.Location = new System.Drawing.Point(17, 99); + this.btnRefreshNum.Name = "btnRefreshNum"; + this.btnRefreshNum.Size = new System.Drawing.Size(102, 24); + this.btnRefreshNum.Style.Alignment = System.Drawing.StringAlignment.Center; + this.btnRefreshNum.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnRefreshNum.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnRefreshNum.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; + this.btnRefreshNum.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash; + this.btnRefreshNum.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None; + this.btnRefreshNum.Style.ForeColor.Color = System.Drawing.Color.White; + this.btnRefreshNum.Style.GradientAngle = 90; + this.btnRefreshNum.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center; + this.btnRefreshNum.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnRefreshNum.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnRefreshNum.TabIndex = 438; + this.btnRefreshNum.Text = "刷新在售数"; + this.btnRefreshNum.Click += new System.EventHandler(this.btnRefreshNum_Click); + // // btnRefreshShop // this.btnRefreshShop.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); @@ -1057,39 +1090,52 @@ namespace TemuKJD.WXForms.ProductForms // // splitContainer2.Panel1 // + this.splitContainer2.Panel1.Controls.Add(this.pbLoadingShop); 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.chkTestNoAuditUpload); this.splitContainer2.Panel2.Controls.Add(this.并发上传); this.splitContainer2.Panel2.Controls.Add(this.pbLoading); this.splitContainer2.Panel2.Controls.Add(this.label11); this.splitContainer2.Panel2.Controls.Add(this.txtSinglePriceAdd); + this.splitContainer2.Panel2.Controls.Add(this.chkTestNoAuditUpload); this.splitContainer2.Panel2.Controls.Add(this.dgvSelectProduct); this.splitContainer2.Panel2.Padding = new System.Windows.Forms.Padding(0, 0, 4, 0); this.splitContainer2.Size = new System.Drawing.Size(1523, 362); - this.splitContainer2.SplitterDistance = 300; + this.splitContainer2.SplitterDistance = 350; this.splitContainer2.TabIndex = 0; // + // pbLoadingShop + // + this.pbLoadingShop.Anchor = System.Windows.Forms.AnchorStyles.None; + this.pbLoadingShop.Image = global::TemuKJD.Properties.Resources.loading_blue; + this.pbLoadingShop.Location = new System.Drawing.Point(150, 156); + this.pbLoadingShop.Name = "pbLoadingShop"; + this.pbLoadingShop.Size = new System.Drawing.Size(50, 50); + this.pbLoadingShop.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; + this.pbLoadingShop.TabIndex = 189; + this.pbLoadingShop.TabStop = false; + this.pbLoadingShop.Visible = false; + // // dgvShop // this.dgvShop.AllowUserToAddRows = false; this.dgvShop.AllowUserToDeleteRows = false; - dataGridViewCellStyle7.BackColor = System.Drawing.Color.WhiteSmoke; - this.dgvShop.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle7; + 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))))); - dataGridViewCellStyle8.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; - dataGridViewCellStyle8.BackColor = System.Drawing.SystemColors.Control; - dataGridViewCellStyle8.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - dataGridViewCellStyle8.ForeColor = System.Drawing.SystemColors.WindowText; - dataGridViewCellStyle8.SelectionBackColor = System.Drawing.SystemColors.Highlight; - dataGridViewCellStyle8.SelectionForeColor = System.Drawing.SystemColors.HighlightText; - dataGridViewCellStyle8.WrapMode = System.Windows.Forms.DataGridViewTriState.False; - this.dgvShop.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle8; + 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, @@ -1101,6 +1147,7 @@ namespace TemuKJD.WXForms.ProductForms this.colLoginStatus, this.colCanUse, this.colUploadCount, + this.colOnSaleNum, this.colRemaining, this.colMessage}); this.dgvShop.Dock = System.Windows.Forms.DockStyle.Fill; @@ -1109,110 +1156,10 @@ namespace TemuKJD.WXForms.ProductForms this.dgvShop.ReadOnly = true; this.dgvShop.RowHeadersWidth = 25; this.dgvShop.RowTemplate.Height = 23; - this.dgvShop.Size = new System.Drawing.Size(296, 362); + this.dgvShop.Size = new System.Drawing.Size(346, 362); 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 = 66; - // - // colShopNotes - // - this.colShopNotes.HeaderText = "分组"; - this.colShopNotes.Name = "colShopNotes"; - this.colShopNotes.ReadOnly = true; - this.colShopNotes.Width = 66; - // - // 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; - // - // 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; - // - // colUploadCount - // - this.colUploadCount.HeaderText = "已传"; - this.colUploadCount.Name = "colUploadCount"; - this.colUploadCount.ReadOnly = true; - this.colUploadCount.Width = 38; - // - // 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; - // - // chkTestNoAuditUpload - // - this.chkTestNoAuditUpload.AutoSize = true; - this.chkTestNoAuditUpload.Location = new System.Drawing.Point(964, 32); - this.chkTestNoAuditUpload.Name = "chkTestNoAuditUpload"; - this.chkTestNoAuditUpload.Size = new System.Drawing.Size(123, 21); - this.chkTestNoAuditUpload.TabIndex = 779; - this.chkTestNoAuditUpload.Text = "测试面审提交商品"; - this.chkTestNoAuditUpload.UseVisualStyleBackColor = true; - this.chkTestNoAuditUpload.Visible = false; - // // 并发上传 // this.并发上传.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); @@ -1220,7 +1167,7 @@ namespace TemuKJD.WXForms.ProductForms this.并发上传.Cursor = System.Windows.Forms.Cursors.Hand; this.并发上传.DisabledBackColor = System.Drawing.Color.Empty; this.并发上传.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.并发上传.Location = new System.Drawing.Point(1093, 30); + this.并发上传.Location = new System.Drawing.Point(1043, 30); this.并发上传.Name = "并发上传"; this.并发上传.Size = new System.Drawing.Size(118, 23); this.并发上传.Style.Alignment = System.Drawing.StringAlignment.Center; @@ -1243,7 +1190,7 @@ namespace TemuKJD.WXForms.ProductForms // this.pbLoading.Anchor = System.Windows.Forms.AnchorStyles.None; this.pbLoading.Image = global::TemuKJD.Properties.Resources.loading_blue; - this.pbLoading.Location = new System.Drawing.Point(584, 156); + this.pbLoading.Location = new System.Drawing.Point(559, 156); this.pbLoading.Name = "pbLoading"; this.pbLoading.Size = new System.Drawing.Size(50, 50); this.pbLoading.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; @@ -1275,23 +1222,34 @@ namespace TemuKJD.WXForms.ProductForms this.txtSinglePriceAdd.Visible = false; this.txtSinglePriceAdd.TextChanged += new System.EventHandler(this.txtAddPrice_TextChanged); // + // chkTestNoAuditUpload + // + this.chkTestNoAuditUpload.AutoSize = true; + this.chkTestNoAuditUpload.Location = new System.Drawing.Point(926, 31); + this.chkTestNoAuditUpload.Name = "chkTestNoAuditUpload"; + this.chkTestNoAuditUpload.Size = new System.Drawing.Size(123, 21); + this.chkTestNoAuditUpload.TabIndex = 779; + this.chkTestNoAuditUpload.Text = "测试面审提交商品"; + this.chkTestNoAuditUpload.UseVisualStyleBackColor = true; + this.chkTestNoAuditUpload.Visible = false; + // // dgvSelectProduct // this.dgvSelectProduct.AllowUserToAddRows = false; this.dgvSelectProduct.AllowUserToDeleteRows = false; - dataGridViewCellStyle9.BackColor = System.Drawing.Color.WhiteSmoke; - this.dgvSelectProduct.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle9; + 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))))); - dataGridViewCellStyle10.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; - dataGridViewCellStyle10.BackColor = System.Drawing.SystemColors.Control; - dataGridViewCellStyle10.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - dataGridViewCellStyle10.ForeColor = System.Drawing.SystemColors.WindowText; - dataGridViewCellStyle10.SelectionBackColor = System.Drawing.SystemColors.Highlight; - dataGridViewCellStyle10.SelectionForeColor = System.Drawing.SystemColors.HighlightText; - dataGridViewCellStyle10.WrapMode = System.Windows.Forms.DataGridViewTriState.False; - this.dgvSelectProduct.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle10; + 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, @@ -1321,7 +1279,7 @@ namespace TemuKJD.WXForms.ProductForms this.dgvSelectProduct.Name = "dgvSelectProduct"; this.dgvSelectProduct.ReadOnly = true; this.dgvSelectProduct.RowTemplate.Height = 23; - this.dgvSelectProduct.Size = new System.Drawing.Size(1215, 362); + this.dgvSelectProduct.Size = new System.Drawing.Size(1165, 362); this.dgvSelectProduct.TabIndex = 187; this.dgvSelectProduct.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dgvSelectProduct_CellContentClick); // @@ -1351,8 +1309,8 @@ namespace TemuKJD.WXForms.ProductForms // // colSupplierName // - dataGridViewCellStyle11.WrapMode = System.Windows.Forms.DataGridViewTriState.True; - this.colSupplierName.DefaultCellStyle = dataGridViewCellStyle11; + dataGridViewCellStyle5.WrapMode = System.Windows.Forms.DataGridViewTriState.True; + this.colSupplierName.DefaultCellStyle = dataGridViewCellStyle5; this.colSupplierName.Frozen = true; this.colSupplierName.HeaderText = "店铺名称"; this.colSupplierName.Name = "colSupplierName"; @@ -1430,8 +1388,8 @@ namespace TemuKJD.WXForms.ProductForms // // colProductName // - dataGridViewCellStyle12.WrapMode = System.Windows.Forms.DataGridViewTriState.True; - this.colProductName.DefaultCellStyle = dataGridViewCellStyle12; + dataGridViewCellStyle6.WrapMode = System.Windows.Forms.DataGridViewTriState.True; + this.colProductName.DefaultCellStyle = dataGridViewCellStyle6; this.colProductName.HeaderText = "商品标题"; this.colProductName.Name = "colProductName"; this.colProductName.ReadOnly = true; @@ -1594,6 +1552,103 @@ namespace TemuKJD.WXForms.ProductForms this.panel1.TabIndex = 189; this.panel1.Paint += new System.Windows.Forms.PaintEventHandler(this.panel1_Paint); // + // 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 = 66; + // + // colShopNotes + // + this.colShopNotes.HeaderText = "分组"; + this.colShopNotes.Name = "colShopNotes"; + this.colShopNotes.ReadOnly = true; + this.colShopNotes.Width = 66; + // + // 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; + // + // 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; + // + // colUploadCount + // + this.colUploadCount.HeaderText = "已传"; + this.colUploadCount.Name = "colUploadCount"; + this.colUploadCount.ReadOnly = true; + this.colUploadCount.Width = 38; + // + // colOnSaleNum + // + this.colOnSaleNum.HeaderText = "在售"; + this.colOnSaleNum.Name = "colOnSaleNum"; + this.colOnSaleNum.ReadOnly = true; + this.colOnSaleNum.Visible = false; + this.colOnSaleNum.Width = 38; + // + // 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; + // // WXDBProdUploadForm // this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; @@ -1603,7 +1658,7 @@ namespace TemuKJD.WXForms.ProductForms this.Controls.Add(this.panel1); this.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); this.Name = "WXDBProdUploadForm"; - this.Text = "PDDDBProdUserSelectForm"; + this.Text = "微信小店"; this.Load += new System.EventHandler(this.UserSelectDbProductForm_Load); this.VisibleChanged += new System.EventHandler(this.UserSelectDbProductForm_VisibleChanged); this.splitContainer1.Panel1.ResumeLayout(false); @@ -1629,6 +1684,7 @@ namespace TemuKJD.WXForms.ProductForms this.splitContainer2.Panel2.PerformLayout(); ((System.ComponentModel.ISupportInitialize)(this.splitContainer2)).EndInit(); this.splitContainer2.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.pbLoadingShop)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.dgvShop)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.pbLoading)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.dgvSelectProduct)).EndInit(); @@ -1729,6 +1785,16 @@ namespace TemuKJD.WXForms.ProductForms private System.Windows.Forms.ComboBox cmbWxSafe; private System.Windows.Forms.Label label13; private UserComponent.UcCheckBox chkSkipUploaded; + private DevComponents.DotNetBar.PanelEx 并发上传; + private UserComponent.UcCheckBox chkUpDraft; + private System.Windows.Forms.ComboBox cmbSpProdType; + private System.Windows.Forms.Label label17; + private UserComponent.UcCheckBox chkTestNoAuditUpload; + private System.Windows.Forms.TextBox txtPreDays; + private UserComponent.UcCheckBox chkPreSale; + private System.Windows.Forms.Label label18; + private DevComponents.DotNetBar.PanelEx btnRefreshNum; + private System.Windows.Forms.PictureBox pbLoadingShop; private System.Windows.Forms.DataGridViewCheckBoxColumn colSelect; private System.Windows.Forms.DataGridViewTextBoxColumn colShopLoginName; private System.Windows.Forms.DataGridViewTextBoxColumn colShopId; @@ -1738,15 +1804,8 @@ namespace TemuKJD.WXForms.ProductForms private System.Windows.Forms.DataGridViewLinkColumn colLoginStatus; private System.Windows.Forms.DataGridViewCheckBoxColumn colCanUse; private System.Windows.Forms.DataGridViewTextBoxColumn colUploadCount; + private System.Windows.Forms.DataGridViewTextBoxColumn colOnSaleNum; private System.Windows.Forms.DataGridViewTextBoxColumn colRemaining; private System.Windows.Forms.DataGridViewTextBoxColumn colMessage; - private DevComponents.DotNetBar.PanelEx 并发上传; - private UserComponent.UcCheckBox chkUpDraft; - private System.Windows.Forms.ComboBox cmbSpProdType; - private System.Windows.Forms.Label label17; - private UserComponent.UcCheckBox chkTestNoAuditUpload; - private System.Windows.Forms.TextBox txtPreDays; - private UserComponent.UcCheckBox chkPreSale; - private System.Windows.Forms.Label label18; } } \ No newline at end of file diff --git a/TEMUKJD/WXForms/ProductForms/WXDBProdUploadForm.cs b/TEMUKJD/WXForms/ProductForms/WXDBProdUploadForm.cs index c961e9c..abc9f86 100644 --- a/TEMUKJD/WXForms/ProductForms/WXDBProdUploadForm.cs +++ b/TEMUKJD/WXForms/ProductForms/WXDBProdUploadForm.cs @@ -28,6 +28,7 @@ using AllBase.Model.Param.WXParam; using AllBase.Model.Result.WXResult; using Newtonsoft.Json; using NaiBa.Util; +using AllBase.Model.Config; namespace TemuKJD.WXForms.ProductForms { @@ -44,7 +45,9 @@ namespace TemuKJD.WXForms.ProductForms NaiBa.Util.ConcurrentList lstAddPriceRule = new NaiBa.Util.ConcurrentList(); AddPriceRule defaultAddPriceRule = null; WXUploadRule wxUploadRule = null; - public Dictionary> dicCheckedShopIdList = new Dictionary>(); + //public Dictionary> dicCheckedShopIdList = new Dictionary>(); + public Dictionary dicCheckedShopId = new Dictionary(); + public Dictionary dicShopUpload = new Dictionary(); public WXDBProdUploadForm() { InitializeComponent(); @@ -97,11 +100,12 @@ namespace TemuKJD.WXForms.ProductForms ucPrice.PriceChange += ucAddPrice_PriceChange; } - dicCheckedShopIdList = NaiBa.Util.Helper.ConfigHelper.LoadConfig>>("wx_checked_shop_dic_list"); - if (dicCheckedShopIdList == null) - dicCheckedShopIdList = new Dictionary>(); - if (!dicCheckedShopIdList.Keys.Contains(BaseClass.UserName)) - dicCheckedShopIdList[BaseClass.UserName] = new List(); + dicCheckedShopId = NaiBa.Util.Helper.ConfigHelper.LoadConfig>("wx_checked_shop_dic"); + if (dicCheckedShopId == null) + dicCheckedShopId = new Dictionary(); + dicShopUpload = NaiBa.Util.Helper.ConfigHelper.LoadConfig>("wx_shop_upload_info"); + if (dicShopUpload == null) + dicShopUpload = new Dictionary(); defaultAddPriceRule = NaiBa.Util.Helper.ConfigHelper.LoadConfig("wx_default_add_price_rule"); if (defaultAddPriceRule == null) @@ -251,13 +255,16 @@ namespace TemuKJD.WXForms.ProductForms } } - dicCheckedShopIdList[BaseClass.UserName] = dgvShop.Rows.Cast().Where(r => r.Cells["colSelect"].Value.ParseToBool() == true) - .Select(r => r.Cells["colShopId"].Value.ParseToString()).ToList(); - NaiBa.Util.Helper.ConfigHelper.SaveConfig("wx_checked_shop_dic_list", dicCheckedShopIdList); + foreach (var r in dgvShop.Rows.Cast()) + { + dicCheckedShopId[r.Cells["colShopId"].Value.ParseToString()] = r.Cells["colSelect"].Value.ParseToBool(); + } + NaiBa.Util.Helper.ConfigHelper.SaveConfig("wx_checked_shop_dic", dicCheckedShopId); } private void btnRefreshShop_Click(object sender, EventArgs e) { + pbLoadingShop.Visible = true; RefreshShop(); RefreshDbProd(); } @@ -278,7 +285,6 @@ namespace TemuKJD.WXForms.ProductForms Task.Run(() => { PDDDBProdListForm.GetPDDProductGroup(cmbGroupFilter); // 同时刷新下商品分组 - GetPddProductCate(); }); } @@ -343,18 +349,21 @@ namespace TemuKJD.WXForms.ProductForms bool canUse = shopEntity.LoginStatus == "登录成功"; //canUse = true; // 内部库不需要校验登录状态 var row = dgvShop.Rows.Cast().FirstOrDefault(p => p.Cells.GetCellValueFromColumnName("colShopId").ParseToString() == shopEntity.ShopId); + var day = DateTime.Now.ToString("yyyyMMdd").ParseToInt(); if (row == null) { this.dgvShop.Rows.Add( //!isInit || (selectShopId.Contains(shopEntity.ShopId) && canUse), - dicCheckedShopIdList[BaseClass.UserName].Contains(shopEntity.ShopId), + dicCheckedShopId.Keys.Contains(shopEntity.ShopId) && dicCheckedShopId[shopEntity.ShopId] == true, shopEntity.LoginName, shopEntity.ShopId, shopEntity.ShopAccount, shopEntity.Notes, "选择商品", canUse ? "在线" : "掉线", - canUse, + canUse, + dicShopUpload.ContainsKey(shopEntity.ShopId) && dicShopUpload[shopEntity.ShopId].DicDayUploadCount.ContainsKey(day) ? + dicShopUpload[shopEntity.ShopId].DicDayUploadCount[day] : 0, 0, shopEntity.AddProductRemaining, string.Empty @@ -401,9 +410,9 @@ namespace TemuKJD.WXForms.ProductForms { //BaseMsgForm.ShowInfo("店铺未登录!"); } - dicCheckedShopIdList[BaseClass.UserName] = dgvShop.Rows.Cast().Where(r => r.Cells["colSelect"].Value.ParseToBool() == true) - .Select(r => r.Cells["colShopId"].Value.ParseToString()).ToList(); - NaiBa.Util.Helper.ConfigHelper.SaveConfig("wx_checked_shop_dic_list", dicCheckedShopIdList); + + dicCheckedShopId[row.Cells["colShopId"].Value.ParseToString()] = row.Cells["colSelect"].Value.ParseToBool(); + NaiBa.Util.Helper.ConfigHelper.SaveConfig("wx_checked_shop_dic", dicCheckedShopId); break; case "colLoginStatus": if (WXShopListForm.Instance == null) @@ -2098,9 +2107,17 @@ namespace TemuKJD.WXForms.ProductForms var dgvShopRow = dgvShop.Rows.Cast().FirstOrDefault(row => row.Cells["colShopId"]?.Value.ParseToString() == shop.ShopId); if (dgvShopRow != null) { + var day = DateTime.Now.ToString("yyyyMMdd").ParseToInt(); + if (!dicShopUpload.ContainsKey(shop.ShopId)) + dicShopUpload[shop.ShopId] = new WxShopUploadInfo(); + if (!dicShopUpload[shop.ShopId].DicDayUploadCount.ContainsKey(day)) + dicShopUpload[shop.ShopId].DicDayUploadCount[day] = 0; + dicShopUpload[shop.ShopId].DicDayUploadCount[day]++; + NaiBa.Util.Helper.ConfigHelper.SaveConfig("wx_shop_upload_info", dicShopUpload); + Invoke(new Action(() => { - dgvShopRow.Cells["colUploadCount"].Value = dgvShopRow.Cells["colUploadCount"].Value.ParseToInt() + 1; + dgvShopRow.Cells["colUploadCount"].Value = dicShopUpload[shop.ShopId].DicDayUploadCount[day]; })); } @@ -2344,6 +2361,8 @@ namespace TemuKJD.WXForms.ProductForms } ucPrice.PriceChange += ucAddPrice_PriceChange; this.fPnlPriceRule.Controls.Add(ucPrice); + ucPrice.lblSinglePriceAdd.Visible = false; + ucPrice.txtSinglePriceAdd.Visible = false; } private void ucAddPrice_PriceChange(object obj) @@ -2521,9 +2540,18 @@ namespace TemuKJD.WXForms.ProductForms var dgvShopRow = dgvShop.Rows.Cast().FirstOrDefault(row => row.Cells["colShopId"]?.Value.ParseToString() == shop.ShopId); if (dgvShopRow != null) { + var day = DateTime.Now.ToString("yyyyMMdd").ParseToInt(); + var removeDay = DateTime.Now.Date.AddMonths(-1).ToString("yyyyMMdd").ParseToInt(); + if (!dicShopUpload.ContainsKey(shop.ShopId)) + dicShopUpload[shop.ShopId] = new WxShopUploadInfo(); + if (!dicShopUpload[shop.ShopId].DicDayUploadCount.ContainsKey(day)) + dicShopUpload[shop.ShopId].DicDayUploadCount[day] = 0; + dicShopUpload[shop.ShopId].DicDayUploadCount[day]++; + NaiBa.Util.Helper.ConfigHelper.SaveConfig("wx_shop_upload_info", dicShopUpload); + Invoke(new Action(() => { - dgvShopRow.Cells["colUploadCount"].Value = dgvShopRow.Cells["colUploadCount"].Value.ParseToInt() + 1; + dgvShopRow.Cells["colUploadCount"].Value = dicShopUpload[shop.ShopId].DicDayUploadCount[day]; })); } } @@ -2582,6 +2610,11 @@ namespace TemuKJD.WXForms.ProductForms wxUploadRule.IsPreSale = chkPreSale.Checked; NaiBa.Util.Helper.ConfigHelper.SaveConfig("wx_upload_rule", wxUploadRule); } + + private void btnRefreshNum_Click(object sender, EventArgs e) + { + + } } public class WXUpload diff --git a/TEMUKJD/WXForms/ProductForms/WXDBProdUploadForm.resx b/TEMUKJD/WXForms/ProductForms/WXDBProdUploadForm.resx index cab7006..3f86cc6 100644 --- a/TEMUKJD/WXForms/ProductForms/WXDBProdUploadForm.resx +++ b/TEMUKJD/WXForms/ProductForms/WXDBProdUploadForm.resx @@ -141,6 +141,9 @@ True + + True + True diff --git a/TEMUKJD/WXForms/TalkForms/TalkMessageForm.cs b/TEMUKJD/WXForms/TalkForms/TalkMessageForm.cs new file mode 100644 index 0000000..38b82ac --- /dev/null +++ b/TEMUKJD/WXForms/TalkForms/TalkMessageForm.cs @@ -0,0 +1,89 @@ +using AllBase.Model.Result; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading; +using System.Threading.Tasks; +using System.Windows.Forms; +using TemuKJD.BaseForms; + +namespace TemuKJD.WXForms.TalkForms +{ + public partial class TalkMessageForm : BaseGeneralForm + { + public ShopLoginInfo shop; + public WxTalkForm cf; + public TalkMessageForm(ShopLoginInfo _shop, WxTalkForm _cf) + { + InitializeComponent(); + + this.shop = _shop; + this.cf = _cf; + this.Load += ChatMessageForm_Load; + this.FormClosed += ChatMessageForm_FormClosed; + this.TopMost = true; + } + + private void ChatMessageForm_FormClosed(object sender, FormClosedEventArgs e) + { + WxTalkForm.lstChatMessageForm.Remove(this); + } + + private void ChatMessageForm_Load(object sender, EventArgs e) + { + if (shop != null) + { + this.pnlMessage.Text = "店铺" + shop.ShopAccount + "有新消息\r\n点击查看"; + } + var height = this.Height; + Task.Run(() => + { + for (int i = 0; i < height; i++) + { + Invoke(new Action(() => + { + Point p = new Point(Screen.PrimaryScreen.WorkingArea.Width - this.Width, Screen.PrimaryScreen.WorkingArea.Height); + this.Location = new Point(p.X, p.Y - i); + })); + Thread.Sleep(5); + } + //Thread.Sleep(2000); + //var _opacity = 1.0; + //while (_opacity > 0) + //{ + // _opacity -= 0.02; + // Invoke(new Action(() => + // { + // this.Opacity = _opacity; + // if (this.Opacity <= 0) + // this.Close(); + // })); + // Thread.Sleep(100); + //} + }); + } + + private void pnlMessage_Click(object sender, EventArgs e) + { + if (cf != null) + { + //cf.TopMost = true; + cf.DgvShopClick(shop); + Task.Run(() => + { + Thread.Sleep(1000); + Invoke(new Action(() => + { + this.Close(); + //this.TopMost = false; + //cf.TopMost = false; + })); + }); + } + } + } +} diff --git a/TEMUKJD/WXForms/TalkForms/TalkMessageForm.designer.cs b/TEMUKJD/WXForms/TalkForms/TalkMessageForm.designer.cs new file mode 100644 index 0000000..69b3742 --- /dev/null +++ b/TEMUKJD/WXForms/TalkForms/TalkMessageForm.designer.cs @@ -0,0 +1,100 @@ +namespace TemuKJD.WXForms.TalkForms +{ + partial class TalkMessageForm + { + /// + /// 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.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(TalkMessageForm)); + this.timer1 = new System.Windows.Forms.Timer(this.components); + this.pnlMessage = new DevComponents.DotNetBar.PanelEx(); + this.panel2 = new System.Windows.Forms.Panel(); + this.panel2.SuspendLayout(); + this.SuspendLayout(); + // + // pnlMessage + // + this.pnlMessage.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; + this.pnlMessage.Cursor = System.Windows.Forms.Cursors.Hand; + this.pnlMessage.DisabledBackColor = System.Drawing.Color.Empty; + this.pnlMessage.Dock = System.Windows.Forms.DockStyle.Fill; + this.pnlMessage.Font = new System.Drawing.Font("微软雅黑", 10.5F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.pnlMessage.Location = new System.Drawing.Point(8, 8); + this.pnlMessage.Name = "pnlMessage"; + this.pnlMessage.Size = new System.Drawing.Size(238, 94); + this.pnlMessage.Style.Alignment = System.Drawing.StringAlignment.Center; + this.pnlMessage.Style.BackColor1.Color = System.Drawing.Color.White; + this.pnlMessage.Style.BackColor2.Color = System.Drawing.Color.White; + this.pnlMessage.Style.Border = DevComponents.DotNetBar.eBorderType.SingleLine; + this.pnlMessage.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; + this.pnlMessage.Style.ForeColor.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.pnlMessage.Style.GradientAngle = 90; + this.pnlMessage.StyleMouseDown.Alignment = System.Drawing.StringAlignment.Center; + this.pnlMessage.StyleMouseDown.BackColor1.Color = System.Drawing.Color.White; + this.pnlMessage.StyleMouseDown.BackColor2.Color = System.Drawing.Color.White; + this.pnlMessage.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center; + this.pnlMessage.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(235)))), ((int)(((byte)(255))))); + this.pnlMessage.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(235)))), ((int)(((byte)(255))))); + this.pnlMessage.TabIndex = 188; + this.pnlMessage.Text = "有新消息"; + this.pnlMessage.Click += new System.EventHandler(this.pnlMessage_Click); + // + // panel2 + // + this.panel2.BackColor = System.Drawing.Color.White; + this.panel2.Controls.Add(this.pnlMessage); + this.panel2.Dock = System.Windows.Forms.DockStyle.Fill; + this.panel2.Location = new System.Drawing.Point(1, 33); + this.panel2.Name = "panel2"; + this.panel2.Padding = new System.Windows.Forms.Padding(8); + this.panel2.Size = new System.Drawing.Size(254, 110); + this.panel2.TabIndex = 189; + // + // ChatMessageForm + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(256, 144); + this.Controls.Add(this.panel2); + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.ShowMinimizedBox = true; + this.Name = "ChatMessageForm"; + this.Text = "新消息"; + this.TitleText = "新消息"; + this.Controls.SetChildIndex(this.panel2, 0); + this.panel2.ResumeLayout(false); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.Timer timer1; + private DevComponents.DotNetBar.PanelEx pnlMessage; + private System.Windows.Forms.Panel panel2; + } +} \ No newline at end of file diff --git a/TEMUKJD/WXForms/TalkForms/TalkMessageForm.resx b/TEMUKJD/WXForms/TalkForms/TalkMessageForm.resx new file mode 100644 index 0000000..9b96c02 --- /dev/null +++ b/TEMUKJD/WXForms/TalkForms/TalkMessageForm.resx @@ -0,0 +1,301 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + 17, 17 + + + + + AAABAAEAgIAQeQAAAABoKAAAFgAAACgAAACAAAAAAAEAAAEABAAAAAAAACgAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAACAAACAAAAAgIAAgAAAAIAAgACAgAAAgICAAMDAwAAAAP8AAP8AAAD//wD/AAAA/wD/AP// + AAD///8AAAAAAAAAAAAAAAAABEZmbMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMZmZkQAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAZszMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM + zMxmAAAAAAAAAAAAAAAAAAAAAAAAAAAEbMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM + zMzMzMzMzMZAAAAAAAAAAAAAAAAAAAAAAAAEbMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM + zMzMzMzMzMzMzMzMxkAAAAAAAAAAAAAAAAAAAAAEbMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM + zMzMzMzMzMzMzMzMzMzMzMzGQAAAAAAAAAAAAAAAAAAAbMzMzMzMzMzMzMzMzMzMzMzMzMd3d3d3d3d3 + d3d3fMzMzMzMzMzMzMzMzMzMzMzMzMYAAAAAAAAAAAAAAAAARszMzMzMzMzMzMzMzMzMzMd3d3iIiIiI + iIiIiIiIiIh3d3d8zMzMzMzMzMzMzMzMzMzMZAAAAAAAAAAAAAAABszMzMzMzMzMzMzMzMzMx3eIiIiI + iIiIiIiIiIiIiIiIiIiIiHd8zMzMzMzMzMzMzMzMzMxgAAAAAAAAAAAAAGzMzMzMzMzMzMzMzMzMd4iI + iIiIiIiIiIiIiIiIiIiIiIiIiIiIiHfMzMzMzMzMzMzMzMzMxgAAAAAAAAAAAAbMzMzMzMzMzMzMzMzH + eIiIiIiIiIiHZmZmZmZmZmZmZ3eIiIiIiIiIiHzMzMzMzMzMzMzMzMxgAAAAAAAAAABszMzMzMzMzMzM + zMzHiIiIiIiHZmZmZmZmZmZmZmZmZmZmZmZmeIiIiIiIfMzMzMzMzMzMzMzMxgAAAAAAAAAGzMzMzMzM + zMzMzMzHiIiIiIdmZmZmZgAAAAAAAAAAAAZmZmZmZmZmeIiIiIh8zMzMzMzMzMzMzMxgAAAAAAAATMzM + zMzMzMzMzMzHiIiIiHZmZgAAAAAAAAAAAAEAAAAAAAAAAGZmZmZniIiIiHzMzMzMzMzMzMzMxAAAAAAA + AGzMzMzMzMzMzMzMeIiIiGZmAAAAAAERERmZmZmZmZmZkRERERAAAGZmZmZ4iIiIfMzMzMzMzMzMzMYA + AAAAAAbMzMzMzMzMzMzMeIiIiGZgAAAAERmZmZmZmZmZmZmZmZmZmZmZkREAAGZmZniIiIfMzMzMzMzM + zMzMYAAAAABMzMzMzMzMzMzMzIiIiHYAAAARGZmZiIiIj///////+IiIiIeZmZmZkREAZmZmiIiIfMzM + zMzMzMzMzMQAAAAAbMzMzMzMzMzMzO6IiIYAAAARmYiI/////////////////////4iHmZmZEQBmZmeI + iIh8zMzMzMzMzMzGAAAABMzMzMzMzMzMzMeIiIdgAAAZmI////////////////////////////iJmZmR + EGZmZ4iIh8zMzMzMzMzMzEAAAAbMzMzMzMzMzMzoiIhwAAAZeP////////////////////////////// + /4iZmZEAZmZ4iIh8zMzMzMzMzMxgAABMzMzMzMzMzMzOiIiGAAABiP////////////////////////// + ////////+JmZkQZmZ4iIh8zMzMzMzMzMxAAAbMzMzMzMzMzM7oiIYAABeP////////////////////// + ///////////////4mZkQZmZ4iIjMzMzMzMzMzMYAAMzMzMzMzMzMzu6IhwAAGP////////////////// + /////////////////////4iZmRZmZ4iIfMzMzMzMzMzMAAbMzMzMzMzMzM7oiHAAB4////////////// + ////////////////////////////iZmRBmZ4iIfMzMzMzMzMzGAGzMzMzMzMzMzuiIcAAHj///////// + //////////////////////////////////iZmRZmZ4iIzMzMzMzMzMxgDMzMzMzMzMzM7ohwAAf///// + ////////////////////////////////////////95mRZmaIiHzMzMzMzMzMwEzMzMzMzMzMzuiIEABo + //////////////////////////////////////////////95mRZmaIiMzMzMzMzMzMRszMzMzMzMzM7o + hwAGj///////////////////////////////////////////////95kQZmeIh8zMzMzMzMzGbMzMzMzM + zMzu6HEAB/////////////////////////////////////////////////+ZkQZmiIjMzMzMzMzMxmzM + zMzMzMzM7ohwAGj/////////////////////////////////////////////////iZkWZniIfMzMzMzM + zMZszMzMzMzMxu6HEAbv/4iI/////////////////////////////////////////4iP//iZEGZoiHzM + zMzMzMzGbMzMzMzMzM7uhxAGj/iIiIj//////////////////////////////////////4iIiI//mZFm + aIiMzMzMzMzMxszMzMzMzMzO6IEAbv+IiIiIj/////////////////////////////////////iIiIiP + /4mRBmeIh8zMzMzMzMbMzMzMzMzMbuhxAG7/iIiIiI////////////////iIj///j//////////////4 + iIiIiP/5mQZmiIfMzMzMzMzMzMzMzMzMzO7ocQDo+IiIiIiP///////////////u7u7u7u7o//////// + ////iIiIiIj/+JkWZoiHzMzMzMzMzMzMzMzMzMzu6BEG7/iIiIiIj/////////////+Hd3ju5maO7v// + /////////4iIiIiI//iZEGaIh8zMzMzMzMzMzMzMzMzM7ugRBu//iIiIiI//////////////kZmZdmAZ + mP/////////////4iIiIiP//mRBmeIjMzMzMzMzMzMzMzMzMzO7nEAbv/4iIiIiP////////////+HiI + mZEBd5n/////////////+IiIiIj//4mQZniIzMzMzMzMzMzMzMzMzMzu5xAO7//4iIiI//ju7o////// + //j//4mZeP/4//////////////iIiIiP//+JkGZ4iHzMzMzMzMzMzMzMzMzG7ocQDu///4iI//ju7u7u + j//////////4mP//////////////7u7uiIiI////iZBmaIh8zMzMzMzMzMzMzMzMzu6HEG7v//////+G + ZmZ47u7//////////4//////////////7u7u7u6P/////4mQBmiIfMzMzMzMzMzMzMzMzM7uhRBu7/// + ///3AAAAF37u7///////////////////////h2AABm7u7v/////5kAZ4iHzMzMzMzMzMzMzMzMzO7oUQ + bu//////gQAAZgEG7u//////////////////////+BAAAAAFfu6P////+ZAGeIjMzMzMzMzMzMzMzMzM + zu6FEG7v////+JEAAXhwAG7o/////////////////////4gAABEGARbu7/////kQBoiIzMzMzMzMzMzM + zMzMzM7uhRBu7/////iZABmZkQBm6P////////////////////+JABGZF2AAbo////+JEGaIiMzMzMzM + zMzMzMzMzMzO7ucRbu/////4mRZ4iZkQBu//////////////////////mQB5mZdgAG7/////iRBmiIfM + zMzMzMzMzMzMzMzMxu7nEQ7v////+Bl+j/iZEAaP/////////////////////5l2/4mRAABu/////4kQ + ZoiHzMzMzMzMzMzMzMzMzMzu5xEO6P//+Phgbu/4kQAI//////////////////////+Zfo/4kQAAeIiP + //+JEGaIh8zMzMzMzMzMzMzMzMzM7ucRBu7///iOYHiI+HAAf///////////////////////mYjv+BAA + BuiIj///iQBniIfMzMzMzMzMzMzMzMzMzO7nEQbu///3EAAG6IcRF4iP/////////////////////4GP + /4cQAAZnbv///5EAaIiMzMzMzMzMzMzMzMzMzMzu5xEW7v//iRF3dmZgAXjmj/////////////////// + ///3ePiBEQAHdm7///iRAGiIfMzMzMzMzMzMzMzMzMzM7u5xFu6P/5EZmXZmZmbmaP////////////// + ///////4/4d2cRAAFwbuj//4kQZoiHzMzMzMzMzMzMzMzMzMzG7ucRDu7/iXiZkQAAZmAH////////// + ////////////+IiIdmYABmAX//j/+BAGeIh8zMzMzMzMzMzMzMzMzMzO7nEQbu/4iP+BERkREZf///// + //////////////////+JmXdxEBEAB3////kQBoiIzMzMzMzMzMzMzMzMzMzMzu5xEW7o+P//gZmZmZmP + ////////////////////////+JmZmZmZl453//+JAGaIh8zMzMzMzMzMzMzMzMzMzM7u5xEO7vj/+IeP + iIj////////////////////////////4iZmZmZiPiP//cQBoiIfMzMzMzMzMzMzMzMzMzMzM7ucRFu6P + //iP//////////////////////////////////////+Jn/j/+JAAaIiMzMzMzMzMzMzMzMzMzMzMzO7n + ERbu7//4/////////////////////////////////////////4j///gQBoiIfMzMzMzMzMzMzMzMzMzM + zMzu7nERbuj////////////////////////////////////////////4//+BAAaIiMzMzMzMzMzMzMzM + zMzMzMzMzu5xEW7u////////////////////////////////////////////////cQBoiIfMzMzMzMzM + zMzMzMzMzMzMzM7u5xEW7u//////////////////////////////////////////////+BAAaIiMzMzM + zMzMzMzMzMzMzMzMzMzO7uYREO7o//7v//////////////////////////////////////////cABoiI + fMzMzMzMzMzMzMzMzMzMzMzMzO7ucRFu7oj/7o////////////////////////////////////////9x + AAeIiMzMzMzMzMzMzMzMzMzMzMzMzMzO7ucRFu7nePju7u7v//////////////////////////////// + 6P/4EAB4iIfMzMzMzMzMzMzMzMzMzMzMzMzMzu7nERBu7nmIiO7oj/////////////////////////// + ju7u7o//hwAGiIh8zMzMzMzMzMzMzMzMzMzMzMzMzMzu7nERbu7nmZl5eP////////////////////// + ///4iPiO5nj/+HAAaIiIzMzMzMzMzMzMzMzMzMzMzMzMzMzM7u7nERbu7oiZeI////////////////// + ////////+ImXd5mP/4cAAHiIh8zMzMzMzMzMzMzMzMzMzMzMzMzMzM7u53ERbu7v//////////////// + ///////////////4iZl4//hgAAeIiHzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM7u53ERBu7v////////// + //////////////////////////+GAAB4iI7MzMzMzMzMzMzMzMzMzMzMzMzMzMzMzO7uiHEADujv//// + ///////////////////////////////3AAAGiIh8zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzO7ohwABmP + ////////////////////////////////////iREAZniIjMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzuiI + EAB4f///////////////////////////////////+JmZkWZoiIfMzMzMzMzMzMzMzMzMzMzMzMzMzMzM + zO6IhwBo//////////////////////////////////////iImZl2ZoiIzMzMzMzMzMzMzMzMzMzMzMzM + zMzMzMzuiHAA7////////////////////////////////////////4iZFmZ4iHzMzMzMzMzMzMzMzMzM + zMzMzMzMzMzO6IgQBo/////4j///////////////////////////////////mZFmaIiMzMzMzMzMzMzM + zMzMzMzMzMzMzMzMzuiHAA7/////iIiP//////7o//////////////////iI/////4mRZmeIh8zMzMzM + zMzMzMzMzMzMzMzMzMzMzO6IcQBo////+IiIiI/////+7u7u7uiIiI7u7v////iIiI/////5mRZmiIjM + zMzMzMzMzMzMzMzMzMzMzMzMzMzuiHAA7////4iIiIiIj//3d2bu7u7u7u7u7u7//4iIiIiP////+JkW + ZniIfMzMzMzMzMzMzMzMzMzMzMzMzMzO6IcQBo////+IiIiIiI//+ZkAAGZmZmZmZmbv//iIiIiIiP// + //+ZkWZoiIzMzMzMzMzMzMzMzMzMzMzMzMzMzuiFAG7////4iIiIiIj///iZABEREREREBAG7//4iIiI + iIj/////iZFmaIiMzMzMzMzMzMzMzMzMzMzMzMzMzO6IcQBo////+IiIiIiI///4kQARERERERERDo// + +IiIiIiIj/////mZBmeIh8zMzMzMzMzMzMzMzMzMzMzMzMzuiHAG7////4iIiIiIiP//+JFmeHd3d3dx + EW6P//iIiIiIiI/////4mRZmiIfMzMzMzMzMzMzMzMzMzMzMzMzO7ocQBo////+IiIiIiIj///iQZoiO + 7u7u5xFu7//4iIiIiIiI////+JkWZniIzMzMzMzMzMzMzMzMzMzMzMzMzuiHEA7////4iIiIiIiP///5 + kGaIju7u7ucRbu///4iIiIiIiP////95kGZ4iHzMzMzMzMzMzMzMzMzMzMzMzM7ogQBu////+IiIiIiI + j///+RBmiI7u7u7nEW7v//+IiIiIiIiP////iZFmaIh8zMzMzMzMzMzMzMzMzMzMzMzu6HEAaP////iI + iIiIiI////kQZoiHzMzu5xEO6P//iIiIiIiIj////4mRZmiIjMzMzMzMzMzMzMzMzMzMzMzM7ugRBu// + ///4iIiIiIj///+JEGaIh8zM7ucRBu7//4iIiIiIiI/////5kQZniIzMzMzMzMzMzMzMzMzMzMzMzO6I + EAbv////iIiIiIiI////iQBniIzMzO7oERbu///4iIiIiIiP////+JkGZ4iHzMzMzMzMzMzMzMzMzMzM + zMbuhxAGj////4iIiIiIj////3kAaIiMzMzu7nEW7v//+IiIiIiIiP////iZFmaIh8zMzMzMzMzMzMzM + zMzMzMzO7oUQbv////+IiIiIiI////+RBmiIfMzMzu5xFu6P//+IiIiIiIj////4mRZmiIfMzMzMzMzM + zMzMzMzMzMzMzu6BAG7////4iIiIiIj////4kQZoiHzMzM7ucRDu7///iIiIiIiIj////5kQZoiHzMzM + zMzMzMzMzMzMzMzMzM7ocQBu////+IiIiIiI////+JAGeIh8zMzO7nERbu///4iIiIiIiI////95EGaI + h8zMzMzMzMzMzMzMzMzMzMxu6HEA7v////iIiIiIiP////cQBoiIzMzMzu7lEW7v///4iIiIiIiP//// + iRBmeIjMzMzMzMzMzMzMzMzMzMzM7uhxBuj////4iIiIiI/////5EAaIiMzMzMbu5xEO7v//+IiIiIiI + j////4kQZniIzMzMzMzMzMzMzMzMzMzMzO7oEQbv////+IiIiIj/////iQBmiIfMzMzM7ucRBu7///iI + iIiIiIj///+JkGZ4iMzMzMzMzMzMzMzMzMzMzMzu6BEG7/////iIiIiI/////4EAaIiHzMzMzO7nERbu + j///iIiIiIiI////iZBmaIh8zMzMzMzMzMzMzMzMzMzM7ucRBu/////4iIiIj/////+RAGiIjMzMzMzu + 7nEQ7u////iIiIiIiP///4mQBmiIfMzMzMzMzMzMzMzMzMzMzO7nEAbv////+IiIiP/////4EAZ4iHzM + zMzMzu5xEG7v///4iIiIiIj///+JkAZoiHzMzMzMzMzMxmzMzMzMzMzu5xAO7/////+IiI//////+RAG + iIjMzMzMzM7ucRFu7v///4iIiIiI////+ZAGaIh8zMzMzMzMzMZszMzMzMzG7ocQDu//////+I////// + /4EAZoiIzMzMzMzO7ucRBu7////4iIiIiP////mQBmiIfMzMzMzMzMzGbMzMzMzMzu6HEA7v//////// + //////9xAGiIh8zMzMzMzO7nERbu7///+IiIiI/////5kAZoiHzMzMzMzMzMxmzMzMzMzM7uhxAO7/// + ///////////4EABoiIzMzMzMzMzu7nEQbu////+IiIiP////+ZAGaIh8zMzMzMzMzMZszMzMzMzO7oUQ + Du//////////////9xAGiIh8zMzMzMzM7u5xEW7u/////4iI//////mQBmiIfMzMzMzMzMzGTMzMzMzM + zu6HEA7v/////////////4EABoiIzMzMzMzMzM7u5xEG7v/////////////5kAZoiHzMzMzMzMzMxAzM + zMzMzM7uhxEO7/////////////9wAGiIh8zMzMzMzMzO7ucRFu7v////////////+RAGeIh8zMzMzMzM + zMAGzMzMzMzO7ucRDuj////////////4EAB4iIzMzMzMzMzMzO7ucRBu6P///////////4kQBoiIzMzM + zMzMzMxgBszMzMzMxu7nEQbo////////////gQAGiIh8zMzMzMzMzMzu7nERDu7///////////+JEAaI + iMzMzMzMzMzMYADMzMzMzMzu5xEG7v///////////3EAZ4iIzMzMzMzMzMzMzu7nERbu7/////////// + gQBmiIfMzMzMzMzMzAAAbMzMzMzM7ucRBu7///////////gQAGiIh8zMzMzMzMzMzM7u5xEQbu7///// + /////5EAZ4iHzMzMzMzMzMYAAEzMzMzMzO7nERDu7/////////+HAAaIiIzMzMzMzMzMzMzM7u5xEQ7u + 7/////////gQAGiIjMzMzMzMzMzEAAAGzMzMzMzu7nEQbuj////////4cAAHiIh8zMzMzMzMzMzMzO7u + dxEW7uj////////3AAZoiHzMzMzMzMzMYAAABMzMzMzM7u5xEG7u////////hgAAeIiHzMzMzMzMzMzM + zMzO7ucREW7u7///////gQAGiIh8zMzMzMzMzEAAAABszMzMzM7ucREG7uj/////hmAAB4iI7MzMzMzM + zMzMzMzMzu7ucREG7u6P////+AAAB4iIzMzMzMzMzMYAAAAATMzMzMzO7ucREG7u7oiO7mAAAHiIiMzM + zMzMzMzMzMzMzMzu7ucREG7u7o//+HYAAHiIh8zMzMzMzMzEAAAAAAbMzMzMzu7nEREG7u7u5mAAAAeI + iIfMzMzMzMzMzMzMzMzMzu7ucREQbu7u7uYAAAeIiHzMzMzMzMzMYAAAAAAAbMzMzMzu7nEREAZmZgAA + AAF4iI58zMzMzMzMzMzMzMzMzMzu7ncREQZm7mZgAAB4iI7MzMzMzMzMxgAAAAAAAEzMzMzM7u7nEREQ + AAAAABF4iI7uzMzMzMzMzMzMzMzMzMzM7u7ucRERAAAAAAAHiIiMzMzMzMzMzMQAAAAAAAAGzMzMzM7u + 7nERERERERF3iIju7MzMzMzMzMzMzMzMzMzMzM7u7udREREQAAAReIiIfMzMzMzMzMxgAAAAAAAAAGzM + zMzM7u7udRERERV4iI7u7MzMzMzMzMzMzMzMzMzMzMzM7u7u5xEREREReIiO7MzMzMzMzMzGAAAAAAAA + AAAGzMzMzM7u7u53d3eIiO7u7szMzMzMzMzMzMzMzMzMzMzMzM7u7u7nd1F3eIiO7uzMzMzMzMzMYAAA + AAAAAAAAAGzMzMzM7u7u7u7u7u7u7szMzMzMzMzMzMzMzMzMzMzMzMzMzu7u7u6IiI7u7uzMzMzMzMzM + xgAAAAAAAAAAAAAGzMzMzMzu7u7u7u7u5szMzMzMzMzMzMzMzMzMzMzMzMzMzMzO7u7u7u7u7u7MzMzM + zMzMzGAAAAAAAAAAAAAAAEbMzMzMzG7u7u7ubMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM7u7u7u7uzM + zMzMzMzMzGQAAAAAAAAAAAAAAAAAbMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzG7u + 7szMzMzMzMzMzMYAAAAAAAAAAAAAAAAAAARszMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM + zMzMzMzMzMzMzMzMzMZAAAAAAAAAAAAAAAAAAAAABGzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM + zMzMzMzMzMzMzMzMzMzMzMZAAAAAAAAAAAAAAAAAAAAAAAAEbMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM + zMzMzMzMzMzMzMzMzMzMzMzMzMZAAAAAAAAAAAAAAAAAAAAAAAAAAABmzMzMzMzMzMzMzMzMzMzMzMzM + zMzMzMzMzMzMzMzMzMzMzMzMzMzMzGYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARGZmzMzMzMzMzMzMzM + zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMZmZEAAAAAAAAAAAAAAAAD////+AAAAAAAAAAD/////////AAAA + AAAAAAAAAP//////+AAAAAAAAAAAAAAf/////+AAAAAAAAAAAAAAB/////+AAAAAAAAAAAAAAAH////+ + AAAAAAAAAAAAAAAAf////AAAAAAAAAAAAAAAAD////AAAAAAAAAAAAAAAAAP///gAAAAAAAAAAAAAAAA + B///wAAAAAAAAAAAAAAAAAP//4AAAAAAAAAAAAAAAAAB//8AAAAAAAAAAAAAAAAAAP/+AAAAAAAAAAAA + AAAAAAB//gAAAAAAAAAAAAAAAAAAf/wAAAAAAAAAAAAAAAAAAD/4AAAAAAAAAAAAAAAAAAAf+AAAAAAA + AAAAAAAAAAAAH/AAAAAAAAAAAAAAAAAAAA/wAAAAAAAAAAAAAAAAAAAP4AAAAAAAAAAAAAAAAAAAB+AA + AAAAAAAAAAAAAAAAAAfAAAAAAAAAAAAAAAAAAAADwAAAAAAAAAAAAAAAAAAAA8AAAAAAAAAAAAAAAAAA + AAOAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAA + AAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABAAAAAAAA + AAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAA + AAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAA + AAAAAAABgAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAPAAAAAAAAAAAAAAAAAAAADwAAAAAAA + AAAAAAAAAAAAA+AAAAAAAAAAAAAAAAAAAAfgAAAAAAAAAAAAAAAAAAAH8AAAAAAAAAAAAAAAAAAAD/AA + AAAAAAAAAAAAAAAAAA/4AAAAAAAAAAAAAAAAAAAf+AAAAAAAAAAAAAAAAAAAH/wAAAAAAAAAAAAAAAAA + AD/+AAAAAAAAAAAAAAAAAAB//gAAAAAAAAAAAAAAAAAAf/8AAAAAAAAAAAAAAAAAAP//gAAAAAAAAAAA + AAAAAAH//8AAAAAAAAAAAAAAAAAD///gAAAAAAAAAAAAAAAAB///8AAAAAAAAAAAAAAAAA////wAAAAA + AAAAAAAAAAA////+AAAAAAAAAAAAAAAAf////4AAAAAAAAAAAAAAAf/////gAAAAAAAAAAAAAAf///// + +AAAAAAAAAAAAAAf//////8AAAAAAAAAAAAA/////////gAAAAAAAAAAf////w== + + + \ No newline at end of file diff --git a/TEMUKJD/WXForms/TalkForms/WxTalkForm.Designer.cs b/TEMUKJD/WXForms/TalkForms/WxTalkForm.Designer.cs index a3a4f44..514c542 100644 --- a/TEMUKJD/WXForms/TalkForms/WxTalkForm.Designer.cs +++ b/TEMUKJD/WXForms/TalkForms/WxTalkForm.Designer.cs @@ -45,6 +45,7 @@ namespace TemuKJD.WXForms.TalkForms this.txtAutoReplyText = new System.Windows.Forms.TextBox(); this.chkIsAutoReply = new System.Windows.Forms.CheckBox(); this.splitContainer4 = new System.Windows.Forms.SplitContainer(); + this.pbLoading = new System.Windows.Forms.PictureBox(); this.dgvShop = new TemuKJD.UserComponent.DataGridViewEx(); this.colSelect = new TemuKJD.UserComponent.UcDataGridViewCheckBoxColumn(this.components); this.colShopLoginName = new System.Windows.Forms.DataGridViewTextBoxColumn(); @@ -69,7 +70,6 @@ namespace TemuKJD.WXForms.TalkForms this.dataGridViewTextBoxColumn3 = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.dataGridViewTextBoxColumn4 = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.dataGridViewLinkColumn2 = new System.Windows.Forms.DataGridViewLinkColumn(); - this.pbLoading = new System.Windows.Forms.PictureBox(); ((System.ComponentModel.ISupportInitialize)(this.pbLogo)).BeginInit(); this.panel3.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit(); @@ -84,11 +84,11 @@ namespace TemuKJD.WXForms.TalkForms this.splitContainer4.Panel1.SuspendLayout(); this.splitContainer4.Panel2.SuspendLayout(); this.splitContainer4.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.pbLoading)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.dgvShop)).BeginInit(); this.ucTabControl1.SuspendLayout(); this.tabPage1.SuspendLayout(); this.tabPage2.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.pbLoading)).BeginInit(); this.SuspendLayout(); // // pbLogo @@ -98,7 +98,7 @@ namespace TemuKJD.WXForms.TalkForms // lblVersionName // this.lblVersionName.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.lblVersionName.Location = new System.Drawing.Point(4995, 33); + this.lblVersionName.Location = new System.Drawing.Point(5529, 33); // // panel3 // @@ -293,6 +293,18 @@ namespace TemuKJD.WXForms.TalkForms this.splitContainer4.SplitterDistance = 555; this.splitContainer4.TabIndex = 7; // + // 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(108, 252); + this.pbLoading.Name = "pbLoading"; + this.pbLoading.Size = new System.Drawing.Size(50, 50); + this.pbLoading.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; + this.pbLoading.TabIndex = 8; + this.pbLoading.TabStop = false; + this.pbLoading.Visible = false; + // // dgvShop // this.dgvShop.AllowUserToAddRows = false; @@ -322,6 +334,7 @@ namespace TemuKJD.WXForms.TalkForms this.colMessage}); this.dgvShop.Dock = System.Windows.Forms.DockStyle.Fill; this.dgvShop.Location = new System.Drawing.Point(0, 0); + this.dgvShop.MultiSelect = false; this.dgvShop.Name = "dgvShop"; this.dgvShop.ReadOnly = true; this.dgvShop.RowHeadersWidth = 25; @@ -548,18 +561,6 @@ namespace TemuKJD.WXForms.TalkForms this.dataGridViewLinkColumn2.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; this.dataGridViewLinkColumn2.Width = 106; // - // 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(108, 252); - this.pbLoading.Name = "pbLoading"; - this.pbLoading.Size = new System.Drawing.Size(50, 50); - this.pbLoading.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; - this.pbLoading.TabIndex = 8; - this.pbLoading.TabStop = false; - this.pbLoading.Visible = false; - // // WxTalkForm // this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; @@ -589,11 +590,11 @@ namespace TemuKJD.WXForms.TalkForms this.splitContainer4.Panel2.ResumeLayout(false); ((System.ComponentModel.ISupportInitialize)(this.splitContainer4)).EndInit(); this.splitContainer4.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.pbLoading)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.dgvShop)).EndInit(); this.ucTabControl1.ResumeLayout(false); this.tabPage1.ResumeLayout(false); this.tabPage2.ResumeLayout(false); - ((System.ComponentModel.ISupportInitialize)(this.pbLoading)).EndInit(); this.ResumeLayout(false); } diff --git a/TEMUKJD/WXForms/TalkForms/WxTalkForm.cs b/TEMUKJD/WXForms/TalkForms/WxTalkForm.cs index 7768a31..2e0993c 100644 --- a/TEMUKJD/WXForms/TalkForms/WxTalkForm.cs +++ b/TEMUKJD/WXForms/TalkForms/WxTalkForm.cs @@ -50,7 +50,7 @@ namespace TemuKJD.WXForms.TalkForms /// /// 弹出框列表 /// - //public static List lstChatMessageForm = new List(); + public static List lstChatMessageForm = new List(); public static Dictionary dicRowColor = new Dictionary(); public int LocationXY = 0; @@ -260,7 +260,7 @@ namespace TemuKJD.WXForms.TalkForms Task.Run(() => { var handler = resourceRequestHandler; - Thread.Sleep(3000); + //Thread.Sleep(3000); handler.ResourceLoadCompleteEvent += RequestHandler_ResourceLoadComplete; }); cefWebBrowser.RequestHandler = new CustomRequestHandler(resourceRequestHandler); @@ -283,6 +283,28 @@ namespace TemuKJD.WXForms.TalkForms Task.Run(() => { ShowChat(shop); + while (shop.Chat.IsLoading) + { + Thread.Sleep(50); + } + //Thread.Sleep(3000); + //var t = shop.Chat.GetMainFrame().EvaluateScriptAsync("document.getElementsByClassName('unread-badge bold').length;"); + //t.Wait(2000); + //if (t.Result?.Result?.ParseToInt() > 0) + //{ + // var row = dgvShop.Rows.Cast().FirstOrDefault(rw => rw.Cells["colShopId"].Value.ParseToString() == shop.ShopId); + // if (row != null) + // { + // Invoke(new Action(() => + // { + // row.Cells["colMessage"].Value = "有历史未读消息"; + // })); + // // 进行闪烁 + // Task.Run(() => { FlashDgvRow(row); }); + // // 播放声音 + // playSound(); + // } + //} }); } catch (Exception ex) @@ -296,9 +318,9 @@ namespace TemuKJD.WXForms.TalkForms private void RequestHandler_ResourceLoadComplete(object sender, string url, string postData, string responseData) { - if (responseData.Contains("你好")) - { - } + //if (responseData.Contains("你好")) + //{ + //} if (url.Contains("action=get_nosession_summary") || url.Contains("action=get_open_session_summary") || url.Contains("action=get_session_summary") || url.Contains("action=get_sync_msg")) { Task.Run(() => @@ -333,7 +355,7 @@ namespace TemuKJD.WXForms.TalkForms // return; return; } - if (url.Contains("action=get_open_session_summary")) + else if (url.Contains("action=get_open_session_summary")) { //{"base_resp":{"err_msg":"ok","ret":0},"pin_summary_list":[],"summary_cursor":"4349020771451830279","summary_list":[{"complaint_info":{"complaint_expire_time":0,"complaint_id":"","complaint_status":0},"ext_info":{},"extra_info":"{\"head_img\":\"http:\\/\\/wx.qlogo.cn\\/mmhead\\/PiajxSqBRaEIuS5Aa65qsCwzKFpmSiciazvMbicxfEyHvTmD8MpQibR85wg\\/64\",\"nickname\":\"jtt\",\"list\":[],\"qa_info_list\":[]}","id":"5","is_delete":0,"is_expired":0,"is_pin":0,"is_pin_update_time":"0","kf_openid":"o9cq801T0m1dIivQzMyUwBvW5Znk","kf_reply_status":0,"lastest_msg_content":"","lastest_msg_id":"4349029975415865363","lastest_msg_kf_content":"{\"content\":\"你好\"}","lastest_user_msg_time":"1768813986","msg_type":1,"recv_open_account":"wxad4163db54e87b44","recv_openid":"o9cq801T0m1dIivQzMyUwBvW5Znk","room_id":"4348999364009132044","room_session_status":0,"scene":6,"send_open_account":"","send_openid":"o9cq800-I4XeS-NiBgsIae1y38Ac","send_scene":6,"session_close_source":0,"star_label":0,"star_label_update_time":"0","sync_id":"78","unread_msg_num":"1","unreplied_msg_time":"1768813988","update_time":"1768813986","user_openid":"o9cq800-I4XeS-NiBgsIae1y38Ac"}]} //{"base_resp":{"err_msg":"ok","ret":0},"pin_summary_list":[],"summary_cursor":"4349035365970083850","summary_list":[{"complaint_info":{"complaint_expire_time":0,"complaint_id":"","complaint_status":0},"ext_info":{},"extra_info":"{\"head_img\":\"http:\\/\\/wx.qlogo.cn\\/mmhead\\/PiajxSqBRaEIuS5Aa65qsCwzKFpmSiciazvMbicxfEyHvTmD8MpQibR85wg\\/64\",\"nickname\":\"jtt\",\"list\":[],\"qa_info_list\":[]}","id":"160","is_delete":0,"is_expired":0,"is_pin":0,"is_pin_update_time":"0","kf_openid":"o9cq801T0m1dIivQzMyUwBvW5Znk","kf_reply_status":1,"lastest_msg_content":"","lastest_msg_id":"4349035365970083850","lastest_msg_kf_content":"{\"content\":\"在的亲\"}","lastest_user_msg_time":"1768814292","msg_type":1,"recv_open_account":"wx2664a142d76831dd","recv_openid":"o9cq801T0m1dIivQzMyUwBvW5Znk","room_id":"4349034984388345858","room_session_status":0,"scene":6,"send_open_account":"wx2664a142d76831dd","send_openid":"o9cq801T0m1dIivQzMyUwBvW5Znk","send_scene":6,"session_close_source":0,"star_label":0,"star_label_update_time":"0","sync_id":"3186","unread_msg_num":"0","unreplied_msg_time":"0","update_time":"1768814308","user_openid":"o9cq800-I4XeS-NiBgsIae1y38Ac"},{"complaint_info":{"complaint_expire_time":0,"complaint_id":"","complaint_status":0},"ext_info":{},"extra_info":"{\"head_img\":\"http:\\/\\/wx.qlogo.cn\\/mmhead\\/sstLNDibp2U6zXibjfoE1tUiaHCOKX1olnJNZnFGehlibg4liacAAWmj2VQ\\/64\",\"nickname\":\"我是上帝的女儿李善容\",\"list\":[],\"qa_info_list\":[]}","id":"154","is_delete":0,"is_expired":0,"is_pin":0,"is_pin_update_time":"0","kf_openid":"o9cq801T0m1dIivQzMyUwBvW5Znk","kf_reply_status":0,"lastest_msg_content":"","lastest_msg_id":"4347360170765271042","lastest_msg_kf_content":"{\"type\":\"SessionTimeoutRedDot\",\"content\":\"你已超过10分钟未回复该会话,请及时处理。\",\"room_id\":\"4339855644638920709\",\"msg_id\":\"4347350053416747021\",\"is_anonymous_msg\":0,\"need_update_summary\":1}","lastest_user_msg_time":"1768713854","msg_type":24,"recv_open_account":"wx2664a142d76831dd","recv_openid":"o9cq801T0m1dIivQzMyUwBvW5Znk","room_id":"4339855644638920709","room_session_status":0,"scene":6,"send_open_account":"","send_openid":"o9cq802n8yQWq6bwbx2w8rp_aygk","send_scene":6,"session_close_source":0,"star_label":0,"star_label_update_time":"0","sync_id":"3042","unread_msg_num":"0","unreplied_msg_time":"1768713857","update_time":"1768714458","user_openid":"o9cq802n8yQWq6bwbx2w8rp_aygk"},{"complaint_info":{"complaint_expire_time":0,"complaint_id":"","complaint_status":0},"ext_info":{},"extra_info":"{\"head_img\":\"http:\\/\\/wx.qlogo.cn\\/mmhead\\/IbQhd2Y9oKdcIf3tbP1pciaic0icL271V7iaqWQqGvrrrMbq26tSHnFf9Q\\/64\",\"nickname\":\"素色🍃᭄年华\",\"list\":[],\"qa_info_list\":[]}","id":"155","is_delete":0,"is_expired":0,"is_pin":0,"is_pin_update_time":"0","kf_openid":"o9cq801T0m1dIivQzMyUwBvW5Znk","kf_reply_status":1,"lastest_msg_content":"","lastest_msg_id":"4347305586245287937","lastest_msg_kf_content":"{\"type\":\"SessionTimeoutRedDot\",\"content\":\"你已超过10分钟未回复该会话,请及时处理。\",\"room_id\":\"4340576309047115777\",\"msg_id\":\"4347295489464516617\",\"is_anonymous_msg\":0,\"need_update_summary\":1}","lastest_user_msg_time":"1768710602","msg_type":24,"recv_open_account":"wx2664a142d76831dd","recv_openid":"o9cq801T0m1dIivQzMyUwBvW5Znk","room_id":"4340576309047115777","room_session_status":0,"scene":6,"send_open_account":"","send_openid":"o9cq80-t4oDOfQD6J6oJ8pp4yA7M","send_scene":6,"session_close_source":0,"star_label":0,"star_label_update_time":"0","sync_id":"3035","unread_msg_num":"0","unreplied_msg_time":"1768710604","update_time":"1768711205","user_openid":"o9cq80-t4oDOfQD6J6oJ8pp4yA7M"}]} @@ -344,7 +366,46 @@ namespace TemuKJD.WXForms.TalkForms { //{"base_resp":{"err_msg":"ok","ret":0},"pin_summary_list":[],"summary_cursor":"4349042918267191303","summary_list":[{"complaint_info":{"complaint_expire_time":0,"complaint_id":"","complaint_status":0},"ext_info":{},"extra_info":"{\"head_img\":\"http:\\/\\/wx.qlogo.cn\\/mmhead\\/PiajxSqBRaEIuS5Aa65qsCwzKFpmSiciazvMbicxfEyHvTmD8MpQibR85wg\\/64\",\"nickname\":\"jtt\",\"list\":[],\"qa_info_list\":[]}","id":"5","is_delete":0,"is_expired":0,"is_pin":0,"is_pin_update_time":"0","kf_openid":"o9cq801T0m1dIivQzMyUwBvW5Znk","kf_reply_status":1,"lastest_msg_content":"","lastest_msg_id":"4349042918267191303","lastest_msg_kf_content":"{\"content\":\"您好亲,有什么需要帮助的吗\"}","lastest_user_msg_time":"1768814710","msg_type":1,"recv_open_account":"wxad4163db54e87b44","recv_openid":"o9cq801T0m1dIivQzMyUwBvW5Znk","room_id":"4348999364009132044","room_session_status":0,"scene":6,"send_open_account":"wxad4163db54e87b44","send_openid":"o9cq801T0m1dIivQzMyUwBvW5Znk","send_scene":6,"session_close_source":0,"star_label":0,"star_label_update_time":"0","sync_id":"87","unread_msg_num":"0","unreplied_msg_time":"0","update_time":"1768814758","user_openid":"o9cq800-I4XeS-NiBgsIae1y38Ac"},{"complaint_info":{"complaint_expire_time":0,"complaint_id":"","complaint_status":0},"ext_info":{},"extra_info":"{\"head_img\":\"http:\\/\\/wx.qlogo.cn\\/mmhead\\/Q3auHgzwzM6vehibAAib9ia4ejxH7ibula7RuH4rTO7H7equgOZPVZl5Ew\\/64\",\"nickname\":\"Vader\",\"list\":[],\"qa_info_list\":[]}","id":"2","is_delete":0,"is_expired":1,"is_pin":0,"is_pin_update_time":"0","kf_reply_status":1,"lastest_msg_content":"","lastest_msg_id":"4348993861855264779","lastest_msg_kf_content":"{\"type\":\"EndRoom\",\"content\":\"用户超时未回,会话已结束,两天内仍可再次联系\",\"room_id\":\"4348684483414425612\",\"msg_id\":\"4348993861855264779\",\"is_anonymous_msg\":0,\"need_update_summary\":1}","lastest_user_msg_time":"1768811222","msg_type":5,"recv_open_account":"wxad4163db54e87b44","recv_openid":"o9cq801T0m1dIivQzMyUwBvW5Znk","room_id":"4348684483414425612","scene":6,"send_open_account":"","send_openid":"o9cq802Ue5pCVRmzuzkFUcnoHjcM","send_scene":6,"star_label":0,"star_label_update_time":"0","sync_id":"59","unread_msg_num":"0","unreplied_msg_time":"0","update_time":"1768811834","user_openid":"o9cq802Ue5pCVRmzuzkFUcnoHjcM"},{"complaint_info":{"complaint_expire_time":0,"complaint_id":"","complaint_status":0},"ext_info":{},"extra_info":"{\"head_img\":\"http:\\/\\/wx.qlogo.cn\\/mmhead\\/Q3auHgzwzM61GOTjShX4GX3aSpuNiavic5xxAickB0fxH1Bic8Az5d0LCA\\/64\",\"nickname\":\"春暖花开\",\"list\":[],\"qa_info_list\":[]}","id":"4","is_delete":0,"is_expired":1,"is_pin":0,"is_pin_update_time":"0","kf_reply_status":1,"lastest_msg_content":"","lastest_msg_id":"4348932333527973902","lastest_msg_kf_content":"{\"type\":\"EndRoom\",\"content\":\"用户超时未回,会话已结束,两天内仍可再次联系\",\"room_id\":\"4348906544732405760\",\"msg_id\":\"4348932333527973902\",\"is_anonymous_msg\":0,\"need_update_summary\":1}","lastest_user_msg_time":"1768807466","msg_type":5,"recv_open_account":"wxad4163db54e87b44","recv_openid":"o9cq801T0m1dIivQzMyUwBvW5Znk","room_id":"4348906544732405760","scene":6,"send_open_account":"","send_openid":"o9cq807-mRKhlh-MPBpeYyar46HA","send_scene":6,"star_label":0,"star_label_update_time":"0","sync_id":"44","unread_msg_num":"0","unreplied_msg_time":"0","update_time":"1768808166","user_openid":"o9cq807-mRKhlh-MPBpeYyar46HA"},{"complaint_info":{"complaint_expire_time":0,"complaint_id":"","complaint_status":0},"ext_info":{},"extra_info":"{\"head_img\":\"http:\\/\\/wx.qlogo.cn\\/mmhead\\/PdibpV1sFDHeGJDbIwia4cv3UUPxnHqjFQ4piaSFEeJlViaeDPicHuQITkw\\/64\",\"nickname\":\"春雨\",\"list\":[],\"qa_info_list\":[]}","id":"3","is_delete":0,"is_expired":1,"is_pin":0,"is_pin_update_time":"0","kf_reply_status":1,"lastest_msg_content":"","lastest_msg_id":"4348888492147638275","lastest_msg_kf_content":"{\"type\":\"EndRoom\",\"content\":\"用户超时未回,会话已结束,两天内仍可再次联系\",\"room_id\":\"4348715191491690506\",\"msg_id\":\"4348888492147638275\",\"is_anonymous_msg\":0,\"need_update_summary\":1}","lastest_user_msg_time":"1768795504","msg_type":5,"recv_open_account":"wxad4163db54e87b44","recv_openid":"o9cq801T0m1dIivQzMyUwBvW5Znk","room_id":"4348715191491690506","scene":6,"send_open_account":"","send_openid":"o9cq805nSmIjHqNthn9QbNimVAsE","send_scene":6,"star_label":0,"star_label_update_time":"0","sync_id":"29","unread_msg_num":"0","unreplied_msg_time":"0","update_time":"1768805553","user_openid":"o9cq805nSmIjHqNthn9QbNimVAsE"},{"complaint_info":{"complaint_expire_time":0,"complaint_id":"","complaint_status":0},"ext_info":{},"extra_info":"{\"head_img\":\"http:\\/\\/wx.qlogo.cn\\/mmhead\\/PiajxSqBRaEJLajvZG4pYqhDrljibs7sNChSx6Cib2mN6KicJgbRESR8Rg\\/64\",\"nickname\":\"喂累了额\",\"list\":[],\"qa_info_list\":[]}","id":"1","is_delete":0,"is_expired":1,"is_pin":0,"is_pin_update_time":"0","kf_reply_status":1,"lastest_msg_content":"","lastest_msg_id":"4348884857446612993","lastest_msg_kf_content":"{\"type\":\"EndRoom\",\"content\":\"用户超时未回,会话已结束,两天内仍可再次联系\",\"room_id\":\"4347660512343588869\",\"msg_id\":\"4348884857446612993\",\"is_anonymous_msg\":0,\"need_update_summary\":1}","lastest_user_msg_time":"1768732601","msg_type":5,"recv_open_account":"wxad4163db54e87b44","recv_openid":"o9cq801T0m1dIivQzMyUwBvW5Znk","room_id":"4347660512343588869","scene":6,"send_open_account":"","send_openid":"o9cq8038HnVM43HL44F5yGx6S6P0","send_scene":6,"star_label":0,"star_label_update_time":"0","sync_id":"27","unread_msg_num":"0","unreplied_msg_time":"0","update_time":"1768805337","user_openid":"o9cq8038HnVM43HL44F5yGx6S6P0"}]} var jObj = JsonHelper.JObjectParse(responseData); - return; + if (jObj.IsNullOrEmpty() || jObj["summary_list"].IsNullOrEmpty()) + { + return; + } + bool needReply = false; + foreach (var summaryObj in jObj["summary_list"]) + { + try + { + var summary = JsonHelper.SerializeObject(summaryObj); + // 会话结束,返回 + if (summary.Contains("会话已结束")) + continue; + if (summary.Contains("用户已结束会话") || summary.Contains("客服已结束会话")) + continue; + // 最后一条是自己回复的,返回 + var send_open_account = summaryObj["send_open_account"].ParseToString(); + if (send_open_account == shop.ShopId) + continue; + // 虽然没有回复,但是最后一条消息是七天以前收到的,返回 + var lastUpTime = summaryObj["update_time"].ParseToLong(); + if (lastUpTime < BaseClass.DateTimeToTimestampSeconds(DateTime.Now.AddDays(-7))) + continue; + // 其他情况,标记需要回复 + needReply = true; + } + catch + { + continue; + } + } + if (!needReply) + return; + else + { + Invoke(new Action(() => + { + row.Cells["colMessage"].Value = "有历史未读消息"; + })); + } } else if (url.Contains("action=get_sync_msg")) { @@ -357,12 +418,16 @@ namespace TemuKJD.WXForms.TalkForms var jObj = JsonHelper.JObjectParse(responseData); if (jObj["total_num"].ParseToInt() <= 0) return; - // 自己发的消息或者客服自动回复消息不闪烁提示 ------------------------------------------------------------------------------------------------------- + // 自己发的消息或者客服自动回复消息不闪烁提示且将表格颜色还原 ----------------------------------------------------------------------------------------------- // 您好!人工客服目前无法及时回复,您可以留言详细问题,我们会尽快为您服务! //"send_open_account": "wxad4163db54e87b44", var send_open_account = jObj["list"].LastOrDefault()?["send_open_account"].ParseToString(); if (send_open_account == shop.ShopId) + { + row.DefaultCellStyle.BackColor = row.Tag is Color ? (Color)row.Tag : Color.White; + row.Cells["colMessage"].Value = ""; return; + } var msg_kf_content = jObj["list"].LastOrDefault()?["msg_kf_content"].ParseToString(); var contentObj = JsonHelper.JObjectParse(msg_kf_content); var content = contentObj["content"].ParseToString(); @@ -395,9 +460,17 @@ namespace TemuKJD.WXForms.TalkForms return; } } + else + { + return; + } + // 以上判断需要回复: + // 弹框 + if (!ChatConfig.ChatSettingConfig.IsNotShowMessageWindow) + ShowMessageForm(shop); // 进行闪烁 - Task.Run(() => { FlashDgvRow(row); }); + FlashDgvRow(row); // 播放声音 playSound(); // 消息弹框,暂时废弃 @@ -409,17 +482,20 @@ namespace TemuKJD.WXForms.TalkForms void FlashDgvRow(DataGridViewRow row) { - if (row.Tag == null) - row.Tag = row.DefaultCellStyle.BackColor; - for (int j = 0; j < 6; j++) + Task.Run(() => { - Invoke(new Action(() => { row.DefaultCellStyle.BackColor = Color.White; })); - Thread.Sleep(120); - Invoke(new Action(() => { row.DefaultCellStyle.BackColor = Color.FromArgb(245, 95, 50); })); - Thread.Sleep(120); - Invoke(new Action(() => { row.DefaultCellStyle.BackColor = Color.FromArgb(245, 45, 10); })); - Thread.Sleep(120); - } + if (row.Tag == null) + row.Tag = row.DefaultCellStyle.BackColor; + for (int j = 0; j < 6; j++) + { + Invoke(new Action(() => { row.DefaultCellStyle.BackColor = Color.White; })); + Thread.Sleep(120); + Invoke(new Action(() => { row.DefaultCellStyle.BackColor = Color.FromArgb(245, 95, 50); })); + Thread.Sleep(120); + Invoke(new Action(() => { row.DefaultCellStyle.BackColor = Color.FromArgb(245, 45, 10); })); + Thread.Sleep(120); + } + }); } private void MainLifeHandler_OnPop(object sender, PopData e) @@ -667,38 +743,38 @@ namespace TemuKJD.WXForms.TalkForms private void Chat_SearchResultReceived(ShopLoginInfo shop) { - var r = dgvShop.Rows.Cast().FirstOrDefault(x => x.Cells["columnShopId"].Value.ToString() == shop.ShopId); - if (r != null) - { - for (int i = 0; i < dgvShop.Rows.Count; i++) - { - var row = dgvShop.Rows[i]; + //var r = dgvShop.Rows.Cast().FirstOrDefault(x => x.Cells["columnShopId"].Value.ToString() == shop.ShopId); + //if (r != null) + //{ + // for (int i = 0; i < dgvShop.Rows.Count; i++) + // { + // var row = dgvShop.Rows[i]; - if (row.Cells[0].Value.ToString() == shop.ShopId && shop != currentShop) - { - if (ShopChatCount.ContainsKey(shop.ShopId) && ShopChatCount[shop.ShopId] > 0) - { - Task.Run(() => - { - for (int j = 0; j < 4; j++) - { - Invoke(new Action(() => { row.DefaultCellStyle.BackColor = Color.White; })); - Thread.Sleep(100); - Invoke(new Action(() => { row.DefaultCellStyle.BackColor = Color.FromArgb(245, 95, 50); })); - Thread.Sleep(100); - Invoke(new Action(() => { row.DefaultCellStyle.BackColor = Color.FromArgb(245, 45, 10); })); - Thread.Sleep(100); - } - }); - } - else if (row.DefaultCellStyle.BackColor != Color.White) - { - row.DefaultCellStyle.BackColor = Color.White; - } - break; - } - } - } + // if (row.Cells[0].Value.ToString() == shop.ShopId && shop != currentShop) + // { + // if (ShopChatCount.ContainsKey(shop.ShopId) && ShopChatCount[shop.ShopId] > 0) + // { + // Task.Run(() => + // { + // for (int j = 0; j < 4; j++) + // { + // Invoke(new Action(() => { row.DefaultCellStyle.BackColor = Color.White; })); + // Thread.Sleep(100); + // Invoke(new Action(() => { row.DefaultCellStyle.BackColor = Color.FromArgb(245, 95, 50); })); + // Thread.Sleep(100); + // Invoke(new Action(() => { row.DefaultCellStyle.BackColor = Color.FromArgb(245, 45, 10); })); + // Thread.Sleep(100); + // } + // }); + // } + // else if (row.DefaultCellStyle.BackColor != Color.White) + // { + // row.DefaultCellStyle.BackColor = Color.White; + // } + // break; + // } + // } + //} } private void Collect_InfomationReceived(string infomation) { @@ -728,6 +804,28 @@ namespace TemuKJD.WXForms.TalkForms //catch { } } + /// + /// 显示右下角消息弹框 + /// + /// + private void ShowMessageForm(ShopLoginInfo shop) + { + if (!lstChatMessageForm.Any(f => f.shop == shop)) + { + Invoke(new Action(() => + { + TalkMessageForm cmf = new TalkMessageForm(shop, this); + cmf.Dragable = false; + cmf.ShowMinimizedBox = false; + lstChatMessageForm.Add(cmf); + Point p = new Point(Screen.PrimaryScreen.WorkingArea.Width - cmf.Width, Screen.PrimaryScreen.WorkingArea.Height); + cmf.PointToScreen(p); + cmf.Location = p; + cmf.Show(); + })); + } + } + private void dgvShop_CellContentClick(object sender, DataGridViewCellEventArgs e) { if (e.ColumnIndex < 0 || e.RowIndex < 0) @@ -747,7 +845,7 @@ namespace TemuKJD.WXForms.TalkForms // 如需登录,引导至登录窗口,禁止从聊天窗口登录。 Invoke(new Action(() => { - // 登录抖音小店 + // 登录小店 WXShopLoginForm lf = new WXShopLoginForm(shop); lf.ShowDialog(); })); @@ -777,8 +875,10 @@ namespace TemuKJD.WXForms.TalkForms var row = dgvShop.Rows[e.RowIndex]; row.Cells["colSelect"].Value = true; - if (row.Tag != null) - row.DefaultCellStyle.BackColor = row.Tag is Color ? (Color)row.Tag : Color.White; + if (row.DefaultCellStyle.BackColor.R == 245 || row.DefaultCellStyle.BackColor == Color.Yellow) + row.DefaultCellStyle.BackColor = Color.Yellow; + //if (row.Tag != null) + // row.DefaultCellStyle.BackColor = row.Tag is Color ? (Color)row.Tag : Color.White; string shopId = row.Cells["colShopId"].Value?.ToString(); if (string.IsNullOrEmpty(shopId)) @@ -800,6 +900,18 @@ namespace TemuKJD.WXForms.TalkForms }); } + public void DgvShopClick(ShopLoginInfo shop) + { + var r = dgvShop.Rows.Cast().FirstOrDefault(x => x.Cells["colShopId"].Value.ToString() == shop.ShopId); + if (r != null) + { + r.Cells[0].Selected = true; + var sender = this.dgvShop; + DataGridViewCellEventArgs e = new DataGridViewCellEventArgs(0, r.Index); + dgvShop_CellClick(sender, e); + } + } + private void pnlRefresh_Click(object sender, EventArgs e) { pbLoading.Visible = true;