From 294b81166f21e12247e784d6bf404f5f34b2ee19 Mon Sep 17 00:00:00 2001
From: lixiaojun <1287241240@qq.com>
Date: 星期三, 19 二月 2025 12:51:14 +0800
Subject: [PATCH] Merge branch 'master' of http://47.103.154.90:83/r/HStation/XHS.V1.0

---
 Desktop/HStation.Desktop.Xhs.Core/MainForm.cs | 1472 ++++++++++++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 1,209 insertions(+), 263 deletions(-)

diff --git a/Desktop/HStation.Desktop.Xhs.Core/MainForm.cs b/Desktop/HStation.Desktop.Xhs.Core/MainForm.cs
index 371e609..73f6ed2 100644
--- a/Desktop/HStation.Desktop.Xhs.Core/MainForm.cs
+++ b/Desktop/HStation.Desktop.Xhs.Core/MainForm.cs
@@ -1,12 +1,13 @@
 using DevExpress.XtraBars.Docking;
 using DevExpress.XtraBars.Docking2010.Views;
+using DevExpress.XtraBars.Docking2010.Views.WindowsUI;
 using DevExpress.XtraBars.Navigation;
 using DevExpress.XtraBars.Ribbon;
 using DevExpress.XtraEditors;
 using HStation.WinFrmUI;
 using HStation.WinFrmUI.Assets;
-using HStation.WinFrmUI.Auth.Core._02_User;
 using HStation.WinFrmUI.Basic;
+using HStation.WinFrmUI.Dict;
 using HStation.WinFrmUI.Xhs.PumpProduct;
 using System.IO;
 using Yw.WinFrmUI;
@@ -19,6 +20,26 @@
         public MainForm()
         {
             InitializeComponent();
+            this.IconOptions.Icon = Yw.WinFrmUI.GlobalParas.AppIcon;
+        }
+
+        //验证权限
+        private void VerifyAuth()
+        {
+            this.tileNavPane.BeginUpdate();
+            var list = AuthHelper.PageAuthHaveTreeList;
+            foreach (NavButton item in this.tileNavPane.Buttons)
+            {
+                if (item.Tag != null && !string.IsNullOrEmpty(item.Tag.ToString()))
+                {
+                    var pageAuthItem = list?.Find(x => x.Permission == item.Tag.ToString());
+                    if (pageAuthItem != null)
+                    {
+                        item.Visible = pageAuthItem.Have;
+                    }
+                }
+            }
+            this.tileNavPane.EndUpdate();
         }
 
         #region TileNavPane 相关处理
@@ -96,7 +117,7 @@
             };
             if (!IsExistPage(guid, true))
             {
-                var page = new HomeXhsProjectPage_Bak();
+                var page = new HomeXhsProjectPage();
                 CreatePage(page, guid);
             }
         }
@@ -117,6 +138,8 @@
             }
         }
 
+        private List<TilePeekItem> _modelItem;
+
         //模型管理
         private void nbModelMgr_ElementClick(object sender, NavElementEventArgs e)
         {
@@ -124,156 +147,114 @@
             var hitInfo = this.tileNavPane.CalcHitInfo(pt);
             if (hitInfo.ButtonInfo != null)
             {
-                if (_bimfaceMgrBeakCtrl == null)
-                {
-                    var peakItemList = new List<Yw.WinFrmUI.TilePeekItem>()
-                    {
-                        new TilePeekItem()
-                        {
-                            Caption="水力场景",
-                            SvgImage=svgImg32Model[0],
-                            SvgImageSize=new Size(24,24),
-                            Click=()=>{
-                                this.flyoutPanel1.HideBeakForm();
-                                var guid=new PageGuid(){
-                                    Modular="Hydro",
-                                    MoudingType=eMoudingType.Tab,
-                                    Function="SceneMgr",
-                                };
-                                if(!IsExistPage(guid,true))
+                /*                if (_bimfaceMgrBeakCtrl == null)
                                 {
-                                    var page=new Yw.WinFrmUI.HydroSceneMgrPage();
-                                    CreatePage(page,guid);
+                                    var peakItemList = new List<Yw.WinFrmUI.TilePeekItem>()
+                                    {
+                                        new TilePeekItem()
+                                        {
+                                            Caption="水力场景",
+                                            SvgImage=svgImg32Model[0],
+                                            SvgImageSize=new Size(24,24),
+                                            Click=()=>{
+                                                this.flyoutPanel1.HideBeakForm();
+                                                var guid=new PageGuid(){
+                                                    Modular="Hydro",
+                                                    MoudingType=eMoudingType.Tab,
+                                                    Function="SceneMgr",
+                                                };
+                                                if(!IsExistPage(guid,true))
+                                                {
+                                                    var page=new Yw.WinFrmUI.HydroSceneMgrPage();
+                                                    CreatePage(page,guid);
+                                                }
+                                            }
+                                        },
+                                        new TilePeekItem(){
+                                            Caption="水力模型",
+                                            SvgImage=svgImg32Model[1],
+                                            SvgImageSize=new Size(24,24),
+                                            Click=()=>{
+                                                this.flyoutPanel1.HideBeakForm();
+                                                var guid=new PageGuid(){
+                                                    Modular="Hydro",
+                                                    MoudingType=eMoudingType.Tab,
+                                                    Function="ModelMgr",
+                                                };
+                                                if(!IsExistPage(guid,true))
+                                                {
+                                                    var page=new HStation.WinFrmUI.HydroModelMgrPage();
+                                                    CreatePage(page,guid);
+                                                }
+                                            }
+                                        },
+                                        new TilePeekItem(){
+                                            Caption="三维模型",
+                                            SvgImage=svgImg32Model[2],
+                                            SvgImageSize=new Size(24,24),
+                                            Click=()=>{
+                                                this.flyoutPanel1.HideBeakForm();
+                                                var guid=new PageGuid(){
+                                                    Modular="Bimface",
+                                                    MoudingType=eMoudingType.Tab,
+                                                    Function="FileMgr",
+                                                };
+                                                if(!IsExistPage(guid,true))
+                                                {
+                                                    var page=new Yw.WinFrmUI.BimfaceFileMgrPage();
+                                                    CreatePage(page,guid);
+                                                }
+                                            }
+                                        },
+                                    };
+                                    _bimfaceMgrBeakCtrl = peakItemList.CreatePeekCtrl();
                                 }
-                            }
-                        },
-                        new TilePeekItem(){
-                            Caption="水力模型",
-                            SvgImage=svgImg32Model[1],
-                            SvgImageSize=new Size(24,24),
-                            Click=()=>{
-                                this.flyoutPanel1.HideBeakForm();
-                                var guid=new PageGuid(){
-                                    Modular="Hydro",
-                                    MoudingType=eMoudingType.Tab,
-                                    Function="ModelMgr",
-                                };
-                                if(!IsExistPage(guid,true))
-                                {
-                                    var page=new HStation.WinFrmUI.HydroModelMgrPage();
-                                    CreatePage(page,guid);
-                                }
-                            }
-                        },
-                        new TilePeekItem(){
-                            Caption="三维模型",
-                            SvgImage=svgImg32Model[2],
-                            SvgImageSize=new Size(24,24),
-                            Click=()=>{
-                                this.flyoutPanel1.HideBeakForm();
-                                var guid=new PageGuid(){
-                                    Modular="Bimface",
-                                    MoudingType=eMoudingType.Tab,
-                                    Function="FileMgr",
-                                };
-                                if(!IsExistPage(guid,true))
-                                {
-                                    var page=new Yw.WinFrmUI.BimfaceFileMgrPage();
-                                    CreatePage(page,guid);
-                                }
-                            }
-                        },
-                    };
-                    _bimfaceMgrBeakCtrl = peakItemList.CreatePeekCtrl();
-                }
+
+                */
+                _modelItem = CreateHydroPeekList();
+                if (e.Element.Tag == null)
+                    return;
+                SetMenuAuth(e.Element.Tag.ToString(), _modelItem);
+                _bimfaceMgrBeakCtrl = _modelItem.CreatePeekCtrl(ClickTilePeekItem);
                 this.flyoutPanel1.Size = _bimfaceMgrBeakCtrl.Size;
                 this.flyoutPanelControl1.Controls.Clear();
                 this.flyoutPanelControl1.Controls.Add(_bimfaceMgrBeakCtrl);
                 var rectangle = this.RectangleToScreen(hitInfo.ButtonInfo.Bounds);
+
                 this.flyoutPanel1.ShowBeakForm(rectangle);
             }
         }
 
         private Control _bimfaceMgrBeakCtrl = null;//bimface管理弹出界面
-        private Control _SystemProductManageCtrl = null;//产品管理弹出界面
 
-        private Control _SystemSystemConfigCtrl = null;//系统配置弹出界面
+        private Control _SystemConfigCtrl = null;//系统配置弹出界面
+
+        private Control _AuthConfigCtrl = null;//权限配置弹出界面
 
         //产品管理
-        private void nbProductManage_ElementClick(object sender, NavElementEventArgs e)
+        private void nbAssetsMgr_ElementClick(object sender, NavElementEventArgs e)
         {
             var pt = this.tileNavPane.PointToClient(MousePosition);
             var hitInfo = this.tileNavPane.CalcHitInfo(pt);
             if (hitInfo.ButtonInfo != null)
             {
-                if (_SystemProductManageCtrl == null)
+                if (_assetsMgrCtrl == null)
                 {
-                    var peakItemList = new List<Yw.WinFrmUI.TilePeekItem>()
-                    {
-                        new TilePeekItem(){
-                            Caption="水泵管理",
-                            SvgImage=svgImg32Model[3],
-                            SvgImageSize=new Size(24,24),
-                            Click=()=>{
-                                this.flyoutPanel1.HideBeakForm();
-                                var guid=new PageGuid(){
-                                    Modular="Asstes",
-                                    MoudingType=eMoudingType.Tab,
-                                    Function="pumpMgr",
-                                };
-                                if(!IsExistPage(guid,true))
-                                {
-                                    var page=new PumpProductMainPanel();
-                                    CreatePage(page,guid);
-                                }
-                            }
-                        },
-                        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[7],
-                            SvgImageSize=new Size(24,24),
-                            Click=()=>{
-                                this.flyoutPanel1.HideBeakForm();
-                                var guid=new PageGuid(){
-                                    Modular="Asstes",
-                                    MoudingType=eMoudingType.Tab,
-                                    Function="ElbowMgr",
-                                };
-                                if(!IsExistPage(guid,true))
-                                {
-                                    var page=new ElbowManageMainPanel();
-                                    CreatePage(page,guid);
-                                }
-                            }
-                        },
-                    };
-                    _SystemProductManageCtrl = peakItemList.CreatePeekCtrl();
+                    if (e.Element.Tag == null)
+                        return;
+                    var peekItemList = CreateAssetsPeekList();
+                    SetMenuAuth(e.Element.Tag.ToString(), peekItemList);
+                    _assetsMgrCtrl = peekItemList.CreatePeekCtrl(ClickTilePeekItem);
                 }
-                this.flyoutPanel1.Size = _SystemProductManageCtrl.Size;
+                this.flyoutPanel1.Size = _assetsMgrCtrl.Size;
                 this.flyoutPanelControl1.Controls.Clear();
-                this.flyoutPanelControl1.Controls.Add(_SystemProductManageCtrl);
+                this.flyoutPanelControl1.Controls.Add(_assetsMgrCtrl);
                 var rectangle = this.RectangleToScreen(hitInfo.ButtonInfo.Bounds);
                 this.flyoutPanel1.ShowBeakForm(rectangle);
             }
         }
+
+        private TileControl _assetsMgrCtrl = null;//资产管理控件
 
         //系统配置
         private void nbSystemConfig_ElementClick(object sender, NavElementEventArgs e)
@@ -282,143 +263,1032 @@
             var hitInfo = this.tileNavPane.CalcHitInfo(pt);
             if (hitInfo.ButtonInfo != null)
             {
-                if (_SystemSystemConfigCtrl == null)
+                if (_SystemConfigCtrl == null)
                 {
-                    var peakItemList = new List<Yw.WinFrmUI.TilePeekItem>()
-                    {
-                        new TilePeekItem(){
-                            Caption="角色管理",
-                            SvgImage=svgImg32Model[3],
-                            SvgImageSize=new Size(24,24),
-                            Click=()=>{
-                                this.flyoutPanel1.HideBeakForm();
-                                var guid=new PageGuid(){
-                                    Modular="Auth",
-                                    MoudingType=eMoudingType.Tab,
-                                    Function="UserManageMgr",
-                                };
-                                if(!IsExistPage(guid,true))
-                                {
-                                    var page=new UserMgrMainPanel();
-                                    CreatePage(page,guid);
-                                }
-                            }
-                        },
-                        new TilePeekItem(){
-                            Caption="用户管理",
-                            SvgImage=svgImg32Model[7],
-                            SvgImageSize=new Size(24,24),
-                            Click=()=>{
-                                this.flyoutPanel1.HideBeakForm();
-                                var guid=new PageGuid(){
-                                    Modular="Auth",
-                                    MoudingType=eMoudingType.Tab,
-                                    Function="ValveMgr",
-                                };
-                                if(!IsExistPage(guid,true))
-                                {
-                                    var page=new ValveManageMainPanel();
-                                    CreatePage(page,guid);
-                                }
-                            }
-                        },
-                        new TilePeekItem(){
-                            Caption="菜单管理",
-                            SvgImage=svgImg32Model[2],
-                            SvgImageSize=new Size(24,24),
-                            Click=()=>{
-                                this.flyoutPanel1.HideBeakForm();
-                                var guid=new PageGuid(){
-                                    Modular="Auth",
-                                    MoudingType=eMoudingType.Tab,
-                                    Function="TypeMgr",
-                                };
-                                if(!IsExistPage(guid,true))
-                                {
-                                    var page=new SysTypeManageMainPanel();
-                                    CreatePage(page,guid);
-                                }
-                            }
-                        },
-                             new TilePeekItem(){
-                            Caption="类型管理",
-                            SvgImage=svgImg32Model[4],
-                            SvgImageSize=new Size(24,24),
-                            Click=()=>{
-                                this.flyoutPanel1.HideBeakForm();
-                                var guid=new PageGuid(){
-                                    Modular="Basic",
-                                    MoudingType=eMoudingType.Tab,
-                                    Function="TypeMgr",
-                                };
-                                if(!IsExistPage(guid,true))
-                                {
-                                    var page=new SysTypeManageMainPanel();
-                                    CreatePage(page,guid);
-                                }
-                            }
-                        },
-                          new TilePeekItem(){
-                            Caption="分类管理",
-                            SvgImage=svgImg32Model[5],
-                            SvgImageSize=new Size(24,24),
-                            Click=()=>{
-                                this.flyoutPanel1.HideBeakForm();
-                                var guid=new PageGuid(){
-                                    Modular="Basic",
-                                    MoudingType=eMoudingType.Tab,
-                                    Function="CataLogMgr",
-                                };
-                                if(!IsExistPage(guid,true))
-                                {
-                                    var page=new SysCatalogManageMainPanel();
-                                    CreatePage(page,guid);
-                                }
-                            }
-                         },      new TilePeekItem(){
-                            Caption="属性管理",
-                            SvgImage=svgImg32Model[6],
-                            SvgImageSize=new Size(24,24),
-                            Click=()=>{
-                                this.flyoutPanel1.HideBeakForm();
-                                var guid=new PageGuid(){
-                                    Modular="Basic",
-                                    MoudingType=eMoudingType.Tab,
-                                    Function="PropMgr",
-                                };
-                                if(!IsExistPage(guid,true))
-                                {
-                                    var page=new SysPropManageMainPanel();
-                                    CreatePage(page,guid);
-                                }
-                            }
-                         },
-                        new TilePeekItem(){
-                            Caption="字典类型",
-                            SvgImage=svgImg32Model[1],
-                            SvgImageSize=new Size(24,24),
-                            Click=()=>{
-                                this.flyoutPanel1.HideBeakForm();
-                                var guid=new PageGuid(){
-                                    Modular="Dict",
-                                    MoudingType=eMoudingType.Tab,
-                                    Function="DictMgr",
-                                };
-                                if(!IsExistPage(guid,true))
-                                {
-                                    var page=new HStation.WinFrmUI.Dict.DictManageMainPanel();
-                                    CreatePage(page,guid);
-                                }
-                            }
-                        },
-                     };
-                    _SystemSystemConfigCtrl = peakItemList.CreatePeekCtrl();
+                    if (e.Element.Tag == null)
+                        return;
+                    var peekItemList = CreateBasicPeekList();
+                    SetMenuAuth(e.Element.Tag.ToString(), peekItemList);
+                    _SystemConfigCtrl = peekItemList.CreatePeekCtrl(ClickTilePeekItem);
                 }
-                this.flyoutPanel1.Size = _SystemSystemConfigCtrl.Size;
+                this.flyoutPanel1.Size = _SystemConfigCtrl.Size;
                 this.flyoutPanelControl1.Controls.Clear();
-                this.flyoutPanelControl1.Controls.Add(_SystemSystemConfigCtrl);
+                this.flyoutPanelControl1.Controls.Add(_SystemConfigCtrl);
                 var rectangle = this.RectangleToScreen(hitInfo.ButtonInfo.Bounds);
                 this.flyoutPanel1.ShowBeakForm(rectangle);
+            }
+        }
+
+        /// <summary>
+        /// 权限配置
+        /// </summary>
+        /// <param name="sender"></param>
+        /// <param name="e"></param>
+        private void nbAuthConfig_ElementClick(object sender, NavElementEventArgs e)
+        {
+            var pt = this.tileNavPane.PointToClient(MousePosition);
+            var hitInfo = this.tileNavPane.CalcHitInfo(pt);
+            if (hitInfo.ButtonInfo != null)
+            {
+                if (_AuthConfigCtrl == null)
+                {
+                    var peekItemList = CreateAuthPeekList();
+                    if (e.Element.Tag == null)
+                        return;
+                    SetMenuAuth(e.Element.Tag.ToString(), peekItemList);
+                    _AuthConfigCtrl = peekItemList.CreatePeekCtrl(ClickTilePeekItem);
+                }
+                this.flyoutPanel1.Size = _AuthConfigCtrl.Size;
+                this.flyoutPanelControl1.Controls.Clear();
+                this.flyoutPanelControl1.Controls.Add(_AuthConfigCtrl);
+                var rectangle = this.RectangleToScreen(hitInfo.ButtonInfo.Bounds);
+                this.flyoutPanel1.ShowBeakForm(rectangle);
+            }
+        }
+
+        private void SetMenuAuth(string tag_str, List<TilePeekItem> tilePeekItem)
+        {
+            if (string.IsNullOrEmpty(tag_str))
+                return;
+            var pageAuth = AuthHelper.GetRootPageAuth(tag_str);
+            if (pageAuth == null)
+                return;
+
+            var page_child_list = pageAuth.Children?.Where(x => x.Type == 2).ToList();
+            if (page_child_list != null && page_child_list.Count > 0)
+            {
+                foreach (var menu in page_child_list)
+                {
+                    SetTilePeekItemVisibility(tilePeekItem, menu);
+                }
+            }
+        }
+
+        private void SetTilePeekItemVisibility(List<TilePeekItem> tilePeekItems, Yw.Dto.MenuAuthorityHaveTreeDto menu)
+        {
+            foreach (var item in tilePeekItems)
+            {
+                if (menu.Permission == item.Tag.ToString())
+                {
+                    item.Visibility = menu.Have;
+                }
+
+                if (item.Children != null && item.Children.Count > 0)
+                {
+                    SetTilePeekItemVisibility(item.Children, menu);
+                }
+            }
+        }
+
+        //创建水力Peek列表
+        private List<TilePeekItem> CreateHydroPeekList()
+        {
+            var list = new List<TilePeekItem>();
+
+            //水力场景
+            var peekScene = new TilePeekItem();
+            peekScene.Id = HydroFunctionHelper.SceneMgr;
+            peekScene.Caption = "水力场景";
+            peekScene.SvgImage = svgImg32Model[0];
+            peekScene.SvgImageSize = new Size(24, 24);
+            peekScene.Tag = HydroFunctionHelper.SceneMgr;
+            list.Add(peekScene);
+
+            //三维模型
+            var peekBimface = new TilePeekItem();
+            peekBimface.Id = HydroFunctionHelper.BimfaceMgr;
+            peekBimface.Caption = "三维模型";
+            peekBimface.SvgImage = svgImg32Model[2];
+            peekBimface.SvgImageSize = new Size(24, 24);
+            peekBimface.Tag = HydroFunctionHelper.BimfaceMgr;
+            list.Add(peekBimface);
+
+            //水力模型
+            var peekModel = new TilePeekItem();
+            peekModel.Id = HydroFunctionHelper.ModelMgr;
+            peekModel.Caption = "水力模型";
+            peekModel.SvgImage = svgImg32Model[1];
+            peekModel.SvgImageSize = new Size(24, 24);
+            peekModel.Tag = HydroFunctionHelper.ModelMgr;
+            list.Add(peekModel);
+            return list;
+        }
+
+        //创建系统配置Peek列表
+        private List<TilePeekItem> CreateBasicPeekList()
+        {
+            var list = new List<TilePeekItem>();
+
+            //类型
+            var peekType = new TilePeekItem();
+            peekType.Id = BasicFunctionHelper.TypeMgr;
+            peekType.Caption = "类型管理";
+            peekType.SvgImage = svgImg32Model[4];
+            peekType.SvgImageSize = new Size(24, 24);
+            peekType.Tag = BasicFunctionHelper.TypeMgr;
+            list.Add(peekType);
+
+            //分类
+            var peekCatalog = new TilePeekItem();
+            peekCatalog.Id = BasicFunctionHelper.CatalogMgr;
+            peekCatalog.Caption = "分类管理";
+            peekCatalog.SvgImage = svgImg32Model[5];
+            peekCatalog.SvgImageSize = new Size(24, 24);
+            peekCatalog.Tag = BasicFunctionHelper.CatalogMgr;
+            list.Add(peekCatalog);
+
+            //属性
+            var peekProp = new TilePeekItem();
+            peekProp.Id = BasicFunctionHelper.PropMgr;
+            peekProp.Caption = "属性管理";
+            peekProp.SvgImage = svgImg32Model[6];
+            peekProp.SvgImageSize = new Size(24, 24);
+            peekProp.Tag = BasicFunctionHelper.PropMgr;
+            list.Add(peekProp);
+
+            //标签
+            var peekFlag = new TilePeekItem();
+            peekFlag.Id = BasicFunctionHelper.FlagMgr;
+            peekFlag.Caption = "标签管理";
+            peekFlag.SvgImage = svgImg32Model[20];
+            peekFlag.SvgImageSize = new Size(24, 24);
+            peekFlag.Tag = BasicFunctionHelper.FlagMgr;
+            list.Add(peekFlag);
+
+            //字典
+            var peekDict = new TilePeekItem();
+            peekDict.Id = BasicFunctionHelper.DictMgr;
+            peekDict.Caption = "字典管理";
+            peekDict.SvgImage = svgImg32Model[25];
+            peekDict.SvgImageSize = new Size(24, 24);
+            peekDict.Tag = BasicFunctionHelper.DictMgr;
+            list.Add(peekDict);
+            return list;
+        }
+
+        //创建权限Peek列表
+        private List<TilePeekItem> CreateAuthPeekList()
+        {
+            var list = new List<TilePeekItem>();
+
+            //角色
+            var peekRole = new TilePeekItem();
+            peekRole.Id = AuthFunctionHelper.RoleMgr;
+            peekRole.Caption = "角色管理";
+            peekRole.SvgImage = svgImg32Model[21];
+            peekRole.SvgImageSize = new Size(24, 24);
+            peekRole.Tag = AuthFunctionHelper.RoleMgr;
+            list.Add(peekRole);
+
+            //用户
+            var peekUser = new TilePeekItem();
+            peekUser.Id = AuthFunctionHelper.UserMgr;
+            peekUser.Caption = "用户管理";
+            peekUser.SvgImage = svgImg32Model[22];
+            peekUser.SvgImageSize = new Size(24, 24);
+            peekUser.Tag = AuthFunctionHelper.UserMgr;
+            list.Add(peekUser);
+
+            //菜单
+            var peekMenu = new TilePeekItem();
+            peekMenu.Id = AuthFunctionHelper.MenuMgr;
+            peekMenu.Caption = "菜单管理";
+            peekMenu.SvgImage = svgImg32Model[23];
+            peekMenu.SvgImageSize = new Size(24, 24);
+            peekMenu.Tag = AuthFunctionHelper.MenuMgr;
+            list.Add(peekMenu);
+
+            //角色用户
+            var peekUserRole = new TilePeekItem();
+            peekUserRole.Id = AuthFunctionHelper.RoleProjectMenu;
+            peekUserRole.Caption = "角色用户";
+            peekUserRole.SvgImage = svgImg32Model[24];
+            peekUserRole.SvgImageSize = new Size(24, 24);
+            peekUserRole.Tag = AuthFunctionHelper.RoleProjectMenu;
+            list.Add(peekUserRole);
+
+            //登录日志
+            var peekUserLoginLog = new TilePeekItem();
+            peekUserLoginLog.Id = AuthFunctionHelper.UserLoginLog;
+            peekUserLoginLog.Caption = "登录日志";
+            peekUserLoginLog.SvgImage = svgImg32Model[26];
+            peekUserLoginLog.SvgImageSize = new Size(24, 24);
+            peekUserLoginLog.Tag = AuthFunctionHelper.UserLoginLog;
+            list.Add(peekUserLoginLog);
+
+            //个人中心
+            var peekUserInfo = new TilePeekItem();
+            peekUserInfo.Id = AuthFunctionHelper.UserInfo;
+            peekUserInfo.Caption = "个人中心";
+            peekUserInfo.SvgImage = svgImg32Model[27];
+            peekUserInfo.SvgImageSize = new Size(24, 24);
+            peekUserInfo.Tag = AuthFunctionHelper.UserInfo;
+            list.Add(peekUserInfo);
+            return list;
+        }
+
+        //创建资产Peek列表
+        private List<TilePeekItem> CreateAssetsPeekList()
+        {
+            var list = new List<TilePeekItem>();
+
+            //水池
+            var peekTank = new TilePeekItem();
+            peekTank.Id = AssetsFunctionHelper.TankMgr;
+            peekTank.Caption = "水池";
+            peekTank.SvgImage = AssetsMainSvgImageHelper.Tank;
+            peekTank.SvgImageSize = new Size(24, 24);
+            peekTank.Tag = AssetsFunctionHelper.TankMgr;
+            list.Add(peekTank);
+
+            //连接件
+            var peekCoupling = new TilePeekItem();
+            peekCoupling.Id = AssetsFunctionHelper.CouplingMgr;
+            peekCoupling.Caption = "连接件";
+            peekCoupling.SvgImage = AssetsMainSvgImageHelper.Coupling;
+            peekCoupling.SvgImageSize = new Size(24, 24);
+            peekCoupling.Tag = AssetsFunctionHelper.CouplingMgr;
+            peekCoupling.Children = new List<TilePeekItem>();
+            list.Add(peekCoupling);
+
+            //闷头
+            var peekBlunthead = new TilePeekItem();
+            peekBlunthead.Id = AssetsFunctionHelper.BluntheadMgr;
+            peekBlunthead.Caption = "闷头";
+            peekBlunthead.SvgImage = AssetsMainSvgImageHelper.Blunthead;
+            peekBlunthead.SvgImageSize = new Size(24, 24);
+            peekBlunthead.Tag = AssetsFunctionHelper.BluntheadMgr;
+            peekCoupling.Children.Add(peekBlunthead);
+
+            //弯头
+            var peekElbow = new TilePeekItem();
+            peekElbow.Id = AssetsFunctionHelper.ElbowMgr;
+            peekElbow.Caption = "弯头";
+            peekElbow.SvgImage = AssetsMainSvgImageHelper.Elbow;
+            peekElbow.SvgImageSize = new Size(24, 24);
+            peekElbow.Tag = AssetsFunctionHelper.ElbowMgr;
+            peekCoupling.Children.Add(peekElbow);
+
+            //三通
+            var peekThreelink = new TilePeekItem();
+            peekThreelink.Id = AssetsFunctionHelper.ThreelinkMgr;
+            peekThreelink.Caption = "三通";
+            peekThreelink.SvgImage = AssetsMainSvgImageHelper.Threelink;
+            peekThreelink.SvgImageSize = new Size(24, 24);
+            peekThreelink.Tag = AssetsFunctionHelper.ThreelinkMgr;
+            peekCoupling.Children.Add(peekThreelink);
+
+            //四通
+            var peekFourlink = new TilePeekItem();
+            peekFourlink.Id = AssetsFunctionHelper.FourlinkMgr;
+            peekFourlink.Caption = "四通";
+            peekFourlink.SvgImage = AssetsMainSvgImageHelper.Fourlink;
+            peekFourlink.SvgImageSize = new Size(24, 24);
+            peekFourlink.Tag = AssetsFunctionHelper.FourlinkMgr;
+            peekCoupling.Children.Add(peekFourlink);
+
+            //扩散器
+            var peekEmitter = new TilePeekItem();
+            peekEmitter.Id = AssetsFunctionHelper.EmitterMgr;
+            peekEmitter.Caption = "扩散器";
+            peekEmitter.SvgImage = AssetsMainSvgImageHelper.Emitter;
+            peekEmitter.SvgImageSize = new Size(24, 24);
+            peekEmitter.Tag = AssetsFunctionHelper.EmitterMgr;
+            peekEmitter.Children = new List<TilePeekItem>();
+            list.Add(peekEmitter);
+
+            //喷头
+            var peekNozzle = new TilePeekItem();
+            peekNozzle.Id = AssetsFunctionHelper.NozzleMgr;
+            peekNozzle.Caption = "喷头";
+            peekNozzle.SvgImage = AssetsMainSvgImageHelper.Nozzle;
+            peekNozzle.SvgImageSize = new Size(24, 24);
+            peekNozzle.Tag = AssetsFunctionHelper.NozzleMgr;
+            peekEmitter.Children.Add(peekNozzle);
+
+            //消火栓
+            var peekHydrant = new TilePeekItem();
+            peekHydrant.Id = AssetsFunctionHelper.HydrantMgr;
+            peekHydrant.Caption = "消火栓";
+            peekHydrant.SvgImage = AssetsMainSvgImageHelper.Hydrant;
+            peekHydrant.SvgImageSize = new Size(24, 24);
+            peekHydrant.Tag = AssetsFunctionHelper.HydrantMgr;
+            peekEmitter.Children.Add(peekHydrant);
+
+            //冷却塔
+            var peekCooling = new TilePeekItem();
+            peekCooling.Id = AssetsFunctionHelper.CoolingMgr;
+            peekCooling.Caption = "冷却塔";
+            peekCooling.SvgImage = AssetsMainSvgImageHelper.Cooling;
+            peekCooling.SvgImageSize = new Size(24, 24);
+            peekCooling.Tag = AssetsFunctionHelper.CoolingMgr;
+            peekEmitter.Children.Add(peekCooling);
+
+            //水表
+            var peekMeter = new TilePeekItem();
+            peekMeter.Id = AssetsFunctionHelper.MeterMgr;
+            peekMeter.Caption = "水表";
+            peekMeter.SvgImage = AssetsMainSvgImageHelper.Meter;
+            peekMeter.SvgImageSize = new Size(24, 24);
+            peekMeter.Tag = AssetsFunctionHelper.MeterMgr;
+            list.Add(peekMeter);
+
+            //仪表
+            var peekInstrument = new TilePeekItem();
+            peekInstrument.Id = AssetsFunctionHelper.InstrumentMgr;
+            peekInstrument.Caption = "仪表";
+            peekInstrument.SvgImage = AssetsMainSvgImageHelper.Instrument;
+            peekInstrument.SvgImageSize = new Size(24, 24);
+            peekInstrument.Tag = AssetsFunctionHelper.InstrumentMgr;
+            peekInstrument.Children = new List<TilePeekItem>();
+            list.Add(peekInstrument);
+
+            //流量计
+            var peekFlowmeter = new TilePeekItem();
+            peekFlowmeter.Id = AssetsFunctionHelper.FlowmeterMgr;
+            peekFlowmeter.Caption = "流量计";
+            peekFlowmeter.SvgImage = AssetsMainSvgImageHelper.Flowmeter;
+            peekFlowmeter.SvgImageSize = new Size(24, 24);
+            peekFlowmeter.Tag = AssetsFunctionHelper.FlowmeterMgr;
+            peekInstrument.Children.Add(peekFlowmeter);
+
+            //压力表
+            var peekPressmeter = new TilePeekItem();
+            peekPressmeter.Id = AssetsFunctionHelper.PressmeterMgr;
+            peekPressmeter.Caption = "压力表";
+            peekPressmeter.SvgImage = AssetsMainSvgImageHelper.Pressmeter;
+            peekPressmeter.SvgImageSize = new Size(24, 24);
+            peekPressmeter.Tag = AssetsFunctionHelper.PressmeterMgr;
+            peekInstrument.Children.Add(peekPressmeter);
+
+            //管道
+            var peekPipe = new TilePeekItem();
+            peekPipe.Id = AssetsFunctionHelper.PipeMgr;
+            peekPipe.Caption = "管道";
+            peekPipe.SvgImage = AssetsMainSvgImageHelper.Pipe;
+            peekPipe.SvgImageSize = new Size(24, 24);
+            peekPipe.Tag = AssetsFunctionHelper.PipeMgr;
+            list.Add(peekPipe);
+
+            //过渡件
+            var peekTranslation = new TilePeekItem();
+            peekTranslation.Id = AssetsFunctionHelper.TranslationMgr;
+            peekTranslation.Caption = "过渡件";
+            peekTranslation.SvgImage = AssetsMainSvgImageHelper.Translation;
+            peekTranslation.SvgImageSize = new Size(24, 24);
+            peekTranslation.Tag = AssetsFunctionHelper.TranslationMgr;
+            list.Add(peekTranslation);
+
+            //水泵
+            var peekPump = new TilePeekItem();
+            peekPump.Id = AssetsFunctionHelper.PumpMgr;
+            peekPump.Caption = "水泵";
+            peekPump.SvgImage = AssetsMainSvgImageHelper.Pump;
+            peekPump.SvgImageSize = new Size(24, 24);
+            peekPump.Tag = AssetsFunctionHelper.PumpMgr;
+            list.Add(peekPump);
+
+            //阀门
+            var peekValve = new TilePeekItem();
+            peekValve.Id = AssetsFunctionHelper.ValveMgr;
+            peekValve.Caption = "阀门";
+            peekValve.SvgImage = AssetsMainSvgImageHelper.Valve;
+            peekValve.SvgImageSize = new Size(24, 24);
+            peekValve.Tag = AssetsFunctionHelper.ValveMgr;
+            list.Add(peekValve);
+
+            //阻件
+            var peekResistance = new TilePeekItem();
+            peekResistance.Id = AssetsFunctionHelper.ResistanceMgr;
+            peekResistance.Caption = "阻件";
+            peekResistance.SvgImage = AssetsMainSvgImageHelper.Resistance;
+            peekResistance.SvgImageSize = new Size(24, 24);
+            peekResistance.Tag = AssetsFunctionHelper.ResistanceMgr;
+            peekResistance.Children = new List<TilePeekItem>();
+            list.Add(peekResistance);
+
+            //换热器
+            var peekExchanger = new TilePeekItem();
+            peekExchanger.Id = AssetsFunctionHelper.ExchangerMgr;
+            peekExchanger.Caption = "换热器";
+            peekExchanger.SvgImage = AssetsMainSvgImageHelper.Exchanger;
+            peekExchanger.SvgImageSize = new Size(24, 24);
+            peekExchanger.Tag = AssetsFunctionHelper.ExchangerMgr;
+            peekResistance.Children.Add(peekExchanger);
+
+            //压缩机
+            var peekCompressor = new TilePeekItem();
+            peekCompressor.Id = AssetsFunctionHelper.CompressorMgr;
+            peekCompressor.Caption = "压缩机";
+            peekCompressor.SvgImage = AssetsMainSvgImageHelper.Compressor;
+            peekCompressor.SvgImageSize = new Size(24, 24);
+            peekCompressor.Tag = AssetsFunctionHelper.CompressorMgr;
+            peekResistance.Children.Add(peekCompressor);
+
+            return list;
+        }
+
+        //点击Peek
+        private void ClickTilePeekItem(TilePeekItem item)
+        {
+            if (item == null)
+            {
+                return;
+            }
+
+            var tagStr = item.Tag?.ToString();
+            switch (tagStr)
+            {
+                case AssetsFunctionHelper.CouplingMgr:
+                    {
+                        var pt = _assetsMgrCtrl.PointToClient(MousePosition);
+                        var hitInfo = _assetsMgrCtrl.CalcHitInfo(pt);
+                        var control = item.Children.CreatePeekCtrl(ClickTilePeekItem);
+                        this.flyoutPanel2.Size = control.Size;
+                        this.flyoutPanelControl2.Controls.Clear();
+                        this.flyoutPanelControl2.Controls.Add(control);
+                        var rectangle = _assetsMgrCtrl.RectangleToScreen(hitInfo.ItemInfo.Bounds);
+                        this.flyoutPanel2.ShowBeakForm(rectangle);
+                    }
+                    break;
+
+                case AssetsFunctionHelper.EmitterMgr:
+                    {
+                        var pt = _assetsMgrCtrl.PointToClient(MousePosition);
+                        var hitInfo = _assetsMgrCtrl.CalcHitInfo(pt);
+                        var control = item.Children.CreatePeekCtrl(ClickTilePeekItem);
+                        this.flyoutPanel2.Size = control.Size;
+                        this.flyoutPanelControl2.Controls.Clear();
+                        this.flyoutPanelControl2.Controls.Add(control);
+                        var rectangle = _assetsMgrCtrl.RectangleToScreen(hitInfo.ItemInfo.Bounds);
+                        this.flyoutPanel2.ShowBeakForm(rectangle);
+                    }
+                    break;
+
+                case AssetsFunctionHelper.InstrumentMgr:
+                    {
+                        var pt = _assetsMgrCtrl.PointToClient(MousePosition);
+                        var hitInfo = _assetsMgrCtrl.CalcHitInfo(pt);
+                        var control = item.Children.CreatePeekCtrl(ClickTilePeekItem);
+                        this.flyoutPanel2.Size = control.Size;
+                        this.flyoutPanelControl2.Controls.Clear();
+                        this.flyoutPanelControl2.Controls.Add(control);
+                        var rectangle = _assetsMgrCtrl.RectangleToScreen(hitInfo.ItemInfo.Bounds);
+                        this.flyoutPanel2.ShowBeakForm(rectangle);
+                    }
+                    break;
+
+                case AssetsFunctionHelper.ResistanceMgr:
+                    {
+                        var pt = _assetsMgrCtrl.PointToClient(MousePosition);
+                        var hitInfo = _assetsMgrCtrl.CalcHitInfo(pt);
+                        var control = item.Children.CreatePeekCtrl(ClickTilePeekItem);
+                        this.flyoutPanel2.Size = control.Size;
+                        this.flyoutPanelControl2.Controls.Clear();
+                        this.flyoutPanelControl2.Controls.Add(control);
+                        var rectangle = _assetsMgrCtrl.RectangleToScreen(hitInfo.ItemInfo.Bounds);
+                        this.flyoutPanel2.ShowBeakForm(rectangle);
+                    }
+                    break;
+
+                case AssetsFunctionHelper.TankMgr:
+                    {
+                        this.flyoutPanel1.HideBeakForm();
+                        var guid = new PageGuid()
+                        {
+                            Modular = AssetsFunctionHelper.Modular,
+                            MoudingType = eMoudingType.Tab,
+                            Function = AssetsFunctionHelper.TankMgr
+                        };
+                        if (!IsExistPage(guid, true))
+                        {
+                            var page = new AssetsTankMgrPage();
+                            CreatePage(page, guid);
+                        }
+                    }
+                    break;
+
+                case AssetsFunctionHelper.BluntheadMgr:
+                    {
+                        this.flyoutPanel2.HideBeakForm();
+                        var guid = new PageGuid()
+                        {
+                            Modular = AssetsFunctionHelper.Modular,
+                            MoudingType = eMoudingType.Tab,
+                            Function = AssetsFunctionHelper.BluntheadMgr
+                        };
+                        if (!IsExistPage(guid, true))
+                        {
+                            var page = new AssetsBluntheadMgrPage();
+                            CreatePage(page, guid);
+                        }
+                    }
+                    break;
+
+                case AssetsFunctionHelper.ElbowMgr:
+                    {
+                        this.flyoutPanel2.HideBeakForm();
+                        var guid = new PageGuid()
+                        {
+                            Modular = AssetsFunctionHelper.Modular,
+                            MoudingType = eMoudingType.Tab,
+                            Function = AssetsFunctionHelper.ElbowMgr
+                        };
+                        if (!IsExistPage(guid, true))
+                        {
+                            var page = new AssetsElbowMgrPage();
+                            CreatePage(page, guid);
+                        }
+                    }
+                    break;
+
+                case AssetsFunctionHelper.ThreelinkMgr:
+                    {
+                        this.flyoutPanel2.HideBeakForm();
+                        var guid = new PageGuid()
+                        {
+                            Modular = AssetsFunctionHelper.Modular,
+                            MoudingType = eMoudingType.Tab,
+                            Function = AssetsFunctionHelper.ThreelinkMgr
+                        };
+                        if (!IsExistPage(guid, true))
+                        {
+                            var page = new AssetsThreelinkMgrPage();
+                            CreatePage(page, guid);
+                        }
+                    }
+                    break;
+
+                case AssetsFunctionHelper.FourlinkMgr:
+                    {
+                        this.flyoutPanel2.HideBeakForm();
+                        var guid = new PageGuid()
+                        {
+                            Modular = AssetsFunctionHelper.Modular,
+                            MoudingType = eMoudingType.Tab,
+                            Function = AssetsFunctionHelper.FourlinkMgr
+                        };
+                        if (!IsExistPage(guid, true))
+                        {
+                            var page = new AssetsFourlinkMgrPage();
+                            CreatePage(page, guid);
+                        }
+                    }
+                    break;
+
+                case AssetsFunctionHelper.NozzleMgr:
+                    {
+                        this.flyoutPanel2.HideBeakForm();
+                        var guid = new PageGuid()
+                        {
+                            Modular = AssetsFunctionHelper.Modular,
+                            MoudingType = eMoudingType.Tab,
+                            Function = AssetsFunctionHelper.NozzleMgr
+                        };
+                        if (!IsExistPage(guid, true))
+                        {
+                            var page = new AssetsSprinklerMgrPage();
+                            CreatePage(page, guid);
+                        }
+                    }
+                    break;
+
+                case AssetsFunctionHelper.HydrantMgr:
+                    {
+                        this.flyoutPanel2.HideBeakForm();
+                        var guid = new PageGuid()
+                        {
+                            Modular = AssetsFunctionHelper.Modular,
+                            MoudingType = eMoudingType.Tab,
+                            Function = AssetsFunctionHelper.HydrantMgr
+                        };
+                        if (!IsExistPage(guid, true))
+                        {
+                            var page = new AssetsHydrantMgrPage();
+                            CreatePage(page, guid);
+                        }
+                    }
+                    break;
+
+                case AssetsFunctionHelper.CoolingMgr:
+                    {
+                        this.flyoutPanel2.HideBeakForm();
+                        var guid = new PageGuid()
+                        {
+                            Modular = AssetsFunctionHelper.Modular,
+                            MoudingType = eMoudingType.Tab,
+                            Function = AssetsFunctionHelper.CoolingMgr
+                        };
+                        if (!IsExistPage(guid, true))
+                        {
+                            var page = new AssetsCoolingMgrPage();
+                            CreatePage(page, guid);
+                        }
+                    }
+                    break;
+
+                case AssetsFunctionHelper.MeterMgr:
+                    {
+                        this.flyoutPanel1.HideBeakForm();
+                        var guid = new PageGuid()
+                        {
+                            Modular = AssetsFunctionHelper.Modular,
+                            MoudingType = eMoudingType.Tab,
+                            Function = AssetsFunctionHelper.MeterMgr
+                        };
+                        if (!IsExistPage(guid, true))
+                        {
+                            var page = new AssetsMeterMgrPage();
+                            CreatePage(page, guid);
+                        }
+                    }
+                    break;
+
+                case AssetsFunctionHelper.FlowmeterMgr:
+                    {
+                        this.flyoutPanel2.HideBeakForm();
+                        var guid = new PageGuid()
+                        {
+                            Modular = AssetsFunctionHelper.Modular,
+                            MoudingType = eMoudingType.Tab,
+                            Function = AssetsFunctionHelper.FlowmeterMgr
+                        };
+                        if (!IsExistPage(guid, true))
+                        {
+                            var page = new AssetsFlowmeterMgrPage();
+                            CreatePage(page, guid);
+                        }
+                    }
+                    break;
+
+                case AssetsFunctionHelper.PressmeterMgr:
+                    {
+                        this.flyoutPanel2.HideBeakForm();
+                        var guid = new PageGuid()
+                        {
+                            Modular = AssetsFunctionHelper.Modular,
+                            MoudingType = eMoudingType.Tab,
+                            Function = AssetsFunctionHelper.PressmeterMgr
+                        };
+                        if (!IsExistPage(guid, true))
+                        {
+                            var page = new AssetsPressmeterMgrPage();
+                            CreatePage(page, guid);
+                        }
+                    }
+                    break;
+
+                case AssetsFunctionHelper.PipeMgr:
+                    {
+                        this.flyoutPanel1.HideBeakForm();
+                        var guid = new PageGuid()
+                        {
+                            Modular = AssetsFunctionHelper.Modular,
+                            MoudingType = eMoudingType.Tab,
+                            Function = AssetsFunctionHelper.PipeMgr
+                        };
+                        if (!IsExistPage(guid, true))
+                        {
+                            var page = new AssetsPipeMgrPage();
+                            CreatePage(page, guid);
+                        }
+                    }
+                    break;
+
+                case AssetsFunctionHelper.TranslationMgr:
+                    {
+                        this.flyoutPanel1.HideBeakForm();
+                        var guid = new PageGuid()
+                        {
+                            Modular = AssetsFunctionHelper.Modular,
+                            MoudingType = eMoudingType.Tab,
+                            Function = AssetsFunctionHelper.TranslationMgr
+                        };
+                        if (!IsExistPage(guid, true))
+                        {
+                            var page = new AssetsTranslationMgrPage();
+                            CreatePage(page, guid);
+                        }
+                    }
+                    break;
+
+                case AssetsFunctionHelper.PumpMgr:
+                    {
+                        this.flyoutPanel1.HideBeakForm();
+                        var guid = new PageGuid()
+                        {
+                            Modular = AssetsFunctionHelper.Modular,
+                            MoudingType = eMoudingType.Tab,
+                            Function = AssetsFunctionHelper.PumpMgr
+                        };
+                        if (!IsExistPage(guid, true))
+                        {
+                            var page = new PumpProductMainPage();
+                            CreatePage(page, guid);
+                        }
+                    }
+                    break;
+
+                case AssetsFunctionHelper.ValveMgr:
+                    {
+                        this.flyoutPanel1.HideBeakForm();
+                        var guid = new PageGuid()
+                        {
+                            Modular = AssetsFunctionHelper.Modular,
+                            MoudingType = eMoudingType.Tab,
+                            Function = AssetsFunctionHelper.ValveMgr
+                        };
+                        if (!IsExistPage(guid, true))
+                        {
+                            var page = new AssetsValveMgrPage();
+                            CreatePage(page, guid);
+                        }
+                    }
+                    break;
+
+                case AssetsFunctionHelper.ExchangerMgr:
+                    {
+                        this.flyoutPanel2.HideBeakForm();
+                        var guid = new PageGuid()
+                        {
+                            Modular = AssetsFunctionHelper.Modular,
+                            MoudingType = eMoudingType.Tab,
+                            Function = AssetsFunctionHelper.ExchangerMgr
+                        };
+                        if (!IsExistPage(guid, true))
+                        {
+                            var page = new AssetsExchangerMgrPage();
+                            CreatePage(page, guid);
+                        }
+                    }
+                    break;
+
+                case AssetsFunctionHelper.CompressorMgr:
+                    {
+                        this.flyoutPanel2.HideBeakForm();
+                        var guid = new PageGuid()
+                        {
+                            Modular = AssetsFunctionHelper.Modular,
+                            MoudingType = eMoudingType.Tab,
+                            Function = AssetsFunctionHelper.CompressorMgr
+                        };
+                        if (!IsExistPage(guid, true))
+                        {
+                            var page = new AssetsCompressorMgrPage();
+                            CreatePage(page, guid);
+                        }
+                    }
+                    break;
+
+                #region 权限
+
+                case AuthFunctionHelper.RoleMgr:
+                    {
+                        this.flyoutPanel2.HideBeakForm();
+                        var guid = new PageGuid()
+                        {
+                            Modular = AuthFunctionHelper.Modular,
+                            MoudingType = eMoudingType.Tab,
+                            Function = AuthFunctionHelper.RoleMgr
+                        };
+                        if (!IsExistPage(guid, true))
+                        {
+                            var page = new RoleMgrPage();
+                            CreatePage(page, guid);
+                        }
+                    }
+                    break;
+
+                case AuthFunctionHelper.UserMgr:
+                    {
+                        this.flyoutPanel2.HideBeakForm();
+                        var guid = new PageGuid()
+                        {
+                            Modular = AuthFunctionHelper.Modular,
+                            MoudingType = eMoudingType.Tab,
+                            Function = AuthFunctionHelper.UserMgr
+                        };
+                        if (!IsExistPage(guid, true))
+                        {
+                            var page = new UserMgrPage();
+                            CreatePage(page, guid);
+                        }
+                    }
+                    break;
+
+                case AuthFunctionHelper.MenuMgr:
+                    {
+                        this.flyoutPanel2.HideBeakForm();
+                        var guid = new PageGuid()
+                        {
+                            Modular = AuthFunctionHelper.Modular,
+                            MoudingType = eMoudingType.Tab,
+                            Function = AuthFunctionHelper.MenuMgr
+                        };
+                        if (!IsExistPage(guid, true))
+                        {
+                            var page = new MenuMgrPage();
+                            CreatePage(page, guid);
+                        }
+                    }
+                    break;
+
+                case AuthFunctionHelper.RoleProjectMenu:
+                    {
+                        this.flyoutPanel2.HideBeakForm();
+                        var guid = new PageGuid()
+                        {
+                            Modular = AuthFunctionHelper.Modular,
+                            MoudingType = eMoudingType.Tab,
+                            Function = AuthFunctionHelper.RoleProjectMenu
+                        };
+                        if (!IsExistPage(guid, true))
+                        {
+                            var page = new RoleProjectMenuPage();
+                            CreatePage(page, guid);
+                        }
+                    }
+                    break;
+
+                case AuthFunctionHelper.UserInfo:
+                    {
+                        this.flyoutPanel2.HideBeakForm();
+                        var guid = new PageGuid()
+                        {
+                            Modular = AuthFunctionHelper.Modular,
+                            MoudingType = eMoudingType.Tab,
+                            Function = AuthFunctionHelper.UserInfo
+                        };
+                        if (!IsExistPage(guid, true))
+                        {
+                            var dlg = new PersonalCenterDlg();
+                            dlg.Show();
+                        }
+                    }
+                    break;
+
+                case AuthFunctionHelper.UserLoginLog:
+                    {
+                        this.flyoutPanel2.HideBeakForm();
+                        var guid = new PageGuid()
+                        {
+                            Modular = AuthFunctionHelper.Modular,
+                            MoudingType = eMoudingType.Tab,
+                            Function = AuthFunctionHelper.UserLoginLog
+                        };
+                        if (!IsExistPage(guid, true))
+                        {
+                            var page = new UserLoginLogPage();
+                            CreatePage(page, guid);
+                        }
+                    }
+                    break;
+
+                #endregion 权限
+
+                #region 基础模块
+
+                case BasicFunctionHelper.TypeMgr:
+                    {
+                        this.flyoutPanel2.HideBeakForm();
+                        var guid = new PageGuid()
+                        {
+                            Modular = BasicFunctionHelper.Modular,
+                            MoudingType = eMoudingType.Tab,
+                            Function = BasicFunctionHelper.TypeMgr
+                        };
+                        if (!IsExistPage(guid, true))
+                        {
+                            var page = new SysTypeManageMainPanel();
+                            CreatePage(page, guid);
+                        }
+                    }
+                    break;
+
+                case BasicFunctionHelper.CatalogMgr:
+                    {
+                        this.flyoutPanel2.HideBeakForm();
+                        var guid = new PageGuid()
+                        {
+                            Modular = BasicFunctionHelper.Modular,
+                            MoudingType = eMoudingType.Tab,
+                            Function = BasicFunctionHelper.CatalogMgr
+                        };
+                        if (!IsExistPage(guid, true))
+                        {
+                            var page = new SysCatalogManageMainPanel();
+                            CreatePage(page, guid);
+                        }
+                    }
+                    break;
+
+                case BasicFunctionHelper.PropMgr:
+                    {
+                        this.flyoutPanel2.HideBeakForm();
+                        var guid = new PageGuid()
+                        {
+                            Modular = BasicFunctionHelper.Modular,
+                            MoudingType = eMoudingType.Tab,
+                            Function = BasicFunctionHelper.PropMgr
+                        };
+                        if (!IsExistPage(guid, true))
+                        {
+                            var page = new SysPropManageMainPanel();
+                            CreatePage(page, guid);
+                        }
+                    }
+                    break;
+
+                case BasicFunctionHelper.FlagMgr:
+                    {
+                        this.flyoutPanel2.HideBeakForm();
+                        var guid = new PageGuid()
+                        {
+                            Modular = BasicFunctionHelper.Modular,
+                            MoudingType = eMoudingType.Tab,
+                            Function = BasicFunctionHelper.FlagMgr
+                        };
+                        if (!IsExistPage(guid, true))
+                        {
+                            var page = new SysFlagManageMainPanel();
+                            CreatePage(page, guid);
+                        }
+                    }
+                    break;
+
+                case BasicFunctionHelper.DictMgr:
+                    {
+                        this.flyoutPanel2.HideBeakForm();
+                        var guid = new PageGuid()
+                        {
+                            Modular = BasicFunctionHelper.Modular,
+                            MoudingType = eMoudingType.Tab,
+                            Function = BasicFunctionHelper.DictMgr
+                        };
+                        if (!IsExistPage(guid, true))
+                        {
+                            var page = new DictManageMainPanel();
+                            CreatePage(page, guid);
+                        }
+                    }
+                    break;
+
+                #endregion 基础模块
+
+                #region 水力
+
+                case HydroFunctionHelper.SceneMgr:
+                    {
+                        this.flyoutPanel2.HideBeakForm();
+                        var guid = new PageGuid()
+                        {
+                            Modular = HydroFunctionHelper.Modular,
+                            MoudingType = eMoudingType.Tab,
+                            Function = HydroFunctionHelper.SceneMgr
+                        };
+                        if (!IsExistPage(guid, true))
+                        {
+                            var page = new Yw.WinFrmUI.HydroSceneMgrPage();
+                            CreatePage(page, guid);
+                        }
+                    }
+                    break;
+
+                case HydroFunctionHelper.ModelMgr:
+                    {
+                        this.flyoutPanel2.HideBeakForm();
+                        var guid = new PageGuid()
+                        {
+                            Modular = HydroFunctionHelper.Modular,
+                            MoudingType = eMoudingType.Tab,
+                            Function = HydroFunctionHelper.ModelMgr
+                        };
+                        if (!IsExistPage(guid, true))
+                        {
+                            var page = new HStation.WinFrmUI.HydroModelMgrPage();
+                            CreatePage(page, guid);
+                        }
+                    }
+                    break;
+
+                case HydroFunctionHelper.BimfaceMgr:
+                    {
+                        this.flyoutPanel2.HideBeakForm();
+                        var guid = new PageGuid()
+                        {
+                            Modular = HydroFunctionHelper.Modular,
+                            MoudingType = eMoudingType.Tab,
+                            Function = HydroFunctionHelper.BimfaceMgr
+                        };
+                        if (!IsExistPage(guid, true))
+                        {
+                            var page = new Yw.WinFrmUI.BimfaceFileMgrPage();
+                            CreatePage(page, guid);
+                        }
+                    }
+                    break;
+
+                    #endregion 水力
             }
         }
 
@@ -429,6 +1299,7 @@
         //界面记载事件
         private void MainForm_Load(object sender, EventArgs e)
         {
+            VerifyAuth();
         }
 
         //界面显示事件
@@ -443,7 +1314,6 @@
             if (!IsExistPage(guid, true))
             {
                 var page = new HomeXhsProjectPage();
-                //var page = new HomeXhsProjectPage();
                 CreatePage(page, guid);
             }
         }
@@ -495,6 +1365,14 @@
         //添加
         private void tabbedView1_DocumentAdded(object sender, DocumentEventArgs e)
         {
+            if (this.tabbedView1.Documents.Count > 1)
+            {
+                if (!this.tabbedView1.DocumentGroupProperties.ShowTabHeader)
+                {
+                    this.navBtnPrevious.Visible = true;
+                    this.navBtnNext.Visible = true;
+                }
+            }
         }
 
         //激活
@@ -502,7 +1380,25 @@
         {
             var page = e.Document.Control as DocumentPage;
             if (page == null)
+            {
                 return;
+            }
+            this.navBtnCurrent.ImageOptions.SvgImage = page.PageTitle.HeaderSvgImage;
+            this.navBtnCurrent.Caption = page.PageTitle.Caption;
+        }
+
+        //正在关闭Document
+        private void tabbedView1_DocumentClosing(object sender, DocumentCancelEventArgs e)
+        {
+            var page = e.Document.Control as DocumentPage;
+            if (page == null)
+                return;
+            if (!page.CanClose())
+            {
+                e.Cancel = true;
+                return;
+            }
+            page.UnRegistEvents();
         }
 
         //关闭 此时控件已经为空
@@ -666,6 +1562,15 @@
             page.UpdatePageTitleEvent += UpdatePageTitle;
             page.ClosePageEvent += ClosePage;
             page.RegistEvents();
+            var menuAtuhority = AuthHelper.GetFunctionPageAuth(pguid.Function);
+            if (menuAtuhority != null)
+            {
+                page.AuthTree = new PageAuthHaveTree
+                {
+                    Permission = menuAtuhority.Permission,
+                    Have = menuAtuhority.Have
+                };
+            }
             switch (pguid.MoudingType)
             {
                 case eMoudingType.Dock:
@@ -719,8 +1624,19 @@
                 default: break;
             }
             page.InitialDataSource();
+            page.VerifyAuth();
             return true;
         }
+
+        /*     public PageAuthHaveTree GetPageAuthHave(string tag)
+             {
+                 foreach (var item in AuthHelper.PageAuthHaveTreeList)
+                 {
+                     if (item.Permission == tag)
+                     {
+                     }
+                 }
+             }*/
 
         //关闭Page
         private void ClosePage(PageGuid pguid)
@@ -768,11 +1684,11 @@
         {
             //foreach (NavButton item in this.tileNavPane.Buttons)
             //{
-            //    if (item.Tag == null)
+            //    if (item.TagName == null)
             //        continue;
-            //    if (item.Tag is int)
+            //    if (item.TagName is int)
             //    {
-            //        if (((int)item.Tag) == (int)modular)
+            //        if (((int)item.TagName) == (int)modular)
             //        {
             //            item.Appearance.BackColor = Color.FromArgb(255, 128, 0);
             //        }
@@ -783,7 +1699,7 @@
             //    }
             //}
             //this.docPnlFuncList.Text = modular.ToString();
-            //this.funcTreeListCtrl1.SetBindingData(modular, surfaceGuid);
+            //this.funcTreeListCtrl1.SetMatching(modular, surfaceGuid);
             //if (surfaceGuid == null)
             //{
             //    var func = this.funcTreeListCtrl1.SetDefault();
@@ -793,5 +1709,35 @@
         }
 
         #endregion Modular
+
+        //上一页
+        private void navBtnPrevious_ElementClick(object sender, NavElementEventArgs e)
+        {
+            this.tabbedView1.Controller.SelectNextTab(false);
+        }
+
+        //下一页
+        private void navBtnNext_ElementClick(object sender, NavElementEventArgs e)
+        {
+            this.tabbedView1.Controller.SelectNextTab(true);
+        }
+
+        //模式切换
+        private void navBtnPattern_ElementClick(object sender, NavElementEventArgs e)
+        {
+            if (this.tabbedView1.DocumentGroupProperties.ShowTabHeader)
+            {
+                this.navBtnPrevious.Visible = true;
+                this.navBtnCurrent.Visible = true;
+                this.navBtnNext.Visible = true;
+            }
+            else
+            {
+                this.navBtnPrevious.Visible = false;
+                this.navBtnCurrent.Visible = false;
+                this.navBtnNext.Visible = false;
+            }
+            this.tabbedView1.DocumentGroupProperties.ShowTabHeader = !this.tabbedView1.DocumentGroupProperties.ShowTabHeader;
+        }
     }
 }
\ No newline at end of file

--
Gitblit v1.9.3