1微信优化客服检测逻辑 新增消息提醒 2微信日上货数量记录

This commit is contained in:
wule committed 2026-01-22 19:10:51 +08:00
1 parent 6d7b9d7b56
commit 84dbc94047
15 files changed
+1006 -267

No files matched your search

+1
View File
@@ -177,6 +177,7 @@
<Compile Include="JsonHelper.cs" />
<Compile Include="LogSave.cs" />
<Compile Include="Md5Base.cs" />
<Compile Include="Model\Config\WxShopUploadInfo.cs" />
<Compile Include="Model\Param\CollectManage\FissionSettingParam.cs" />
<Compile Include="Model\Param\OrderManage\FreightTemplateParam.cs" />
<Compile Include="Model\Param\DyProductManage\DyCategoryParam.cs" />
+1 -1
View File
@@ -27,7 +27,7 @@ namespace AllBase
/// <summary>
/// 版本ID
/// </summary>
public static int VersionCount = 798;
public static int VersionCount = 799;
//public static int VersionCount = 613;
/// <summary>
+30
View File
@@ -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
{
/// <summary>
/// 日提审数量
/// </summary>
public Dictionary<int, int> DicDaySubmitCount { get; set; } = new Dictionary<int, int>();
/// <summary>
/// 日上货数量
/// </summary>
public Dictionary<int, int> DicDayUploadCount { get; set; } = new Dictionary<int, int>();
/// <summary>
/// 在售商品数
/// </summary>
public int OnSaleCount { get; set; }
/// <summary>
/// 刷新在售商品时间
/// </summary>
public int OnSaleRefreshDay { get; set; }
}
}
+5 -4
View File
@@ -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();
+9
View File
@@ -1012,6 +1012,12 @@
<Compile Include="UserForm\SupportQrCodeForm.Designer.cs">
<DependentUpon>SupportQrCodeForm.cs</DependentUpon>
</Compile>
<Compile Include="WXForms\TalkForms\TalkMessageForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="WXForms\TalkForms\TalkMessageForm.designer.cs">
<DependentUpon>TalkMessageForm.cs</DependentUpon>
</Compile>
<Compile Include="WXForms\TalkForms\TalkHelper\ChatConfig.cs" />
<Compile Include="WXForms\TalkForms\TalkModel\ChatSettingsParam.cs" />
<Compile Include="WXForms\TalkForms\WxTalkForm.cs">
@@ -1433,6 +1439,9 @@
<EmbeddedResource Include="UserForm\SupportQrCodeForm.resx">
<DependentUpon>SupportQrCodeForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="WXForms\TalkForms\TalkMessageForm.resx">
<DependentUpon>TalkMessageForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="WXForms\TalkForms\WxTalkForm.resx">
<DependentUpon>WxTalkForm.cs</DependentUpon>
</EmbeddedResource>
@@ -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);
+1 -1
View File
@@ -73,8 +73,8 @@ namespace TemuKJD.UserControls
}
else
this.lblPage.Text = "" + currentPage;
OnPageChange(this);
}
OnPageChange(this);
}
}
+230 -171
View File
@@ -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;
}
}
@@ -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<AddPriceRule> lstAddPriceRule = new NaiBa.Util.ConcurrentList<AddPriceRule>();
AddPriceRule defaultAddPriceRule = null;
WXUploadRule wxUploadRule = null;
public Dictionary<string, List<string>> dicCheckedShopIdList = new Dictionary<string, List<string>>();
//public Dictionary<string, List<string>> dicCheckedShopIdList = new Dictionary<string, List<string>>();
public Dictionary<string, bool> dicCheckedShopId = new Dictionary<string, bool>();
public Dictionary<string, WxShopUploadInfo> dicShopUpload = new Dictionary<string, WxShopUploadInfo>();
public WXDBProdUploadForm()
{
InitializeComponent();
@@ -97,11 +100,12 @@ namespace TemuKJD.WXForms.ProductForms
ucPrice.PriceChange += ucAddPrice_PriceChange;
}
dicCheckedShopIdList = NaiBa.Util.Helper.ConfigHelper.LoadConfig<Dictionary<string, List<string>>>("wx_checked_shop_dic_list");
if (dicCheckedShopIdList == null)
dicCheckedShopIdList = new Dictionary<string, List<string>>();
if (!dicCheckedShopIdList.Keys.Contains(BaseClass.UserName))
dicCheckedShopIdList[BaseClass.UserName] = new List<string>();
dicCheckedShopId = NaiBa.Util.Helper.ConfigHelper.LoadConfig<Dictionary<string, bool>>("wx_checked_shop_dic");
if (dicCheckedShopId == null)
dicCheckedShopId = new Dictionary<string, bool>();
dicShopUpload = NaiBa.Util.Helper.ConfigHelper.LoadConfig<Dictionary<string, WxShopUploadInfo>>("wx_shop_upload_info");
if (dicShopUpload == null)
dicShopUpload = new Dictionary<string, WxShopUploadInfo>();
defaultAddPriceRule = NaiBa.Util.Helper.ConfigHelper.LoadConfig<AddPriceRule>("wx_default_add_price_rule");
if (defaultAddPriceRule == null)
@@ -251,13 +255,16 @@ namespace TemuKJD.WXForms.ProductForms
}
}
dicCheckedShopIdList[BaseClass.UserName] = dgvShop.Rows.Cast<DataGridViewRow>().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<DataGridViewRow>())
{
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<DataGridViewRow>().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<DataGridViewRow>().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<DataGridViewRow>().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<DataGridViewRow>().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
@@ -141,6 +141,9 @@
<metadata name="colUploadCount.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colOnSaleNum.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colRemaining.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
@@ -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;
}));
});
}
}
}
}
+100
View File
@@ -0,0 +1,100 @@
namespace TemuKJD.WXForms.TalkForms
{
partial class TalkMessageForm
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
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;
}
}
@@ -0,0 +1,301 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="timer1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
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==
</value>
</data>
</root>
+17 -16
View File
@@ -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);
}
+165 -53
View File
@@ -50,7 +50,7 @@ namespace TemuKJD.WXForms.TalkForms
/// <summary>
/// 弹出框列表
/// </summary>
//public static List<ChatMessageForm> lstChatMessageForm = new List<ChatMessageForm>();
public static List<TalkMessageForm> lstChatMessageForm = new List<TalkMessageForm>();
public static Dictionary<DataGridViewRow, Color> dicRowColor = new Dictionary<DataGridViewRow, Color>();
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<DataGridViewRow>().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","Line truncated
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<DataGridViewRow>().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<DataGridViewRow>().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 { }
}
/// <summary>
/// 显示右下角消息弹框
/// </summary>
/// <param name="shop"></param>
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<DataGridViewRow>().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;