From d1f40573d3db85e55f22e9e706e9f55c581c9b49 Mon Sep 17 00:00:00 2001
From: duheng <2784771470@qq.com>
Date: 星期一, 12 八月 2024 15:40:03 +0800
Subject: [PATCH] 修改界面

---
 WinFrmUI/HStation.WinFrmUI.Basic/00-SysTypeManage/SysTypeManageMainPanel.Designer.cs              |   32 +-
 WinFrmUI/HStation.WinFrmUI.Assets.Core/00-PumpProductManage/PumpProductMainPanel - 复制.resx        |  233 ++++++++++++++
 WinFrmUI/HStation.WinFrmUI.Assets.Core/00-PumpProductManage/PumpProductMainPanel - 复制.Designer.cs |  438 +++++++++++++++++++++++++++
 WinFrmUI/HStation.WinFrmUI.Assets.Core/HStation.WinFrmUI.Assets.Core.csproj                       |    4 
 WinFrmUI/HStation.WinFrmUI.Assets.Core/00-PumpProductManage/PumpProductMainPanel - 复制.cs          |  221 +++++++++++++
 5 files changed, 911 insertions(+), 17 deletions(-)

diff --git "a/WinFrmUI/HStation.WinFrmUI.Assets.Core/00-PumpProductManage/PumpProductMainPanel - \345\244\215\345\210\266.Designer.cs" "b/WinFrmUI/HStation.WinFrmUI.Assets.Core/00-PumpProductManage/PumpProductMainPanel - \345\244\215\345\210\266.Designer.cs"
new file mode 100644
index 0000000..9885756
--- /dev/null
+++ "b/WinFrmUI/HStation.WinFrmUI.Assets.Core/00-PumpProductManage/PumpProductMainPanel - \345\244\215\345\210\266.Designer.cs"
@@ -0,0 +1,438 @@
+锘� 
+namespace HStation.WinFrmUI.Xhs.PumpProduct
+{
+    partial class PumpProductMainPanel
+    {
+        /// <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 Component 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()
+        {
+            components = new System.ComponentModel.Container();
+            System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(PumpProductMainPanel));
+            ribbonControl1 = new DevExpress.XtraBars.Ribbon.RibbonControl();
+            BtnAdd = new DevExpress.XtraBars.BarButtonItem();
+            BtnEdit = new DevExpress.XtraBars.BarButtonItem();
+            BtnDelete = new DevExpress.XtraBars.BarButtonItem();
+            barBtnEditPumpCurve = new DevExpress.XtraBars.BarButtonItem();
+            BarBtnEidtPumpPart = new DevExpress.XtraBars.BarButtonItem();
+            ribbonPage1 = new DevExpress.XtraBars.Ribbon.RibbonPage();
+            ribbonPageGroup1 = new DevExpress.XtraBars.Ribbon.RibbonPageGroup();
+            dockManager1 = new DevExpress.XtraBars.Docking.DockManager(components);
+            dockPanel1 = new DevExpress.XtraBars.Docking.DockPanel();
+            dockPanel1_Container = new DevExpress.XtraBars.Docking.ControlContainer();
+            pumpSeriesTreeListCtrl1 = new PumpProductSeriesTreeListCtrl();
+            gridControl1 = new DevExpress.XtraGrid.GridControl();
+            currentViewModelBindingSource = new BindingSource(components);
+            gridView1 = new DevExpress.XtraGrid.Views.Grid.GridView();
+            colName = new DevExpress.XtraGrid.Columns.GridColumn();
+            colTagName = new DevExpress.XtraGrid.Columns.GridColumn();
+            colSortCode = new DevExpress.XtraGrid.Columns.GridColumn();
+            colDescription = new DevExpress.XtraGrid.Columns.GridColumn();
+            colRatedFlow = new DevExpress.XtraGrid.Columns.GridColumn();
+            colRatedHead = new DevExpress.XtraGrid.Columns.GridColumn();
+            colD2 = new DevExpress.XtraGrid.Columns.GridColumn();
+            colErosion = new DevExpress.XtraGrid.Columns.GridColumn();
+            colRatedEfficiency = new DevExpress.XtraGrid.Columns.GridColumn();
+            colRatedPower = new DevExpress.XtraGrid.Columns.GridColumn();
+            colRatedSpeed = new DevExpress.XtraGrid.Columns.GridColumn();
+            layoutControl1 = new DevExpress.XtraLayout.LayoutControl();
+            Root = new DevExpress.XtraLayout.LayoutControlGroup();
+            layoutControlItem2 = new DevExpress.XtraLayout.LayoutControlItem();
+            layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem();
+            popupPump = new DevExpress.XtraBars.PopupMenu(components);
+            svgImage32 = new DevExpress.Utils.SvgImageCollection(components);
+            ((System.ComponentModel.ISupportInitialize)ribbonControl1).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)dockManager1).BeginInit();
+            dockPanel1.SuspendLayout();
+            dockPanel1_Container.SuspendLayout();
+            ((System.ComponentModel.ISupportInitialize)gridControl1).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)currentViewModelBindingSource).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)gridView1).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)layoutControl1).BeginInit();
+            layoutControl1.SuspendLayout();
+            ((System.ComponentModel.ISupportInitialize)Root).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)layoutControlItem2).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)layoutControlItem1).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)popupPump).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)svgImage32).BeginInit();
+            SuspendLayout();
+            // 
+            // ribbonControl1
+            // 
+            ribbonControl1.Dock = DockStyle.None;
+            ribbonControl1.DrawGroupsBorderMode = DevExpress.Utils.DefaultBoolean.True;
+            ribbonControl1.ExpandCollapseItem.Id = 0;
+            ribbonControl1.ItemPanelStyle = DevExpress.XtraBars.Ribbon.RibbonItemPanelStyle.Classic;
+            ribbonControl1.Items.AddRange(new DevExpress.XtraBars.BarItem[] { ribbonControl1.ExpandCollapseItem, BtnAdd, BtnEdit, BtnDelete, barBtnEditPumpCurve, BarBtnEidtPumpPart });
+            ribbonControl1.Location = new Point(2, 2);
+            ribbonControl1.MaxItemId = 22;
+            ribbonControl1.Name = "ribbonControl1";
+            ribbonControl1.Pages.AddRange(new DevExpress.XtraBars.Ribbon.RibbonPage[] { ribbonPage1 });
+            ribbonControl1.ShowApplicationButton = DevExpress.Utils.DefaultBoolean.False;
+            ribbonControl1.ShowExpandCollapseButton = DevExpress.Utils.DefaultBoolean.False;
+            ribbonControl1.ShowPageHeadersInFormCaption = DevExpress.Utils.DefaultBoolean.True;
+            ribbonControl1.ShowPageHeadersMode = DevExpress.XtraBars.Ribbon.ShowPageHeadersMode.ShowOnMultiplePages;
+            ribbonControl1.Size = new Size(929, 101);
+            ribbonControl1.ToolbarLocation = DevExpress.XtraBars.Ribbon.RibbonQuickAccessToolbarLocation.Hidden;
+            // 
+            // BtnAdd
+            // 
+            BtnAdd.Caption = "娣诲姞鍨嬪彿";
+            BtnAdd.Id = 1;
+            BtnAdd.ImageOptions.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("BtnAdd.ImageOptions.SvgImage");
+            BtnAdd.Name = "BtnAdd";
+            BtnAdd.ItemClick += BtnAdd_ItemClick;
+            // 
+            // BtnEdit
+            // 
+            BtnEdit.Caption = "缂栬緫鍨嬪彿";
+            BtnEdit.Id = 2;
+            BtnEdit.ImageOptions.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("BtnEdit.ImageOptions.SvgImage");
+            BtnEdit.Name = "BtnEdit";
+            BtnEdit.ItemClick += BtnEdit_ItemClick;
+            // 
+            // BtnDelete
+            // 
+            BtnDelete.Caption = "鍒犻櫎鍨嬪彿";
+            BtnDelete.Id = 3;
+            BtnDelete.ImageOptions.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("BtnDelete.ImageOptions.SvgImage");
+            BtnDelete.Name = "BtnDelete";
+            BtnDelete.ItemClick += BtnDelete_ItemClick;
+            // 
+            // barBtnEditPumpCurve
+            // 
+            barBtnEditPumpCurve.Caption = "娉垫洸绾跨紪杈�";
+            barBtnEditPumpCurve.Id = 13;
+            barBtnEditPumpCurve.ImageOptions.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("barBtnEditPumpCurve.ImageOptions.SvgImage");
+            barBtnEditPumpCurve.Name = "barBtnEditPumpCurve";
+            barBtnEditPumpCurve.ItemClick += barBtnEditPumpCurve_ItemClickAsync;
+            // 
+            // BarBtnEidtPumpPart
+            // 
+            BarBtnEidtPumpPart.Caption = "缂栬緫娉典骇鍝佸睘鎬�";
+            BarBtnEidtPumpPart.Id = 16;
+            BarBtnEidtPumpPart.Name = "BarBtnEidtPumpPart";
+            BarBtnEidtPumpPart.ItemClick += BarBtnEidtPumpPart_ItemClick;
+            // 
+            // ribbonPage1
+            // 
+            ribbonPage1.Groups.AddRange(new DevExpress.XtraBars.Ribbon.RibbonPageGroup[] { ribbonPageGroup1 });
+            ribbonPage1.Name = "ribbonPage1";
+            ribbonPage1.Text = "ribbonPage1";
+            // 
+            // ribbonPageGroup1
+            // 
+            ribbonPageGroup1.ItemLinks.Add(BtnAdd);
+            ribbonPageGroup1.ItemLinks.Add(BtnEdit);
+            ribbonPageGroup1.ItemLinks.Add(BtnDelete);
+            ribbonPageGroup1.ItemLinks.Add(barBtnEditPumpCurve);
+            ribbonPageGroup1.Name = "ribbonPageGroup1";
+            ribbonPageGroup1.Text = "鍩虹鍔熻兘";
+            // 
+            // dockManager1
+            // 
+            dockManager1.Form = this;
+            dockManager1.RootPanels.AddRange(new DevExpress.XtraBars.Docking.DockPanel[] { dockPanel1 });
+            dockManager1.TopZIndexControls.AddRange(new string[] { "DevExpress.XtraBars.BarDockControl", "DevExpress.XtraBars.StandaloneBarDockControl", "System.Windows.Forms.MenuStrip", "System.Windows.Forms.StatusStrip", "System.Windows.Forms.StatusBar", "DevExpress.XtraBars.Ribbon.RibbonStatusBar", "DevExpress.XtraBars.Ribbon.RibbonControl", "DevExpress.XtraBars.Navigation.OfficeNavigationBar", "DevExpress.XtraBars.Navigation.TileNavPane", "DevExpress.XtraBars.TabFormControl", "DevExpress.XtraBars.FluentDesignSystem.FluentDesignFormControl", "DevExpress.XtraBars.ToolbarForm.ToolbarFormControl" });
+            // 
+            // dockPanel1
+            // 
+            dockPanel1.Controls.Add(dockPanel1_Container);
+            dockPanel1.Dock = DevExpress.XtraBars.Docking.DockingStyle.Left;
+            dockPanel1.ID = new Guid("20cba9f0-4c76-45ad-a0f6-714fb6b14171");
+            dockPanel1.Location = new Point(0, 0);
+            dockPanel1.Name = "dockPanel1";
+            dockPanel1.OriginalSize = new Size(200, 200);
+            dockPanel1.Size = new Size(200, 547);
+            dockPanel1.Text = "绯诲垪鍒楄〃";
+            // 
+            // dockPanel1_Container
+            // 
+            dockPanel1_Container.Controls.Add(pumpSeriesTreeListCtrl1);
+            dockPanel1_Container.Location = new Point(3, 26);
+            dockPanel1_Container.Name = "dockPanel1_Container";
+            dockPanel1_Container.Size = new Size(193, 518);
+            dockPanel1_Container.TabIndex = 0;
+            // 
+            // pumpSeriesTreeListCtrl1
+            // 
+            pumpSeriesTreeListCtrl1.Appearance.BackColor = SystemColors.Control;
+            pumpSeriesTreeListCtrl1.Appearance.Options.UseBackColor = true;
+            pumpSeriesTreeListCtrl1.Dock = DockStyle.Fill;
+            pumpSeriesTreeListCtrl1.Location = new Point(0, 0);
+            pumpSeriesTreeListCtrl1.Name = "pumpSeriesTreeListCtrl1";
+            pumpSeriesTreeListCtrl1.Size = new Size(193, 518);
+            pumpSeriesTreeListCtrl1.TabIndex = 0;
+            // 
+            // gridControl1
+            // 
+            gridControl1.DataSource = currentViewModelBindingSource;
+            gridControl1.Location = new Point(2, 67);
+            gridControl1.MainView = gridView1;
+            gridControl1.MenuManager = ribbonControl1;
+            gridControl1.Name = "gridControl1";
+            gridControl1.Size = new Size(929, 478);
+            gridControl1.TabIndex = 0;
+            gridControl1.ViewCollection.AddRange(new DevExpress.XtraGrid.Views.Base.BaseView[] { gridView1 });
+            // 
+            // currentViewModelBindingSource
+            // 
+            currentViewModelBindingSource.DataSource = typeof(PumpMainViewModel);
+            // 
+            // gridView1
+            // 
+            gridView1.Appearance.HeaderPanel.Options.UseTextOptions = true;
+            gridView1.Appearance.HeaderPanel.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+            gridView1.Columns.AddRange(new DevExpress.XtraGrid.Columns.GridColumn[] { colName, colTagName, colSortCode, colDescription, colRatedFlow, colRatedHead, colD2, colErosion, colRatedEfficiency, colRatedPower, colRatedSpeed });
+            gridView1.GridControl = gridControl1;
+            gridView1.Name = "gridView1";
+            gridView1.OptionsView.ShowGroupPanel = false;
+            gridView1.MouseUp += gridView1_MouseUp;
+            // 
+            // colName
+            // 
+            colName.AppearanceCell.Options.UseTextOptions = true;
+            colName.AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+            colName.Caption = "鍨嬪彿";
+            colName.FieldName = "Name";
+            colName.Name = "colName";
+            colName.Visible = true;
+            colName.VisibleIndex = 0;
+            // 
+            // colTagName
+            // 
+            colTagName.AppearanceCell.Options.UseTextOptions = true;
+            colTagName.AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+            colTagName.Caption = "鏍囩";
+            colTagName.FieldName = "TagName";
+            colTagName.Name = "colTagName";
+            colTagName.Visible = true;
+            colTagName.VisibleIndex = 8;
+            // 
+            // colSortCode
+            // 
+            colSortCode.AppearanceCell.Options.UseTextOptions = true;
+            colSortCode.AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+            colSortCode.Caption = "鎺掑簭鐮�";
+            colSortCode.FieldName = "SortCode";
+            colSortCode.Name = "colSortCode";
+            colSortCode.Visible = true;
+            colSortCode.VisibleIndex = 9;
+            // 
+            // colDescription
+            // 
+            colDescription.AppearanceCell.Options.UseTextOptions = true;
+            colDescription.AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+            colDescription.Caption = "璇存槑";
+            colDescription.FieldName = "Description";
+            colDescription.Name = "colDescription";
+            colDescription.Visible = true;
+            colDescription.VisibleIndex = 10;
+            // 
+            // colRatedFlow
+            // 
+            colRatedFlow.AppearanceCell.Options.UseTextOptions = true;
+            colRatedFlow.AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+            colRatedFlow.Caption = "棰濆畾娴侀噺(m鲁/h)";
+            colRatedFlow.FieldName = "RatedFlow";
+            colRatedFlow.Name = "colRatedFlow";
+            colRatedFlow.Visible = true;
+            colRatedFlow.VisibleIndex = 1;
+            // 
+            // colRatedHead
+            // 
+            colRatedHead.AppearanceCell.Options.UseTextOptions = true;
+            colRatedHead.AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+            colRatedHead.Caption = "棰濆畾鎵▼(m)";
+            colRatedHead.FieldName = "RatedHead";
+            colRatedHead.Name = "colRatedHead";
+            colRatedHead.Visible = true;
+            colRatedHead.VisibleIndex = 2;
+            // 
+            // colD2
+            // 
+            colD2.AppearanceCell.Options.UseTextOptions = true;
+            colD2.AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+            colD2.Caption = "鍙惰疆澶栧緞(mm)";
+            colD2.FieldName = "D2";
+            colD2.Name = "colD2";
+            colD2.Visible = true;
+            colD2.VisibleIndex = 3;
+            // 
+            // colErosion
+            // 
+            colErosion.AppearanceCell.Options.UseTextOptions = true;
+            colErosion.AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+            colErosion.Caption = "姘旇殌";
+            colErosion.FieldName = "Erosion";
+            colErosion.Name = "colErosion";
+            colErosion.Visible = true;
+            colErosion.VisibleIndex = 4;
+            // 
+            // colRatedEfficiency
+            // 
+            colRatedEfficiency.AppearanceCell.Options.UseTextOptions = true;
+            colRatedEfficiency.AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+            colRatedEfficiency.Caption = "棰濆畾鏁堢巼";
+            colRatedEfficiency.FieldName = "RatedEfficiency";
+            colRatedEfficiency.Name = "colRatedEfficiency";
+            colRatedEfficiency.Visible = true;
+            colRatedEfficiency.VisibleIndex = 5;
+            // 
+            // colRatedPower
+            // 
+            colRatedPower.AppearanceCell.Options.UseTextOptions = true;
+            colRatedPower.AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+            colRatedPower.Caption = "棰濆畾鍔熺巼";
+            colRatedPower.FieldName = "RatedPower";
+            colRatedPower.Name = "colRatedPower";
+            colRatedPower.Visible = true;
+            colRatedPower.VisibleIndex = 6;
+            // 
+            // colRatedSpeed
+            // 
+            colRatedSpeed.Caption = "棰濆畾杞��";
+            colRatedSpeed.FieldName = "RatedSpeed";
+            colRatedSpeed.Name = "colRatedSpeed";
+            colRatedSpeed.Visible = true;
+            colRatedSpeed.VisibleIndex = 7;
+            // 
+            // layoutControl1
+            // 
+            layoutControl1.Controls.Add(ribbonControl1);
+            layoutControl1.Controls.Add(gridControl1);
+            layoutControl1.Dock = DockStyle.Fill;
+            layoutControl1.Location = new Point(200, 0);
+            layoutControl1.Name = "layoutControl1";
+            layoutControl1.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new Rectangle(1270, 259, 650, 400);
+            layoutControl1.Root = Root;
+            layoutControl1.Size = new Size(933, 547);
+            layoutControl1.TabIndex = 6;
+            layoutControl1.Text = "layoutControl1";
+            // 
+            // Root
+            // 
+            Root.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+            Root.GroupBordersVisible = false;
+            Root.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { layoutControlItem2, layoutControlItem1 });
+            Root.Name = "Root";
+            Root.Padding = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0);
+            Root.Size = new Size(933, 547);
+            Root.TextVisible = false;
+            // 
+            // layoutControlItem2
+            // 
+            layoutControlItem2.Control = ribbonControl1;
+            layoutControlItem2.Location = new Point(0, 0);
+            layoutControlItem2.Name = "layoutControlItem2";
+            layoutControlItem2.Size = new Size(933, 65);
+            layoutControlItem2.TextSize = new Size(0, 0);
+            layoutControlItem2.TextVisible = false;
+            // 
+            // layoutControlItem1
+            // 
+            layoutControlItem1.Control = gridControl1;
+            layoutControlItem1.Location = new Point(0, 65);
+            layoutControlItem1.Name = "layoutControlItem1";
+            layoutControlItem1.Size = new Size(933, 482);
+            layoutControlItem1.TextSize = new Size(0, 0);
+            layoutControlItem1.TextVisible = false;
+            // 
+            // popupPump
+            // 
+            popupPump.ItemLinks.Add(BarBtnEidtPumpPart);
+            popupPump.Name = "popupPump";
+            popupPump.Ribbon = ribbonControl1;
+            // 
+            // svgImage32
+            // 
+            svgImage32.ImageSize = new Size(32, 32);
+            svgImage32.Add("bletter", "image://svgimages/outlook inspired/bletter.svg");
+            svgImage32.Add("bold", "image://svgimages/outlook inspired/bold.svg");
+            // 
+            // PumpProductMainPanel
+            // 
+            Appearance.BackColor = SystemColors.Control;
+            Appearance.Options.UseBackColor = true;
+            AutoScaleDimensions = new SizeF(7F, 14F);
+            AutoScaleMode = AutoScaleMode.Font;
+            Controls.Add(layoutControl1);
+            Controls.Add(dockPanel1);
+            Name = "PumpProductMainPanel";
+            Size = new Size(1133, 547);
+            ((System.ComponentModel.ISupportInitialize)ribbonControl1).EndInit();
+            ((System.ComponentModel.ISupportInitialize)dockManager1).EndInit();
+            dockPanel1.ResumeLayout(false);
+            dockPanel1_Container.ResumeLayout(false);
+            ((System.ComponentModel.ISupportInitialize)gridControl1).EndInit();
+            ((System.ComponentModel.ISupportInitialize)currentViewModelBindingSource).EndInit();
+            ((System.ComponentModel.ISupportInitialize)gridView1).EndInit();
+            ((System.ComponentModel.ISupportInitialize)layoutControl1).EndInit();
+            layoutControl1.ResumeLayout(false);
+            layoutControl1.PerformLayout();
+            ((System.ComponentModel.ISupportInitialize)Root).EndInit();
+            ((System.ComponentModel.ISupportInitialize)layoutControlItem2).EndInit();
+            ((System.ComponentModel.ISupportInitialize)layoutControlItem1).EndInit();
+            ((System.ComponentModel.ISupportInitialize)popupPump).EndInit();
+            ((System.ComponentModel.ISupportInitialize)svgImage32).EndInit();
+            ResumeLayout(false);
+        }
+
+        #endregion
+
+        private DevExpress.XtraBars.Ribbon.RibbonControl ribbonControl1;
+        private DevExpress.XtraBars.BarButtonItem BtnAdd;
+        private DevExpress.XtraBars.BarButtonItem BtnEdit;
+        private DevExpress.XtraBars.BarButtonItem BtnDelete;
+        private DevExpress.XtraBars.Ribbon.RibbonPage ribbonPage1;
+        private DevExpress.XtraBars.Ribbon.RibbonPageGroup ribbonPageGroup1;
+        private DevExpress.XtraBars.Docking.DockManager dockManager1;
+        private DevExpress.XtraGrid.GridControl gridControl1;
+        private DevExpress.XtraGrid.Views.Grid.GridView gridView1;
+        private DevExpress.XtraBars.Docking.DockPanel dockPanel1;
+        private DevExpress.XtraBars.Docking.ControlContainer dockPanel1_Container;
+        private PumpProductSeriesTreeListCtrl pumpSeriesTreeListCtrl1;
+        private BindingSource currentViewModelBindingSource;
+        private DevExpress.XtraGrid.Columns.GridColumn colName;
+        private DevExpress.XtraGrid.Columns.GridColumn colTagName;
+        private DevExpress.XtraGrid.Columns.GridColumn colSortCode;
+        private DevExpress.XtraGrid.Columns.GridColumn colDescription;
+        private DevExpress.XtraLayout.LayoutControl layoutControl1;
+        private DevExpress.XtraLayout.LayoutControlGroup Root;
+        private DevExpress.XtraGrid.Columns.GridColumn colRatedFlow;
+        private DevExpress.XtraGrid.Columns.GridColumn colRatedHead;
+        private DevExpress.XtraBars.BarButtonItem barBtnEditPumpCurve;
+        private DevExpress.XtraGrid.Columns.GridColumn colD2;
+        private DevExpress.XtraGrid.Columns.GridColumn colErosion;
+        private DevExpress.XtraGrid.Columns.GridColumn colRatedEfficiency;
+        private DevExpress.XtraGrid.Columns.GridColumn colRatedPower;
+        private DevExpress.XtraGrid.Columns.GridColumn colRatedSpeed;
+        private DevExpress.XtraBars.PopupMenu popupPump;
+        private DevExpress.XtraBars.BarButtonItem BarBtnEidtPumpPart;
+        private DevExpress.Utils.SvgImageCollection svgImage32;
+        private DevExpress.XtraLayout.LayoutControlItem layoutControlItem2;
+        private DevExpress.XtraLayout.LayoutControlItem layoutControlItem1;
+    }
+}
diff --git "a/WinFrmUI/HStation.WinFrmUI.Assets.Core/00-PumpProductManage/PumpProductMainPanel - \345\244\215\345\210\266.cs" "b/WinFrmUI/HStation.WinFrmUI.Assets.Core/00-PumpProductManage/PumpProductMainPanel - \345\244\215\345\210\266.cs"
new file mode 100644
index 0000000..e8d1baa
--- /dev/null
+++ "b/WinFrmUI/HStation.WinFrmUI.Assets.Core/00-PumpProductManage/PumpProductMainPanel - \345\244\215\345\210\266.cs"
@@ -0,0 +1,221 @@
+锘縩amespace HStation.WinFrmUI.Xhs.PumpProduct
+{
+    public partial class PumpProductMainPanel : DocumentPage
+    {
+        public PumpProductMainPanel()
+        {
+            InitializeComponent();
+            this.PageTitle.Caption = "姘存车绠$悊";
+            this.PageTitle.HeaderSvgImage = this.svgImage32[1];
+            this.PageTitle.SvgImageSize = new Size(24, 24);
+            this.gridView1.SetNormalView();
+            this.gridView1.RegistCustomDrawRowIndicator();
+            this.pumpSeriesTreeListCtrl1.FocusedChangedEvent += PumpSeriesTreeListCtrl1_FocusedChangedEvent;
+        }
+
+        private readonly List<PumpMainViewModel> _allBindingList = new();
+
+        private BLL.PumpMain _bll = null;
+
+        public override void InitialDataSource()
+        {
+            _bll = new BLL.PumpMain();
+            this.pumpSeriesTreeListCtrl1.SetBindingData();
+            this.currentViewModelBindingSource.DataSource = _allBindingList;
+            this.currentViewModelBindingSource.ResetBindings(false);
+        }
+
+        private async void SetBindingData()
+        {
+            _allBindingList.Clear();
+            _bll = new BLL.PumpMain();
+            var alllist = await _bll.GetAll();
+            foreach (var item in alllist)
+            {
+                _allBindingList.Add(new PumpMainViewModel(item));
+            }
+        }
+
+        //鑱氱劍鍒囨崲
+        private async void PumpSeriesTreeListCtrl1_FocusedChangedEvent(long obj, bool isgroup)
+        {
+            _allBindingList.Clear();
+            if (isgroup)
+            {
+                var alllist = await _bll.GetByPumpSeriesID(obj);
+                _allBindingList.Clear();
+                foreach (var item in alllist)
+                {
+                    _allBindingList.Add(new PumpMainViewModel(item));
+                }
+            }
+            else
+            {
+                var idlist = new BLL.PumpGroupAndMainMap().GetByGroupID(obj);
+                var alllist = await _bll.GetByIds(idlist);
+                if (alllist != null)
+                {
+                    _allBindingList.Clear();
+                    foreach (var item in alllist)
+                    {
+                        _allBindingList.Add(new PumpMainViewModel(item));
+                    }
+                }
+            }
+            this.currentViewModelBindingSource.ResetBindings(false);
+        }
+
+        //澧炲姞
+        private void BtnAdd_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
+        {
+            var dlg = new AddPumpProductMainDlg();
+            //绯诲垪ID
+            var id = this.pumpSeriesTreeListCtrl1.GetCurrentID();
+            if (id <= 0)
+            {
+                return;
+            }
+            var groupid = this.pumpSeriesTreeListCtrl1.GetCurrentGroupID();
+            Vmo.PumpGroupAndMainMap map = null;
+            if (groupid > 0)
+            {
+                map = new Vmo.PumpGroupAndMainMap();
+                map.PumpGroupID = groupid;
+            }
+            dlg.SetBindingData(id);
+            dlg.ReloadDataEvent += async (main) =>
+            {
+                var id = await _bll.InsertEx(main, map);
+                if (id > 0)
+                {
+                    var model = await _bll.GetByID(id);
+                    _allBindingList.Add(new PumpMainViewModel(model));
+                    this.currentViewModelBindingSource.ResetBindings(false);
+                    return true;
+                }
+                return false;
+            };
+            dlg.ShowDialog();
+        }
+
+        //淇敼
+        private void BtnEdit_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
+        {
+            var currentVm = this.gridView1.GetCurrentViewModel(_allBindingList);
+            if (currentVm == null)
+            {
+                MessageBoxHelper.ShowWarning("璇烽�夋嫨鏁版嵁琛岋紒");
+                return;
+            }
+            var dlg = new EditPumpProductMainDlg();
+            dlg.SetBindingData(currentVm.ID);
+            dlg.ReloadDataEvent += async (rhs) =>
+            {
+                if (await _bll.Update(rhs))
+                {
+                    currentVm.Reset(rhs);
+                    this.currentViewModelBindingSource.ResetBindings(false);
+                    return true;
+                }
+                return false;
+            };
+            dlg.ShowDialog();
+        }
+
+        //鍒犻櫎
+        private async void BtnDelete_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
+        {
+            var currentVm = this.gridView1.GetCurrentViewModel(_allBindingList);
+            if (currentVm == null)
+            {
+                MessageBoxHelper.ShowWarning("璇烽�夋嫨鏁版嵁琛岋紒");
+                return;
+            }
+            if (MessageBoxHelper.IsClickOk($"纭鍒犻櫎鏁版嵁琛�?", "鎻愮ず"))
+                return;
+            var groupresult = await _bll.DeleteMapByMainID(currentVm.ID);
+            if (groupresult)
+            {
+                _allBindingList.Remove(currentVm);
+                this.currentViewModelBindingSource.ResetBindings(false);
+                MessageBoxHelper.ShowSuccess($"鍒犻櫎鎴愬姛!");
+            }
+            else
+            {
+                MessageBoxHelper.ShowError($"鍒犻櫎澶辫触!");
+                return;
+            }
+        }
+
+        //娉垫洸绾跨紪杈�
+        private async void barBtnEditPumpCurve_ItemClickAsync(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
+        {
+            /*        var currentVm = this.gridView1.GetCurrentViewModel(_allBindingList);
+                    if (currentVm == null)
+                    {
+                        MessageBoxHelper.ShowWarning("璇烽�夋嫨鏁版嵁琛岋紒");
+                        return;
+                    }
+                    var guid = new PageGuid()
+                    {
+                        Function = "娉垫洸绾跨鐞�",
+                        TagName = currentVm.ID.ToString(),
+                        Modular = ""
+                    };
+                    if (!IsExistPage(guid, true))
+                    {
+                        var model = await _bll.GetByID(currentVm.ID);
+                        if (model == null)
+                        {
+                            MessageBoxHelper.ShowWarning($"{currentVm.Name}:PumpMainDto is null锛�");
+                            return;
+                        }
+
+                        var page = new Phart.XhsPumpCurveMainPanel();
+                        page.InitialDataSource(currentVm);
+                        page.PageTitle.Caption = guid.Function;
+                        page.PageGuid = guid;
+                        CreatePage(page, guid);
+                    }*/
+        }
+
+        //娉典骇鍝佺紪杈�
+        private void BarBtnEidtPumpPart_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
+        {
+            var currentVm = this.gridView1.GetCurrentViewModel(_allBindingList);
+            if (currentVm == null)
+            {
+                MessageBoxHelper.ShowWarning("璇烽�夋嫨鏁版嵁琛岋紒");
+                return;
+            }
+            var dlg = new EditPumpPartDlg();
+            //    var pumpmain = currentVm.Model as Vmo.PumpMain;
+            dlg.SetBindingData(currentVm.Model);
+            dlg.ReloadEvent += async (part, content, map) =>
+            {
+                var bll = new BLL.PumpPartMain();
+                var id = await bll.InsertEx(part, content, map);
+                if (id > 0)
+                {
+                    return true;
+                }
+                return false;
+            };
+
+            dlg.ShowDialog();
+        }
+
+        //琛ㄦ牸鍙冲嚮鑿滃崟
+        private void gridView1_MouseUp(object sender, MouseEventArgs e)
+        {
+            if (e.Button == MouseButtons.Right)
+            {
+                if (this.gridView1.GetCurrentViewModel(_allBindingList) != null)
+                {
+                    Point screenPoint = Cursor.Position;
+                    popupPump.ShowPopup(screenPoint);
+                }
+            }
+        }
+    }
+}
\ No newline at end of file
diff --git "a/WinFrmUI/HStation.WinFrmUI.Assets.Core/00-PumpProductManage/PumpProductMainPanel - \345\244\215\345\210\266.resx" "b/WinFrmUI/HStation.WinFrmUI.Assets.Core/00-PumpProductManage/PumpProductMainPanel - \345\244\215\345\210\266.resx"
new file mode 100644
index 0000000..625d108
--- /dev/null
+++ "b/WinFrmUI/HStation.WinFrmUI.Assets.Core/00-PumpProductManage/PumpProductMainPanel - \345\244\215\345\210\266.resx"
@@ -0,0 +1,233 @@
+锘�<?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>
+  <assembly alias="DevExpress.Data.v23.2" name="DevExpress.Data.v23.2, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
+  <data name="BtnAdd.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIzLjIsIFZlcnNpb249MjMuMi40
+        LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl
+        dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAAKcCAAAC77u/
+        PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi
+        IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
+        MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh
+        Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXJfMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAg
+        MzIgMzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLkJsdWV7ZmlsbDojMTE3N0Q3O30KCS5Z
+        ZWxsb3d7ZmlsbDojRkZCMTE1O30KCS5CbGFja3tmaWxsOiM3MjcyNzI7fQoJLkdyZWVue2ZpbGw6IzAz
+        OUMyMzt9CgkuUmVke2ZpbGw6I0QxMUMxQzt9Cgkuc3Qwe29wYWNpdHk6MC43NTt9Cgkuc3Qxe29wYWNp
+        dHk6MC41O30KPC9zdHlsZT4NCiAgPGcgaWQ9IkFkZCI+DQogICAgPHBhdGggZD0iTTI3LDE0aC05VjVj
+        MC0wLjUtMC41LTEtMS0xaC0yYy0wLjUsMC0xLDAuNS0xLDF2OUg1Yy0wLjUsMC0xLDAuNS0xLDF2MmMw
+        LDAuNSwwLjUsMSwxLDFoOXY5ICAgYzAsMC41LDAuNSwxLDEsMWgyYzAuNSwwLDEtMC41LDEtMXYtOWg5
+        YzAuNSwwLDEtMC41LDEtMXYtMkMyOCwxNC41LDI3LjUsMTQsMjcsMTR6IiBjbGFzcz0iR3JlZW4iIC8+
+        DQogIDwvZz4NCjwvc3ZnPgs=
+</value>
+  </data>
+  <data name="BtnEdit.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIzLjIsIFZlcnNpb249MjMuMi40
+        LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl
+        dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAABwFAAAC77u/
+        PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi
+        IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
+        MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh
+        Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXJfMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAg
+        MzIgMzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLlllbGxvd3tmaWxsOiNGRkIxMTU7fQoJ
+        LlJlZHtmaWxsOiNEMTFDMUM7fQoJLkJsYWNre2ZpbGw6IzcyNzI3Mjt9CgkuQmx1ZXtmaWxsOiMxMTc3
+        RDc7fQoJLldoaXRle2ZpbGw6I0ZGRkZGRjt9CgkuR3JlZW57ZmlsbDojMDM5QzIzO30KCS5zdDB7b3Bh
+        Y2l0eTowLjc1O30KCS5zdDF7b3BhY2l0eTowLjU7fQoJLnN0MntvcGFjaXR5OjAuMjU7fQoJLnN0M3tm
+        aWxsOiNGRkIxMTU7fQo8L3N0eWxlPg0KICA8ZyAvPg0KICA8ZyBpZD0iUmVuYW1lXzFfIj4NCiAgICA8
+        cGF0aCBkPSJNMi4xLDE2aDIuMmwwLjYtMi4zaDMuMkw4LjgsMTZIMTFMNy44LDZINS40TDIuMSwxNnog
+        TTYuNCw4LjdjMC4xLTAuMywwLjEtMC42LDAuMS0wLjloMC4xICAgYzAsMC4zLDAuMSwwLjYsMC4xLDAu
+        OWwxLDMuM0g1LjRMNi40LDguN3ogTTE3LjUsMTAuNmMwLjYtMC4yLDEuMS0wLjUsMS41LTAuOWMwLjQt
+        MC40LDAuNi0wLjksMC42LTEuNGMwLTAuNy0wLjMtMS4zLTAuOS0xLjcgICBDMTguMSw2LjIsMTcuMSw2
+        LDE1LjksNkgxMnY5LjlWMTZoNGMxLjIsMCwyLjItMC4yLDIuOS0wLjhDMTkuNywxNC42LDIwLDE0LDIw
+        LDEzYzAtMC42LTAuMi0xLjItMC43LTEuNiAgIEMxOC45LDExLDE4LjMsMTAuNywxNy41LDEwLjZ6IE0x
+        NC40LDcuN2gwLjljMS4xLDAsMS43LDAuNCwxLjcsMS4xYzAsMC40LTAuMSwwLjctMC40LDAuOUMxNi40
+        LDkuOSwxNiwxMCwxNS41LDEwaC0xLjFWNy43eiAgICBNMTcsMTMuOGMtMC4zLDAuMi0wLjgsMC40LTEu
+        MywwLjRoLTEuM3YtMi42aDEuM2MwLjUsMCwwLjksMC4xLDEuMywwLjNjMC4zLDAuMiwwLjUsMC42LDAu
+        NSwwLjlDMTcuNSwxMy4zLDE3LjQsMTMuNiwxNywxMy44eiIgY2xhc3M9IkJsYWNrIiAvPg0KICAgIDxw
+        YXRoIGQ9Ik0yNywxOWwtOCw4bC00LTRsOC04TDI3LDE5eiBNMjgsMThsMS43LTEuN2MwLjQtMC40LDAu
+        NC0xLDAtMS4zTDI3LDEyLjNjLTAuNC0wLjQtMS0wLjQtMS4zLDBMMjQsMTRMMjgsMTh6ICAgIE0xNCwy
+        NHY0aDRMMTQsMjR6IiBjbGFzcz0iQmx1ZSIgLz4NCiAgPC9nPg0KPC9zdmc+Cw==
+</value>
+  </data>
+  <data name="BtnDelete.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIzLjIsIFZlcnNpb249MjMuMi40
+        LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl
+        dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAAJIDAAAC77u/
+        PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi
+        IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
+        MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh
+        Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXJfMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAg
+        MzIgMzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLlllbGxvd3tmaWxsOiNGRkIxMTU7fQoJ
+        LlJlZHtmaWxsOiNEMTFDMUM7fQoJLkJsdWV7ZmlsbDojMTE3N0Q3O30KCS5HcmVlbntmaWxsOiMwMzlD
+        MjM7fQoJLkJsYWNre2ZpbGw6IzcyNzI3Mjt9CgkuV2hpdGV7ZmlsbDojRkZGRkZGO30KCS5zdDB7b3Bh
+        Y2l0eTowLjU7fQoJLnN0MXtkaXNwbGF5Om5vbmU7fQoJLnN0MntkaXNwbGF5OmlubGluZTtmaWxsOiMw
+        MzlDMjM7fQoJLnN0M3tkaXNwbGF5OmlubGluZTtmaWxsOiNEMTFDMUM7fQoJLnN0NHtkaXNwbGF5Omlu
+        bGluZTtmaWxsOiM3MjcyNzI7fQo8L3N0eWxlPg0KICA8ZyBpZD0iRGVsZXRlIj4NCiAgICA8cGF0aCBk
+        PSJNMTguOCwxNmw4LjktOC45YzAuNC0wLjQsMC40LTEsMC0xLjRsLTEuNC0xLjRjLTAuNC0wLjQtMS0w
+        LjQtMS40LDBMMTYsMTMuMkw3LjEsNC4zYy0wLjQtMC40LTEtMC40LTEuNCwwICAgTDQuMyw1LjdjLTAu
+        NCwwLjQtMC40LDEsMCwxLjRsOC45LDguOWwtOC45LDguOWMtMC40LDAuNC0wLjQsMSwwLDEuNGwxLjQs
+        MS40YzAuNCwwLjQsMSwwLjQsMS40LDBsOC45LTguOWw4LjksOC45ICAgYzAuNCwwLjQsMSwwLjQsMS40
+        LDBsMS40LTEuNGMwLjQtMC40LDAuNC0xLDAtMS40TDE4LjgsMTZ6IiBjbGFzcz0iUmVkIiAvPg0KICA8
+        L2c+DQo8L3N2Zz4L
+</value>
+  </data>
+  <data name="barBtnEditPumpCurve.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIzLjIsIFZlcnNpb249MjMuMi40
+        LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl
+        dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAABwFAAAC77u/
+        PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi
+        IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
+        MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh
+        Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXJfMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAg
+        MzIgMzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLkJsYWNre2ZpbGw6IzcyNzI3Mjt9Cgku
+        Qmx1ZXtmaWxsOiMxMTc3RDc7fQoJLkdyZWVue2ZpbGw6IzAzOUMyMzt9CgkuWWVsbG93e2ZpbGw6I0ZG
+        QjExNTt9CgkuUmVke2ZpbGw6I0QxMUMxQzt9CgkuV2hpdGV7ZmlsbDojRkZGRkZGO30KCS5zdDB7b3Bh
+        Y2l0eTowLjU7fQoJLnN0MXtvcGFjaXR5OjAuNzU7fQoJLnN0MntkaXNwbGF5Om5vbmU7fQoJLnN0M3tk
+        aXNwbGF5OmlubGluZTtmaWxsOiMxMTc3RDc7fQoJLnN0NHtkaXNwbGF5OmlubGluZTtmaWxsOiM3Mjcy
+        NzI7fQo8L3N0eWxlPg0KICA8ZyBpZD0iU3BhcmtsaW5lTGluZSI+DQogICAgPHBhdGggZD0iTTI3LDhj
+        LTEuNywwLTMsMS4zLTMsM2MwLDAuNSwwLjEsMC45LDAuMywxLjNsLTYsNkMxNy45LDE4LjEsMTcuNSwx
+        OCwxNywxOHMtMC45LDAuMS0xLjMsMC4zbC0yLTIgICBjMC4yLTAuNCwwLjMtMC44LDAuMy0xLjNjMC0x
+        LjctMS4zLTMtMy0zcy0zLDEuMy0zLDNjMCwwLjUsMC4xLDAuOSwwLjMsMS4zbC0yLDJDNS45LDE4LjEs
+        NS41LDE4LDUsMThjLTEuNywwLTMsMS4zLTMsM3MxLjMsMywzLDMgICBzMy0xLjMsMy0zYzAtMC41LTAu
+        MS0wLjktMC4zLTEuM2wyLTJjMC40LDAuMiwwLjgsMC4zLDEuMywwLjNzMC45LTAuMSwxLjMtMC4zbDIs
+        MkMxNC4xLDIwLjEsMTQsMjAuNSwxNCwyMWMwLDEuNywxLjMsMywzLDMgICBzMy0xLjMsMy0zYzAtMC41
+        LTAuMS0wLjktMC4zLTEuM2w2LTZjMC40LDAuMiwwLjgsMC4zLDEuMywwLjNjMS43LDAsMy0xLjMsMy0z
+        UzI4LjcsOCwyNyw4eiBNNSwyMmMtMC42LDAtMS0wLjQtMS0xczAuNC0xLDEtMSAgIHMxLDAuNCwxLDFT
+        NS42LDIyLDUsMjJ6IE0xMSwxNmMtMC42LDAtMS0wLjQtMS0xczAuNC0xLDEtMXMxLDAuNCwxLDFTMTEu
+        NiwxNiwxMSwxNnogTTE3LDIyYy0wLjYsMC0xLTAuNC0xLTFzMC40LTEsMS0xczEsMC40LDEsMSAgIFMx
+        Ny42LDIyLDE3LDIyeiBNMjcsMTJjLTAuNiwwLTEtMC40LTEtMXMwLjQtMSwxLTFzMSwwLjQsMSwxUzI3
+        LjYsMTIsMjcsMTJ6IiBjbGFzcz0iQmx1ZSIgLz4NCiAgPC9nPg0KPC9zdmc+Cw==
+</value>
+  </data>
+  <metadata name="dockManager1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
+    <value>17, 17</value>
+  </metadata>
+  <metadata name="currentViewModelBindingSource.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
+    <value>167, 16</value>
+  </metadata>
+  <metadata name="popupPump.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
+    <value>406, 17</value>
+  </metadata>
+  <metadata name="svgImage32.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
+    <value>544, 19</value>
+  </metadata>
+</root>
\ No newline at end of file
diff --git a/WinFrmUI/HStation.WinFrmUI.Assets.Core/HStation.WinFrmUI.Assets.Core.csproj b/WinFrmUI/HStation.WinFrmUI.Assets.Core/HStation.WinFrmUI.Assets.Core.csproj
index 23a6fc8..41e8963 100644
--- a/WinFrmUI/HStation.WinFrmUI.Assets.Core/HStation.WinFrmUI.Assets.Core.csproj
+++ b/WinFrmUI/HStation.WinFrmUI.Assets.Core/HStation.WinFrmUI.Assets.Core.csproj
@@ -17,10 +17,13 @@
   <ItemGroup>
     <Compile Remove="00-PumpProductManage\AddPumpProductMainDlg - 澶嶅埗.cs" />
     <Compile Remove="00-PumpProductManage\AddPumpProductMainDlg - 澶嶅埗.Designer.cs" />
+    <Compile Remove="00-PumpProductManage\PumpProductMainPanel - 澶嶅埗.cs" />
+    <Compile Remove="00-PumpProductManage\PumpProductMainPanel - 澶嶅埗.Designer.cs" />
   </ItemGroup>
 
   <ItemGroup>
     <EmbeddedResource Remove="00-PumpProductManage\AddPumpProductMainDlg - 澶嶅埗.resx" />
+    <EmbeddedResource Remove="00-PumpProductManage\PumpProductMainPanel - 澶嶅埗.resx" />
   </ItemGroup>
 
   <ItemGroup>
@@ -43,7 +46,6 @@
     <Compile Update="00-PumpProductManage\AddPumpProductGroupDlg.cs" />
     <Compile Update="00-PumpProductManage\AddPumpProductMainDlg.cs" />
     <Compile Update="00-PumpProductManage\EditPumpProductSeriesDlg.cs" />
-    <Compile Update="00-PumpProductManage\PumpProductMainPanel.cs" />
     <Compile Update="Properties\Resources.Designer.cs">
       <DesignTime>True</DesignTime>
       <AutoGen>True</AutoGen>
diff --git a/WinFrmUI/HStation.WinFrmUI.Basic/00-SysTypeManage/SysTypeManageMainPanel.Designer.cs b/WinFrmUI/HStation.WinFrmUI.Basic/00-SysTypeManage/SysTypeManageMainPanel.Designer.cs
index 6198659..566dfd6 100644
--- a/WinFrmUI/HStation.WinFrmUI.Basic/00-SysTypeManage/SysTypeManageMainPanel.Designer.cs
+++ b/WinFrmUI/HStation.WinFrmUI.Basic/00-SysTypeManage/SysTypeManageMainPanel.Designer.cs
@@ -50,10 +50,10 @@
             colDescription = new DevExpress.XtraGrid.Columns.GridColumn();
             layoutControl1 = new DevExpress.XtraLayout.LayoutControl();
             Root = new DevExpress.XtraLayout.LayoutControlGroup();
+            layoutControlItem2 = new DevExpress.XtraLayout.LayoutControlItem();
             layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem();
             barButtonItem1 = new DevExpress.XtraBars.BarButtonItem();
             svgImage32 = new DevExpress.Utils.SvgImageCollection(components);
-            layoutControlItem2 = new DevExpress.XtraLayout.LayoutControlItem();
             ((System.ComponentModel.ISupportInitialize)ribbonControl1).BeginInit();
             ((System.ComponentModel.ISupportInitialize)dockManager1).BeginInit();
             dockPanel1.SuspendLayout();
@@ -64,9 +64,9 @@
             ((System.ComponentModel.ISupportInitialize)layoutControl1).BeginInit();
             layoutControl1.SuspendLayout();
             ((System.ComponentModel.ISupportInitialize)Root).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)layoutControlItem2).BeginInit();
             ((System.ComponentModel.ISupportInitialize)layoutControlItem1).BeginInit();
             ((System.ComponentModel.ISupportInitialize)svgImage32).BeginInit();
-            ((System.ComponentModel.ISupportInitialize)layoutControlItem2).BeginInit();
             SuspendLayout();
             // 
             // ribbonControl1
@@ -163,11 +163,11 @@
             // gridControl1
             // 
             gridControl1.DataSource = typeViewModelBindingSource;
-            gridControl1.Location = new Point(2, 184);
+            gridControl1.Location = new Point(2, 128);
             gridControl1.MainView = gridView1;
             gridControl1.MenuManager = ribbonControl1;
             gridControl1.Name = "gridControl1";
-            gridControl1.Size = new Size(929, 361);
+            gridControl1.Size = new Size(929, 417);
             gridControl1.TabIndex = 0;
             gridControl1.ViewCollection.AddRange(new DevExpress.XtraGrid.Views.Base.BaseView[] { gridView1 });
             // 
@@ -256,12 +256,21 @@
             Root.Size = new Size(933, 547);
             Root.TextVisible = false;
             // 
+            // layoutControlItem2
+            // 
+            layoutControlItem2.Control = ribbonControl1;
+            layoutControlItem2.Location = new Point(0, 0);
+            layoutControlItem2.Name = "layoutControlItem2";
+            layoutControlItem2.Size = new Size(933, 126);
+            layoutControlItem2.TextSize = new Size(0, 0);
+            layoutControlItem2.TextVisible = false;
+            // 
             // layoutControlItem1
             // 
             layoutControlItem1.Control = gridControl1;
-            layoutControlItem1.Location = new Point(0, 182);
+            layoutControlItem1.Location = new Point(0, 126);
             layoutControlItem1.Name = "layoutControlItem1";
-            layoutControlItem1.Size = new Size(933, 365);
+            layoutControlItem1.Size = new Size(933, 421);
             layoutControlItem1.TextSize = new Size(0, 0);
             layoutControlItem1.TextVisible = false;
             // 
@@ -276,15 +285,6 @@
             svgImage32.ImageSize = new Size(32, 32);
             svgImage32.Add("bletter", "image://svgimages/outlook inspired/bletter.svg");
             svgImage32.Add("bold", "image://svgimages/outlook inspired/bold.svg");
-            // 
-            // layoutControlItem2
-            // 
-            layoutControlItem2.Control = ribbonControl1;
-            layoutControlItem2.Location = new Point(0, 0);
-            layoutControlItem2.Name = "layoutControlItem2";
-            layoutControlItem2.Size = new Size(933, 182);
-            layoutControlItem2.TextSize = new Size(0, 0);
-            layoutControlItem2.TextVisible = false;
             // 
             // SysTypeManageMainPanel
             // 
@@ -307,9 +307,9 @@
             layoutControl1.ResumeLayout(false);
             layoutControl1.PerformLayout();
             ((System.ComponentModel.ISupportInitialize)Root).EndInit();
+            ((System.ComponentModel.ISupportInitialize)layoutControlItem2).EndInit();
             ((System.ComponentModel.ISupportInitialize)layoutControlItem1).EndInit();
             ((System.ComponentModel.ISupportInitialize)svgImage32).EndInit();
-            ((System.ComponentModel.ISupportInitialize)layoutControlItem2).EndInit();
             ResumeLayout(false);
         }
 

--
Gitblit v1.9.3