diff --git a/AllBase/BaseClass.cs b/AllBase/BaseClass.cs
index cfc611d..18d869e 100644
--- a/AllBase/BaseClass.cs
+++ b/AllBase/BaseClass.cs
@@ -117,10 +117,14 @@ namespace AllBase
public static decimal PostagePerOrder { get; set; } = 2.2m;
public static decimal RefundPostagePerOrder { get; set; } = 2.5m;
public static decimal GiftOemAmountPerOrder { get; set; } = 0m;
- ///
- /// 采集最低销量
- ///
- public static int MinSales = 0;
+ ///
+ /// 图片检测配额
+ ///
+ public static int ImageAnalysisQuota { get; set; }
+ ///
+ /// 采集最低销量
+ ///
+ public static int MinSales = 0;
public static int MinPercent = 0;
public static int MinLevel = 0;
public static int AlimamaPageCount = 0;
diff --git a/TEMUKJD/KJD.csproj.user b/TEMUKJD/KJD.csproj.user
index ae62c83..5149de2 100644
--- a/TEMUKJD/KJD.csproj.user
+++ b/TEMUKJD/KJD.csproj.user
@@ -10,7 +10,7 @@
zh-CN
false
- Production
+ Development
false
diff --git a/TEMUKJD/KJDForms/SystemForms/SystemGoodsComplianceForm.Designer.cs b/TEMUKJD/KJDForms/SystemForms/SystemGoodsComplianceForm.Designer.cs
index f00358c..fbbba11 100644
--- a/TEMUKJD/KJDForms/SystemForms/SystemGoodsComplianceForm.Designer.cs
+++ b/TEMUKJD/KJDForms/SystemForms/SystemGoodsComplianceForm.Designer.cs
@@ -22,165 +22,346 @@ namespace TemuKJD.KJDForms.SystemForms
private void InitializeComponent()
{
- this.imagesGroup = new GroupBox();
- this.mainLabel = new Label();
- this.main = new ComboBox();
- this.mainCount = new NumericUpDown();
- this.mainUnit = new Label();
- this.detailLabel = new Label();
- this.detail = new ComboBox();
- this.detailCount = new NumericUpDown();
- this.detailUnit = new Label();
- this.sku = new CheckBox();
- this.keywordsGroup = new GroupBox();
- this.keywords = new TextBox();
- this.keywordsHint = new Label();
- this.btnSaveDetection = new Button();
- this.imagesGroup.SuspendLayout();
- this.keywordsGroup.SuspendLayout();
- ((System.ComponentModel.ISupportInitialize)(this.mainCount)).BeginInit();
- ((System.ComponentModel.ISupportInitialize)(this.detailCount)).BeginInit();
- this.SuspendLayout();
+ this.imagesGroup = new System.Windows.Forms.GroupBox();
+ this.mainLabel = new System.Windows.Forms.Label();
+ this.main = new System.Windows.Forms.ComboBox();
+ this.mainCount = new System.Windows.Forms.NumericUpDown();
+ this.mainUnit = new System.Windows.Forms.Label();
+ this.detailLabel = new System.Windows.Forms.Label();
+ this.detail = new System.Windows.Forms.ComboBox();
+ this.detailCount = new System.Windows.Forms.NumericUpDown();
+ this.detailUnit = new System.Windows.Forms.Label();
+ this.sku = new System.Windows.Forms.CheckBox();
+ this.keywordsGroup = new System.Windows.Forms.GroupBox();
+ this.keywords = new System.Windows.Forms.TextBox();
+ this.keywordsHint = new System.Windows.Forms.Label();
+ this.btnSaveDetection = new System.Windows.Forms.Button();
+ this.groupBox1 = new System.Windows.Forms.GroupBox();
+ this.num_points = new System.Windows.Forms.NumericUpDown();
+ this.lb_imagequtoa = new System.Windows.Forms.Label();
+ this.label1 = new System.Windows.Forms.Label();
+ this.label3 = new System.Windows.Forms.Label();
+ this.btn_Exchange = new System.Windows.Forms.Button();
+ this.label4 = new System.Windows.Forms.Label();
+ this.imagesGroup.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.mainCount)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.detailCount)).BeginInit();
+ this.keywordsGroup.SuspendLayout();
+ this.groupBox1.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.num_points)).BeginInit();
+ this.SuspendLayout();
+ //
+ // imagesGroup
+ //
+ this.imagesGroup.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
+ | System.Windows.Forms.AnchorStyles.Right)));
+ this.imagesGroup.Controls.Add(this.mainLabel);
+ this.imagesGroup.Controls.Add(this.main);
+ this.imagesGroup.Controls.Add(this.mainCount);
+ this.imagesGroup.Controls.Add(this.mainUnit);
+ this.imagesGroup.Controls.Add(this.detailLabel);
+ this.imagesGroup.Controls.Add(this.detail);
+ this.imagesGroup.Controls.Add(this.detailCount);
+ this.imagesGroup.Controls.Add(this.detailUnit);
+ this.imagesGroup.Controls.Add(this.sku);
+ this.imagesGroup.Location = new System.Drawing.Point(20, 71);
+ this.imagesGroup.Name = "imagesGroup";
+ this.imagesGroup.Size = new System.Drawing.Size(760, 153);
+ this.imagesGroup.TabIndex = 0;
+ this.imagesGroup.TabStop = false;
+ this.imagesGroup.Text = "检测图片";
+ //
+ // mainLabel
+ //
+ this.mainLabel.AutoSize = true;
+ this.mainLabel.Location = new System.Drawing.Point(16, 34);
+ this.mainLabel.Name = "mainLabel";
+ this.mainLabel.Size = new System.Drawing.Size(56, 17);
+ this.mainLabel.TabIndex = 0;
+ this.mainLabel.Text = "商品主图";
+ //
+ // main
+ //
+ this.main.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+ this.main.Items.AddRange(new object[] {
+ "全部",
+ "前几张"});
+ this.main.Location = new System.Drawing.Point(106, 30);
+ this.main.Name = "main";
+ this.main.Size = new System.Drawing.Size(110, 25);
+ this.main.TabIndex = 1;
+ this.main.SelectedIndexChanged += new System.EventHandler(this.ImageRangeChanged);
+ //
+ // mainCount
+ //
+ this.mainCount.AccessibleName = "商品主图检测张数";
+ this.mainCount.Enabled = false;
+ this.mainCount.Location = new System.Drawing.Point(228, 30);
+ this.mainCount.Maximum = new decimal(new int[] {
+ 999,
+ 0,
+ 0,
+ 0});
+ this.mainCount.Minimum = new decimal(new int[] {
+ 1,
+ 0,
+ 0,
+ 0});
+ this.mainCount.Name = "mainCount";
+ this.mainCount.Size = new System.Drawing.Size(60, 23);
+ this.mainCount.TabIndex = 2;
+ this.mainCount.Value = new decimal(new int[] {
+ 1,
+ 0,
+ 0,
+ 0});
+ //
+ // mainUnit
+ //
+ this.mainUnit.AutoSize = true;
+ this.mainUnit.Location = new System.Drawing.Point(294, 34);
+ this.mainUnit.Name = "mainUnit";
+ this.mainUnit.Size = new System.Drawing.Size(20, 17);
+ this.mainUnit.TabIndex = 3;
+ this.mainUnit.Text = "张";
+ //
+ // detailLabel
+ //
+ this.detailLabel.AutoSize = true;
+ this.detailLabel.Location = new System.Drawing.Point(16, 72);
+ this.detailLabel.Name = "detailLabel";
+ this.detailLabel.Size = new System.Drawing.Size(44, 17);
+ this.detailLabel.TabIndex = 4;
+ this.detailLabel.Text = "详情图";
+ //
+ // detail
+ //
+ this.detail.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+ this.detail.Items.AddRange(new object[] {
+ "不检测",
+ "前几张",
+ "全部"});
+ this.detail.Location = new System.Drawing.Point(106, 68);
+ this.detail.Name = "detail";
+ this.detail.Size = new System.Drawing.Size(110, 25);
+ this.detail.TabIndex = 5;
+ this.detail.SelectedIndexChanged += new System.EventHandler(this.ImageRangeChanged);
+ //
+ // detailCount
+ //
+ this.detailCount.AccessibleName = "详情图检测张数";
+ this.detailCount.Enabled = false;
+ this.detailCount.Location = new System.Drawing.Point(228, 68);
+ this.detailCount.Maximum = new decimal(new int[] {
+ 999,
+ 0,
+ 0,
+ 0});
+ this.detailCount.Minimum = new decimal(new int[] {
+ 1,
+ 0,
+ 0,
+ 0});
+ this.detailCount.Name = "detailCount";
+ this.detailCount.Size = new System.Drawing.Size(60, 23);
+ this.detailCount.TabIndex = 6;
+ this.detailCount.Value = new decimal(new int[] {
+ 1,
+ 0,
+ 0,
+ 0});
+ //
+ // detailUnit
+ //
+ this.detailUnit.AutoSize = true;
+ this.detailUnit.Location = new System.Drawing.Point(294, 72);
+ this.detailUnit.Name = "detailUnit";
+ this.detailUnit.Size = new System.Drawing.Size(20, 17);
+ this.detailUnit.TabIndex = 7;
+ this.detailUnit.Text = "张";
+ //
+ // sku
+ //
+ this.sku.AutoSize = true;
+ this.sku.Location = new System.Drawing.Point(106, 112);
+ this.sku.Name = "sku";
+ this.sku.Size = new System.Drawing.Size(107, 21);
+ this.sku.TabIndex = 8;
+ this.sku.Text = "检测 SKU 图片";
+ //
+ // keywordsGroup
+ //
+ this.keywordsGroup.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
+ | System.Windows.Forms.AnchorStyles.Right)));
+ this.keywordsGroup.Controls.Add(this.keywords);
+ this.keywordsGroup.Controls.Add(this.keywordsHint);
+ this.keywordsGroup.Location = new System.Drawing.Point(20, 238);
+ this.keywordsGroup.Name = "keywordsGroup";
+ this.keywordsGroup.Size = new System.Drawing.Size(760, 143);
+ this.keywordsGroup.TabIndex = 1;
+ this.keywordsGroup.TabStop = false;
+ this.keywordsGroup.Text = "检测关键词";
+ //
+ // keywords
+ //
+ this.keywords.AcceptsReturn = true;
+ this.keywords.AccessibleName = "检测关键词";
+ this.keywords.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
+ | System.Windows.Forms.AnchorStyles.Right)));
+ this.keywords.Location = new System.Drawing.Point(16, 27);
+ this.keywords.Multiline = true;
+ this.keywords.Name = "keywords";
+ this.keywords.ScrollBars = System.Windows.Forms.ScrollBars.Vertical;
+ this.keywords.Size = new System.Drawing.Size(728, 68);
+ this.keywords.TabIndex = 0;
+ //
+ // keywordsHint
+ //
+ this.keywordsHint.AutoSize = true;
+ this.keywordsHint.ForeColor = System.Drawing.SystemColors.GrayText;
+ this.keywordsHint.Location = new System.Drawing.Point(16, 105);
+ this.keywordsHint.Name = "keywordsHint";
+ this.keywordsHint.Size = new System.Drawing.Size(260, 17);
+ this.keywordsHint.TabIndex = 1;
+ this.keywordsHint.Text = "多个关键词可用逗号、分号、空格或换行分隔。";
+ //
+ // btnSaveDetection
+ //
+ this.btnSaveDetection.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
+ this.btnSaveDetection.Cursor = System.Windows.Forms.Cursors.Hand;
+ this.btnSaveDetection.FlatAppearance.BorderSize = 0;
+ this.btnSaveDetection.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
+ this.btnSaveDetection.ForeColor = System.Drawing.Color.White;
+ this.btnSaveDetection.Location = new System.Drawing.Point(20, 396);
+ this.btnSaveDetection.Name = "btnSaveDetection";
+ this.btnSaveDetection.Size = new System.Drawing.Size(96, 32);
+ this.btnSaveDetection.TabIndex = 2;
+ this.btnSaveDetection.Text = "保存条件";
+ this.btnSaveDetection.UseVisualStyleBackColor = false;
+ this.btnSaveDetection.Click += new System.EventHandler(this.SaveDetectionClick);
+ //
+ // groupBox1
+ //
+ this.groupBox1.Controls.Add(this.label4);
+ this.groupBox1.Controls.Add(this.btn_Exchange);
+ this.groupBox1.Controls.Add(this.label3);
+ this.groupBox1.Controls.Add(this.num_points);
+ this.groupBox1.Controls.Add(this.lb_imagequtoa);
+ this.groupBox1.Controls.Add(this.label1);
+ this.groupBox1.Location = new System.Drawing.Point(20, 12);
+ this.groupBox1.Name = "groupBox1";
+ this.groupBox1.Size = new System.Drawing.Size(760, 53);
+ this.groupBox1.TabIndex = 3;
+ this.groupBox1.TabStop = false;
+ this.groupBox1.Text = "积分兑换";
+ //
+ // num_points
+ //
+ this.num_points.Location = new System.Drawing.Point(269, 20);
+ this.num_points.Maximum = new decimal(new int[] {
+ 1000,
+ 0,
+ 0,
+ 0});
+ this.num_points.Minimum = new decimal(new int[] {
+ 1,
+ 0,
+ 0,
+ 0});
+ this.num_points.Name = "num_points";
+ this.num_points.Size = new System.Drawing.Size(120, 23);
+ this.num_points.TabIndex = 2;
+ this.num_points.Value = new decimal(new int[] {
+ 1,
+ 0,
+ 0,
+ 0});
+ //
+ // lb_imagequtoa
+ //
+ this.lb_imagequtoa.AutoSize = true;
+ this.lb_imagequtoa.Location = new System.Drawing.Point(130, 23);
+ this.lb_imagequtoa.Name = "lb_imagequtoa";
+ this.lb_imagequtoa.Size = new System.Drawing.Size(50, 17);
+ this.lb_imagequtoa.TabIndex = 1;
+ this.lb_imagequtoa.Text = "999999";
+ //
+ // label1
+ //
+ this.label1.AutoSize = true;
+ this.label1.Location = new System.Drawing.Point(65, 23);
+ this.label1.Name = "label1";
+ this.label1.Size = new System.Drawing.Size(68, 17);
+ this.label1.TabIndex = 0;
+ this.label1.Text = "检测图片:";
+ //
+ // label3
+ //
+ this.label3.AutoSize = true;
+ this.label3.Location = new System.Drawing.Point(195, 23);
+ this.label3.Name = "label3";
+ this.label3.Size = new System.Drawing.Size(56, 17);
+ this.label3.TabIndex = 3;
+ this.label3.Text = "积分兑换";
+ //
+ // btn_Exchange
+ //
+ this.btn_Exchange.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
+ this.btn_Exchange.Cursor = System.Windows.Forms.Cursors.Hand;
+ this.btn_Exchange.FlatAppearance.BorderSize = 0;
+ this.btn_Exchange.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
+ this.btn_Exchange.ForeColor = System.Drawing.Color.White;
+ this.btn_Exchange.Location = new System.Drawing.Point(395, 19);
+ this.btn_Exchange.Name = "btn_Exchange";
+ this.btn_Exchange.Size = new System.Drawing.Size(68, 24);
+ this.btn_Exchange.TabIndex = 4;
+ this.btn_Exchange.Text = "兑换";
+ this.btn_Exchange.UseVisualStyleBackColor = false;
+ this.btn_Exchange.Click += new System.EventHandler(this.btn_Exchange_Click);
+ //
+ // label4
+ //
+ this.label4.AutoSize = true;
+ this.label4.ForeColor = System.Drawing.SystemColors.ControlDark;
+ this.label4.Location = new System.Drawing.Point(478, 23);
+ this.label4.Name = "label4";
+ this.label4.Size = new System.Drawing.Size(165, 17);
+ this.label4.TabIndex = 5;
+ this.label4.Text = "兑换比例:1积分=100张图片";
+ //
+ // SystemGoodsComplianceForm
+ //
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
+ this.AutoScroll = true;
+ this.AutoScrollMinSize = new System.Drawing.Size(365, 390);
+ this.BackColor = System.Drawing.Color.White;
+ this.ClientSize = new System.Drawing.Size(800, 450);
+ this.Controls.Add(this.groupBox1);
+ this.Controls.Add(this.imagesGroup);
+ this.Controls.Add(this.keywordsGroup);
+ this.Controls.Add(this.btnSaveDetection);
+ this.Font = new System.Drawing.Font("微软雅黑", 9F);
+ this.Name = "SystemGoodsComplianceForm";
+ this.Text = "商品 AI 检测";
+ this.imagesGroup.ResumeLayout(false);
+ this.imagesGroup.PerformLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.mainCount)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.detailCount)).EndInit();
+ this.keywordsGroup.ResumeLayout(false);
+ this.keywordsGroup.PerformLayout();
+ this.groupBox1.ResumeLayout(false);
+ this.groupBox1.PerformLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.num_points)).EndInit();
+ this.ResumeLayout(false);
- this.imagesGroup.Name = "imagesGroup";
- this.imagesGroup.Location = new Point(20, 16);
- this.imagesGroup.TabIndex = 0;
- this.imagesGroup.Size = new Size(760, 153);
- this.imagesGroup.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right;
- this.imagesGroup.Text = "检测图片";
- this.imagesGroup.Controls.Add(this.mainLabel);
- this.imagesGroup.Controls.Add(this.main);
- this.imagesGroup.Controls.Add(this.mainCount);
- this.imagesGroup.Controls.Add(this.mainUnit);
- this.imagesGroup.Controls.Add(this.detailLabel);
- this.imagesGroup.Controls.Add(this.detail);
- this.imagesGroup.Controls.Add(this.detailCount);
- this.imagesGroup.Controls.Add(this.detailUnit);
- this.imagesGroup.Controls.Add(this.sku);
-
- this.mainLabel.Name = "mainLabel";
- this.mainLabel.Location = new Point(16, 34);
- this.mainLabel.TabIndex = 0;
- this.mainLabel.AutoSize = true;
- this.mainLabel.Text = "商品主图";
-
- this.main.Name = "main";
- this.main.Location = new Point(106, 30);
- this.main.TabIndex = 1;
- this.main.Width = 110;
- this.main.DropDownStyle = ComboBoxStyle.DropDownList;
- this.main.Items.AddRange(new object[] { "全部", "前几张" });
- this.main.SelectedIndexChanged += new System.EventHandler(this.ImageRangeChanged);
-
- this.mainCount.Name = "mainCount";
- this.mainCount.Location = new Point(228, 30);
- this.mainCount.TabIndex = 2;
- this.mainCount.Enabled = false;
- this.mainCount.Minimum = 1M;
- this.mainCount.Maximum = 999M;
- this.mainCount.Value = 1M;
- this.mainCount.Width = 60;
- this.mainCount.AccessibleName = "商品主图检测张数";
-
- this.mainUnit.Name = "mainUnit";
- this.mainUnit.Location = new Point(294, 34);
- this.mainUnit.TabIndex = 3;
- this.mainUnit.AutoSize = true;
- this.mainUnit.Text = "张";
-
- this.detailLabel.Name = "detailLabel";
- this.detailLabel.Location = new Point(16, 72);
- this.detailLabel.TabIndex = 4;
- this.detailLabel.AutoSize = true;
- this.detailLabel.Text = "详情图";
-
- this.detail.Name = "detail";
- this.detail.Location = new Point(106, 68);
- this.detail.TabIndex = 5;
- this.detail.Width = 110;
- this.detail.DropDownStyle = ComboBoxStyle.DropDownList;
- this.detail.Items.AddRange(new object[] { "不检测", "前几张", "全部" });
- this.detail.SelectedIndexChanged += new System.EventHandler(this.ImageRangeChanged);
-
- this.detailCount.Name = "detailCount";
- this.detailCount.Location = new Point(228, 68);
- this.detailCount.TabIndex = 6;
- this.detailCount.Enabled = false;
- this.detailCount.Minimum = 1M;
- this.detailCount.Maximum = 999M;
- this.detailCount.Value = 1M;
- this.detailCount.Width = 60;
- this.detailCount.AccessibleName = "详情图检测张数";
-
- this.detailUnit.Name = "detailUnit";
- this.detailUnit.Location = new Point(294, 72);
- this.detailUnit.TabIndex = 7;
- this.detailUnit.AutoSize = true;
- this.detailUnit.Text = "张";
-
- this.sku.Name = "sku";
- this.sku.Location = new Point(106, 112);
- this.sku.TabIndex = 8;
- this.sku.AutoSize = true;
- this.sku.Text = "检测 SKU 图片";
-
- this.keywordsGroup.Name = "keywordsGroup";
- this.keywordsGroup.Location = new Point(20, 183);
- this.keywordsGroup.TabIndex = 1;
- this.keywordsGroup.Size = new Size(760, 143);
- this.keywordsGroup.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right;
- this.keywordsGroup.Text = "检测关键词";
- this.keywordsGroup.Controls.Add(this.keywords);
- this.keywordsGroup.Controls.Add(this.keywordsHint);
-
- this.keywords.Name = "keywords";
- this.keywords.Location = new Point(16, 27);
- this.keywords.TabIndex = 0;
- this.keywords.Size = new Size(728, 68);
- this.keywords.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right;
- this.keywords.Multiline = true;
- this.keywords.AcceptsReturn = true;
- this.keywords.ScrollBars = ScrollBars.Vertical;
- this.keywords.AccessibleName = "检测关键词";
-
- this.keywordsHint.Name = "keywordsHint";
- this.keywordsHint.Location = new Point(16, 105);
- this.keywordsHint.TabIndex = 1;
- this.keywordsHint.AutoSize = true;
- this.keywordsHint.ForeColor = SystemColors.GrayText;
- this.keywordsHint.Text = "多个关键词可用逗号、分号、空格或换行分隔。";
-
- this.btnSaveDetection.Name = "btnSaveDetection";
- this.btnSaveDetection.Location = new Point(20, 341);
- this.btnSaveDetection.TabIndex = 2;
- this.btnSaveDetection.Size = new Size(96, 32);
- this.btnSaveDetection.Text = "保存条件";
- this.btnSaveDetection.BackColor = Color.FromArgb(63, 126, 255);
- this.btnSaveDetection.ForeColor = Color.White;
- this.btnSaveDetection.FlatStyle = FlatStyle.Flat;
- this.btnSaveDetection.UseVisualStyleBackColor = false;
- this.btnSaveDetection.Cursor = Cursors.Hand;
- this.btnSaveDetection.FlatAppearance.BorderSize = 0;
- this.btnSaveDetection.Click += new System.EventHandler(this.SaveDetectionClick);
-
- this.AutoScaleMode = AutoScaleMode.None;
- this.AutoScroll = true;
- this.AutoScrollMinSize = new Size(365, 390);
- this.BackColor = Color.White;
- this.ClientSize = new Size(800, 450);
- this.Font = new Font("微软雅黑", 9F);
- this.Controls.Add(this.imagesGroup);
- this.Controls.Add(this.keywordsGroup);
- this.Controls.Add(this.btnSaveDetection);
- this.Name = "SystemGoodsComplianceForm";
- this.Text = "商品 AI 检测";
- this.imagesGroup.ResumeLayout(false);
- this.imagesGroup.PerformLayout();
- this.keywordsGroup.ResumeLayout(false);
- this.keywordsGroup.PerformLayout();
- ((System.ComponentModel.ISupportInitialize)(this.mainCount)).EndInit();
- ((System.ComponentModel.ISupportInitialize)(this.detailCount)).EndInit();
- this.ResumeLayout(false);
}
- }
+
+ private GroupBox groupBox1;
+ private NumericUpDown num_points;
+ private Label lb_imagequtoa;
+ private Label label1;
+ private Label label4;
+ private Button btn_Exchange;
+ private Label label3;
+ }
}
diff --git a/TEMUKJD/KJDForms/SystemForms/SystemGoodsComplianceForm.cs b/TEMUKJD/KJDForms/SystemForms/SystemGoodsComplianceForm.cs
index c37c529..2cda08b 100644
--- a/TEMUKJD/KJDForms/SystemForms/SystemGoodsComplianceForm.cs
+++ b/TEMUKJD/KJDForms/SystemForms/SystemGoodsComplianceForm.cs
@@ -1,64 +1,109 @@
-using System;
-using System.Windows.Forms;
-using Work.Services;
+using AllBase;
using AllBase.Helper;
+using AllBase.Model.Result;
+using Newtonsoft.Json;
+using System;
+using System.Runtime.Remoting.Metadata.W3cXsd2001;
+using System.Threading.Tasks;
+using System.Windows.Forms;
using TemuKJD.BaseForms;
+using Work;
+using Work.Services;
namespace TemuKJD.KJDForms.SystemForms
{
- public partial class SystemGoodsComplianceForm : BaseForm
- {
- public SystemGoodsComplianceForm()
- {
- InitializeComponent();
+ public partial class SystemGoodsComplianceForm : BaseForm
+ {
+ public SystemGoodsComplianceForm()
+ {
+ InitializeComponent();
- VisibleChanged += (sender, e) => { if (Visible) LoadSettings(); };
- LoadSettings();
- }
+ VisibleChanged += (sender, e) => { if (Visible) LoadSettings(); };
+ LoadSettings();
+ }
- private void LoadSettings()
- {
- var options = GlobalConfig.GlobalSettings.GoodsCompliance ?? new ComplianceOptions();
- main.SelectedIndex = options.MainCount.HasValue ? 1 : 0;
- detail.SelectedIndex = options.DetailCount == null ? 2 : options.DetailCount == 0 ? 0 : 1;
- mainCount.Value = Math.Min(mainCount.Maximum, Math.Max(1, options.MainCount ?? 1));
- detailCount.Value = Math.Min(detailCount.Maximum, Math.Max(1, options.DetailCount ?? 1));
- sku.Checked = options.IncludeSku;
- keywords.Text = options.Keywords;
- }
+ private void LoadSettings()
+ {
+ lb_imagequtoa.Text = BaseClass.ImageAnalysisQuota.ToString();
- private void ImageRangeChanged(object sender, EventArgs e)
- {
- mainCount.Enabled = main.SelectedIndex == 1;
- detailCount.Enabled = detail.SelectedIndex == 1;
- }
- private void SaveDetectionClick(object sender, EventArgs e)
- {
- if (GoodsComplianceService.Keywords(keywords.Text).Length == 0)
- {
- MessageBox.Show(this, "请输入检测关键词。");
- keywords.Focus();
- return;
- }
- var settings = GlobalConfig.GlobalSettings;
- var previous = settings.GoodsCompliance;
- settings.GoodsCompliance = new ComplianceOptions
- {
- MainCount = main.SelectedIndex == 0 ? (int?)null : (int)mainCount.Value,
- DetailCount = detail.SelectedIndex == 2 ? (int?)null : detail.SelectedIndex == 0 ? 0 : (int)detailCount.Value,
- IncludeSku = sku.Checked,
- Keywords = keywords.Text.Trim()
- };
- try { StartUp.SaveGlobalSettings(); }
- catch (Exception ex)
- {
- settings.GoodsCompliance = previous;
- MessageBox.Show(this, "保存检测条件失败:" + ex.Message);
- return;
- }
- MessageBox.Show(this, "已保存 AI 检测条件。");
- }
- }
+ var options = GlobalConfig.GlobalSettings.GoodsCompliance ?? new ComplianceOptions();
+ main.SelectedIndex = options.MainCount.HasValue ? 1 : 0;
+ detail.SelectedIndex = options.DetailCount == null ? 2 : options.DetailCount == 0 ? 0 : 1;
+ mainCount.Value = Math.Min(mainCount.Maximum, Math.Max(1, options.MainCount ?? 1));
+ detailCount.Value = Math.Min(detailCount.Maximum, Math.Max(1, options.DetailCount ?? 1));
+ sku.Checked = options.IncludeSku;
+ keywords.Text = options.Keywords;
+ }
+
+ private void ImageRangeChanged(object sender, EventArgs e)
+ {
+ mainCount.Enabled = main.SelectedIndex == 1;
+ detailCount.Enabled = detail.SelectedIndex == 1;
+ }
+
+ private void SaveDetectionClick(object sender, EventArgs e)
+ {
+ if (GoodsComplianceService.Keywords(keywords.Text).Length == 0)
+ {
+ MessageBox.Show(this, "请输入检测关键词。");
+ keywords.Focus();
+ return;
+ }
+ var settings = GlobalConfig.GlobalSettings;
+ var previous = settings.GoodsCompliance;
+ settings.GoodsCompliance = new ComplianceOptions
+ {
+ MainCount = main.SelectedIndex == 0 ? (int?)null : (int)mainCount.Value,
+ DetailCount = detail.SelectedIndex == 2 ? (int?)null : detail.SelectedIndex == 0 ? 0 : (int)detailCount.Value,
+ IncludeSku = sku.Checked,
+ Keywords = keywords.Text.Trim()
+ };
+ try { StartUp.SaveGlobalSettings(); }
+ catch (Exception ex)
+ {
+ settings.GoodsCompliance = previous;
+ MessageBox.Show(this, "保存检测条件失败:" + ex.Message);
+ return;
+ }
+ MessageBox.Show(this, "已保存 AI 检测条件。");
+ }
+
+ private async void btn_Exchange_Click(object sender, EventArgs e)
+ {
+ try
+ {
+ btn_Exchange.Enabled = false;
+ int points = (int)num_points.Value;
+ if (BaseMsgForm.ShowConfirm($"是否要兑换 {points} 积分,共:{points * 100}张图片检测?", "提示").DialogResult != DialogResult.OK)
+ {
+ return;
+ }
+ var url = BaseClass.BuildObjString("user/BuyImageAnalysisQuota");
+ var data = UserLogin.GetSignPostData(new
+ {
+ Amount = points,
+ });
+
+ string html = await GetHtml.PostJsonAsync(url, data);
+ var ret = JsonConvert.DeserializeObject>(html);
+ if (ret.Code == 200)
+ {
+ BaseClass.ImageAnalysisQuota += ret.Data;
+ lb_imagequtoa.Text = BaseClass.ImageAnalysisQuota.ToString();
+ BaseMsgForm.ShowInfo("兑换成功");
+ }
+ }
+ catch (Exception ex)
+ {
+ BaseMsgForm.ShowInfo("兑换失败:" + ex.Message);
+ }
+ finally
+ {
+ btn_Exchange.Enabled = true;
+ }
+
+ }
+ }
}
diff --git a/TEMUKJD/KJDForms/SystemForms/SystemGoodsComplianceForm.resx b/TEMUKJD/KJDForms/SystemForms/SystemGoodsComplianceForm.resx
new file mode 100644
index 0000000..1af7de1
--- /dev/null
+++ b/TEMUKJD/KJDForms/SystemForms/SystemGoodsComplianceForm.resx
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/TEMUKJD/WXForms/ProductForms/CloudGoodsFavoriteForm.Designer.cs b/TEMUKJD/WXForms/ProductForms/CloudGoodsFavoriteForm.Designer.cs
index ea108f4..1543b12 100644
--- a/TEMUKJD/WXForms/ProductForms/CloudGoodsFavoriteForm.Designer.cs
+++ b/TEMUKJD/WXForms/ProductForms/CloudGoodsFavoriteForm.Designer.cs
@@ -57,9 +57,6 @@ namespace TemuKJD.WXForms.ProductForms
this.splitContainer2 = new System.Windows.Forms.SplitContainer();
this.pbLoading = new System.Windows.Forms.PictureBox();
this.dgvData = new TemuKJD.UserComponent.DataGridViewEx();
- this.ucSplitPage1 = new TemuKJD.UserControls.UcSplitPage();
- this.statusBar = new TemuKJD.UserControls.StatusBarUserControl();
- this.numericUpDown1 = new System.Windows.Forms.NumericUpDown();
this.colSelect = new System.Windows.Forms.DataGridViewCheckBoxColumn();
this.c_Platform = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.Column1 = new System.Windows.Forms.DataGridViewImageColumn();
@@ -68,6 +65,9 @@ namespace TemuKJD.WXForms.ProductForms
this.Column3 = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.Column4 = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colDetectionResult = new System.Windows.Forms.DataGridViewTextBoxColumn();
+ this.ucSplitPage1 = new TemuKJD.UserControls.UcSplitPage();
+ this.statusBar = new TemuKJD.UserControls.StatusBarUserControl();
+ this.numericUpDown1 = new System.Windows.Forms.NumericUpDown();
((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit();
this.splitContainer1.Panel1.SuspendLayout();
this.splitContainer1.Panel2.SuspendLayout();
@@ -223,8 +223,8 @@ namespace TemuKJD.WXForms.ProductForms
this.btnSafeDetection.Name = "btnSafeDetection";
this.btnSafeDetection.Size = new System.Drawing.Size(58, 23);
this.btnSafeDetection.Style.Alignment = System.Drawing.StringAlignment.Center;
- this.btnSafeDetection.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
- this.btnSafeDetection.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
+ this.btnSafeDetection.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(128)))), ((int)(((byte)(0)))));
+ this.btnSafeDetection.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(128)))), ((int)(((byte)(0)))));
this.btnSafeDetection.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder;
this.btnSafeDetection.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash;
this.btnSafeDetection.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None;
@@ -519,41 +519,6 @@ namespace TemuKJD.WXForms.ProductForms
this.dgvData.Size = new System.Drawing.Size(1711, 447);
this.dgvData.TabIndex = 5;
//
- // 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(1257, 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(1719, 25);
- this.statusBar.TabIndex = 1;
- this.statusBar.Visible = false;
- //
- // numericUpDown1
- //
- this.numericUpDown1.Location = new System.Drawing.Point(918, 274);
- this.numericUpDown1.Name = "numericUpDown1";
- this.numericUpDown1.Size = new System.Drawing.Size(120, 21);
- this.numericUpDown1.TabIndex = 7;
- //
// colSelect
//
this.colSelect.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.None;
@@ -629,6 +594,41 @@ namespace TemuKJD.WXForms.ProductForms
this.colDetectionResult.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
this.colDetectionResult.Width = 160;
//
+ // 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(1257, 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(1719, 25);
+ this.statusBar.TabIndex = 1;
+ this.statusBar.Visible = false;
+ //
+ // numericUpDown1
+ //
+ this.numericUpDown1.Location = new System.Drawing.Point(918, 274);
+ this.numericUpDown1.Name = "numericUpDown1";
+ this.numericUpDown1.Size = new System.Drawing.Size(120, 21);
+ this.numericUpDown1.TabIndex = 7;
+ //
// CloudGoodsFavoriteForm
//
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
diff --git a/TEMUKJD/WXForms/ProductForms/CloudGoodsFavoriteForm.cs b/TEMUKJD/WXForms/ProductForms/CloudGoodsFavoriteForm.cs
index ed9a9d9..bfe3b51 100644
--- a/TEMUKJD/WXForms/ProductForms/CloudGoodsFavoriteForm.cs
+++ b/TEMUKJD/WXForms/ProductForms/CloudGoodsFavoriteForm.cs
@@ -498,6 +498,8 @@ namespace TemuKJD.WXForms.ProductForms
///
private async void btnSafeDetection_Click(object sender, EventArgs e)
{
+ BaseMsgForm.ShowInfo($"当前AI检测剩余:{BaseClass.ImageAnalysisQuota}张");
+
if (detection != null)
{
detection.Cancel();
diff --git a/TEMUKJD/WXForms/ProductForms/WXUserCollectAuthProdListForm.Designer.cs b/TEMUKJD/WXForms/ProductForms/WXUserCollectAuthProdListForm.Designer.cs
index 2aeb735..f9fa647 100644
--- a/TEMUKJD/WXForms/ProductForms/WXUserCollectAuthProdListForm.Designer.cs
+++ b/TEMUKJD/WXForms/ProductForms/WXUserCollectAuthProdListForm.Designer.cs
@@ -30,23 +30,23 @@ namespace TemuKJD.WXForms.ProductForms
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.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle3 = new System.Windows.Forms.DataGridViewCellStyle();
- System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle4 = new System.Windows.Forms.DataGridViewCellStyle();
- System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle5 = new System.Windows.Forms.DataGridViewCellStyle();
- System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle6 = new System.Windows.Forms.DataGridViewCellStyle();
- System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle7 = new System.Windows.Forms.DataGridViewCellStyle();
- System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle8 = new System.Windows.Forms.DataGridViewCellStyle();
- System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle9 = new System.Windows.Forms.DataGridViewCellStyle();
- System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle10 = new System.Windows.Forms.DataGridViewCellStyle();
- System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle11 = new System.Windows.Forms.DataGridViewCellStyle();
- System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle12 = new System.Windows.Forms.DataGridViewCellStyle();
- System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle13 = new System.Windows.Forms.DataGridViewCellStyle();
- System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle14 = new System.Windows.Forms.DataGridViewCellStyle();
- System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle15 = new System.Windows.Forms.DataGridViewCellStyle();
- System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle16 = new System.Windows.Forms.DataGridViewCellStyle();
- System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle17 = new System.Windows.Forms.DataGridViewCellStyle();
+ System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle18 = new System.Windows.Forms.DataGridViewCellStyle();
+ System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle19 = new System.Windows.Forms.DataGridViewCellStyle();
+ System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle20 = new System.Windows.Forms.DataGridViewCellStyle();
+ System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle21 = new System.Windows.Forms.DataGridViewCellStyle();
+ System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle22 = new System.Windows.Forms.DataGridViewCellStyle();
+ System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle23 = new System.Windows.Forms.DataGridViewCellStyle();
+ System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle24 = new System.Windows.Forms.DataGridViewCellStyle();
+ System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle25 = new System.Windows.Forms.DataGridViewCellStyle();
+ System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle26 = new System.Windows.Forms.DataGridViewCellStyle();
+ System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle27 = new System.Windows.Forms.DataGridViewCellStyle();
+ System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle28 = new System.Windows.Forms.DataGridViewCellStyle();
+ System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle29 = new System.Windows.Forms.DataGridViewCellStyle();
+ System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle30 = new System.Windows.Forms.DataGridViewCellStyle();
+ System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle31 = new System.Windows.Forms.DataGridViewCellStyle();
+ System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle32 = new System.Windows.Forms.DataGridViewCellStyle();
+ System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle33 = new System.Windows.Forms.DataGridViewCellStyle();
+ System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle34 = new System.Windows.Forms.DataGridViewCellStyle();
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(WXUserCollectAuthProdListForm));
this.splitContainer1 = new System.Windows.Forms.SplitContainer();
this.btn_import_wx = new DevComponents.DotNetBar.PanelEx();
@@ -95,6 +95,8 @@ namespace TemuKJD.WXForms.ProductForms
this.dtpStart = new System.Windows.Forms.DateTimePicker();
this.dtpEnd = new System.Windows.Forms.DateTimePicker();
this.label10 = new System.Windows.Forms.Label();
+ this.txt_listing_time = new System.Windows.Forms.TextBox();
+ this.btnSafeDetection = new DevComponents.DotNetBar.PanelEx();
this.label7 = new System.Windows.Forms.Label();
this.splitContainer2 = new System.Windows.Forms.SplitContainer();
this.lblRelation = new System.Windows.Forms.Label();
@@ -152,10 +154,10 @@ namespace TemuKJD.WXForms.ProductForms
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.colDetectionResult = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.ucSplitPage1 = new TemuKJD.UserControls.UcSplitPage();
this.statusBar = new TemuKJD.UserControls.StatusBarUserControl();
this.toolTip1 = new System.Windows.Forms.ToolTip(this.components);
- this.txt_listing_time = new System.Windows.Forms.TextBox();
((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit();
this.splitContainer1.Panel1.SuspendLayout();
this.splitContainer1.Panel2.SuspendLayout();
@@ -611,6 +613,7 @@ namespace TemuKJD.WXForms.ProductForms
this.tableLayoutPanel1.Controls.Add(this.dtpEnd, 3, 2);
this.tableLayoutPanel1.Controls.Add(this.label10, 10, 2);
this.tableLayoutPanel1.Controls.Add(this.txt_listing_time, 11, 2);
+ this.tableLayoutPanel1.Controls.Add(this.btnSafeDetection, 5, 2);
this.tableLayoutPanel1.Location = new System.Drawing.Point(4, 6);
this.tableLayoutPanel1.Name = "tableLayoutPanel1";
this.tableLayoutPanel1.RowCount = 3;
@@ -987,7 +990,44 @@ namespace TemuKJD.WXForms.ProductForms
this.label10.Size = new System.Drawing.Size(56, 17);
this.label10.TabIndex = 983;
this.label10.Text = "上架日期";
- this.toolTip1.SetToolTip(this.label10, "导入数据时超出时间(天)范围的不导入");
+ //
+ // txt_listing_time
+ //
+ this.txt_listing_time.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
+ | System.Windows.Forms.AnchorStyles.Right)));
+ this.txt_listing_time.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
+ this.txt_listing_time.Font = new System.Drawing.Font("微软雅黑", 10F);
+ this.txt_listing_time.Location = new System.Drawing.Point(888, 73);
+ this.txt_listing_time.Margin = new System.Windows.Forms.Padding(0, 3, 3, 3);
+ this.txt_listing_time.Name = "txt_listing_time";
+ this.txt_listing_time.Size = new System.Drawing.Size(101, 25);
+ this.txt_listing_time.TabIndex = 984;
+ this.txt_listing_time.Text = "365";
+ //
+ // btnSafeDetection
+ //
+ this.btnSafeDetection.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
+ this.btnSafeDetection.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
+ this.btnSafeDetection.Cursor = System.Windows.Forms.Cursors.Hand;
+ this.btnSafeDetection.DisabledBackColor = System.Drawing.Color.Empty;
+ this.btnSafeDetection.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+ this.btnSafeDetection.Location = new System.Drawing.Point(388, 73);
+ this.btnSafeDetection.Name = "btnSafeDetection";
+ this.btnSafeDetection.Size = new System.Drawing.Size(96, 25);
+ this.btnSafeDetection.Style.Alignment = System.Drawing.StringAlignment.Center;
+ this.btnSafeDetection.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
+ this.btnSafeDetection.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
+ this.btnSafeDetection.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder;
+ this.btnSafeDetection.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash;
+ this.btnSafeDetection.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None;
+ this.btnSafeDetection.Style.ForeColor.Color = System.Drawing.Color.White;
+ this.btnSafeDetection.Style.GradientAngle = 90;
+ this.btnSafeDetection.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center;
+ this.btnSafeDetection.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255)))));
+ this.btnSafeDetection.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255)))));
+ this.btnSafeDetection.TabIndex = 1198;
+ this.btnSafeDetection.Text = "AI检测";
+ this.btnSafeDetection.Click += new System.EventHandler(this.btnSafeDetection_Click);
//
// label7
//
@@ -1036,14 +1076,14 @@ namespace TemuKJD.WXForms.ProductForms
this.splitContainer2.Panel2.Controls.Add(this.ucSplitPage1);
this.splitContainer2.Panel2.Controls.Add(this.statusBar);
this.splitContainer2.Size = new System.Drawing.Size(1438, 567);
- this.splitContainer2.SplitterDistance = 538;
+ this.splitContainer2.SplitterDistance = 537;
this.splitContainer2.TabIndex = 0;
//
// lblRelation
//
this.lblRelation.Anchor = System.Windows.Forms.AnchorStyles.Right;
this.lblRelation.AutoSize = true;
- this.lblRelation.Location = new System.Drawing.Point(246, 69);
+ this.lblRelation.Location = new System.Drawing.Point(246, 68);
this.lblRelation.Margin = new System.Windows.Forms.Padding(3, 0, 0, 0);
this.lblRelation.Name = "lblRelation";
this.lblRelation.Size = new System.Drawing.Size(68, 17);
@@ -1055,7 +1095,7 @@ namespace TemuKJD.WXForms.ProductForms
//
this.pbLoading.Anchor = System.Windows.Forms.AnchorStyles.None;
this.pbLoading.Image = global::TemuKJD.Properties.Resources.loading_blue;
- this.pbLoading.Location = new System.Drawing.Point(694, 244);
+ this.pbLoading.Location = new System.Drawing.Point(694, 243);
this.pbLoading.Name = "pbLoading";
this.pbLoading.Size = new System.Drawing.Size(50, 50);
this.pbLoading.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage;
@@ -1066,7 +1106,7 @@ namespace TemuKJD.WXForms.ProductForms
//
this.label16.Anchor = System.Windows.Forms.AnchorStyles.Right;
this.label16.AutoSize = true;
- this.label16.Location = new System.Drawing.Point(22, 197);
+ this.label16.Location = new System.Drawing.Point(22, 196);
this.label16.Margin = new System.Windows.Forms.Padding(3, 0, 0, 0);
this.label16.Name = "label16";
this.label16.Size = new System.Drawing.Size(69, 17);
@@ -1077,7 +1117,7 @@ namespace TemuKJD.WXForms.ProductForms
// txtRealCoid
//
this.txtRealCoid.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right)));
- this.txtRealCoid.Location = new System.Drawing.Point(91, 129);
+ this.txtRealCoid.Location = new System.Drawing.Point(91, 128);
this.txtRealCoid.Margin = new System.Windows.Forms.Padding(0, 3, 3, 3);
this.txtRealCoid.Name = "txtRealCoid";
this.txtRealCoid.Size = new System.Drawing.Size(133, 23);
@@ -1087,7 +1127,7 @@ namespace TemuKJD.WXForms.ProductForms
// 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(91, 194);
+ this.txtSKC.Location = new System.Drawing.Point(91, 193);
this.txtSKC.Margin = new System.Windows.Forms.Padding(0, 3, 3, 3);
this.txtSKC.Name = "txtSKC";
this.txtSKC.Size = new System.Drawing.Size(133, 23);
@@ -1098,7 +1138,7 @@ namespace TemuKJD.WXForms.ProductForms
//
this.label13.Anchor = System.Windows.Forms.AnchorStyles.Right;
this.label13.AutoSize = true;
- this.label13.Location = new System.Drawing.Point(23, 163);
+ this.label13.Location = new System.Drawing.Point(23, 162);
this.label13.Margin = new System.Windows.Forms.Padding(3, 0, 0, 0);
this.label13.Name = "label13";
this.label13.Size = new System.Drawing.Size(68, 17);
@@ -1109,7 +1149,7 @@ namespace TemuKJD.WXForms.ProductForms
// txtSecretStyleCode
//
this.txtSecretStyleCode.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right)));
- this.txtSecretStyleCode.Location = new System.Drawing.Point(91, 37);
+ this.txtSecretStyleCode.Location = new System.Drawing.Point(91, 36);
this.txtSecretStyleCode.Margin = new System.Windows.Forms.Padding(0, 3, 3, 3);
this.txtSecretStyleCode.Name = "txtSecretStyleCode";
this.txtSecretStyleCode.Size = new System.Drawing.Size(133, 23);
@@ -1120,7 +1160,7 @@ namespace TemuKJD.WXForms.ProductForms
//
this.label1.Anchor = System.Windows.Forms.AnchorStyles.Right;
this.label1.AutoSize = true;
- this.label1.Location = new System.Drawing.Point(22, 133);
+ this.label1.Location = new System.Drawing.Point(22, 132);
this.label1.Margin = new System.Windows.Forms.Padding(3, 0, 0, 0);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(69, 17);
@@ -1131,7 +1171,7 @@ namespace TemuKJD.WXForms.ProductForms
// chkWXComplateProd
//
this.chkWXComplateProd.Anchor = System.Windows.Forms.AnchorStyles.Left;
- this.chkWXComplateProd.Location = new System.Drawing.Point(25, 233);
+ this.chkWXComplateProd.Location = new System.Drawing.Point(25, 232);
this.chkWXComplateProd.Margin = new System.Windows.Forms.Padding(6, 3, 3, 3);
this.chkWXComplateProd.Name = "chkWXComplateProd";
this.chkWXComplateProd.Size = new System.Drawing.Size(87, 21);
@@ -1144,7 +1184,7 @@ namespace TemuKJD.WXForms.ProductForms
//
this.lblGroup.Anchor = System.Windows.Forms.AnchorStyles.Right;
this.lblGroup.AutoSize = true;
- this.lblGroup.Location = new System.Drawing.Point(270, 37);
+ this.lblGroup.Location = new System.Drawing.Point(270, 36);
this.lblGroup.Margin = new System.Windows.Forms.Padding(3, 0, 0, 0);
this.lblGroup.Name = "lblGroup";
this.lblGroup.Size = new System.Drawing.Size(44, 17);
@@ -1156,7 +1196,7 @@ namespace TemuKJD.WXForms.ProductForms
//
this.cmbGroupFilter.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right)));
this.cmbGroupFilter.FormattingEnabled = true;
- this.cmbGroupFilter.Location = new System.Drawing.Point(314, 34);
+ this.cmbGroupFilter.Location = new System.Drawing.Point(314, 33);
this.cmbGroupFilter.Margin = new System.Windows.Forms.Padding(0, 3, 3, 3);
this.cmbGroupFilter.Name = "cmbGroupFilter";
this.cmbGroupFilter.Size = new System.Drawing.Size(146, 25);
@@ -1167,7 +1207,7 @@ namespace TemuKJD.WXForms.ProductForms
//
this.label15.Anchor = System.Windows.Forms.AnchorStyles.Right;
this.label15.AutoSize = true;
- this.label15.Location = new System.Drawing.Point(47, 40);
+ this.label15.Location = new System.Drawing.Point(47, 39);
this.label15.Margin = new System.Windows.Forms.Padding(3, 0, 0, 0);
this.label15.Name = "label15";
this.label15.Size = new System.Drawing.Size(44, 17);
@@ -1178,7 +1218,7 @@ namespace TemuKJD.WXForms.ProductForms
// 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(91, 67);
+ this.txtExtCode.Location = new System.Drawing.Point(91, 66);
this.txtExtCode.Margin = new System.Windows.Forms.Padding(0, 3, 3, 3);
this.txtExtCode.Name = "txtExtCode";
this.txtExtCode.Size = new System.Drawing.Size(133, 23);
@@ -1189,7 +1229,7 @@ namespace TemuKJD.WXForms.ProductForms
//
this.label4.Anchor = System.Windows.Forms.AnchorStyles.Right;
this.label4.AutoSize = true;
- this.label4.Location = new System.Drawing.Point(47, 70);
+ this.label4.Location = new System.Drawing.Point(47, 69);
this.label4.Margin = new System.Windows.Forms.Padding(3, 0, 0, 0);
this.label4.Name = "label4";
this.label4.Size = new System.Drawing.Size(44, 17);
@@ -1206,7 +1246,7 @@ namespace TemuKJD.WXForms.ProductForms
"是",
"否",
"导出未拉回"});
- this.cmbExportToOutServer.Location = new System.Drawing.Point(91, 159);
+ this.cmbExportToOutServer.Location = new System.Drawing.Point(91, 158);
this.cmbExportToOutServer.Margin = new System.Windows.Forms.Padding(0, 3, 3, 3);
this.cmbExportToOutServer.Name = "cmbExportToOutServer";
this.cmbExportToOutServer.Size = new System.Drawing.Size(133, 25);
@@ -1221,7 +1261,7 @@ namespace TemuKJD.WXForms.ProductForms
"",
"是",
"否"});
- this.cmbRelation.Location = new System.Drawing.Point(314, 69);
+ this.cmbRelation.Location = new System.Drawing.Point(314, 68);
this.cmbRelation.Margin = new System.Windows.Forms.Padding(0, 3, 3, 3);
this.cmbRelation.Name = "cmbRelation";
this.cmbRelation.Size = new System.Drawing.Size(146, 25);
@@ -1235,7 +1275,7 @@ namespace TemuKJD.WXForms.ProductForms
this.cmbSort.Items.AddRange(new object[] {
"入库时间",
"认领总数"});
- this.cmbSort.Location = new System.Drawing.Point(91, 96);
+ this.cmbSort.Location = new System.Drawing.Point(91, 95);
this.cmbSort.Margin = new System.Windows.Forms.Padding(0, 3, 3, 3);
this.cmbSort.Name = "cmbSort";
this.cmbSort.Size = new System.Drawing.Size(133, 25);
@@ -1247,7 +1287,7 @@ namespace TemuKJD.WXForms.ProductForms
//
this.label6.Anchor = System.Windows.Forms.AnchorStyles.Right;
this.label6.AutoSize = true;
- this.label6.Location = new System.Drawing.Point(47, 100);
+ this.label6.Location = new System.Drawing.Point(47, 99);
this.label6.Margin = new System.Windows.Forms.Padding(3, 0, 0, 0);
this.label6.Name = "label6";
this.label6.Size = new System.Drawing.Size(44, 17);
@@ -1259,20 +1299,20 @@ namespace TemuKJD.WXForms.ProductForms
//
this.dgvDbProduct.AllowUserToAddRows = false;
this.dgvDbProduct.AllowUserToDeleteRows = false;
- dataGridViewCellStyle1.BackColor = System.Drawing.Color.WhiteSmoke;
- this.dgvDbProduct.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle1;
+ dataGridViewCellStyle18.BackColor = System.Drawing.Color.WhiteSmoke;
+ this.dgvDbProduct.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle18;
this.dgvDbProduct.AutoRowNumber = true;
this.dgvDbProduct.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.Fill;
this.dgvDbProduct.BackgroundColor = System.Drawing.Color.White;
this.dgvDbProduct.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.dgvDbProduct.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle2;
+ dataGridViewCellStyle19.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
+ dataGridViewCellStyle19.BackColor = System.Drawing.SystemColors.Control;
+ dataGridViewCellStyle19.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+ dataGridViewCellStyle19.ForeColor = System.Drawing.SystemColors.WindowText;
+ dataGridViewCellStyle19.SelectionBackColor = System.Drawing.SystemColors.Highlight;
+ dataGridViewCellStyle19.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
+ dataGridViewCellStyle19.WrapMode = System.Windows.Forms.DataGridViewTriState.False;
+ this.dgvDbProduct.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle19;
this.dgvDbProduct.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
this.dgvDbProduct.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
this.colSelect,
@@ -1310,14 +1350,15 @@ namespace TemuKJD.WXForms.ProductForms
this.colMdyTime,
this.col_edit,
this.col_delete,
- this.col_select_product});
+ this.col_select_product,
+ this.colDetectionResult});
this.dgvDbProduct.Dock = System.Windows.Forms.DockStyle.Fill;
this.dgvDbProduct.Location = new System.Drawing.Point(4, 0);
this.dgvDbProduct.MultiSelectCheckBox = true;
this.dgvDbProduct.Name = "dgvDbProduct";
this.dgvDbProduct.ReadOnly = true;
this.dgvDbProduct.RowTemplate.Height = 23;
- this.dgvDbProduct.Size = new System.Drawing.Size(1430, 538);
+ this.dgvDbProduct.Size = new System.Drawing.Size(1430, 537);
this.dgvDbProduct.TabIndex = 6;
this.dgvDbProduct.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dgvDbProduct_CellContentClick);
this.dgvDbProduct.Scroll += new System.Windows.Forms.ScrollEventHandler(this.dgvDbProduct_Scroll);
@@ -1355,8 +1396,8 @@ namespace TemuKJD.WXForms.ProductForms
//
// col_product_name
//
- dataGridViewCellStyle3.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
- this.col_product_name.DefaultCellStyle = dataGridViewCellStyle3;
+ dataGridViewCellStyle20.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
+ this.col_product_name.DefaultCellStyle = dataGridViewCellStyle20;
this.col_product_name.FillWeight = 140F;
this.col_product_name.HeaderText = "标题";
this.col_product_name.Name = "col_product_name";
@@ -1399,8 +1440,8 @@ namespace TemuKJD.WXForms.ProductForms
//
// col_spu_id
//
- dataGridViewCellStyle4.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
- this.col_spu_id.DefaultCellStyle = dataGridViewCellStyle4;
+ dataGridViewCellStyle21.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
+ this.col_spu_id.DefaultCellStyle = dataGridViewCellStyle21;
this.col_spu_id.HeaderText = "真实商品Id";
this.col_spu_id.Name = "col_spu_id";
this.col_spu_id.ReadOnly = true;
@@ -1422,8 +1463,8 @@ namespace TemuKJD.WXForms.ProductForms
//
// colMainCate
//
- dataGridViewCellStyle5.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
- this.colMainCate.DefaultCellStyle = dataGridViewCellStyle5;
+ dataGridViewCellStyle22.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
+ this.colMainCate.DefaultCellStyle = dataGridViewCellStyle22;
this.colMainCate.FillWeight = 50F;
this.colMainCate.HeaderText = "主类目";
this.colMainCate.Name = "colMainCate";
@@ -1431,8 +1472,8 @@ namespace TemuKJD.WXForms.ProductForms
//
// col_cat_name
//
- dataGridViewCellStyle6.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
- this.col_cat_name.DefaultCellStyle = dataGridViewCellStyle6;
+ dataGridViewCellStyle23.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
+ this.col_cat_name.DefaultCellStyle = dataGridViewCellStyle23;
this.col_cat_name.FillWeight = 60F;
this.col_cat_name.HeaderText = "类目";
this.col_cat_name.Name = "col_cat_name";
@@ -1447,8 +1488,8 @@ namespace TemuKJD.WXForms.ProductForms
//
// col_ext_code
//
- dataGridViewCellStyle7.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
- this.col_ext_code.DefaultCellStyle = dataGridViewCellStyle7;
+ dataGridViewCellStyle24.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
+ this.col_ext_code.DefaultCellStyle = dataGridViewCellStyle24;
this.col_ext_code.HeaderText = "货号";
this.col_ext_code.Name = "col_ext_code";
this.col_ext_code.ReadOnly = true;
@@ -1456,8 +1497,8 @@ namespace TemuKJD.WXForms.ProductForms
//
// colStyleCode
//
- dataGridViewCellStyle8.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
- this.colStyleCode.DefaultCellStyle = dataGridViewCellStyle8;
+ dataGridViewCellStyle25.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
+ this.colStyleCode.DefaultCellStyle = dataGridViewCellStyle25;
this.colStyleCode.HeaderText = "资料编码/真实上家";
this.colStyleCode.Name = "colStyleCode";
this.colStyleCode.ReadOnly = true;
@@ -1465,8 +1506,8 @@ namespace TemuKJD.WXForms.ProductForms
//
// colGroup
//
- dataGridViewCellStyle9.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
- this.colGroup.DefaultCellStyle = dataGridViewCellStyle9;
+ dataGridViewCellStyle26.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
+ this.colGroup.DefaultCellStyle = dataGridViewCellStyle26;
this.colGroup.HeaderText = "分组";
this.colGroup.Name = "colGroup";
this.colGroup.ReadOnly = true;
@@ -1474,8 +1515,8 @@ namespace TemuKJD.WXForms.ProductForms
//
// colPriceText
//
- dataGridViewCellStyle10.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
- this.colPriceText.DefaultCellStyle = dataGridViewCellStyle10;
+ dataGridViewCellStyle27.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
+ this.colPriceText.DefaultCellStyle = dataGridViewCellStyle27;
this.colPriceText.FillWeight = 60F;
this.colPriceText.HeaderText = "母店价格";
this.colPriceText.Name = "colPriceText";
@@ -1525,8 +1566,8 @@ namespace TemuKJD.WXForms.ProductForms
//
// col_notes
//
- dataGridViewCellStyle11.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
- this.col_notes.DefaultCellStyle = dataGridViewCellStyle11;
+ dataGridViewCellStyle28.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
+ this.col_notes.DefaultCellStyle = dataGridViewCellStyle28;
this.col_notes.FillWeight = 70F;
this.col_notes.HeaderText = "备注";
this.col_notes.Name = "col_notes";
@@ -1534,8 +1575,8 @@ namespace TemuKJD.WXForms.ProductForms
//
// colHeadWords
//
- dataGridViewCellStyle12.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
- this.colHeadWords.DefaultCellStyle = dataGridViewCellStyle12;
+ dataGridViewCellStyle29.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
+ this.colHeadWords.DefaultCellStyle = dataGridViewCellStyle29;
this.colHeadWords.HeaderText = "标题前缀";
this.colHeadWords.Name = "colHeadWords";
this.colHeadWords.ReadOnly = true;
@@ -1543,8 +1584,8 @@ namespace TemuKJD.WXForms.ProductForms
//
// colEndWords
//
- dataGridViewCellStyle13.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
- this.colEndWords.DefaultCellStyle = dataGridViewCellStyle13;
+ dataGridViewCellStyle30.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
+ this.colEndWords.DefaultCellStyle = dataGridViewCellStyle30;
this.colEndWords.HeaderText = "标题后缀";
this.colEndWords.Name = "colEndWords";
this.colEndWords.ReadOnly = true;
@@ -1552,16 +1593,16 @@ namespace TemuKJD.WXForms.ProductForms
//
// colFissionWords
//
- dataGridViewCellStyle14.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
- this.colFissionWords.DefaultCellStyle = dataGridViewCellStyle14;
+ dataGridViewCellStyle31.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
+ this.colFissionWords.DefaultCellStyle = dataGridViewCellStyle31;
this.colFissionWords.HeaderText = "裂变标题";
this.colFissionWords.Name = "colFissionWords";
this.colFissionWords.ReadOnly = true;
//
// colGetType
//
- dataGridViewCellStyle15.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
- this.colGetType.DefaultCellStyle = dataGridViewCellStyle15;
+ dataGridViewCellStyle32.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
+ this.colGetType.DefaultCellStyle = dataGridViewCellStyle32;
this.colGetType.FillWeight = 70F;
this.colGetType.HeaderText = "采集来源";
this.colGetType.Name = "colGetType";
@@ -1584,8 +1625,8 @@ namespace TemuKJD.WXForms.ProductForms
//
// colAddTime
//
- dataGridViewCellStyle16.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
- this.colAddTime.DefaultCellStyle = dataGridViewCellStyle16;
+ dataGridViewCellStyle33.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
+ this.colAddTime.DefaultCellStyle = dataGridViewCellStyle33;
this.colAddTime.FillWeight = 70F;
this.colAddTime.HeaderText = "入库时间";
this.colAddTime.Name = "colAddTime";
@@ -1593,8 +1634,8 @@ namespace TemuKJD.WXForms.ProductForms
//
// colMdyTime
//
- dataGridViewCellStyle17.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
- this.colMdyTime.DefaultCellStyle = dataGridViewCellStyle17;
+ dataGridViewCellStyle34.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
+ this.colMdyTime.DefaultCellStyle = dataGridViewCellStyle34;
this.colMdyTime.FillWeight = 70F;
this.colMdyTime.HeaderText = "更新时间";
this.colMdyTime.Name = "colMdyTime";
@@ -1627,6 +1668,16 @@ namespace TemuKJD.WXForms.ProductForms
this.col_select_product.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic;
this.col_select_product.Visible = false;
//
+ // colDetectionResult
+ //
+ this.colDetectionResult.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.None;
+ this.colDetectionResult.HeaderText = "AI检测结果";
+ this.colDetectionResult.MinimumWidth = 50;
+ this.colDetectionResult.Name = "colDetectionResult";
+ this.colDetectionResult.ReadOnly = true;
+ this.colDetectionResult.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
+ this.colDetectionResult.Width = 160;
+ //
// ucSplitPage1
//
this.ucSplitPage1.CurrentPage = 1;
@@ -1639,7 +1690,7 @@ namespace TemuKJD.WXForms.ProductForms
this.ucSplitPage1.Name = "ucSplitPage1";
this.ucSplitPage1.Padding = new System.Windows.Forms.Padding(0, 0, 1, 0);
this.ucSplitPage1.PageSize = 100;
- this.ucSplitPage1.Size = new System.Drawing.Size(453, 25);
+ this.ucSplitPage1.Size = new System.Drawing.Size(453, 26);
this.ucSplitPage1.TabIndex = 6;
this.ucSplitPage1.TotalCount = ((long)(0));
this.ucSplitPage1.TotalPage = 1;
@@ -1652,22 +1703,9 @@ namespace TemuKJD.WXForms.ProductForms
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.Size = new System.Drawing.Size(1438, 26);
this.statusBar.TabIndex = 5;
//
- // txt_listing_time
- //
- this.txt_listing_time.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
- | System.Windows.Forms.AnchorStyles.Right)));
- this.txt_listing_time.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
- this.txt_listing_time.Font = new System.Drawing.Font("微软雅黑", 10F);
- this.txt_listing_time.Location = new System.Drawing.Point(888, 73);
- this.txt_listing_time.Margin = new System.Windows.Forms.Padding(0, 3, 3, 3);
- this.txt_listing_time.Name = "txt_listing_time";
- this.txt_listing_time.Size = new System.Drawing.Size(101, 25);
- this.txt_listing_time.TabIndex = 984;
- this.txt_listing_time.Text = "365";
- //
// WXUserCollectAuthProdListForm
//
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
@@ -1764,6 +1802,7 @@ namespace TemuKJD.WXForms.ProductForms
private System.Windows.Forms.Label label8;
private System.Windows.Forms.ComboBox cmbHasFission;
private DevComponents.DotNetBar.PanelEx btnAITitleFission;
+ private System.Windows.Forms.DataGridViewTextBoxColumn colDetectionResult;
private System.Windows.Forms.DataGridViewCheckBoxColumn colSelect;
private System.Windows.Forms.DataGridViewTextBoxColumn col_db_id;
private System.Windows.Forms.DataGridViewTextBoxColumn colFromShopId;
@@ -1801,17 +1840,18 @@ namespace TemuKJD.WXForms.ProductForms
private System.Windows.Forms.DataGridViewLinkColumn col_delete;
private System.Windows.Forms.DataGridViewLinkColumn col_select_product;
private DevComponents.DotNetBar.PanelEx btnBatchEditNotes;
- private System.Windows.Forms.DateTimePicker dtpStart;
- private System.Windows.Forms.DateTimePicker dtpEnd;
- private UserComponent.UcCheckBox chkTime;
- private System.Windows.Forms.Label label9;
private DevComponents.DotNetBar.PanelEx btnEditNotes;
public System.Windows.Forms.ComboBox cmbNotes;
public System.Windows.Forms.ComboBox cmbBatchEditNotes;
private DevComponents.DotNetBar.PanelEx btnBatchEditCate;
private DevComponents.DotNetBar.PanelEx btn_import_wx;
- private System.Windows.Forms.Label label10;
private System.Windows.Forms.ToolTip toolTip1;
+ private System.Windows.Forms.Label label9;
+ private UserComponent.UcCheckBox chkTime;
+ private System.Windows.Forms.DateTimePicker dtpStart;
+ private System.Windows.Forms.DateTimePicker dtpEnd;
+ private System.Windows.Forms.Label label10;
private System.Windows.Forms.TextBox txt_listing_time;
+ private DevComponents.DotNetBar.PanelEx btnSafeDetection;
}
}
\ No newline at end of file
diff --git a/TEMUKJD/WXForms/ProductForms/WXUserCollectAuthProdListForm.cs b/TEMUKJD/WXForms/ProductForms/WXUserCollectAuthProdListForm.cs
index 4eb93c9..d8bb012 100644
--- a/TEMUKJD/WXForms/ProductForms/WXUserCollectAuthProdListForm.cs
+++ b/TEMUKJD/WXForms/ProductForms/WXUserCollectAuthProdListForm.cs
@@ -28,12 +28,14 @@ using TemuKJD.Extension;
using TemuKJD.PDDForms.ProductSelectForms;
using TemuKJD.ToolForms;
using Work;
+using Work.Services;
namespace TemuKJD.WXForms.ProductForms
{
public partial class WXUserCollectAuthProdListForm : BaseGeneralForm
{
ShopLoginInfo shop = null;
+ private CancellationTokenSource detection;
public CancellationTokenSource cancellationTokenSource { get; set; } = new CancellationTokenSource();
ConcurrentList lstTemuDbProduct = new ConcurrentList();
@@ -42,11 +44,13 @@ namespace TemuKJD.WXForms.ProductForms
public WXUserCollectAuthProdListForm()
{
InitializeComponent();
+ Disposed += (sender, e) => detection?.Cancel();
}
public WXUserCollectAuthProdListForm(ShopLoginInfo _shop)
{
InitializeComponent();
+ Disposed += (sender, e) => detection?.Cancel();
shop = _shop;
}
@@ -275,7 +279,8 @@ namespace TemuKJD.WXForms.ProductForms
prod.mdy_time.ToString("yy-MM-dd HH:mm"),
"编辑",
"删除",
- "认领"
+ "认领",
+ "未检测"
);
dgvDbProduct.Rows[rowIndex].Height = dgvDbProduct.Columns["colMainImg"].Width;
@@ -981,6 +986,7 @@ namespace TemuKJD.WXForms.ProductForms
private void WXUserProdListForm_FormClosing(object sender, FormClosingEventArgs e)
{
+ detection?.Cancel();
this.Hide();
e.Cancel = true;
}
@@ -1275,6 +1281,72 @@ namespace TemuKJD.WXForms.ProductForms
SearchDbProd(1);
}
+ private async void btnSafeDetection_Click(object sender, EventArgs e)
+ {
+ if (detection != null)
+ {
+ detection.Cancel();
+ btnSafeDetection.Text = "正在停止";
+ btnSafeDetection.Enabled = false;
+ return;
+ }
+ if (pbLoading.Visible || !btnSelect.Enabled || !btn_import_wx.Enabled)
+ {
+ BaseMsgForm.ShowInfo("请等待当前操作完成后再检测。");
+ return;
+ }
+ var rows = dgvDbProduct.Rows.Cast()
+ .Where(row => row.Cells["colSelect"].Value.ParseToBool()).ToList();
+ var ids = rows.Select(row => row.Cells["col_db_id"].Value.ParseToInt()).ToList();
+ var selected = lstTemuDbProduct.Where(prod => ids.Contains(prod.id))
+ .Select(prod => new ComplianceGoods
+ {
+ id = prod.id.ToString(),
+ name = prod.product_name,
+ image = prod.main_img,
+ type = ComplianceGoods.Library
+ }).ToList();
+ if (selected.Count == 0)
+ {
+ BaseMsgForm.ShowInfo("请选择商品");
+ return;
+ }
+ BaseMsgForm.ShowInfo($"当前AI检测剩余:{BaseClass.ImageAnalysisQuota}张");
+ var locked = splitContainer1.Panel1.Controls.Cast().Where(c => c != btnSafeDetection)
+ .Concat(new Control[] { splitContainer2 }).Where(c => c.Enabled).ToList();
+ var originalText = btnSafeDetection.Text;
+ detection = new CancellationTokenSource();
+ try
+ {
+ foreach (var control in locked) control.Enabled = false;
+ btnSafeDetection.Text = "停止检测";
+ var result = await GoodsComplianceService.DetectSelectedAsync(selected, ComplianceProductReader.Read, (id, status) =>
+ {
+ if (IsDisposed) return;
+ foreach (var row in rows.Where(r => r.Cells["col_db_id"].Value.ParseToString() == id))
+ row.Cells["colDetectionResult"].Value = status;
+ }, detection.Token);
+ if (!IsDisposed)
+ {
+ var title = result.Unfinished > 0 ? "AI 检测已停止" : "AI 检测完成";
+ BaseMsgForm.ShowInfo($"{title}:安全 {result.Safe},有风险 {result.Risk},失败 {result.Failed},未完成 {result.Unfinished}。");
+ }
+ }
+ catch (Exception ex) { if (!IsDisposed) MessageBox.Show(this, ex.Message); }
+ finally
+ {
+ detection.Dispose();
+ detection = null;
+ if (!IsDisposed)
+ {
+ foreach (var control in locked) control.Enabled = true;
+ btnSafeDetection.Text = originalText;
+ btnSafeDetection.Enabled = true;
+ }
+ }
+ }
+
+
private void btnAITitleFission_Click(object sender, EventArgs e)
{
var lstProdId = dgvDbProduct.Rows.Cast().Where(row
@@ -1375,6 +1447,5 @@ namespace TemuKJD.WXForms.ProductForms
SearchDbProd(this.ucSplitPage1.CurrentPage);
}
-
}
}
diff --git a/TEMUKJD/WXForms/ProductForms/WXUserCollectAuthProdListForm.resx b/TEMUKJD/WXForms/ProductForms/WXUserCollectAuthProdListForm.resx
index 90af2bd..d683021 100644
--- a/TEMUKJD/WXForms/ProductForms/WXUserCollectAuthProdListForm.resx
+++ b/TEMUKJD/WXForms/ProductForms/WXUserCollectAuthProdListForm.resx
@@ -117,9 +117,6 @@
System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
- 17, 17
-
True
@@ -228,6 +225,9 @@
True
+
+ 17, 17
+
diff --git a/Work/Services/GoodsComplianceService.cs b/Work/Services/GoodsComplianceService.cs
index 5a675cf..09dad1f 100644
--- a/Work/Services/GoodsComplianceService.cs
+++ b/Work/Services/GoodsComplianceService.cs
@@ -77,16 +77,46 @@ public static class GoodsComplianceService
SavePending(path, pending);
var batch = new ComplianceBatchResult { Unfinished = selected.Count };
- foreach (var item in selected)
+ foreach (ComplianceGoods item in selected)
{
if (cancellationToken.IsCancellationRequested) break;
update(item.id, "读取详情中");
ComplianceResult result;
try
{
+ //item.type
var product = await Task.Run(() => readProduct(item), cancellationToken);
result = await DetectProductAsync(product, options, words,
number => update(item.id, $"正在检测第 {number} 张图片"), cancellationToken);
+ if (result.Error == null)
+ {
+ try
+ {
+ if (item.type == ComplianceGoods.Library)
+ {
+ var url = BaseClass.BuildPDDObjString("product/SaveProductSafety");
+ var data = UserLogin.GetSignature();
+ data += "&user_name=" + BaseClass.UserName;
+ data += "&id=" + item.id;
+ string html = await GetHtml.PostJsonAsync(url, data);
+
+
+ }
+ else
+ {
+ await StoreApiClient.Instance.CloudGoods.SaveProductSafety(new SaveProductSafetyRequest
+ {
+ UserName = GetUserName(),
+ ProductId = product.ProductId,
+ IsSafe = result.Hits.Length == 0
+ });
+ }
+ }
+ catch (Exception ex)
+ {
+ result.Error = $"检测结果为{result.Status},上报失败:{ex.Message}";
+ }
+ }
}
catch (OperationCanceledException) when (cancellationToken.IsCancellationRequested)
{
@@ -149,7 +179,24 @@ public static class GoodsComplianceService
foreach (var product in products)
{
started?.Invoke(product);
- completed(product, await DetectProductAsync(product, options, words));
+ var result = await DetectProductAsync(product, options, words);
+ if (result.Error == null)
+ {
+ try
+ {
+ await StoreApiClient.Instance.CloudGoods.SaveProductSafety(new SaveProductSafetyRequest
+ {
+ UserName = GetUserName(),
+ ProductId = product.ProductId,
+ IsSafe = result.Hits.Length == 0
+ });
+ }
+ catch (Exception ex)
+ {
+ result.Error = $"检测结果为{result.Status},上报失败:{ex.Message}";
+ }
+ }
+ completed(product, result);
}
}
@@ -185,6 +232,9 @@ public static class GoodsComplianceService
var jpeg = await DownloadInspectionImageAsync(url);
cancellationToken.ThrowIfCancellationRequested();
var lines = await StoreApiClient.Instance.CloudGoods.RecognizeAsync(BaseClass.GetMd5(url), jpeg);
+
+ BaseClass.ImageAnalysisQuota -= 1;
+
var imageText = string.Join(Environment.NewLine, lines);
texts.AddRange(lines);
result.Hits = Matches(imageText, words);
@@ -202,19 +252,7 @@ public static class GoodsComplianceService
cancellationToken.ThrowIfCancellationRequested();
if (imageNumber == 0) throw new InvalidDataException("所选检测范围内没有图片。");
result.Text = string.Join(Environment.NewLine, texts);
- try
- {
- await StoreApiClient.Instance.CloudGoods.SaveProductSafety(new SaveProductSafetyRequest
- {
- UserName = GetUserName(),
- ProductId = product.ProductId,
- IsSafe = result.Hits.Length == 0
- });
- }
- catch (Exception ex)
- {
- result.Error = $"检测结果为{result.Status},上报失败:{ex.Message}";
- }
+
}
catch (OperationCanceledException) when (cancellationToken.IsCancellationRequested) { throw; }
catch (Exception ex) { result.Error = ex.Message; }
diff --git a/Work/UserLogin.cs b/Work/UserLogin.cs
index 5504f3b..224513b 100644
--- a/Work/UserLogin.cs
+++ b/Work/UserLogin.cs
@@ -101,6 +101,8 @@ namespace Work
BaseClass.OemId = BaseRegex.GetStringJson(ref html, "oem_id");
BaseClass.OemName = BaseRegex.GetStringJson(ref html, "oem_name");
BaseClass.IsOemOwner = BaseRegex.GetBoolJson(ref html, "is_oem_owner");
+
+ BaseClass.ImageAnalysisQuota = Math.Max(0, BaseRegex.GetIntJson(ref html, "image_analysis_quota"));
#if DEBUG
if (!string.IsNullOrEmpty(BaseRegex.GetStringJson(ref html, "prod_api_url")) && !BaseClass.LoginApiUrl.Contains("localhost") && !BaseClass.LoginApiUrl.Contains("127.0.0.1"))
{