From 2066a7e10e20433f7445431d6d34a9026c29f663 Mon Sep 17 00:00:00 2001 From: lu <99954486@qq.com> Date: 星期一, 23 十二月 2024 08:43:43 +0800 Subject: [PATCH] 细节 --- DevApp/Gs.DevApp/DevFrm/FrmMain.cs | 387 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 387 insertions(+), 0 deletions(-) diff --git a/DevApp/Gs.DevApp/DevFrm/FrmMain.cs b/DevApp/Gs.DevApp/DevFrm/FrmMain.cs new file mode 100644 index 0000000..42fd504 --- /dev/null +++ b/DevApp/Gs.DevApp/DevFrm/FrmMain.cs @@ -0,0 +1,387 @@ +锘縰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 Newtonsoft.Json.Linq; + +namespace Gs.DevApp.DevFrm +{ + public partial class FrmMain : FluentDesignForm + { + private static readonly Dictionary<string, XtraTabPage> TabPageDic = + new Dictionary<string, XtraTabPage>(); + + public FrmMain() + { + InitializeComponent(); + Text = ConfigurationSettings.AppSettings.Get("ProductName"); + tab.CloseButtonClick += Tab_CloseButtonClick; + 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) + { + getTree(); + } + + private void getTree() + { + + toolTime.Text = "鐧诲綍鏃堕棿" + LoginInfoModel.CurrentUser.LoginTime; + var _obj = new + { + userGuid = LoginInfoModel.CurrentUser.LoginUserGuid, + orgGuid = LoginInfoModel.CurrentUser.LoginOrgGuid + }; + try + { + 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) + { + 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) + { + 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) + { + 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++; + } + ; + gdx++; + } + } + else + { + MsgHelper.ShowError("鎻愮ず锛氬垵濮嬪寲澶辫触锛岃鑱旂郴绠$悊鍛橈紒"); + } + wdf.SetCaption("鍔犺浇杩涘害锛�90/100锛�"); + wdf.Close(); + } + catch (Exception ex) + { + + MsgHelper.ShowError("鎻愮ず锛�" + ex.Message); + } + + } + + /// <summary> + /// 宸︿晶鑿滃崟鐐瑰嚮 + /// </summary> + /// <param name="sender"></param> + /// <param name="e"></param> + private void _grp_Click(object sender, EventArgs e) + { + var _acd = (AccordionControlElement)sender; + if (_acd.Elements.Count > 0) return; + 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) + { + 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.ImageOptions.Image = imgIcon; + var fm = AddNewForm(newFormName); + if (fm != null) + { + newPage.Controls.Add(fm); + tabControl.TabPages.Add(newPage); + TabPageDic.Add(tabPageName, newPage); + tabControl.SelectedTabPage = newPage; + } + } + + /// <summary> + /// 绉婚櫎閫夐」鍗¢〉 + /// </summary> + /// <param name="tabControl"></param> + /// <param name="tabPageName"></param> + /// <param name="e"></param> + public void RemoveTabPage(XtraTabControl tabControl, string name) + { + if (TabPageDic.Count <= 1) + { + MsgHelper.Warning("璇疯嚦灏戜繚鐣欎竴涓姛鑳斤紒"); + return; + } + foreach (XtraTabPage item in tabControl.TabPages) + if (item.Name == name) + { + tabControl.TabPages.Remove(item); + item.Dispose(); + TabPageDic.Remove(name); + return; + } + } + + /// <summary> + /// 鍒ゆ柇閫夐」鍗℃槸鍚﹀凡缁忓瓨鍦� + /// </summary> + /// <param name="tabControl">閫夐」鍗℃帶浠�</param> + /// <param name="tabPageName">閫夐」鍗″悕绉�</param> + /// <returns></returns> + 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 + { + var newForm = (Form)Assembly.GetExecutingAssembly() + .CreateInstance(formName); + if (newForm == null) + { + MsgHelper.ShowError("璇锋鏌ユ槸鍚﹀紑閫氫簡璇ユā鍧楋紒"); + return null; + } + + newForm.FormBorderStyle = FormBorderStyle.None; + newForm.TopLevel = false; + newForm.ControlBox = false; + newForm.Dock = DockStyle.Fill; + newForm.Visible = true; + return newForm; + } + catch (Exception) + { + 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