From be65218617cab71a90a9a05cf488fbb6e206b5c5 Mon Sep 17 00:00:00 2001
From: duheng <2286773002@qq.com>
Date: 星期一, 31 三月 2025 15:47:00 +0800
Subject: [PATCH] 下拉选项增加逻辑分组

---
 Service/PBS.Service/00-core/DataType.cs                              |   10 
 Vmo/Yw.Vmo.Division.Core/Yw.Vmo.Division.Core.csproj                 |    4 
 WinFrmUI/PBS.WinFrmUI.WE/WaterWE/01-catalogue/EditCatalogueDlg.cs    |   34 +-
 WinFrmUI/PBS.WinFrmUI.WE/WaterWE/UtensilSelectViewModel.cs           |   28 ++
 WinFrmUI/PBS.WinFrmUI/01-place/AddPlaceDlg.Designer.cs               |  172 +++++++++-----
 WinFrmUI/PBS.WinFrmUI/02-facility/00-core/FacilitiesCtrl.resx        |    4 
 WinFrmUI/PBS.WinFrmUI/02-facility/AddFacilityDlg.Designer.cs         |   18 
 WinFrmUI/PBS.WinFrmUI/02-facility/FacilityMgrPage.Designer.cs        |   21 +
 WinFrmUI/PBS.WinFrmUI/PBS.WinFrmUI.csproj                            |    1 
 WinFrmUI/PBS.WinFrmUI.WE/WaterWE/01-catalogue/CatalogueCtrl.cs       |    2 
 WinFrmUI/PBS.WinFrmUI/01-place/EditPlaceDlg.cs                       |    6 
 WinFrmUI/PBS.WinFrmUI.WE/WaterWE/EditWaterWEDlg.designer.cs          |    6 
 WinFrmUI/PBS.WinFrmUI/02-facility/EditFacilityDlg.Designer.cs        |   18 
 WinFrmUI/PBS.WinFrmUI/01-place/AddPlaceDlg.cs                        |    6 
 WinFrmUI/PBS.WinFrmUI/01-place/PlaceMgrPage.cs                       |    6 
 WinFrmUI/PBS.WinFrmUI/01-place/EditPlaceDlg.Designer.cs              |  176 +++++++++-----
 WinFrmUI/PBS.WinFrmUI.WE/WaterWE/EditWaterWEDlg.cs                   |   34 ++
 WinFrmUI/PBS.WinFrmUI/02-facility/00-core/FacilitiesCtrl.cs          |   42 +++
 WinFrmUI/PBS.WinFrmUI/02-facility/00-core/FacilitiesCtrl.Designer.cs |   64 ++++
 WinFrmUI/PBS.WinFrmUI/02-facility/FacilityMgrPage.cs                 |    2 
 WinFrmUI/PBS.WinFrmUI/02-facility/00-core/PlaceSelectViewModel.cs    |   26 ++
 WinFrmUI/PBS.WinFrmUI/01-place/00-core/BuildWizardForm.cs            |    1 
 22 files changed, 501 insertions(+), 180 deletions(-)

diff --git a/Service/PBS.Service/00-core/DataType.cs b/Service/PBS.Service/00-core/DataType.cs
index d86a0ab..7bb5cd0 100644
--- a/Service/PBS.Service/00-core/DataType.cs
+++ b/Service/PBS.Service/00-core/DataType.cs
@@ -1,7 +1,7 @@
 锘縩amespace PBS
 {
     /// <summary>
-    /// 
+    ///
     /// </summary>
     public class DataType
     {
@@ -20,17 +20,19 @@
         /// </summary>
         public const string PBSScheme = "pbs-scheme";
 
-
         /// <summary>
         /// 鍦烘墍
         /// </summary>
         public const string PBSPlace = "place";
 
+        /// <summary>
+        /// 璁炬柦
+        /// </summary>
+        public const string PBSFacility = "facility";
 
         /// <summary>
         /// 妯″瀷妯℃澘
         /// </summary>
         public const string PBSModelTemplate = "model-template";
-
     }
-}
+}
\ No newline at end of file
diff --git a/Vmo/Yw.Vmo.Division.Core/Yw.Vmo.Division.Core.csproj b/Vmo/Yw.Vmo.Division.Core/Yw.Vmo.Division.Core.csproj
index 141e38f..93e76b9 100644
--- a/Vmo/Yw.Vmo.Division.Core/Yw.Vmo.Division.Core.csproj
+++ b/Vmo/Yw.Vmo.Division.Core/Yw.Vmo.Division.Core.csproj
@@ -6,4 +6,8 @@
     <Nullable>disable</Nullable>
   </PropertyGroup>
 
+  <ItemGroup>
+    <ProjectReference Include="..\..\Dto\Yw.Dto.Division.Core\Yw.Dto.Division.Core.csproj" />
+  </ItemGroup>
+
 </Project>
diff --git a/WinFrmUI/PBS.WinFrmUI.WE/WaterWE/01-catalogue/CatalogueCtrl.cs b/WinFrmUI/PBS.WinFrmUI.WE/WaterWE/01-catalogue/CatalogueCtrl.cs
index ae45ff5..f7764f3 100644
--- a/WinFrmUI/PBS.WinFrmUI.WE/WaterWE/01-catalogue/CatalogueCtrl.cs
+++ b/WinFrmUI/PBS.WinFrmUI.WE/WaterWE/01-catalogue/CatalogueCtrl.cs
@@ -14,6 +14,7 @@
         {
             InitializeComponent();
             this.treeList1.InitialDefaultSettings();
+
             //   this.treeList1.SelectImageList = ImageLib.Lib;
         }
 
@@ -37,6 +38,7 @@
             }
             this.treeList1.DataSource = _allBindingList;
             this.treeList1.Refresh();
+            this.treeList1.ExpandAll();
         }
 
         //鑾峰彇绯诲垪ID
diff --git a/WinFrmUI/PBS.WinFrmUI.WE/WaterWE/01-catalogue/EditCatalogueDlg.cs b/WinFrmUI/PBS.WinFrmUI.WE/WaterWE/01-catalogue/EditCatalogueDlg.cs
index ec60aec..a399fa9 100644
--- a/WinFrmUI/PBS.WinFrmUI.WE/WaterWE/01-catalogue/EditCatalogueDlg.cs
+++ b/WinFrmUI/PBS.WinFrmUI.WE/WaterWE/01-catalogue/EditCatalogueDlg.cs
@@ -1,4 +1,5 @@
-锘縰sing Yw.WinFrmUI;
+锘縰sing DevExpress.Utils.Extensions;
+using Yw.WinFrmUI;
 
 namespace PBS.WinFrmUI.WE
 {
@@ -12,25 +13,26 @@
 
         public event Func<PBS.Vmo.WE.CatalogueVmo, object, Task<bool>> ReloadDataEvent = null;
 
-        private PBS.Vmo.WE.CatalogueVmo _CatalogueDlg = null;
-        private List<CatalogueViewModel> _CatalogueDlgViews;
+        private PBS.Vmo.WE.CatalogueVmo _Catalogue = null;
+        private List<CatalogueViewModel> _CatalogueViewModel;
 
         public async void SetBindingData(PBS.Vmo.WE.CatalogueVmo seriesVmo)
         {
-            _CatalogueDlgViews = new List<CatalogueViewModel>();
-            _CatalogueDlg = seriesVmo;
-            this.NameTextEdit.Text = _CatalogueDlg.Name;
-            this.DescriptionTextEdit.Text = _CatalogueDlg.Description;
-            this.TagNameTextEdit.Text = _CatalogueDlg.TagName;
+            _CatalogueViewModel = new List<CatalogueViewModel>();
+            _Catalogue = seriesVmo;
+            this.NameTextEdit.Text = _Catalogue.Name;
+            this.DescriptionTextEdit.Text = _Catalogue.Description;
+            this.TagNameTextEdit.Text = _Catalogue.TagName;
             var allList = await new PBS.BLL.WE.Catalogue().GetAll();
             foreach (var item in allList)
             {
-                _CatalogueDlgViews.Add(new CatalogueViewModel(item));
+                _CatalogueViewModel.Add(new CatalogueViewModel(item));
             }
-            treeListLookUpEdit1TreeList.DataSource = _CatalogueDlgViews;
-            if (_CatalogueDlg.ParentIds.Count > 0)
+             _CatalogueViewModel.Remove(x=>x.ID==seriesVmo.ID);
+            treeListLookUpEdit1TreeList.DataSource = _CatalogueViewModel;
+            if (_Catalogue.ParentIds.Count > 0)
             {
-                this.textEditParentList.EditValue = _CatalogueDlg.ParentIds.Last();
+                this.textEditParentList.EditValue = _Catalogue.ParentIds.Last();
             }
         }
 
@@ -51,10 +53,10 @@
         {
             if (!Valid())
                 return;
-            _CatalogueDlg.Name = NameTextEdit.Text;
-            _CatalogueDlg.TagName = TagNameTextEdit.Text;
-            _CatalogueDlg.Description = DescriptionTextEdit.Text;
-            if (await this.ReloadDataEvent.Invoke(_CatalogueDlg, this.textEditParentList.EditValue))
+            _Catalogue.Name = NameTextEdit.Text;
+            _Catalogue.TagName = TagNameTextEdit.Text;
+            _Catalogue.Description = DescriptionTextEdit.Text;
+            if (await this.ReloadDataEvent.Invoke(_Catalogue, this.textEditParentList.EditValue))
             {
                 TipFormHelper.ShowSucceed("淇敼鎴愬姛!");
             }
diff --git a/WinFrmUI/PBS.WinFrmUI.WE/WaterWE/EditWaterWEDlg.cs b/WinFrmUI/PBS.WinFrmUI.WE/WaterWE/EditWaterWEDlg.cs
index e9be257..155354c 100644
--- a/WinFrmUI/PBS.WinFrmUI.WE/WaterWE/EditWaterWEDlg.cs
+++ b/WinFrmUI/PBS.WinFrmUI.WE/WaterWE/EditWaterWEDlg.cs
@@ -1,4 +1,5 @@
 锘縰sing DevExpress.XtraEditors;
+using DevExpress.XtraTreeList;
 using Yw.WinFrmUI;
 
 namespace PBS.WinFrmUI.WE
@@ -63,7 +64,25 @@
         {
             _allBindingList = new List<ItemViewModel>();
             _allUtensilList = await new PBS.BLL.WE.Utensil().GetAll();
-            this.repositoryItemTreeListLookUpEdit1.DataSource = _allUtensilList;
+            var modelList = new List<UtensilSelectViewModel>();
+
+            if (_allUtensilList != null && _allUtensilList.Count > 0)
+            {
+                foreach (var utensil in _allUtensilList)
+                {
+                    modelList.Add(new UtensilSelectViewModel(utensil));
+                }
+                var groupIdList = _allUtensilList.GroupBy(x => x.GroupID).Select(y => y.Key).ToList();
+                if (groupIdList != null && groupIdList.Count > 0)
+                {
+                    var allGroup = await new PBS.BLL.WE.UtensilGroup().GetByIds(groupIdList);
+                    foreach (var group in allGroup)
+                    {
+                        modelList.Add(new UtensilSelectViewModel(group));
+                    }
+                }
+            }
+            this.repositoryItemTreeListLookUpEdit1.DataSource = modelList;
             if (item == null)
             {
                 _CatalogueMappingVmo = new PBS.Vmo.WE.CatalogueMappingVmo();
@@ -173,5 +192,18 @@
                 }
             }
         }
+
+        private void treeListLookUpEdit1TreeList_BeforeFocusNode(object sender, BeforeFocusNodeEventArgs e)
+        {
+            TreeList treeList = sender as TreeList;
+            if (treeList != null)
+            {
+                // 妫�鏌ュ綋鍓嶇劍鐐硅妭鐐规槸鍚︿负鐖惰妭鐐�
+                if (e.Node.HasChildren)
+                {
+                    e.CanFocus = false;
+                }
+            }
+        }
     }
 }
\ No newline at end of file
diff --git a/WinFrmUI/PBS.WinFrmUI.WE/WaterWE/EditWaterWEDlg.designer.cs b/WinFrmUI/PBS.WinFrmUI.WE/WaterWE/EditWaterWEDlg.designer.cs
index 199291a..bd1e8e8 100644
--- a/WinFrmUI/PBS.WinFrmUI.WE/WaterWE/EditWaterWEDlg.designer.cs
+++ b/WinFrmUI/PBS.WinFrmUI.WE/WaterWE/EditWaterWEDlg.designer.cs
@@ -65,7 +65,7 @@
             layoutControlItem4 = new DevExpress.XtraLayout.LayoutControlItem();
             layoutControlItem3 = new DevExpress.XtraLayout.LayoutControlItem();
             dxErrorProvider1 = new DevExpress.XtraEditors.DXErrorProvider.DXErrorProvider(components);
-            ((ISupportInitialize)dataLayoutControl1).BeginInit();
+             ((ISupportInitialize)dataLayoutControl1).BeginInit();
             dataLayoutControl1.SuspendLayout();
             ((ISupportInitialize)gridControl1).BeginInit();
             ((ISupportInitialize)itemViewModelBindingSource).BeginInit();
@@ -82,7 +82,7 @@
             ((ISupportInitialize)layoutControlItem4).BeginInit();
             ((ISupportInitialize)layoutControlItem3).BeginInit();
             ((ISupportInitialize)dxErrorProvider1).BeginInit();
-            SuspendLayout();
+             SuspendLayout();
             // 
             // dataLayoutControl1
             // 
@@ -192,6 +192,7 @@
             treeList1.Size = new Size(400, 200);
             treeList1.TabIndex = 0;
             treeList1.TreeLevelWidth = 21;
+            treeList1.BeforeFocusNode += treeListLookUpEdit1TreeList_BeforeFocusNode;
             // 
             // treeListColumn1
             // 
@@ -341,6 +342,7 @@
             // 
             dxErrorProvider1.ContainerControl = this;
             // 
+            // 
             // EditWaterWEDlg
             // 
             AutoScaleDimensions = new SizeF(8F, 18F);
diff --git a/WinFrmUI/PBS.WinFrmUI.WE/WaterWE/UtensilSelectViewModel.cs b/WinFrmUI/PBS.WinFrmUI.WE/WaterWE/UtensilSelectViewModel.cs
new file mode 100644
index 0000000..38dd9db
--- /dev/null
+++ b/WinFrmUI/PBS.WinFrmUI.WE/WaterWE/UtensilSelectViewModel.cs
@@ -0,0 +1,28 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace PBS.WinFrmUI.WE
+{
+    internal class UtensilSelectViewModel
+    {
+        internal UtensilSelectViewModel(Vmo.WE.UtensilVmo rhs)
+        {
+            this.ID = rhs.ID;
+            this.Name = rhs.Name;
+            this.ParentID = rhs.GroupID;
+        }
+        internal UtensilSelectViewModel(Vmo.WE.UtensilGroupVmo rhs)
+        {
+            this.ID = rhs.ID;
+            this.Name = rhs.Name;
+         }
+        public string Name { get; set; }
+
+        public long ID { get; set; }
+
+        public long ParentID { get; set; }
+    }
+}
diff --git a/WinFrmUI/PBS.WinFrmUI/01-place/00-core/BuildWizardForm.cs b/WinFrmUI/PBS.WinFrmUI/01-place/00-core/BuildWizardForm.cs
index 12160a2..85bc16a 100644
--- a/WinFrmUI/PBS.WinFrmUI/01-place/00-core/BuildWizardForm.cs
+++ b/WinFrmUI/PBS.WinFrmUI/01-place/00-core/BuildWizardForm.cs
@@ -102,6 +102,7 @@
             txtPlotRatio.Text = model.PlotRatio.ToString();
             txtProperTyYears.Text = model.ProperTyYears.ToString();
             txtTotalHouseHolds.Text = model.TotalHouseHolds.ToString();
+           
             this.cbPropertyType.EditValue = model.PropertyType;
         }
     }
diff --git a/WinFrmUI/PBS.WinFrmUI/01-place/AddPlaceDlg.Designer.cs b/WinFrmUI/PBS.WinFrmUI/01-place/AddPlaceDlg.Designer.cs
index 36edf5d..b71a841 100644
--- a/WinFrmUI/PBS.WinFrmUI/01-place/AddPlaceDlg.Designer.cs
+++ b/WinFrmUI/PBS.WinFrmUI/01-place/AddPlaceDlg.Designer.cs
@@ -35,45 +35,52 @@
             layoutControlItem8 = new DevExpress.XtraLayout.LayoutControlItem();
             txtEditName = new DevExpress.XtraEditors.TextEdit();
             layoutControl1 = new DevExpress.XtraLayout.LayoutControl();
+            setFlagsEditCtrl1 = new Yw.WinFrmUI.SetFlagsEditCtrl();
+            txtTagName = new DevExpress.XtraEditors.TextEdit();
+            sidePanel1 = new DevExpress.XtraEditors.SidePanel();
             panelControl1 = new DevExpress.XtraEditors.PanelControl();
             textEditAddress = new DevExpress.XtraEditors.TextEdit();
-            memoEdit1 = new DevExpress.XtraEditors.MemoEdit();
+            memoEditDescription = new DevExpress.XtraEditors.MemoEdit();
             txtEditRegion = new DevExpress.XtraEditors.TreeListLookUpEdit();
             treeListLookUpEdit1TreeList = new DevExpress.XtraTreeList.TreeList();
             treeListColumn1 = new DevExpress.XtraTreeList.Columns.TreeListColumn();
             treeListColumn2 = new DevExpress.XtraTreeList.Columns.TreeListColumn();
             layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem();
             tabbedControlGroup1 = new DevExpress.XtraLayout.TabbedControlGroup();
+            layoutControlGroup3 = new DevExpress.XtraLayout.LayoutControlGroup();
+            layoutControlItem4 = new DevExpress.XtraLayout.LayoutControlItem();
             layoutControlGroup1 = new DevExpress.XtraLayout.LayoutControlGroup();
             layoutControlItem2 = new DevExpress.XtraLayout.LayoutControlItem();
             layoutControlGroup2 = new DevExpress.XtraLayout.LayoutControlGroup();
-            layoutControlGroup3 = new DevExpress.XtraLayout.LayoutControlGroup();
-            layoutControlItem4 = new DevExpress.XtraLayout.LayoutControlItem();
+            layoutControlItem5 = new DevExpress.XtraLayout.LayoutControlItem();
+            layoutControlItem6 = new DevExpress.XtraLayout.LayoutControlItem();
+            layoutControlItem9 = new DevExpress.XtraLayout.LayoutControlItem();
             layoutControlItem3 = new DevExpress.XtraLayout.LayoutControlItem();
             dxErrorProvider1 = new DevExpress.XtraEditors.DXErrorProvider.DXErrorProvider(components);
-            sidePanel1 = new DevExpress.XtraEditors.SidePanel();
-            layoutControlItem5 = new DevExpress.XtraLayout.LayoutControlItem();
             ((System.ComponentModel.ISupportInitialize)Root).BeginInit();
             ((System.ComponentModel.ISupportInitialize)layoutControlItem7).BeginInit();
             ((System.ComponentModel.ISupportInitialize)layoutControlItem8).BeginInit();
             ((System.ComponentModel.ISupportInitialize)txtEditName.Properties).BeginInit();
             ((System.ComponentModel.ISupportInitialize)layoutControl1).BeginInit();
             layoutControl1.SuspendLayout();
+            ((System.ComponentModel.ISupportInitialize)txtTagName.Properties).BeginInit();
             ((System.ComponentModel.ISupportInitialize)panelControl1).BeginInit();
             ((System.ComponentModel.ISupportInitialize)textEditAddress.Properties).BeginInit();
-            ((System.ComponentModel.ISupportInitialize)memoEdit1.Properties).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)memoEditDescription.Properties).BeginInit();
             ((System.ComponentModel.ISupportInitialize)txtEditRegion.Properties).BeginInit();
             ((System.ComponentModel.ISupportInitialize)treeListLookUpEdit1TreeList).BeginInit();
             ((System.ComponentModel.ISupportInitialize)layoutControlItem1).BeginInit();
             ((System.ComponentModel.ISupportInitialize)tabbedControlGroup1).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)layoutControlGroup3).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)layoutControlItem4).BeginInit();
             ((System.ComponentModel.ISupportInitialize)layoutControlGroup1).BeginInit();
             ((System.ComponentModel.ISupportInitialize)layoutControlItem2).BeginInit();
             ((System.ComponentModel.ISupportInitialize)layoutControlGroup2).BeginInit();
-            ((System.ComponentModel.ISupportInitialize)layoutControlGroup3).BeginInit();
-            ((System.ComponentModel.ISupportInitialize)layoutControlItem4).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)layoutControlItem5).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)layoutControlItem6).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)layoutControlItem9).BeginInit();
             ((System.ComponentModel.ISupportInitialize)layoutControlItem3).BeginInit();
             ((System.ComponentModel.ISupportInitialize)dxErrorProvider1).BeginInit();
-            ((System.ComponentModel.ISupportInitialize)layoutControlItem5).BeginInit();
             SuspendLayout();
             // 
             // Root
@@ -82,7 +89,7 @@
             Root.AppearanceItemCaption.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
             Root.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
             Root.GroupBordersVisible = false;
-            Root.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { layoutControlItem7, layoutControlItem8, layoutControlItem1, tabbedControlGroup1, layoutControlItem3 });
+            Root.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { layoutControlItem7, layoutControlItem8, layoutControlItem1, tabbedControlGroup1, layoutControlItem6, layoutControlItem9, layoutControlItem3 });
             Root.Name = "Root";
             Root.Size = new Size(811, 539);
             Root.TextVisible = false;
@@ -129,12 +136,14 @@
             // 
             // layoutControl1
             // 
+            layoutControl1.Controls.Add(setFlagsEditCtrl1);
+            layoutControl1.Controls.Add(txtTagName);
             layoutControl1.Controls.Add(sidePanel1);
             layoutControl1.Controls.Add(panelControl1);
             layoutControl1.Controls.Add(generalOkAndCancelCtrl1);
             layoutControl1.Controls.Add(txtEditName);
             layoutControl1.Controls.Add(textEditAddress);
-            layoutControl1.Controls.Add(memoEdit1);
+            layoutControl1.Controls.Add(memoEditDescription);
             layoutControl1.Controls.Add(txtEditRegion);
             layoutControl1.Dock = DockStyle.Fill;
             layoutControl1.Location = new Point(0, 0);
@@ -146,12 +155,37 @@
             layoutControl1.TabIndex = 2;
             layoutControl1.Text = "layoutControl1";
             // 
+            // setFlagsEditCtrl1
+            // 
+            setFlagsEditCtrl1.Location = new Point(89, 96);
+            setFlagsEditCtrl1.Margin = new Padding(3, 5, 3, 5);
+            setFlagsEditCtrl1.Name = "setFlagsEditCtrl1";
+            setFlagsEditCtrl1.Size = new Size(314, 24);
+            setFlagsEditCtrl1.TabIndex = 6;
+            // 
+            // txtTagName
+            // 
+            txtTagName.Location = new Point(484, 96);
+            txtTagName.Margin = new Padding(3, 4, 3, 4);
+            txtTagName.Name = "txtTagName";
+            txtTagName.Size = new Size(315, 24);
+            txtTagName.StyleController = layoutControl1;
+            txtTagName.TabIndex = 7;
+            // 
+            // sidePanel1
+            // 
+            sidePanel1.Location = new Point(15, 157);
+            sidePanel1.Name = "sidePanel1";
+            sidePanel1.Size = new Size(781, 330);
+            sidePanel1.TabIndex = 7;
+            sidePanel1.Text = "sidePanel1";
+            // 
             // panelControl1
             // 
-            panelControl1.Location = new Point(15, 129);
+            panelControl1.Location = new Point(15, 157);
             panelControl1.Margin = new Padding(3, 4, 3, 4);
             panelControl1.Name = "panelControl1";
-            panelControl1.Size = new Size(781, 358);
+            panelControl1.Size = new Size(781, 330);
             panelControl1.TabIndex = 1;
             // 
             // textEditAddress
@@ -163,14 +197,14 @@
             textEditAddress.StyleController = layoutControl1;
             textEditAddress.TabIndex = 3;
             // 
-            // memoEdit1
+            // memoEditDescription
             // 
-            memoEdit1.Location = new Point(92, 129);
-            memoEdit1.Margin = new Padding(3, 4, 3, 4);
-            memoEdit1.Name = "memoEdit1";
-            memoEdit1.Size = new Size(704, 358);
-            memoEdit1.StyleController = layoutControl1;
-            memoEdit1.TabIndex = 5;
+            memoEditDescription.Location = new Point(92, 157);
+            memoEditDescription.Margin = new Padding(3, 4, 3, 4);
+            memoEditDescription.Name = "memoEditDescription";
+            memoEditDescription.Size = new Size(704, 330);
+            memoEditDescription.StyleController = layoutControl1;
+            memoEditDescription.TabIndex = 5;
             // 
             // txtEditRegion
             // 
@@ -222,19 +256,36 @@
             // 
             // tabbedControlGroup1
             // 
-            tabbedControlGroup1.Location = new Point(0, 84);
+            tabbedControlGroup1.Location = new Point(0, 112);
             tabbedControlGroup1.Name = "tabbedControlGroup1";
             tabbedControlGroup1.Padding = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0);
-            tabbedControlGroup1.SelectedTabPage = layoutControlGroup1;
-            tabbedControlGroup1.Size = new Size(791, 398);
+            tabbedControlGroup1.SelectedTabPage = layoutControlGroup3;
+            tabbedControlGroup1.Size = new Size(791, 370);
             tabbedControlGroup1.TabPages.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { layoutControlGroup1, layoutControlGroup2, layoutControlGroup3 });
+            // 
+            // layoutControlGroup3
+            // 
+            layoutControlGroup3.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { layoutControlItem4 });
+            layoutControlGroup3.Location = new Point(0, 0);
+            layoutControlGroup3.Name = "layoutControlGroup3";
+            layoutControlGroup3.Size = new Size(785, 334);
+            layoutControlGroup3.Text = "璇存槑";
+            // 
+            // layoutControlItem4
+            // 
+            layoutControlItem4.Control = memoEditDescription;
+            layoutControlItem4.Location = new Point(0, 0);
+            layoutControlItem4.Name = "layoutControlItem4";
+            layoutControlItem4.Size = new Size(785, 334);
+            layoutControlItem4.Text = "璇存槑";
+            layoutControlItem4.TextSize = new Size(65, 18);
             // 
             // layoutControlGroup1
             // 
             layoutControlGroup1.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { layoutControlItem2 });
             layoutControlGroup1.Location = new Point(0, 0);
             layoutControlGroup1.Name = "layoutControlGroup1";
-            layoutControlGroup1.Size = new Size(785, 362);
+            layoutControlGroup1.Size = new Size(785, 334);
             layoutControlGroup1.Text = "灞炴��";
             // 
             // layoutControlItem2
@@ -242,7 +293,7 @@
             layoutControlItem2.Control = panelControl1;
             layoutControlItem2.Location = new Point(0, 0);
             layoutControlItem2.Name = "layoutControlItem2";
-            layoutControlItem2.Size = new Size(785, 362);
+            layoutControlItem2.Size = new Size(785, 334);
             layoutControlItem2.TextSize = new Size(0, 0);
             layoutControlItem2.TextVisible = false;
             // 
@@ -251,25 +302,35 @@
             layoutControlGroup2.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { layoutControlItem5 });
             layoutControlGroup2.Location = new Point(0, 0);
             layoutControlGroup2.Name = "layoutControlGroup2";
-            layoutControlGroup2.Size = new Size(785, 362);
+            layoutControlGroup2.Size = new Size(785, 334);
             layoutControlGroup2.Text = "鍦板浘";
             // 
-            // layoutControlGroup3
+            // layoutControlItem5
             // 
-            layoutControlGroup3.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { layoutControlItem4 });
-            layoutControlGroup3.Location = new Point(0, 0);
-            layoutControlGroup3.Name = "layoutControlGroup3";
-            layoutControlGroup3.Size = new Size(785, 362);
-            layoutControlGroup3.Text = "璇存槑";
+            layoutControlItem5.Control = sidePanel1;
+            layoutControlItem5.Location = new Point(0, 0);
+            layoutControlItem5.Name = "layoutControlItem5";
+            layoutControlItem5.Size = new Size(785, 334);
+            layoutControlItem5.TextSize = new Size(0, 0);
+            layoutControlItem5.TextVisible = false;
             // 
-            // layoutControlItem4
+            // layoutControlItem6
             // 
-            layoutControlItem4.Control = memoEdit1;
-            layoutControlItem4.Location = new Point(0, 0);
-            layoutControlItem4.Name = "layoutControlItem4";
-            layoutControlItem4.Size = new Size(785, 362);
-            layoutControlItem4.Text = "璇存槑";
-            layoutControlItem4.TextSize = new Size(65, 18);
+            layoutControlItem6.Control = setFlagsEditCtrl1;
+            layoutControlItem6.Location = new Point(0, 84);
+            layoutControlItem6.Name = "layoutControlItem6";
+            layoutControlItem6.Size = new Size(395, 28);
+            layoutControlItem6.Text = "鏍囩:";
+            layoutControlItem6.TextSize = new Size(65, 18);
+            // 
+            // layoutControlItem9
+            // 
+            layoutControlItem9.Control = txtTagName;
+            layoutControlItem9.Location = new Point(395, 84);
+            layoutControlItem9.Name = "layoutControlItem9";
+            layoutControlItem9.Size = new Size(396, 28);
+            layoutControlItem9.Text = "鏍囧織:";
+            layoutControlItem9.TextSize = new Size(65, 18);
             // 
             // layoutControlItem3
             // 
@@ -283,23 +344,6 @@
             // dxErrorProvider1
             // 
             dxErrorProvider1.ContainerControl = this;
-            // 
-            // sidePanel1
-            // 
-            sidePanel1.Location = new Point(15, 129);
-            sidePanel1.Name = "sidePanel1";
-            sidePanel1.Size = new Size(781, 358);
-            sidePanel1.TabIndex = 7;
-            sidePanel1.Text = "sidePanel1";
-            // 
-            // layoutControlItem5
-            // 
-            layoutControlItem5.Control = sidePanel1;
-            layoutControlItem5.Location = new Point(0, 0);
-            layoutControlItem5.Name = "layoutControlItem5";
-            layoutControlItem5.Size = new Size(785, 362);
-            layoutControlItem5.TextSize = new Size(0, 0);
-            layoutControlItem5.TextVisible = false;
             // 
             // AddPlaceDlg
             // 
@@ -317,21 +361,24 @@
             ((System.ComponentModel.ISupportInitialize)txtEditName.Properties).EndInit();
             ((System.ComponentModel.ISupportInitialize)layoutControl1).EndInit();
             layoutControl1.ResumeLayout(false);
+            ((System.ComponentModel.ISupportInitialize)txtTagName.Properties).EndInit();
             ((System.ComponentModel.ISupportInitialize)panelControl1).EndInit();
             ((System.ComponentModel.ISupportInitialize)textEditAddress.Properties).EndInit();
-            ((System.ComponentModel.ISupportInitialize)memoEdit1.Properties).EndInit();
+            ((System.ComponentModel.ISupportInitialize)memoEditDescription.Properties).EndInit();
             ((System.ComponentModel.ISupportInitialize)txtEditRegion.Properties).EndInit();
             ((System.ComponentModel.ISupportInitialize)treeListLookUpEdit1TreeList).EndInit();
             ((System.ComponentModel.ISupportInitialize)layoutControlItem1).EndInit();
             ((System.ComponentModel.ISupportInitialize)tabbedControlGroup1).EndInit();
+            ((System.ComponentModel.ISupportInitialize)layoutControlGroup3).EndInit();
+            ((System.ComponentModel.ISupportInitialize)layoutControlItem4).EndInit();
             ((System.ComponentModel.ISupportInitialize)layoutControlGroup1).EndInit();
             ((System.ComponentModel.ISupportInitialize)layoutControlItem2).EndInit();
             ((System.ComponentModel.ISupportInitialize)layoutControlGroup2).EndInit();
-            ((System.ComponentModel.ISupportInitialize)layoutControlGroup3).EndInit();
-            ((System.ComponentModel.ISupportInitialize)layoutControlItem4).EndInit();
+            ((System.ComponentModel.ISupportInitialize)layoutControlItem5).EndInit();
+            ((System.ComponentModel.ISupportInitialize)layoutControlItem6).EndInit();
+            ((System.ComponentModel.ISupportInitialize)layoutControlItem9).EndInit();
             ((System.ComponentModel.ISupportInitialize)layoutControlItem3).EndInit();
             ((System.ComponentModel.ISupportInitialize)dxErrorProvider1).EndInit();
-            ((System.ComponentModel.ISupportInitialize)layoutControlItem5).EndInit();
             ResumeLayout(false);
         }
 
@@ -361,5 +408,10 @@
         private DevExpress.XtraTreeList.Columns.TreeListColumn treeListColumn2;
         private DevExpress.XtraEditors.SidePanel sidePanel1;
         private DevExpress.XtraLayout.LayoutControlItem layoutControlItem5;
+        private DevExpress.XtraEditors.MemoEdit memoEditDescription;
+        private Yw.WinFrmUI.SetFlagsEditCtrl setFlagsEditCtrl1;
+        private DevExpress.XtraEditors.TextEdit txtTagName;
+        private DevExpress.XtraLayout.LayoutControlItem layoutControlItem6;
+        private DevExpress.XtraLayout.LayoutControlItem layoutControlItem9;
     }
 }
\ No newline at end of file
diff --git a/WinFrmUI/PBS.WinFrmUI/01-place/AddPlaceDlg.cs b/WinFrmUI/PBS.WinFrmUI/01-place/AddPlaceDlg.cs
index 959b9b0..4b880dc 100644
--- a/WinFrmUI/PBS.WinFrmUI/01-place/AddPlaceDlg.cs
+++ b/WinFrmUI/PBS.WinFrmUI/01-place/AddPlaceDlg.cs
@@ -1,6 +1,7 @@
 锘縰sing DevExpress.DataProcessing.InMemoryDataProcessor;
 using DevExpress.Utils.Extensions;
 using System.Windows.Media.Animation;
+using Yw;
 using Yw.WinFrmUI;
 
 namespace PBS.WinFrmUI
@@ -66,6 +67,8 @@
             map.SetMarkerEvent += Map_SetMarkerEvent;
             await map.InitialContainer();
             this.sidePanel1.AddControl(map);
+            var allFlagsList = await BLLFactory<Yw.BLL.SysFlag>.Instance.GetBySysType(DataType.PBSPlace);
+            this.setFlagsEditCtrl1.SetBindingData(allFlagsList?.Select(x => x.Name).Distinct().ToList(), null);
         }
 
         //鏇存敼鐐瑰悗
@@ -114,6 +117,9 @@
             _placeVmo.Name = txtEditName.Text.Trim();
             _placeVmo.Address = textEditAddress.Text.Trim();
             _placeVmo.UseStatus = Yw.Vmo.eUseStatus.Enable;
+            _placeVmo.Description = memoEditDescription.Text.Trim();
+            _placeVmo.Flags = this.setFlagsEditCtrl1.SelectedFlagList;
+            _placeVmo.TagName = this.txtTagName.Text.Trim();
             _mapInfo.ObjectType = PBS.DataType.PBSPlace;
             _mapInfo.ObjectName = _placeVmo.Name;
             _mapInfo.Purpose = Yw.Map.Purpose.Location;
diff --git a/WinFrmUI/PBS.WinFrmUI/01-place/EditPlaceDlg.Designer.cs b/WinFrmUI/PBS.WinFrmUI/01-place/EditPlaceDlg.Designer.cs
index 3a6a8c3..d529d6a 100644
--- a/WinFrmUI/PBS.WinFrmUI/01-place/EditPlaceDlg.Designer.cs
+++ b/WinFrmUI/PBS.WinFrmUI/01-place/EditPlaceDlg.Designer.cs
@@ -35,24 +35,28 @@
             layoutControlItem8 = new DevExpress.XtraLayout.LayoutControlItem();
             txtEditName = new DevExpress.XtraEditors.TextEdit();
             layoutControl1 = new DevExpress.XtraLayout.LayoutControl();
+            sidePanel1 = new DevExpress.XtraEditors.SidePanel();
             txtEditRegion = new DevExpress.XtraEditors.TreeListLookUpEdit();
             treeList1 = new DevExpress.XtraTreeList.TreeList();
             treeListColumn1 = new DevExpress.XtraTreeList.Columns.TreeListColumn();
             treeListColumn2 = new DevExpress.XtraTreeList.Columns.TreeListColumn();
             panelControl1 = new DevExpress.XtraEditors.PanelControl();
             textEditAddress = new DevExpress.XtraEditors.TextEdit();
-            memoEdit1 = new DevExpress.XtraEditors.MemoEdit();
+            memoEditDescription = new DevExpress.XtraEditors.MemoEdit();
             tabbedControlGroup1 = new DevExpress.XtraLayout.TabbedControlGroup();
+            layoutControlGroup3 = new DevExpress.XtraLayout.LayoutControlGroup();
+            layoutControlItem4 = new DevExpress.XtraLayout.LayoutControlItem();
             layoutControlGroup1 = new DevExpress.XtraLayout.LayoutControlGroup();
             layoutControlItem2 = new DevExpress.XtraLayout.LayoutControlItem();
             layoutControlGroup2 = new DevExpress.XtraLayout.LayoutControlGroup();
-            layoutControlGroup3 = new DevExpress.XtraLayout.LayoutControlGroup();
-            layoutControlItem4 = new DevExpress.XtraLayout.LayoutControlItem();
+            layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem();
             layoutControlItem3 = new DevExpress.XtraLayout.LayoutControlItem();
             layoutControlItem5 = new DevExpress.XtraLayout.LayoutControlItem();
             dxErrorProvider1 = new DevExpress.XtraEditors.DXErrorProvider.DXErrorProvider(components);
-            sidePanel1 = new DevExpress.XtraEditors.SidePanel();
-            layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem();
+            setFlagsEditCtrl1 = new Yw.WinFrmUI.SetFlagsEditCtrl();
+            txtTagName = new DevExpress.XtraEditors.TextEdit();
+            layoutControlItem6 = new DevExpress.XtraLayout.LayoutControlItem();
+            layoutControlItem9 = new DevExpress.XtraLayout.LayoutControlItem();
             ((System.ComponentModel.ISupportInitialize)Root).BeginInit();
             ((System.ComponentModel.ISupportInitialize)layoutControlItem7).BeginInit();
             ((System.ComponentModel.ISupportInitialize)layoutControlItem8).BeginInit();
@@ -63,17 +67,20 @@
             ((System.ComponentModel.ISupportInitialize)treeList1).BeginInit();
             ((System.ComponentModel.ISupportInitialize)panelControl1).BeginInit();
             ((System.ComponentModel.ISupportInitialize)textEditAddress.Properties).BeginInit();
-            ((System.ComponentModel.ISupportInitialize)memoEdit1.Properties).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)memoEditDescription.Properties).BeginInit();
             ((System.ComponentModel.ISupportInitialize)tabbedControlGroup1).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)layoutControlGroup3).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)layoutControlItem4).BeginInit();
             ((System.ComponentModel.ISupportInitialize)layoutControlGroup1).BeginInit();
             ((System.ComponentModel.ISupportInitialize)layoutControlItem2).BeginInit();
             ((System.ComponentModel.ISupportInitialize)layoutControlGroup2).BeginInit();
-            ((System.ComponentModel.ISupportInitialize)layoutControlGroup3).BeginInit();
-            ((System.ComponentModel.ISupportInitialize)layoutControlItem4).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)layoutControlItem1).BeginInit();
             ((System.ComponentModel.ISupportInitialize)layoutControlItem3).BeginInit();
             ((System.ComponentModel.ISupportInitialize)layoutControlItem5).BeginInit();
             ((System.ComponentModel.ISupportInitialize)dxErrorProvider1).BeginInit();
-            ((System.ComponentModel.ISupportInitialize)layoutControlItem1).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)txtTagName.Properties).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)layoutControlItem6).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)layoutControlItem9).BeginInit();
             SuspendLayout();
             // 
             // Root
@@ -82,7 +89,7 @@
             Root.AppearanceItemCaption.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
             Root.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
             Root.GroupBordersVisible = false;
-            Root.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { layoutControlItem7, layoutControlItem8, tabbedControlGroup1, layoutControlItem3, layoutControlItem5 });
+            Root.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { layoutControlItem7, layoutControlItem8, tabbedControlGroup1, layoutControlItem3, layoutControlItem5, layoutControlItem6, layoutControlItem9 });
             Root.Name = "Root";
             Root.Size = new Size(816, 443);
             Root.TextVisible = false;
@@ -90,9 +97,9 @@
             // layoutControlItem7
             // 
             layoutControlItem7.Control = generalOkAndCancelCtrl1;
-            layoutControlItem7.Location = new Point(0, 386);
+            layoutControlItem7.Location = new Point(0, 358);
             layoutControlItem7.Name = "layoutControlItem7";
-            layoutControlItem7.Size = new Size(796, 37);
+            layoutControlItem7.Size = new Size(796, 65);
             layoutControlItem7.TextSize = new Size(0, 0);
             layoutControlItem7.TextVisible = false;
             // 
@@ -102,10 +109,10 @@
             generalOkAndCancelCtrl1.ButtonCancelMinSize = new Size(114, 33);
             generalOkAndCancelCtrl1.ButtonOkMaxSize = new Size(131, 42);
             generalOkAndCancelCtrl1.ButtonOkMinSize = new Size(114, 33);
-            generalOkAndCancelCtrl1.Location = new Point(12, 398);
+            generalOkAndCancelCtrl1.Location = new Point(12, 370);
             generalOkAndCancelCtrl1.Margin = new Padding(3, 5, 3, 5);
             generalOkAndCancelCtrl1.Name = "generalOkAndCancelCtrl1";
-            generalOkAndCancelCtrl1.Size = new Size(792, 33);
+            generalOkAndCancelCtrl1.Size = new Size(792, 61);
             generalOkAndCancelCtrl1.TabIndex = 5;
             // 
             // layoutControlItem8
@@ -129,13 +136,15 @@
             // 
             // layoutControl1
             // 
+            layoutControl1.Controls.Add(setFlagsEditCtrl1);
+            layoutControl1.Controls.Add(txtTagName);
             layoutControl1.Controls.Add(sidePanel1);
             layoutControl1.Controls.Add(txtEditRegion);
             layoutControl1.Controls.Add(panelControl1);
             layoutControl1.Controls.Add(generalOkAndCancelCtrl1);
             layoutControl1.Controls.Add(txtEditName);
             layoutControl1.Controls.Add(textEditAddress);
-            layoutControl1.Controls.Add(memoEdit1);
+            layoutControl1.Controls.Add(memoEditDescription);
             layoutControl1.Dock = DockStyle.Fill;
             layoutControl1.Location = new Point(0, 0);
             layoutControl1.Margin = new Padding(3, 4, 3, 4);
@@ -145,6 +154,14 @@
             layoutControl1.Size = new Size(816, 443);
             layoutControl1.TabIndex = 2;
             layoutControl1.Text = "layoutControl1";
+            // 
+            // sidePanel1
+            // 
+            sidePanel1.Location = new Point(15, 157);
+            sidePanel1.Name = "sidePanel1";
+            sidePanel1.Size = new Size(786, 206);
+            sidePanel1.TabIndex = 3;
+            sidePanel1.Text = "sidePanel1";
             // 
             // txtEditRegion
             // 
@@ -187,10 +204,10 @@
             // 
             // panelControl1
             // 
-            panelControl1.Location = new Point(15, 129);
+            panelControl1.Location = new Point(15, 157);
             panelControl1.Margin = new Padding(3, 4, 3, 4);
             panelControl1.Name = "panelControl1";
-            panelControl1.Size = new Size(786, 262);
+            panelControl1.Size = new Size(786, 206);
             panelControl1.TabIndex = 1;
             // 
             // textEditAddress
@@ -202,30 +219,47 @@
             textEditAddress.StyleController = layoutControl1;
             textEditAddress.TabIndex = 3;
             // 
-            // memoEdit1
+            // memoEditDescription
             // 
-            memoEdit1.Location = new Point(92, 129);
-            memoEdit1.Margin = new Padding(3, 4, 3, 4);
-            memoEdit1.Name = "memoEdit1";
-            memoEdit1.Size = new Size(709, 262);
-            memoEdit1.StyleController = layoutControl1;
-            memoEdit1.TabIndex = 1;
+            memoEditDescription.Location = new Point(92, 157);
+            memoEditDescription.Margin = new Padding(3, 4, 3, 4);
+            memoEditDescription.Name = "memoEditDescription";
+            memoEditDescription.Size = new Size(709, 206);
+            memoEditDescription.StyleController = layoutControl1;
+            memoEditDescription.TabIndex = 1;
             // 
             // tabbedControlGroup1
             // 
-            tabbedControlGroup1.Location = new Point(0, 84);
+            tabbedControlGroup1.Location = new Point(0, 112);
             tabbedControlGroup1.Name = "tabbedControlGroup1";
             tabbedControlGroup1.Padding = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0);
-            tabbedControlGroup1.SelectedTabPage = layoutControlGroup2;
-            tabbedControlGroup1.Size = new Size(796, 302);
+            tabbedControlGroup1.SelectedTabPage = layoutControlGroup3;
+            tabbedControlGroup1.Size = new Size(796, 246);
             tabbedControlGroup1.TabPages.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { layoutControlGroup1, layoutControlGroup2, layoutControlGroup3 });
+            // 
+            // layoutControlGroup3
+            // 
+            layoutControlGroup3.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { layoutControlItem4 });
+            layoutControlGroup3.Location = new Point(0, 0);
+            layoutControlGroup3.Name = "layoutControlGroup3";
+            layoutControlGroup3.Size = new Size(790, 210);
+            layoutControlGroup3.Text = "璇存槑";
+            // 
+            // layoutControlItem4
+            // 
+            layoutControlItem4.Control = memoEditDescription;
+            layoutControlItem4.Location = new Point(0, 0);
+            layoutControlItem4.Name = "layoutControlItem4";
+            layoutControlItem4.Size = new Size(790, 210);
+            layoutControlItem4.Text = "璇存槑";
+            layoutControlItem4.TextSize = new Size(65, 18);
             // 
             // layoutControlGroup1
             // 
             layoutControlGroup1.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { layoutControlItem2 });
             layoutControlGroup1.Location = new Point(0, 0);
             layoutControlGroup1.Name = "layoutControlGroup1";
-            layoutControlGroup1.Size = new Size(790, 266);
+            layoutControlGroup1.Size = new Size(790, 210);
             layoutControlGroup1.Text = "灞炴��";
             // 
             // layoutControlItem2
@@ -233,7 +267,7 @@
             layoutControlItem2.Control = panelControl1;
             layoutControlItem2.Location = new Point(0, 0);
             layoutControlItem2.Name = "layoutControlItem2";
-            layoutControlItem2.Size = new Size(790, 266);
+            layoutControlItem2.Size = new Size(790, 210);
             layoutControlItem2.TextSize = new Size(0, 0);
             layoutControlItem2.TextVisible = false;
             // 
@@ -242,25 +276,17 @@
             layoutControlGroup2.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { layoutControlItem1 });
             layoutControlGroup2.Location = new Point(0, 0);
             layoutControlGroup2.Name = "layoutControlGroup2";
-            layoutControlGroup2.Size = new Size(790, 266);
+            layoutControlGroup2.Size = new Size(790, 210);
             layoutControlGroup2.Text = "鍦板浘";
             // 
-            // layoutControlGroup3
+            // layoutControlItem1
             // 
-            layoutControlGroup3.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { layoutControlItem4 });
-            layoutControlGroup3.Location = new Point(0, 0);
-            layoutControlGroup3.Name = "layoutControlGroup3";
-            layoutControlGroup3.Size = new Size(790, 266);
-            layoutControlGroup3.Text = "璇存槑";
-            // 
-            // layoutControlItem4
-            // 
-            layoutControlItem4.Control = memoEdit1;
-            layoutControlItem4.Location = new Point(0, 0);
-            layoutControlItem4.Name = "layoutControlItem4";
-            layoutControlItem4.Size = new Size(790, 266);
-            layoutControlItem4.Text = "璇存槑";
-            layoutControlItem4.TextSize = new Size(65, 18);
+            layoutControlItem1.Control = sidePanel1;
+            layoutControlItem1.Location = new Point(0, 0);
+            layoutControlItem1.Name = "layoutControlItem1";
+            layoutControlItem1.Size = new Size(790, 210);
+            layoutControlItem1.TextSize = new Size(0, 0);
+            layoutControlItem1.TextVisible = false;
             // 
             // layoutControlItem3
             // 
@@ -284,22 +310,40 @@
             // 
             dxErrorProvider1.ContainerControl = this;
             // 
-            // sidePanel1
+            // setFlagsEditCtrl1
             // 
-            sidePanel1.Location = new Point(15, 129);
-            sidePanel1.Name = "sidePanel1";
-            sidePanel1.Size = new Size(786, 262);
-            sidePanel1.TabIndex = 3;
-            sidePanel1.Text = "sidePanel1";
+            setFlagsEditCtrl1.Location = new Point(89, 96);
+            setFlagsEditCtrl1.Margin = new Padding(3, 5, 3, 5);
+            setFlagsEditCtrl1.Name = "setFlagsEditCtrl1";
+            setFlagsEditCtrl1.Size = new Size(317, 24);
+            setFlagsEditCtrl1.TabIndex = 8;
             // 
-            // layoutControlItem1
+            // txtTagName
             // 
-            layoutControlItem1.Control = sidePanel1;
-            layoutControlItem1.Location = new Point(0, 0);
-            layoutControlItem1.Name = "layoutControlItem1";
-            layoutControlItem1.Size = new Size(790, 266);
-            layoutControlItem1.TextSize = new Size(0, 0);
-            layoutControlItem1.TextVisible = false;
+            txtTagName.Location = new Point(487, 96);
+            txtTagName.Margin = new Padding(3, 4, 3, 4);
+            txtTagName.Name = "txtTagName";
+            txtTagName.Size = new Size(317, 24);
+            txtTagName.StyleController = layoutControl1;
+            txtTagName.TabIndex = 9;
+            // 
+            // layoutControlItem6
+            // 
+            layoutControlItem6.Control = setFlagsEditCtrl1;
+            layoutControlItem6.Location = new Point(0, 84);
+            layoutControlItem6.Name = "layoutControlItem6";
+            layoutControlItem6.Size = new Size(398, 28);
+            layoutControlItem6.Text = "鏍囩:";
+            layoutControlItem6.TextSize = new Size(65, 18);
+            // 
+            // layoutControlItem9
+            // 
+            layoutControlItem9.Control = txtTagName;
+            layoutControlItem9.Location = new Point(398, 84);
+            layoutControlItem9.Name = "layoutControlItem9";
+            layoutControlItem9.Size = new Size(398, 28);
+            layoutControlItem9.Text = "鏍囧織:";
+            layoutControlItem9.TextSize = new Size(65, 18);
             // 
             // EditPlaceDlg
             // 
@@ -321,17 +365,20 @@
             ((System.ComponentModel.ISupportInitialize)treeList1).EndInit();
             ((System.ComponentModel.ISupportInitialize)panelControl1).EndInit();
             ((System.ComponentModel.ISupportInitialize)textEditAddress.Properties).EndInit();
-            ((System.ComponentModel.ISupportInitialize)memoEdit1.Properties).EndInit();
+            ((System.ComponentModel.ISupportInitialize)memoEditDescription.Properties).EndInit();
             ((System.ComponentModel.ISupportInitialize)tabbedControlGroup1).EndInit();
+            ((System.ComponentModel.ISupportInitialize)layoutControlGroup3).EndInit();
+            ((System.ComponentModel.ISupportInitialize)layoutControlItem4).EndInit();
             ((System.ComponentModel.ISupportInitialize)layoutControlGroup1).EndInit();
             ((System.ComponentModel.ISupportInitialize)layoutControlItem2).EndInit();
             ((System.ComponentModel.ISupportInitialize)layoutControlGroup2).EndInit();
-            ((System.ComponentModel.ISupportInitialize)layoutControlGroup3).EndInit();
-            ((System.ComponentModel.ISupportInitialize)layoutControlItem4).EndInit();
+            ((System.ComponentModel.ISupportInitialize)layoutControlItem1).EndInit();
             ((System.ComponentModel.ISupportInitialize)layoutControlItem3).EndInit();
             ((System.ComponentModel.ISupportInitialize)layoutControlItem5).EndInit();
             ((System.ComponentModel.ISupportInitialize)dxErrorProvider1).EndInit();
-            ((System.ComponentModel.ISupportInitialize)layoutControlItem1).EndInit();
+            ((System.ComponentModel.ISupportInitialize)txtTagName.Properties).EndInit();
+            ((System.ComponentModel.ISupportInitialize)layoutControlItem6).EndInit();
+            ((System.ComponentModel.ISupportInitialize)layoutControlItem9).EndInit();
             ResumeLayout(false);
         }
 
@@ -361,5 +408,10 @@
         private DevExpress.XtraTreeList.Columns.TreeListColumn treeListColumn2;
         private DevExpress.XtraEditors.SidePanel sidePanel1;
         private DevExpress.XtraLayout.LayoutControlItem layoutControlItem1;
+        private DevExpress.XtraEditors.MemoEdit memoEditDescription;
+        private Yw.WinFrmUI.SetFlagsEditCtrl setFlagsEditCtrl1;
+        private DevExpress.XtraEditors.TextEdit txtTagName;
+        private DevExpress.XtraLayout.LayoutControlItem layoutControlItem6;
+        private DevExpress.XtraLayout.LayoutControlItem layoutControlItem9;
     }
 }
\ No newline at end of file
diff --git a/WinFrmUI/PBS.WinFrmUI/01-place/EditPlaceDlg.cs b/WinFrmUI/PBS.WinFrmUI/01-place/EditPlaceDlg.cs
index 554122d..04a6f5c 100644
--- a/WinFrmUI/PBS.WinFrmUI/01-place/EditPlaceDlg.cs
+++ b/WinFrmUI/PBS.WinFrmUI/01-place/EditPlaceDlg.cs
@@ -2,6 +2,7 @@
 using DevExpress.Utils.Extensions;
 using PBS.Model;
 using PBS.Vmo;
+using Yw;
 using Yw.DAL.PostgreSql;
 using Yw.Vmo;
 using Yw.WinFrmUI;
@@ -81,6 +82,8 @@
             {
                 _maker = Yw.Model.Map.Marker.ToModel(mapInfo.Position);
             }
+            var allFlagsList = await BLLFactory<Yw.BLL.SysFlag>.Instance.GetBySysType(DataType.PBSPlace);
+            this.setFlagsEditCtrl1.SetBindingData(allFlagsList?.Select(x => x.Name).Distinct().ToList(), null);
         }
 
         //鍦板浘鍔犺浇瀹屾垚鍚�
@@ -137,6 +140,9 @@
             _placeVmo.Name = txtEditName.Text.Trim();
             _placeVmo.Address = textEditAddress.Text.Trim();
             _placeVmo.UseStatus = Yw.Vmo.eUseStatus.Enable;
+            _placeVmo.Flags = this.setFlagsEditCtrl1.SelectedFlagList;
+            _placeVmo.TagName = this.txtTagName.Text.Trim();
+            _placeVmo.Description = memoEditDescription.Text.Trim();
             if (_mapInfo == null)
             {
                 _mapInfo = new MapInfoVmo();
diff --git a/WinFrmUI/PBS.WinFrmUI/01-place/PlaceMgrPage.cs b/WinFrmUI/PBS.WinFrmUI/01-place/PlaceMgrPage.cs
index 0ae6bab..6390f02 100644
--- a/WinFrmUI/PBS.WinFrmUI/01-place/PlaceMgrPage.cs
+++ b/WinFrmUI/PBS.WinFrmUI/01-place/PlaceMgrPage.cs
@@ -13,6 +13,8 @@
         {
             InitializeComponent();
             this.gridView1.SetNormalView(30);
+            this.gridView1.Columns["RegionID"].GroupIndex = 0;
+            this.gridView1.GroupFormat = "{1}";
             behaviorManager1.Detach<DragDropBehavior>(gridView1);
         }
 
@@ -57,11 +59,11 @@
                 {
                     vmo.ID = id;
                     mapInfo.ObjectID = id;
-                    var mapId= await new Yw.BLL.MapInfo().Insert(mapInfo);
+                    var mapId = await new Yw.BLL.MapInfo().Insert(mapInfo);
                     mapInfo.ID = mapId;
                     _allBindingList.Add(new PlaceViewModel(vmo, mapInfo));
                     this.placeViewModelBindingSource.ResetBindings(false);
-                     return true;
+                    return true;
                 }
                 return false;
             };
diff --git a/WinFrmUI/PBS.WinFrmUI/02-facility/00-core/FacilitiesCtrl.Designer.cs b/WinFrmUI/PBS.WinFrmUI/02-facility/00-core/FacilitiesCtrl.Designer.cs
index 85a7ac3..dd78133 100644
--- a/WinFrmUI/PBS.WinFrmUI/02-facility/00-core/FacilitiesCtrl.Designer.cs
+++ b/WinFrmUI/PBS.WinFrmUI/02-facility/00-core/FacilitiesCtrl.Designer.cs
@@ -31,6 +31,8 @@
             components = new System.ComponentModel.Container();
             System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FacilitiesCtrl));
             FacilitiesWizardFormlayoutControl1ConvertedLayout = new DevExpress.XtraLayout.LayoutControl();
+            setFlagsEditCtrl1 = new Yw.WinFrmUI.SetFlagsEditCtrl();
+            txtTagName = new DevExpress.XtraEditors.TextEdit();
             txtEditPlace = new DevExpress.XtraEditors.TreeListLookUpEdit();
             treeListLookUpEdit1TreeList = new DevExpress.XtraTreeList.TreeList();
             treeListColumn1 = new DevExpress.XtraTreeList.Columns.TreeListColumn();
@@ -64,10 +66,13 @@
             layoutControlItem9 = new DevExpress.XtraLayout.LayoutControlItem();
             layoutControlItem10 = new DevExpress.XtraLayout.LayoutControlItem();
             layoutControlItem11 = new DevExpress.XtraLayout.LayoutControlItem();
+            layoutControlItem12 = new DevExpress.XtraLayout.LayoutControlItem();
+            layoutControlItem13 = new DevExpress.XtraLayout.LayoutControlItem();
             dxErrorProvider1 = new DevExpress.XtraEditors.DXErrorProvider.DXErrorProvider(components);
             imageCollection1 = new DevExpress.Utils.ImageCollection(components);
             ((System.ComponentModel.ISupportInitialize)FacilitiesWizardFormlayoutControl1ConvertedLayout).BeginInit();
             FacilitiesWizardFormlayoutControl1ConvertedLayout.SuspendLayout();
+            ((System.ComponentModel.ISupportInitialize)txtTagName.Properties).BeginInit();
             ((System.ComponentModel.ISupportInitialize)txtEditPlace.Properties).BeginInit();
             ((System.ComponentModel.ISupportInitialize)treeListLookUpEdit1TreeList).BeginInit();
             ((System.ComponentModel.ISupportInitialize)txtFloorHeight.Properties).BeginInit();
@@ -100,12 +105,16 @@
             ((System.ComponentModel.ISupportInitialize)layoutControlItem9).BeginInit();
             ((System.ComponentModel.ISupportInitialize)layoutControlItem10).BeginInit();
             ((System.ComponentModel.ISupportInitialize)layoutControlItem11).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)layoutControlItem12).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)layoutControlItem13).BeginInit();
             ((System.ComponentModel.ISupportInitialize)dxErrorProvider1).BeginInit();
             ((System.ComponentModel.ISupportInitialize)imageCollection1).BeginInit();
             SuspendLayout();
             // 
             // FacilitiesWizardFormlayoutControl1ConvertedLayout
             // 
+            FacilitiesWizardFormlayoutControl1ConvertedLayout.Controls.Add(setFlagsEditCtrl1);
+            FacilitiesWizardFormlayoutControl1ConvertedLayout.Controls.Add(txtTagName);
             FacilitiesWizardFormlayoutControl1ConvertedLayout.Controls.Add(txtEditPlace);
             FacilitiesWizardFormlayoutControl1ConvertedLayout.Controls.Add(txtFloorHeight);
             FacilitiesWizardFormlayoutControl1ConvertedLayout.Controls.Add(txtFloor);
@@ -130,6 +139,25 @@
             FacilitiesWizardFormlayoutControl1ConvertedLayout.Size = new Size(858, 423);
             FacilitiesWizardFormlayoutControl1ConvertedLayout.TabIndex = 146;
             // 
+            // setFlagsEditCtrl1
+            // 
+            setFlagsEditCtrl1.Location = new Point(158, 292);
+            setFlagsEditCtrl1.Margin = new Padding(3, 5, 3, 5);
+            setFlagsEditCtrl1.MinimumSize = new Size(0, 36);
+            setFlagsEditCtrl1.Name = "setFlagsEditCtrl1";
+            setFlagsEditCtrl1.Size = new Size(269, 36);
+            setFlagsEditCtrl1.TabIndex = 147;
+            // 
+            // txtTagName
+            // 
+            txtTagName.Location = new Point(577, 292);
+            txtTagName.Margin = new Padding(3, 4, 3, 4);
+            txtTagName.MinimumSize = new Size(0, 36);
+            txtTagName.Name = "txtTagName";
+            txtTagName.Size = new Size(269, 36);
+            txtTagName.StyleController = FacilitiesWizardFormlayoutControl1ConvertedLayout;
+            txtTagName.TabIndex = 148;
+            // 
             // txtEditPlace
             // 
             txtEditPlace.Location = new Point(577, 12);
@@ -153,6 +181,7 @@
             treeListLookUpEdit1TreeList.OptionsView.ShowIndentAsRowStyle = true;
             treeListLookUpEdit1TreeList.Size = new Size(400, 200);
             treeListLookUpEdit1TreeList.TabIndex = 0;
+            treeListLookUpEdit1TreeList.BeforeFocusNode += treeListLookUpEdit1TreeList_BeforeFocusNode;
             // 
             // treeListColumn1
             // 
@@ -298,9 +327,9 @@
             // 
             // txtDescription
             // 
-            txtDescription.Location = new Point(158, 292);
+            txtDescription.Location = new Point(158, 332);
             txtDescription.Name = "txtDescription";
-            txtDescription.Size = new Size(688, 119);
+            txtDescription.Size = new Size(688, 79);
             txtDescription.StyleController = FacilitiesWizardFormlayoutControl1ConvertedLayout;
             txtDescription.TabIndex = 15;
             // 
@@ -310,7 +339,7 @@
             layoutControlGroup1.AppearanceItemCaption.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
             layoutControlGroup1.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
             layoutControlGroup1.GroupBordersVisible = false;
-            layoutControlGroup1.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { txtFlooritem, comboBoxCompletePlantitem, txtNameitem, comboBoxWaterSupplyitem, txtWaterHeightitem, txtFloorHeightitem, layoutControlItem6, layoutControlItem5, layoutControlItem7, layoutControlItem2, txtWaterPressureitem, layoutControlItem4, layoutControlItem9, layoutControlItem10, layoutControlItem11 });
+            layoutControlGroup1.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { txtFlooritem, comboBoxCompletePlantitem, txtNameitem, comboBoxWaterSupplyitem, txtWaterHeightitem, txtFloorHeightitem, layoutControlItem6, layoutControlItem5, layoutControlItem7, layoutControlItem2, txtWaterPressureitem, layoutControlItem4, layoutControlItem9, layoutControlItem10, layoutControlItem11, layoutControlItem12, layoutControlItem13 });
             layoutControlGroup1.Name = "Root";
             layoutControlGroup1.Size = new Size(858, 423);
             layoutControlGroup1.TextVisible = false;
@@ -463,11 +492,29 @@
             // layoutControlItem11
             // 
             layoutControlItem11.Control = txtDescription;
-            layoutControlItem11.Location = new Point(0, 280);
+            layoutControlItem11.Location = new Point(0, 320);
             layoutControlItem11.Name = "layoutControlItem11";
-            layoutControlItem11.Size = new Size(838, 123);
+            layoutControlItem11.Size = new Size(838, 83);
             layoutControlItem11.Text = "璇存槑:";
             layoutControlItem11.TextSize = new Size(134, 18);
+            // 
+            // layoutControlItem12
+            // 
+            layoutControlItem12.Control = setFlagsEditCtrl1;
+            layoutControlItem12.Location = new Point(0, 280);
+            layoutControlItem12.Name = "layoutControlItem12";
+            layoutControlItem12.Size = new Size(419, 40);
+            layoutControlItem12.Text = "鏍囩:";
+            layoutControlItem12.TextSize = new Size(134, 18);
+            // 
+            // layoutControlItem13
+            // 
+            layoutControlItem13.Control = txtTagName;
+            layoutControlItem13.Location = new Point(419, 280);
+            layoutControlItem13.Name = "layoutControlItem13";
+            layoutControlItem13.Size = new Size(419, 40);
+            layoutControlItem13.Text = "鏍囧織:";
+            layoutControlItem13.TextSize = new Size(134, 18);
             // 
             // dxErrorProvider1
             // 
@@ -489,6 +536,7 @@
             Size = new Size(858, 423);
             ((System.ComponentModel.ISupportInitialize)FacilitiesWizardFormlayoutControl1ConvertedLayout).EndInit();
             FacilitiesWizardFormlayoutControl1ConvertedLayout.ResumeLayout(false);
+            ((System.ComponentModel.ISupportInitialize)txtTagName.Properties).EndInit();
             ((System.ComponentModel.ISupportInitialize)txtEditPlace.Properties).EndInit();
             ((System.ComponentModel.ISupportInitialize)treeListLookUpEdit1TreeList).EndInit();
             ((System.ComponentModel.ISupportInitialize)txtFloorHeight.Properties).EndInit();
@@ -521,6 +569,8 @@
             ((System.ComponentModel.ISupportInitialize)layoutControlItem9).EndInit();
             ((System.ComponentModel.ISupportInitialize)layoutControlItem10).EndInit();
             ((System.ComponentModel.ISupportInitialize)layoutControlItem11).EndInit();
+            ((System.ComponentModel.ISupportInitialize)layoutControlItem12).EndInit();
+            ((System.ComponentModel.ISupportInitialize)layoutControlItem13).EndInit();
             ((System.ComponentModel.ISupportInitialize)dxErrorProvider1).EndInit();
             ((System.ComponentModel.ISupportInitialize)imageCollection1).EndInit();
             ResumeLayout(false);
@@ -569,5 +619,9 @@
         private DevExpress.Utils.ImageCollection imageCollection1;
         private DevExpress.XtraEditors.MemoEdit txtDescription;
         private DevExpress.XtraLayout.LayoutControlItem layoutControlItem11;
+        private Yw.WinFrmUI.SetFlagsEditCtrl setFlagsEditCtrl1;
+        private DevExpress.XtraEditors.TextEdit txtTagName;
+        private DevExpress.XtraLayout.LayoutControlItem layoutControlItem12;
+        private DevExpress.XtraLayout.LayoutControlItem layoutControlItem13;
     }
 }
diff --git a/WinFrmUI/PBS.WinFrmUI/02-facility/00-core/FacilitiesCtrl.cs b/WinFrmUI/PBS.WinFrmUI/02-facility/00-core/FacilitiesCtrl.cs
index 225490e..442eb88 100644
--- a/WinFrmUI/PBS.WinFrmUI/02-facility/00-core/FacilitiesCtrl.cs
+++ b/WinFrmUI/PBS.WinFrmUI/02-facility/00-core/FacilitiesCtrl.cs
@@ -1,5 +1,9 @@
-锘縰sing DevExpress.XtraEditors.Controls;
+锘縰sing DevExpress.Mvvm.Native;
+using DevExpress.XtraEditors;
+using DevExpress.XtraEditors.Controls;
+using DevExpress.XtraTreeList;
 using System.Windows.Forms;
+using Yw;
 
 namespace PBS.WinFrmUI
 {
@@ -82,12 +86,26 @@
                 this.comboBoxPackages.Properties.Items.Add(imageItem);
             }
             var list = await new PBS.BLL.Place().GetAll();
-            this.treeListLookUpEdit1TreeList.DataSource = list;
+            var model = list.Select(x => new PlaceSelectViewModel(x)).ToList();
+            var regionIdList = model.GroupBy(x => x.ParentID).Select(y => y.Key).ToList();
+            if (regionIdList != null && regionIdList.Count > 0)
+            {
+                var placeList = await new Yw.BLL.Division().GetByIds(regionIdList);
+                foreach (var item in placeList)
+                {
+                    model.Add(new PlaceSelectViewModel
+                    {
+                        ID = item.ID,
+                        Name = item.Name
+                    });
+                }
+            }
+            this.treeListLookUpEdit1TreeList.DataSource = model;
             this.imageComboBoxConnectionType.Properties.AddEnum(typeof(PBS.eConnectionType));
             this.imageComboBoxConnectionType.SelectedIndex = 1;
         }
 
-        public void SetData(Vmo.FacilityVmo model)
+        public async void SetData(Vmo.FacilityVmo model)
         {
             _facilityVmo = model;
             this.txtName.EditValue = model.Name;
@@ -105,6 +123,9 @@
             this.textEditConnectionAddress.EditValue = model.ConnectionAddress;
             this.textEditMaxHeight.EditValue = model.MaxHeight;
             this.txtDescription.EditValue = model.Description;
+            var flags = await BLLFactory<Yw.BLL.SysFlag>.Instance.GetBySysType(HStation.Assets.DataType.FourlinkMain);
+            this.setFlagsEditCtrl1.SetBindingData(flags?.Select(x => x.Name).ToList(), model.Flags);
+            this.txtTagName.EditValue = model.TagName;
         }
 
         //鑾峰彇鏂囨湰淇℃伅
@@ -146,8 +167,23 @@
                 double.TryParse(this.textEditMaxHeight.Text, out double maxHeight);
                 _facilityVmo.MaxHeight = maxHeight;
             }
+            _facilityVmo.TagName = txtTagName.Text.Trim();
+            _facilityVmo.Flags = this.setFlagsEditCtrl1.SelectedFlagList;
             _facilityVmo.Description = txtDescription.Text;
             return _facilityVmo;
         }
+
+        private void treeListLookUpEdit1TreeList_BeforeFocusNode(object sender, BeforeFocusNodeEventArgs e)
+        {
+            TreeList treeList = sender as TreeList;
+            if (treeList != null)
+            {
+                // 妫�鏌ュ綋鍓嶇劍鐐硅妭鐐规槸鍚︿负鐖惰妭鐐�
+                if (e.Node.HasChildren)
+                {
+                    e.CanFocus = false;
+                }
+            }
+        }
     }
 }
\ No newline at end of file
diff --git a/WinFrmUI/PBS.WinFrmUI/02-facility/00-core/FacilitiesCtrl.resx b/WinFrmUI/PBS.WinFrmUI/02-facility/00-core/FacilitiesCtrl.resx
index 4359c82..1c590a8 100644
--- a/WinFrmUI/PBS.WinFrmUI/02-facility/00-core/FacilitiesCtrl.resx
+++ b/WinFrmUI/PBS.WinFrmUI/02-facility/00-core/FacilitiesCtrl.resx
@@ -133,7 +133,7 @@
         cmVhbWVyAgAAAAlJbWFnZVNpemUERGF0YQQHE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAAgIAAAAF/P//
         /xNTeXN0ZW0uRHJhd2luZy5TaXplAgAAAAV3aWR0aAZoZWlnaHQAAAgIAwAAABAAAAAQAAAACQUAAAAP
         BQAAAGoFAAACsQIAAIlQTkcNChoKAAAADUlIRFIAAAAQAAAAEAgGAAAAH/P/YQAAAARnQU1BAACxjwv8
-        YQUAAAAJcEhZcwAAEnIAABJyAV5lW+MAAAJTSURBVDhPfVPPTxNREO4fYGI8efFPMPFgYogX48V4Nh7k
+        YQUAAAAJcEhZcwAAEnEAABJxAfPceo4AAAJTSURBVDhPfVPPTxNREO4fYGI8efFPMPFgYogX48V4Nh7k
         4EmlQCCmVBIOBSW2tBXaslsu/gGcjRcTL5p40BAILXTZ7tu3eEZBE8CmsjP7PjO7iAsxTDJ5s/PefPPN
         j81kzpMl50KmsnbxrPuU1DqHD2w/VLb+q+RZmlTNJ1X0SBW7oaoqUvOxxvfK8hNd9PqjGdvnR82AYQeE
         ZkCwNBkrYBRcxsPPfdx9s4M7y9sY/LSPaZfQ0AxbM5KYsJBpOL1sU4cSCMsPYflkFnzCWJsw8G4fly0P
@@ -144,7 +144,7 @@
         DpuKYggLmUw6438Z1Lu9IZl9xSMzvkFmaoujqpIyJDsnWQNKNG0HxwxqTi8riyHbJ6MSoHrc7eO6NcXn
         OT3oZS0/2YFkE0MjE0key3TCE1s29sQOjjex1P5xtby6my+t7uSrrb1cWsvru/nq+m4+Plt7uUr7+0T6
         rrK2M3D25zwlI63+7Suvv94660/LHw711uk7HiAWAAAAAElFTkSuQmCCsQIAAIlQTkcNChoKAAAADUlI
-        RFIAAAAQAAAAEAgGAAAAH/P/YQAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAAEnIAABJyAV5lW+MAAAJT
+        RFIAAAAQAAAAEAgGAAAAH/P/YQAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAAEnEAABJxAfPceo4AAAJT
         SURBVDhPfVPPTxNREO4fYGI8efFPMPFgYogX48V4Nh7k4EmlQCCmVBIOBSW2tBXaslsu/gGcjRcTL5p4
         0BAILXTZ7tu3eEZBE8CmsjP7PjO7iAsxTDJ5s/PefPPNj81kzpMl50KmsnbxrPuU1DqHD2w/VLb+q+RZ
         mlTNJ1X0SBW7oaoqUvOxxvfK8hNd9PqjGdvnR82AYQeEZkCwNBkrYBRcxsPPfdx9s4M7y9sY/LSPaZfQ
diff --git a/WinFrmUI/PBS.WinFrmUI/02-facility/00-core/PlaceSelectViewModel.cs b/WinFrmUI/PBS.WinFrmUI/02-facility/00-core/PlaceSelectViewModel.cs
new file mode 100644
index 0000000..07c902f
--- /dev/null
+++ b/WinFrmUI/PBS.WinFrmUI/02-facility/00-core/PlaceSelectViewModel.cs
@@ -0,0 +1,26 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace PBS.WinFrmUI
+{
+    public class PlaceSelectViewModel
+    {
+        public PlaceSelectViewModel()
+        { }
+
+        public PlaceSelectViewModel(PBS.Vmo.PlaceVmo rhs)
+        {
+            this.ID = rhs.ID;
+            this.ParentID = rhs.RegionID;
+            this.Name = rhs.Name;
+        }
+
+        public long ID { get; set; }
+
+        public long ParentID { get; set; }
+        public string Name { get; set; }
+    }
+}
\ No newline at end of file
diff --git a/WinFrmUI/PBS.WinFrmUI/02-facility/AddFacilityDlg.Designer.cs b/WinFrmUI/PBS.WinFrmUI/02-facility/AddFacilityDlg.Designer.cs
index 0fafc53..5f658a2 100644
--- a/WinFrmUI/PBS.WinFrmUI/02-facility/AddFacilityDlg.Designer.cs
+++ b/WinFrmUI/PBS.WinFrmUI/02-facility/AddFacilityDlg.Designer.cs
@@ -49,15 +49,15 @@
             Root.GroupBordersVisible = false;
             Root.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { layoutControlItem7, layoutControlItem1 });
             Root.Name = "Root";
-            Root.Size = new Size(744, 456);
+            Root.Size = new Size(782, 503);
             Root.TextVisible = false;
             // 
             // layoutControlItem7
             // 
             layoutControlItem7.Control = generalOkAndCancelCtrl1;
-            layoutControlItem7.Location = new Point(0, 392);
+            layoutControlItem7.Location = new Point(0, 446);
             layoutControlItem7.Name = "layoutControlItem7";
-            layoutControlItem7.Size = new Size(724, 44);
+            layoutControlItem7.Size = new Size(762, 37);
             layoutControlItem7.TextSize = new Size(0, 0);
             layoutControlItem7.TextVisible = false;
             // 
@@ -67,10 +67,10 @@
             generalOkAndCancelCtrl1.ButtonCancelMinSize = new Size(114, 33);
             generalOkAndCancelCtrl1.ButtonOkMaxSize = new Size(131, 42);
             generalOkAndCancelCtrl1.ButtonOkMinSize = new Size(114, 33);
-            generalOkAndCancelCtrl1.Location = new Point(12, 404);
+            generalOkAndCancelCtrl1.Location = new Point(12, 458);
             generalOkAndCancelCtrl1.Margin = new Padding(3, 5, 3, 5);
             generalOkAndCancelCtrl1.Name = "generalOkAndCancelCtrl1";
-            generalOkAndCancelCtrl1.Size = new Size(720, 40);
+            generalOkAndCancelCtrl1.Size = new Size(758, 33);
             generalOkAndCancelCtrl1.TabIndex = 0;
             // 
             // layoutControlItem1
@@ -78,7 +78,7 @@
             layoutControlItem1.Control = facilitiesCtrl;
             layoutControlItem1.Location = new Point(0, 0);
             layoutControlItem1.Name = "layoutControlItem1";
-            layoutControlItem1.Size = new Size(724, 392);
+            layoutControlItem1.Size = new Size(762, 446);
             layoutControlItem1.TextSize = new Size(0, 0);
             layoutControlItem1.TextVisible = false;
             // 
@@ -87,7 +87,7 @@
             facilitiesCtrl.Location = new Point(12, 12);
             facilitiesCtrl.Margin = new Padding(2, 3, 2, 3);
             facilitiesCtrl.Name = "facilitiesCtrl";
-            facilitiesCtrl.Size = new Size(720, 388);
+            facilitiesCtrl.Size = new Size(758, 442);
             facilitiesCtrl.TabIndex = 4;
             // 
             // layoutControl1
@@ -100,7 +100,7 @@
             layoutControl1.Name = "layoutControl1";
             layoutControl1.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new Rectangle(826, 220, 650, 400);
             layoutControl1.Root = Root;
-            layoutControl1.Size = new Size(744, 456);
+            layoutControl1.Size = new Size(782, 503);
             layoutControl1.TabIndex = 2;
             layoutControl1.Text = "layoutControl1";
             // 
@@ -108,7 +108,7 @@
             // 
             AutoScaleDimensions = new SizeF(8F, 18F);
             AutoScaleMode = AutoScaleMode.Font;
-            ClientSize = new Size(744, 456);
+            ClientSize = new Size(782, 503);
             Controls.Add(layoutControl1);
             Margin = new Padding(3, 4, 3, 4);
             Name = "AddFacilityDlg";
diff --git a/WinFrmUI/PBS.WinFrmUI/02-facility/EditFacilityDlg.Designer.cs b/WinFrmUI/PBS.WinFrmUI/02-facility/EditFacilityDlg.Designer.cs
index 81a1641..0e0c1e1 100644
--- a/WinFrmUI/PBS.WinFrmUI/02-facility/EditFacilityDlg.Designer.cs
+++ b/WinFrmUI/PBS.WinFrmUI/02-facility/EditFacilityDlg.Designer.cs
@@ -49,15 +49,15 @@
             Root.GroupBordersVisible = false;
             Root.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { layoutControlItem7, layoutControlItem1 });
             Root.Name = "Root";
-            Root.Size = new Size(776, 464);
+            Root.Size = new Size(776, 485);
             Root.TextVisible = false;
             // 
             // layoutControlItem7
             // 
             layoutControlItem7.Control = generalOkAndCancelCtrl1;
-            layoutControlItem7.Location = new Point(0, 399);
+            layoutControlItem7.Location = new Point(0, 428);
             layoutControlItem7.Name = "layoutControlItem7";
-            layoutControlItem7.Size = new Size(756, 45);
+            layoutControlItem7.Size = new Size(756, 37);
             layoutControlItem7.TextSize = new Size(0, 0);
             layoutControlItem7.TextVisible = false;
             // 
@@ -67,10 +67,10 @@
             generalOkAndCancelCtrl1.ButtonCancelMinSize = new Size(114, 33);
             generalOkAndCancelCtrl1.ButtonOkMaxSize = new Size(131, 42);
             generalOkAndCancelCtrl1.ButtonOkMinSize = new Size(114, 33);
-            generalOkAndCancelCtrl1.Location = new Point(12, 411);
+            generalOkAndCancelCtrl1.Location = new Point(12, 440);
             generalOkAndCancelCtrl1.Margin = new Padding(3, 5, 3, 5);
             generalOkAndCancelCtrl1.Name = "generalOkAndCancelCtrl1";
-            generalOkAndCancelCtrl1.Size = new Size(752, 41);
+            generalOkAndCancelCtrl1.Size = new Size(752, 33);
             generalOkAndCancelCtrl1.TabIndex = 0;
             // 
             // layoutControlItem1
@@ -78,7 +78,7 @@
             layoutControlItem1.Control = facilitiesCtrl;
             layoutControlItem1.Location = new Point(0, 0);
             layoutControlItem1.Name = "layoutControlItem1";
-            layoutControlItem1.Size = new Size(756, 399);
+            layoutControlItem1.Size = new Size(756, 428);
             layoutControlItem1.TextSize = new Size(0, 0);
             layoutControlItem1.TextVisible = false;
             // 
@@ -87,7 +87,7 @@
             facilitiesCtrl.Location = new Point(12, 12);
             facilitiesCtrl.Margin = new Padding(2, 3, 2, 3);
             facilitiesCtrl.Name = "facilitiesCtrl";
-            facilitiesCtrl.Size = new Size(752, 395);
+            facilitiesCtrl.Size = new Size(752, 424);
             facilitiesCtrl.TabIndex = 4;
             // 
             // layoutControl1
@@ -100,7 +100,7 @@
             layoutControl1.Name = "layoutControl1";
             layoutControl1.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new Rectangle(826, 220, 650, 400);
             layoutControl1.Root = Root;
-            layoutControl1.Size = new Size(776, 464);
+            layoutControl1.Size = new Size(776, 485);
             layoutControl1.TabIndex = 2;
             layoutControl1.Text = "layoutControl1";
             // 
@@ -108,7 +108,7 @@
             // 
             AutoScaleDimensions = new SizeF(8F, 18F);
             AutoScaleMode = AutoScaleMode.Font;
-            ClientSize = new Size(776, 464);
+            ClientSize = new Size(776, 485);
             Controls.Add(layoutControl1);
             Margin = new Padding(3, 4, 3, 4);
             Name = "EditFacilityDlg";
diff --git a/WinFrmUI/PBS.WinFrmUI/02-facility/FacilityMgrPage.Designer.cs b/WinFrmUI/PBS.WinFrmUI/02-facility/FacilityMgrPage.Designer.cs
index e7df201..a12ec74 100644
--- a/WinFrmUI/PBS.WinFrmUI/02-facility/FacilityMgrPage.Designer.cs
+++ b/WinFrmUI/PBS.WinFrmUI/02-facility/FacilityMgrPage.Designer.cs
@@ -58,6 +58,7 @@
             repositoryItemTreeListLookUpEdit1 = new DevExpress.XtraEditors.Repository.RepositoryItemTreeListLookUpEdit();
             repositoryItemTreeListLookUpEdit1TreeList = new DevExpress.XtraTreeList.TreeList();
             treeListColumn1 = new DevExpress.XtraTreeList.Columns.TreeListColumn();
+            gridColumn2 = new DevExpress.XtraGrid.Columns.GridColumn();
             ribbonControl1 = new DevExpress.XtraBars.Ribbon.RibbonControl();
             barBtnEdit = new DevExpress.XtraBars.BarButtonItem();
             barBtnRefresh = new DevExpress.XtraBars.BarButtonItem();
@@ -109,7 +110,7 @@
             // gridView1
             // 
             behaviorManager1.SetBehaviors(gridView1, new DevExpress.Utils.Behaviors.Behavior[] { DevExpress.Utils.DragDrop.DragDropBehavior.Create(typeof(DevExpress.XtraGrid.Extensions.ColumnViewDragDropSource), true, true, true, true, dragDropEvents1) });
-            gridView1.Columns.AddRange(new DevExpress.XtraGrid.Columns.GridColumn[] { colName, colWaterSupply, colSupplyMode, colFloor, colFloorHeight, colHouseholds, colMaxWaterDemand, colConstantPressure, colTerminalPressure, colParas, colTagName, colUseStatus, colSortCode, colDescription, gridColumn1 });
+            gridView1.Columns.AddRange(new DevExpress.XtraGrid.Columns.GridColumn[] { colName, colWaterSupply, colSupplyMode, colFloor, colFloorHeight, colHouseholds, colMaxWaterDemand, colConstantPressure, colTerminalPressure, colParas, colTagName, colUseStatus, colSortCode, colDescription, gridColumn1, gridColumn2 });
             gridView1.DetailHeight = 450;
             gridView1.GridControl = gridControl1;
             gridView1.Name = "gridView1";
@@ -211,7 +212,7 @@
             colTagName.MinWidth = 25;
             colTagName.Name = "colTagName";
             colTagName.Visible = true;
-            colTagName.VisibleIndex = 10;
+            colTagName.VisibleIndex = 12;
             colTagName.Width = 67;
             // 
             // colUseStatus
@@ -220,7 +221,7 @@
             colUseStatus.MinWidth = 25;
             colUseStatus.Name = "colUseStatus";
             colUseStatus.Visible = true;
-            colUseStatus.VisibleIndex = 11;
+            colUseStatus.VisibleIndex = 10;
             colUseStatus.Width = 67;
             // 
             // colSortCode
@@ -236,7 +237,7 @@
             colDescription.MinWidth = 25;
             colDescription.Name = "colDescription";
             colDescription.Visible = true;
-            colDescription.VisibleIndex = 12;
+            colDescription.VisibleIndex = 13;
             colDescription.Width = 82;
             // 
             // gridColumn1
@@ -275,6 +276,16 @@
             treeListColumn1.Name = "treeListColumn1";
             treeListColumn1.Visible = true;
             treeListColumn1.VisibleIndex = 0;
+            // 
+            // gridColumn2
+            // 
+            gridColumn2.Caption = "鏍囩";
+            gridColumn2.FieldName = "Flags";
+            gridColumn2.MinWidth = 25;
+            gridColumn2.Name = "gridColumn2";
+            gridColumn2.Visible = true;
+            gridColumn2.VisibleIndex = 11;
+            gridColumn2.Width = 94;
             // 
             // ribbonControl1
             // 
@@ -422,7 +433,6 @@
             ribbonPageGroup1.ItemLinks.Add(barCekSearch);
             ribbonPageGroup1.ItemLinks.Add(barBtnRefresh);
             ribbonPageGroup1.Name = "ribbonPageGroup1";
-            ribbonPageGroup1.Text = "鍩虹";
             // 
             // ribbonPageGroup2
             // 
@@ -501,5 +511,6 @@
         private DevExpress.XtraEditors.Repository.RepositoryItemTreeListLookUpEdit repositoryItemTreeListLookUpEdit1;
         private DevExpress.XtraTreeList.TreeList repositoryItemTreeListLookUpEdit1TreeList;
         private DevExpress.XtraTreeList.Columns.TreeListColumn treeListColumn1;
+        private DevExpress.XtraGrid.Columns.GridColumn gridColumn2;
     }
 }
diff --git a/WinFrmUI/PBS.WinFrmUI/02-facility/FacilityMgrPage.cs b/WinFrmUI/PBS.WinFrmUI/02-facility/FacilityMgrPage.cs
index b27565a..c7fdec9 100644
--- a/WinFrmUI/PBS.WinFrmUI/02-facility/FacilityMgrPage.cs
+++ b/WinFrmUI/PBS.WinFrmUI/02-facility/FacilityMgrPage.cs
@@ -12,6 +12,8 @@
         {
             InitializeComponent();
             this.gridView1.SetNormalView(30);
+            this.gridView1.Columns["PlaceID"].GroupIndex = 0;
+            this.gridView1.GroupFormat = "{1}";
             behaviorManager1.Detach<DragDropBehavior>(gridView1);
         }
 
diff --git a/WinFrmUI/PBS.WinFrmUI/PBS.WinFrmUI.csproj b/WinFrmUI/PBS.WinFrmUI/PBS.WinFrmUI.csproj
index ec6ce05..fbe476c 100644
--- a/WinFrmUI/PBS.WinFrmUI/PBS.WinFrmUI.csproj
+++ b/WinFrmUI/PBS.WinFrmUI/PBS.WinFrmUI.csproj
@@ -80,6 +80,7 @@
     <ProjectReference Include="..\..\BLL\HStation.BLL.Assets.Core\HStation.BLL.Assets.Core.csproj" />
     <ProjectReference Include="..\..\BLL\PBS.BLL\PBS.BLL.csproj" />
     <ProjectReference Include="..\..\BLL\Yw.BLL.Division.Core\Yw.BLL.Division.Core.csproj" />
+    <ProjectReference Include="..\HStation.WinFrmUI.Basic.Core\HStation.WinFrmUI.Basic.Core.csproj" />
     <ProjectReference Include="..\HStation.WinFrmUI.Core\HStation.WinFrmUI.Core.csproj" />
     <ProjectReference Include="..\PBS.WinFrmUI.WE\PBS.WinFrmUI.WE.csproj" />
     <ProjectReference Include="..\Yw.WinFrmUI.Core\Yw.WinFrmUI.Core.csproj" />

--
Gitblit v1.9.3