加入微信客服相关功能 40%

This commit is contained in:
wule committed 2026-01-17 10:36:56 +08:00
1 parent f71cb1bba8
commit c05c7e4f23
93 files changed
+2824 -356

No files matched your search

+1 -1
View File
@@ -27,7 +27,7 @@ namespace AllBase
/// <summary>
/// 版本ID
/// </summary>
public static int VersionCount = 788;
public static int VersionCount = 789;
//public static int VersionCount = 613;
/// <summary>
+3 -1
View File
@@ -1,4 +1,5 @@
using System;
using AllBase.Model.Param.WXParam;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
@@ -47,6 +48,7 @@ namespace AllBase.Model.Result
public string skc_id { get; set; }
public int product_get_type { get; set; }
public KJDDBProduct kjdDbProduct { get; set; } = null;
public WXUploadProductParam wxDraftProduct { get; set; } = null;
#endregion
}
}
@@ -838,6 +838,7 @@ namespace KJD_Web.BLL
var search_sub_sa_name = RegexUtils.GetStringQuery(ref inputData, "search_sub_sa_name")?.Replace("'", "\\'");
var status = RegexUtils.GetStringQuery(ref inputData, "status")?.Replace("'", "\\'");
var operate_sub_sa_name = RegexUtils.GetStringQuery(ref inputData, "operate_sub_sa_name")?.Replace("'", "\\'");
var search_year = RegexUtils.GetStringQuery(ref inputData, "search_year")?.Replace("'", "\\'").ParseToInt();
var search_end_time = RegexUtils.GetStringJson(ref inputData, "search_end_time")?.ParseToDateTimeNullable();
if (search_end_time == null || search_end_time.Value > DateTime.Now.Date.AddDays(1)) search_end_time = DateTime.Now.Date.AddDays(1);
@@ -854,26 +855,41 @@ namespace KJD_Web.BLL
string conn = System.Configuration.ConfigurationManager.ConnectionStrings["ConnKJD"].ConnectionString;
MysqlUtils mySql = new MysqlUtils(conn);
string sql = "select count(s.id) from (";
for (int year = search_start_time.Value.Year; year <= search_end_time.Value.Year; year++)
string sql = "";
if (search_year != null)
{
string dbName = "kjd";
if (year >= 2026)
if (search_year >= 2026)
dbName = "kjd_yearly";
string tableName = dbName + ".third_product_select";
if (year >= 2026)
tableName += "_" + year;
if (year > search_start_time.Value.Year)
sql += " UNION ALL";
sql += " SELECT * FROM " + tableName;
if (search_year >= 2026)
tableName += "_" + search_year;
sql += " SELECT count(s.id) FROM " + tableName + " s " +
//"LEFT JOIN kjd.third_product p on s.out_product_id=p.id " +
//"LEFT JOIN kjd.user u on s.operate_sub_sa_name=u.user_name " +
"WHERE 1=1";
}
else
{
sql = "select count(s.id) from (";
for (int year = search_start_time.Value.Year; year <= search_end_time.Value.Year; year++)
{
string dbName = "kjd";
if (year >= 2026)
dbName = "kjd_yearly";
string tableName = dbName + ".third_product_select";
sql += ") s " +
"LEFT JOIN kjd.third_product p on s.out_product_id=p.id " +
"LEFT JOIN kjd.user u on s.operate_sub_sa_name=u.user_name " +
"WHERE s.add_time BETWEEN '" + search_start_time.Value.ToString("yyyy-MM-dd") + "' AND '" + search_end_time.Value.ToString("yyyy-MM-dd") + "' ";
if (year >= 2026)
tableName += "_" + year;
if (year > search_start_time.Value.Year)
sql += " UNION ALL";
sql += " SELECT * FROM " + tableName;
}
sql += ") s " +
"LEFT JOIN kjd.third_product p on s.out_product_id=p.id " +
"LEFT JOIN kjd.user u on s.operate_sub_sa_name=u.user_name " +
"WHERE s.add_time BETWEEN '" + search_start_time.Value.ToString("yyyy-MM-dd") + "' AND '" + search_end_time.Value.ToString("yyyy-MM-dd") + "' ";
}
string where = "";
if (!isAdmin)
@@ -944,35 +960,83 @@ namespace KJD_Web.BLL
//if (isDetail)
//sql = "select * from kjd.third_product_select where 1=1";
//else
sql = "SELECT s.id,s.out_product_id,s.shop_id,s.shop_account,s.user_name," +
"s.sub_user_name,s.notes,s.user_notes,s.status,s.draft_id,s.add_times,s.add_time,s.mdy_time," +
"s.fission_product_name,s.operate_sub_sa_name,s.add_sub_sa_time," +
"p.spu_id,p.skc_id,p.cat_id,p.cat_name,p.change_cat_id,p.change_cat_name,p.ext_code,p.product_name,p.main_img," +
"u.nick_name as operate_sub_sa_nick " +
"FROM (";
for (int year = search_start_time.Value.Year; year <= search_end_time.Value.Year; year++)
if (search_year != null)
{
string dbName = "kjd";
if (year >= 2026)
if (search_year >= 2026)
dbName = "kjd_yearly";
string tableName = dbName + ".third_product_select";
if (search_year >= 2026)
tableName += "_" + search_year;
if (year >= 2026)
tableName += "_" + year;
if (year > search_start_time.Value.Year)
sql += " UNION ALL";
sql += " SELECT * FROM " + tableName;
sql = "SELECT s.id,s.out_product_id,s.shop_id,s.shop_account,s.user_name," +
"s.sub_user_name,s.notes,s.user_notes,s.status,s.draft_id,s.add_times,s.add_time,s.mdy_time," +
"s.fission_product_name,s.operate_sub_sa_name,s.add_sub_sa_time," +
"p.spu_id,p.skc_id,p.cat_id,p.cat_name,p.change_cat_id,p.change_cat_name,p.ext_code,p.product_name,p.main_img," +
"u.nick_name as operate_sub_sa_nick " +
"FROM " + tableName + " s LEFT JOIN kjd.third_product p ON s.out_product_id=p.id " +
"LEFT JOIN kjd.user u ON u.user_name=s.operate_sub_sa_name " +
"WHERE 1=1";
sql += where; // where子句
sql += " order by s.add_time desc";
sql += " limit " + Math.Max(page - 1, 0) * page_size + "," + page_size;
sql = "SELECT s1.id,s1.out_product_id,s1.shop_id,s1.shop_account,s1.user_name," +
"s1.sub_user_name,s1.notes,s1.user_notes,s1.status,s1.draft_id,s1.add_times,s1.add_time,s1.mdy_time," +
"s1.fission_product_name,s1.operate_sub_sa_name,s1.add_sub_sa_time," +
"s2.spu_id,s2.skc_id,s2.cat_id,s2.cat_name,s2.change_cat_id,s2.change_cat_name,s2.ext_code,s2.product_name,s2.main_img ";
if (operate_sub_sa_name != null || 1 == 2)
sql += ",s2.operate_sub_sa_nick";
sql += " FROM " + tableName + " s1";
// 子查询
sql += " JOIN (SELECT s.id," +
"p.spu_id,p.skc_id,p.cat_id,p.cat_name,p.change_cat_id,p.change_cat_name,p.ext_code,p.product_name,p.main_img ";
if (operate_sub_sa_name != null || 1 == 2)
sql += ",u.nick_name as operate_sub_sa_nick ";
sql += " FROM " + tableName + " s LEFT JOIN kjd.third_product p ON s.out_product_id=p.id ";
if (operate_sub_sa_name != null || 1 == 2)
sql += "LEFT JOIN kjd.user u ON u.user_name=s.operate_sub_sa_name ";
sql += "WHERE 1=1";
sql += where; // where子句
sql += " order by s.add_time desc";
sql += " limit " + Math.Max(page - 1, 0) * page_size + "," + page_size;
sql += ") as s2 ON s1.id = s2.id";
}
else
{
sql = "SELECT s.id,s.out_product_id,s.shop_id,s.shop_account,s.user_name," +
"s.sub_user_name,s.notes,s.user_notes,s.status,s.draft_id,s.add_times,s.add_time,s.mdy_time," +
"s.fission_product_name,s.operate_sub_sa_name,s.add_sub_sa_time," +
"p.spu_id,p.skc_id,p.cat_id,p.cat_name,p.change_cat_id,p.change_cat_name,p.ext_code,p.product_name,p.main_img," +
"u.nick_name as operate_sub_sa_nick " +
"FROM (";
sql += ") s LEFT JOIN kjd.third_product p ON s.out_product_id=p.id " +
"LEFT JOIN kjd.user u ON u.user_name=s.operate_sub_sa_name " +
"WHERE 1=1";
for (int year = search_start_time.Value.Year; year <= search_end_time.Value.Year; year++)
{
string dbName = "kjd";
if (year >= 2026)
dbName = "kjd_yearly";
string tableName = dbName + ".third_product_select";
sql += where; // where子句
if (year >= 2026)
tableName += "_" + year;
if (year > search_start_time.Value.Year)
sql += " UNION ALL";
sql += " SELECT * FROM " + tableName;
}
sql += " order by s.add_time desc";
sql += " limit " + Math.Max(page - 1, 0) * page_size + "," + page_size;
sql += ") s LEFT JOIN kjd.third_product p ON s.out_product_id=p.id " +
"LEFT JOIN kjd.user u ON u.user_name=s.operate_sub_sa_name " +
"WHERE s.add_time BETWEEN '" + search_start_time.Value.ToString("yyyy-MM-dd") + "' AND '" + search_end_time.Value.ToString("yyyy-MM-dd") + "' ";
sql += where; // where子句
sql += " order by s.add_time desc";
sql += " limit " + Math.Max(page - 1, 0) * page_size + "," + page_size;
}
dt = mySql.ExecuteDataTable(sql, paramLst.ToArray());
}
@@ -1008,12 +1072,15 @@ namespace KJD_Web.BLL
skc_id = row["skc_id"].ToString(),
spu_id = row["spu_id"].ToString(),
operate_sub_sa_name = row["operate_sub_sa_name"].ToString(),
operate_sub_sa_nick = row["operate_sub_sa_nick"].ToString(),
fission_product_name = row["fission_product_name"].ToString(),
user_notes = row["user_notes"].ToString(),
//product_json = row["product_json"].ToString(),
//size_json = row["size_json"].ToString(),
};
if (operate_sub_sa_name != null || 1 == 2)
{
prodSelect.operate_sub_sa_nick = row["operate_sub_sa_nick"].ToString();
}
prodSelect.add_sub_sa_time = row["add_sub_sa_time"] as DateTime?;
productLst.Add(prodSelect);
}
@@ -8,7 +8,7 @@
<IISExpressWindowsAuthentication />
<IISExpressUseClassicPipelineMode />
<UseGlobalApplicationHostFile />
<LastActiveSolutionConfig>Debug|Any CPU</LastActiveSolutionConfig>
<LastActiveSolutionConfig>Release|Any CPU</LastActiveSolutionConfig>
<ProjectView>ShowAllFiles</ProjectView>
</PropertyGroup>
<ProjectExtensions>
@@ -11,7 +11,7 @@ using System.Windows.Forms;
namespace TemuKJD.BaseForms
{
public partial class LRBaseForm : BaseForm
public partial class BaseGeneralForm : BaseForm
{
const int WM_NCHITTEST = 0x0084;
const int HTLEFT = 10; //左边界
@@ -95,7 +95,7 @@ namespace TemuKJD.BaseForms
}
}
public LRBaseForm()
public BaseGeneralForm()
{
InitializeComponent();
this.MaximumSize = new Size(Screen.PrimaryScreen.WorkingArea.Width, Screen.PrimaryScreen.WorkingArea.Height);
@@ -1,6 +1,6 @@
namespace TemuKJD.BaseForms
{
partial class LRBaseForm
partial class BaseGeneralForm
{
/// <summary>
/// Required designer variable.
File renamed without changes.
+1 -1
View File
@@ -11,7 +11,7 @@ using System.Windows.Forms;
namespace TemuKJD.BaseForms
{
public partial class BaseMsgForm : LRBaseForm
public partial class BaseMsgForm : BaseGeneralForm
{
public BaseMsgForm()
{
+375
View File
@@ -0,0 +1,375 @@
using AllBase;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace TemuKJD.BaseForms
{
public partial class BaseTalkForm : BaseForm
{
const int WM_NCHITTEST = 0x0084;
const int HTLEFT = 10; //左边界
const int HTRIGHT = 11; //右边界
const int HTTOP = 12; //上边界
const int HTTOPLEFT = 13; //左上角
const int HTTOPRIGHT = 14; //右上角
const int HTBOTTOM = 15; //下边界
const int HTBOTTOMLEFT = 0x10; //左下角
const int HTBOTTOMRIGHT = 17; //右下角
public bool Dragable { get; set; } = true;
protected override void WndProc(ref Message m)
{
switch (m.Msg)
{
case WM_NCHITTEST:
base.WndProc(ref m);
Point vPoint = new Point((int)m.LParam & 0xFFFF,
(int)m.LParam >> 16 & 0xFFFF);
vPoint = PointToClient(vPoint);
if (vPoint.X <= 5)
if (vPoint.Y <= 5)
m.Result = (IntPtr)HTTOPLEFT;
else if (vPoint.Y >= ClientSize.Height - 5)
m.Result = (IntPtr)HTBOTTOMLEFT;
else m.Result = (IntPtr)HTLEFT;
else if (vPoint.X >= ClientSize.Width - 5)
if (vPoint.Y <= 5)
m.Result = (IntPtr)HTTOPRIGHT;
else if (vPoint.Y >= ClientSize.Height - 5)
m.Result = (IntPtr)HTBOTTOMRIGHT;
else m.Result = (IntPtr)HTRIGHT;
else if (vPoint.Y <= 5)
m.Result = (IntPtr)HTTOP;
else if (vPoint.Y >= ClientSize.Height - 5)
m.Result = (IntPtr)HTBOTTOM;
break;
default:
try
{
base.WndProc(ref m);
}
catch
{
}
break;
}
this.Resize += LRBaseForm_Resize;
}
private void LRBaseForm_Resize(object sender, EventArgs e)
{
if (WindowState == FormWindowState.Maximized)
{
pbMaxBase.Visible = false;
pbNormalBase.Visible = true;
if (showMinimizedBox)
pbMinBase.Visible = true;
}
else if (WindowState == FormWindowState.Minimized)
{
}
else
{
if (showMaximizeBox)
pbMaxBase.Visible = true;
pbNormalBase.Visible = false;
if (showMinimizedBox)
pbMinBase.Visible = true;
}
if (!showMinimizedBox)
this.pbMinBase.Visible = false;
if (!showMaximizeBox)
{
this.pbMaxBase.Visible = false;
this.pbNormalBase.Visible = false;
}
}
public BaseTalkForm()
{
InitializeComponent();
this.MaximumSize = new Size(Screen.PrimaryScreen.WorkingArea.Width, Screen.PrimaryScreen.WorkingArea.Height);
}
private void LcBaseForm_Load(object sender, EventArgs e)
{
if (BaseClass.Ico != null)
Iconx = Icon = BaseClass.Ico;
else
Iconx = this.Icon = BaseClass.Ico = ImageBuild.ConvertToIcon(global::TemuKJD.Properties.Resources.icon);
if (!this.ShowIcon)
{
this.pbLogo.Visible = false;
this.lbTitle.Location = new Point(this.pbLogo.Location.X, this.lbTitle.Location.Y);
}
this.pbLogo.Image = BaseClass.LogoImage;
if (this.ShowMaximizeBox)
{
if (this.WindowState == FormWindowState.Maximized)
{
this.pbMaxBase.Visible = false;
this.pbNormalBase.Visible = true;
}
else
{
this.pbMaxBase.Visible = true;
this.pbNormalBase.Visible = false;
}
}
lblVersionInfo.Text = BaseClass.ToolName + " V" + BaseClass.Varsion + " - " + BaseClass.NickName;
SetPanelVisible(this.TopLevel || DesignMode);
}
public void SetPanelVisible(bool visible)
{
if (visible)
{
this.Padding = new Padding(1);
this.panel1.Visible = true;
}
else
{
this.Padding = new Padding(0);
this.panel1.Visible = false;
}
}
private void PictureBox2_Click(object sender, EventArgs e)
{
WindowState = FormWindowState.Minimized;
}
public virtual void PictureBox1_Click(object sender, EventArgs e)
{
//pictureBox3.Image?.Dispose();
Close();
}
private Icon _iconx;
public Icon Iconx
{
set
{
_iconx = value;
if (_iconx == null) return;
pbLogo.Image = _iconx.ToBitmap();
}
}
private bool showMinimizedBox = true;
[Browsable(true), Description("显示最小化按钮"), Category("自定义分组")]
public bool ShowMinimizedBox
{
get
{
return showMinimizedBox;
}
set
{
this.showMinimizedBox = value;
}
}
private bool showMaximizeBox = false;
[Browsable(true), Description("显示最大化按钮"), Category("自定义分组")]
public bool ShowMaximizeBox
{
get { return showMaximizeBox; }
set
{
showMaximizeBox = value;
if (showMaximizeBox)
{
if (this.WindowState == FormWindowState.Maximized)
{
this.pbMaxBase.Visible = false;
this.pbNormalBase.Visible = true;
}
else
{
this.pbMaxBase.Visible = true;
this.pbNormalBase.Visible = false;
}
}
else
{
this.pbMaxBase.Visible = false;
this.pbNormalBase.Visible = false;
}
}
}
public string TitleText
{
get
{
return Text;
}
set
{
lbTitle.Text = Text = value;
}
}
private Point mouseOffset;//记录鼠标指针的坐标
private bool isMouseDown;//记录鼠标左键是否按下
private void Panel1_MouseMove(object sender, MouseEventArgs e)
{
if (isMouseDown && Dragable)
{
//获取鼠标的位置
Point mousePos = MousePosition;
mousePos.Offset(mouseOffset.X, mouseOffset.Y);
Location = mousePos;
}
}
private void Panel1_MouseDown(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
mouseOffset = new Point(-e.X, -e.Y);
isMouseDown = true;
}
}
private void Panel1_MouseUp(object sender, MouseEventArgs e)
{
isMouseDown = false;
}
private void PictureBox1_MouseHover(object sender, EventArgs e)
{
this.pbCloseBase.Image = global::TemuKJD.Properties.Resources.close_hover;
this.Cursor = Cursors.Hand;
}
private void PictureBox1_MouseLeave(object sender, EventArgs e)
{
this.pbCloseBase.Image = global::TemuKJD.Properties.Resources.close;
this.Cursor = Cursors.Default;
}
private void PictureBox2_MouseHover(object sender, EventArgs e)
{
this.pbMinBase.Image = global::TemuKJD.Properties.Resources.min_hover;
this.Cursor = Cursors.Hand;
}
private void PictureBox2_MouseLeave(object sender, EventArgs e)
{
this.pbMinBase.Image = global::TemuKJD.Properties.Resources.min;
this.Cursor = Cursors.Default;
}
public virtual void HideTitle()
{
this.panel1.Visible = false;
}
#region 窗体提交数据完成事件
public event Action<object> SaveComplete;
protected virtual void OnSaveComplete(object param)
{
this.SaveComplete?.Invoke(param);
}
public event Action<object, object> SaveCompleteWithDescribe;
protected virtual void OnSaveComplete(object param, object describe)
{
this.SaveCompleteWithDescribe?.Invoke(param, describe);
}
#endregion
private void pbNormalBase_Click(object sender, EventArgs e)
{
WindowState = FormWindowState.Normal;
this.pbMaxBase.Visible = true;
this.pbNormalBase.Visible = false;
}
private void pbNormalBase_MouseHover(object sender, EventArgs e)
{
this.pbNormalBase.Image = global::TemuKJD.Properties.Resources.normal_hover;
this.Cursor = Cursors.Hand;
}
private void pbNormalBase_MouseLeave(object sender, EventArgs e)
{
this.pbNormalBase.Image = global::TemuKJD.Properties.Resources.normal;
this.Cursor = Cursors.Default;
}
private void pbMaxBase_Click(object sender, EventArgs e)
{
WindowState = FormWindowState.Maximized;
this.pbMaxBase.Visible = false;
this.pbNormalBase.Visible = true;
}
private void pbMaxBase_MouseHover(object sender, EventArgs e)
{
this.pbMaxBase.Image = global::TemuKJD.Properties.Resources.max_hover;
this.Cursor = Cursors.Hand;
}
private void pbMaxBase_MouseLeave(object sender, EventArgs e)
{
this.pbMaxBase.Image = global::TemuKJD.Properties.Resources.max;
this.Cursor = Cursors.Default;
}
private void lbTitle_MouseDown(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
mouseOffset = new Point(-e.X, -e.Y);
isMouseDown = true;
}
}
private void lbTitle_MouseMove(object sender, MouseEventArgs e)
{
if (isMouseDown && Dragable)
{
var control = sender as Control;
if (control == null)
return;
//获取鼠标的位置
Point mousePos = MousePosition;
var x = mouseOffset.X;
var y = mouseOffset.Y;
while (control.Parent != null && control.Parent != this)
{
x -= control.Location.X;
y -= control.Location.Y;
control = control.Parent;
}
mousePos.Offset(x, y);
Location = mousePos;
}
}
private void lbTitle_MouseUp(object sender, MouseEventArgs e)
{
isMouseDown = false;
}
}
}
+221
View File
@@ -0,0 +1,221 @@
namespace TemuKJD.BaseForms
{
partial class BaseTalkForm
{
/// <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.panel1 = new System.Windows.Forms.Panel();
this.panel2 = new System.Windows.Forms.Panel();
this.pbMinBase = new System.Windows.Forms.PictureBox();
this.pbCloseBase = new System.Windows.Forms.PictureBox();
this.pbNormalBase = new System.Windows.Forms.PictureBox();
this.pbMaxBase = new System.Windows.Forms.PictureBox();
this.pbLogo = new System.Windows.Forms.PictureBox();
this.lbTitle = new System.Windows.Forms.Label();
this.lblVersionName = new System.Windows.Forms.Label();
this.lblVersionInfo = new System.Windows.Forms.Label();
this.panel1.SuspendLayout();
this.panel2.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.pbMinBase)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.pbCloseBase)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.pbNormalBase)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.pbMaxBase)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.pbLogo)).BeginInit();
this.SuspendLayout();
//
// panel1
//
this.panel1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.panel1.Controls.Add(this.lblVersionName);
this.panel1.Controls.Add(this.lblVersionInfo);
this.panel1.Controls.Add(this.panel2);
this.panel1.Controls.Add(this.pbLogo);
this.panel1.Controls.Add(this.lbTitle);
this.panel1.Dock = System.Windows.Forms.DockStyle.Top;
this.panel1.Location = new System.Drawing.Point(1, 1);
this.panel1.Name = "panel1";
this.panel1.Size = new System.Drawing.Size(964, 80);
this.panel1.TabIndex = 0;
this.panel1.MouseDown += new System.Windows.Forms.MouseEventHandler(this.Panel1_MouseDown);
this.panel1.MouseMove += new System.Windows.Forms.MouseEventHandler(this.Panel1_MouseMove);
this.panel1.MouseUp += new System.Windows.Forms.MouseEventHandler(this.Panel1_MouseUp);
//
// panel2
//
this.panel2.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.panel2.Controls.Add(this.pbMinBase);
this.panel2.Controls.Add(this.pbCloseBase);
this.panel2.Controls.Add(this.pbNormalBase);
this.panel2.Controls.Add(this.pbMaxBase);
this.panel2.Location = new System.Drawing.Point(804, 0);
this.panel2.Name = "panel2";
this.panel2.Size = new System.Drawing.Size(160, 32);
this.panel2.TabIndex = 1;
//
// pbMinBase
//
this.pbMinBase.Dock = System.Windows.Forms.DockStyle.Right;
this.pbMinBase.Image = global::TemuKJD.Properties.Resources.min;
this.pbMinBase.Location = new System.Drawing.Point(32, 0);
this.pbMinBase.Name = "pbMinBase";
this.pbMinBase.Size = new System.Drawing.Size(32, 32);
this.pbMinBase.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage;
this.pbMinBase.TabIndex = 1;
this.pbMinBase.TabStop = false;
this.pbMinBase.Click += new System.EventHandler(this.PictureBox2_Click);
this.pbMinBase.MouseLeave += new System.EventHandler(this.PictureBox2_MouseLeave);
this.pbMinBase.MouseHover += new System.EventHandler(this.PictureBox2_MouseHover);
//
// pbCloseBase
//
this.pbCloseBase.Dock = System.Windows.Forms.DockStyle.Right;
this.pbCloseBase.Image = global::TemuKJD.Properties.Resources.close;
this.pbCloseBase.Location = new System.Drawing.Point(64, 0);
this.pbCloseBase.Name = "pbCloseBase";
this.pbCloseBase.Size = new System.Drawing.Size(32, 32);
this.pbCloseBase.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage;
this.pbCloseBase.TabIndex = 0;
this.pbCloseBase.TabStop = false;
this.pbCloseBase.Click += new System.EventHandler(this.PictureBox1_Click);
this.pbCloseBase.MouseLeave += new System.EventHandler(this.PictureBox1_MouseLeave);
this.pbCloseBase.MouseHover += new System.EventHandler(this.PictureBox1_MouseHover);
//
// pbNormalBase
//
this.pbNormalBase.Dock = System.Windows.Forms.DockStyle.Right;
this.pbNormalBase.Image = global::TemuKJD.Properties.Resources.normal;
this.pbNormalBase.Location = new System.Drawing.Point(96, 0);
this.pbNormalBase.Name = "pbNormalBase";
this.pbNormalBase.Size = new System.Drawing.Size(32, 32);
this.pbNormalBase.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage;
this.pbNormalBase.TabIndex = 6;
this.pbNormalBase.TabStop = false;
this.pbNormalBase.Visible = false;
this.pbNormalBase.Click += new System.EventHandler(this.pbNormalBase_Click);
this.pbNormalBase.MouseLeave += new System.EventHandler(this.pbNormalBase_MouseLeave);
this.pbNormalBase.MouseHover += new System.EventHandler(this.pbNormalBase_MouseHover);
//
// pbMaxBase
//
this.pbMaxBase.Dock = System.Windows.Forms.DockStyle.Right;
this.pbMaxBase.Image = global::TemuKJD.Properties.Resources.max;
this.pbMaxBase.Location = new System.Drawing.Point(128, 0);
this.pbMaxBase.Name = "pbMaxBase";
this.pbMaxBase.Size = new System.Drawing.Size(32, 32);
this.pbMaxBase.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage;
this.pbMaxBase.TabIndex = 5;
this.pbMaxBase.TabStop = false;
this.pbMaxBase.Visible = false;
this.pbMaxBase.Click += new System.EventHandler(this.pbMaxBase_Click);
this.pbMaxBase.MouseLeave += new System.EventHandler(this.pbMaxBase_MouseLeave);
this.pbMaxBase.MouseHover += new System.EventHandler(this.pbMaxBase_MouseHover);
//
// pbLogo
//
this.pbLogo.Location = new System.Drawing.Point(10, 10);
this.pbLogo.Name = "pbLogo";
this.pbLogo.Size = new System.Drawing.Size(180, 60);
this.pbLogo.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;
this.pbLogo.TabIndex = 79;
this.pbLogo.TabStop = false;
//
// lbTitle
//
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(196, 7);
this.lbTitle.Name = "lbTitle";
this.lbTitle.Size = new System.Drawing.Size(45, 17);
this.lbTitle.TabIndex = 2;
this.lbTitle.Text = "label1";
this.lbTitle.Visible = false;
this.lbTitle.MouseDown += new System.Windows.Forms.MouseEventHandler(this.lbTitle_MouseDown);
this.lbTitle.MouseMove += new System.Windows.Forms.MouseEventHandler(this.lbTitle_MouseMove);
this.lbTitle.MouseUp += new System.Windows.Forms.MouseEventHandler(this.lbTitle_MouseUp);
//
// lblVersionName
//
this.lblVersionName.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.lblVersionName.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(192)))), ((int)(((byte)(0)))));
this.lblVersionName.Location = new System.Drawing.Point(723, 33);
this.lblVersionName.Name = "lblVersionName";
this.lblVersionName.Size = new System.Drawing.Size(238, 23);
this.lblVersionName.TabIndex = 81;
this.lblVersionName.Text = "版本类型";
this.lblVersionName.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
this.lblVersionName.Visible = false;
//
// lblVersionInfo
//
this.lblVersionInfo.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.lblVersionInfo.ForeColor = System.Drawing.SystemColors.ControlDark;
this.lblVersionInfo.Location = new System.Drawing.Point(723, 56);
this.lblVersionInfo.Name = "lblVersionInfo";
this.lblVersionInfo.Size = new System.Drawing.Size(238, 23);
this.lblVersionInfo.TabIndex = 80;
this.lblVersionInfo.Text = "版本信息";
this.lblVersionInfo.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
//
// BaseTalkForm
//
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(966, 535);
this.Controls.Add(this.panel1);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
this.Name = "BaseTalkForm";
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();
this.panel2.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.pbMinBase)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.pbCloseBase)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.pbNormalBase)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.pbMaxBase)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.pbLogo)).EndInit();
this.ResumeLayout(false);
}
#endregion
private System.Windows.Forms.Panel panel1;
private System.Windows.Forms.PictureBox pbMinBase;
private System.Windows.Forms.PictureBox pbCloseBase;
private System.Windows.Forms.Label lbTitle;
private System.Windows.Forms.PictureBox pbNormalBase;
private System.Windows.Forms.PictureBox pbMaxBase;
public System.Windows.Forms.PictureBox pbLogo;
private System.Windows.Forms.Panel panel2;
public System.Windows.Forms.Label lblVersionName;
private System.Windows.Forms.Label lblVersionInfo;
}
}
+120
View File
@@ -0,0 +1,120 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>
+41 -25
View File
@@ -12,11 +12,12 @@ using AllBase;
//using TemuKJD.ChatForms;
//using TemuKJD.DashBoardForms;
using TemuKJD.BaseForms;
using TemuKJD.WXForms.TalkForms;
using Work;
namespace TemuKJD
{
public partial class ChangeForm : LRBaseForm
public partial class ChangeForm : BaseGeneralForm
{
public MainForm mf;
public ChangeForm()
@@ -24,6 +25,40 @@ namespace TemuKJD
InitializeComponent();
}
private void ChangeForm_Load(object sender, EventArgs e)
{
TitleText = "功能选择 - " + BaseClass.ToolName;
if (BaseClass.Ico != null)
{
Iconx = BaseClass.Ico;
Icon = BaseClass.Ico;
}
mf.Hide();
Text += " - " + BaseClass.ToolName;
pnlExtend.Visible = BaseClass.DarenYaoyue;
//直接登录上货工具
if (BaseClass.MainPath != "weixin1")
{
label1.Visible = true;
pnlChat.Visible = pnlUploadGoods.Visible = false;
Task.Run(() =>
{
System.Threading.Thread.Sleep(100);
Invoke(new Action(() =>
{
panel2_Click(this.pnlUploadGoods, null);
}));
});
}
else
{
label1.Visible = false;
pnlChat.Visible = pnlUploadGoods.Visible = true;
}
}
private void panel1_Click(object sender, EventArgs e)
{
Process p = new Process();
@@ -73,36 +108,17 @@ namespace TemuKJD
Process.GetCurrentProcess().Kill();
}
private void ChangeForm_Load(object sender, EventArgs e)
{
TitleText = "功能选择 - " + BaseClass.ToolName;
if (BaseClass.Ico != null)
{
Iconx = BaseClass.Ico;
Icon = BaseClass.Ico;
}
mf.Hide();
Text += " - " + BaseClass.ToolName;
pnlExtend.Visible = BaseClass.DarenYaoyue;
//直接登录上货工具
Task.Run(() =>
{
System.Threading.Thread.Sleep(100);
Invoke(new Action(() =>
{
panel2_Click(this.panel2, null);
}));
});
}
private void pnlChat_Click(object sender, EventArgs e)
{
//ChatForm cf = new ChatForm();
//cf.Show();
//cf.SetTitle();
//Hide();
WxTalkForm cf = new WxTalkForm();
cf.Show();
//cf.SetTitle();
Hide();
}
private void pnlExtend_Click(object sender, EventArgs e)
+24 -27
View File
@@ -32,7 +32,7 @@
this.panel4 = new DevComponents.DotNetBar.PanelEx();
this.panel3 = new DevComponents.DotNetBar.PanelEx();
this.label1 = new System.Windows.Forms.Label();
this.panel2 = new DevComponents.DotNetBar.PanelEx();
this.pnlUploadGoods = new DevComponents.DotNetBar.PanelEx();
this.panel1 = new DevComponents.DotNetBar.PanelEx();
this.panel5 = new DevComponents.DotNetBar.PanelEx();
this.pnlExtend = new DevComponents.DotNetBar.PanelEx();
@@ -44,9 +44,9 @@
//
this.panel4.Cursor = System.Windows.Forms.Cursors.Hand;
this.panel4.DisabledBackColor = System.Drawing.Color.Empty;
this.panel4.Location = new System.Drawing.Point(234, 215);
this.panel4.Location = new System.Drawing.Point(271, 176);
this.panel4.Name = "panel4";
this.panel4.Size = new System.Drawing.Size(172, 65);
this.panel4.Size = new System.Drawing.Size(104, 37);
this.panel4.Style.BackgroundImage = global::TemuKJD.Properties.Resources.choice_order;
this.panel4.StyleMouseOver.Border = DevComponents.DotNetBar.eBorderType.RaisedInner;
this.panel4.StyleMouseOver.BorderColor.Color = System.Drawing.Color.FromArgb(((int)(((byte)(7)))), ((int)(((byte)(157)))), ((int)(((byte)(235)))));
@@ -58,9 +58,9 @@
//
this.panel3.Cursor = System.Windows.Forms.Cursors.Hand;
this.panel3.DisabledBackColor = System.Drawing.Color.Empty;
this.panel3.Location = new System.Drawing.Point(31, 43);
this.panel3.Location = new System.Drawing.Point(15, 176);
this.panel3.Name = "panel3";
this.panel3.Size = new System.Drawing.Size(172, 65);
this.panel3.Size = new System.Drawing.Size(104, 37);
this.panel3.Style.BackgroundImage = global::TemuKJD.Properties.Resources.choice_buyer_blast;
this.panel3.StyleMouseOver.Border = DevComponents.DotNetBar.eBorderType.RaisedInner;
this.panel3.StyleMouseOver.BorderColor.Color = System.Drawing.Color.FromArgb(((int)(((byte)(7)))), ((int)(((byte)(157)))), ((int)(((byte)(235)))));
@@ -72,25 +72,24 @@
//
this.label1.AutoSize = true;
this.label1.Font = new System.Drawing.Font("微软雅黑", 15F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.label1.Location = new System.Drawing.Point(34, 43);
this.label1.Location = new System.Drawing.Point(28, 108);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(224, 27);
this.label1.TabIndex = 54;
this.label1.Text = "登录成功,正在跳转……";
//
// panel2
// pnlUploadGoods
//
this.panel2.Cursor = System.Windows.Forms.Cursors.Hand;
this.panel2.DisabledBackColor = System.Drawing.Color.Empty;
this.panel2.Location = new System.Drawing.Point(234, 43);
this.panel2.Name = "panel2";
this.panel2.Size = new System.Drawing.Size(172, 65);
this.panel2.Style.BackgroundImage = global::TemuKJD.Properties.Resources.choice_upload;
this.panel2.StyleMouseOver.Border = DevComponents.DotNetBar.eBorderType.RaisedInner;
this.panel2.StyleMouseOver.BorderColor.Color = System.Drawing.Color.FromArgb(((int)(((byte)(7)))), ((int)(((byte)(157)))), ((int)(((byte)(235)))));
this.panel2.TabIndex = 1;
this.panel2.Visible = false;
this.panel2.Click += new System.EventHandler(this.panel2_Click);
this.pnlUploadGoods.Cursor = System.Windows.Forms.Cursors.Hand;
this.pnlUploadGoods.DisabledBackColor = System.Drawing.Color.Empty;
this.pnlUploadGoods.Location = new System.Drawing.Point(33, 40);
this.pnlUploadGoods.Name = "pnlUploadGoods";
this.pnlUploadGoods.Size = new System.Drawing.Size(172, 65);
this.pnlUploadGoods.Style.BackgroundImage = global::TemuKJD.Properties.Resources.choice_upload;
this.pnlUploadGoods.StyleMouseOver.Border = DevComponents.DotNetBar.eBorderType.RaisedInner;
this.pnlUploadGoods.StyleMouseOver.BorderColor.Color = System.Drawing.Color.FromArgb(((int)(((byte)(7)))), ((int)(((byte)(157)))), ((int)(((byte)(235)))));
this.pnlUploadGoods.TabIndex = 1;
this.pnlUploadGoods.Click += new System.EventHandler(this.panel2_Click);
//
// panel1
//
@@ -114,21 +113,21 @@
this.panel5.Controls.Add(this.pnlChat);
this.panel5.Controls.Add(this.panel3);
this.panel5.Controls.Add(this.panel4);
this.panel5.Controls.Add(this.panel2);
this.panel5.Controls.Add(this.pnlUploadGoods);
this.panel5.DisabledBackColor = System.Drawing.Color.Empty;
this.panel5.Dock = System.Windows.Forms.DockStyle.Fill;
this.panel5.Location = new System.Drawing.Point(1, 1);
this.panel5.Location = new System.Drawing.Point(1, 33);
this.panel5.Name = "panel5";
this.panel5.Size = new System.Drawing.Size(440, 290);
this.panel5.Size = new System.Drawing.Size(440, 258);
this.panel5.TabIndex = 4;
//
// pnlExtend
//
this.pnlExtend.Cursor = System.Windows.Forms.Cursors.Hand;
this.pnlExtend.DisabledBackColor = System.Drawing.Color.Empty;
this.pnlExtend.Location = new System.Drawing.Point(234, 131);
this.pnlExtend.Location = new System.Drawing.Point(142, 176);
this.pnlExtend.Name = "pnlExtend";
this.pnlExtend.Size = new System.Drawing.Size(172, 65);
this.pnlExtend.Size = new System.Drawing.Size(104, 37);
this.pnlExtend.Style.BackgroundImage = global::TemuKJD.Properties.Resources.choice_extend;
this.pnlExtend.StyleMouseOver.Border = DevComponents.DotNetBar.eBorderType.RaisedInner;
this.pnlExtend.StyleMouseOver.BorderColor.Color = System.Drawing.Color.FromArgb(((int)(((byte)(7)))), ((int)(((byte)(157)))), ((int)(((byte)(235)))));
@@ -140,19 +139,17 @@
//
this.pnlChat.Cursor = System.Windows.Forms.Cursors.Hand;
this.pnlChat.DisabledBackColor = System.Drawing.Color.Empty;
this.pnlChat.Location = new System.Drawing.Point(31, 131);
this.pnlChat.Location = new System.Drawing.Point(235, 40);
this.pnlChat.Name = "pnlChat";
this.pnlChat.Size = new System.Drawing.Size(172, 65);
this.pnlChat.Style.BackgroundImage = global::TemuKJD.Properties.Resources.choice_chat;
this.pnlChat.StyleMouseOver.Border = DevComponents.DotNetBar.eBorderType.RaisedInner;
this.pnlChat.StyleMouseOver.BorderColor.Color = System.Drawing.Color.FromArgb(((int)(((byte)(7)))), ((int)(((byte)(157)))), ((int)(((byte)(235)))));
this.pnlChat.TabIndex = 16;
this.pnlChat.Visible = false;
this.pnlChat.Click += new System.EventHandler(this.pnlChat_Click);
//
// ChangeForm
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
this.BackColor = System.Drawing.Color.White;
this.ClientSize = new System.Drawing.Size(442, 292);
@@ -174,7 +171,7 @@
#endregion
private DevComponents.DotNetBar.PanelEx panel1;
private DevComponents.DotNetBar.PanelEx panel2;
private DevComponents.DotNetBar.PanelEx pnlUploadGoods;
private DevComponents.DotNetBar.PanelEx panel3;
private DevComponents.DotNetBar.PanelEx panel4;
private DevComponents.DotNetBar.PanelEx panel5;
+46 -42
View File
@@ -784,55 +784,59 @@ namespace TemuKJD.Extension
}
foreach (DataGridViewRow row in rowLst)
{
if (row.Index > 1 && row.Cells[imgColumn].Displayed == false)
dgv.Invoke(new Action(() =>
{
if (row.Index > 1 && row.Cells[imgColumn].Displayed == false)
{
//dgv.Invoke(new Action(() =>
//{
try
{
if (row.Index > 0)
row.Cells[imgColumn].Value = defaultBitmap;
}
catch
{
}
//}));
return;
}
if (row.Index < 0)
return;
if (row.Index >= 0 && row.Cells[imgColumn].Value != null && row.Cells[imgColumn].Value != defaultBitmap)
return;
Image image = defaultBitmap;
if (row.Index >= 0)
{
string imgUrl = row.Cells[imgPathColumn]?.Value.ParseToString();
if (isSetHttpsHttp == true)
imgUrl = imgUrl.Replace("https://", "http://");
string getImgError = "";
if (!string.IsNullOrWhiteSpace(imgUrl))
{
image = GetHtml.GetUrlImg(imgUrl, out getImgError);
if (!string.IsNullOrEmpty(getImgError))
//BaseMsgForm.ShowError("图片加载失败 " + getImgError);
image = TemuKJD.Properties.Resources.errpic;
}
}
try
{
dgv.Invoke(new Action(() =>
{
row.Cells[imgColumn].Value = defaultBitmap;
}));
}
catch
{
}
continue;
}
if (row.Index < 0)
continue;
if (row.Index >= 0 && row.Cells[imgColumn].Value != null && row.Cells[imgColumn].Value != defaultBitmap)
continue;
Image image = defaultBitmap;
if (row.Index >= 0)
{
string imgUrl = row.Cells[imgPathColumn]?.Value.ParseToString();
if (isSetHttpsHttp == true)
imgUrl = imgUrl.Replace("https://", "http://");
string getImgError = "";
if (!string.IsNullOrWhiteSpace(imgUrl))
{
image = GetHtml.GetUrlImg(imgUrl, out getImgError);
if (!string.IsNullOrEmpty(getImgError))
//BaseMsgForm.ShowError("图片加载失败 " + getImgError);
image = TemuKJD.Properties.Resources.errpic;
}
}
try
{
dgv.Invoke(new Action(() =>
{
//dgv.Invoke(new Action(() =>
//{
if (row.Index >= 0)
{
row.Cells[imgColumn].Value = image;
}
}));
}
catch
{
}
//}));
}
catch
{
}
}));
}
});
}
+1 -1
View File
@@ -16,7 +16,7 @@ using System.IO;
namespace TemuKJD
{
public partial class InitForm : LRBaseForm
public partial class InitForm : BaseGeneralForm
{
InitFormSettings initFormSettings = new InitFormSettings();
public InitForm()
+25 -5
View File
@@ -114,6 +114,12 @@
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="BaseForms\BaseTalkForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="BaseForms\BaseTalkForm.designer.cs">
<DependentUpon>BaseTalkForm.cs</DependentUpon>
</Compile>
<Compile Include="BLL\AuthorBLL.cs" />
<Compile Include="BLL\MemoryReader.cs" />
<Compile Include="BLL\PDDProdFormConverter.cs" />
@@ -393,11 +399,11 @@
<Compile Include="BaseForms\BaseMsgForm.designer.cs">
<DependentUpon>BaseMsgForm.cs</DependentUpon>
</Compile>
<Compile Include="BaseForms\LRBaseForm.cs">
<Compile Include="BaseForms\BaseGeneralForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="BaseForms\LRBaseForm.designer.cs">
<DependentUpon>LRBaseForm.cs</DependentUpon>
<Compile Include="BaseForms\BaseGeneralForm.designer.cs">
<DependentUpon>BaseGeneralForm.cs</DependentUpon>
</Compile>
<Compile Include="KJDForms\OrderForms\OrderForm.cs">
<SubType>Form</SubType>
@@ -1006,6 +1012,17 @@
<Compile Include="UserForm\SupportQrCodeForm.Designer.cs">
<DependentUpon>SupportQrCodeForm.cs</DependentUpon>
</Compile>
<Compile Include="WXForms\TalkForms\TalkHelper\ChatConfig.cs" />
<Compile Include="WXForms\TalkForms\TalkModel\ChatSettingsParam.cs" />
<Compile Include="WXForms\TalkForms\WxTalkForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="WXForms\TalkForms\WxTalkForm.Designer.cs">
<DependentUpon>WxTalkForm.cs</DependentUpon>
</Compile>
<EmbeddedResource Include="BaseForms\BaseTalkForm.resx">
<DependentUpon>BaseTalkForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="ChangeForm.resx">
<DependentUpon>ChangeForm.cs</DependentUpon>
</EmbeddedResource>
@@ -1138,8 +1155,8 @@
<EmbeddedResource Include="BaseForms\BaseMsgForm.resx">
<DependentUpon>BaseMsgForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="BaseForms\LRBaseForm.resx">
<DependentUpon>LRBaseForm.cs</DependentUpon>
<EmbeddedResource Include="BaseForms\BaseGeneralForm.resx">
<DependentUpon>BaseGeneralForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="KJDForms\OrderForms\OrderForm.resx">
<DependentUpon>OrderForm.cs</DependentUpon>
@@ -1416,6 +1433,9 @@
<EmbeddedResource Include="UserForm\SupportQrCodeForm.resx">
<DependentUpon>SupportQrCodeForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="WXForms\TalkForms\WxTalkForm.resx">
<DependentUpon>WxTalkForm.cs</DependentUpon>
</EmbeddedResource>
<None Include="packages.config" />
<None Include="Properties\Settings.settings">
<Generator>SettingsSingleFileGenerator</Generator>
+1 -1
View File
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<ProjectView>ShowAllFiles</ProjectView>
<ProjectView>ProjectFiles</ProjectView>
<PublishUrlHistory>publish\</PublishUrlHistory>
<InstallUrlHistory />
<SupportUrlHistory />
@@ -15,7 +15,7 @@ using Work;
namespace TemuKJD.KJDForms.AdminForms
{
public partial class AdminShopAddSubSaForm : LRBaseForm
public partial class AdminShopAddSubSaForm : BaseGeneralForm
{
List<string> lstShopLoginName = new List<string>();
@@ -29,7 +29,7 @@ using TemuKJD.ToolForms;
namespace TemuKJD.KJDForms.AdminForms
{
public partial class AdminShopLoginForm : LRBaseForm
public partial class AdminShopLoginForm : BaseGeneralForm
{
public int CloseAfterSecond { get; set; }
/// <summary>
@@ -16,7 +16,7 @@ using Work;
namespace TemuKJD.KJDForms.JITForms
{
public partial class JitOrderUploadFileForm : LRBaseForm
public partial class JitOrderUploadFileForm : BaseGeneralForm
{
public bool isClientJit;
TemuDBOrderInfo temuDBOrderInfo = null;
@@ -22,7 +22,7 @@ namespace TemuKJD.KJDForms.ProductForms
/// <summary>
/// 商品调价(改价)
/// </summary>
public partial class ProductChangePriceForm : LRBaseForm
public partial class ProductChangePriceForm : BaseGeneralForm
{
public bool IsAuto = false;
decimal wantPrice;
@@ -15,7 +15,7 @@ using TemuKJD.BLL;
namespace TemuKJD.KJDForms.ProductForms.TemuJitSubForms
{
public partial class ChangeStockForm : LRBaseForm
public partial class ChangeStockForm : BaseGeneralForm
{
public bool IsEditSuccess = false;
public bool IsAuto = false;
@@ -19,7 +19,7 @@ namespace TemuKJD.KJDForms.ProductForms.TemuJitSubForms
/// <summary>
/// 修改合规信息
/// </summary>
public partial class ComplianceForm : LRBaseForm
public partial class ComplianceForm : BaseGeneralForm
{
/// <summary>
/// 批量自动操作,不弹框
@@ -15,7 +15,7 @@ using TemuKJD.BLL;
namespace TemuKJD.KJDForms.ProductForms.TemuJitSubForms
{
public partial class ReceiveAreaForm : LRBaseForm
public partial class ReceiveAreaForm : BaseGeneralForm
{
public bool IsSuccess = false;
ShopLoginInfo shop;
@@ -17,7 +17,7 @@ using Work;
namespace TemuKJD.KJDForms.ProductSelectForms
{
public partial class DbProductCategorySearch : LRBaseForm
public partial class DbProductCategorySearch : BaseGeneralForm
{
ShopLoginInfo Shop;
TemuDBProductSelect ProdSelect;
@@ -20,7 +20,7 @@ using Work;
namespace TemuKJD.KJDForms.ProductSelectForms
{
public partial class DbProductEditDetailForm : LRBaseForm
public partial class DbProductEditDetailForm : BaseGeneralForm
{
public ShopLoginInfo shop { get; set; }
public string productDraftId { get; set; }
@@ -17,7 +17,7 @@ using NaiBa.Util.Extension;
namespace TemuKJD.KJDForms.ProductSelectForms
{
public partial class DbProductEditForm : LRBaseForm
public partial class DbProductEditForm : BaseGeneralForm
{
KJDDBProduct dbProd = null;
@@ -27,7 +27,7 @@ using Work;
namespace TemuKJD.KJDForms.ProductSelectForms
{
public partial class DbProductListForm : LRBaseForm
public partial class DbProductListForm : BaseGeneralForm
{
public bool IsClientJit { get; set; } = false;
@@ -17,7 +17,7 @@ using NaiBa.Util.Extension;
namespace TemuKJD.KJDForms.ProductSelectForms
{
public partial class DbProductSelectEditNotesForm : LRBaseForm
public partial class DbProductSelectEditNotesForm : BaseGeneralForm
{
public EnumClientMode ClientMode { get; set; } = EnumClientMode.Admin;
public ShopLoginInfo shop { get; set; }
@@ -32,7 +32,7 @@ using NaiBa.Util;
namespace TemuKJD.KJDForms.ProductSelectForms
{
public partial class DbProductSelectListManageForm : LRBaseForm
public partial class DbProductSelectListManageForm : BaseGeneralForm
{
public EnumClientMode ClientMode { get; set; } = EnumClientMode.Admin;
public CancellationTokenSource cancellationTokenSource { get; set; } = null;
@@ -21,7 +21,7 @@ namespace TemuKJD.KJDForms.ProductSelectForms
ThirdProduct,
}
public partial class DbProductSelectSetSubSaForm : LRBaseForm
public partial class DbProductSelectSetSubSaForm : BaseGeneralForm
{
List<string> lstProductSelectId = new List<string>();
List<string> lstShopSelectId = new List<string>();
@@ -16,7 +16,7 @@ using TemuKJD.BLL;
namespace TemuKJD.KJDForms.ProductSelectForms
{
public partial class DbProductUserSelectEditNotesForm : LRBaseForm
public partial class DbProductUserSelectEditNotesForm : BaseGeneralForm
{
TemuDBProductSelect dbProdSelect = null;
SetProductSelectType selectNotesType;
@@ -15,7 +15,7 @@ using Work;
namespace TemuKJD.KJDForms.ProductSelectForms
{
public partial class DbPriceEditForm : LRBaseForm
public partial class DbPriceEditForm : BaseGeneralForm
{
TemuDBExtCodePriceInfo priceInfo = null;
public DbPriceEditForm(TemuDBExtCodePriceInfo price)
@@ -20,7 +20,7 @@ using Work;
/// </summary>
namespace TemuKJD.KJDForms.ProductThirdSelectForms
{
public partial class ProductThirdSelectAddShopForm : LRBaseForm
public partial class ProductThirdSelectAddShopForm : BaseGeneralForm
{
public bool IsOnlyUpdateDBProduct { get; set; } = false;
public List<ShopLoginInfo> lstSelectShop = new List<ShopLoginInfo>();
@@ -42,6 +42,7 @@
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle11 = new System.Windows.Forms.DataGridViewCellStyle();
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(ProductThirdSelectListManageForm));
this.splitContainer1 = new System.Windows.Forms.SplitContainer();
this.cmbSearchYear = new System.Windows.Forms.ComboBox();
this.numMaxWaitSecond = new System.Windows.Forms.NumericUpDown();
this.btnForceEnable = new DevComponents.DotNetBar.PanelEx();
this.label22 = new System.Windows.Forms.Label();
@@ -156,6 +157,7 @@
this.colOpResult = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.ucSplitPage1 = new TemuKJD.UserControls.UcSplitPage();
this.statusBar = new TemuKJD.UserControls.StatusBarUserControl();
this.label12 = new System.Windows.Forms.Label();
((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit();
this.splitContainer1.Panel1.SuspendLayout();
this.splitContainer1.Panel2.SuspendLayout();
@@ -246,6 +248,20 @@
this.splitContainer1.SplitterDistance = 120;
this.splitContainer1.TabIndex = 2;
//
// cmbSearchYear
//
this.cmbSearchYear.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right)));
this.cmbSearchYear.FormattingEnabled = true;
this.cmbSearchYear.Items.AddRange(new object[] {
"2025",
"2026"});
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);
this.cmbSearchYear.TabIndex = 808;
this.cmbSearchYear.Text = "2026";
//
// numMaxWaitSecond
//
this.numMaxWaitSecond.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
@@ -1066,28 +1082,31 @@
//
this.tableLayoutPanel1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.tableLayoutPanel1.ColumnCount = 20;
this.tableLayoutPanel1.ColumnCount = 22;
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle());
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 10.0001F));
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 9.091002F));
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle());
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 10.0001F));
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 9.091002F));
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle());
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 10.0001F));
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 9.091002F));
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle());
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 10.0001F));
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 9.091002F));
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle());
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 10.0001F));
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 9.091002F));
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle());
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 10.0001F));
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 9.091002F));
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle());
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 10.0001F));
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 9.091002F));
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle());
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 10.0001F));
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 9.091002F));
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle());
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 10.0001F));
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 9.091002F));
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle());
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 9.999102F));
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 20F));
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 9.090094F));
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle());
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 9.09091F));
this.tableLayoutPanel1.Controls.Add(this.label12, 20, 0);
this.tableLayoutPanel1.Controls.Add(this.cmbSearchYear, 21, 0);
this.tableLayoutPanel1.Controls.Add(this.cmbUserNotes, 19, 0);
this.tableLayoutPanel1.Controls.Add(this.cmbNotes, 17, 0);
this.tableLayoutPanel1.Controls.Add(this.label13, 16, 0);
@@ -1124,10 +1143,10 @@
"全部",
"重上",
"已买"});
this.cmbUserNotes.Location = new System.Drawing.Point(1008, 11);
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(64, 25);
this.cmbUserNotes.Size = new System.Drawing.Size(52, 25);
this.cmbUserNotes.TabIndex = 466;
this.cmbUserNotes.Text = "全部";
//
@@ -1141,10 +1160,10 @@
"核价成功",
"核价成功(重复)",
"重复"});
this.cmbNotes.Location = new System.Drawing.Point(885, 11);
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(61, 25);
this.cmbNotes.Size = new System.Drawing.Size(52, 25);
this.cmbNotes.TabIndex = 467;
this.cmbNotes.Text = "全部";
//
@@ -1152,7 +1171,7 @@
//
this.label13.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right)));
this.label13.AutoSize = true;
this.label13.Location = new System.Drawing.Point(853, 12);
this.label13.Location = new System.Drawing.Point(781, 12);
this.label13.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0);
this.label13.Name = "label13";
this.label13.Size = new System.Drawing.Size(32, 17);
@@ -1168,10 +1187,10 @@
"已上传",
"草稿箱",
"全部"});
this.cmbStatus.Location = new System.Drawing.Point(786, 11);
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(61, 25);
this.cmbStatus.Size = new System.Drawing.Size(52, 25);
this.cmbStatus.TabIndex = 465;
this.cmbStatus.Text = "待上传";
//
@@ -1192,14 +1211,14 @@
this.txtShopId.Location = new System.Drawing.Point(47, 9);
this.txtShopId.Margin = new System.Windows.Forms.Padding(0, 2, 0, 2);
this.txtShopId.Name = "txtShopId";
this.txtShopId.Size = new System.Drawing.Size(61, 23);
this.txtShopId.Size = new System.Drawing.Size(52, 23);
this.txtShopId.TabIndex = 448;
//
// label7
//
this.label7.Anchor = System.Windows.Forms.AnchorStyles.Left;
this.label7.AutoSize = true;
this.label7.Location = new System.Drawing.Point(114, 12);
this.label7.Location = new System.Drawing.Point(105, 12);
this.label7.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0);
this.label7.Name = "label7";
this.label7.Size = new System.Drawing.Size(56, 17);
@@ -1210,7 +1229,7 @@
//
this.label8.Anchor = System.Windows.Forms.AnchorStyles.Left;
this.label8.AutoSize = true;
this.label8.Location = new System.Drawing.Point(730, 12);
this.label8.Location = new System.Drawing.Point(667, 12);
this.label8.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0);
this.label8.Name = "label8";
this.label8.Size = new System.Drawing.Size(56, 17);
@@ -1220,17 +1239,17 @@
// txtShopName
//
this.txtShopName.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right)));
this.txtShopName.Location = new System.Drawing.Point(170, 9);
this.txtShopName.Location = new System.Drawing.Point(161, 9);
this.txtShopName.Margin = new System.Windows.Forms.Padding(0, 2, 0, 2);
this.txtShopName.Name = "txtShopName";
this.txtShopName.Size = new System.Drawing.Size(61, 23);
this.txtShopName.Size = new System.Drawing.Size(52, 23);
this.txtShopName.TabIndex = 451;
//
// label5
//
this.label5.Anchor = System.Windows.Forms.AnchorStyles.Left;
this.label5.AutoSize = true;
this.label5.Location = new System.Drawing.Point(237, 12);
this.label5.Location = new System.Drawing.Point(219, 12);
this.label5.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0);
this.label5.Name = "label5";
this.label5.Size = new System.Drawing.Size(31, 17);
@@ -1240,26 +1259,26 @@
// txtSKC
//
this.txtSKC.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right)));
this.txtSKC.Location = new System.Drawing.Point(366, 9);
this.txtSKC.Location = new System.Drawing.Point(339, 9);
this.txtSKC.Margin = new System.Windows.Forms.Padding(0, 2, 0, 2);
this.txtSKC.Name = "txtSKC";
this.txtSKC.Size = new System.Drawing.Size(61, 23);
this.txtSKC.Size = new System.Drawing.Size(52, 23);
this.txtSKC.TabIndex = 432;
//
// txtSPU
//
this.txtSPU.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right)));
this.txtSPU.Location = new System.Drawing.Point(268, 9);
this.txtSPU.Location = new System.Drawing.Point(250, 9);
this.txtSPU.Margin = new System.Windows.Forms.Padding(0, 2, 0, 2);
this.txtSPU.Name = "txtSPU";
this.txtSPU.Size = new System.Drawing.Size(61, 23);
this.txtSPU.Size = new System.Drawing.Size(52, 23);
this.txtSPU.TabIndex = 434;
//
// label1
//
this.label1.Anchor = System.Windows.Forms.AnchorStyles.Left;
this.label1.AutoSize = true;
this.label1.Location = new System.Drawing.Point(335, 12);
this.label1.Location = new System.Drawing.Point(308, 12);
this.label1.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(31, 17);
@@ -1270,7 +1289,7 @@
//
this.label2.Anchor = System.Windows.Forms.AnchorStyles.Left;
this.label2.AutoSize = true;
this.label2.Location = new System.Drawing.Point(433, 12);
this.label2.Location = new System.Drawing.Point(397, 12);
this.label2.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(32, 17);
@@ -1280,26 +1299,26 @@
// txtCat
//
this.txtCat.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right)));
this.txtCat.Location = new System.Drawing.Point(465, 9);
this.txtCat.Location = new System.Drawing.Point(429, 9);
this.txtCat.Margin = new System.Windows.Forms.Padding(0, 2, 0, 2);
this.txtCat.Name = "txtCat";
this.txtCat.Size = new System.Drawing.Size(61, 23);
this.txtCat.Size = new System.Drawing.Size(52, 23);
this.txtCat.TabIndex = 425;
//
// txtExtCode
//
this.txtExtCode.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right)));
this.txtExtCode.Location = new System.Drawing.Point(663, 9);
this.txtExtCode.Location = new System.Drawing.Point(609, 9);
this.txtExtCode.Margin = new System.Windows.Forms.Padding(0, 2, 0, 2);
this.txtExtCode.Name = "txtExtCode";
this.txtExtCode.Size = new System.Drawing.Size(61, 23);
this.txtExtCode.Size = new System.Drawing.Size(52, 23);
this.txtExtCode.TabIndex = 429;
//
// label3
//
this.label3.Anchor = System.Windows.Forms.AnchorStyles.Left;
this.label3.AutoSize = true;
this.label3.Location = new System.Drawing.Point(532, 12);
this.label3.Location = new System.Drawing.Point(487, 12);
this.label3.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0);
this.label3.Name = "label3";
this.label3.Size = new System.Drawing.Size(32, 17);
@@ -1310,7 +1329,7 @@
//
this.label4.Anchor = System.Windows.Forms.AnchorStyles.Left;
this.label4.AutoSize = true;
this.label4.Location = new System.Drawing.Point(631, 12);
this.label4.Location = new System.Drawing.Point(577, 12);
this.label4.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0);
this.label4.Name = "label4";
this.label4.Size = new System.Drawing.Size(32, 17);
@@ -1320,17 +1339,17 @@
// txtProdName
//
this.txtProdName.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right)));
this.txtProdName.Location = new System.Drawing.Point(564, 9);
this.txtProdName.Location = new System.Drawing.Point(519, 9);
this.txtProdName.Margin = new System.Windows.Forms.Padding(0, 2, 0, 2);
this.txtProdName.Name = "txtProdName";
this.txtProdName.Size = new System.Drawing.Size(61, 23);
this.txtProdName.Size = new System.Drawing.Size(52, 23);
this.txtProdName.TabIndex = 427;
//
// lblUserNotes
//
this.lblUserNotes.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right)));
this.lblUserNotes.AutoSize = true;
this.lblUserNotes.Location = new System.Drawing.Point(952, 12);
this.lblUserNotes.Location = new System.Drawing.Point(871, 12);
this.lblUserNotes.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0);
this.lblUserNotes.Name = "lblUserNotes";
this.lblUserNotes.Size = new System.Drawing.Size(56, 17);
@@ -1813,6 +1832,17 @@
this.statusBar.Size = new System.Drawing.Size(1518, 25);
this.statusBar.TabIndex = 5;
//
// label12
//
this.label12.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right)));
this.label12.AutoSize = true;
this.label12.Location = new System.Drawing.Point(985, 12);
this.label12.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0);
this.label12.Name = "label12";
this.label12.Size = new System.Drawing.Size(32, 17);
this.label12.TabIndex = 836;
this.label12.Text = "年份";
//
// ProductThirdSelectListManageForm
//
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
@@ -1979,5 +2009,7 @@
private System.Windows.Forms.DataGridViewLinkColumn colEditNotes;
private System.Windows.Forms.DataGridViewLinkColumn ColDelete;
private System.Windows.Forms.DataGridViewTextBoxColumn colOpResult;
private System.Windows.Forms.ComboBox cmbSearchYear;
private System.Windows.Forms.Label label12;
}
}
@@ -34,7 +34,7 @@ namespace TemuKJD.KJDForms.ProductThirdSelectForms
/// <summary>
/// 库存上传商品列表
/// </summary>
public partial class ProductThirdSelectListManageForm : LRBaseForm
public partial class ProductThirdSelectListManageForm : BaseGeneralForm
{
public EnumClientMode ClientMode { get; set; } = EnumClientMode.Admin;
@@ -307,6 +307,7 @@ namespace TemuKJD.KJDForms.ProductThirdSelectForms
"&search_notes=" + (cmbNotes.Text == "全部" ? "" : cmbNotes.Text) +
"&search_user_notes=" + (cmbUserNotes.Text == "全部" ? "" : cmbUserNotes.Text) +
"&status=" + (cmbStatus.Text == "全部" ? "" : cmbStatus.Text);
data += "&search_year=" + cmbSearchYear.Text;
if (BaseClass.SaLevel > 1)
data += "&operate_sub_sa_name=" + BaseClass.UserName;
if (chkNoSubSa.Checked)
@@ -1423,23 +1424,23 @@ namespace TemuKJD.KJDForms.ProductThirdSelectForms
"\"errMsg\":\"上传停止\"}";
}
var speck = skuInfo.productSkuSpecList.FirstOrDefault(s => s.parentSpecName == "颜色");
if (speck == null)
speck = skuInfo.productSkuSpecList.FirstOrDefault();
if (speck != null)
var spec = skuInfo.productSkuSpecList.FirstOrDefault(s => s.parentSpecName == "颜色");
if (spec == null)
spec = skuInfo.productSkuSpecList.FirstOrDefault();
if (spec != null)
{
skuNameDic[speck.specName] = skuHead[Randomx.GetId(skuHead.Count)] +
speck.specName + skuEnd[Randomx.GetId(skuEnd.Count)];
skuNameDic[spec.specName] = skuHead[Randomx.GetId(skuHead.Count)] +
spec.specName + skuEnd[Randomx.GetId(skuEnd.Count)];
}
else
skuNameDic[speck.specName] = speck.specName;
skuNameDic[spec.specName] = spec.specName;
if (chkSkuRandomLetter.Checked)
{
//if (Randomx.GetId(2) == 1)
skuNameDic[speck.specName] = skuNameDic[speck.specName] + skuRandomLetterArr[Randomx.GetId(skuRandomLetterArr.Count)];
skuNameDic[spec.specName] = skuNameDic[spec.specName] + skuRandomLetterArr[Randomx.GetId(skuRandomLetterArr.Count)];
//else
skuNameDic[speck.specName] = skuRandomLetterArr[Randomx.GetId(skuRandomLetterArr.Count)] + skuNameDic[speck.specName];
skuNameDic[spec.specName] = skuRandomLetterArr[Randomx.GetId(skuRandomLetterArr.Count)] + skuNameDic[spec.specName];
}
}
#endregion
@@ -1572,9 +1573,14 @@ namespace TemuKJD.KJDForms.ProductThirdSelectForms
specName = skuSpecInfo.specName,
vid = prodParam.productSpecPropertyReqs.FirstOrDefault(p => p.specId == skuSpecInfo.specId)?.vid,
};
//前后缀映射
//if (skuSpecInfo.parentSpecName == "颜色" && skuNameDic[skuSpecItem.specName] != skuSpecItem.specName)
if (groupId == 1 && skuNameDic[skuSpecItem.specName] != skuSpecItem.specName)
skuParam.productSkuSpecReqs.Add(skuSpecItem);
}
{
//sku前后缀映射
var skuSpecItem = skuParam.productSkuSpecReqs.FirstOrDefault(s => s.parentSpecName == "颜色");
if (skuSpecItem == null)
skuSpecItem = skuParam.productSkuSpecReqs.FirstOrDefault();
if (skuSpecItem != null && skuNameDic[skuSpecItem.specName] != skuSpecItem.specName)
{
skuSpecItem.specName = skuNameDic[skuSpecItem.specName];
string draftId = prodParam.productDraftId.ParseToString();
@@ -1590,8 +1596,8 @@ namespace TemuKJD.KJDForms.ProductThirdSelectForms
}
Thread.Sleep(Randomx.GetId(100, 500));
}
skuParam.productSkuSpecReqs.Add(skuSpecItem);
}
skuParam.productSkuSuggestedPriceReq = JsonHelper.DeserializeJsonToObject<ProductSkuSuggestedPriceReq>(
JsonHelper.SerializeObject(skuInfo.productSkuSuggestedPrice));
// 建议售价不能为空
@@ -15,7 +15,7 @@ namespace TemuKJD.KJDForms.ProductThirdSelectForms
/// <summary>
/// 库存上传标题前后缀
/// </summary>
public partial class ProductThirdTitleForm : LRBaseForm
public partial class ProductThirdTitleForm : BaseGeneralForm
{
public ProductThirdTitleForm()
{
@@ -21,7 +21,7 @@ using TemuKJD.BLL;
namespace TemuKJD.KJDForms.SalesCenterForms
{
public partial class MarketingActivityForm : LRBaseForm
public partial class MarketingActivityForm : BaseGeneralForm
{
public static MarketingActivityForm ActInstance { get; set; } = null;
/// <summary>
@@ -19,7 +19,7 @@ using TemuKJD.BLL;
namespace TemuKJD.KJDForms.ShopForms
{
public partial class ReturnPackageDetailForm : LRBaseForm
public partial class ReturnPackageDetailForm : BaseGeneralForm
{
public CancellationTokenSource cancellationTokenSource { get; set; } = null;
ShopLoginInfo Shop = null;
@@ -13,7 +13,7 @@ using System.Windows.Forms;
namespace TemuKJD.KJDForms.ShopForms
{
public partial class ShopAddEditForm : LRBaseForm
public partial class ShopAddEditForm : BaseGeneralForm
{
public bool HasChange = false;
ShopLoginInfo shopLoginInfo = null;
+1 -1
View File
@@ -35,7 +35,7 @@ namespace TemuKJD.KJDForms.ShopForms
manage,
ads, // 广告登录
}
public partial class ShopLoginForm : LRBaseForm
public partial class ShopLoginForm : BaseGeneralForm
{
public static ShopLoginForm shopLoginInstance { get; set; } = null;
@@ -24,7 +24,7 @@ namespace TemuKJD.KJDForms.ShopForms
normal_user,
sa,
}
public partial class ShopUpdateCookieForm : LRBaseForm
public partial class ShopUpdateCookieForm : BaseGeneralForm
{
ShopLoginInfo shopLoginInfo = null;
SetCookieFromEnum updateFrom;
@@ -19,7 +19,7 @@ using TemuKJD.ToolForms;
namespace TemuKJD.KJDForms.ShopForms.Statistics
{
public partial class ShopOrderStatisticsDetailForm : LRBaseForm
public partial class ShopOrderStatisticsDetailForm : BaseGeneralForm
{
public static ShopOrderStatisticsDetailForm orderStatisticsDetailInstance = null;
@@ -15,7 +15,7 @@ using Work;
namespace TemuKJD.KJDForms.ShopForms.Statistics
{
public partial class ShopSetPurchasePriceForm : LRBaseForm
public partial class ShopSetPurchasePriceForm : BaseGeneralForm
{
public WarehouseProductSubOrderInfo orderInfo = new WarehouseProductSubOrderInfo();
ShopLoginInfo shop = null;
@@ -14,7 +14,7 @@ using Work;
namespace TemuKJD.KJDForms.ShopForms
{
public partial class SubAccountShopEditForm : LRBaseForm
public partial class SubAccountShopEditForm : BaseGeneralForm
{
ShopLoginInfo shop = null;
public List<ShopSubAccountInfo> AllSubAccountList { get; set; } = new List<ShopSubAccountInfo>();
@@ -15,7 +15,7 @@ using Work;
namespace TemuKJD.PDDForms.AdminForms
{
public partial class PDDAdminShopAddSubSaForm : LRBaseForm
public partial class PDDAdminShopAddSubSaForm : BaseGeneralForm
{
List<string> lstShopLoginName = new List<string>();
@@ -30,7 +30,7 @@ using TemuKJD.ToolForms;
namespace TemuKJD.PDDForms.AdminForms
{
public partial class PDDAdminShopLoginForm : LRBaseForm
public partial class PDDAdminShopLoginForm : BaseGeneralForm
{
public static PDDAdminShopLoginForm adminShopLoginInstance { get; set; } = null;
public int CloseAfterSecond { get; set; }
@@ -24,7 +24,7 @@ using Work;
namespace TemuKJD.PDDForms.ProductSelectForms
{
public partial class PDDDBProdEditDetailForm : LRBaseForm
public partial class PDDDBProdEditDetailForm : BaseGeneralForm
{
public KJDDBProduct DbProd { get; set; }
public KJDDBProduct DbProdDetail { get; set; }
@@ -19,7 +19,7 @@ using Work.BLL.Tools;
namespace TemuKJD.PDDForms.ProductSelectForms
{
public partial class PDDDBProdEditForm : LRBaseForm
public partial class PDDDBProdEditForm : BaseGeneralForm
{
KJDDBProduct dbProd = null;
@@ -22,7 +22,7 @@ using Work;
namespace TemuKJD.PDDForms.ProductSelectForms
{
public partial class PDDDBProdImgListForm : LRBaseForm
public partial class PDDDBProdImgListForm : BaseGeneralForm
{
public List<ProdSkuImg> lstProdSkuImg = new List<ProdSkuImg>();
public int SelectDbImgId { get; set; } = 0;
@@ -87,8 +87,6 @@ namespace TemuKJD.PDDForms.ProductSelectForms
this.label1 = new System.Windows.Forms.Label();
this.btnSelect = new DevComponents.DotNetBar.PanelEx();
this.dgvDbProduct = new TemuKJD.UserComponent.DataGridViewEx();
this.ucSplitPage1 = new TemuKJD.UserControls.UcSplitPage();
this.statusBar = new TemuKJD.UserControls.StatusBarUserControl();
this.colSelect = new System.Windows.Forms.DataGridViewCheckBoxColumn();
this.col_db_id = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colFromShopId = new System.Windows.Forms.DataGridViewTextBoxColumn();
@@ -119,6 +117,8 @@ namespace TemuKJD.PDDForms.ProductSelectForms
this.col_edit = new System.Windows.Forms.DataGridViewLinkColumn();
this.col_delete = new System.Windows.Forms.DataGridViewLinkColumn();
this.col_select_product = new System.Windows.Forms.DataGridViewLinkColumn();
this.ucSplitPage1 = new TemuKJD.UserControls.UcSplitPage();
this.statusBar = new TemuKJD.UserControls.StatusBarUserControl();
((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit();
this.splitContainer1.Panel1.SuspendLayout();
this.splitContainer1.Panel2.SuspendLayout();
@@ -849,7 +849,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms
this.btnSelect.Cursor = System.Windows.Forms.Cursors.Hand;
this.btnSelect.DisabledBackColor = System.Drawing.Color.Empty;
this.btnSelect.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnSelect.Location = new System.Drawing.Point(1117, 36);
this.btnSelect.Location = new System.Drawing.Point(1344, 33);
this.btnSelect.Name = "btnSelect";
this.btnSelect.Size = new System.Drawing.Size(84, 25);
this.btnSelect.Style.Alignment = System.Drawing.StringAlignment.Center;
@@ -927,31 +927,6 @@ namespace TemuKJD.PDDForms.ProductSelectForms
this.dgvDbProduct.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dgvDbProduct_CellContentClick);
this.dgvDbProduct.Scroll += new System.Windows.Forms.ScrollEventHandler(this.dgvDbProduct_Scroll);
//
// ucSplitPage1
//
this.ucSplitPage1.CurrentPage = 1;
this.ucSplitPage1.Dock = System.Windows.Forms.DockStyle.Right;
this.ucSplitPage1.IsShowPageSize = true;
this.ucSplitPage1.Location = new System.Drawing.Point(1024, 0);
this.ucSplitPage1.Margin = new System.Windows.Forms.Padding(0);
this.ucSplitPage1.Name = "ucSplitPage1";
this.ucSplitPage1.Padding = new System.Windows.Forms.Padding(0, 0, 1, 0);
this.ucSplitPage1.PageSize = 50;
this.ucSplitPage1.Size = new System.Drawing.Size(414, 25);
this.ucSplitPage1.TabIndex = 6;
this.ucSplitPage1.TotalPage = 1;
//
// statusBar
//
this.statusBar.BackColor = System.Drawing.Color.White;
this.statusBar.Dock = System.Windows.Forms.DockStyle.Fill;
this.statusBar.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.statusBar.Location = new System.Drawing.Point(0, 0);
this.statusBar.Margin = new System.Windows.Forms.Padding(0);
this.statusBar.Name = "statusBar";
this.statusBar.Size = new System.Drawing.Size(1438, 25);
this.statusBar.TabIndex = 5;
//
// colSelect
//
this.colSelect.FillWeight = 26F;
@@ -1184,6 +1159,31 @@ namespace TemuKJD.PDDForms.ProductSelectForms
this.col_select_product.Resizable = System.Windows.Forms.DataGridViewTriState.True;
this.col_select_product.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic;
//
// ucSplitPage1
//
this.ucSplitPage1.CurrentPage = 1;
this.ucSplitPage1.Dock = System.Windows.Forms.DockStyle.Right;
this.ucSplitPage1.IsShowPageSize = true;
this.ucSplitPage1.Location = new System.Drawing.Point(1024, 0);
this.ucSplitPage1.Margin = new System.Windows.Forms.Padding(0);
this.ucSplitPage1.Name = "ucSplitPage1";
this.ucSplitPage1.Padding = new System.Windows.Forms.Padding(0, 0, 1, 0);
this.ucSplitPage1.PageSize = 50;
this.ucSplitPage1.Size = new System.Drawing.Size(414, 25);
this.ucSplitPage1.TabIndex = 6;
this.ucSplitPage1.TotalPage = 1;
//
// statusBar
//
this.statusBar.BackColor = System.Drawing.Color.White;
this.statusBar.Dock = System.Windows.Forms.DockStyle.Fill;
this.statusBar.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.statusBar.Location = new System.Drawing.Point(0, 0);
this.statusBar.Margin = new System.Windows.Forms.Padding(0);
this.statusBar.Name = "statusBar";
this.statusBar.Size = new System.Drawing.Size(1438, 25);
this.statusBar.TabIndex = 5;
//
// PDDDBProdListForm
//
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
@@ -25,9 +25,9 @@ using Work;
namespace TemuKJD.PDDForms.ProductSelectForms
{
public partial class PDDDBProdListForm : LRBaseForm
public partial class PDDDBProdListForm : BaseGeneralForm
{
ShopLoginInfo shop = null;
ShopLoginInfo shop = null;
List<KJDDBProduct> lstTemuDbProduct = new List<KJDDBProduct>();
ConcurrentList<string> lstTitleReplaceText = new ConcurrentList<string>();
@@ -16,7 +16,7 @@ using TemuKJD.ToolForms;
namespace TemuKJD.PDDForms.ProductSelectForms
{
public partial class PDDDBProdUserSelectCacheForm : LRBaseForm
public partial class PDDDBProdUserSelectCacheForm : BaseGeneralForm
{
NaiBa.Util.ConcurrentList<TemuDBProductSelect> lstTemuDBProductSelect;
public PDDDBProdUserSelectCacheForm(NaiBa.Util.ConcurrentList<TemuDBProductSelect> _lstTemuDBProductSelect)
@@ -17,7 +17,7 @@ using TemuKJD.ToolForms;
namespace TemuKJD.PDDForms.ProductSelectForms
{
public partial class PDDDBProdUserSelectEditNotesForm : LRBaseForm
public partial class PDDDBProdUserSelectEditNotesForm : BaseGeneralForm
{
TemuDBProductSelect dbProdSelect = null;
SetProductSelectType selectNotesType;
@@ -19,7 +19,7 @@ using Work;
/// </summary>
namespace TemuKJD.PDDForms.ProductThirdSelectForms
{
public partial class PDDThirdProdSelectAddShopForm : LRBaseForm
public partial class PDDThirdProdSelectAddShopForm : BaseGeneralForm
{
public List<ShopLoginInfo> lstSelectShop = new List<ShopLoginInfo>();
List<ShopLoginInfo> lstShop = new List<ShopLoginInfo>();
@@ -13,7 +13,7 @@ using System.Windows.Forms;
namespace TemuKJD.PDDForms.ShopForms
{
public partial class PDDShopAddEditForm : LRBaseForm
public partial class PDDShopAddEditForm : BaseGeneralForm
{
ShopLoginInfo shopLoginInfo = null;
bool isAdd = true;
@@ -36,7 +36,7 @@ namespace TemuKJD.PDDForms.ShopForms
manage,
refresh_cookie,
}
public partial class PDDShopLoginForm : LRBaseForm
public partial class PDDShopLoginForm : BaseGeneralForm
{
public static PDDShopLoginForm shopLoginInstance { get; set; } = null;
public ProductSelectForms.PDDDBProdUserSelectForm prodUserSelectForm { get; set; } = null;
@@ -24,7 +24,7 @@ namespace TemuKJD.PDDForms.ShopForms
normal_user,
sa,
}
public partial class PDDShopUpdateCookieForm : LRBaseForm
public partial class PDDShopUpdateCookieForm : BaseGeneralForm
{
ShopLoginInfo shop = null;
SetCookieFromEnum updateFrom;
@@ -22,7 +22,7 @@ using Work;
namespace TemuKJD.PDDForms.ShopForms
{
public partial class PDDShopUpdateFddlCookieForm : LRBaseForm
public partial class PDDShopUpdateFddlCookieForm : BaseGeneralForm
{
ShopLoginInfo shop = null;
SetCookieFromEnum updateFrom;
@@ -14,7 +14,7 @@ using Work;
namespace TemuKJD.PDDForms.ShopForms
{
public partial class PDDSubAccountShopEditForm : LRBaseForm
public partial class PDDSubAccountShopEditForm : BaseGeneralForm
{
ShopLoginInfo shop = null;
public List<ShopSubAccountInfo> AllSubAccountList { get; set; } = new List<ShopSubAccountInfo>();
Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.9 KiB

After

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.7 KiB

After

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.7 KiB

+1 -1
View File
@@ -21,7 +21,7 @@ using NaiBa.CefHelper;
namespace TemuKJD
{
public partial class TaobaoLoginForm : LRBaseForm
public partial class TaobaoLoginForm : BaseGeneralForm
{
string Cef1Html = "";
+1 -1
View File
@@ -24,7 +24,7 @@ using Work.BLL.Tools;
namespace TemuKJD.ToolForms
{
public partial class DouBaoImgCefForm : LRBaseForm
public partial class DouBaoImgCefForm : BaseGeneralForm
{
ChromiumWebBrowser cefWebBrowser = null;
KJDDBProduct dbProd = null;
+1 -1
View File
@@ -16,7 +16,7 @@ using Work.BLL.Tools;
namespace TemuKJD.ToolForms
{
public partial class DouBaoImgListForm : LRBaseForm
public partial class DouBaoImgListForm : BaseGeneralForm
{
public List<AiSkuImgInfo> LstSkuImgInfo;
public DouBaoImgListForm(List<AiSkuImgInfo> lstSkuImgInfo)
+1 -1
View File
@@ -19,7 +19,7 @@ using TemuKJD.BaseForms;
namespace TemuKJD.ToolForms
{
public partial class CefForm : LRBaseForm
public partial class CefForm : BaseGeneralForm
{
ChromiumWebBrowser cefWebBrowser = null;
+1 -1
View File
@@ -14,7 +14,7 @@ using System.Windows.Forms;
namespace TemuKJD.KJDForms.ToolForms
{
public partial class ChangeIPForm : LRBaseForm
public partial class ChangeIPForm : BaseGeneralForm
{
public ChangeIPForm()
{
+1 -1
View File
@@ -11,7 +11,7 @@ using NaiBa.CefHelper;
namespace TemuKJD.KJDForms.ToolForms
{
public partial class IeForm : LRBaseForm
public partial class IeForm : BaseGeneralForm
{
public string Url { get; set; }
public ChromiumWebBrowser cefWebBrowser;
@@ -12,7 +12,7 @@ using System.Windows.Forms;
namespace TemuKJD.KJDForms.ToolForms.JDVerify
{
public partial class CollectVerifyForm : LRBaseForm
public partial class CollectVerifyForm : BaseGeneralForm
{
ChromiumWebBrowser cefWebBrowser1 = null;
public string url = "";
@@ -29,7 +29,7 @@ using Work.CollectClass;
namespace TemuKJD.KJDForms.ToolForms
{
public partial class PinDuoDuoCaptchaForm : LRBaseForm
public partial class PinDuoDuoCaptchaForm : BaseGeneralForm
{
public static string PersonUrl = BaseClass.NewUrl+"/personal.html";
public static string GoodsUrl = "http://yangkeduo.com/goods.html?goods_id=17252982258";
+1 -1
View File
@@ -15,7 +15,7 @@ using System.Windows.Forms;
namespace TemuKJD.KJDForms.ToolForms
{
public partial class PinDuoDuoLoginForm : LRBaseForm
public partial class PinDuoDuoLoginForm : BaseGeneralForm
{
private ChromiumWebBrowser cefWebBrowser = null;
public static string LoginUrl = "http://yangkeduo.com/login.html";
+1 -1
View File
@@ -18,7 +18,7 @@ using Work.Api;
namespace TemuKJD.KJDForms.ToolForms
{
public partial class ProxyForm : LRBaseForm
public partial class ProxyForm : BaseGeneralForm
{
public ProxyForm()
+1 -1
View File
@@ -13,7 +13,7 @@ using System.Windows.Forms;
namespace TemuKJD.KJDForms.ToolForms
{
public partial class TextForm : LRBaseForm
public partial class TextForm : BaseGeneralForm
{
public string Info { get; set; }
public delegate void OnSaveComplete(string msg);
+1 -1
View File
@@ -22,7 +22,7 @@ using Work.CollectClass;
namespace TemuKJD.KJDForms.ToolForms
{
public partial class TokenNewForm : LRBaseForm
public partial class TokenNewForm : BaseGeneralForm
{
public TokenNewForm()
{
+1 -1
View File
@@ -11,7 +11,7 @@ using TemuKJD.BaseForms;
namespace TemuKJD.ToolForms
{
public partial class ShowImgForm : LRBaseForm
public partial class ShowImgForm : BaseGeneralForm
{
string currentImgUrl = null;
Dictionary<string, string> imgDic = new Dictionary<string, string>();
+1 -1
View File
@@ -11,7 +11,7 @@ using TemuKJD.BaseForms;
namespace TemuKJD.UserForm
{
public partial class SupportQrCodeForm : LRBaseForm
public partial class SupportQrCodeForm : BaseGeneralForm
{
public SupportQrCodeForm()
{
@@ -15,7 +15,7 @@ using Work;
namespace TemuKJD.WXForms.AdminForms
{
public partial class WXAdminShopAddSubSaForm : LRBaseForm
public partial class WXAdminShopAddSubSaForm : BaseGeneralForm
{
List<string> lstShopLoginName = new List<string>();
@@ -36,7 +36,7 @@ namespace TemuKJD.WXForms.AdminForms
manage,
refresh_cookie,
}
public partial class WXAdminShopLoginForm : LRBaseForm
public partial class WXAdminShopLoginForm : BaseGeneralForm
{
public static WXAdminShopLoginForm shopLoginInstance { get; set; } = null;
@@ -16,7 +16,7 @@ using TemuKJD.ToolForms;
namespace TemuKJD.WXForms.ProductForms
{
public partial class WXDBProdUploadCacheForm : LRBaseForm
public partial class WXDBProdUploadCacheForm : BaseGeneralForm
{
NaiBa.Util.ConcurrentList<TemuDBProductSelect> lstTemuDBProductSelect;
public WXDBProdUploadCacheForm(NaiBa.Util.ConcurrentList<TemuDBProductSelect> _lstTemuDBProductSelect)
+19 -59
View File
@@ -40,7 +40,6 @@ namespace TemuKJD.WXForms.ProductForms
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.chkUpDraft = new TemuKJD.UserComponent.UcCheckBox(this.components);
this.并发上传 = new DevComponents.DotNetBar.PanelEx();
this.chkSkipUploaded = new TemuKJD.UserComponent.UcCheckBox(this.components);
this.chkSameSpecPrice = new TemuKJD.UserComponent.UcCheckBox(this.components);
@@ -72,6 +71,7 @@ namespace TemuKJD.WXForms.ProductForms
this.label4 = new System.Windows.Forms.Label();
this.label9 = new System.Windows.Forms.Label();
this.chkStepAddPrice = new TemuKJD.UserComponent.UcCheckBox(this.components);
this.chkUpDraft = new TemuKJD.UserComponent.UcCheckBox(this.components);
this.ucGroupBoxEx4 = new TemuKJD.UserComponent.UcGroupBoxEx(this.components);
this.cmbWxSafe = new System.Windows.Forms.ComboBox();
this.label13 = new System.Windows.Forms.Label();
@@ -107,8 +107,6 @@ namespace TemuKJD.WXForms.ProductForms
this.colUploadCount = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colRemaining = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colMessage = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.txtTest20981 = new System.Windows.Forms.TextBox();
this.btnTest20981 = new DevComponents.DotNetBar.PanelEx();
this.pbLoading = new System.Windows.Forms.PictureBox();
this.label11 = new System.Windows.Forms.Label();
this.txtSinglePriceAdd = new System.Windows.Forms.TextBox();
@@ -194,7 +192,6 @@ namespace TemuKJD.WXForms.ProductForms
| System.Windows.Forms.AnchorStyles.Right)));
this.ucGroupBoxEx2.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.ucGroupBoxEx2.BorderStyle = TemuKJD.UserComponent.UcGroupBoxEx.GroupBoxBorderStyle.ROUND;
this.ucGroupBoxEx2.Controls.Add(this.并发上传);
this.ucGroupBoxEx2.Controls.Add(this.chkSkipUploaded);
this.ucGroupBoxEx2.Controls.Add(this.chkSameSpecPrice);
this.ucGroupBoxEx2.Controls.Add(this.label5);
@@ -221,7 +218,6 @@ namespace TemuKJD.WXForms.ProductForms
this.ucGroupBoxEx2.Controls.Add(this.label4);
this.ucGroupBoxEx2.Controls.Add(this.label9);
this.ucGroupBoxEx2.Controls.Add(this.chkStepAddPrice);
this.ucGroupBoxEx2.Controls.Add(this.chkUpDraft);
this.ucGroupBoxEx2.Location = new System.Drawing.Point(459, 2);
this.ucGroupBoxEx2.Name = "ucGroupBoxEx2";
this.ucGroupBoxEx2.Size = new System.Drawing.Size(1062, 140);
@@ -229,17 +225,6 @@ namespace TemuKJD.WXForms.ProductForms
this.ucGroupBoxEx2.TabStop = false;
this.ucGroupBoxEx2.Text = "商品上传";
//
// chkUpDraft
//
this.chkUpDraft.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.chkUpDraft.AutoSize = true;
this.chkUpDraft.Location = new System.Drawing.Point(770, 105);
this.chkUpDraft.Name = "chkUpDraft";
this.chkUpDraft.Size = new System.Drawing.Size(99, 21);
this.chkUpDraft.TabIndex = 769;
this.chkUpDraft.Text = "上传到草稿箱";
this.chkUpDraft.UseVisualStyleBackColor = true;
//
// 并发上传
//
this.并发上传.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
@@ -247,9 +232,9 @@ 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(865, 104);
this.并发上传.Location = new System.Drawing.Point(1093, 30);
this.并发上传.Name = "并发上传";
this.并发上传.Size = new System.Drawing.Size(84, 23);
this.并发上传.Size = new System.Drawing.Size(118, 23);
this.并发上传.Style.Alignment = System.Drawing.StringAlignment.Center;
this.并发上传.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.并发上传.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
@@ -262,7 +247,8 @@ namespace TemuKJD.WXForms.ProductForms
this.并发上传.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255)))));
this.并发上传.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255)))));
this.并发上传.TabIndex = 768;
this.并发上传.Text = "并发上传";
this.并发上传.Text = "测试并发上传";
this.并发上传.Visible = false;
this.并发上传.Click += new System.EventHandler(this.并发上传_Click);
//
// chkSkipUploaded
@@ -690,6 +676,18 @@ namespace TemuKJD.WXForms.ProductForms
this.chkStepAddPrice.UseVisualStyleBackColor = true;
this.chkStepAddPrice.CheckedChanged += new System.EventHandler(this.chkStepAddPrice_CheckedChanged);
//
// chkUpDraft
//
this.chkUpDraft.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.chkUpDraft.AutoSize = true;
this.chkUpDraft.Location = new System.Drawing.Point(999, 31);
this.chkUpDraft.Name = "chkUpDraft";
this.chkUpDraft.Size = new System.Drawing.Size(99, 21);
this.chkUpDraft.TabIndex = 769;
this.chkUpDraft.Text = "上传到草稿箱";
this.chkUpDraft.UseVisualStyleBackColor = true;
this.chkUpDraft.Visible = false;
//
// ucGroupBoxEx4
//
this.ucGroupBoxEx4.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
@@ -1020,11 +1018,11 @@ namespace TemuKJD.WXForms.ProductForms
//
// splitContainer2.Panel2
//
this.splitContainer2.Panel2.Controls.Add(this.txtTest20981);
this.splitContainer2.Panel2.Controls.Add(this.btnTest20981);
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.chkUpDraft);
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, 372);
@@ -1160,42 +1158,6 @@ namespace TemuKJD.WXForms.ProductForms
this.colMessage.Name = "colMessage";
this.colMessage.ReadOnly = true;
//
// txtTest20981
//
this.txtTest20981.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.txtTest20981.Location = new System.Drawing.Point(996, 30);
this.txtTest20981.Margin = new System.Windows.Forms.Padding(0, 2, 0, 2);
this.txtTest20981.Name = "txtTest20981";
this.txtTest20981.Size = new System.Drawing.Size(127, 23);
this.txtTest20981.TabIndex = 650;
this.txtTest20981.Visible = false;
//
// btnTest20981
//
this.btnTest20981.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.btnTest20981.CanvasColor = System.Drawing.SystemColors.Control;
this.btnTest20981.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
this.btnTest20981.DisabledBackColor = System.Drawing.Color.Empty;
this.btnTest20981.Location = new System.Drawing.Point(1127, 30);
this.btnTest20981.Margin = new System.Windows.Forms.Padding(4, 2, 2, 2);
this.btnTest20981.Name = "btnTest20981";
this.btnTest20981.Size = new System.Drawing.Size(84, 23);
this.btnTest20981.Style.Alignment = System.Drawing.StringAlignment.Center;
this.btnTest20981.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255)))));
this.btnTest20981.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255)))));
this.btnTest20981.Style.Border = DevComponents.DotNetBar.eBorderType.SingleLine;
this.btnTest20981.Style.BorderColor.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.btnTest20981.Style.ForeColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText;
this.btnTest20981.Style.GradientAngle = 90;
this.btnTest20981.StyleMouseDown.Alignment = System.Drawing.StringAlignment.Center;
this.btnTest20981.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center;
this.btnTest20981.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.btnTest20981.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.btnTest20981.StyleMouseOver.ForeColor.Color = System.Drawing.Color.White;
this.btnTest20981.TabIndex = 649;
this.btnTest20981.Text = "测试20981";
this.btnTest20981.Visible = false;
//
// pbLoading
//
this.pbLoading.Anchor = System.Windows.Forms.AnchorStyles.None;
@@ -1649,8 +1611,6 @@ namespace TemuKJD.WXForms.ProductForms
private System.Windows.Forms.ComboBox cmbCateFilter;
private System.Windows.Forms.Label label2;
public System.Windows.Forms.Label lblWaitToUp;
private System.Windows.Forms.TextBox txtTest20981;
private DevComponents.DotNetBar.PanelEx btnTest20981;
private System.Windows.Forms.DataGridViewCheckBoxColumn colCheck;
private System.Windows.Forms.DataGridViewTextBoxColumn colSelectId;
private System.Windows.Forms.DataGridViewTextBoxColumn colSupplierId;
@@ -138,6 +138,45 @@ namespace TemuKJD.WXForms.ProductForms
// dgvSelectProduct.Columns["colSkuFakeImg"].Visible = true;
//#endif
upload_draft_product_lst = NaiBa.Util.Helper.ConfigHelper.LoadConfig<NaiBa.Util.ConcurrentList<TemuDBProductSelect>>("wx_select_upload_draft_products");
if (upload_draft_product_lst == null)
upload_draft_product_lst = new ConcurrentList<TemuDBProductSelect>();
foreach (var selectProd in upload_draft_product_lst)
{
int rowIndex = 0;
this.dgvSelectProduct.Rows.Insert(rowIndex,
true,
selectProd.id,
selectProd.shop_id,
selectProd.shop_account,
"登录",
"进店",
selectProd.spu_id,
selectProd.skc_id,
selectProd.main_img,
null,
"",
null,
selectProd.product_name, // 用户端显示商品原名
selectProd.cat_name,
selectProd.ext_code,
selectProd.status,
selectProd.draft_id,
selectProd.notes,
(selectProd.user_notes + " 编辑").Trim(),
"删除",
selectProd.add_time.ToString("yy-MM-dd HH:mm:ss"),
"");
dgvSelectProduct.Rows[rowIndex].Height = 60;
int maxRowCount = 10000;
while (dgvSelectProduct.Rows.Count > maxRowCount)
{
dgvSelectProduct.Rows.RemoveAt(maxRowCount);
}
}
IsLoadComplate = true;
}
@@ -743,7 +782,7 @@ namespace TemuKJD.WXForms.ProductForms
{
row.Cells["colDraftId"].Value = productDraftId; // 草稿箱id
row.Cells["colAddTime"].Value = DateTime.Now.ToString("yy-MM-dd HH:mm:ss");
row.Cells["colOpResult"].Value = (selectProd.status == "已上传" ? "已成功上传" : "已上传 发生错误:") + (" " + error).TrimEnd(' ') + " " + duration.ParseToInt() + "秒";
row.Cells["colOpResult"].Value = (selectProd.status == "已上传" ? "已成功上传" : "已上传 注意:") + (" " + error).TrimEnd(' ') + " " + duration.ParseToInt() + "秒";
row.Cells["colMsg"].Value = selectProd.status;
}
}));
@@ -1681,9 +1720,17 @@ namespace TemuKJD.WXForms.ProductForms
}
upProdParam.product.productKey.productId = BaseRegex.GetLongJson(ref uploadDraftRst, "productId").ParseToString();
upload_draft_products.Add(upProdParam);
if (chkUpDraft.Checked)
return "{\"success\":true,\"draftId\":" + upProdParam.product.productKey.productId + ",\"status\":\"草稿箱\",\"errMsg\":\"上架到草稿箱\"}";
{
selectProd.wxDraftProduct = upProdParam;
selectProd.draft_id = upProdParam.product.productKey.productId;
selectProd.status = "草稿箱";
selectProd.add_time = DateTime.Now;
upload_draft_product_lst.Add(selectProd);
NaiBa.Util.Helper.ConfigHelper.SaveConfig("wx_select_upload_draft_products", upload_draft_product_lst);
return "{\"success\":true,\"draftId\":" + upProdParam.product.productKey.productId + ",\"status\":\"草稿箱\",\"errMsg\":\"指定上传到草稿箱\"}";
}
// 提交商品上架
var uploadProdRst = WXUpload.upProductV2(shop, upProdParam);
@@ -2004,8 +2051,14 @@ namespace TemuKJD.WXForms.ProductForms
foreach (var row in rows)
{
if (row.Cells["colCheck"].Value.ParseToBool() == true)
{
var draft_id = row.Cells["colDraftId"].Value.ParseToString();
upload_draft_product_lst.RemoveAll(p => p.draft_id == draft_id);
this.dgvSelectProduct.Rows.Remove(row);
}
}
NaiBa.Util.Helper.ConfigHelper.SaveConfig("wx_select_upload_draft_products", upload_draft_product_lst);
}
private void chkAddMorePriceFirst_CheckedChanged(object sender, EventArgs e)
@@ -2048,15 +2101,10 @@ namespace TemuKJD.WXForms.ProductForms
private void 并发上传_Click(object sender, EventArgs e)
{
var draftIdLst = dgvSelectProduct.Rows.Cast<DataGridViewRow>().Where(row
=> row.Cells["colCheck"]?.Value.ParseToBool() == true).Select(r => r.Cells["colDraftId"]?.Value.ToString()).ToList();
// var lst = NaiBa.Util.Helper.ConfigHelper.LoadConfig<NaiBa.Util.ConcurrentList<WXUploadProductParam>>("wx_upload_draft_products");
// if (lst == null)
// lst = new ConcurrentList<WXUploadProductParam>();
var lst = upload_draft_products;
var lst = upload_draft_product_lst.Select(p => p.wxDraftProduct).ToList();
var upLst = lst.Where(l => draftIdLst.Contains(l.product.productKey.productId)).ToList();
DateTime startTime = DateTime.Now;
@@ -2078,12 +2126,14 @@ namespace TemuKJD.WXForms.ProductForms
tLst.Add(t);
}
Task.WaitAll(tLst.ToArray());
NaiBa.Util.Helper.ConfigHelper.SaveConfig("wx_select_upload_draft_products", upload_draft_product_lst);
var duration = DateTime.Now - startTime;
Invoke(new Action(() => { BaseMsgForm.ShowInfo("并发上传完成,耗时:" + duration.TotalSeconds + " 秒"); }));
});
}
public ConcurrentList<WXUploadProductParam> upload_draft_products = new ConcurrentList<WXUploadProductParam>();
//public ConcurrentList<WXUploadProductParam> upload_draft_products = new ConcurrentList<WXUploadProductParam>();
public ConcurrentList<TemuDBProductSelect> upload_draft_product_lst = new ConcurrentList<TemuDBProductSelect>();
void UploadSameTime(ShopLoginInfo shop, WXUploadProductParam upProdParam, DataGridViewCell cell)
{
@@ -2095,6 +2145,8 @@ namespace TemuKJD.WXForms.ProductForms
uploadProdRst = WXUpload.upProductV2(shop, upProdParam);
if (retryTimes >= 5)
break;
if (uploadProdRst.Contains("今日提审次数已用尽,请明日再试"))
break;
}
if (!uploadProdRst.Contains("\"code\":0") && !uploadProdRst.Contains("\"success\":true"))
{
@@ -2114,7 +2166,7 @@ namespace TemuKJD.WXForms.ProductForms
{
if (cell != null)
{
upload_draft_products.Remove(upProdParam);
upload_draft_product_lst.RemoveAll(p => p.wxDraftProduct == upProdParam);
Invoke(new Action(() =>
{
cell.Value = "商品已上传,重试次数 " + retryTimes;
@@ -13,7 +13,7 @@ using System.Windows.Forms;
namespace TemuKJD.WXForms.ShopForms
{
public partial class WXShopAddEditForm : LRBaseForm
public partial class WXShopAddEditForm : BaseGeneralForm
{
ShopLoginInfo shopLoginInfo = null;
bool isAdd = true;
+1 -1
View File
@@ -36,7 +36,7 @@ namespace TemuKJD.WXForms.ShopForms
manage,
refresh_cookie,
}
public partial class WXShopLoginForm : LRBaseForm
public partial class WXShopLoginForm : BaseGeneralForm
{
public static WXShopLoginForm shopLoginInstance { get; set; } = null;
@@ -24,7 +24,7 @@ namespace TemuKJD.WXForms.ShopForms
normal_user,
sa,
}
public partial class WXShopUpdateCookieForm : LRBaseForm
public partial class WXShopUpdateCookieForm : BaseGeneralForm
{
ShopLoginInfo shopLoginInfo = null;
SetCookieFromEnum updateFrom;
@@ -14,7 +14,7 @@ using Work;
namespace TemuKJD.WXForms.ShopForms
{
public partial class WXSubAccountShopEditForm : LRBaseForm
public partial class WXSubAccountShopEditForm : BaseGeneralForm
{
ShopLoginInfo shop = null;
public List<ShopSubAccountInfo> AllSubAccountList { get; set; } = new List<ShopSubAccountInfo>();
@@ -0,0 +1,27 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using TemuKJD.WXForms.TalkForms.TalkModel;
namespace TemuKJD.WXForms.TalkForms.TalkHelper
{
public class ChatConfig
{
public static ChatSettingsParam ChatSettingConfig { get; set; }
public static void LoadChatSetting()
{
ChatConfig.ChatSettingConfig = NaiBa.Util.Helper.ConfigHelper.LoadConfig<ChatSettingsParam>("chat_setting");
if (ChatConfig.ChatSettingConfig == null)
ChatConfig.ChatSettingConfig = new ChatSettingsParam();
}
public static void SaveChatSettingParam()
{
NaiBa.Util.Helper.ConfigHelper.SaveConfig("chat_setting", ChatConfig.ChatSettingConfig);
}
}
}
@@ -0,0 +1,17 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace TemuKJD.WXForms.TalkForms.TalkModel
{
public class ChatSettingsParam
{
public bool IsAutoReLogin { get; set; } = false;
public bool IsAutoReply { get; set; } = false;
public bool IsNotShowMessageWindow { get; set; } = false;
public string MessageSound { get; set; } = "默认提示音";
public string AutoReplayText { get; set; } = "您好";
}
}
+620
View File
@@ -0,0 +1,620 @@

namespace TemuKJD.WXForms.TalkForms
{
partial class WxTalkForm
{
/// <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.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle2 = new System.Windows.Forms.DataGridViewCellStyle();
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(WxTalkForm));
this.panel3 = new System.Windows.Forms.Panel();
this.splitContainer1 = new System.Windows.Forms.SplitContainer();
this.splitContainer2 = new System.Windows.Forms.SplitContainer();
this.chkNotShowMessageWindow = new System.Windows.Forms.CheckBox();
this.cmbMessage = new System.Windows.Forms.ComboBox();
this.label1 = new System.Windows.Forms.Label();
this.pnlSet = new DevComponents.DotNetBar.PanelEx();
this.line4 = new DevComponents.DotNetBar.Controls.Line();
this.chkIsAutoReLogin = new System.Windows.Forms.CheckBox();
this.txtAutoReplyText = new System.Windows.Forms.TextBox();
this.chkIsAutoReply = new System.Windows.Forms.CheckBox();
this.splitContainer4 = new System.Windows.Forms.SplitContainer();
this.dgvShop = new TemuKJD.UserComponent.DataGridViewEx();
this.colSelect = new TemuKJD.UserComponent.UcDataGridViewCheckBoxColumn(this.components);
this.colShopLoginName = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colShopId = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colShopName = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colShopNotes = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colLoginStatus = new System.Windows.Forms.DataGridViewLinkColumn();
this.colCanUse = new System.Windows.Forms.DataGridViewCheckBoxColumn();
this.colMessage = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.pnlRefresh = new DevComponents.DotNetBar.PanelEx();
this.ucTabControl1 = new TemuKJD.UserComponent.UcTabControl();
this.tabPage1 = new System.Windows.Forms.TabPage();
this.pnlTalk = new System.Windows.Forms.Panel();
this.tabPage2 = new System.Windows.Forms.TabPage();
this.mainPanel = new System.Windows.Forms.Panel();
this.ColumnShopStatus = new System.Windows.Forms.DataGridViewLinkColumn();
this.ColumnShopID = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.ColumnShopName = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.dataGridViewTextBoxColumn1 = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.dataGridViewTextBoxColumn2 = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.dataGridViewLinkColumn1 = new System.Windows.Forms.DataGridViewLinkColumn();
this.dataGridViewTextBoxColumn3 = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.dataGridViewTextBoxColumn4 = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.dataGridViewLinkColumn2 = new System.Windows.Forms.DataGridViewLinkColumn();
((System.ComponentModel.ISupportInitialize)(this.pbLogo)).BeginInit();
this.panel3.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit();
this.splitContainer1.Panel1.SuspendLayout();
this.splitContainer1.Panel2.SuspendLayout();
this.splitContainer1.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.splitContainer2)).BeginInit();
this.splitContainer2.Panel1.SuspendLayout();
this.splitContainer2.Panel2.SuspendLayout();
this.splitContainer2.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.splitContainer4)).BeginInit();
this.splitContainer4.Panel1.SuspendLayout();
this.splitContainer4.Panel2.SuspendLayout();
this.splitContainer4.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.dgvShop)).BeginInit();
this.ucTabControl1.SuspendLayout();
this.tabPage1.SuspendLayout();
this.tabPage2.SuspendLayout();
this.SuspendLayout();
//
// pbLogo
//
this.pbLogo.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
//
// 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(1791, 33);
//
// panel3
//
this.panel3.BackColor = System.Drawing.Color.White;
this.panel3.Controls.Add(this.splitContainer1);
this.panel3.Dock = System.Windows.Forms.DockStyle.Fill;
this.panel3.Location = new System.Drawing.Point(1, 81);
this.panel3.Name = "panel3";
this.panel3.Size = new System.Drawing.Size(1498, 618);
this.panel3.TabIndex = 1;
//
// splitContainer1
//
this.splitContainer1.BackColor = System.Drawing.Color.White;
this.splitContainer1.Dock = System.Windows.Forms.DockStyle.Fill;
this.splitContainer1.FixedPanel = System.Windows.Forms.FixedPanel.Panel1;
this.splitContainer1.Location = new System.Drawing.Point(0, 0);
this.splitContainer1.Name = "splitContainer1";
//
// splitContainer1.Panel1
//
this.splitContainer1.Panel1.Controls.Add(this.splitContainer2);
//
// splitContainer1.Panel2
//
this.splitContainer1.Panel2.Controls.Add(this.ucTabControl1);
this.splitContainer1.Size = new System.Drawing.Size(1498, 618);
this.splitContainer1.SplitterDistance = 270;
this.splitContainer1.SplitterWidth = 1;
this.splitContainer1.TabIndex = 1;
//
// splitContainer2
//
this.splitContainer2.Dock = System.Windows.Forms.DockStyle.Fill;
this.splitContainer2.FixedPanel = System.Windows.Forms.FixedPanel.Panel1;
this.splitContainer2.Location = new System.Drawing.Point(0, 0);
this.splitContainer2.Name = "splitContainer2";
this.splitContainer2.Orientation = System.Windows.Forms.Orientation.Horizontal;
//
// splitContainer2.Panel1
//
this.splitContainer2.Panel1.Controls.Add(this.chkNotShowMessageWindow);
this.splitContainer2.Panel1.Controls.Add(this.cmbMessage);
this.splitContainer2.Panel1.Controls.Add(this.label1);
this.splitContainer2.Panel1.Controls.Add(this.pnlSet);
this.splitContainer2.Panel1.Controls.Add(this.line4);
this.splitContainer2.Panel1.Controls.Add(this.chkIsAutoReLogin);
this.splitContainer2.Panel1.Controls.Add(this.txtAutoReplyText);
this.splitContainer2.Panel1.Controls.Add(this.chkIsAutoReply);
//
// splitContainer2.Panel2
//
this.splitContainer2.Panel2.Controls.Add(this.splitContainer4);
this.splitContainer2.Panel2.Padding = new System.Windows.Forms.Padding(4, 0, 0, 4);
this.splitContainer2.Size = new System.Drawing.Size(270, 618);
this.splitContainer2.SplitterDistance = 25;
this.splitContainer2.TabIndex = 0;
//
// chkNotShowMessageWindow
//
this.chkNotShowMessageWindow.AutoSize = true;
this.chkNotShowMessageWindow.Location = new System.Drawing.Point(4, 33);
this.chkNotShowMessageWindow.Name = "chkNotShowMessageWindow";
this.chkNotShowMessageWindow.Size = new System.Drawing.Size(123, 21);
this.chkNotShowMessageWindow.TabIndex = 201;
this.chkNotShowMessageWindow.Text = "新消息不弹框提示";
this.chkNotShowMessageWindow.UseVisualStyleBackColor = true;
//
// cmbMessage
//
this.cmbMessage.BackColor = System.Drawing.Color.White;
this.cmbMessage.Font = new System.Drawing.Font("新宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.cmbMessage.FormattingEnabled = true;
this.cmbMessage.ItemHeight = 12;
this.cmbMessage.Items.AddRange(new object[] {
"默认提示音",
"1号电脑",
"2号电脑",
"3号电脑",
"4号电脑",
"5号电脑",
"6号电脑",
"7号电脑",
"8号电脑",
"9号电脑",
"10号电脑",
"11号电脑",
"12号电脑",
"13号电脑",
"14号电脑",
"15号电脑",
"16号电脑",
"17号电脑",
"18号电脑",
"19号电脑",
"20号电脑",
"无"});
this.cmbMessage.Location = new System.Drawing.Point(71, 4);
this.cmbMessage.Name = "cmbMessage";
this.cmbMessage.Size = new System.Drawing.Size(199, 20);
this.cmbMessage.TabIndex = 193;
//
// label1
//
this.label1.AutoSize = true;
this.label1.Location = new System.Drawing.Point(7, 6);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(68, 17);
this.label1.TabIndex = 197;
this.label1.Text = "消息提示:";
//
// pnlSet
//
this.pnlSet.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.pnlSet.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
this.pnlSet.Cursor = System.Windows.Forms.Cursors.Hand;
this.pnlSet.DisabledBackColor = System.Drawing.Color.Empty;
this.pnlSet.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.pnlSet.Location = new System.Drawing.Point(230, 56);
this.pnlSet.Name = "pnlSet";
this.pnlSet.Size = new System.Drawing.Size(40, 20);
this.pnlSet.Style.Alignment = System.Drawing.StringAlignment.Center;
this.pnlSet.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.pnlSet.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.pnlSet.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder;
this.pnlSet.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash;
this.pnlSet.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None;
this.pnlSet.Style.ForeColor.Color = System.Drawing.Color.White;
this.pnlSet.Style.GradientAngle = 90;
this.pnlSet.TabIndex = 184;
this.pnlSet.Text = "设 置";
this.pnlSet.Visible = false;
//
// line4
//
this.line4.ForeColor = System.Drawing.Color.Silver;
this.line4.Location = new System.Drawing.Point(4, 24);
this.line4.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
this.line4.Name = "line4";
this.line4.Size = new System.Drawing.Size(266, 8);
this.line4.TabIndex = 180;
this.line4.Text = "line4";
//
// chkIsAutoReLogin
//
this.chkIsAutoReLogin.AutoSize = true;
this.chkIsAutoReLogin.Location = new System.Drawing.Point(133, 33);
this.chkIsAutoReLogin.Name = "chkIsAutoReLogin";
this.chkIsAutoReLogin.Size = new System.Drawing.Size(99, 21);
this.chkIsAutoReLogin.TabIndex = 2;
this.chkIsAutoReLogin.Text = "掉线自动重登";
this.chkIsAutoReLogin.UseVisualStyleBackColor = true;
//
// txtAutoReplyText
//
this.txtAutoReplyText.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Right)));
this.txtAutoReplyText.Location = new System.Drawing.Point(4, 78);
this.txtAutoReplyText.Multiline = true;
this.txtAutoReplyText.Name = "txtAutoReplyText";
this.txtAutoReplyText.Size = new System.Drawing.Size(266, 0);
this.txtAutoReplyText.TabIndex = 1;
//
// chkIsAutoReply
//
this.chkIsAutoReply.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.chkIsAutoReply.AutoSize = true;
this.chkIsAutoReply.Location = new System.Drawing.Point(4, 56);
this.chkIsAutoReply.Name = "chkIsAutoReply";
this.chkIsAutoReply.Size = new System.Drawing.Size(87, 21);
this.chkIsAutoReply.TabIndex = 0;
this.chkIsAutoReply.Text = "自动回复:";
this.chkIsAutoReply.UseVisualStyleBackColor = true;
//
// splitContainer4
//
this.splitContainer4.Dock = System.Windows.Forms.DockStyle.Fill;
this.splitContainer4.FixedPanel = System.Windows.Forms.FixedPanel.Panel2;
this.splitContainer4.Location = new System.Drawing.Point(4, 0);
this.splitContainer4.Name = "splitContainer4";
this.splitContainer4.Orientation = System.Windows.Forms.Orientation.Horizontal;
//
// splitContainer4.Panel1
//
this.splitContainer4.Panel1.Controls.Add(this.dgvShop);
//
// splitContainer4.Panel2
//
this.splitContainer4.Panel2.Controls.Add(this.pnlRefresh);
this.splitContainer4.Size = new System.Drawing.Size(266, 585);
this.splitContainer4.SplitterDistance = 555;
this.splitContainer4.TabIndex = 7;
//
// dgvShop
//
this.dgvShop.AllowUserToAddRows = false;
this.dgvShop.AllowUserToDeleteRows = false;
dataGridViewCellStyle1.BackColor = System.Drawing.Color.WhiteSmoke;
this.dgvShop.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle1;
this.dgvShop.AutoRowNumber = true;
this.dgvShop.BackgroundColor = System.Drawing.Color.White;
this.dgvShop.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
dataGridViewCellStyle2.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
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,
this.colShopLoginName,
this.colShopId,
this.colShopName,
this.colShopNotes,
this.colLoginStatus,
this.colCanUse,
this.colMessage});
this.dgvShop.Dock = System.Windows.Forms.DockStyle.Fill;
this.dgvShop.Location = new System.Drawing.Point(0, 0);
this.dgvShop.Name = "dgvShop";
this.dgvShop.ReadOnly = true;
this.dgvShop.RowHeadersWidth = 25;
this.dgvShop.RowTemplate.Height = 23;
this.dgvShop.Size = new System.Drawing.Size(266, 555);
this.dgvShop.TabIndex = 7;
//
// colSelect
//
this.colSelect.HeaderText = "全选";
this.colSelect.Name = "colSelect";
this.colSelect.ReadOnly = true;
this.colSelect.Resizable = System.Windows.Forms.DataGridViewTriState.True;
this.colSelect.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic;
this.colSelect.Width = 28;
//
// colShopLoginName
//
this.colShopLoginName.HeaderText = "店铺登录名";
this.colShopLoginName.Name = "colShopLoginName";
this.colShopLoginName.ReadOnly = true;
this.colShopLoginName.Visible = false;
//
// colShopId
//
this.colShopId.HeaderText = "店铺Id";
this.colShopId.Name = "colShopId";
this.colShopId.ReadOnly = true;
this.colShopId.Visible = false;
this.colShopId.Width = 55;
//
// colShopName
//
this.colShopName.FillWeight = 150F;
this.colShopName.HeaderText = "店铺名称";
this.colShopName.Name = "colShopName";
this.colShopName.ReadOnly = true;
this.colShopName.Resizable = System.Windows.Forms.DataGridViewTriState.True;
this.colShopName.Width = 70;
//
// colShopNotes
//
this.colShopNotes.HeaderText = "分组";
this.colShopNotes.Name = "colShopNotes";
this.colShopNotes.ReadOnly = true;
this.colShopNotes.Width = 70;
//
// 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;
//
// colMessage
//
this.colMessage.HeaderText = "消息";
this.colMessage.Name = "colMessage";
this.colMessage.ReadOnly = true;
this.colMessage.Width = 120;
//
// pnlRefresh
//
this.pnlRefresh.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
this.pnlRefresh.Cursor = System.Windows.Forms.Cursors.Hand;
this.pnlRefresh.DisabledBackColor = System.Drawing.Color.Empty;
this.pnlRefresh.Dock = System.Windows.Forms.DockStyle.Fill;
this.pnlRefresh.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.pnlRefresh.Location = new System.Drawing.Point(0, 0);
this.pnlRefresh.Name = "pnlRefresh";
this.pnlRefresh.Size = new System.Drawing.Size(266, 26);
this.pnlRefresh.Style.Alignment = System.Drawing.StringAlignment.Center;
this.pnlRefresh.Style.BackColor1.Color = System.Drawing.Color.White;
this.pnlRefresh.Style.BackColor2.Color = System.Drawing.Color.White;
this.pnlRefresh.Style.Border = DevComponents.DotNetBar.eBorderType.SingleLine;
this.pnlRefresh.Style.BorderColor.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.pnlRefresh.Style.ForeColor.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.pnlRefresh.Style.GradientAngle = 90;
this.pnlRefresh.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center;
this.pnlRefresh.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.pnlRefresh.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.pnlRefresh.StyleMouseOver.ForeColor.Color = System.Drawing.Color.White;
this.pnlRefresh.TabIndex = 188;
this.pnlRefresh.Text = "刷 新 店 铺";
//
// ucTabControl1
//
this.ucTabControl1.BackgroundColor = System.Drawing.Color.FromArgb(((int)(((byte)(251)))), ((int)(((byte)(251)))), ((int)(((byte)(251)))));
this.ucTabControl1.Controls.Add(this.tabPage1);
this.ucTabControl1.Controls.Add(this.tabPage2);
this.ucTabControl1.Dock = System.Windows.Forms.DockStyle.Fill;
this.ucTabControl1.ItemSize = new System.Drawing.Size(73, 26);
this.ucTabControl1.Location = new System.Drawing.Point(0, 0);
this.ucTabControl1.Name = "ucTabControl1";
this.ucTabControl1.SelectedIndex = 0;
this.ucTabControl1.ShowCloseButton = false;
this.ucTabControl1.Size = new System.Drawing.Size(1227, 618);
this.ucTabControl1.TabIndex = 0;
this.ucTabControl1.TabSelectColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.ucTabControl1.TabTextColor = System.Drawing.Color.Gray;
//
// tabPage1
//
this.tabPage1.Controls.Add(this.pnlTalk);
this.tabPage1.Location = new System.Drawing.Point(2, 30);
this.tabPage1.Name = "tabPage1";
this.tabPage1.Padding = new System.Windows.Forms.Padding(3);
this.tabPage1.Size = new System.Drawing.Size(1221, 584);
this.tabPage1.TabIndex = 0;
this.tabPage1.Text = "客服窗口";
this.tabPage1.UseVisualStyleBackColor = true;
//
// pnlTalk
//
this.pnlTalk.Dock = System.Windows.Forms.DockStyle.Fill;
this.pnlTalk.Location = new System.Drawing.Point(3, 3);
this.pnlTalk.Name = "pnlTalk";
this.pnlTalk.Size = new System.Drawing.Size(1215, 578);
this.pnlTalk.TabIndex = 1;
//
// tabPage2
//
this.tabPage2.Controls.Add(this.mainPanel);
this.tabPage2.Location = new System.Drawing.Point(2, 30);
this.tabPage2.Name = "tabPage2";
this.tabPage2.Padding = new System.Windows.Forms.Padding(3);
this.tabPage2.Size = new System.Drawing.Size(1221, 584);
this.tabPage2.TabIndex = 1;
this.tabPage2.Text = "店铺后台";
this.tabPage2.UseVisualStyleBackColor = true;
//
// mainPanel
//
this.mainPanel.Dock = System.Windows.Forms.DockStyle.Fill;
this.mainPanel.Location = new System.Drawing.Point(3, 3);
this.mainPanel.Name = "mainPanel";
this.mainPanel.Size = new System.Drawing.Size(1215, 578);
this.mainPanel.TabIndex = 1;
//
// ColumnShopStatus
//
this.ColumnShopStatus.HeaderText = "登录状态";
this.ColumnShopStatus.Name = "ColumnShopStatus";
this.ColumnShopStatus.ReadOnly = true;
this.ColumnShopStatus.Resizable = System.Windows.Forms.DataGridViewTriState.True;
this.ColumnShopStatus.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic;
this.ColumnShopStatus.Width = 106;
//
// ColumnShopID
//
this.ColumnShopID.HeaderText = "店铺账号";
this.ColumnShopID.Name = "ColumnShopID";
this.ColumnShopID.ReadOnly = true;
this.ColumnShopID.Resizable = System.Windows.Forms.DataGridViewTriState.True;
this.ColumnShopID.Width = 62;
//
// ColumnShopName
//
this.ColumnShopName.HeaderText = "店铺名称";
this.ColumnShopName.Name = "ColumnShopName";
this.ColumnShopName.ReadOnly = true;
this.ColumnShopName.Width = 62;
//
// dataGridViewTextBoxColumn1
//
this.dataGridViewTextBoxColumn1.HeaderText = "店铺账号";
this.dataGridViewTextBoxColumn1.Name = "dataGridViewTextBoxColumn1";
this.dataGridViewTextBoxColumn1.ReadOnly = true;
this.dataGridViewTextBoxColumn1.Resizable = System.Windows.Forms.DataGridViewTriState.True;
this.dataGridViewTextBoxColumn1.Width = 62;
//
// dataGridViewTextBoxColumn2
//
this.dataGridViewTextBoxColumn2.HeaderText = "店铺名称";
this.dataGridViewTextBoxColumn2.Name = "dataGridViewTextBoxColumn2";
this.dataGridViewTextBoxColumn2.ReadOnly = true;
this.dataGridViewTextBoxColumn2.Width = 62;
//
// dataGridViewLinkColumn1
//
this.dataGridViewLinkColumn1.HeaderText = "登录状态";
this.dataGridViewLinkColumn1.Name = "dataGridViewLinkColumn1";
this.dataGridViewLinkColumn1.ReadOnly = true;
this.dataGridViewLinkColumn1.Resizable = System.Windows.Forms.DataGridViewTriState.True;
this.dataGridViewLinkColumn1.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic;
this.dataGridViewLinkColumn1.Width = 106;
//
// dataGridViewTextBoxColumn3
//
this.dataGridViewTextBoxColumn3.HeaderText = "店铺账号";
this.dataGridViewTextBoxColumn3.Name = "dataGridViewTextBoxColumn3";
this.dataGridViewTextBoxColumn3.ReadOnly = true;
this.dataGridViewTextBoxColumn3.Resizable = System.Windows.Forms.DataGridViewTriState.True;
this.dataGridViewTextBoxColumn3.Width = 62;
//
// dataGridViewTextBoxColumn4
//
this.dataGridViewTextBoxColumn4.HeaderText = "店铺名称";
this.dataGridViewTextBoxColumn4.Name = "dataGridViewTextBoxColumn4";
this.dataGridViewTextBoxColumn4.ReadOnly = true;
this.dataGridViewTextBoxColumn4.Width = 62;
//
// dataGridViewLinkColumn2
//
this.dataGridViewLinkColumn2.HeaderText = "登录状态";
this.dataGridViewLinkColumn2.Name = "dataGridViewLinkColumn2";
this.dataGridViewLinkColumn2.ReadOnly = true;
this.dataGridViewLinkColumn2.Resizable = System.Windows.Forms.DataGridViewTriState.True;
this.dataGridViewLinkColumn2.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic;
this.dataGridViewLinkColumn2.Width = 106;
//
// WxTalkForm
//
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
this.ClientSize = new System.Drawing.Size(1500, 700);
this.Controls.Add(this.panel3);
this.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.Name = "WxTalkForm";
this.Text = "微信客服";
this.TitleText = "微信客服";
this.FormClosed += new System.Windows.Forms.FormClosedEventHandler(this.WxTalkForm_FormClosed);
this.Load += new System.EventHandler(this.WxTalkForm_Load);
this.Controls.SetChildIndex(this.panel3, 0);
((System.ComponentModel.ISupportInitialize)(this.pbLogo)).EndInit();
this.panel3.ResumeLayout(false);
this.splitContainer1.Panel1.ResumeLayout(false);
this.splitContainer1.Panel2.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).EndInit();
this.splitContainer1.ResumeLayout(false);
this.splitContainer2.Panel1.ResumeLayout(false);
this.splitContainer2.Panel1.PerformLayout();
this.splitContainer2.Panel2.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.splitContainer2)).EndInit();
this.splitContainer2.ResumeLayout(false);
this.splitContainer4.Panel1.ResumeLayout(false);
this.splitContainer4.Panel2.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.splitContainer4)).EndInit();
this.splitContainer4.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.dgvShop)).EndInit();
this.ucTabControl1.ResumeLayout(false);
this.tabPage1.ResumeLayout(false);
this.tabPage2.ResumeLayout(false);
this.ResumeLayout(false);
}
#endregion
private System.Windows.Forms.Panel panel3;
private System.Windows.Forms.SplitContainer splitContainer1;
private System.Windows.Forms.SplitContainer splitContainer2;
private System.Windows.Forms.CheckBox chkNotShowMessageWindow;
private System.Windows.Forms.ComboBox cmbMessage;
private System.Windows.Forms.Label label1;
private DevComponents.DotNetBar.PanelEx pnlSet;
private DevComponents.DotNetBar.Controls.Line line4;
private System.Windows.Forms.CheckBox chkIsAutoReLogin;
private System.Windows.Forms.TextBox txtAutoReplyText;
private System.Windows.Forms.CheckBox chkIsAutoReply;
private System.Windows.Forms.SplitContainer splitContainer4;
private DevComponents.DotNetBar.PanelEx pnlRefresh;
private System.Windows.Forms.DataGridViewTextBoxColumn ColumnShopID;
private System.Windows.Forms.DataGridViewTextBoxColumn ColumnShopName;
private System.Windows.Forms.DataGridViewLinkColumn ColumnShopStatus;
private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn1;
private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn2;
private System.Windows.Forms.DataGridViewLinkColumn dataGridViewLinkColumn1;
private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn3;
private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn4;
private System.Windows.Forms.DataGridViewLinkColumn dataGridViewLinkColumn2;
private UserComponent.DataGridViewEx dgvShop;
private UserComponent.UcDataGridViewCheckBoxColumn colSelect;
private System.Windows.Forms.DataGridViewTextBoxColumn colShopLoginName;
private System.Windows.Forms.DataGridViewTextBoxColumn colShopId;
private System.Windows.Forms.DataGridViewTextBoxColumn colShopName;
private System.Windows.Forms.DataGridViewTextBoxColumn colShopNotes;
private System.Windows.Forms.DataGridViewLinkColumn colLoginStatus;
private System.Windows.Forms.DataGridViewCheckBoxColumn colCanUse;
private System.Windows.Forms.DataGridViewTextBoxColumn colMessage;
private UserComponent.UcTabControl ucTabControl1;
private System.Windows.Forms.TabPage tabPage1;
private System.Windows.Forms.Panel pnlTalk;
private System.Windows.Forms.TabPage tabPage2;
private System.Windows.Forms.Panel mainPanel;
}
}
+585
View File
@@ -0,0 +1,585 @@
using AllBase;
using AllBase.Helper;
using AllBase.Model.Result;
using CefSharp;
using CefSharp.WinForms;
using NaiBa.CefHelper;
using NaiBa.CefHelper.Handler;
using NaiBa.Util.Extension;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Drawing;
using System.Linq;
using System.Media;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;
using TemuKJD.BaseForms;
using TemuKJD.Helper;
using TemuKJD.ToolForms;
using TemuKJD.WXForms.TalkForms.TalkHelper;
namespace TemuKJD.WXForms.TalkForms
{
public partial class WxTalkForm : BaseTalkForm
{
public Dictionary<string, int> ShopChatCount = new Dictionary<string, int>();
public delegate void SearchResultReceivedHandler(ShopLoginInfo shop);
/// <summary>
/// 查询结果事件通知
/// </summary>
public event SearchResultReceivedHandler SearchResultReceived;
public delegate void InfomationReceivedHandler(string infomation);
/// <summary>
/// 消息事件通知,比如:异常等通知
/// </summary>
/// <param name="infomation"></param>
public event InfomationReceivedHandler InfomationReceived;
public static ShopLoginInfo currentShop = null;
ChromiumWebBrowser mainWebBrowser = null;
/// <summary>
/// 弹出框列表
/// </summary>
//public static List<ChatMessageForm> lstChatMessageForm = new List<ChatMessageForm>();
public static Dictionary<DataGridViewRow, Color> dicRowColor = new Dictionary<DataGridViewRow, Color>();
public int LocationXY = 0;
public int LocationSize = 200;
public WxTalkForm()
{
InitializeComponent();
}
private void WxTalkForm_FormClosed(object sender, FormClosedEventArgs e)
{
Process.GetCurrentProcess().Kill();
}
private void WxTalkForm_Load(object sender, EventArgs e)
{
if (BaseClass.LogoImage != null)
pbLogo.Image = BaseClass.LogoImage;
if (BaseClass.Ico != null)
this.Icon = BaseClass.Ico;
else
this.Icon = BaseClass.Ico = ImageBuild.ConvertToIcon(Properties.Resources.icon);
//SetTitle();
//this.chkIsAutoReLogin.CheckedChanged -= chkIsAutoReLogin_CheckedChanged;
//this.chkIsAutoReply.CheckedChanged -= chkIsAutoReply_CheckedChanged;
//this.txtAutoReplyText.TextChanged -= txtAutoReplyText_TextChanged;
//this.cmbMessage.SelectedIndexChanged -= cmbMessage_SelectedIndexChanged;
if (this.cmbMessage.Items.Contains(ChatConfig.ChatSettingConfig.MessageSound))
this.cmbMessage.SelectedItem = ChatConfig.ChatSettingConfig.MessageSound;
else
this.cmbMessage.SelectedIndex = 0;
this.chkIsAutoReply.Checked = ChatConfig.ChatSettingConfig.IsAutoReply;
this.txtAutoReplyText.Text = ChatConfig.ChatSettingConfig.AutoReplayText;
this.chkIsAutoReLogin.CheckedChanged += chkIsAutoReLogin_CheckedChanged;
this.chkIsAutoReply.CheckedChanged += chkIsAutoReply_CheckedChanged;
this.txtAutoReplyText.TextChanged += txtAutoReplyText_TextChanged;
this.cmbMessage.SelectedIndexChanged += cmbMessage_SelectedIndexChanged;
SearchResultReceived += Chat_SearchResultReceived;
InfomationReceived += Collect_InfomationReceived;
if (mainWebBrowser == null)
{
mainWebBrowser = CEFBrowser.CreateChromiumWebBrowser("about:blank", false);
mainWebBrowser.KeyboardHandler = new KeyboardHandler();
mainWebBrowser.Dock = DockStyle.Fill;
var lifeSpanHandler = new LifeSpanHandlerLocal(PopWindowType.NewTitleWindow);
lifeSpanHandler.parent = mainWebBrowser;
lifeSpanHandler.OnPop += MainLifeHandler_OnPop;
mainWebBrowser.LifeSpanHandler = lifeSpanHandler;
//mainWebBrowser.AddressChanged += mainWebBrowser_UrlChanged;
mainWebBrowser.FrameLoadEnd += cefWebBrowser1_FrameLoadEnd;
mainPanel.Controls.Add(mainWebBrowser);
}
Task.Run(() =>
{
// 直到店铺加载完后再加载客服内容
while (!StartUp.IsShopInit)
Thread.Sleep(100);
SetMainBrowserUrl(GlobalConfig.ShopLoginList.FirstOrDefault());
LoadShop();
InitAutoExecute();
});
}
private void cefWebBrowser1_FrameLoadEnd(object sender, CefSharp.FrameLoadEndEventArgs e)
{
//ChromiumWebBrowser cefWebBrowser1 = (ChromiumWebBrowser)sender;
//string url = cefWebBrowser1.Address;
//if (url.Contains("/mallcenter/info/basic") && cefWebBrowser3.IsBrowserInitialized)
//{
// Thread.Sleep(5000);
// var shop = GetShopLoginInfo.Shops.Find(s => s != null && s.ShopName == ShopName);
// string code = "document.getElementsByClassName('new-part')[1].innerHTML=\"<div>" + shop.Name + "<i class='mui-icon mui-icon-question-circle content_tip-icon__2u2h2'></i><span class='create-new-mall-tips'><span>?</span><p class='create-new-mall-entry'><!-- react-text: 498 -->当前状态不支持修改店铺名,您可<!-- /react-text --><a href='/mallcenter/info/createNewMall'>一键开新店铺</a></p></span></div>\"";
// cefWebBrowser3.GetBrowser().MainFrame.ExecuteJavaScriptAsync(code);
//}
}
[DllImport("winmm.dll")]
public static extern uint mciSendString(string lpstrCommand, string lpstrReturnString, uint uReturnLength, uint hWndCallback);
/// <summary>
/// 播放提示音
/// </summary>
public void playSound()
{
string musicname = "默认提示音";
if (!string.IsNullOrEmpty(ChatConfig.ChatSettingConfig.MessageSound))
musicname = ChatConfig.ChatSettingConfig.MessageSound;
if (musicname == "无")
return;
if (musicname == "默认提示音")
musicname = "9527.wav";
else
musicname = musicname + ".mp3";
if (musicname.Contains("wav"))
{
try
{
SoundPlayer sound = new SoundPlayer("temp/" + musicname);
sound.Play();
}
catch
{
}
}
if (musicname.Contains("mp3"))
{
try
{
mciSendString(@"close ""temp/" + musicname + @"""", null, 0, 0);
mciSendString(@"open ""temp/" + musicname + @"""", null, 0, 0);
mciSendString(@"play ""temp/" + musicname + @"""", null, 0, 0);
}
catch
{ }
}
}
public void ShowChat(ShopLoginInfo shop)
{
while (shop.Chat?.IsBrowserInitialized != true)
{
Thread.Sleep(50);
}
// 设置cef cookie
if (shop.Chat != null && shop.Chat.IsBrowserInitialized)
{
var cookieManager = shop.Chat.GetCookieManager(null);
cookieManager.DeleteCookies("qq.com", null);
CEFBrowser.SetCookieAsync("jinritemai.com", shop.Cookies, shop.Chat.GetCookieManager(null));
if (shop.LoginStatus == "登录成功")
shop.Chat.Load("https://store.weixin.qq.com/shop/kf");
}
}
public void LoadShop(List<ShopLoginInfo> shopList = null)
{
if (shopList == null)
shopList = new List<ShopLoginInfo>();
if (shopList.Count == 0)
shopList.AddRange(GlobalConfig.ShopLoginList);
for (int i = 0; i < shopList.Count; i++)
{
var shop = shopList[i];
ShopLoginInfo result = new ShopLoginInfo();
result.ShopId = shop.ShopId;
result.ShopAccount = shop.ShopAccount;
result.LoginStatus = shop.LoginStatus;
var r = dgvShop.Rows.Cast<DataGridViewRow>().FirstOrDefault(x => x.Cells["columnShopId"].Value.ToString() == shop.ShopId);
this.Invoke(new Action(() =>
{
int iGrid = 0;
if (r == null)
iGrid = dgvShop.Rows.Add();
else
iGrid = r.Index;
dgvShop.Rows[iGrid].Cells["ColumnShopID"].Value = shop.ShopId; // 店铺ID
dgvShop.Rows[iGrid].Cells["ColumnShopName"].Value = shop.ShopAccount; // 店铺名称
dgvShop.Rows[iGrid].Cells["ColumnShopStatus"].Value = shop.LoginStatus == "未登录" ? "未登录 点击登录" : shop.LoginStatus; // 登录状态
dicRowColor[dgvShop.Rows[iGrid]] = dgvShop.Rows[iGrid].DefaultCellStyle.BackColor;
if (shop.Chat == null)
{
LocationXY += 5;
shop.X = LocationXY % LocationSize;
shop.Y = LocationXY / LocationSize;
RequestContextSettings requestContextSettings = new RequestContextSettings();
requestContextSettings.PersistSessionCookies = false;
//requestContextSettings.PersistUserPreferences = false;
try
{
var cefWebBrowser = CEFBrowser.CreateChromiumWebBrowser("about:blank", false);
//new ChromiumWebBrowser("https://store.weixin.qq.com/shop/kf);
CustomResourceRequestHandler resourceRequestHandler = new CustomResourceRequestHandler();
resourceRequestHandler.ResourceLoadCompleteEvent += RequestHandler_ResourceLoadComplete;
cefWebBrowser.RequestHandler = new CustomRequestHandler(resourceRequestHandler);
cefWebBrowser.KeyboardHandler = new KeyboardHandler();
var lifeHandler = new LifeSpanHandlerLocal(PopWindowType.NewTitleWindow);
lifeHandler.OnPop += LifeHandler_OnPop;
lifeHandler.parent = cefWebBrowser;
cefWebBrowser.LifeSpanHandler = lifeHandler;
cefWebBrowser.RequestContext = new RequestContext(requestContextSettings);
cefWebBrowser.Dock = DockStyle.Fill; //DockStyle.None;
cefWebBrowser.Location = new Point(shop.X, shop.Y);
shop.Chat = cefWebBrowser;
pnlTalk.Controls.Add(shop.Chat);
if (i == 0)
currentShop = shop;
Task.Run(() =>
{
ShowChat(shop);
});
}
catch (Exception ex)
{
return;
}
}
}));
}
}
private void RequestHandler_ResourceLoadComplete(object sender, string url, string postData, string responseData)
{
if (responseData.Contains("你好"))
{
Task.Run(() =>
{
});
}
}
private void MainLifeHandler_OnPop(object sender, PopData e)
{
var targetUrl = e.Url;
var lifeHandler = sender as LifeSpanHandlerLocal;
Task.Run(() =>
{
if (lifeHandler.parent != null)
{
var cookies = CEFBrowser.GetCookieList("", lifeHandler.parent.GetCookieManager(null));
Invoke(new Action(() =>
{
CefForm cefForm = new CefForm(targetUrl, cookies);
cefForm.Show();
}));
}
});
}
private void LifeHandler_OnPop(object sender, PopData e)
{
var targetUrl = e.Url;
var lifeHandler = sender as LifeSpanHandlerLocal;
Task.Run(() =>
{
//if (e.Url.StartsWith("https://haohuo.jinritemai.com/views/product/item"))
//{
// var productId = BaseRegex.GetMatchRegexString(ref targetUrl, "&id=(\\d{5,30})");
// if (!string.IsNullOrEmpty(productId))
// {
// long product_id = productId.ParseToLong();
// if (product_id > 0)
// {
// string urlx = BaseClass.LoginApiUrl + "?obj=upshopid/upid_dd&act=get";
// string datax = "&pid=" + product_id + "&table=" + (product_id % 1024);
// string htmlx = GetHtml.PostUtf8(urlx, UserLogin.GetSignaturex("", "") + datax);
// string id = BaseRegex.GetMatchRegexString(htmlx, @"([\d]+)");
// if (htmlx.StartsWith("tb"))
// targetUrl = "https://item.taobao.com/item.htm?id=" + id;
// if (htmlx.StartsWith("pd"))
// targetUrl = "https://mobile.yangkeduo.com/goods.html?goods_id=" + id;
// if (htmlx.StartsWith("al"))
// targetUrl = "https://detail.1688.com/offer/" + id + ".html";
// if (htmlx.StartsWith("dy"))
// targetUrl = "https://weidian.com/item.html?itemID=" + id;
// }
// }
//}
//if (lifeHandler.parent != null)
//{
// var cookies = CEFBrowser.GetCookieList("", lifeHandler.parent.GetCookieManager(null));
// Invoke(new Action(() =>
// {
// CefForm cefForm = new CefForm(targetUrl, cookies);
// cefForm.Show();
// }));
//}
});
}
/// <summary>
/// 更新店铺后台首页
/// </summary>
/// <param name="shop"></param>
private void SetMainBrowserUrl(ShopLoginInfo shop)
{
if (shop == null)
return;
var cookieLst = JsonHelper.DeserializeJsonToList<CefSharp.Cookie>(shop.Cookies.ParseToString());
if (cookieLst == null)
cookieLst = new List<Cookie>();
var cookieManager = mainWebBrowser.GetCookieManager(null);
cookieManager.DeleteCookiesAsync("qq.com", null).Wait();
foreach (var cook in cookieLst)
{
var t = CEFBrowser.SetCookieAsync(cook.Domain, cook.Name + "=" + cook.Value + ";", cookieManager);
t.Wait(5000);
}
mainWebBrowser.Load("https://store.weixin.qq.com/shop/home");
}
/// <summary>
/// 自动回复等
/// </summary>
public void InitAutoExecute()
{
//Task.Run(() =>
//{
// while (true)
// {
// foreach (var shop in GlobalConfig.DouShopLoginList)
// {
// try
// {
// Thread.Sleep(new Random(DateTime.Now.Millisecond).Next(300, 500));
// bool needReLogin = AutoCheckShopLoginStatus(shop);
// if (ChatConfig.ChatSettingConfig.IsAutoReLogin && needReLogin)
// AutoReLogin(shop);
// if (shop.LoginStatus != "登录成功")
// continue;
// Thread.Sleep(new Random(DateTime.Now.Millisecond).Next(300, 500));
// AutoReConnect(shop);
// Thread.Sleep(new Random(DateTime.Now.Millisecond).Next(300, 500));
// AutoCloseMaskWindow(shop);
// Thread.Sleep(new Random(DateTime.Now.Millisecond).Next(300, 500));
// var isNewMessage = AutoGetNewMessage(shop);
// while (isNewMessage && ChatConfig.ChatSettingConfig.IsAutoReply)
// {
// AutoReplyWithJs(shop);
// Thread.Sleep(new Random(DateTime.Now.Millisecond).Next(300, 500));
// isNewMessage = AutoGetNewMessage(shop);
// }
// }
// catch (Exception ex)
// {
// }
// }
// }
//});
//Task.Run(() =>
//{
// var sleepTime = 1000;
// while (true)
// {
// Thread.Sleep(sleepTime);
// var jsStr = "function getVideo() {\r\n" +
// " var videos = document.getElementsByTagName('video')\r\n" +
// " if (videos && videos.length > 0) {\r\n" +
// " var src = videos[0].src;\r\n" +
// " videos[0].parentElement.parentElement.click();\r\n" +
// " return src;\r\n" +
// " //return '';\r\n" +
// " }\r\n" +
// " return '';\r\n" +
// "}" +
// "getVideo();\r\n";
// if (currentShop?.Chat != null && currentShop.Chat.IsBrowserInitialized)
// {
// var t = currentShop.Chat.GetMainFrame().EvaluateScriptAsync(jsStr);
// t.Wait();
// if (!string.IsNullOrEmpty(t.Result?.Result?.ToString()))
// {
// Invoke(new Action(() =>
// {
// AllBase.GetHtml.OpenUrl(t.Result.Result.ToString());
// }));
// }
// }
// }
//});
//Task.Run(() =>
//{
// var sleepTime = 2500;
// while (true)
// {
// try
// {
// Thread.Sleep(sleepTime);
// var jsStr1 = "function ClosePopWindow() {\r\n" +
// " var result = 'no_pop'\r\n" +
// " var item = document.getElementsByClassName('anticon-close-circle');\r\n" +
// " for(i = 0; i < item.length; i++) {\r\n" +
// " item[i].click();\r\n" +
// " result = 'success'\r\n" +
// " }\r\n" +
// " return result;\r\n" +
// "}\r\n" +
// "ClosePopWindow();\r\n";
// var jsStr2 = "function clickPopWindow() {\r\n"
// + "var child = document.body.firstElementChild;\r\n"
// + "var element1 = null;\r\n"
// + " while (child) {\r\n"
// + " if (child.innerHTML.indexOf('知道了') >= 0) {\r\n"
// + " element1 = child;\r\n"
// + " if (child.firstElementChild) {\r\n"
// + " child = child.firstElementChild; continue;\r\n"
// + " } else break;\r\n"
// + " }\r\n"
// + " child = child.nextElementSibling;\r\n"
// + " }\r\n"
// + " if (element1) {\r\n"
// + " element1.click(); return 'success';\r\n"
// + " } else return 'no_pop';\r\n"
// + "}\r\n"
// + "clickPopWindow();\r\n";
// if (mainWebBrowser.IsBrowserInitialized)
// {
// var t1 = mainWebBrowser.GetMainFrame().EvaluateScriptAsync(jsStr1);
// t1.Wait();
// var t2 = mainWebBrowser.GetMainFrame().EvaluateScriptAsync(jsStr2);
// t2.Wait();
// if (t1.Result?.Result?.ToString() == "success" || t2.Result?.Result?.ToString() == "success")
// sleepTime = Randomx.GetId(550, 650);
// else
// sleepTime = Randomx.GetId(2500, 3000);
// }
// }
// catch (Exception ex) { }
// }
//});
}
private void chkIsAutoReLogin_CheckedChanged(object sender, EventArgs e)
{
ChatConfig.ChatSettingConfig.IsAutoReLogin = chkIsAutoReLogin.Checked;
ChatConfig.SaveChatSettingParam();
//GlobalConfig.DouShopSettingParam.IsAutoDragLogin = chkIsAutoReLogin.Checked;
}
private void chkIsAutoReply_CheckedChanged(object sender, EventArgs e)
{
ChatConfig.ChatSettingConfig.IsAutoReply = chkIsAutoReply.Checked;
ChatConfig.SaveChatSettingParam();
}
private void txtAutoReplyText_TextChanged(object sender, EventArgs e)
{
ChatConfig.ChatSettingConfig.AutoReplayText = txtAutoReplyText.Text;
ChatConfig.SaveChatSettingParam();
}
private void cmbMessage_SelectedIndexChanged(object sender, EventArgs e)
{
ChatConfig.ChatSettingConfig.MessageSound = this.cmbMessage.SelectedItem.ToString();
ChatConfig.SaveChatSettingParam();
}
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];
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)
{
//try
//{
// this.Invoke(new Action(() =>
// {
// lblMsg.Text = infomation;
// var data = infomation.Split(new string[] { ":" }, StringSplitOptions.RemoveEmptyEntries);
// if (data.Length == 2)
// {
// if (data[1] == FastCarCollect.FASTCAR_QUOTA_FINISH)
// {
// var shop = gridShop.Rows.Cast<DataGridViewRow>().FirstOrDefault(x => x.Cells["columnShopName"].Value.ToString() == data[0]);
// if (shop != null)
// {
// shop.Cells["columnMsg"].Value = data[1];
// }
// }
// }
// if (infomation == "修改出价结束")
// this.btnStart.Enabled = true;
// if (infomation == "暂停推广结束")
// this.btnStop.Enabled = true;
// }));
//}
//catch { }
}
}
}
+337
View File
@@ -0,0 +1,337 @@
<?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="colSelect.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colShopLoginName.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colShopId.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colShopNotes.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colLoginStatus.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colCanUse.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colMessage.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="ColumnShopStatus.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="ColumnShopName.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="dataGridViewTextBoxColumn2.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="dataGridViewLinkColumn1.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="dataGridViewTextBoxColumn4.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="dataGridViewLinkColumn2.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</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>
AAABAAEAgIAQAAAAAABoKAAAFgAAACgAAACAAAAAAAEAAAEABAAAAAAAACgAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAACAAACAAAAAgIAAgAAAAIAAgACAgAAAgICAAMDAwAAAAP8AAP8AAAD//wD/AAAA/wD/AP//
AAD///8AAAAAAAAAAAAAAAAzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMQ
AAAAAAAAAAAAAAAAAAAAAAAAABM5mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZkzEAAAAAAAAAAAAAAAAAAAAAADOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZMwAAAAAAAAAAAAAAAAAAABOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZkzAAAAAAAAAAAAAAAAAAOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmTEAAAAAAAAAAAAAAAOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZMAAAAAAAAAAAAAA5mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZMAAAAAAAAAAAADmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZMAAAAAAAAAAAOZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZMAAAAAAAAAA5mZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZMAAAAAAAADmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZMAAAAAAAGZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZMAAAAAAJmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZAAAAAA
OZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmT
AAAAAZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmRAAAAOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZkwAAAZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZkwAAOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZMAAJmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZEAOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmTADmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZkwCZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZkRmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZM5mZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmTOZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZkzmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZM5mZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmTOZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZkzmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZM5mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmTOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZkzmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZM5mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmTOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZkzmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZM5mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmTOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZOZmZOZmZmZmZmZmZmZmZmZmZmZmZmZkzmZmZmZmZmZmZmZmP+JmZmZmZmZj///////
///4OZmZj/eZmZmZmZmZmPg5OZmZmZuI//iIuZmZmZmZmZmZmZM5mZmZmZmZmZmZmb//+JmZmZmZmP//
//////////OZmP//uZmZmZmZmY//+ZmZOZf///////h5k5mZmZmZmZmTOZmZmZmZmZmZmZmP//iZmZmZ
mZ/////////////4mZ///4mZmZmZmZP///uZmZmP////////+JmZmZmZmZmZkzmZmZmZmZmZmZmZj//4
mZmZmZmf////////////+Jmf//+JmZmZmZmb///4mZmY//////////+JmZmZmZmZmZM5mZmZmZmZmZmZ
mY//+JmZmZmZn/////////////mZmP//iZmZmZmZk///+5mZj/////iP////+JmZmZmZmZmTOZmZmZmZ
mZmZmZmP//iZmZmZmZ////iIiIiIiIiZOZj//4mZmZmZmZP///uZmf////eZmT////+ZmZmZmZmZkzmZ
mZmZmZmZmZmZj//4mZmZmZmf//+JmZmZmZmZk5mY//+JmZmZmZmT///7mZj///+ZmZmZj///uZmZmZmZ
mZM5mZmZmZmZmZmZmY//+JmZmZmZn///iZmZmZmZmZmZmP//iZmZN5k5k///+5mY///zk5mZOT///4mZ
mZmZmZmTOZmZmZmZmZmZmZmP//iZmZmZmZ///4mZmZmZmZmZmZj//4mZmP/5k5P///uZmP//+ZmZmZmY
//+JmZmZmZmZkzmZmZmZmZmZmZmZj//4mZmZmZmf///4iIiIiIg5mZmY//+JOb//+JmT///7mZj//4mZ
mZmZmP//+ZmZmZmZmZM5mZmZmZmZmZmZmY//+JmZmZmZn///////////85mZmP//iZn///+Jk///+5mf
//+JmZmZmZj///mZmZmZmZmTOZmZmZmZmZmZmZmP//iZmZmZmZ////////////+ZmZj//4mY////85v/
//uZmP//iZmZmZmY///5mZmZmZmZkzmZmZmZmZmZmZmZj//4mZmZmZmf////////////mZmY//+Jv///
//+Z///7mZj//4mZmZmZmP//+ZmZmZmZmZM5mZmZmZmZmZmZmY//+JmZmZmZn///////////+JmZmP//
if//////if//+5mY//+JmZmZmZj///mZmZmZmZmTOZmZmZmZmZmZmZmP//iZmZmZmZ///////////4mZ
mZj//4j///////j///uZmP//iZmZmZmY///5mZmZmZmZkzmZmZmZmZmZmZmZj//4mZmZmZmf//+JMzMz
MzOZOZmY//////+D///////7mZj//4mZmZmZmP//+ZmZmZmZmZM5mZmZmZmZmZmZmY//+JmZmZmZn///
iZmZmZmZmZmZmP//////mY//////+5mY//+JmZmZmZj///mZmZmZmZmTOZmZmZmZmZmZmZmP//iZmZmZ
mZ///4mZmZmZmZmZmZj/////+5mf//////uZmP//iZmZmZmY///5mZmZmZmZkzmZmZmZmZmZMzM5j//4
kzMzmZmf//+JMzMzMzM5mZmY/////4mTk//////7mZj//4mZmZmZmP//+ZmZmZmZmZM5mZmZmZmZmP//
/////////4mZn////////////4mZmP////+ZmZmP////+5mY//+JmZmZmZj///mZmZmZmZmTOZmZmZmZ
mY/////////////4mZ/////////////7mZj////7mZmZn/////uZmP//iZmZmZmY///5mZmZmZmZkzmZ
mZmZmZn//////////////5mf////////////+Jmf////iZmZk5P////4mZ///4mZmZmZmP//+ZmZmZmZ
mZM5mZmZmZmZj/////////////iZn/////////////iZmP///5mZmZmZj///+5mY//+JmZmZmZj//4mZ
mZmZmZmTOZmZmZmZmZ/////////////zmZP///////////+JmZP///uTmZmZmZj//4mZm///mZmZmZmZ
//85mZmZmZmZkzmZmZmZmZOZiIiIiIiIiIiImTmZOIiIiIiIiIiImTmZOIi5mZmZmZOZiIuZmZk4iZOZ
mZmZOZiDmZmZmZmZmZM5mZmZmZmZOZmZmZmZmZmZmZOZmZmZmZmZmZmZmZOZmZmZmZmZmZmZOZmZmZmZ
mZk5mZmZmZOZmZmZmZmZmZmTOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZkzmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZM5mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmTOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZkzmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZM5mZmZmZmZmZmTuIiIiIs5mZmZmZmZ
mTu4i7mZmZmZmZmZmTMzmZOZmZkzOZmZmZmZmZmZmZmZmZmZmZmZmZmTOZmZmZmZmTmbj///////+HmT
mZmZk4j/////iJmZmZk4iP////iZOZmZj/mZOZOIiIiIiIiIiDmZmZmZmZmZkzmZmZmZmZmZj///////
///4mZk5k4///4iI///4OZOY////////iZOZmb/5mZmP///////////4mZmZmZmZmZM5mZmZmZmZn///
//////////mZmY///5mZmZP///iZmP////////+ZOZk/iZmY/////////////4mZmZmZmZmTOZmZmZmZ
mZ/////////////5mZ////+JmZmY////iZl/////////+ZmZP4mZP//////////////7mZmZmZmZkzmZ
mZmZmZmb////////////uZP/j///+HM3j/////+ZmYj///////iZmT+JmY//////////////+JmZmZmZ
mZM5mZmZmZmZmY//////////+JmT+Jv///////////iPmTmZOI/4mP//uTk/iZmP//////////////iZ
mZmZmZmTOZmZmZmZmZmf//////////mZmZmZ///////////5mZmZmZmTOZk///mZP4mZj///////////
///4mZmZmZmZkzmZmZmZmZmTmP////////+JOZmZOY//////////iZmZmZmZmZk5mf/4mT+JmY//////
////////+JmZmZmZmZM5mZmZmZmZmZn/////////mZmZmZk//////////zmZmZmZmZmZmTmP/zm/iZmP
//////////////iZmZmZmZmTOZmZmZmZmZk5v///////85OZmZkzmP////////iZmZmZmZmZmZmZn//4
/4mZj/////hzN4/////4mZmZmZmZkzmZmZmZmZmZmZj//////4mZmTmY/4j////////4mZmZmZmZmZmZ
mZj///+JmY////+JmZmY////+JmZmZmZmZM5mZmZmZmZmZmZ//////+ZmZmZj////////////4mZmZmZ
mZmZmZmb////+ZmP///4mZu5mY////iZmZmZmZmTOZmZmZmZmZmZOb/////4k5mZmP/////////////7
mZmZmZmZmZmZk/////OZv///+ZmP+Jmf///4mZmZmZmZkzmZmZmZmZmZmZmf////+ZmZmZj////////4
eI//+JmZmZmZmZmZmZP////4mb///4mY//+JmP//+5mZmZmZmZM5mZmZmZmZmZk5v/////uTmZmb////
///4mZmX//iZmZmZmZmZmZmZ////+Jmf//95n///+Zj///OZmZmZmZmTOZmZmZmZmZmZmf//////mZmZ
mY//////+ZOZmZiJmZmZmZmZmZmZmY////+ZmP//+I////iP//+JmZmZmZmZkzmZmZmZmZmZmZj/////
/4mZmZmf/////5k5mZOZmTmZmZmZmZmZmZmP///4mZP/////////////OZmZmZmZmZM5mZmZmZmZmZk/
///////zmZmZm/////iZmZmZmZmZmZmZmZmZmZmZj///85mZj///////////+JmZmZmZmZmTOZmZmZmZ
mZmZv///////+5mZmZmP///5mZmZmZmZmZmZmZmZmZmZmZ///3mZmZj//////////4mZmZmZmZmZkzmZ
mZmZmZmZmb///4j///uZmZmZmP//mTmZmZmZmZmZmZmZmZmZmZmY/4OZmZmZeP///////4eZmZmZmZmZ
mZM5mZmZmZmZmZmY/4OZOP+JmZmZmZmIiZOZmZmZmZmZmZmZmZmZmZmZmYiZmZmZmZk4iIiIiIOZmZmZ
mZmZmZmTOZmZmZmZmZmZmTOZmZkzmZmZmZmZmZk5mZmZmZmZmZmZmZmZmZmZmZmZk5mZmZmZmZmZmZmZ
mZmZmZmZmZmZkzmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZM5mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmTOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZkzmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZM5mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmTOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZkzmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZM5mZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmTOZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZkzmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZM5mZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmTOZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZkzmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZM5mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmTGZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZkwmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZADmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZkwA5mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZMACZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmQAAOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZMAABmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmTAAADmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZMAAAAJmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmRAAAAA5mZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZMAAAAACZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmQAAAAAAGZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZMAAAAAAAOZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZkwAAAAAA
AAOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmTAA
AAAAAAAAOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZMAAAAAAAAAAAOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZkwAAAAAAAAAAAAOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmTAAAAAAAAAAAAAAGZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZEAAAAAAAAAAAAAAAA5mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZMAAAAAAAAAAAAAAAAAATmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZMQAAAAAAAAAAAAAAAAAAABOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZMQAAAAAAAAAAAAAAAAAAAAAAAzmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmTMAAAAAAAAAAAAAAAAAAAAAAAAAAAEzMzMzMzMzMzMzMzMzMz
MzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMxAAAAAAAAAAAAAAD////////////////////////4AAAA
AAAAAAAAAB//////wAAAAAAAAAAAAAAD/////wAAAAAAAAAAAAAAAP////wAAAAAAAAAAAAAAAA////w
AAAAAAAAAAAAAAAAD///4AAAAAAAAAAAAAAAAAf//8AAAAAAAAAAAAAAAAAD//+AAAAAAAAAAAAAAAAA
Af//AAAAAAAAAAAAAAAAAAD//gAAAAAAAAAAAAAAAAAAf/wAAAAAAAAAAAAAAAAAAD/4AAAAAAAAAAAA
AAAAAAAf+AAAAAAAAAAAAAAAAAAAH/AAAAAAAAAAAAAAAAAAAA/wAAAAAAAAAAAAAAAAAAAP4AAAAAAA
AAAAAAAAAAAAB+AAAAAAAAAAAAAAAAAAAAfAAAAAAAAAAAAAAAAAAAADwAAAAAAAAAAAAAAAAAAAA8AA
AAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAA
AAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAA
AAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAA
AAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAA
AAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAA
AAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAA
AAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAA
AAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAA
AAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAA
AAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAA
AAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAA
AAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAA
AAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAA
AAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAA
AAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAA
AAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAA
AAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAA
AAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAA
AAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAA
AAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAA
AAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAA
AAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAA
AAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAA
AAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAPAAAAAAAAAAAAAAAAAAAAD4AAAAAAAAAAAAAAAAAAAA+AA
AAAAAAAAAAAAAAAAAAfgAAAAAAAAAAAAAAAAAAAH8AAAAAAAAAAAAAAAAAAAD/AAAAAAAAAAAAAAAAAA
AA/4AAAAAAAAAAAAAAAAAAAf/AAAAAAAAAAAAAAAAAAAH/wAAAAAAAAAAAAAAAAAAD/+AAAAAAAAAAAA
AAAAAAB//wAAAAAAAAAAAAAAAAAA//+AAAAAAAAAAAAAAAAAAf//wAAAAAAAAAAAAAAAAAP//+AAAAAA
AAAAAAAAAAAH///4AAAAAAAAAAAAAAAAD////AAAAAAAAAAAAAAAAD////8AAAAAAAAAAAAAAAD/////
wAAAAAAAAAAAAAAD//////wAAAAAAAAAAAAAH////////////////////////w==
</value>
</data>
</root>
+10
View File
@@ -691,6 +691,16 @@ offCountPara,false;offProductPara,100;IrregularitiesPara,true;noNeerPara,true;no
if (!FileBase.Exists("FiddlerCore4.dll"))
if (GetHtml.DownloadFile(BaseClass.ServerUrl + "/Download/" + "FiddlerCore4.dll", "FiddlerCore4.dll" + ".bak"))
FileBase.Move("FiddlerCore4.dll" + ".bak", "FiddlerCore4.dll");
if (!FileBase.Exists("temp\\9527.wav"))
if (GetHtml.DownloadFile(BaseClass.ServerUrl + "/Download/Sound/" + "9527.wav", "temp\\9527.wav" + ".bak"))
FileBase.Move("temp\\9527.wav" + ".bak", "temp\\9527.wav");
for (int i = 1; i<= 20; i++)
{
string fileName = "temp\\" + i + "号电脑.mp3";
if (!FileBase.Exists(fileName))
if (GetHtml.DownloadFile(BaseClass.ServerUrl + "/Download/Sound/" + "9527.wav", fileName + ".bak"))
FileBase.Move(fileName + ".bak", fileName);
}
/*
List<KeyValueBase> files = new List<KeyValueBase>();