From 64a6c4193199d15d7ac5aa67a9677df01a37a50d Mon Sep 17 00:00:00 2001 From: lu <99954486@qq.com> Date: 星期四, 12 六月 2025 08:04:31 +0800 Subject: [PATCH] bug --- DevApp/Gs.DevApp/DevFrm/FrmMain.cs | 252 +++++++++++++++++++++++++++++++++++++++++--------- 1 files changed, 206 insertions(+), 46 deletions(-) diff --git a/DevApp/Gs.DevApp/DevFrm/FrmMain.cs b/DevApp/Gs.DevApp/DevFrm/FrmMain.cs index 96811fd..c3aa09e 100644 --- a/DevApp/Gs.DevApp/DevFrm/FrmMain.cs +++ b/DevApp/Gs.DevApp/DevFrm/FrmMain.cs @@ -1,32 +1,31 @@ -锘縰sing System; +锘縰sing DevExpress.XtraBars; +using DevExpress.XtraBars.FluentDesignSystem; +using DevExpress.XtraBars.Navigation; +using DevExpress.XtraTab; +using DevExpress.XtraTab.ViewInfo; +using Gs.DevApp.DevFrm.User; +using Gs.DevApp.Entity; +using Gs.DevApp.ToolBox; +using Newtonsoft.Json; +using Newtonsoft.Json.Linq; +using System; using System.Collections.Generic; using System.ComponentModel; using System.Configuration; using System.Data; using System.Drawing; using System.Reflection; -using System.Threading.Tasks; 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 Gs.DevApp.UserControl; -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>(); - + /// <summary> + /// tab涓存椂閫夐」鍗� + /// </summary> + private static readonly Dictionary<string, XtraTabPage> TabPageDic = new Dictionary<string, XtraTabPage>(); + private string OldorgFids = ""; public FrmMain() { InitializeComponent(); @@ -36,16 +35,79 @@ 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) + { + } + } + }; + GetOrg(); + barOrg.EditValueChanged += (s, e) => + { + if (barOrg.EditValue == null) + { + Gs.DevApp.ToolBox.MsgHelper.ShowInformation("璇烽�夋嫨浣犻渶瑕佺殑缁勭粐锛�"); + return; + } + string _val = barOrg.EditValue.ToString(); + if (string.IsNullOrEmpty(_val)) + { + Gs.DevApp.ToolBox.MsgHelper.ShowInformation("璇烽�夋嫨浣犻渶瑕佺殑缁勭粐锛�"); + return; + } + if (OldorgFids == _val) + return; + var _obj = new + { + edtUserGuid = LoginInfoModel.CurrentUser.LoginUserGuid, + userGuid = LoginInfoModel.CurrentUser.LoginUserGuid, + userOrgFids = _val, + }; + try + { + var strJson = UtilityHelper.HttpPost("", "User/SetUserOrg", + JsonConvert.SerializeObject(_obj)); + var _rtn = UtilityHelper.ReturnToDynamic(strJson); + MsgHelper.ShowInformation("鎻愮ず锛�" + _rtn.rtnData.outMsg); + } + catch (Exception ex) + { + MsgHelper.Warning("鎻愮ず锛�" + ex.Message); + } + }; } - - private void BarEasy_ItemClick(object sender, ItemClickEventArgs e) + /// <summary> + /// 鏄剧ず鍙抽敭鑿滃崟 + /// </summary> + /// <param name="sender"></param> + /// <param name="e"></param> + private void Tab_MouseDown(object sender, MouseEventArgs e) { - var frm = new EasyCode(); - frm.ShowDialog(); + if (e.Button == MouseButtons.Right) + { + cms1.Show(tab, e.Location); + } } - private void FrmMain_FormClosing(object sender, FormClosingEventArgs e) { if (MsgHelper.AskQuestion("纭畾瑕侀��鍑虹郴缁熷悧?")) @@ -105,23 +167,27 @@ { getTree(); } - - private async void getTree() + /// <summary> + /// 璇诲彇宸﹀垯妯″潡鑿滃崟 + /// </summary> + private void getTree() { - UcLoading _loading = new UcLoading(); toolTime.Text = "鐧诲綍鏃堕棿" + LoginInfoModel.CurrentUser.LoginTime; var _obj = new { userGuid = LoginInfoModel.CurrentUser.LoginUserGuid, - orgGuid = LoginInfoModel.CurrentUser.LoginOrgGuid }; try { - var strJson = await UtilityHelper.HttpPostAsync("", + var strJson = UtilityHelper.HttpPost("", "User/GetUserLoginInfo", JsonConvert.SerializeObject(_obj)); + Size _size; string _caption; Color _color; Padding _pad; + (_size, _caption, _color, _pad) = Gs.DevApp.ToolBox.UtilityHelper.getLoading(); + DevExpress.Utils.WaitDialogForm wdf = new DevExpress.Utils.WaitDialogForm("鍔犺浇杩涘害:", _caption, _size); + wdf.BackColor = _color; + wdf.Padding = _pad; var _job = JObject.Parse(strJson); var rtnCode = _job["rtnCode"].ToString(); - _loading.Stop(); if (int.Parse(rtnCode) > 0) { acrd.Clear(); @@ -138,6 +204,7 @@ int gdx = 0, idx = 0; foreach (var _dy in drGrp) { + wdf.SetCaption("鍔犺浇杩涘害:" + _dy["name"].ToString()); var _grp = acrd.AddGroup(); _grp.ImageOptions.Image = UtilityHelper.GetImgFromResource( @@ -153,14 +220,15 @@ foreach (var _dy2 in drItem) { var _itm = acrd.AddItem(); + _itm.Appearance.Hovered.Options.UseFont = true; + _itm.Appearance.Normal.Options.UseFont = true; _itm.ImageOptions.Image = UtilityHelper.GetImgFromResource( _dy2["icon"].ToString(), 2); _itm.Name = _dy2["guid"].ToString(); _itm.Style = ElementStyle.Item; _itm.Text = _dy2["name"].ToString(); - _itm.Appearance.Normal.Font = - new Font("Tahoma", 10F); + wdf.SetCaption("鍔犺浇杩涘害:" + _dy2["name"].ToString()); _itm.Tag = _dy2["formPath"].ToString(); //瀛樿矾寰勶紝绫诲悕 _itm.Click += _grp_Click; _grp.Elements.Add(_itm); @@ -183,13 +251,14 @@ { MsgHelper.ShowError("鎻愮ず锛氬垵濮嬪寲澶辫触锛岃鑱旂郴绠$悊鍛橈紒"); } + wdf.SetCaption("鍔犺浇杩涘害锛�90/100锛�"); + wdf.Close(); } catch (Exception ex) { - _loading.Stop(); + MsgHelper.ShowError("鎻愮ず锛�" + ex.Message); } - } /// <summary> @@ -215,18 +284,22 @@ /// <param name="e"></param> private void Tab_CloseButtonClick(object sender, EventArgs e) { - RemoveTabPage(tab, 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> + /// <param name="newFormName"></param> + /// <param name="imgIcon">褰撳墠閫夐」鍗′腑鐨勬柊绐椾綋璺緞锛岀被鍚�</param> + /// <param name="InitializeVal">鍒濆鍊硷紝鐢ㄤ簬瀛愮獥浣撲腑璋冪敤鐖剁獥浣撶殑鍊�</param> public void AddTabpage(XtraTabControl tabControl, string tabPageName, - string tabText, string newFormName, Image imgIcon) + string tabText, string newFormName, Image imgIcon, string InitializeVal = "") { if (IsTabpageExsit(tabControl, tabPageName)) return; var newPage = new XtraTabPage(); @@ -235,7 +308,7 @@ newPage.Tooltip = newPage.Name; newPage.Appearance.Header.Font = tab.Appearance.Font; newPage.ImageOptions.Image = imgIcon; - var fm = AddNewForm(newFormName); + var fm = AddNewForm(newFormName, InitializeVal); if (fm != null) { newPage.Controls.Add(fm); @@ -251,24 +324,33 @@ /// <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) { MsgHelper.Warning("璇疯嚦灏戜繚鐣欎竴涓姛鑳斤紒"); return; } - - var args = (ClosePageButtonEventArgs)e; - var name = args.Page.Tooltip; foreach (XtraTabPage item in tabControl.TabPages) + { if (item.Name == name) { + //鍚庢潵鍔犱笂锛屼负浜嗛噴鏀剧獥浣撹祫婧恇eg + //foreach (Control control in item.Controls) + //{ + // if (control is Form) + // { + // Form myForm = control as Form; + // myForm.Invoke((MethodInvoker)delegate { myForm.Dispose(); }); // 纭繚 UI 绾跨▼瀹夊叏鍦伴噴鏀捐祫婧� + // } + //} + //鍚庢潵鍔犱笂锛屼负浜嗛噴鏀剧獥浣撹祫婧恊nd tabControl.TabPages.Remove(item); item.Dispose(); TabPageDic.Remove(name); return; } + } } /// <summary> @@ -294,7 +376,7 @@ /// 鍦ㄩ�夐」鍗′腑鐢熸垚绐椾綋 /// </summary> /// <param name="form">绐椾綋鍚嶇О</param> - private Form AddNewForm(string formName) + private Form AddNewForm(string formName, string InitializeVal) { try { @@ -305,22 +387,25 @@ MsgHelper.ShowError("璇锋鏌ユ槸鍚﹀紑閫氫簡璇ユā鍧楋紒"); return null; } - newForm.FormBorderStyle = FormBorderStyle.None; newForm.TopLevel = false; newForm.ControlBox = false; newForm.Dock = DockStyle.Fill; newForm.Visible = true; + shiXian(newForm, formName, InitializeVal); return newForm; } catch (Exception) { MsgHelper.ShowError("璇锋鏌ユ槸鍚﹀紑閫氫簡璇ユā鍧楋紒"); } - return null; } + /// <summary> + /// 鐢ㄦ埛閫�鍑� + /// </summary> + /// <returns></returns> private int _userOut() { var _obj = new @@ -341,7 +426,82 @@ { DialogResult = DialogResult.Cancel; MsgHelper.Warning("鎻愮ず锛�" + ex.Message); - return -1; + return 1; + } + } + + #region 瀹炵幇瀛愮獥浣撶殑濮旀墭锛屼富瑕佺敤浜庡瓙椤甸潰涓闂埗椤甸潰鏂规硶 + private void UpdateParent_OnChange(object sender, UpdateParentEventArgs e) + { + List<string> _val = e.StringList; + string _formName = _val[0];//绫诲悕 + string _parm1 = _val[1]; + var _obj = new + { + guid = _formName //涓诲缓 + }; + try + { + var strJson = UtilityHelper.HttpPost("", "MenuAction/GetModelByNameSpace", + JsonConvert.SerializeObject(_obj)); + var _rtn = UtilityHelper.ReturnToDynamic(strJson); + if (_rtn.rtnCode > 0) + { + var dy = _rtn.rtnData; + string tabPageName = dy.guid.ToString() + "_page"; + string tabText = dy.name.ToString(); //褰撳墠閫夐」鍗¢〉Text鏍囬 + string newFormName = dy.formPath.ToString(); //瀛樿矾寰勶紝绫诲悕 + Image imgIcon = UtilityHelper.GetImgFromResource(dy.icon.ToString(), 2); + //鍏堝叧闂� + RemoveTabPage(tab, tabPageName); + AddTabpage(tab, tabPageName, tabText, newFormName, imgIcon, _parm1); + } + } + catch (Exception ex) + { + MsgHelper.ShowError("鎻愮ず锛�" + ex.Message); + } + } + + private void shiXian(Form newForm, string formName, string InitializeVal) + { + EventInfo evt = newForm.GetType().GetEvent("ToUpdateParent", + BindingFlags.NonPublic | BindingFlags.Instance + | BindingFlags.Public + ); + if (evt != null) + evt.AddEventHandler(newForm, new EventHandler<UpdateParentEventArgs>(UpdateParent_OnChange)); + if (!string.IsNullOrEmpty(InitializeVal)) + { + Assembly assembly = Assembly.GetExecutingAssembly(); + Type type = assembly.GetType(formName); + MethodInfo method = type.GetMethod("Initialize"); // 鑾峰彇Initialize鏂规硶鐨勪俊鎭� + if (method != null) + method.Invoke(newForm, new object[] { InitializeVal }); // 璋冪敤Initialize鏂规硶骞朵紶閫掑弬鏁� + } + } + #endregion + + private void GetOrg() + { + string userGuid = LoginInfoModel.CurrentUser.LoginUserGuid; + var pgq = new PageQueryModel(1, 999999, "FID", "asc", userGuid, " and IS_STATUS=1"); + var json = JsonConvert.SerializeObject(pgq); + try + { + var strReturn = UtilityHelper.HttpPost("", "Organization/GetListPage", json); + var _rtn = UtilityHelper.ReturnToTablePage(strReturn); + var dt = _rtn.rtnData.list; + repositoryItemCheckedComboBoxEdit1.DataSource = dt; + repositoryItemCheckedComboBoxEdit1.DisplayMember = "name"; + repositoryItemCheckedComboBoxEdit1.ValueMember = "fid"; + var _obj = UtilityHelper.ReturnToDynamic(strReturn); + barOrg.EditValue = _obj.rtnData.extendText; + OldorgFids = _obj.rtnData.extendText; + } + catch (Exception ex) + { + MsgHelper.Warning("鎻愮ず锛�" + ex.Message); } } } -- Gitblit v1.9.3