云端数据 增加收藏

增加云端收藏列表
This commit is contained in:
chfei committed 2026-10-14 17:20:12 +08:00
1 parent 00f4aa2f64
commit 6e6ba151da
10 files changed
+1974 -548

No files matched your search

+3
View File
@@ -68,6 +68,9 @@
<ProjectReference Include="..\Work\Work.csproj" />
</ItemGroup>
<ItemGroup>
<Compile Update="PDDForms\ProductSelectForms\CloudGoodsFavoriteForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Update="PDDForms\ProductSelectForms\CloudGoodsForm.cs">
<SubType>Form</SubType>
</Compile>
@@ -0,0 +1,636 @@
namespace TemuKJD.PDDForms.ProductSelectForms
{
partial class CloudGoodsFavoriteForm
{
/// <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()
{
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle9 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle10 = new System.Windows.Forms.DataGridViewCellStyle();
this.splitContainer1 = new System.Windows.Forms.SplitContainer();
this.panel1 = new System.Windows.Forms.Panel();
this.btn_removefavorite = new DevComponents.DotNetBar.PanelEx();
this.bt_importUploadList = new DevComponents.DotNetBar.PanelEx();
this.label5r = new System.Windows.Forms.Label();
this.cb_Platform = new System.Windows.Forms.ComboBox();
this.cmbCatSelect2 = new System.Windows.Forms.ComboBox();
this.cmbCatSelect1 = new System.Windows.Forms.ComboBox();
this.cmbCatSelect4 = new System.Windows.Forms.ComboBox();
this.cmbCatSelect3 = new System.Windows.Forms.ComboBox();
this.label4 = new System.Windows.Forms.Label();
this.num_maxprice = new System.Windows.Forms.NumericUpDown();
this.num_minprice = new System.Windows.Forms.NumericUpDown();
this.label7 = new System.Windows.Forms.Label();
this.label3 = new System.Windows.Forms.Label();
this.num_maxsold = new System.Windows.Forms.NumericUpDown();
this.num_minsold = new System.Windows.Forms.NumericUpDown();
this.txt_title = new System.Windows.Forms.TextBox();
this.label1 = new System.Windows.Forms.Label();
this.label6 = new System.Windows.Forms.Label();
this.btnSearch = new DevComponents.DotNetBar.PanelEx();
this.pnlEmpty = new DevComponents.DotNetBar.PanelEx();
this.label2 = new System.Windows.Forms.Label();
this.splitContainer2 = new System.Windows.Forms.SplitContainer();
this.pbLoading = new System.Windows.Forms.PictureBox();
this.dgvData = new TemuKJD.UserComponent.DataGridViewEx();
this.colSelect = new System.Windows.Forms.DataGridViewCheckBoxColumn();
this.c_Platform = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.Column1 = new System.Windows.Forms.DataGridViewImageColumn();
this.c_goodsid = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.Column2 = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.Column3 = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.Column4 = new System.Windows.Forms.DataGridViewTextBoxColumn();
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();
this.splitContainer1.SuspendLayout();
this.panel1.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.num_maxprice)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.num_minprice)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.num_maxsold)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.num_minsold)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.splitContainer2)).BeginInit();
this.splitContainer2.Panel1.SuspendLayout();
this.splitContainer2.Panel2.SuspendLayout();
this.splitContainer2.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.pbLoading)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.dgvData)).BeginInit();
this.SuspendLayout();
//
// 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";
this.splitContainer1.Orientation = System.Windows.Forms.Orientation.Horizontal;
//
// splitContainer1.Panel1
//
this.splitContainer1.Panel1.Controls.Add(this.panel1);
this.splitContainer1.Panel1.Controls.Add(this.label5r);
this.splitContainer1.Panel1.Controls.Add(this.cb_Platform);
this.splitContainer1.Panel1.Controls.Add(this.cmbCatSelect2);
this.splitContainer1.Panel1.Controls.Add(this.cmbCatSelect1);
this.splitContainer1.Panel1.Controls.Add(this.cmbCatSelect4);
this.splitContainer1.Panel1.Controls.Add(this.cmbCatSelect3);
this.splitContainer1.Panel1.Controls.Add(this.label4);
this.splitContainer1.Panel1.Controls.Add(this.num_maxprice);
this.splitContainer1.Panel1.Controls.Add(this.num_minprice);
this.splitContainer1.Panel1.Controls.Add(this.label7);
this.splitContainer1.Panel1.Controls.Add(this.label3);
this.splitContainer1.Panel1.Controls.Add(this.num_maxsold);
this.splitContainer1.Panel1.Controls.Add(this.num_minsold);
this.splitContainer1.Panel1.Controls.Add(this.txt_title);
this.splitContainer1.Panel1.Controls.Add(this.label1);
this.splitContainer1.Panel1.Controls.Add(this.label6);
this.splitContainer1.Panel1.Controls.Add(this.btnSearch);
this.splitContainer1.Panel1.Controls.Add(this.pnlEmpty);
this.splitContainer1.Panel1.Controls.Add(this.label2);
//
// splitContainer1.Panel2
//
this.splitContainer1.Panel2.Controls.Add(this.splitContainer2);
this.splitContainer1.Panel2.Margin = new System.Windows.Forms.Padding(4);
this.splitContainer1.Size = new System.Drawing.Size(1643, 530);
this.splitContainer1.TabIndex = 35;
//
// panel1
//
this.panel1.Controls.Add(this.btn_removefavorite);
this.panel1.Controls.Add(this.bt_importUploadList);
this.panel1.Dock = System.Windows.Forms.DockStyle.Right;
this.panel1.Location = new System.Drawing.Point(1507, 0);
this.panel1.Name = "panel1";
this.panel1.Size = new System.Drawing.Size(136, 50);
this.panel1.TabIndex = 914;
//
// btn_removefavorite
//
this.btn_removefavorite.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
this.btn_removefavorite.Cursor = System.Windows.Forms.Cursors.Hand;
this.btn_removefavorite.DisabledBackColor = System.Drawing.Color.Empty;
this.btn_removefavorite.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btn_removefavorite.Location = new System.Drawing.Point(67, 14);
this.btn_removefavorite.Name = "btn_removefavorite";
this.btn_removefavorite.Size = new System.Drawing.Size(58, 23);
this.btn_removefavorite.Style.Alignment = System.Drawing.StringAlignment.Center;
this.btn_removefavorite.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.btn_removefavorite.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.btn_removefavorite.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder;
this.btn_removefavorite.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash;
this.btn_removefavorite.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None;
this.btn_removefavorite.Style.ForeColor.Color = System.Drawing.Color.White;
this.btn_removefavorite.Style.GradientAngle = 90;
this.btn_removefavorite.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center;
this.btn_removefavorite.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255)))));
this.btn_removefavorite.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255)))));
this.btn_removefavorite.TabIndex = 447;
this.btn_removefavorite.Text = "取消收藏";
this.btn_removefavorite.Click += new System.EventHandler(this.btn_removefavorite_Click);
//
// bt_importUploadList
//
this.bt_importUploadList.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
this.bt_importUploadList.Cursor = System.Windows.Forms.Cursors.Hand;
this.bt_importUploadList.DisabledBackColor = System.Drawing.Color.Empty;
this.bt_importUploadList.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.bt_importUploadList.Location = new System.Drawing.Point(3, 14);
this.bt_importUploadList.Name = "bt_importUploadList";
this.bt_importUploadList.Size = new System.Drawing.Size(58, 23);
this.bt_importUploadList.Style.Alignment = System.Drawing.StringAlignment.Center;
this.bt_importUploadList.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.bt_importUploadList.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.bt_importUploadList.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder;
this.bt_importUploadList.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash;
this.bt_importUploadList.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None;
this.bt_importUploadList.Style.ForeColor.Color = System.Drawing.Color.White;
this.bt_importUploadList.Style.GradientAngle = 90;
this.bt_importUploadList.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center;
this.bt_importUploadList.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255)))));
this.bt_importUploadList.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255)))));
this.bt_importUploadList.TabIndex = 443;
this.bt_importUploadList.Text = "上传选中";
this.bt_importUploadList.Click += new System.EventHandler(this.bt_importUploadList_Click);
//
// label5r
//
this.label5r.AutoSize = true;
this.label5r.Location = new System.Drawing.Point(1048, 16);
this.label5r.Name = "label5r";
this.label5r.Size = new System.Drawing.Size(44, 17);
this.label5r.TabIndex = 907;
this.label5r.Text = "来源:";
//
// cb_Platform
//
this.cb_Platform.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.cb_Platform.DropDownWidth = 150;
this.cb_Platform.FormattingEnabled = true;
this.cb_Platform.Items.AddRange(new object[] {
"全部",
"多多",
"微信"});
this.cb_Platform.Location = new System.Drawing.Point(1098, 13);
this.cb_Platform.Name = "cb_Platform";
this.cb_Platform.Size = new System.Drawing.Size(97, 25);
this.cb_Platform.TabIndex = 906;
//
// cmbCatSelect2
//
this.cmbCatSelect2.DropDownWidth = 150;
this.cmbCatSelect2.FormattingEnabled = true;
this.cmbCatSelect2.Location = new System.Drawing.Point(745, 12);
this.cmbCatSelect2.Name = "cmbCatSelect2";
this.cmbCatSelect2.Size = new System.Drawing.Size(97, 25);
this.cmbCatSelect2.TabIndex = 897;
//
// cmbCatSelect1
//
this.cmbCatSelect1.DropDownWidth = 150;
this.cmbCatSelect1.FormattingEnabled = true;
this.cmbCatSelect1.Location = new System.Drawing.Point(648, 12);
this.cmbCatSelect1.Name = "cmbCatSelect1";
this.cmbCatSelect1.Size = new System.Drawing.Size(97, 25);
this.cmbCatSelect1.TabIndex = 896;
//
// cmbCatSelect4
//
this.cmbCatSelect4.DropDownWidth = 150;
this.cmbCatSelect4.FormattingEnabled = true;
this.cmbCatSelect4.Location = new System.Drawing.Point(939, 12);
this.cmbCatSelect4.Name = "cmbCatSelect4";
this.cmbCatSelect4.Size = new System.Drawing.Size(97, 25);
this.cmbCatSelect4.TabIndex = 899;
//
// cmbCatSelect3
//
this.cmbCatSelect3.DropDownWidth = 150;
this.cmbCatSelect3.FormattingEnabled = true;
this.cmbCatSelect3.Location = new System.Drawing.Point(842, 12);
this.cmbCatSelect3.Name = "cmbCatSelect3";
this.cmbCatSelect3.Size = new System.Drawing.Size(97, 25);
this.cmbCatSelect3.TabIndex = 898;
//
// label4
//
this.label4.AutoSize = true;
this.label4.ForeColor = System.Drawing.Color.Gray;
this.label4.Location = new System.Drawing.Point(518, 17);
this.label4.Margin = new System.Windows.Forms.Padding(0);
this.label4.Name = "label4";
this.label4.Size = new System.Drawing.Size(13, 17);
this.label4.TabIndex = 488;
this.label4.Text = "-";
//
// num_maxprice
//
this.num_maxprice.Location = new System.Drawing.Point(534, 14);
this.num_maxprice.Maximum = new decimal(new int[] {
99999,
0,
0,
0});
this.num_maxprice.Name = "num_maxprice";
this.num_maxprice.Size = new System.Drawing.Size(70, 23);
this.num_maxprice.TabIndex = 487;
//
// num_minprice
//
this.num_minprice.Location = new System.Drawing.Point(447, 14);
this.num_minprice.Maximum = new decimal(new int[] {
99999,
0,
0,
0});
this.num_minprice.Name = "num_minprice";
this.num_minprice.Size = new System.Drawing.Size(70, 23);
this.num_minprice.TabIndex = 486;
//
// label7
//
this.label7.AutoSize = true;
this.label7.Location = new System.Drawing.Point(388, 17);
this.label7.Name = "label7";
this.label7.Size = new System.Drawing.Size(64, 17);
this.label7.TabIndex = 485;
this.label7.Text = "价格(元):";
//
// label3
//
this.label3.AutoSize = true;
this.label3.ForeColor = System.Drawing.Color.Gray;
this.label3.Location = new System.Drawing.Point(294, 17);
this.label3.Margin = new System.Windows.Forms.Padding(0);
this.label3.Name = "label3";
this.label3.Size = new System.Drawing.Size(13, 17);
this.label3.TabIndex = 484;
this.label3.Text = "-";
//
// num_maxsold
//
this.num_maxsold.Location = new System.Drawing.Point(310, 14);
this.num_maxsold.Maximum = new decimal(new int[] {
9999999,
0,
0,
0});
this.num_maxsold.Name = "num_maxsold";
this.num_maxsold.Size = new System.Drawing.Size(70, 23);
this.num_maxsold.TabIndex = 483;
//
// num_minsold
//
this.num_minsold.Location = new System.Drawing.Point(223, 14);
this.num_minsold.Maximum = new decimal(new int[] {
9999999,
0,
0,
0});
this.num_minsold.Name = "num_minsold";
this.num_minsold.Size = new System.Drawing.Size(70, 23);
this.num_minsold.TabIndex = 482;
//
// txt_title
//
this.txt_title.Location = new System.Drawing.Point(60, 14);
this.txt_title.Name = "txt_title";
this.txt_title.Size = new System.Drawing.Size(118, 23);
this.txt_title.TabIndex = 468;
//
// label1
//
this.label1.AutoSize = true;
this.label1.Location = new System.Drawing.Point(8, 17);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(56, 17);
this.label1.TabIndex = 469;
this.label1.Text = "关键词:";
//
// label6
//
this.label6.AutoSize = true;
this.label6.Location = new System.Drawing.Point(610, 17);
this.label6.Name = "label6";
this.label6.Size = new System.Drawing.Size(44, 17);
this.label6.TabIndex = 440;
this.label6.Text = "类目:";
//
// btnSearch
//
this.btnSearch.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
this.btnSearch.Cursor = System.Windows.Forms.Cursors.Hand;
this.btnSearch.DisabledBackColor = System.Drawing.Color.Empty;
this.btnSearch.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnSearch.Location = new System.Drawing.Point(1208, 14);
this.btnSearch.Name = "btnSearch";
this.btnSearch.Size = new System.Drawing.Size(58, 23);
this.btnSearch.Style.Alignment = System.Drawing.StringAlignment.Center;
this.btnSearch.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.btnSearch.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.btnSearch.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder;
this.btnSearch.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash;
this.btnSearch.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None;
this.btnSearch.Style.ForeColor.Color = System.Drawing.Color.White;
this.btnSearch.Style.GradientAngle = 90;
this.btnSearch.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center;
this.btnSearch.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255)))));
this.btnSearch.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255)))));
this.btnSearch.TabIndex = 435;
this.btnSearch.Text = "查询";
this.btnSearch.Click += new System.EventHandler(this.btnSearch_Click);
//
// pnlEmpty
//
this.pnlEmpty.CanvasColor = System.Drawing.SystemColors.Control;
this.pnlEmpty.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
this.pnlEmpty.DisabledBackColor = System.Drawing.Color.Empty;
this.pnlEmpty.Location = new System.Drawing.Point(1272, 14);
this.pnlEmpty.Name = "pnlEmpty";
this.pnlEmpty.Size = new System.Drawing.Size(58, 23);
this.pnlEmpty.Style.Alignment = System.Drawing.StringAlignment.Center;
this.pnlEmpty.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255)))));
this.pnlEmpty.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255)))));
this.pnlEmpty.Style.Border = DevComponents.DotNetBar.eBorderType.SingleLine;
this.pnlEmpty.Style.BorderColor.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.pnlEmpty.Style.ForeColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText;
this.pnlEmpty.Style.GradientAngle = 90;
this.pnlEmpty.StyleMouseDown.Alignment = System.Drawing.StringAlignment.Center;
this.pnlEmpty.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center;
this.pnlEmpty.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.pnlEmpty.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.pnlEmpty.StyleMouseOver.ForeColor.Color = System.Drawing.Color.White;
this.pnlEmpty.TabIndex = 413;
this.pnlEmpty.Text = "清空条件";
this.pnlEmpty.Click += new System.EventHandler(this.pnlEmpty_Click);
//
// label2
//
this.label2.AutoSize = true;
this.label2.Location = new System.Drawing.Point(184, 17);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(44, 17);
this.label2.TabIndex = 373;
this.label2.Text = "销量:";
//
// splitContainer2
//
this.splitContainer2.BackColor = System.Drawing.Color.White;
this.splitContainer2.Dock = System.Windows.Forms.DockStyle.Fill;
this.splitContainer2.FixedPanel = System.Windows.Forms.FixedPanel.Panel2;
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.BackColor = System.Drawing.Color.White;
this.splitContainer2.Panel1.Controls.Add(this.pbLoading);
this.splitContainer2.Panel1.Controls.Add(this.dgvData);
this.splitContainer2.Panel1.Padding = new System.Windows.Forms.Padding(4, 0, 4, 0);
//
// splitContainer2.Panel2
//
this.splitContainer2.Panel2.Controls.Add(this.ucSplitPage1);
this.splitContainer2.Panel2.Controls.Add(this.statusBar);
this.splitContainer2.Size = new System.Drawing.Size(1643, 476);
this.splitContainer2.SplitterDistance = 447;
this.splitContainer2.TabIndex = 0;
//
// pbLoading
//
this.pbLoading.Anchor = System.Windows.Forms.AnchorStyles.None;
this.pbLoading.Image = global::TemuKJD.Properties.Resources.loading_blue;
this.pbLoading.Location = new System.Drawing.Point(796, 198);
this.pbLoading.Name = "pbLoading";
this.pbLoading.Size = new System.Drawing.Size(50, 50);
this.pbLoading.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage;
this.pbLoading.TabIndex = 6;
this.pbLoading.TabStop = false;
//
// dgvData
//
this.dgvData.AllowUserToAddRows = false;
this.dgvData.AllowUserToDeleteRows = false;
dataGridViewCellStyle9.BackColor = System.Drawing.Color.WhiteSmoke;
this.dgvData.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle9;
this.dgvData.AutoRowNumber = true;
this.dgvData.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.Fill;
this.dgvData.BackgroundColor = System.Drawing.Color.White;
this.dgvData.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
dataGridViewCellStyle10.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
dataGridViewCellStyle10.BackColor = System.Drawing.SystemColors.Control;
dataGridViewCellStyle10.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
dataGridViewCellStyle10.ForeColor = System.Drawing.SystemColors.WindowText;
dataGridViewCellStyle10.SelectionBackColor = System.Drawing.SystemColors.Highlight;
dataGridViewCellStyle10.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
dataGridViewCellStyle10.WrapMode = System.Windows.Forms.DataGridViewTriState.False;
this.dgvData.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle10;
this.dgvData.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
this.dgvData.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
this.colSelect,
this.c_Platform,
this.Column1,
this.c_goodsid,
this.Column2,
this.Column3,
this.Column4});
this.dgvData.Dock = System.Windows.Forms.DockStyle.Fill;
this.dgvData.Location = new System.Drawing.Point(4, 0);
this.dgvData.MultiSelectCheckBox = true;
this.dgvData.Name = "dgvData";
this.dgvData.ReadOnly = true;
this.dgvData.RowTemplate.Height = 60;
this.dgvData.ShowCellErrors = false;
this.dgvData.Size = new System.Drawing.Size(1635, 447);
this.dgvData.TabIndex = 5;
//
// colSelect
//
this.colSelect.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.None;
this.colSelect.FillWeight = 26F;
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 = 30;
//
// c_Platform
//
this.c_Platform.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.None;
this.c_Platform.HeaderText = "来源";
this.c_Platform.Name = "c_Platform";
this.c_Platform.ReadOnly = true;
this.c_Platform.Width = 80;
//
// Column1
//
this.Column1.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.None;
this.Column1.FillWeight = 44.62474F;
this.Column1.HeaderText = "主图";
this.Column1.ImageLayout = System.Windows.Forms.DataGridViewImageCellLayout.Zoom;
this.Column1.MinimumWidth = 60;
this.Column1.Name = "Column1";
this.Column1.ReadOnly = true;
this.Column1.Resizable = System.Windows.Forms.DataGridViewTriState.True;
this.Column1.Width = 200;
//
// c_goodsid
//
this.c_goodsid.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.None;
this.c_goodsid.FillWeight = 60.68966F;
this.c_goodsid.HeaderText = "商品ID";
this.c_goodsid.Name = "c_goodsid";
this.c_goodsid.ReadOnly = true;
this.c_goodsid.Width = 180;
//
// Column2
//
this.Column2.FillWeight = 111.5619F;
this.Column2.HeaderText = "标题";
this.Column2.Name = "Column2";
this.Column2.ReadOnly = true;
//
// Column3
//
this.Column3.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.None;
this.Column3.FillWeight = 111.5619F;
this.Column3.HeaderText = "价格";
this.Column3.Name = "Column3";
this.Column3.ReadOnly = true;
this.Column3.Width = 120;
//
// Column4
//
this.Column4.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.None;
this.Column4.FillWeight = 111.5619F;
this.Column4.HeaderText = "销量";
this.Column4.Name = "Column4";
this.Column4.ReadOnly = true;
this.Column4.Width = 120;
//
// ucSplitPage1
//
this.ucSplitPage1.CurrentPage = 1;
this.ucSplitPage1.Dock = System.Windows.Forms.DockStyle.Right;
this.ucSplitPage1.IsShowPageSize = true;
this.ucSplitPage1.IsShowTotalCount = true;
this.ucSplitPage1.Location = new System.Drawing.Point(1181, 0);
this.ucSplitPage1.Margin = new System.Windows.Forms.Padding(0);
this.ucSplitPage1.MaxPageSizeValue = 2000;
this.ucSplitPage1.Name = "ucSplitPage1";
this.ucSplitPage1.PageSize = 50;
this.ucSplitPage1.Size = new System.Drawing.Size(462, 25);
this.ucSplitPage1.TabIndex = 4;
this.ucSplitPage1.TotalCount = ((long)(0));
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(1643, 25);
this.statusBar.TabIndex = 1;
this.statusBar.Visible = false;
//
// CloudGoodsFavoriteForm
//
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
this.ClientSize = new System.Drawing.Size(1643, 530);
this.Controls.Add(this.splitContainer1);
this.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.KeyPreview = true;
this.Name = "CloudGoodsFavoriteForm";
this.Text = "AdminCardCodeForm";
this.Load += new System.EventHandler(this.AdminCardCodeForm_Load);
this.splitContainer1.Panel1.ResumeLayout(false);
this.splitContainer1.Panel1.PerformLayout();
this.splitContainer1.Panel2.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).EndInit();
this.splitContainer1.ResumeLayout(false);
this.panel1.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.num_maxprice)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.num_minprice)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.num_maxsold)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.num_minsold)).EndInit();
this.splitContainer2.Panel1.ResumeLayout(false);
this.splitContainer2.Panel2.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.splitContainer2)).EndInit();
this.splitContainer2.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.pbLoading)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.dgvData)).EndInit();
this.ResumeLayout(false);
}
#endregion
private System.Windows.Forms.SplitContainer splitContainer1;
private DevComponents.DotNetBar.PanelEx pnlEmpty;
private System.Windows.Forms.Label label2;
private System.Windows.Forms.SplitContainer splitContainer2;
private System.Windows.Forms.PictureBox pbLoading;
private UserComponent.DataGridViewEx dgvData;
private UserControls.UcSplitPage ucSplitPage1;
private UserControls.StatusBarUserControl statusBar;
private DevComponents.DotNetBar.PanelEx btnSearch;
private System.Windows.Forms.Label label6;
private System.Windows.Forms.TextBox txt_title;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.NumericUpDown num_maxsold;
private System.Windows.Forms.NumericUpDown num_minsold;
private System.Windows.Forms.Label label4;
private System.Windows.Forms.NumericUpDown num_maxprice;
private System.Windows.Forms.NumericUpDown num_minprice;
private System.Windows.Forms.Label label7;
private System.Windows.Forms.Label label3;
private System.Windows.Forms.ComboBox cmbCatSelect2;
private System.Windows.Forms.ComboBox cmbCatSelect1;
private System.Windows.Forms.ComboBox cmbCatSelect4;
private System.Windows.Forms.ComboBox cmbCatSelect3;
private System.Windows.Forms.Label label5r;
private System.Windows.Forms.ComboBox cb_Platform;
private System.Windows.Forms.DataGridViewCheckBoxColumn colSelect;
private System.Windows.Forms.DataGridViewTextBoxColumn c_Platform;
private System.Windows.Forms.DataGridViewImageColumn Column1;
private System.Windows.Forms.DataGridViewTextBoxColumn c_goodsid;
private System.Windows.Forms.DataGridViewTextBoxColumn Column2;
private System.Windows.Forms.DataGridViewTextBoxColumn Column3;
private System.Windows.Forms.DataGridViewTextBoxColumn Column4;
private System.Windows.Forms.Panel panel1;
private DevComponents.DotNetBar.PanelEx btn_removefavorite;
private DevComponents.DotNetBar.PanelEx bt_importUploadList;
}
}
@@ -0,0 +1,483 @@
using AllBase;
using AllBase.Helper;
using AllBase.Model.Result;
using AllBase.Model.Result.PDDResult;
using AllBase.Model.Result.WXResult;
using NaiBa.Util.Extension;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Drawing.Printing;
using System.IO;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Security.Policy;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using TemuKJD.BaseForms;
using TemuKJD.Extension;
using TemuKJD.ToolForms;
using TemuKJD.UserControls;
using TemuKJD.WXForms.ProductForms;
using Work;
using Work.GoodDetail;
using Work.Services;
namespace TemuKJD.PDDForms.ProductSelectForms
{
public partial class CloudGoodsFavoriteForm : BaseForm
{
private GoodsSearchRequest search = new GoodsSearchRequest();
private List<ComboBox> catBoxList = new List<ComboBox>();
private BindingList<CloudGoods> dataList = new BindingList<CloudGoods>();
CheckBox chkSelectAll = null;
public CloudGoodsFavoriteForm()
{
InitializeComponent();
}
private void AdminCardCodeForm_Load(object sender, EventArgs e)
{
pbLoading.Visible = false;
ucSplitPage1.PageChange += UcSplitPage1_PageChange;
InitCategory();
InitBindingDataGridView();
num_minsold.Value = 0;
num_maxsold.Value = 9999999;
num_minprice.Value = 0;
num_maxprice.Value = 999;
cb_Platform.SelectedIndex = 0;
ucSplitPage1.TotalCount = 0;
if (EnvironmentHelper.IsDevelopment)
{
txt_title.Text = "连衣裙";
}
}
private void InitBindingDataGridView()
{
this.dgvData.AutoGenerateColumns = false;
this.Column1.Width = 70;
// Column1 是图片列,DataGridViewImageColumn 无法把 ThumbUrl 的 URL 字符串直接渲染成图片,
// 因此不绑定 DataPropertyName,改为数据加载后由 ShowDgvImg() 异步下载图片填入该列。
this.colSelect.DataPropertyName = nameof(CloudGoods.IsSelected);
this.colSelect.ReadOnly = false;
this.Column2.DataPropertyName = nameof(CloudGoods.Title);
this.Column3.DataPropertyName = nameof(CloudGoods.Price);
this.Column4.DataPropertyName = nameof(CloudGoods.SoldQuantity);
this.c_goodsid.DataPropertyName = nameof(CloudGoods.GoodsId);
this.c_Platform.DataPropertyName = nameof(CloudGoods.Platform);
// 2. 设置列样式
// 时间列格式化
//this.Column6.DefaultCellStyle.Format = "yyyy-MM-dd HH:mm:ss";
//this.Column8.DefaultCellStyle.Format = "yyyy-MM-dd HH:mm:ss";
this.dgvData.DataSource = dataList;
// 滚动到可视区时按需加载缩略图
this.dgvData.Scroll += (s, e) => ShowDgvImg();
this.dgvData.CellContentClick += DgvData_CellContentClick;
dgvData.CellFormatting += DgvData_CellFormatting;
chkSelectAll = dgvData.Columns["colSelect"].AddHeaderCheckBox(HorizontalAlignment.Center, 0, 0, null, null, false);
dgvData.Columns["colSelect"].HeaderText = "";
//chkSelectAll.Width = chkSelectAll.Height = 13;
chkSelectAll.CheckedChanged += chkSelectAll_CheckedChanged;
//chkSelectAll.Checked = true;
}
private void DgvData_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
if (e.ColumnIndex == this.c_Platform.Index && e.Value != null && e.Value != DBNull.Value)
{
if (int.TryParse(e.Value.ToString(), out int v))
{
e.Value = v == 1 ? ("多多") : v == 2 ? ("微信") : ("未知");
e.FormattingApplied = true;
}
}
}
private void chkSelectAll_CheckedChanged(object sender, EventArgs e)
{
foreach (var item in dataList)
{
item.IsSelected = (sender as CheckBox).Checked;
}
//this.dgvData.Refresh();
}
private void DgvData_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
if (dgvData.Columns[e.ColumnIndex] == colSelect)
{
var data = dgvData.Rows[e.RowIndex].DataBoundItem as CloudGoods;
data.IsSelected = !data.IsSelected;
}
if (dgvData.Columns[e.ColumnIndex] == Column1)
{
var data = dgvData.Rows[e.RowIndex].DataBoundItem as CloudGoods;
if (dgvData.Rows[e.RowIndex].Cells[e.ColumnIndex].Value is Image img)
{
ShowImgForm imgFrom = new ShowImgForm(img, data.ThumbUrl);
imgFrom.ShowDialog();
}
}
}
/// <summary>
/// 异步下载 CloudGoods.ThumbUrl 图片并填充到 Column1 图片列(只加载可视区行,避免一次下载整页)
/// </summary>
private void ShowDgvImg()
{
// 先在 UI 线程上快照“行 + 图片地址”,避免在后台线程遍历绑定的 DataGridView
List<KeyValuePair<DataGridViewRow, string>> waitList = new List<KeyValuePair<DataGridViewRow, string>>();
foreach (DataGridViewRow row in this.dgvData.Rows)
{
try
{
if (row.Index < 0)
continue;
// 不在可视区:先放占位图,滚动到可视区时再真正加载
if (row.Index > 0 && row.Cells["Column1"].Displayed == false)
{
if (row.Cells["Column1"].Value != DataGridViewExtension.defaultBitmap)
row.Cells["Column1"].Value = DataGridViewExtension.defaultBitmap;
continue;
}
// 已加载过就不再重复下载
if (row.Cells["Column1"].Value != null && row.Cells["Column1"].Value != DataGridViewExtension.defaultBitmap)
continue;
string imgUrl = (row.DataBoundItem as CloudGoods)?.ThumbUrl;
if (!string.IsNullOrWhiteSpace(imgUrl))
waitList.Add(new KeyValuePair<DataGridViewRow, string>(row, imgUrl));
else
row.Cells["Column1"].Value = TemuKJD.Properties.Resources.errpic;
}
catch
{
}
}
if (waitList.Count == 0)
return;
Task.Run(() =>
{
foreach (var item in waitList)
{
try
{
DataGridViewRow row = item.Key;
string getImgError = "";
Image image = GetHtml.GetUrlImg(item.Value, out getImgError);
if (image == null)
image = TemuKJD.Properties.Resources.errpic;
Invoke(new Action(() =>
{
try
{
if (row.Index >= 0)
row.Cells["Column1"].Value = image;
}
catch { }
}));
}
catch
{
}
}
});
}
private void InitCategory()
{
catBoxList.Add(cmbCatSelect1);
catBoxList.Add(cmbCatSelect2);
catBoxList.Add(cmbCatSelect3);
catBoxList.Add(cmbCatSelect4);
for (int i = 0; i < catBoxList.Count; i++)
{
catBoxList[i].DropDownStyle = ComboBoxStyle.DropDownList;
catBoxList[i].Tag = i;
catBoxList[i].SelectedIndexChanged += CmbCatSelect_SelectedIndexChanged;
catBoxList[i].DisplayMember = "cat_name";
catBoxList[i].ValueMember = "cat_id";
}
cmbCatSelect1.Items.Add(new PddCatInfo
{
cat_name = "全部",
cat_id = 0
});
foreach (PddCatInfo cat in GlobalConfig.PddCatList.Where(c => c.level == 1).ToList())
{
cmbCatSelect1.Items.Add(cat);
}
catBoxList[0].SelectedIndex = 0;
}
private void CmbCatSelect_SelectedIndexChanged(object sender, EventArgs e)
{
if (sender is ComboBox ccb)
{
ccb.SelectedIndexChanged -= CmbCatSelect_SelectedIndexChanged;
try
{
int currentLevel = (int)ccb.Tag;
// 先清空并禁用所有下级 ComboBox
for (int i = currentLevel + 1; i < catBoxList.Count; i++)
{
catBoxList[i].Items.Clear();
catBoxList[i].SelectedIndex = -1;
}
var parentCategory = ccb.SelectedItem as PddCatInfo;
// 启用并填充当前级别及上级(如果需要)
for (int i = currentLevel + 1; i < catBoxList.Count; i++)
{
// 清空所有下级
catBoxList[i].Items.Clear();
catBoxList[i].SelectedIndex = -1;
catBoxList[i].Text = "";
catBoxList[i].SelectedItem = null;
if (i == currentLevel + 1)
{
catBoxList[i].Enabled = true;
// 根据当前选中的值过滤下一级数据
if (parentCategory != null)
{
var childItems = GlobalConfig.PddCatList
.Where(c => c.level == i + 1 && c.parent_cat_id == parentCategory.cat_id)
.ToList();
foreach (var cat in childItems)
{
catBoxList[i].Items.Add(cat);
}
}
}
else
{
// 更下级的全部禁用并清空
catBoxList[i].Enabled = false;
}
}
if (currentLevel == 0)
{
catBoxList[1].Enabled = parentCategory.cat_id != 0;
}
}
finally
{
// 重新绑定事件
ccb.SelectedIndexChanged += CmbCatSelect_SelectedIndexChanged;
}
}
}
private void UcSplitPage1_PageChange(object obj)
{
btnSearch_Click(obj, null);
}
private async void btnSearch_Click(object sender, EventArgs e)
{
try
{
this.pbLoading.Visible = true;
btnSearch.Enabled = false;
UserFavoritesGoodsSearchRequest search = new UserFavoritesGoodsSearchRequest();
search.Platform = cb_Platform.SelectedIndex == 1 ? PlatformType.PDD : cb_Platform.SelectedIndex == 2 ? PlatformType.WX : PlatformType.None;
search.Title = txt_title.Text;
search.MinSoldQuantity = (int)num_minsold.Value;
search.MaxSoldQuantity = (int)num_maxsold.Value;
search.MinPrice = (long)num_minprice.Value * 100;
search.MaxPrice = (long)num_maxprice.Value * 100;
if (cmbCatSelect1.SelectedItem is PddCatInfo cat1)
{
search.CatId1 = (int)(cat1.cat_id);
search.CatId1 = search.CatId1 == 0 ? null : search.CatId1;
}
if (cmbCatSelect2.SelectedItem is PddCatInfo cat2)
search.CatId2 = (int)(cat2.cat_id);
if (cmbCatSelect3.SelectedItem is PddCatInfo cat3)
search.CatId3 = (int)(cat3.cat_id);
if (cmbCatSelect4.SelectedItem is PddCatInfo cat4)
search.CatId4 = (int)(cat4.cat_id);
search.PageIndex = ucSplitPage1.CurrentPage;
search.PageSize = ucSplitPage1.PageSize;
await GetGoods(search);
}
catch (Exception ex)
{
BaseMsgForm.ShowError($"查询失败:{ex.Message}");
}
finally
{
this.pbLoading.Visible = false;
btnSearch.Enabled = true;
}
}
private void pnlEmpty_Click(object sender, EventArgs e)
{
txt_title.Text = "";
num_minsold.Value = 0;
num_maxsold.Value = 99999;
num_minprice.Value = 0;
num_maxprice.Value = 999;
cmbCatSelect1.SelectedIndex = 0;
cb_Platform.SelectedIndex = 0;
ucSplitPage1.PageChange -= UcSplitPage1_PageChange;
ucSplitPage1.CurrentPage = 1;
ucSplitPage1.PageChange += UcSplitPage1_PageChange;
}
public async Task GetGoods(UserFavoritesGoodsSearchRequest request)
{
dataList.Clear();
PageData<CloudGoods> ret = await CloudGoodsService.SearchFavorites(request);
Invoke(new Action(() =>
{
ret.List.ForEach(a => dataList.Add(a));
ucSplitPage1.TotalPage = Math.Max(1, ret.TotalPages);
ucSplitPage1.TotalCount = ret.Total;
this.pbLoading.Visible = false;
// 异步加载商品缩略图(Column1 绑定 ThumbUrl)
ShowDgvImg();
}));
}
/// <summary>
/// 导入数据到待上传
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void bt_importUploadList_Click(object sender, EventArgs e)
{
int succ = 0;
int err = 0;
foreach (var item in dataList)
{
try
{
if (item.IsSelected == false) continue;
string catName = "";
if (item.CatId4.HasValue)
{
catName = GlobalConfig.PddCatList.FirstOrDefault(a => a.cat_id == item.CatId4)?.cat_name ?? "";
}
else if (item.CatId3.HasValue)
{
catName = GlobalConfig.PddCatList.FirstOrDefault(a => a.cat_id == item.CatId3)?.cat_name ?? "";
}
else if (item.CatId2.HasValue)
{
catName = GlobalConfig.PddCatList.FirstOrDefault(a => a.cat_id == item.CatId2)?.cat_name ?? "";
}
WXDBProdUploadForm.lstTemuDBProductSelect.Add(new TemuDBProductSelect
{
//out_product_Id = item.GoodsId.ToString(),
spu_id = item.GoodsId.ToString(),
main_img = item.ThumbUrl,
product_name = item.Title,
cat_name = catName,
product_get_type_text = item.Platform == 1 ? ("多多") : item.Platform == 2 ? ("微信") : ("未知"),
db_type = "云端数据",
});
succ++;
}
catch
{
err++;
}
}
NaiBa.Util.Helper.ConfigHelper.SaveConfig("wx_db_prod_upload_list", WXDBProdUploadForm.lstTemuDBProductSelect);
BaseMsgForm.ShowInfo($"导入完成!{succ} 成功 {err} 失败");
}
/// <summary>
/// 取消收藏
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private async void btn_removefavorite_Click(object sender, EventArgs e)
{
int succ = 0;
int err = 0;
try
{
this.pbLoading.Visible = true;
btn_removefavorite.Enabled = false;
var goodsIds = dataList.Where(a => a.IsSelected).Select(a => a.GoodsId).ToList();
if(goodsIds.Count==0)
{
BaseMsgForm.ShowInfo($"请勾选商品");
return;
}
var ret = await CloudGoodsService.RemoveFavorites(goodsIds);
succ = ret;
if (ret != goodsIds.Count)
{
err = goodsIds.Count - ret;
}
BaseMsgForm.ShowInfo($"取消收藏完成!{succ} 成功 {err} 失败");
}
catch (Exception ex)
{
BaseMsgForm.ShowError($"取消收藏失败:{ex.Message}");
}
finally
{
this.pbLoading.Visible = false;
btn_removefavorite.Enabled = true;
}
}
}
}
@@ -0,0 +1,141 @@
<?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="c_Platform.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="Column1.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="c_goodsid.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="Column2.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="Column3.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="Column4.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
</root>
File diff suppressed because it is too large. Load diff
@@ -50,9 +50,9 @@ namespace TemuKJD.PDDForms.ProductSelectForms
InitCategory();
InitBindingDataGridView();
num_minsold.Value = 0;
num_maxsold.Value = 999;
num_maxsold.Value = 9999999;
num_minprice.Value = 0;
num_maxprice.Value = 999;
@@ -424,7 +424,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms
product_name = item.Title,
cat_name = catName,
product_get_type_text = item.Platform == 1 ? ("多多") : item.Platform == 2 ? ("微信") : ("未知"),
db_type = "云端数据",
db_type = "云端数据",
});
succ++;
}
@@ -436,6 +436,45 @@ namespace TemuKJD.PDDForms.ProductSelectForms
NaiBa.Util.Helper.ConfigHelper.SaveConfig("wx_db_prod_upload_list", WXDBProdUploadForm.lstTemuDBProductSelect);
BaseMsgForm.ShowInfo($"导入完成!{succ} 成功 {err} 失败");
}
/// <summary>
/// 选中收藏
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private async void btn_favorite_Click(object sender, EventArgs e)
{
int succ = 0;
int err = 0;
try
{
this.pbLoading.Visible = true;
btn_favorite.Enabled = false;
var goodsIds = dataList.Where(a => a.IsSelected).Select(a => a.GoodsId).ToList();
if (goodsIds.Count == 0)
{
BaseMsgForm.ShowInfo($"请勾选商品");
return;
}
var ret = await CloudGoodsService.Favorite(goodsIds);
succ = ret;
if (ret != goodsIds.Count)
{
err = goodsIds.Count - ret;
}
BaseMsgForm.ShowInfo($"收藏完成!{succ} 成功 {err} 失败");
}
catch (Exception ex)
{
BaseMsgForm.ShowError($"收藏失败:{ex.Message}");
}
finally
{
this.pbLoading.Visible = false;
btn_favorite.Enabled = true;
}
}
}
+42 -38
View File
@@ -31,18 +31,19 @@
System.Windows.Forms.TreeNode treeNode1 = new System.Windows.Forms.TreeNode("选品上传");
System.Windows.Forms.TreeNode treeNode2 = new System.Windows.Forms.TreeNode("云端数据");
System.Windows.Forms.TreeNode treeNode3 = new System.Windows.Forms.TreeNode("我的商品库");
System.Windows.Forms.TreeNode treeNode4 = new System.Windows.Forms.TreeNode("商品预售/下架");
System.Windows.Forms.TreeNode treeNode5 = new System.Windows.Forms.TreeNode("云仓退货地址");
System.Windows.Forms.TreeNode treeNode6 = new System.Windows.Forms.TreeNode("清理无流量");
System.Windows.Forms.TreeNode treeNode7 = new System.Windows.Forms.TreeNode("爆单神器");
System.Windows.Forms.TreeNode treeNode8 = new System.Windows.Forms.TreeNode("活动报名");
System.Windows.Forms.TreeNode treeNode9 = new System.Windows.Forms.TreeNode("达人广场");
System.Windows.Forms.TreeNode treeNode10 = new System.Windows.Forms.TreeNode("商品同步");
System.Windows.Forms.TreeNode treeNode11 = new System.Windows.Forms.TreeNode("订单管理");
System.Windows.Forms.TreeNode treeNode12 = new System.Windows.Forms.TreeNode("订单代发管理");
System.Windows.Forms.TreeNode treeNode13 = new System.Windows.Forms.TreeNode("多多商品采集");
System.Windows.Forms.TreeNode treeNode14 = new System.Windows.Forms.TreeNode("1688商品采集");
System.Windows.Forms.TreeNode treeNode15 = new System.Windows.Forms.TreeNode("商品管理", new System.Windows.Forms.TreeNode[] {
System.Windows.Forms.TreeNode treeNode4 = new System.Windows.Forms.TreeNode("云端收藏");
System.Windows.Forms.TreeNode treeNode5 = new System.Windows.Forms.TreeNode("商品预售/下架");
System.Windows.Forms.TreeNode treeNode6 = new System.Windows.Forms.TreeNode("云仓退货地址");
System.Windows.Forms.TreeNode treeNode7 = new System.Windows.Forms.TreeNode("清理无流量");
System.Windows.Forms.TreeNode treeNode8 = new System.Windows.Forms.TreeNode("爆单神器");
System.Windows.Forms.TreeNode treeNode9 = new System.Windows.Forms.TreeNode("活动报名");
System.Windows.Forms.TreeNode treeNode10 = new System.Windows.Forms.TreeNode("达人广场");
System.Windows.Forms.TreeNode treeNode11 = new System.Windows.Forms.TreeNode("商品同步");
System.Windows.Forms.TreeNode treeNode12 = new System.Windows.Forms.TreeNode("订单管理");
System.Windows.Forms.TreeNode treeNode13 = new System.Windows.Forms.TreeNode("订单代发管理");
System.Windows.Forms.TreeNode treeNode14 = new System.Windows.Forms.TreeNode("多多商品采集");
System.Windows.Forms.TreeNode treeNode15 = new System.Windows.Forms.TreeNode("1688商品采集");
System.Windows.Forms.TreeNode treeNode16 = new System.Windows.Forms.TreeNode("商品管理", new System.Windows.Forms.TreeNode[] {
treeNode1,
treeNode2,
treeNode3,
@@ -56,7 +57,8 @@
treeNode11,
treeNode12,
treeNode13,
treeNode14});
treeNode14,
treeNode15});
this.panel1 = new System.Windows.Forms.Panel();
this.panel3 = new System.Windows.Forms.Panel();
this.panel2 = new System.Windows.Forms.Panel();
@@ -153,32 +155,34 @@
treeNode2.Text = "云端数据";
treeNode3.Name = "我的商品库";
treeNode3.Text = "我的商品库";
treeNode4.Name = "商品预售/下架";
treeNode4.Text = "商品预售/下架";
treeNode5.Name = "云仓退货地址";
treeNode5.Text = "云仓退货地址";
treeNode6.Name = "清理无流量";
treeNode6.Text = "清理无流量";
treeNode7.Name = "爆单神器";
treeNode7.Text = "爆单神器";
treeNode8.Name = "活动报名";
treeNode8.Text = "活动报名";
treeNode9.Name = "达人广场";
treeNode9.Text = "达人广场";
treeNode10.Name = "商品同步";
treeNode10.Text = "商品同步";
treeNode11.Name = "订单管理";
treeNode11.Text = "订单管理";
treeNode12.Name = "订单代发管理";
treeNode12.Text = "订单代发管理";
treeNode13.Name = "多多商品采集";
treeNode13.Text = "多多商品采集";
treeNode14.Name = "1688商品采集";
treeNode14.Text = "1688商品采集";
treeNode15.Name = "商品管理";
treeNode15.Text = "商品管理";
treeNode4.Name = "云端收藏";
treeNode4.Text = "云端收藏";
treeNode5.Name = "商品预售/下架";
treeNode5.Text = "商品预售/下架";
treeNode6.Name = "云仓退货地址";
treeNode6.Text = "云仓退货地址";
treeNode7.Name = "清理无流量";
treeNode7.Text = "清理无流量";
treeNode8.Name = "爆单神器";
treeNode8.Text = "爆单神器";
treeNode9.Name = "活动报名";
treeNode9.Text = "活动报名";
treeNode10.Name = "达人广场";
treeNode10.Text = "达人广场";
treeNode11.Name = "商品同步";
treeNode11.Text = "商品同步";
treeNode12.Name = "订单管理";
treeNode12.Text = "订单管理";
treeNode13.Name = "订单代发管理";
treeNode13.Text = "订单代发管理";
treeNode14.Name = "多多商品采集";
treeNode14.Text = "多多商品采集";
treeNode15.Name = "1688商品采集";
treeNode15.Text = "1688商品采集";
treeNode16.Name = "商品管理";
treeNode16.Text = "商品管理";
this.tv.Nodes.AddRange(new System.Windows.Forms.TreeNode[] {
treeNode15});
treeNode16});
this.tv.OverForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(235)))), ((int)(((byte)(235)))), ((int)(((byte)(235)))));
this.tv.Size = new System.Drawing.Size(140, 521);
this.tv.TabIndex = 1;
@@ -34,6 +34,7 @@ namespace TemuKJD.WXForms.ProductForms
public Lazy<Get1688ProductForm> get1688ProdForm = new Lazy<Get1688ProductForm>();
public Lazy<WXProdNoCheckEditAddressForm> prodNoCheckEditForm = new Lazy<WXProdNoCheckEditAddressForm>();
public Lazy<CloudGoodsForm> cloudgoodsForm = new Lazy<CloudGoodsForm>();
public Lazy<CloudGoodsFavoriteForm> cloudgoodsFavoriteForm = new Lazy<CloudGoodsFavoriteForm>();
public WXProductForm()
{
InitializeComponent();
@@ -104,6 +105,9 @@ namespace TemuKJD.WXForms.ProductForms
case "我的商品库":
SetForm(userCollectAuthProdListForm.Value);
break;
case "云端收藏":
SetForm(cloudgoodsFavoriteForm.Value);
break;
case "商品预售/下架":
SetForm(wxProdPreSaleForm.Value);
break;
+81 -5
View File
@@ -1,4 +1,5 @@
using AllBase;
using AllBase.Helper;
using AllBase.Model.Result;
using Newtonsoft.Json;
using System;
@@ -14,11 +15,17 @@ namespace Work.Services
/// </summary>
public class CloudGoodsService
{
private const string ServerUrl = "http://103.90.155.78:14312";
private static string ServerUrl = "http://103.90.155.78:9001";
static CloudGoodsService()
{
if (EnvironmentHelper.IsDevelopment)
{
ServerUrl = "http://localhost:9001";
}
}
public static async Task<PageData<CloudGoods>> GetGoods(GoodsSearchRequest request)
{
string data = JsonHelper.SerializeObject(request);
var html = await GetHtml.PostUtf8Async(ServerUrl + "/Goods/SearchGoods", data, "application/json");
var html = await GetHtml.PostJsonAsync(ServerUrl + "/api/CloudGoods/SearchGoods", request);
var ret = JsonConvert.DeserializeObject<Result<PageData<CloudGoods>>>(html);
if (ret.Code != 200)
@@ -29,7 +36,7 @@ namespace Work.Services
}
public static string GetGoodsDetail(long goodsId)
{
var html = GetHtml.GetUtf8(ServerUrl + $"/Goods/GetGoodsRawData?goodsId={goodsId}", "application/json");
var html = GetHtml.PostJson(ServerUrl + $"/api/CloudGoods/GetGoodsRawData?goodsId={goodsId}", "");
var ret = JsonConvert.DeserializeObject<Result<string>>(html);
if (ret.Code != 200)
@@ -38,6 +45,72 @@ namespace Work.Services
}
return ret.Data;
}
#region user
/// <summary>
/// 搜索收藏
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
/// <exception cref="Exception"></exception>
public static async Task<PageData<CloudGoods>> SearchFavorites(UserFavoritesGoodsSearchRequest request)
{
request.UserName = BaseClass.UserName;
var html = await GetHtml.PostJsonAsync(ServerUrl + "/api/CloudGoods/SearchFavorites", request);
var ret = JsonConvert.DeserializeObject<Result<PageData<CloudGoods>>>(html);
if (ret.Code != 200)
{
throw new Exception(ret.Msg);
}
return ret.Data;
}
/// <summary>
/// 收藏
/// </summary>
/// <param name="goodsIds"></param>
/// <returns></returns>
/// <exception cref="Exception"></exception>
public static async Task<int> Favorite(List<long> goodsIds)
{
var html = await GetHtml.PostJsonAsync(ServerUrl + $"/api/CloudGoods/AddFavorite", new
{
UserName = BaseClass.UserName,
GoodsIds = goodsIds,
});
var ret = JsonConvert.DeserializeObject<Result<int>>(html);
if (ret.Code != 200)
{
throw new Exception(ret.Msg);
}
return ret.Data;
}
/// <summary>
/// 取消收藏
/// </summary>
/// <param name="goodsIds"></param>
/// <returns></returns>
/// <exception cref="Exception"></exception>
public static async Task<int> RemoveFavorites(List<long> goodsIds)
{
var html = await GetHtml.PostJsonAsync(ServerUrl + $"/api/CloudGoods/RemoveFavorites", new
{
UserName = BaseClass.UserName,
GoodsIds = goodsIds,
});
var ret = JsonConvert.DeserializeObject<Result<int>>(html);
if (ret.Code != 200)
{
throw new Exception(ret.Msg);
}
return ret.Data;
}
#endregion
}
/// <summary>
/// 商品搜索请求
@@ -105,7 +178,10 @@ namespace Work.Services
public int PageSize { get; set; } = 20;
}
public class UserFavoritesGoodsSearchRequest : GoodsSearchRequest
{
public string UserName { get; set; }
}
/// <summary>
/// 商品搜索返回结果
/// </summary>
+1 -1
View File
@@ -143,7 +143,7 @@ namespace KJD.Test
[Test]
public void TestWXToPDDV4()
{
string filePath = @"C:\Users\chaih\Documents\xwechat_files\hongfei357_a567\msg\attach\cde4474908f6a5f2da5f7c82f4a8c5d0\2026-10\Rec\e65980801fd61508\F\0\10000182390569(1).txt";
string filePath = @"C:\Users\chaih\Documents\xwechat_files\hongfei357_a567\msg\file\2026-10\导入失败数据包\10000023711970.txt";
var frontProdInfo = ConverterToPddFactory.Convert(filePath);
var isMatch = frontProdInfo != null;
Console.WriteLine(frontProdInfo.Skus.Count);