From 0663632b0a4aa990a68fca7ea564c93d963c3eaf Mon Sep 17 00:00:00 2001
From: duheng <2784771470@qq.com>
Date: 星期一, 26 八月 2024 15:01:51 +0800
Subject: [PATCH] 优化界面

---
 WinFrmUI/HStation.WinFrmUI.Basic/00-SysTypeManage/SysTypeManageMainPanel.Designer.cs                                    |    2 
 WinFrmUI/HStation.WinFrmUI.Assets.Core/01-ValveManage/ValveManageMainPanel.cs                                           |   13 
 WinFrmUI/HStation.WinFrmUI.Basic/01-SysCatalogManage/SysCatalogManageMainPanel.cs                                       |   15 
 WinFrmUI/HStation.WinFrmUI.Assets.Core/01-ValveManage/ValveTypeTreeListCtrl.resx                                        |  142 +++++
 WinFrmUI/HStation.WinFrmUI.Basic/HStation.WinFrmUI.Basic.csproj.user                                                    |    2 
 WinFrmUI/HStation.WinFrmUI.Assets.Core/01-ValveManage/ValveManageMainPanel.resx                                         |  198 +++++++
 WinFrmUI/HStation.WinFrmUI.Assets.Core/00-PumpProductManage/PumpProductMainPanel.Designer.cs                            |   51 +
 WinFrmUI/HStation.WinFrmUI.Assets.Core/01-ValveManage/ValveManageMainPanel.Designer.cs                                  |  225 +++++++++
 WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-scheme/02-asset-mgr/PumpMain/PumpMainChoicePage.resx                             |    2 
 WinFrmUI/HStation.WinFrmUI.Xhs.Core/02-project/04-dlg/01-FileChoice/SelectXhsProjectFileModelFileWizardPage.resx        |   21 
 WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-scheme/02-asset-mgr/PumpMain/PumpMainChoicePage.cs                               |   17 
 WinFrmUI/HStation.WinFrmUI.Basic/01-SysCatalogManage/EditSysCatalogDlg.Designer.cs                                      |    2 
 WinFrmUI/HStation.WinFrmUI.Assets.Core/HStation.WinFrmUI.Assets.Core.csproj                                             |    3 
 WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-scheme/02-asset-mgr/PumpMain/PumpMainChoicePage.Designer.cs                      |  165 +++++-
 WinFrmUI/HStation.WinFrmUI.Basic/01-SysCatalogManage/SysCatalogManageMainPanel.Designer.cs                              |   16 
 WinFrmUI/HStation.WinFrmUI.Assets.Core/01-ValveManage/ValveTypeTreeListCtrl.designer.cs                                 |  276 +++++++++++
 WinFrmUI/HStation.WinFrmUI.Xhs.Core/02-project/01-import/02-ProjectInfo/InputXhsProjectInfoWizardPage.resx              |   21 
 Desktop/HStation.Desktop.Xhs.Core/MainForm.Designer.cs                                                                  |    1 
 WinFrmUI/HStation.WinFrmUI.Basic/01-SysCatalogManage/SysCatalogManageMainPanel.resx                                     |    2 
 WinFrmUI/HStation.WinFrmUI.Assets.Core/HStation.WinFrmUI.Assets.Core.csproj.user                                        |    3 
 WinFrmUI/HStation.WinFrmUI.Assets.Core/01-ValveManage/ValveTypeTreeListCtrl.cs                                          |   17 
 WinFrmUI/HStation.WinFrmUI.Basic/01-SysCatalogManage/EditSysCatalogDlg.resx                                             |    0 
 WinFrmUI/HStation.WinFrmUI.Basic/01-SysCatalogManage/EditSysCatalogDlg.cs                                               |    4 
 WinFrmUI/HStation.WinFrmUI.Xhs.Core/02-project/04-dlg/01-FileChoice/SelectXhsProjectFileModelFileWizardPage.Designer.cs |   76 +-
 WinFrmUI/HStation.WinFrmUI.Basic/HStation.WinFrmUI.Basic.csproj                                                         |    2 
 WinFrmUI/Yw.WinFrmUI.Phart.Core/01-perform/01-chart/03-import/01-excel/ImportCurveByExcelCtrl.cs                        |   51 +
 WinFrmUI/HStation.WinFrmUI.Basic/02-SysPropManage/SysPropManageMainPanel.Designer.cs                                    |    2 
 WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-scheme/02-asset-mgr/PumpMain/PumpMainChoieViewModel.cs                           |   75 ++
 WinFrmUI/HStation.WinFrmUI.Xhs.Core/01-home/HomeXhsProjectPage.Designer.cs                                              |    3 
 Desktop/HStation.Desktop.Xhs.Core/MainForm.cs                                                                           |   19 
 WinFrmUI/HStation.WinFrmUI.Xhs.Core/02-project/01-import/02-ProjectInfo/InputXhsProjectInfoWizardPage.Designer.cs       |   22 
 31 files changed, 1,311 insertions(+), 137 deletions(-)

diff --git a/Desktop/HStation.Desktop.Xhs.Core/MainForm.Designer.cs b/Desktop/HStation.Desktop.Xhs.Core/MainForm.Designer.cs
index abc470c..fdeea8e 100644
--- a/Desktop/HStation.Desktop.Xhs.Core/MainForm.Designer.cs
+++ b/Desktop/HStation.Desktop.Xhs.Core/MainForm.Designer.cs
@@ -286,6 +286,7 @@
             svgImg32Model.Add("columntotalsposition", "image://svgimages/dashboards/columntotalsposition.svg");
             svgImg32Model.Add("bo_category", "image://svgimages/business objects/bo_category.svg");
             svgImg32Model.Add("documentproperties", "image://svgimages/richedit/documentproperties.svg");
+            svgImg32Model.Add("showallvalue", "image://svgimages/dashboards/showallvalue.svg");
             // 
             // MainForm
             // 
diff --git a/Desktop/HStation.Desktop.Xhs.Core/MainForm.cs b/Desktop/HStation.Desktop.Xhs.Core/MainForm.cs
index a749796..6543053 100644
--- a/Desktop/HStation.Desktop.Xhs.Core/MainForm.cs
+++ b/Desktop/HStation.Desktop.Xhs.Core/MainForm.cs
@@ -6,6 +6,7 @@
 using DevExpress.XtraBars.Ribbon;
 using DevExpress.XtraEditors;
 using HStation.WinFrmUI;
+using HStation.WinFrmUI.Assets;
 using HStation.WinFrmUI.Basic;
 using HStation.WinFrmUI.Xhs.PumpProduct;
 using System.IO;
@@ -227,6 +228,24 @@
                             }
                         },
                         new TilePeekItem(){
+                            Caption="阀门管理",
+                            SvgImage=svgImg32Model[7],
+                            SvgImageSize=new Size(24,24),
+                            Click=()=>{
+                                this.flyoutPanel1.HideBeakForm();
+                                var guid=new PageGuid(){
+                                    Modular="Asstes",
+                                    MoudingType=eMoudingType.Tab,
+                                    Function="ValveMgr",
+                                };
+                                if(!IsExistPage(guid,true))
+                                {
+                                    var page=new ValveManageMainPanel();
+                                    CreatePage(page,guid);
+                                }
+                            }
+                        },
+                        new TilePeekItem(){
                             Caption="类型管理",
                             SvgImage=svgImg32Model[4],
                             SvgImageSize=new Size(24,24),
diff --git a/WinFrmUI/HStation.WinFrmUI.Assets.Core/00-PumpProductManage/PumpProductMainPanel.Designer.cs b/WinFrmUI/HStation.WinFrmUI.Assets.Core/00-PumpProductManage/PumpProductMainPanel.Designer.cs
index 915f4b6..8b6f0d4 100644
--- a/WinFrmUI/HStation.WinFrmUI.Assets.Core/00-PumpProductManage/PumpProductMainPanel.Designer.cs
+++ b/WinFrmUI/HStation.WinFrmUI.Assets.Core/00-PumpProductManage/PumpProductMainPanel.Designer.cs
@@ -58,6 +58,7 @@
             colRatedPower = new DevExpress.XtraGrid.Columns.GridColumn();
             colRatedSpeed = new DevExpress.XtraGrid.Columns.GridColumn();
             layoutControl1 = new DevExpress.XtraLayout.LayoutControl();
+            sidePanel1 = new DevExpress.XtraEditors.SidePanel();
             Root = new DevExpress.XtraLayout.LayoutControlGroup();
             layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem();
             popupPump = new DevExpress.XtraBars.PopupMenu(components);
@@ -71,6 +72,7 @@
             ((System.ComponentModel.ISupportInitialize)gridView1).BeginInit();
             ((System.ComponentModel.ISupportInitialize)layoutControl1).BeginInit();
             layoutControl1.SuspendLayout();
+            sidePanel1.SuspendLayout();
             ((System.ComponentModel.ISupportInitialize)Root).BeginInit();
             ((System.ComponentModel.ISupportInitialize)layoutControlItem1).BeginInit();
             ((System.ComponentModel.ISupportInitialize)popupPump).BeginInit();
@@ -91,7 +93,7 @@
             ribbonControl1.ShowExpandCollapseButton = DevExpress.Utils.DefaultBoolean.False;
             ribbonControl1.ShowPageHeadersInFormCaption = DevExpress.Utils.DefaultBoolean.True;
             ribbonControl1.ShowPageHeadersMode = DevExpress.XtraBars.Ribbon.ShowPageHeadersMode.ShowOnMultiplePages;
-            ribbonControl1.Size = new Size(1133, 101);
+            ribbonControl1.Size = new Size(929, 101);
             ribbonControl1.ToolbarLocation = DevExpress.XtraBars.Ribbon.RibbonQuickAccessToolbarLocation.Hidden;
             // 
             // BtnAdd
@@ -150,6 +152,7 @@
             // 
             // dockManager1
             // 
+            dockManager1.DockingOptions.ShowCloseButton = false;
             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" });
@@ -159,11 +162,12 @@
             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, 101);
+            dockPanel1.Location = new Point(0, 0);
             dockPanel1.Margin = new Padding(0);
             dockPanel1.Name = "dockPanel1";
+            dockPanel1.Options.ShowAutoHideButton = false;
             dockPanel1.OriginalSize = new Size(200, 200);
-            dockPanel1.Size = new Size(200, 446);
+            dockPanel1.Size = new Size(200, 547);
             dockPanel1.Text = "绯诲垪鍒楄〃";
             // 
             // dockPanel1_Container
@@ -171,7 +175,7 @@
             dockPanel1_Container.Controls.Add(pumpSeriesTreeListCtrl1);
             dockPanel1_Container.Location = new Point(3, 26);
             dockPanel1_Container.Name = "dockPanel1_Container";
-            dockPanel1_Container.Size = new Size(193, 417);
+            dockPanel1_Container.Size = new Size(193, 518);
             dockPanel1_Container.TabIndex = 0;
             // 
             // pumpSeriesTreeListCtrl1
@@ -181,18 +185,19 @@
             pumpSeriesTreeListCtrl1.Dock = DockStyle.Fill;
             pumpSeriesTreeListCtrl1.Location = new Point(0, 0);
             pumpSeriesTreeListCtrl1.Name = "pumpSeriesTreeListCtrl1";
-            pumpSeriesTreeListCtrl1.Size = new Size(193, 417);
+            pumpSeriesTreeListCtrl1.Size = new Size(193, 518);
             pumpSeriesTreeListCtrl1.TabIndex = 0;
             // 
             // gridControl1
             // 
             gridControl1.DataSource = currentViewModelBindingSource;
-            gridControl1.Location = new Point(0, 0);
+            gridControl1.Dock = DockStyle.Fill;
+            gridControl1.Location = new Point(0, 101);
             gridControl1.MainView = gridView1;
             gridControl1.MenuManager = ribbonControl1;
             gridControl1.Name = "gridControl1";
-            gridControl1.Size = new Size(933, 446);
-            gridControl1.TabIndex = 3;
+            gridControl1.Size = new Size(929, 442);
+            gridControl1.TabIndex = 0;
             gridControl1.ViewCollection.AddRange(new DevExpress.XtraGrid.Views.Base.BaseView[] { gridView1 });
             // 
             // currentViewModelBindingSource
@@ -319,14 +324,24 @@
             // 
             // layoutControl1
             // 
-            layoutControl1.Controls.Add(gridControl1);
+            layoutControl1.Controls.Add(sidePanel1);
             layoutControl1.Dock = DockStyle.Fill;
-            layoutControl1.Location = new Point(200, 101);
+            layoutControl1.Location = new Point(200, 0);
             layoutControl1.Name = "layoutControl1";
             layoutControl1.Root = Root;
-            layoutControl1.Size = new Size(933, 446);
+            layoutControl1.Size = new Size(933, 547);
             layoutControl1.TabIndex = 6;
             layoutControl1.Text = "layoutControl1";
+            // 
+            // sidePanel1
+            // 
+            sidePanel1.Controls.Add(gridControl1);
+            sidePanel1.Controls.Add(ribbonControl1);
+            sidePanel1.Location = new Point(2, 2);
+            sidePanel1.Name = "sidePanel1";
+            sidePanel1.Size = new Size(929, 543);
+            sidePanel1.TabIndex = 3;
+            sidePanel1.Text = "sidePanel1";
             // 
             // Root
             // 
@@ -335,16 +350,15 @@
             Root.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { layoutControlItem1 });
             Root.Name = "Root";
             Root.Padding = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0);
-            Root.Size = new Size(933, 446);
+            Root.Size = new Size(933, 547);
             Root.TextVisible = false;
             // 
             // layoutControlItem1
             // 
-            layoutControlItem1.Control = gridControl1;
+            layoutControlItem1.Control = sidePanel1;
             layoutControlItem1.Location = new Point(0, 0);
             layoutControlItem1.Name = "layoutControlItem1";
-            layoutControlItem1.Padding = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0);
-            layoutControlItem1.Size = new Size(933, 446);
+            layoutControlItem1.Size = new Size(933, 547);
             layoutControlItem1.TextSize = new Size(0, 0);
             layoutControlItem1.TextVisible = false;
             // 
@@ -367,7 +381,6 @@
             AutoScaleMode = AutoScaleMode.Font;
             Controls.Add(layoutControl1);
             Controls.Add(dockPanel1);
-            Controls.Add(ribbonControl1);
             Name = "PumpProductMainPanel";
             Size = new Size(1133, 547);
             ((System.ComponentModel.ISupportInitialize)ribbonControl1).EndInit();
@@ -379,12 +392,13 @@
             ((System.ComponentModel.ISupportInitialize)gridView1).EndInit();
             ((System.ComponentModel.ISupportInitialize)layoutControl1).EndInit();
             layoutControl1.ResumeLayout(false);
+            sidePanel1.ResumeLayout(false);
+            sidePanel1.PerformLayout();
             ((System.ComponentModel.ISupportInitialize)Root).EndInit();
             ((System.ComponentModel.ISupportInitialize)layoutControlItem1).EndInit();
             ((System.ComponentModel.ISupportInitialize)popupPump).EndInit();
             ((System.ComponentModel.ISupportInitialize)svgImage32).EndInit();
             ResumeLayout(false);
-            PerformLayout();
         }
 
         #endregion
@@ -408,7 +422,6 @@
         private DevExpress.XtraGrid.Columns.GridColumn colDescription;
         private DevExpress.XtraLayout.LayoutControl layoutControl1;
         private DevExpress.XtraLayout.LayoutControlGroup Root;
-        private DevExpress.XtraLayout.LayoutControlItem layoutControlItem1;
         private DevExpress.XtraGrid.Columns.GridColumn colRatedFlow;
         private DevExpress.XtraGrid.Columns.GridColumn colRatedHead;
         private DevExpress.XtraBars.BarButtonItem barBtnEditPumpCurve;
@@ -420,5 +433,7 @@
         private DevExpress.XtraBars.PopupMenu popupPump;
         private DevExpress.XtraBars.BarButtonItem BarBtnEidtPumpPart;
         private DevExpress.Utils.SvgImageCollection svgImage32;
+        private DevExpress.XtraEditors.SidePanel sidePanel1;
+        private DevExpress.XtraLayout.LayoutControlItem layoutControlItem1;
     }
 }
diff --git a/WinFrmUI/HStation.WinFrmUI.Assets.Core/01-ValveManage/ValveManageMainPanel.Designer.cs b/WinFrmUI/HStation.WinFrmUI.Assets.Core/01-ValveManage/ValveManageMainPanel.Designer.cs
new file mode 100644
index 0000000..a9286cc
--- /dev/null
+++ b/WinFrmUI/HStation.WinFrmUI.Assets.Core/01-ValveManage/ValveManageMainPanel.Designer.cs
@@ -0,0 +1,225 @@
+锘縩amespace HStation.WinFrmUI.Assets
+{
+    partial class ValveManageMainPanel
+    {
+        /// <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(ValveManageMainPanel));
+            ribbonControl1 = new DevExpress.XtraBars.Ribbon.RibbonControl();
+            BtnAdd = new DevExpress.XtraBars.BarButtonItem();
+            BtnEdit = new DevExpress.XtraBars.BarButtonItem();
+            BtnDelete = new DevExpress.XtraBars.BarButtonItem();
+            BarBtnEidtPumpPart = new DevExpress.XtraBars.BarButtonItem();
+            ribbonPage1 = new DevExpress.XtraBars.Ribbon.RibbonPage();
+            ribbonPageGroup1 = new DevExpress.XtraBars.Ribbon.RibbonPageGroup();
+            svgImageCollection1 = new DevExpress.Utils.SvgImageCollection(components);
+            sidePanel1 = new DevExpress.XtraEditors.SidePanel();
+            gridControl1 = new DevExpress.XtraGrid.GridControl();
+            gridView1 = new DevExpress.XtraGrid.Views.Grid.GridView();
+            dockManager1 = new DevExpress.XtraBars.Docking.DockManager(components);
+            dockPanel1 = new DevExpress.XtraBars.Docking.DockPanel();
+            dockPanel1_Container = new DevExpress.XtraBars.Docking.ControlContainer();
+            valveTypeTreeListCtrl1 = new ValveTypeTreeListCtrl();
+            ((System.ComponentModel.ISupportInitialize)ribbonControl1).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)svgImageCollection1).BeginInit();
+            sidePanel1.SuspendLayout();
+            ((System.ComponentModel.ISupportInitialize)gridControl1).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)gridView1).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)dockManager1).BeginInit();
+            dockPanel1.SuspendLayout();
+            dockPanel1_Container.SuspendLayout();
+            SuspendLayout();
+            // 
+            // ribbonControl1
+            // 
+            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, BarBtnEidtPumpPart });
+            ribbonControl1.Location = new Point(0, 0);
+            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(690, 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";
+            // 
+            // BtnEdit
+            // 
+            BtnEdit.Caption = "缂栬緫鍨嬪彿";
+            BtnEdit.Id = 2;
+            BtnEdit.ImageOptions.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("BtnEdit.ImageOptions.SvgImage");
+            BtnEdit.Name = "BtnEdit";
+            // 
+            // BtnDelete
+            // 
+            BtnDelete.Caption = "鍒犻櫎鍨嬪彿";
+            BtnDelete.Id = 3;
+            BtnDelete.ImageOptions.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("BtnDelete.ImageOptions.SvgImage");
+            BtnDelete.Name = "BtnDelete";
+            // 
+            // BarBtnEidtPumpPart
+            // 
+            BarBtnEidtPumpPart.Caption = "缂栬緫娉典骇鍝佸睘鎬�";
+            BarBtnEidtPumpPart.Id = 16;
+            BarBtnEidtPumpPart.Name = "BarBtnEidtPumpPart";
+            // 
+            // 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.Name = "ribbonPageGroup1";
+            ribbonPageGroup1.Text = "鍩虹鍔熻兘";
+            // 
+            // svgImageCollection1
+            // 
+            svgImageCollection1.Add("showallvalue", "image://svgimages/dashboards/showallvalue.svg");
+            // 
+            // sidePanel1
+            // 
+            sidePanel1.Controls.Add(gridControl1);
+            sidePanel1.Controls.Add(ribbonControl1);
+            sidePanel1.Dock = DockStyle.Fill;
+            sidePanel1.Location = new Point(200, 0);
+            sidePanel1.Name = "sidePanel1";
+            sidePanel1.Size = new Size(690, 520);
+            sidePanel1.TabIndex = 2;
+            sidePanel1.Text = "sidePanel1";
+            // 
+            // gridControl1
+            // 
+            gridControl1.Dock = DockStyle.Fill;
+            gridControl1.Location = new Point(0, 101);
+            gridControl1.MainView = gridView1;
+            gridControl1.MenuManager = ribbonControl1;
+            gridControl1.Name = "gridControl1";
+            gridControl1.Size = new Size(690, 419);
+            gridControl1.TabIndex = 1;
+            gridControl1.ViewCollection.AddRange(new DevExpress.XtraGrid.Views.Base.BaseView[] { gridView1 });
+            // 
+            // gridView1
+            // 
+            gridView1.GridControl = gridControl1;
+            gridView1.Name = "gridView1";
+            gridView1.OptionsView.ShowGroupPanel = false;
+            // 
+            // dockManager1
+            // 
+            dockManager1.DockingOptions.ShowAutoHideButton = false;
+            dockManager1.DockingOptions.ShowCloseButton = false;
+            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("47edc533-9291-45bc-9b49-4f9f530da5d3");
+            dockPanel1.Location = new Point(0, 0);
+            dockPanel1.Name = "dockPanel1";
+            dockPanel1.OriginalSize = new Size(200, 200);
+            dockPanel1.Size = new Size(200, 520);
+            dockPanel1.Text = "闃�闂ㄧ被鍨�";
+            // 
+            // dockPanel1_Container
+            // 
+            dockPanel1_Container.Controls.Add(valveTypeTreeListCtrl1);
+            dockPanel1_Container.Location = new Point(3, 26);
+            dockPanel1_Container.Name = "dockPanel1_Container";
+            dockPanel1_Container.Size = new Size(193, 491);
+            dockPanel1_Container.TabIndex = 0;
+            // 
+            // valveTypeTreeListCtrl1
+            // 
+            valveTypeTreeListCtrl1.Appearance.BackColor = SystemColors.Control;
+            valveTypeTreeListCtrl1.Appearance.Options.UseBackColor = true;
+            valveTypeTreeListCtrl1.Dock = DockStyle.Fill;
+            valveTypeTreeListCtrl1.Location = new Point(0, 0);
+            valveTypeTreeListCtrl1.Name = "valveTypeTreeListCtrl1";
+            valveTypeTreeListCtrl1.Size = new Size(193, 491);
+            valveTypeTreeListCtrl1.TabIndex = 0;
+            // 
+            // ValveManageMainPanel
+            // 
+            Appearance.BackColor = SystemColors.Control;
+            Appearance.Options.UseBackColor = true;
+            AutoScaleDimensions = new SizeF(7F, 14F);
+            AutoScaleMode = AutoScaleMode.Font;
+            Controls.Add(sidePanel1);
+            Controls.Add(dockPanel1);
+            Name = "ValveManageMainPanel";
+            Size = new Size(890, 520);
+            ((System.ComponentModel.ISupportInitialize)ribbonControl1).EndInit();
+            ((System.ComponentModel.ISupportInitialize)svgImageCollection1).EndInit();
+            sidePanel1.ResumeLayout(false);
+            sidePanel1.PerformLayout();
+            ((System.ComponentModel.ISupportInitialize)gridControl1).EndInit();
+            ((System.ComponentModel.ISupportInitialize)gridView1).EndInit();
+            ((System.ComponentModel.ISupportInitialize)dockManager1).EndInit();
+            dockPanel1.ResumeLayout(false);
+            dockPanel1_Container.ResumeLayout(false);
+            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.BarButtonItem BarBtnEidtPumpPart;
+        private DevExpress.XtraBars.Ribbon.RibbonPage ribbonPage1;
+        private DevExpress.XtraBars.Ribbon.RibbonPageGroup ribbonPageGroup1;
+        private DevExpress.Utils.SvgImageCollection svgImageCollection1;
+        private DevExpress.XtraEditors.SidePanel sidePanel1;
+        private DevExpress.XtraGrid.GridControl gridControl1;
+        private DevExpress.XtraGrid.Views.Grid.GridView gridView1;
+        private DevExpress.XtraBars.Docking.DockManager dockManager1;
+        private DevExpress.XtraBars.Docking.DockPanel dockPanel1;
+        private DevExpress.XtraBars.Docking.ControlContainer dockPanel1_Container;
+        private ValveTypeTreeListCtrl valveTypeTreeListCtrl1;
+    }
+}
diff --git a/WinFrmUI/HStation.WinFrmUI.Assets.Core/01-ValveManage/ValveManageMainPanel.cs b/WinFrmUI/HStation.WinFrmUI.Assets.Core/01-ValveManage/ValveManageMainPanel.cs
new file mode 100644
index 0000000..1d1640b
--- /dev/null
+++ b/WinFrmUI/HStation.WinFrmUI.Assets.Core/01-ValveManage/ValveManageMainPanel.cs
@@ -0,0 +1,13 @@
+锘縩amespace HStation.WinFrmUI.Assets
+{
+    public partial class ValveManageMainPanel : DocumentPage
+    {
+        public ValveManageMainPanel()
+        {
+            InitializeComponent();
+            this.PageTitle.Caption = "闃�闂ㄧ鐞�";
+            this.PageTitle.HeaderSvgImage = this.svgImageCollection1[0];
+            this.PageTitle.SvgImageSize = new Size(24, 24);
+        }
+    }
+}
\ No newline at end of file
diff --git a/WinFrmUI/HStation.WinFrmUI.Assets.Core/01-ValveManage/ValveManageMainPanel.resx b/WinFrmUI/HStation.WinFrmUI.Assets.Core/01-ValveManage/ValveManageMainPanel.resx
new file mode 100644
index 0000000..16f5e5e
--- /dev/null
+++ b/WinFrmUI/HStation.WinFrmUI.Assets.Core/01-ValveManage/ValveManageMainPanel.resx
@@ -0,0 +1,198 @@
+锘�<?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>
+  <metadata name="svgImageCollection1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
+    <value>17, 17</value>
+  </metadata>
+  <metadata name="dockManager1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
+    <value>193, 17</value>
+  </metadata>
+</root>
\ No newline at end of file
diff --git a/WinFrmUI/HStation.WinFrmUI.Assets.Core/01-ValveManage/ValveTypeTreeListCtrl.cs b/WinFrmUI/HStation.WinFrmUI.Assets.Core/01-ValveManage/ValveTypeTreeListCtrl.cs
new file mode 100644
index 0000000..69646bc
--- /dev/null
+++ b/WinFrmUI/HStation.WinFrmUI.Assets.Core/01-ValveManage/ValveTypeTreeListCtrl.cs
@@ -0,0 +1,17 @@
+锘縰sing DevExpress.XtraEditors;
+
+namespace HStation.WinFrmUI.Assets
+{
+    /// <summary>
+    ///
+    /// </summary>
+    public partial class ValveTypeTreeListCtrl : XtraUserControl
+    {
+        public ValveTypeTreeListCtrl()
+        {
+            InitializeComponent();
+            this.treeList1.InitialDefaultSettings();
+            this.treeList1.SelectImageList = ImageLib.Lib;
+        }
+    }
+}
\ No newline at end of file
diff --git a/WinFrmUI/HStation.WinFrmUI.Assets.Core/01-ValveManage/ValveTypeTreeListCtrl.designer.cs b/WinFrmUI/HStation.WinFrmUI.Assets.Core/01-ValveManage/ValveTypeTreeListCtrl.designer.cs
new file mode 100644
index 0000000..05c6fb7
--- /dev/null
+++ b/WinFrmUI/HStation.WinFrmUI.Assets.Core/01-ValveManage/ValveTypeTreeListCtrl.designer.cs
@@ -0,0 +1,276 @@
+锘縩amespace HStation.WinFrmUI.Assets
+{
+    partial class ValveTypeTreeListCtrl
+    {
+        /// <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(ValveTypeTreeListCtrl));
+            barManager1 = new DevExpress.XtraBars.BarManager(components);
+            barBtnAdd = new DevExpress.XtraBars.BarButtonItem();
+            barBtnAddChild = new DevExpress.XtraBars.BarButtonItem();
+            barBtnEdit = new DevExpress.XtraBars.BarButtonItem();
+            barBtnDelete = new DevExpress.XtraBars.BarButtonItem();
+            barCkSearch = new DevExpress.XtraBars.BarCheckItem();
+            barBtnExpandAll = new DevExpress.XtraBars.BarButtonItem();
+            barBtnCollapseAll = new DevExpress.XtraBars.BarButtonItem();
+            barDockControlTop = new DevExpress.XtraBars.BarDockControl();
+            barDockControlBottom = new DevExpress.XtraBars.BarDockControl();
+            barDockControlLeft = new DevExpress.XtraBars.BarDockControl();
+            barDockControlRight = new DevExpress.XtraBars.BarDockControl();
+            barRoot = new DevExpress.XtraBars.BarSubItem();
+            layoutControl1 = new DevExpress.XtraLayout.LayoutControl();
+            treeList1 = new DevExpress.XtraTreeList.TreeList();
+            colName = new DevExpress.XtraTreeList.Columns.TreeListColumn();
+            Root = new DevExpress.XtraLayout.LayoutControlGroup();
+            layoutControlItem2 = new DevExpress.XtraLayout.LayoutControlItem();
+            barRootBasicInfoMgr = new DevExpress.XtraBars.BarSubItem();
+            bar1 = new DevExpress.XtraBars.Bar();
+            BtnAdd = new DevExpress.XtraBars.BarButtonItem();
+            ((System.ComponentModel.ISupportInitialize)barManager1).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)layoutControl1).BeginInit();
+            layoutControl1.SuspendLayout();
+            ((System.ComponentModel.ISupportInitialize)treeList1).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)Root).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)layoutControlItem2).BeginInit();
+            SuspendLayout();
+            // 
+            // barManager1
+            // 
+            barManager1.Bars.AddRange(new DevExpress.XtraBars.Bar[] { bar1 });
+            barManager1.Categories.AddRange(new DevExpress.XtraBars.BarManagerCategory[] { new DevExpress.XtraBars.BarManagerCategory("Menu", new Guid("66025f6c-663a-4ef4-927a-145971e982ee")), new DevExpress.XtraBars.BarManagerCategory("Node", new Guid("b558f1d8-eb1b-4761-8cec-661b93c5cda9")) });
+            barManager1.DockControls.Add(barDockControlTop);
+            barManager1.DockControls.Add(barDockControlBottom);
+            barManager1.DockControls.Add(barDockControlLeft);
+            barManager1.DockControls.Add(barDockControlRight);
+            barManager1.Form = this;
+            barManager1.Items.AddRange(new DevExpress.XtraBars.BarItem[] { barCkSearch, barBtnAdd, barBtnEdit, barBtnDelete, barBtnExpandAll, barBtnCollapseAll, barBtnAddChild, BtnAdd });
+            barManager1.MainMenu = bar1;
+            barManager1.MaxItemId = 60;
+            // 
+            // barBtnAdd
+            // 
+            barBtnAdd.Id = 53;
+            barBtnAdd.Name = "barBtnAdd";
+            // 
+            // barBtnAddChild
+            // 
+            barBtnAddChild.Id = 58;
+            barBtnAddChild.Name = "barBtnAddChild";
+            // 
+            // barBtnEdit
+            // 
+            barBtnEdit.Id = 54;
+            barBtnEdit.Name = "barBtnEdit";
+            // 
+            // barBtnDelete
+            // 
+            barBtnDelete.Id = 55;
+            barBtnDelete.Name = "barBtnDelete";
+            // 
+            // barCkSearch
+            // 
+            barCkSearch.Id = 52;
+            barCkSearch.Name = "barCkSearch";
+            // 
+            // barBtnExpandAll
+            // 
+            barBtnExpandAll.Id = 56;
+            barBtnExpandAll.Name = "barBtnExpandAll";
+            // 
+            // barBtnCollapseAll
+            // 
+            barBtnCollapseAll.Id = 57;
+            barBtnCollapseAll.Name = "barBtnCollapseAll";
+            // 
+            // barDockControlTop
+            // 
+            barDockControlTop.CausesValidation = false;
+            barDockControlTop.Dock = DockStyle.Top;
+            barDockControlTop.Location = new Point(0, 0);
+            barDockControlTop.Manager = barManager1;
+            barDockControlTop.Size = new Size(239, 28);
+            // 
+            // barDockControlBottom
+            // 
+            barDockControlBottom.CausesValidation = false;
+            barDockControlBottom.Dock = DockStyle.Bottom;
+            barDockControlBottom.Location = new Point(0, 569);
+            barDockControlBottom.Manager = barManager1;
+            barDockControlBottom.Size = new Size(239, 0);
+            // 
+            // barDockControlLeft
+            // 
+            barDockControlLeft.CausesValidation = false;
+            barDockControlLeft.Dock = DockStyle.Left;
+            barDockControlLeft.Location = new Point(0, 28);
+            barDockControlLeft.Manager = barManager1;
+            barDockControlLeft.Size = new Size(0, 541);
+            // 
+            // barDockControlRight
+            // 
+            barDockControlRight.CausesValidation = false;
+            barDockControlRight.Dock = DockStyle.Right;
+            barDockControlRight.Location = new Point(239, 28);
+            barDockControlRight.Manager = barManager1;
+            barDockControlRight.Size = new Size(0, 541);
+            // 
+            // barRoot
+            // 
+            barRoot.Caption = "barSubItem1";
+            barRoot.Id = 17;
+            barRoot.Name = "barRoot";
+            // 
+            // layoutControl1
+            // 
+            layoutControl1.Controls.Add(treeList1);
+            layoutControl1.Dock = DockStyle.Fill;
+            layoutControl1.Location = new Point(0, 28);
+            layoutControl1.Name = "layoutControl1";
+            layoutControl1.Root = Root;
+            layoutControl1.Size = new Size(239, 541);
+            layoutControl1.TabIndex = 6;
+            layoutControl1.Text = "layoutControl1";
+            // 
+            // treeList1
+            // 
+            treeList1.BorderStyle = DevExpress.XtraEditors.Controls.BorderStyles.NoBorder;
+            treeList1.Columns.AddRange(new DevExpress.XtraTreeList.Columns.TreeListColumn[] { colName });
+            treeList1.Location = new Point(0, 0);
+            treeList1.Name = "treeList1";
+            treeList1.OptionsBehavior.Editable = false;
+            treeList1.OptionsBehavior.ReadOnly = true;
+            treeList1.OptionsMenu.EnableNodeMenu = false;
+            treeList1.OptionsSelection.EnableAppearanceFocusedCell = false;
+            treeList1.OptionsView.FocusRectStyle = DevExpress.XtraTreeList.DrawFocusRectStyle.None;
+            treeList1.Size = new Size(239, 541);
+            treeList1.TabIndex = 7;
+            treeList1.ViewStyle = DevExpress.XtraTreeList.TreeListViewStyle.TreeView;
+            // 
+            // colName
+            // 
+            colName.Caption = "鍚嶇О";
+            colName.FieldName = "Name";
+            colName.MinWidth = 23;
+            colName.Name = "colName";
+            colName.Visible = true;
+            colName.VisibleIndex = 0;
+            colName.Width = 87;
+            // 
+            // Root
+            // 
+            Root.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+            Root.GroupBordersVisible = false;
+            Root.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { layoutControlItem2 });
+            Root.Name = "Root";
+            Root.Padding = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0);
+            Root.Size = new Size(239, 541);
+            Root.TextVisible = false;
+            // 
+            // layoutControlItem2
+            // 
+            layoutControlItem2.Control = treeList1;
+            layoutControlItem2.Location = new Point(0, 0);
+            layoutControlItem2.Name = "layoutControlItem2";
+            layoutControlItem2.Padding = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0);
+            layoutControlItem2.Size = new Size(239, 541);
+            layoutControlItem2.TextSize = new Size(0, 0);
+            layoutControlItem2.TextVisible = false;
+            // 
+            // barRootBasicInfoMgr
+            // 
+            barRootBasicInfoMgr.Caption = "barSubItem1";
+            barRootBasicInfoMgr.Id = 20;
+            barRootBasicInfoMgr.Name = "barRootBasicInfoMgr";
+            // 
+            // bar1
+            // 
+            bar1.BarName = "Custom 2";
+            bar1.DockCol = 0;
+            bar1.DockRow = 0;
+            bar1.DockStyle = DevExpress.XtraBars.BarDockStyle.Top;
+            bar1.LinksPersistInfo.AddRange(new DevExpress.XtraBars.LinkPersistInfo[] { new DevExpress.XtraBars.LinkPersistInfo(BtnAdd) });
+            bar1.OptionsBar.DrawDragBorder = false;
+            bar1.OptionsBar.MultiLine = true;
+            bar1.OptionsBar.UseWholeRow = true;
+            bar1.Text = "Custom 2";
+            // 
+            // BtnAdd
+            // 
+            BtnAdd.Caption = "娣诲姞绫诲瀷";
+            BtnAdd.Id = 59;
+            BtnAdd.ImageOptions.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("BtnAdd.ImageOptions.SvgImage");
+            BtnAdd.ImageOptions.SvgImageSize = new Size(20, 20);
+            BtnAdd.Name = "BtnAdd";
+            // 
+            // ValveTypeTreeListCtrl
+            // 
+            Appearance.BackColor = SystemColors.Control;
+            Appearance.Options.UseBackColor = true;
+            AutoScaleDimensions = new SizeF(7F, 14F);
+            AutoScaleMode = AutoScaleMode.Font;
+            Controls.Add(layoutControl1);
+            Controls.Add(barDockControlLeft);
+            Controls.Add(barDockControlRight);
+            Controls.Add(barDockControlBottom);
+            Controls.Add(barDockControlTop);
+            Name = "ValveTypeTreeListCtrl";
+            Size = new Size(239, 569);
+            ((System.ComponentModel.ISupportInitialize)barManager1).EndInit();
+            ((System.ComponentModel.ISupportInitialize)layoutControl1).EndInit();
+            layoutControl1.ResumeLayout(false);
+            ((System.ComponentModel.ISupportInitialize)treeList1).EndInit();
+            ((System.ComponentModel.ISupportInitialize)Root).EndInit();
+            ((System.ComponentModel.ISupportInitialize)layoutControlItem2).EndInit();
+            ResumeLayout(false);
+            PerformLayout();
+        }
+
+        #endregion
+        private DevExpress.XtraBars.BarManager barManager1;
+        private DevExpress.XtraBars.BarDockControl barDockControlTop;
+        private DevExpress.XtraBars.BarDockControl barDockControlBottom;
+        private DevExpress.XtraBars.BarDockControl barDockControlLeft;
+        private DevExpress.XtraBars.BarDockControl barDockControlRight;
+        private DevExpress.XtraLayout.LayoutControl layoutControl1;
+        private DevExpress.XtraTreeList.TreeList treeList1;
+        private DevExpress.XtraTreeList.Columns.TreeListColumn colName;
+        private DevExpress.XtraLayout.LayoutControlGroup Root;
+        private DevExpress.XtraLayout.LayoutControlItem layoutControlItem2;
+        private DevExpress.XtraBars.BarSubItem barRoot;
+        private DevExpress.XtraBars.BarSubItem barRootBasicInfoMgr;
+        private DevExpress.XtraBars.BarCheckItem barCkSearch;
+        private DevExpress.XtraBars.BarButtonItem barBtnAdd;
+        private DevExpress.XtraBars.BarButtonItem barBtnEdit;
+        private DevExpress.XtraBars.BarButtonItem barBtnDelete;
+        private DevExpress.XtraBars.BarButtonItem barBtnExpandAll;
+        private DevExpress.XtraBars.BarButtonItem barBtnCollapseAll;
+        private DevExpress.XtraBars.BarButtonItem barBtnAddChild;
+        private DevExpress.XtraBars.Bar bar1;
+        private DevExpress.XtraBars.BarButtonItem BtnAdd;
+    }
+}
diff --git a/WinFrmUI/HStation.WinFrmUI.Assets.Core/01-ValveManage/ValveTypeTreeListCtrl.resx b/WinFrmUI/HStation.WinFrmUI.Assets.Core/01-ValveManage/ValveTypeTreeListCtrl.resx
new file mode 100644
index 0000000..c4110e3
--- /dev/null
+++ b/WinFrmUI/HStation.WinFrmUI.Assets.Core/01-ValveManage/ValveTypeTreeListCtrl.resx
@@ -0,0 +1,142 @@
+锘�<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!--
+    Microsoft ResX Schema 
+
+    Version 2.0
+
+    The primary goals of this format is to allow a simple XML format
+    that is mostly human readable. The generation and parsing of the
+    various data types are done through the TypeConverter classes
+    associated with the data types.
+
+    Example:
+
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+
+    There are any number of "resheader" rows that contain simple
+    name/value pairs.
+
+    Each data row contains a name, and value. The row also contains a
+    type or mimetype. Type corresponds to a .NET class that support
+    text/value conversion through the TypeConverter architecture.
+    Classes that don't support this are serialized and stored with the
+    mimetype set.
+
+    The mimetype is used for serialized objects, and tells the
+    ResXResourceReader how to depersist the object. This is currently not
+    extensible. For a given mimetype the value must be set accordingly:
+
+    Note - application/x-microsoft.net.object.binary.base64 is the format
+    that the ResXResourceWriter will generate, however the reader can
+    read any of the formats listed below.
+
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <metadata name="barManager1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
+    <value>17, 17</value>
+  </metadata>
+  <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
+        dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAAGICAAAC77u/
+        PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi
+        IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
+        MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh
+        Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXJfMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAg
+        MzIgMzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLkJsdWV7ZmlsbDojMTE3N0Q3O30KCS5Z
+        ZWxsb3d7ZmlsbDojRkZCMTE1O30KCS5CbGFja3tmaWxsOiM3MjcyNzI7fQoJLkdyZWVue2ZpbGw6IzAz
+        OUMyMzt9CgkuUmVke2ZpbGw6I0QxMUMxQzt9Cgkuc3Qwe29wYWNpdHk6MC43NTt9Cgkuc3Qxe29wYWNp
+        dHk6MC41O30KPC9zdHlsZT4NCiAgPGcgaWQ9IkFkZENpcmNsZWQiPg0KICAgIDxwYXRoIGQ9Ik0xNiw0
+        QzkuNCw0LDQsOS40LDQsMTZzNS40LDEyLDEyLDEyczEyLTUuNCwxMi0xMlMyMi42LDQsMTYsNHogTTI0
+        LDE4aC02djZoLTR2LTZIOHYtNGg2VjhoNHY2aDZWMTh6IiBjbGFzcz0iR3JlZW4iIC8+DQogIDwvZz4N
+        Cjwvc3ZnPgs=
+</value>
+  </data>
+</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 d51e195..f732f38 100644
--- a/WinFrmUI/HStation.WinFrmUI.Assets.Core/HStation.WinFrmUI.Assets.Core.csproj
+++ b/WinFrmUI/HStation.WinFrmUI.Assets.Core/HStation.WinFrmUI.Assets.Core.csproj
@@ -46,6 +46,9 @@
     <Compile Update="00-PumpProductManage\AddPumpProductGroupDlg.cs" />
     <Compile Update="00-PumpProductManage\AddPumpProductMainDlg.cs" />
     <Compile Update="00-PumpProductManage\EditPumpProductSeriesDlg.cs" />
+    <Compile Update="01-ValveManage\ValveTypeTreeListCtrl.cs">
+      <SubType>UserControl</SubType>
+    </Compile>
     <Compile Update="Properties\Resources.Designer.cs">
       <DesignTime>True</DesignTime>
       <AutoGen>True</AutoGen>
diff --git a/WinFrmUI/HStation.WinFrmUI.Assets.Core/HStation.WinFrmUI.Assets.Core.csproj.user b/WinFrmUI/HStation.WinFrmUI.Assets.Core/HStation.WinFrmUI.Assets.Core.csproj.user
index cebdb8e..d802e2b 100644
--- a/WinFrmUI/HStation.WinFrmUI.Assets.Core/HStation.WinFrmUI.Assets.Core.csproj.user
+++ b/WinFrmUI/HStation.WinFrmUI.Assets.Core/HStation.WinFrmUI.Assets.Core.csproj.user
@@ -32,6 +32,9 @@
     <Compile Update="00-PumpProductManage\PumpProductSeriesTreeListCtrl.cs">
       <SubType>UserControl</SubType>
     </Compile>
+    <Compile Update="01-ValveManage\ValveManageMainPanel.cs">
+      <SubType>UserControl</SubType>
+    </Compile>
     <Compile Update="02-UICore\00-DocumentPage\DocumentPage.cs">
       <SubType>UserControl</SubType>
     </Compile>
diff --git a/WinFrmUI/HStation.WinFrmUI.Basic/00-SysTypeManage/SysTypeManageMainPanel.Designer.cs b/WinFrmUI/HStation.WinFrmUI.Basic/00-SysTypeManage/SysTypeManageMainPanel.Designer.cs
index 70f5492..cce3477 100644
--- a/WinFrmUI/HStation.WinFrmUI.Basic/00-SysTypeManage/SysTypeManageMainPanel.Designer.cs
+++ b/WinFrmUI/HStation.WinFrmUI.Basic/00-SysTypeManage/SysTypeManageMainPanel.Designer.cs
@@ -119,6 +119,8 @@
             // 
             // dockManager1
             // 
+            dockManager1.DockingOptions.ShowAutoHideButton = false;
+            dockManager1.DockingOptions.ShowCloseButton = false;
             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" });
diff --git a/WinFrmUI/HStation.WinFrmUI.Basic/01-SysCatalogManage/EditSysCatlaogDlg.Designer.cs b/WinFrmUI/HStation.WinFrmUI.Basic/01-SysCatalogManage/EditSysCatalogDlg.Designer.cs
similarity index 99%
rename from WinFrmUI/HStation.WinFrmUI.Basic/01-SysCatalogManage/EditSysCatlaogDlg.Designer.cs
rename to WinFrmUI/HStation.WinFrmUI.Basic/01-SysCatalogManage/EditSysCatalogDlg.Designer.cs
index 89991bd..957c479 100644
--- a/WinFrmUI/HStation.WinFrmUI.Basic/01-SysCatalogManage/EditSysCatlaogDlg.Designer.cs
+++ b/WinFrmUI/HStation.WinFrmUI.Basic/01-SysCatalogManage/EditSysCatalogDlg.Designer.cs
@@ -1,6 +1,6 @@
 锘縩amespace HStation.WinFrmUI.Basic
 {
-    partial class EditSysCatlaogDlg
+    partial class EditSysCatalogDlg
     {
         /// <summary>   
         /// Required designer variable.
diff --git a/WinFrmUI/HStation.WinFrmUI.Basic/01-SysCatalogManage/EditSysCatlaogDlg.cs b/WinFrmUI/HStation.WinFrmUI.Basic/01-SysCatalogManage/EditSysCatalogDlg.cs
similarity index 94%
rename from WinFrmUI/HStation.WinFrmUI.Basic/01-SysCatalogManage/EditSysCatlaogDlg.cs
rename to WinFrmUI/HStation.WinFrmUI.Basic/01-SysCatalogManage/EditSysCatalogDlg.cs
index 7fe5b3d..6571350 100644
--- a/WinFrmUI/HStation.WinFrmUI.Basic/01-SysCatalogManage/EditSysCatlaogDlg.cs
+++ b/WinFrmUI/HStation.WinFrmUI.Basic/01-SysCatalogManage/EditSysCatalogDlg.cs
@@ -3,9 +3,9 @@
 
 namespace HStation.WinFrmUI.Basic
 {
-    public partial class EditSysCatlaogDlg : DevExpress.XtraEditors.XtraForm
+    public partial class EditSysCatalogDlg : DevExpress.XtraEditors.XtraForm
     {
-        public EditSysCatlaogDlg()
+        public EditSysCatalogDlg()
         {
             InitializeComponent();
         }
diff --git a/WinFrmUI/HStation.WinFrmUI.Basic/01-SysCatalogManage/EditSysCatlaogDlg.resx b/WinFrmUI/HStation.WinFrmUI.Basic/01-SysCatalogManage/EditSysCatalogDlg.resx
similarity index 100%
rename from WinFrmUI/HStation.WinFrmUI.Basic/01-SysCatalogManage/EditSysCatlaogDlg.resx
rename to WinFrmUI/HStation.WinFrmUI.Basic/01-SysCatalogManage/EditSysCatalogDlg.resx
diff --git a/WinFrmUI/HStation.WinFrmUI.Basic/01-SysCatalogManage/SysCatalogManageMainPanel.Designer.cs b/WinFrmUI/HStation.WinFrmUI.Basic/01-SysCatalogManage/SysCatalogManageMainPanel.Designer.cs
index 4c710ca..137627c 100644
--- a/WinFrmUI/HStation.WinFrmUI.Basic/01-SysCatalogManage/SysCatalogManageMainPanel.Designer.cs
+++ b/WinFrmUI/HStation.WinFrmUI.Basic/01-SysCatalogManage/SysCatalogManageMainPanel.Designer.cs
@@ -48,7 +48,7 @@
             colCode = new DevExpress.XtraTreeList.Columns.TreeListColumn();
             colSortCode = new DevExpress.XtraTreeList.Columns.TreeListColumn();
             colDescription = new DevExpress.XtraTreeList.Columns.TreeListColumn();
-            catlogViewModelBindingSource = new BindingSource(components);
+            catalogViewModelBindingSource = new BindingSource(components);
             barButtonItem1 = new DevExpress.XtraBars.BarButtonItem();
             svgImage32 = new DevExpress.Utils.SvgImageCollection(components);
             sidePanel1 = new DevExpress.XtraEditors.SidePanel();
@@ -57,7 +57,7 @@
             dockPanel1.SuspendLayout();
             dockPanel1_Container.SuspendLayout();
             ((System.ComponentModel.ISupportInitialize)treeList1).BeginInit();
-            ((System.ComponentModel.ISupportInitialize)catlogViewModelBindingSource).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)catalogViewModelBindingSource).BeginInit();
             ((System.ComponentModel.ISupportInitialize)svgImage32).BeginInit();
             sidePanel1.SuspendLayout();
             SuspendLayout();
@@ -141,6 +141,8 @@
             // 
             // dockManager1
             // 
+            dockManager1.DockingOptions.ShowAutoHideButton = false;
+            dockManager1.DockingOptions.ShowCloseButton = false;
             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" });
@@ -179,7 +181,7 @@
             treeList1.Appearance.HeaderPanel.Options.UseTextOptions = true;
             treeList1.Appearance.HeaderPanel.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
             treeList1.Columns.AddRange(new DevExpress.XtraTreeList.Columns.TreeListColumn[] { colName, colCode, colSortCode, colDescription });
-            treeList1.DataSource = catlogViewModelBindingSource;
+            treeList1.DataSource = catalogViewModelBindingSource;
             treeList1.Dock = DockStyle.Fill;
             treeList1.Location = new Point(0, 101);
             treeList1.MenuManager = ribbonControl1;
@@ -229,9 +231,9 @@
             colDescription.Visible = true;
             colDescription.VisibleIndex = 3;
             // 
-            // catlogViewModelBindingSource
+            // catalogViewModelBindingSource
             // 
-            catlogViewModelBindingSource.DataSource = typeof(SysCatalogViewModel);
+            catalogViewModelBindingSource.DataSource = typeof(SysCatalogViewModel);
             // 
             // barButtonItem1
             // 
@@ -271,7 +273,7 @@
             dockPanel1.ResumeLayout(false);
             dockPanel1_Container.ResumeLayout(false);
             ((System.ComponentModel.ISupportInitialize)treeList1).EndInit();
-            ((System.ComponentModel.ISupportInitialize)catlogViewModelBindingSource).EndInit();
+            ((System.ComponentModel.ISupportInitialize)catalogViewModelBindingSource).EndInit();
             ((System.ComponentModel.ISupportInitialize)svgImage32).EndInit();
             sidePanel1.ResumeLayout(false);
             sidePanel1.PerformLayout();
@@ -295,7 +297,7 @@
         private DevExpress.XtraTreeList.Columns.TreeListColumn colCode;
         private DevExpress.XtraTreeList.Columns.TreeListColumn colSortCode;
         private DevExpress.XtraTreeList.Columns.TreeListColumn colDescription;
-        private BindingSource catlogViewModelBindingSource;
+        private BindingSource catalogViewModelBindingSource;
         private SysTypeListBoxCtrl typeTreeListCtrl2;
         private DevExpress.XtraBars.BarButtonItem BtnAddChild;
         private DevExpress.XtraBars.BarButtonItem BtnPropEdit;
diff --git a/WinFrmUI/HStation.WinFrmUI.Basic/01-SysCatalogManage/SysCatalogManageMainPanel.cs b/WinFrmUI/HStation.WinFrmUI.Basic/01-SysCatalogManage/SysCatalogManageMainPanel.cs
index 97a304f..33c0607 100644
--- a/WinFrmUI/HStation.WinFrmUI.Basic/01-SysCatalogManage/SysCatalogManageMainPanel.cs
+++ b/WinFrmUI/HStation.WinFrmUI.Basic/01-SysCatalogManage/SysCatalogManageMainPanel.cs
@@ -6,6 +6,7 @@
         {
             InitializeComponent();
             this.PageTitle.Caption = "鍒嗙被绠$悊";
+            this.treeList1.InitialMultiColSettings();
             this.PageTitle.HeaderSvgImage = this.svgImage32[0];
             this.PageTitle.SvgImageSize = new Size(24, 24);
             this.typeTreeListCtrl2.FocusedChangedEvent += TypeTreeListCtrl2_FocusedChangedEvent;
@@ -32,8 +33,8 @@
                 _allBindingList.Add(new SysCatalogViewModel(item));
             }
             _allBindingList = _allBindingList.OrderBy(x => x.SortCode).ToList();
-            this.catlogViewModelBindingSource.DataSource = _allBindingList;
-            this.catlogViewModelBindingSource.ResetBindings(false);
+            this.catalogViewModelBindingSource.DataSource = _allBindingList;
+            this.catalogViewModelBindingSource.ResetBindings(false);
         }
 
         //娣诲姞
@@ -51,7 +52,7 @@
                {
                    var model = await _bll.GetByID(id);
                    _allBindingList.Add(new SysCatalogViewModel(model));
-                   this.catlogViewModelBindingSource.ResetBindings(false);
+                   this.catalogViewModelBindingSource.ResetBindings(false);
                    return true;
                }
                return false;
@@ -78,7 +79,7 @@
                 {
                     var model = await _bll.GetByID(id);
                     _allBindingList.Add(new SysCatalogViewModel(model));
-                    this.catlogViewModelBindingSource.ResetBindings(false);
+                    this.catalogViewModelBindingSource.ResetBindings(false);
                     return true;
                 }
                 return false;
@@ -89,7 +90,7 @@
         //缂栬緫
         private void barBtnEditPumpCurve_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
         {
-            var dlg = new EditSysCatlaogDlg();
+            var dlg = new EditSysCatalogDlg();
             var vm = this.treeList1.GetCurrentViewModel(_allBindingList);
             if (vm == null)
             {
@@ -102,7 +103,7 @@
                 if (await _bll.Update(rhs))
                 {
                     vm.Reset(rhs);
-                    this.catlogViewModelBindingSource.ResetBindings(false);
+                    this.catalogViewModelBindingSource.ResetBindings(false);
                     return true;
                 }
                 return false;
@@ -127,7 +128,7 @@
                 if (result)
                 {
                     _allBindingList.Remove(currentVm);
-                    this.catlogViewModelBindingSource.ResetBindings(false);
+                    this.catalogViewModelBindingSource.ResetBindings(false);
                     MessageBoxHelper.ShowSuccess($"鍒犻櫎鎴愬姛!");
                 }
                 else
diff --git a/WinFrmUI/HStation.WinFrmUI.Basic/01-SysCatalogManage/SysCatalogManageMainPanel.resx b/WinFrmUI/HStation.WinFrmUI.Basic/01-SysCatalogManage/SysCatalogManageMainPanel.resx
index dc669d8..68933df 100644
--- a/WinFrmUI/HStation.WinFrmUI.Basic/01-SysCatalogManage/SysCatalogManageMainPanel.resx
+++ b/WinFrmUI/HStation.WinFrmUI.Basic/01-SysCatalogManage/SysCatalogManageMainPanel.resx
@@ -229,7 +229,7 @@
   <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="catlogViewModelBindingSource.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
+  <metadata name="catalogViewModelBindingSource.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
     <value>161, 17</value>
   </metadata>
   <metadata name="svgImage32.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
diff --git a/WinFrmUI/HStation.WinFrmUI.Basic/02-SysPropManage/SysPropManageMainPanel.Designer.cs b/WinFrmUI/HStation.WinFrmUI.Basic/02-SysPropManage/SysPropManageMainPanel.Designer.cs
index b3850eb..fcaa788 100644
--- a/WinFrmUI/HStation.WinFrmUI.Basic/02-SysPropManage/SysPropManageMainPanel.Designer.cs
+++ b/WinFrmUI/HStation.WinFrmUI.Basic/02-SysPropManage/SysPropManageMainPanel.Designer.cs
@@ -129,6 +129,8 @@
             // 
             // dockManager1
             // 
+            dockManager1.DockingOptions.ShowAutoHideButton = false;
+            dockManager1.DockingOptions.ShowCloseButton = false;
             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" });
diff --git a/WinFrmUI/HStation.WinFrmUI.Basic/HStation.WinFrmUI.Basic.csproj b/WinFrmUI/HStation.WinFrmUI.Basic/HStation.WinFrmUI.Basic.csproj
index f68f49f..e4a6733 100644
--- a/WinFrmUI/HStation.WinFrmUI.Basic/HStation.WinFrmUI.Basic.csproj
+++ b/WinFrmUI/HStation.WinFrmUI.Basic/HStation.WinFrmUI.Basic.csproj
@@ -25,7 +25,7 @@
     <Compile Update="00-SysTypeManage\SysTypeManageMainPanel.cs" />
     <Compile Update="01-SysCatalogManage\AddSysCatalogDlg.cs" />
     <Compile Update="01-SysCatalogManage\SysCatalogManageMainPanel.cs" />
-    <Compile Update="01-SysCatalogManage\EditSysCatlaogDlg.cs" />
+    <Compile Update="01-SysCatalogManage\EditSysCatalogDlg.cs" />
     <Compile Update="01-SysCatalogManage\SetSysPropForCatalogDlg.cs" />
     <Compile Update="01-SysCatalogManage\SysTypeListBoxCtrl.cs" />
     <Compile Update="02-SysPropManage\AddSysPropDlg.cs" />
diff --git a/WinFrmUI/HStation.WinFrmUI.Basic/HStation.WinFrmUI.Basic.csproj.user b/WinFrmUI/HStation.WinFrmUI.Basic/HStation.WinFrmUI.Basic.csproj.user
index 79e5d57..951b5e2 100644
--- a/WinFrmUI/HStation.WinFrmUI.Basic/HStation.WinFrmUI.Basic.csproj.user
+++ b/WinFrmUI/HStation.WinFrmUI.Basic/HStation.WinFrmUI.Basic.csproj.user
@@ -23,7 +23,7 @@
     <Compile Update="01-SysCatalogManage\AddSysCatalogDlg.cs">
       <SubType>Form</SubType>
     </Compile>
-    <Compile Update="01-SysCatalogManage\EditSysCatlaogDlg.cs">
+    <Compile Update="01-SysCatalogManage\EditSysCatalogDlg.cs">
       <SubType>Form</SubType>
     </Compile>
     <Compile Update="01-SysCatalogManage\SetSysPropForCatalogDlg.cs">
diff --git a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/01-home/HomeXhsProjectPage.Designer.cs b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/01-home/HomeXhsProjectPage.Designer.cs
index 1e8c3fd..e66cf6d 100644
--- a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/01-home/HomeXhsProjectPage.Designer.cs
+++ b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/01-home/HomeXhsProjectPage.Designer.cs
@@ -104,8 +104,8 @@
             homeXhsProjectTreeListCtrl1.TabIndex = 0;
             homeXhsProjectTreeListCtrl1.SelectProjectEvent += homeXhsProjectTreeListCtrl1_SelectProjectEvent;
             homeXhsProjectTreeListCtrl1.RefreshDataEvent += homeXhsProjectTreeListCtrl1_RefreshDataEvent;
-            homeXhsProjectTreeListCtrl1.ImportProjectCompletedEvent += homeXhsProjectTreeListCtrl1_ImportProjectCompletedEvent;
             homeXhsProjectTreeListCtrl1.JumpDirectEvent += homeXhsProjectPropertyCtrl1_JumpDirectEvent;
+            homeXhsProjectTreeListCtrl1.ImportProjectCompletedEvent += homeXhsProjectTreeListCtrl1_ImportProjectCompletedEvent;
             // 
             // svgImg32
             // 
@@ -349,6 +349,7 @@
             // 
             // dockManager1
             // 
+            dockManager1.DockingOptions.ShowAutoHideButton = false;
             dockManager1.Form = sidePanelBottom;
             dockManager1.RootPanels.AddRange(new DevExpress.XtraBars.Docking.DockPanel[] { dockPanelLeft, dockPanelRight, dockPanelFill });
             dockManager1.Style = DevExpress.XtraBars.Docking2010.Views.DockingViewStyle.Light;
diff --git a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/02-project/01-import/02-ProjectInfo/InputXhsProjectInfoWizardPage.Designer.cs b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/02-project/01-import/02-ProjectInfo/InputXhsProjectInfoWizardPage.Designer.cs
index 89c049c..aa0612e 100644
--- a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/02-project/01-import/02-ProjectInfo/InputXhsProjectInfoWizardPage.Designer.cs
+++ b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/02-project/01-import/02-ProjectInfo/InputXhsProjectInfoWizardPage.Designer.cs
@@ -29,6 +29,12 @@
         private void InitializeComponent()
         {
             components = new Container();
+            DevExpress.XtraEditors.Controls.EditorButtonImageOptions editorButtonImageOptions1 = new DevExpress.XtraEditors.Controls.EditorButtonImageOptions();
+            ComponentResourceManager resources = new ComponentResourceManager(typeof(InputXhsProjectInfoWizardPage));
+            DevExpress.Utils.SerializableAppearanceObject serializableAppearanceObject1 = new DevExpress.Utils.SerializableAppearanceObject();
+            DevExpress.Utils.SerializableAppearanceObject serializableAppearanceObject2 = new DevExpress.Utils.SerializableAppearanceObject();
+            DevExpress.Utils.SerializableAppearanceObject serializableAppearanceObject3 = new DevExpress.Utils.SerializableAppearanceObject();
+            DevExpress.Utils.SerializableAppearanceObject serializableAppearanceObject4 = new DevExpress.Utils.SerializableAppearanceObject();
             layoutControl1 = new DevExpress.XtraLayout.LayoutControl();
             setFlagsEditCtrl1 = new SetFlagsEditCtrl();
             txtDescription = new DevExpress.XtraEditors.MemoEdit();
@@ -87,9 +93,9 @@
             // 
             // txtDescription
             // 
-            txtDescription.Location = new Point(113, 84);
+            txtDescription.Location = new Point(113, 87);
             txtDescription.Name = "txtDescription";
-            txtDescription.Size = new Size(734, 368);
+            txtDescription.Size = new Size(734, 365);
             txtDescription.StyleController = layoutControl1;
             txtDescription.TabIndex = 7;
             // 
@@ -122,9 +128,11 @@
             btnEditSelectModelFile.EditValue = "";
             btnEditSelectModelFile.Location = new Point(113, 60);
             btnEditSelectModelFile.Name = "btnEditSelectModelFile";
-            btnEditSelectModelFile.Properties.Buttons.AddRange(new DevExpress.XtraEditors.Controls.EditorButton[] { new DevExpress.XtraEditors.Controls.EditorButton() });
+            editorButtonImageOptions1.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("editorButtonImageOptions1.SvgImage");
+            editorButtonImageOptions1.SvgImageSize = new Size(15, 15);
+            btnEditSelectModelFile.Properties.Buttons.AddRange(new DevExpress.XtraEditors.Controls.EditorButton[] { new DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Glyph, "", -1, true, true, false, editorButtonImageOptions1, new DevExpress.Utils.KeyShortcut(Keys.None), serializableAppearanceObject1, serializableAppearanceObject2, serializableAppearanceObject3, serializableAppearanceObject4, "", null, null, DevExpress.Utils.ToolTipAnchor.Default) });
             btnEditSelectModelFile.Properties.TextEditStyle = DevExpress.XtraEditors.Controls.TextEditStyles.DisableTextEditor;
-            btnEditSelectModelFile.Size = new Size(734, 20);
+            btnEditSelectModelFile.Size = new Size(734, 23);
             btnEditSelectModelFile.StyleController = layoutControl1;
             btnEditSelectModelFile.TabIndex = 6;
             btnEditSelectModelFile.ButtonClick += btnEditSelectModelFile_ButtonClick;
@@ -153,9 +161,9 @@
             // layoutControlItem7
             // 
             layoutControlItem7.Control = txtDescription;
-            layoutControlItem7.Location = new Point(0, 72);
+            layoutControlItem7.Location = new Point(0, 75);
             layoutControlItem7.Name = "layoutControlItem7";
-            layoutControlItem7.Size = new Size(839, 372);
+            layoutControlItem7.Size = new Size(839, 369);
             layoutControlItem7.Text = "璇存槑";
             layoutControlItem7.TextSize = new Size(89, 14);
             // 
@@ -175,7 +183,7 @@
             layoutControlItem8.Control = btnEditSelectModelFile;
             layoutControlItem8.Location = new Point(0, 48);
             layoutControlItem8.Name = "layoutControlItem8";
-            layoutControlItem8.Size = new Size(839, 24);
+            layoutControlItem8.Size = new Size(839, 27);
             layoutControlItem8.Text = "閫夋嫨妯″瀷鏂囦欢:";
             layoutControlItem8.TextSize = new Size(89, 17);
             // 
diff --git a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/02-project/01-import/02-ProjectInfo/InputXhsProjectInfoWizardPage.resx b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/02-project/01-import/02-ProjectInfo/InputXhsProjectInfoWizardPage.resx
index d438392..4a5d728 100644
--- a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/02-project/01-import/02-ProjectInfo/InputXhsProjectInfoWizardPage.resx
+++ b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/02-project/01-import/02-ProjectInfo/InputXhsProjectInfoWizardPage.resx
@@ -117,6 +117,27 @@
   <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="editorButtonImageOptions1.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIzLjIsIFZlcnNpb249MjMuMi40
+        LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl
+        dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAAAMDAAAC77u/
+        PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi
+        IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
+        MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh
+        Y2U9InByZXNlcnZlIiBpZD0iT3BlbjIiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDMy
+        IDMyIj4NCiAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KCS5HcmVlbntmaWxsOiMwMzlDMjM7fQoJLlll
+        bGxvd3tmaWxsOiNGRkIxMTU7fQoJLnN0MHtvcGFjaXR5OjAuNzU7fQo8L3N0eWxlPg0KICA8ZyBjbGFz
+        cz0ic3QwIj4NCiAgICA8cGF0aCBkPSJNMTkuMiwxMEgxMlY3YzAtMC42LTAuNC0xLTEtMUgzQzIuNCw2
+        LDIsNi41LDIsN3YxOGMwLDAuMiwwLDAuMywwLjEsMC40YzAsMCwwLjEtMC4xLDAuMS0wLjJsNS41LTEw
+        ICAgQzgsMTQuNSw4LjcsMTQsOS41LDE0aDEzLjdMMTkuMiwxMHoiIGNsYXNzPSJZZWxsb3ciIC8+DQog
+        IDwvZz4NCiAgPHBhdGggZD0iTTI5LjMsMTZIOS42TDQsMjZoMTkuOGMwLjUsMCwxLjEtMC4yLDEuMy0w
+        LjZsNC45LTguOUMzMC4xLDE2LjIsMjkuOCwxNiwyOS4zLDE2eiIgY2xhc3M9IlllbGxvdyIgLz4NCiAg
+        PHBhdGggZD0iTTI4LDhjMC0zLjMtMi43LTYtNi02cy02LDIuNy02LDZjMC0yLjIsMS44LTQsNC00czQs
+        MS44LDQsNGgtNGw2LDZsNi02SDI4eiIgY2xhc3M9IkdyZWVuIiAvPg0KPC9zdmc+Cw==
+</value>
+  </data>
   <metadata name="dxErrorProvider1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
     <value>17, 17</value>
   </metadata>
diff --git a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/02-project/04-dlg/01-FileChoice/SelectXhsProjectFileModelFileWizardPage.Designer.cs b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/02-project/04-dlg/01-FileChoice/SelectXhsProjectFileModelFileWizardPage.Designer.cs
index 8a2812d..0c2267d 100644
--- a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/02-project/04-dlg/01-FileChoice/SelectXhsProjectFileModelFileWizardPage.Designer.cs
+++ b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/02-project/04-dlg/01-FileChoice/SelectXhsProjectFileModelFileWizardPage.Designer.cs
@@ -29,25 +29,31 @@
         private void InitializeComponent()
         {
             components = new Container();
+            DevExpress.XtraEditors.Controls.EditorButtonImageOptions editorButtonImageOptions1 = new DevExpress.XtraEditors.Controls.EditorButtonImageOptions();
+            ComponentResourceManager resources = new ComponentResourceManager(typeof(SelectXhsProjectModelFileWizardPage));
+            DevExpress.Utils.SerializableAppearanceObject serializableAppearanceObject1 = new DevExpress.Utils.SerializableAppearanceObject();
+            DevExpress.Utils.SerializableAppearanceObject serializableAppearanceObject2 = new DevExpress.Utils.SerializableAppearanceObject();
+            DevExpress.Utils.SerializableAppearanceObject serializableAppearanceObject3 = new DevExpress.Utils.SerializableAppearanceObject();
+            DevExpress.Utils.SerializableAppearanceObject serializableAppearanceObject4 = new DevExpress.Utils.SerializableAppearanceObject();
             btnEditSelectModelFile = new DevExpress.XtraEditors.ButtonEdit();
             layoutControl1 = new DevExpress.XtraLayout.LayoutControl();
             Root = new DevExpress.XtraLayout.LayoutControlGroup();
-            simpleLabelItem1 = new DevExpress.XtraLayout.SimpleLabelItem();
-            layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem();
-            dxErrorProvider1 = new DevExpress.XtraEditors.DXErrorProvider.DXErrorProvider(components);
             emptySpaceItem1 = new DevExpress.XtraLayout.EmptySpaceItem();
-            emptySpaceItem2 = new DevExpress.XtraLayout.EmptySpaceItem();
+            simpleLabelItem1 = new DevExpress.XtraLayout.SimpleLabelItem();
             emptySpaceItem3 = new DevExpress.XtraLayout.EmptySpaceItem();
+            layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem();
+            emptySpaceItem2 = new DevExpress.XtraLayout.EmptySpaceItem();
+            dxErrorProvider1 = new DevExpress.XtraEditors.DXErrorProvider.DXErrorProvider(components);
             ((ISupportInitialize)btnEditSelectModelFile.Properties).BeginInit();
             ((ISupportInitialize)layoutControl1).BeginInit();
             layoutControl1.SuspendLayout();
             ((ISupportInitialize)Root).BeginInit();
-            ((ISupportInitialize)simpleLabelItem1).BeginInit();
-            ((ISupportInitialize)layoutControlItem1).BeginInit();
-            ((ISupportInitialize)dxErrorProvider1).BeginInit();
             ((ISupportInitialize)emptySpaceItem1).BeginInit();
-            ((ISupportInitialize)emptySpaceItem2).BeginInit();
+            ((ISupportInitialize)simpleLabelItem1).BeginInit();
             ((ISupportInitialize)emptySpaceItem3).BeginInit();
+            ((ISupportInitialize)layoutControlItem1).BeginInit();
+            ((ISupportInitialize)emptySpaceItem2).BeginInit();
+            ((ISupportInitialize)dxErrorProvider1).BeginInit();
             SuspendLayout();
             // 
             // btnEditSelectModelFile
@@ -55,9 +61,11 @@
             btnEditSelectModelFile.EditValue = "";
             btnEditSelectModelFile.Location = new Point(2, 197);
             btnEditSelectModelFile.Name = "btnEditSelectModelFile";
-            btnEditSelectModelFile.Properties.Buttons.AddRange(new DevExpress.XtraEditors.Controls.EditorButton[] { new DevExpress.XtraEditors.Controls.EditorButton() });
+            editorButtonImageOptions1.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("editorButtonImageOptions1.SvgImage");
+            editorButtonImageOptions1.SvgImageSize = new Size(18, 18);
+            btnEditSelectModelFile.Properties.Buttons.AddRange(new DevExpress.XtraEditors.Controls.EditorButton[] { new DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Glyph, "", -1, true, true, false, editorButtonImageOptions1, new DevExpress.Utils.KeyShortcut(Keys.None), serializableAppearanceObject1, serializableAppearanceObject2, serializableAppearanceObject3, serializableAppearanceObject4, "", null, null, DevExpress.Utils.ToolTipAnchor.Default) });
             btnEditSelectModelFile.Properties.TextEditStyle = DevExpress.XtraEditors.Controls.TextEditStyles.DisableTextEditor;
-            btnEditSelectModelFile.Size = new Size(834, 20);
+            btnEditSelectModelFile.Size = new Size(834, 26);
             btnEditSelectModelFile.StyleController = layoutControl1;
             btnEditSelectModelFile.TabIndex = 0;
             btnEditSelectModelFile.ButtonClick += btnEditSelectModelFile_ButtonClick;
@@ -83,6 +91,14 @@
             Root.Size = new Size(838, 425);
             Root.TextVisible = false;
             // 
+            // emptySpaceItem1
+            // 
+            emptySpaceItem1.AllowHotTrack = false;
+            emptySpaceItem1.Location = new Point(0, 0);
+            emptySpaceItem1.Name = "emptySpaceItem1";
+            emptySpaceItem1.Size = new Size(838, 160);
+            emptySpaceItem1.TextSize = new Size(0, 0);
+            // 
             // simpleLabelItem1
             // 
             simpleLabelItem1.AllowHotTrack = false;
@@ -94,43 +110,35 @@
             simpleLabelItem1.Text = "閫夋嫨鏂囦欢:";
             simpleLabelItem1.TextSize = new Size(113, 31);
             // 
+            // emptySpaceItem3
+            // 
+            emptySpaceItem3.AllowHotTrack = false;
+            emptySpaceItem3.Location = new Point(0, 235);
+            emptySpaceItem3.Name = "emptySpaceItem3";
+            emptySpaceItem3.Size = new Size(838, 190);
+            emptySpaceItem3.TextSize = new Size(0, 0);
+            // 
             // layoutControlItem1
             // 
             layoutControlItem1.Control = btnEditSelectModelFile;
             layoutControlItem1.Location = new Point(0, 195);
             layoutControlItem1.Name = "layoutControlItem1";
-            layoutControlItem1.Size = new Size(838, 24);
+            layoutControlItem1.Size = new Size(838, 30);
             layoutControlItem1.Text = "閫夋嫨鏂囦欢:";
             layoutControlItem1.TextSize = new Size(0, 0);
             layoutControlItem1.TextVisible = false;
             // 
-            // dxErrorProvider1
-            // 
-            dxErrorProvider1.ContainerControl = this;
-            // 
-            // emptySpaceItem1
-            // 
-            emptySpaceItem1.AllowHotTrack = false;
-            emptySpaceItem1.Location = new Point(0, 0);
-            emptySpaceItem1.Name = "emptySpaceItem1";
-            emptySpaceItem1.Size = new Size(838, 160);
-            emptySpaceItem1.TextSize = new Size(0, 0);
-            // 
             // emptySpaceItem2
             // 
             emptySpaceItem2.AllowHotTrack = false;
-            emptySpaceItem2.Location = new Point(0, 219);
+            emptySpaceItem2.Location = new Point(0, 225);
             emptySpaceItem2.Name = "emptySpaceItem2";
             emptySpaceItem2.Size = new Size(838, 10);
             emptySpaceItem2.TextSize = new Size(0, 0);
             // 
-            // emptySpaceItem3
+            // dxErrorProvider1
             // 
-            emptySpaceItem3.AllowHotTrack = false;
-            emptySpaceItem3.Location = new Point(0, 229);
-            emptySpaceItem3.Name = "emptySpaceItem3";
-            emptySpaceItem3.Size = new Size(838, 196);
-            emptySpaceItem3.TextSize = new Size(0, 0);
+            dxErrorProvider1.ContainerControl = this;
             // 
             // SelectXhsProjectModelFileWizardPage
             // 
@@ -143,12 +151,12 @@
             ((ISupportInitialize)layoutControl1).EndInit();
             layoutControl1.ResumeLayout(false);
             ((ISupportInitialize)Root).EndInit();
-            ((ISupportInitialize)simpleLabelItem1).EndInit();
-            ((ISupportInitialize)layoutControlItem1).EndInit();
-            ((ISupportInitialize)dxErrorProvider1).EndInit();
             ((ISupportInitialize)emptySpaceItem1).EndInit();
-            ((ISupportInitialize)emptySpaceItem2).EndInit();
+            ((ISupportInitialize)simpleLabelItem1).EndInit();
             ((ISupportInitialize)emptySpaceItem3).EndInit();
+            ((ISupportInitialize)layoutControlItem1).EndInit();
+            ((ISupportInitialize)emptySpaceItem2).EndInit();
+            ((ISupportInitialize)dxErrorProvider1).EndInit();
             ResumeLayout(false);
         }
 
diff --git a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/02-project/04-dlg/01-FileChoice/SelectXhsProjectFileModelFileWizardPage.resx b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/02-project/04-dlg/01-FileChoice/SelectXhsProjectFileModelFileWizardPage.resx
index d438392..4a5d728 100644
--- a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/02-project/04-dlg/01-FileChoice/SelectXhsProjectFileModelFileWizardPage.resx
+++ b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/02-project/04-dlg/01-FileChoice/SelectXhsProjectFileModelFileWizardPage.resx
@@ -117,6 +117,27 @@
   <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="editorButtonImageOptions1.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIzLjIsIFZlcnNpb249MjMuMi40
+        LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl
+        dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAAAMDAAAC77u/
+        PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi
+        IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
+        MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh
+        Y2U9InByZXNlcnZlIiBpZD0iT3BlbjIiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDMy
+        IDMyIj4NCiAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KCS5HcmVlbntmaWxsOiMwMzlDMjM7fQoJLlll
+        bGxvd3tmaWxsOiNGRkIxMTU7fQoJLnN0MHtvcGFjaXR5OjAuNzU7fQo8L3N0eWxlPg0KICA8ZyBjbGFz
+        cz0ic3QwIj4NCiAgICA8cGF0aCBkPSJNMTkuMiwxMEgxMlY3YzAtMC42LTAuNC0xLTEtMUgzQzIuNCw2
+        LDIsNi41LDIsN3YxOGMwLDAuMiwwLDAuMywwLjEsMC40YzAsMCwwLjEtMC4xLDAuMS0wLjJsNS41LTEw
+        ICAgQzgsMTQuNSw4LjcsMTQsOS41LDE0aDEzLjdMMTkuMiwxMHoiIGNsYXNzPSJZZWxsb3ciIC8+DQog
+        IDwvZz4NCiAgPHBhdGggZD0iTTI5LjMsMTZIOS42TDQsMjZoMTkuOGMwLjUsMCwxLjEtMC4yLDEuMy0w
+        LjZsNC45LTguOUMzMC4xLDE2LjIsMjkuOCwxNiwyOS4zLDE2eiIgY2xhc3M9IlllbGxvdyIgLz4NCiAg
+        PHBhdGggZD0iTTI4LDhjMC0zLjMtMi43LTYtNi02cy02LDIuNy02LDZjMC0yLjIsMS44LTQsNC00czQs
+        MS44LDQsNGgtNGw2LDZsNi02SDI4eiIgY2xhc3M9IkdyZWVuIiAvPg0KPC9zdmc+Cw==
+</value>
+  </data>
   <metadata name="dxErrorProvider1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
     <value>17, 17</value>
   </metadata>
diff --git a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-scheme/02-asset-mgr/PumpMain/PumpMainChoicePage.Designer.cs b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-scheme/02-asset-mgr/PumpMain/PumpMainChoicePage.Designer.cs
index 047a13c..24c38d6 100644
--- a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-scheme/02-asset-mgr/PumpMain/PumpMainChoicePage.Designer.cs
+++ b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-scheme/02-asset-mgr/PumpMain/PumpMainChoicePage.Designer.cs
@@ -31,6 +31,9 @@
         {
             ComponentResourceManager resources = new ComponentResourceManager(typeof(PumpMainChoicePage));
             layoutControl1 = new DevExpress.XtraLayout.LayoutControl();
+            popupContainerControl2 = new DevExpress.XtraEditors.PopupContainerControl();
+            gridControl1 = new DevExpress.XtraGrid.GridControl();
+            gridView1 = new DevExpress.XtraGrid.Views.Grid.GridView();
             popupContainerControl1 = new DevExpress.XtraEditors.PopupContainerControl();
             treeList1 = new DevExpress.XtraTreeList.TreeList();
             treeListColumn1 = new DevExpress.XtraTreeList.Columns.TreeListColumn();
@@ -55,11 +58,22 @@
             simpleLabelItem6 = new DevExpress.XtraLayout.SimpleLabelItem();
             simpleLabelItem7 = new DevExpress.XtraLayout.SimpleLabelItem();
             simpleLabelItem8 = new DevExpress.XtraLayout.SimpleLabelItem();
-            popupContainerControl2 = new DevExpress.XtraEditors.PopupContainerControl();
-            gridControl1 = new DevExpress.XtraGrid.GridControl();
-            gridView1 = new DevExpress.XtraGrid.Views.Grid.GridView();
+            colName = new DevExpress.XtraGrid.Columns.GridColumn();
+            colTagName = 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();
             ((ISupportInitialize)layoutControl1).BeginInit();
             layoutControl1.SuspendLayout();
+            ((ISupportInitialize)popupContainerControl2).BeginInit();
+            popupContainerControl2.SuspendLayout();
+            ((ISupportInitialize)gridControl1).BeginInit();
+            ((ISupportInitialize)gridView1).BeginInit();
             ((ISupportInitialize)popupContainerControl1).BeginInit();
             popupContainerControl1.SuspendLayout();
             ((ISupportInitialize)treeList1).BeginInit();
@@ -82,10 +96,6 @@
             ((ISupportInitialize)simpleLabelItem6).BeginInit();
             ((ISupportInitialize)simpleLabelItem7).BeginInit();
             ((ISupportInitialize)simpleLabelItem8).BeginInit();
-            ((ISupportInitialize)popupContainerControl2).BeginInit();
-            popupContainerControl2.SuspendLayout();
-            ((ISupportInitialize)gridControl1).BeginInit();
-            ((ISupportInitialize)gridView1).BeginInit();
             SuspendLayout();
             // 
             // layoutControl1
@@ -104,6 +114,31 @@
             layoutControl1.Size = new Size(960, 535);
             layoutControl1.TabIndex = 0;
             layoutControl1.Text = "layoutControl1";
+            // 
+            // popupContainerControl2
+            // 
+            popupContainerControl2.Controls.Add(gridControl1);
+            popupContainerControl2.Location = new Point(383, 169);
+            popupContainerControl2.Name = "popupContainerControl2";
+            popupContainerControl2.Size = new Size(521, 304);
+            popupContainerControl2.TabIndex = 6;
+            // 
+            // gridControl1
+            // 
+            gridControl1.Dock = DockStyle.Fill;
+            gridControl1.Location = new Point(0, 0);
+            gridControl1.MainView = gridView1;
+            gridControl1.Name = "gridControl1";
+            gridControl1.Size = new Size(521, 304);
+            gridControl1.TabIndex = 0;
+            gridControl1.ViewCollection.AddRange(new DevExpress.XtraGrid.Views.Base.BaseView[] { gridView1 });
+            // 
+            // gridView1
+            // 
+            gridView1.Columns.AddRange(new DevExpress.XtraGrid.Columns.GridColumn[] { colName, colTagName, colDescription, colRatedFlow, colRatedHead, colD2, colErosion, colRatedEfficiency, colRatedPower, colRatedSpeed });
+            gridView1.GridControl = gridControl1;
+            gridView1.Name = "gridView1";
+            gridView1.OptionsView.ShowGroupPanel = false;
             // 
             // popupContainerControl1
             // 
@@ -231,7 +266,7 @@
             // simpleLabelItemVagueSearch
             // 
             simpleLabelItemVagueSearch.AllowHotTrack = false;
-            simpleLabelItemVagueSearch.ImageOptions.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("simpleLabelItem10.ImageOptions.SvgImage");
+            simpleLabelItemVagueSearch.ImageOptions.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("simpleLabelItemVagueSearch.ImageOptions.SvgImage");
             simpleLabelItemVagueSearch.ImageOptions.SvgImageSize = new Size(20, 20);
             simpleLabelItemVagueSearch.Location = new Point(380, 0);
             simpleLabelItemVagueSearch.Name = "simpleLabelItemVagueSearch";
@@ -239,7 +274,7 @@
             simpleLabelItemVagueSearch.Text = " ";
             simpleLabelItemVagueSearch.TextAlignMode = DevExpress.XtraLayout.TextAlignModeItem.AutoSize;
             simpleLabelItemVagueSearch.TextSize = new Size(29, 20);
-            simpleLabelItemVagueSearch.Click += this.simpleLabelItemVagueSearch_Click;
+            simpleLabelItemVagueSearch.Click += simpleLabelItemVagueSearch_Click;
             // 
             // layoutControlItem1
             // 
@@ -322,29 +357,85 @@
             simpleLabelItem8.Size = new Size(0, 0);
             simpleLabelItem8.TextSize = new Size(50, 20);
             // 
-            // popupContainerControl2
+            // colName
             // 
-            popupContainerControl2.Controls.Add(gridControl1);
-            popupContainerControl2.Location = new Point(383, 169);
-            popupContainerControl2.Name = "popupContainerControl2";
-            popupContainerControl2.Size = new Size(521, 304);
-            popupContainerControl2.TabIndex = 6;
+            colName.Caption = "鍨嬪彿";
+            colName.FieldName = "Name";
+            colName.Name = "colName";
+            colName.Visible = true;
+            colName.VisibleIndex = 0;
             // 
-            // gridControl1
+            // colTagName
             // 
-            gridControl1.Dock = DockStyle.Fill;
-            gridControl1.Location = new Point(0, 0);
-            gridControl1.MainView = gridView1;
-            gridControl1.Name = "gridControl1";
-            gridControl1.Size = new Size(521, 304);
-            gridControl1.TabIndex = 0;
-            gridControl1.ViewCollection.AddRange(new DevExpress.XtraGrid.Views.Base.BaseView[] { gridView1 });
+            colTagName.Caption = "鏍囩";
+            colTagName.FieldName = "TagName";
+            colTagName.Name = "colTagName";
+            colTagName.Visible = true;
+            colTagName.VisibleIndex = 1;
             // 
-            // gridView1
+            // colDescription
             // 
-            gridView1.GridControl = gridControl1;
-            gridView1.Name = "gridView1";
-            gridView1.OptionsView.ShowGroupPanel = false;
+            colDescription.Caption = "璇存槑";
+            colDescription.FieldName = "Description";
+            colDescription.Name = "colDescription";
+            colDescription.Visible = true;
+            colDescription.VisibleIndex = 2;
+            // 
+            // colRatedFlow
+            // 
+            colRatedFlow.Caption = "棰濆畾娴侀噺(m鲁/h)";
+            colRatedFlow.FieldName = "RatedFlow";
+            colRatedFlow.Name = "colRatedFlow";
+            colRatedFlow.Visible = true;
+            colRatedFlow.VisibleIndex = 3;
+            // 
+            // colRatedHead
+            // 
+            colRatedHead.Caption = "棰濆畾鎵▼(m)";
+            colRatedHead.FieldName = "RatedHead";
+            colRatedHead.Name = "colRatedHead";
+            colRatedHead.Visible = true;
+            colRatedHead.VisibleIndex = 4;
+            // 
+            // colD2
+            // 
+            colD2.Caption = "鍙惰疆澶栧緞(mm)";
+            colD2.FieldName = "D2";
+            colD2.Name = "colD2";
+            colD2.Visible = true;
+            colD2.VisibleIndex = 5;
+            // 
+            // colErosion
+            // 
+            colErosion.Caption = "姘旇殌";
+            colErosion.FieldName = "Erosion";
+            colErosion.Name = "colErosion";
+            colErosion.Visible = true;
+            colErosion.VisibleIndex = 6;
+            // 
+            // colRatedEfficiency
+            // 
+            colRatedEfficiency.Caption = "棰濆畾鏁堢巼";
+            colRatedEfficiency.FieldName = "RatedEfficiency";
+            colRatedEfficiency.Name = "colRatedEfficiency";
+            colRatedEfficiency.Visible = true;
+            colRatedEfficiency.VisibleIndex = 7;
+            // 
+            // colRatedPower
+            // 
+            colRatedPower.Caption = "棰濆畾鍔熺巼";
+            colRatedPower.FieldName = "RatedPower";
+            colRatedPower.Name = "colRatedPower";
+            colRatedPower.Visible = true;
+            colRatedPower.VisibleIndex = 8;
+            // 
+            // colRatedSpeed
+            // 
+            colRatedSpeed.Caption = "棰濆畾杞��";
+            colRatedSpeed.FieldName = "RatedSpeed";
+            colRatedSpeed.Name = "colRatedSpeed";
+            colRatedSpeed.Visible = true;
+            colRatedSpeed.VisibleIndex = 9;
             // 
             // PumpMainChoicePage
             // 
@@ -355,6 +446,10 @@
             Size = new Size(960, 535);
             ((ISupportInitialize)layoutControl1).EndInit();
             layoutControl1.ResumeLayout(false);
+            ((ISupportInitialize)popupContainerControl2).EndInit();
+            popupContainerControl2.ResumeLayout(false);
+            ((ISupportInitialize)gridControl1).EndInit();
+            ((ISupportInitialize)gridView1).EndInit();
             ((ISupportInitialize)popupContainerControl1).EndInit();
             popupContainerControl1.ResumeLayout(false);
             ((ISupportInitialize)treeList1).EndInit();
@@ -377,13 +472,9 @@
             ((ISupportInitialize)simpleLabelItem6).EndInit();
             ((ISupportInitialize)simpleLabelItem7).EndInit();
             ((ISupportInitialize)simpleLabelItem8).EndInit();
-            ((ISupportInitialize)popupContainerControl2).EndInit();
-            popupContainerControl2.ResumeLayout(false);
-            ((ISupportInitialize)gridControl1).EndInit();
-            ((ISupportInitialize)gridView1).EndInit();
             ResumeLayout(false);
         }
- 
+
 
         #endregion
 
@@ -415,5 +506,15 @@
         private DevExpress.XtraEditors.PopupContainerControl popupContainerControl2;
         private DevExpress.XtraGrid.GridControl gridControl1;
         private DevExpress.XtraGrid.Views.Grid.GridView gridView1;
+        private DevExpress.XtraGrid.Columns.GridColumn colName;
+        private DevExpress.XtraGrid.Columns.GridColumn colTagName;
+        private DevExpress.XtraGrid.Columns.GridColumn colDescription;
+        private DevExpress.XtraGrid.Columns.GridColumn colRatedFlow;
+        private DevExpress.XtraGrid.Columns.GridColumn colRatedHead;
+        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;
     }
 }
diff --git a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-scheme/02-asset-mgr/PumpMain/PumpMainChoicePage.cs b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-scheme/02-asset-mgr/PumpMain/PumpMainChoicePage.cs
index e239154..c919380 100644
--- a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-scheme/02-asset-mgr/PumpMain/PumpMainChoicePage.cs
+++ b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-scheme/02-asset-mgr/PumpMain/PumpMainChoicePage.cs
@@ -149,9 +149,24 @@
         }
 
         //妯$硦鏌ヨ(琛ㄦ牸鏄剧ず)
-        private void simpleLabelItemVagueSearch_Click(object sender, EventArgs e)
+        private async void simpleLabelItemVagueSearch_Click(object sender, EventArgs e)
         {
+            if (TextPopupPumpChoice.EditValue == null)
+            {
+                return;
+            }
+            _allBindingList = new List<PumpMainChoieViewModel>();
             TextPopupPumpChoice.Properties.PopupControl = popupContainerControl2;
+            var allPumpMain = await _pumpBll.GetAll();
+            foreach (var Main in allPumpMain)
+            {
+                if (Main.Name.Contains(TextPopupPumpChoice.Text))
+                {
+                    _allBindingList.Add(new PumpMainChoieViewModel(Main));
+                }
+            }
+            this.gridControl1.DataSource = _allBindingList;
+            TextPopupPumpChoice.Size = new Size(500, 300);
             TextPopupPumpChoice.ShowPopup();
         }
 
diff --git a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-scheme/02-asset-mgr/PumpMain/PumpMainChoicePage.resx b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-scheme/02-asset-mgr/PumpMain/PumpMainChoicePage.resx
index eb71e9f..4fb70d7 100644
--- a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-scheme/02-asset-mgr/PumpMain/PumpMainChoicePage.resx
+++ b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-scheme/02-asset-mgr/PumpMain/PumpMainChoicePage.resx
@@ -157,7 +157,7 @@
         Cjwvc3ZnPgs=
 </value>
   </data>
-  <data name="simpleLabelItem10.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
+  <data name="simpleLabelItemVagueSearch.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
     <value>
         AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIzLjIsIFZlcnNpb249MjMuMi40
         LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl
diff --git a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-scheme/02-asset-mgr/PumpMain/PumpMainChoieViewModel.cs b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-scheme/02-asset-mgr/PumpMain/PumpMainChoieViewModel.cs
index 5087557..c3c7403 100644
--- a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-scheme/02-asset-mgr/PumpMain/PumpMainChoieViewModel.cs
+++ b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-scheme/02-asset-mgr/PumpMain/PumpMainChoieViewModel.cs
@@ -25,17 +25,90 @@
             this.IsPump = true;
         }
 
-        public PumpMainChoieViewModel(Vmo.PumpMain rhs )
+        public PumpMainChoieViewModel(Vmo.PumpMain rhs)
         {
             this.ID = rhs.ID;
             this.Name = rhs.Name;
             this.ParentID = rhs.PumpSeriesID;
             this.IsPump = true;
+            this.Erosion = rhs.Erosion;
+            this.RatedPower = rhs.RatedPower;
+            this.RatedFlow = rhs.RatedFlow;
+            this.RatedSpeed = rhs.RatedSpeed;
+            this.RatedEfficiency = rhs.RatedEfficiency;
+            this.D2 = rhs.D2;
+            this.Description = rhs.Description;
+            this.SortCode = rhs.SortCode;
         }
 
         public long ID { get; set; }
         public long ParentID { get; set; }
         public string Name { get; set; }
         public bool IsPump { get; set; }
+
+        /// <summary>
+        /// 娉电郴鍒桰D
+        /// </summary>
+        public long PumpSeriesID { get; set; }
+
+        /// <summary>
+        /// 鍙傛暟
+        /// </summary>
+        public Dictionary<string, string> Paras { get; set; }
+
+        /// <summary>
+        /// 鏍囩
+        /// </summary>
+        public List<string> Flags { get; set; }
+
+        /// <summary>
+        /// 鏍囧織
+        /// </summary>
+        public string TagName { get; set; }
+
+        /// <summary>
+        /// 鎺掑簭鐮�
+        /// </summary>
+        public int SortCode { get; set; }
+
+        /// <summary>
+        /// 棰濆畾杞��
+        /// </summary>
+        public double RatedSpeed { get; set; }
+
+        /// <summary>
+        /// 棰濆畾娴侀噺
+        /// </summary>
+        public double RatedFlow { get; set; }
+
+        /// <summary>
+        /// 棰濆畾鎵▼
+        /// </summary>
+        public double RatedHead { get; set; }
+
+        /// <summary>
+        /// 棰濆畾鏁堢巼
+        /// </summary>
+        public double RatedEfficiency { get; set; }
+
+        /// <summary>
+        /// 棰濆畾鍔熺巼
+        /// </summary>
+        public double RatedPower { get; set; }
+
+        /// <summary>
+        /// 姘旇殌
+        /// </summary>
+        public double? Erosion { get; set; }
+
+        /// <summary>
+        /// 鍙惰疆澶栧緞
+        /// </summary>
+        public double? D2 { get; set; }
+
+        /// <summary>
+        /// 璇存槑
+        /// </summary>
+        public string Description { get; set; }
     }
 }
\ No newline at end of file
diff --git a/WinFrmUI/Yw.WinFrmUI.Phart.Core/01-perform/01-chart/03-import/01-excel/ImportCurveByExcelCtrl.cs b/WinFrmUI/Yw.WinFrmUI.Phart.Core/01-perform/01-chart/03-import/01-excel/ImportCurveByExcelCtrl.cs
index de9548b..7766b6f 100644
--- a/WinFrmUI/Yw.WinFrmUI.Phart.Core/01-perform/01-chart/03-import/01-excel/ImportCurveByExcelCtrl.cs
+++ b/WinFrmUI/Yw.WinFrmUI.Phart.Core/01-perform/01-chart/03-import/01-excel/ImportCurveByExcelCtrl.cs
@@ -2,7 +2,6 @@
 using NPOI.HSSF.UserModel;
 using System.IO;
 
-
 //缂栬緫鍘熷鐨勬�ц兘鏇茬嚎
 namespace Yw.WinFrmUI.Phart
 {
@@ -10,16 +9,17 @@
     {
         public ImportCurveByExcelCtrl()
         {
-            InitializeComponent(); 
-             
+            InitializeComponent();
+
             this.gridView1.SetDefaultEditView();
             this.gridView1.BorderStyle = DevExpress.XtraEditors.Controls.BorderStyles.NoBorder;
 
             _allBindList = new List<CurrentViewModel>();
-            this.bindingSource1.DataSource = _allBindList; 
+            this.bindingSource1.DataSource = _allBindList;
         }
 
         #region CurrentViewModel
+
         public class CurrentViewModel
         {
             public enum eSortType
@@ -31,7 +31,9 @@
                 P
             }
 
-            public CurrentViewModel() { }
+            public CurrentViewModel()
+            { }
+
             public CurrentViewModel(int id, double q, double h, double e, double p)
             {
                 ID = id;
@@ -40,7 +42,10 @@
                 E = e;
                 P = p;
             }
-            public CurrentViewModel(CurrentViewModel rhs) : this(rhs.ID, rhs.Q, rhs.H, rhs.E, rhs.P) { }
+
+            public CurrentViewModel(CurrentViewModel rhs) : this(rhs.ID, rhs.Q, rhs.H, rhs.E, rhs.P)
+            {
+            }
 
             public int ID { get; set; }
             public double Q { get; set; }
@@ -56,6 +61,7 @@
                 P = Math.Round(P, decimals);
                 return this;
             }
+
             public CurrentViewModel RoundAll_Small(int decimal_places, double small = 2.0)
             {
                 Q = Round_Small(Q, decimal_places, small);
@@ -64,6 +70,7 @@
                 P = Round_Small(P, decimal_places, small);
                 return this;
             }
+
             private double Round_Small(double value, int num, double small = 2.0)
             {
                 if (value < small)
@@ -73,13 +80,16 @@
                 return value;
             }
         }
-        #endregion
-          
-        private List<CurrentViewModel> _allBindList; 
-        private Yw.Geometry.CubicSpline2d 
+
+        #endregion CurrentViewModel
+
+        private List<CurrentViewModel> _allBindList;
+
+        private Yw.Geometry.CubicSpline2d
             _cubic_spline_qh = null,
-            _cubic_spline_qe = null, 
-            _cubic_spline_qp = null; 
+            _cubic_spline_qe = null,
+            _cubic_spline_qp = null;
+
         private List<Yw.Geometry.Point2d>
             _qh_point_list = null,
             _qe_point_list = null,
@@ -108,7 +118,7 @@
             int line = 0;
             try
             {
-                //鍒濆鍖栨枃浠� 
+                //鍒濆鍖栨枃浠�
                 HSSFWorkbook theBook = null;
                 using (FileStream file = new FileStream(fileName, FileMode.Open, FileAccess.Read))
                 {
@@ -145,7 +155,7 @@
                     return;
                 }
 
-                //寮�濮嬭鍙栫殑琛�  
+                //寮�濮嬭鍙栫殑琛�
                 int start_line = title_line_index + 1;
                 var cell_0 = row_title.GetCell(0);
                 if (cell_0 == null)
@@ -207,7 +217,6 @@
                     if (h < 0)
                         break;
 
-
                     cell = rowtemp.GetCell(col_index_e);
                     if (cell == null)
                         break;
@@ -267,7 +276,6 @@
             {
                 this.xtrPerform2dChart1.InitialChartData();
                 return false;
-
             }
 
             _qh_point_list = new List<Yw.Geometry.Point2d>();
@@ -294,7 +302,7 @@
 
         /// <summary>
         /// 鑾峰彇鏁版嵁
-        /// </summary> 
+        /// </summary>
         /// <returns></returns>
         public bool Get(out string other_name, out Yw.Pump.CurveQH qh, out Yw.Pump.CurveQE qe, out Yw.Pump.CurveQP qp)
         {
@@ -302,7 +310,7 @@
             qh = null;
             qe = null;
             qp = null;
-             
+
             if (!loadChart())
                 return false;
 
@@ -310,13 +318,12 @@
             {
                 XtraMessageBox.Show("璇疯緭鍏ユ洸绾垮悕绉�!");
                 return false;
-            } 
+            }
             qh = new Pump.CurveQH(Yw.Pump.eFeatType.Cubic, _qh_point_list);
             qe = new Pump.CurveQE(Yw.Pump.eFeatType.Cubic, _qe_point_list);
             qp = new Pump.CurveQP(Yw.Pump.eFeatType.Cubic, _qp_point_list);
-             
+
             return true;
         }
-
     }
-}
+}
\ No newline at end of file

--
Gitblit v1.9.3