From b084bd77d01a94c8f0a2d20c86a1f45ba7c8a23c Mon Sep 17 00:00:00 2001 From: lu <99954486@qq.com> Date: 星期六, 19 四月 2025 14:08:05 +0800 Subject: [PATCH] 页面跳转 --- DevApp/Gs.DevApp/DevFrm/FrmMain.cs | 487 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 487 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..bbcea10 --- /dev/null +++ b/DevApp/Gs.DevApp/DevFrm/FrmMain.cs @@ -0,0 +1,487 @@ +锘縰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.Windows.Forms; + +namespace Gs.DevApp.DevFrm +{ + public partial class FrmMain : FluentDesignForm + { + private static readonly Dictionary<string, XtraTabPage> TabPageDic = + new Dictionary<string, XtraTabPage>(); + private string OldorgFids = ""; + 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) + { + } + } + }; + 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); + } + }; + barMenu.ItemClick += (s, e) => + { + Gs.DevApp.DevFrm.User.SysMenu frm = new SysMenu(); + frm.ShowDialog(); + }; + // tab.ContextMenuStrip = cms1; + } + + private void Tab_MouseDown(object sender, MouseEventArgs e) + { + if (e.Button == MouseButtons.Right) + { + cms1.Show(tab, e.Location); + } + } + + 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, + }; + try + { + 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(); + 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.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(); + wdf.SetCaption("鍔犺浇杩涘害:" + _dy2["name"].ToString()); + _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,string InitializeVal="") + { + 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, InitializeVal); + 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,string InitializeVal) + { + 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; + //瀹炵幇瀛愮獥浣撶殑濮旀墭beg + 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鏂规硶骞朵紶閫掑弬鏁� + } + //瀹炵幇瀛愮獥浣撶殑濮旀墭end + return newForm; + } + catch (Exception) + { + MsgHelper.ShowError("璇锋鏌ユ槸鍚﹀紑閫氫簡璇ユā鍧楋紒"); + } + + return null; + } + //瀹炵幇瀛愮獥浣撶殑濮旀墭beg + 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); + AddTabpage(tab, tabPageName, tabText,newFormName, imgIcon, _parm1); + } + } + catch (Exception ex) + { + MsgHelper.Warning("鎻愮ず锛�" + ex.Message); + } + } + //瀹炵幇瀛愮獥浣撶殑濮旀墭end + 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; + } + } + 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); + } + } + } +} \ No newline at end of file -- Gitblit v1.9.3