From f14d1fc28a8012035ee251fba71a0d048e9efd0d Mon Sep 17 00:00:00 2001
From: lu <99954486@qq.com>
Date: 星期四, 16 一月 2025 09:10:48 +0800
Subject: [PATCH] 工具条切换状态

---
 DevApp/Gs.DevApp/DevFrm/FrmMain.cs |  358 +++++++++++++++++++++++++++++++++++++++++++----------------
 1 files changed, 259 insertions(+), 99 deletions(-)

diff --git a/DevApp/Gs.DevApp/DevFrm/FrmMain.cs b/DevApp/Gs.DevApp/DevFrm/FrmMain.cs
index c71d77b..42fd504 100644
--- a/DevApp/Gs.DevApp/DevFrm/FrmMain.cs
+++ b/DevApp/Gs.DevApp/DevFrm/FrmMain.cs
@@ -1,146 +1,283 @@
-锘縰sing DevExpress.XtraBars.Navigation;
-using DevExpress.XtraTab;
-using System;
+锘縰sing System;
 using System.Collections.Generic;
+using System.ComponentModel;
+using System.Configuration;
 using System.Data;
 using System.Drawing;
 using System.Reflection;
 using System.Windows.Forms;
+using DevExpress.XtraBars;
+using DevExpress.XtraBars.FluentDesignSystem;
+using DevExpress.XtraBars.Navigation;
+using DevExpress.XtraTab;
+using DevExpress.XtraTab.ViewInfo;
+using Gs.DevApp.DevFrm.Sys;
+using Gs.DevApp.DevFrm.User;
+using Gs.DevApp.Entity;
 using Gs.DevApp.ToolBox;
 using Newtonsoft.Json;
-using Gs.DevApp.Models;
 using Newtonsoft.Json.Linq;
 
 namespace Gs.DevApp.DevFrm
 {
-    public partial class FrmMain : DevExpress.XtraBars.FluentDesignSystem.FluentDesignForm
+    public partial class FrmMain : FluentDesignForm
     {
-        private static Dictionary<string, XtraTabPage> TabPageDic = new Dictionary<string, XtraTabPage>();
+        private static readonly Dictionary<string, XtraTabPage> TabPageDic =
+            new Dictionary<string, XtraTabPage>();
+
         public FrmMain()
         {
             InitializeComponent();
-            this.Text = System.Configuration.ConfigurationSettings.AppSettings.Get("ProductName").ToString();
+            Text = ConfigurationSettings.AppSettings.Get("ProductName");
             tab.CloseButtonClick += Tab_CloseButtonClick;
-            getTree();
             tooLoading.Click += TooLoading_Click;
+            barPwd.ItemClick += BarPwd_ItemClick;
+            barExit.ItemClick += BarExit_ItemClick;
+            FormClosing += FrmMain_FormClosing;
+            barEasy.ItemClick += BarEasy_ItemClick;
+            getTree();
+            tab.MouseDown += Tab_MouseDown;
+            tabCloseCurrent.Click += (s, e) =>
+            {
+                string name = tab.SelectedTabPage.Tooltip;
+                RemoveTabPage(tab, name);
+            };
+            tabCloseAll.Click += (s, e) =>
+            {
+                string _name = tab.SelectedTabPage.Tooltip;
+                int _tabCount = tab.TabPages.Count;
+                for (int i = _tabCount; i >= 0; i--)
+                {
+                    try
+                    {
+                        string name = tab.TabPages[i].Tooltip;
+                        if (name != _name)
+                        {
+                            RemoveTabPage(tab, name);
+                        }
+                    }
+                    catch (Exception)
+                    {
+                    }
+                }
+            };
         }
 
+        private void Tab_MouseDown(object sender, MouseEventArgs e)
+        {
+            if (e.Button == MouseButtons.Right)
+            {
+                tab.ContextMenuStrip = null;
+                //TreeListHitInfo hInfo = treeList1.CalcHitInfo(new Point(e.X, e.Y));
+                //TreeListNode node = hInfo.Node;
+                //treeList1.FocusedNode = node;
+                tab.ContextMenuStrip = cms1;
+
+            }
+        }
+
+        private void BarEasy_ItemClick(object sender, ItemClickEventArgs e)
+        {
+            var frm = new EasyCode();
+            frm.ShowDialog();
+        }
+
+        private void FrmMain_FormClosing(object sender, FormClosingEventArgs e)
+        {
+            if (MsgHelper.AskQuestion("纭畾瑕侀��鍑虹郴缁熷悧?"))
+            {
+                var i = _userOut();
+                if (i > 0)
+                {
+                    FormClosing -= FrmMain_FormClosing;
+                    Application.Exit();
+                }
+                else
+                {
+                    e.Cancel = true; //鍙栨秷銆傝繑鍥炵獥浣�
+                }
+            }
+            else
+            {
+                e.Cancel = true; //鍙栨秷銆傝繑鍥炵獥浣�
+            }
+        }
+
+        /// <summary>
+        ///     閫�鍑�
+        /// </summary>
+        /// <param name="sender"></param>
+        /// <param name="e"></param>
+        private void BarExit_ItemClick(object sender, ItemClickEventArgs e)
+        {
+            if (MsgHelper.AskQuestion("纭畾瑕侀��鍑虹郴缁熷悧?"))
+            {
+                var i = _userOut();
+                if (i > 0)
+                {
+                    FormClosing -= FrmMain_FormClosing;
+                    Application.Exit();
+                }
+            }
+        }
+
+        /// <summary>
+        ///     璁剧疆鐢ㄦ埛瀵嗙爜
+        /// </summary>
+        /// <param name="sender"></param>
+        /// <param name="e"></param>
+        private void BarPwd_ItemClick(object sender, ItemClickEventArgs e)
+        {
+            var frm = new UserSetPwd(LoginInfoModel.CurrentUser.LoginUserGuid);
+            frm.ShowDialog();
+        }
+
+        /// <summary>
+        ///     閲嶆柊鍔犺浇绯荤粺
+        /// </summary>
+        /// <param name="sender"></param>
+        /// <param name="e"></param>
         private void TooLoading_Click(object sender, EventArgs e)
         {
-            int i = 100;
-            Gs.DevApp.UserControl.ShowDialogForm sdf = new Gs.DevApp.UserControl.ShowDialogForm("鎻愮ず", "", "璇疯�愬績绛夊�欙紝姝e湪鎿嶄綔涓紒");
-            for (int j = 0; j < i; j++)
-            {
-                sdf.SetCaption("鎵ц杩涘害锛�" + (j) + "/" + i.ToString() + "锛�");
-            }
-            sdf.Close();
             getTree();
         }
 
-        private void Tab_CloseButtonClick(object sender, EventArgs e)
+        private   void getTree()
         {
-            RemoveTabPage(tab, e);
-        }
-
-        private void getTree()
-        {
+            
             toolTime.Text = "鐧诲綍鏃堕棿" + LoginInfoModel.CurrentUser.LoginTime;
             var _obj = new
             {
                 userGuid = LoginInfoModel.CurrentUser.LoginUserGuid,
-                orgGuid = LoginInfoModel.CurrentUser.LoginOrgGuid,
+                orgGuid = LoginInfoModel.CurrentUser.LoginOrgGuid
             };
-            string strJson = "";
             try
             {
-                strJson = UtilityHelper.HttpPost("", "User/GetUserLoginInfo", JsonConvert.SerializeObject(_obj));
-                JObject _job = JObject.Parse(strJson);
-                string rtnCode = _job["rtnCode"].ToString();
-                this.acrd.Clear();
-                string rtnMsg = _job["rtnMsg"].ToString();
-                barMsg.Caption = rtnMsg;
-                JArray array = new JArray();
-                var d = _job["rtnData"]["list"];
-                foreach (var a in d)
+                var strJson = UtilityHelper.HttpPost("",
+                    "User/GetUserLoginInfo", JsonConvert.SerializeObject(_obj));
+                DevExpress.Utils.WaitDialogForm wdf = new DevExpress.Utils.WaitDialogForm("鎷煎懡鍔犺浇涓紝璇风◢鍚�......", "鍙嬫儏鎻愮ず");
+                var _job = JObject.Parse(strJson);
+                var rtnCode = _job["rtnCode"].ToString();
+                if (int.Parse(rtnCode) > 0)
                 {
-                    array.Add(a);
-                }
-                System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FrmMain));
-                DataTable dt = JsonConvert.DeserializeObject<DataTable>(array.ToString());
-                DataRow[] drGrp = dt.Select("upGuid is null");
-                int idx = 0;
-                foreach (DataRow _dy in drGrp)
-                {
-                    AccordionControlElement _grp = this.acrd.AddGroup();
-                    _grp.ImageOptions.Image = UtilityHelper.GetImgFromResource(_dy["icon"].ToString(), 1);
-                    _grp.Name = _dy["guid"].ToString();
-                    _grp.Style = DevExpress.XtraBars.Navigation.ElementStyle.Group;
-                    _grp.Text = _dy["name"].ToString();
-                    _grp.Tag = _dy["formPath"].ToString();//瀛樿矾寰勶紝绫诲悕
-                    _grp.Click += _grp_Click;
-                    DataRow[] drItem = dt.Select("upGuid='" + _dy["guid"].ToString() + "'");
-                    foreach (DataRow _dy2 in drItem)
+                    acrd.Clear();
+                    barMsg.Caption = _job["rtnData"]["loginMsg"].ToString();
+                    var array = new JArray();
+                    var d = _job["rtnData"]["list"];
+                    foreach (var a in d) array.Add(a);
+                    var resources =
+                        new ComponentResourceManager(typeof(FrmMain));
+                    var dt =
+                        JsonConvert.DeserializeObject<DataTable>(
+                            array.ToString());
+                    var drGrp = dt.Select("upGuid is null");
+                    int gdx = 0, idx = 0;
+                    foreach (var _dy in drGrp)
                     {
-                        AccordionControlElement _itm = this.acrd.AddItem();
-                        _itm.ImageOptions.Image = UtilityHelper.GetImgFromResource(_dy2["icon"].ToString(), 2);
-                        _itm.Name = _dy2["guid"].ToString();
-                        _itm.Style = DevExpress.XtraBars.Navigation.ElementStyle.Item;
-                        _itm.Text = _dy2["name"].ToString();
-                        _itm.Appearance.Normal.Font = new System.Drawing.Font("Tahoma", 10F);
-                        _itm.Tag = _dy2["formPath"].ToString();//瀛樿矾寰勶紝绫诲悕
-                        _itm.Click += _grp_Click;
-                        _grp.Elements.Add(_itm);
-                        //
-                        if (idx == 0 && tab.TabPages.Count <= 0)
+                        wdf.SetCaption("鍔犺浇杩涘害:" + _dy["name"].ToString());
+                        var _grp = acrd.AddGroup();
+                        _grp.ImageOptions.Image =
+                            UtilityHelper.GetImgFromResource(
+                                _dy["icon"].ToString(), 1);
+                        _grp.Name = _dy["guid"].ToString();
+                        _grp.Style = ElementStyle.Group;
+                        _grp.Text = _dy["name"].ToString();
+                        _grp.Tag = _dy["formPath"].ToString(); //瀛樿矾寰勶紝绫诲悕
+                        _grp.Click += _grp_Click;
+                        if (gdx == 0)
+                            _grp.Expanded = true;
+                        var drItem = dt.Select("upGuid='" + _dy["guid"] + "'");
+                        foreach (var _dy2 in drItem)
                         {
-                            string tabPageName = _itm.Name + "_page";
-                            string tabText = _itm.Text;//褰撳墠閫夐」鍗¢〉Text鏍囬
-                            string newFormName = _itm.Tag.ToString();//瀛樿矾寰勶紝绫诲悕
-                            Image imgIcon = _itm.Image;
-                            AddTabpage(tab, tabPageName, tabText, newFormName, imgIcon);
+                            var _itm = acrd.AddItem();
+                            _itm.ImageOptions.Image =
+                                UtilityHelper.GetImgFromResource(
+                                    _dy2["icon"].ToString(), 2);
+                            _itm.Name = _dy2["guid"].ToString();
+                            _itm.Style = ElementStyle.Item;
+                            _itm.Text = _dy2["name"].ToString();
+                            wdf.SetCaption("鍔犺浇杩涘害:" + _dy2["name"].ToString());
+                            _itm.Appearance.Normal.Font =
+                                new Font("Tahoma", 10F);
+                            _itm.Tag = _dy2["formPath"].ToString(); //瀛樿矾寰勶紝绫诲悕
+                            _itm.Click += _grp_Click;
+                            _grp.Elements.Add(_itm);
+                            if (idx == 0 && tab.TabPages.Count <= 0)
+                            {
+                                var tabPageName = _itm.Name + "_page";
+                                var tabText = _itm.Text; //褰撳墠閫夐」鍗¢〉Text鏍囬
+                                var newFormName = _itm.Tag.ToString(); //瀛樿矾寰勶紝绫诲悕
+                                var imgIcon = _itm.Image;
+                                AddTabpage(tab, tabPageName, tabText,
+                                    newFormName, imgIcon);
+                            }
+                            idx++;
                         }
-                        idx++;
-                        //
-                    };
+                        ;
+                        gdx++;
+                    }
                 }
+                else
+                {
+                    MsgHelper.ShowError("鎻愮ず锛氬垵濮嬪寲澶辫触锛岃鑱旂郴绠$悊鍛橈紒");
+                }
+                wdf.SetCaption("鍔犺浇杩涘害锛�90/100锛�");
+                wdf.Close();
             }
             catch (Exception ex)
             {
-                ToolBox.MsgHelper.ShowError("鎻愮ず锛�" + ex.Message);
+                
+                MsgHelper.ShowError("鎻愮ず锛�" + ex.Message);
             }
+           
         }
 
+        /// <summary>
+        ///     宸︿晶鑿滃崟鐐瑰嚮
+        /// </summary>
+        /// <param name="sender"></param>
+        /// <param name="e"></param>
         private void _grp_Click(object sender, EventArgs e)
         {
-            AccordionControlElement _acd = (AccordionControlElement)sender;
+            var _acd = (AccordionControlElement)sender;
             if (_acd.Elements.Count > 0) return;
-            string tabPageName = _acd.Name + "_page";
-            string tabText = _acd.Text;//褰撳墠閫夐」鍗¢〉Text鏍囬
-            string newFormName = _acd.Tag.ToString();//瀛樿矾寰勶紝绫诲悕
-            Image imgIcon = _acd.Image;
+            var tabPageName = _acd.Name + "_page";
+            var tabText = _acd.Text;
+            var newFormName = _acd.Tag.ToString();
+            var imgIcon = _acd.Image;
             AddTabpage(tab, tabPageName, tabText, newFormName, imgIcon);
         }
 
         /// <summary>
-        /// 鏂板閫夐」鍗¢〉
+        ///     鍏抽棴閫夐」鍗�
+        /// </summary>
+        /// <param name="sender"></param>
+        /// <param name="e"></param>
+        private void Tab_CloseButtonClick(object sender, EventArgs e)
+        {
+            var args = (ClosePageButtonEventArgs)e;
+            var name = args.Page.Tooltip;
+            RemoveTabPage(tab, name);
+        }
+
+        /// <summary>
+        ///     鏂板閫夐」鍗¢〉
         /// </summary>
         /// <param name="tabControl">閫夐」鍗℃帶浠�</param>
         /// <param name="tabPageName">褰撴湡閫夐」鍗¢〉name鍚嶇О</param>
         /// <param name="tabText">褰撳墠閫夐」鍗¢〉Text鏍囬</param>
         /// <param name="newFormName">褰撳墠閫夐」鍗′腑鐨勬柊绐椾綋璺緞锛岀被鍚�</param>
-        public void AddTabpage(XtraTabControl tabControl, string tabPageName, string tabText, string newFormName, Image imgIcon)
+        public void AddTabpage(XtraTabControl tabControl, string tabPageName,
+            string tabText, string newFormName, Image imgIcon)
         {
-            if (IsTabpageExsit(tabControl, tabPageName))
-            {
-                return;
-            }
-            XtraTabPage newPage = new XtraTabPage();
+            if (IsTabpageExsit(tabControl, tabPageName)) return;
+            var newPage = new XtraTabPage();
             newPage.Name = tabPageName;
             newPage.Text = tabText;
             newPage.Tooltip = newPage.Name;
-            newPage.Appearance.Header.Font = (tab.Appearance.Font);
+            newPage.Appearance.Header.Font = tab.Appearance.Font;
             newPage.ImageOptions.Image = imgIcon;
-            Form fm = AddNewForm(newFormName);
+            var fm = AddNewForm(newFormName);
             if (fm != null)
             {
                 newPage.Controls.Add(fm);
@@ -151,22 +288,19 @@
         }
 
         /// <summary>
-        /// 绉婚櫎閫夐」鍗¢〉
+        ///     绉婚櫎閫夐」鍗¢〉
         /// </summary>
         /// <param name="tabControl"></param>
         /// <param name="tabPageName"></param>
         /// <param name="e"></param>
-        public void RemoveTabPage(XtraTabControl tabControl, EventArgs e)
+        public void RemoveTabPage(XtraTabControl tabControl, string name)
         {
             if (TabPageDic.Count <= 1)
             {
-                ToolBox.MsgHelper.Warning("璇疯嚦灏戜繚鐣欎竴涓姛鑳斤紒");
+                MsgHelper.Warning("璇疯嚦灏戜繚鐣欎竴涓姛鑳斤紒");
                 return;
             }
-            DevExpress.XtraTab.ViewInfo.ClosePageButtonEventArgs args = (DevExpress.XtraTab.ViewInfo.ClosePageButtonEventArgs)e;
-            string name = args.Page.Tooltip;
             foreach (XtraTabPage item in tabControl.TabPages)
-            {
                 if (item.Name == name)
                 {
                     tabControl.TabPages.Remove(item);
@@ -174,42 +308,43 @@
                     TabPageDic.Remove(name);
                     return;
                 }
-            }
         }
 
         /// <summary>
-        /// 鍒ゆ柇閫夐」鍗℃槸鍚﹀凡缁忓瓨鍦�
+        ///     鍒ゆ柇閫夐」鍗℃槸鍚﹀凡缁忓瓨鍦�
         /// </summary>
         /// <param name="tabControl">閫夐」鍗℃帶浠�</param>
         /// <param name="tabPageName">閫夐」鍗″悕绉�</param>
         /// <returns></returns>
-        private bool IsTabpageExsit(XtraTabControl tabControl, string tabPageName)
+        private bool IsTabpageExsit(XtraTabControl tabControl,
+            string tabPageName)
         {
             foreach (var item in TabPageDic)
-            {
                 if (item.Key == tabPageName)
                 {
                     tabControl.SelectedTabPage = item.Value;
                     return true;
                 }
-            }
+
             return false;
         }
 
         /// <summary>
-        /// 鍦ㄩ�夐」鍗′腑鐢熸垚绐椾綋
+        ///     鍦ㄩ�夐」鍗′腑鐢熸垚绐椾綋
         /// </summary>
         /// <param name="form">绐椾綋鍚嶇О</param>
         private Form AddNewForm(string formName)
         {
             try
             {
-                Form newForm = (Form)Assembly.GetExecutingAssembly().CreateInstance(formName);
+                var newForm = (Form)Assembly.GetExecutingAssembly()
+                    .CreateInstance(formName);
                 if (newForm == null)
                 {
-                    Gs.DevApp.ToolBox.MsgHelper.ShowError("璇锋鏌ユ槸鍚﹀紑閫氫簡璇ユā鍧楋紒");
+                    MsgHelper.ShowError("璇锋鏌ユ槸鍚﹀紑閫氫簡璇ユā鍧楋紒");
                     return null;
                 }
+
                 newForm.FormBorderStyle = FormBorderStyle.None;
                 newForm.TopLevel = false;
                 newForm.ControlBox = false;
@@ -219,9 +354,34 @@
             }
             catch (Exception)
             {
-                Gs.DevApp.ToolBox.MsgHelper.ShowError("璇锋鏌ユ槸鍚﹀紑閫氫簡璇ユā鍧楋紒");
+                MsgHelper.ShowError("璇锋鏌ユ槸鍚﹀紑閫氫簡璇ユā鍧楋紒");
             }
+
             return null;
         }
+
+        private int _userOut()
+        {
+            var _obj = new
+            {
+                userGuid = LoginInfoModel.CurrentUser.LoginUserGuid
+            };
+            try
+            {
+                var strJson = UtilityHelper.HttpPost("", "User/UserOut",
+                    JsonConvert.SerializeObject(_obj));
+                var _rtn = UtilityHelper.ReturnToDynamic(strJson);
+                if (_rtn.rtnCode > 0)
+                    return _rtn.rtnCode;
+                MsgHelper.Warning("鎻愮ず锛�" + _rtn.rtnData.outMsg);
+                return _rtn.rtnCode;
+            }
+            catch (Exception ex)
+            {
+                DialogResult = DialogResult.Cancel;
+                MsgHelper.Warning("鎻愮ず锛�" + ex.Message);
+                return -1;
+            }
+        }
     }
-}
+}
\ No newline at end of file

--
Gitblit v1.9.3