From ec02022018c44e794fa53e40daa96321daaae4fc Mon Sep 17 00:00:00 2001
From: lu <99954486@qq.com>
Date: 星期一, 02 六月 2025 15:21:30 +0800
Subject: [PATCH] 清理
---
DevApp/Gs.DevApp/DevFrm/FrmMain.cs | 452 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 452 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..b295357
--- /dev/null
+++ b/DevApp/Gs.DevApp/DevFrm/FrmMain.cs
@@ -0,0 +1,452 @@
+锘縰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
+ {
+ /// <summary>
+ /// tab涓存椂閫夐」鍗�
+ /// </summary>
+ 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;
+ 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)
+ {
+ }
+ }
+ };
+ }
+ /// <summary>
+ /// 鏄剧ず鍙抽敭鑿滃崟
+ /// </summary>
+ /// <param name="sender"></param>
+ /// <param name="e"></param>
+ private void Tab_MouseDown(object sender, MouseEventArgs e)
+ {
+ if (e.Button == MouseButtons.Right)
+ {
+ cms1.Show(tab, e.Location);
+ }
+ }
+ 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();
+ }
+ /// <summary>
+ /// 璇诲彇宸﹀垯妯″潡鑿滃崟
+ /// </summary>
+ 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>
+ /// <param name="imgIcon">褰撳墠閫夐」鍗′腑鐨勬柊绐椾綋璺緞锛岀被鍚�</param>
+ /// <param name="InitializeVal">鍒濆鍊硷紝鐢ㄤ簬瀛愮獥浣撲腑璋冪敤鐖剁獥浣撶殑鍊�</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)
+ {
+ //鍚庢潵鍔犱笂锛屼负浜嗛噴鏀剧獥浣撹祫婧恇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>
+ /// 鍒ゆ柇閫夐」鍗℃槸鍚﹀凡缁忓瓨鍦�
+ /// </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;
+ shiXian(newForm, formName, InitializeVal);
+ return newForm;
+ }
+ catch (Exception)
+ {
+ MsgHelper.ShowError("璇锋鏌ユ槸鍚﹀紑閫氫簡璇ユā鍧楋紒");
+ }
+ return null;
+ }
+
+ /// <summary>
+ /// 鐢ㄦ埛閫�鍑�
+ /// </summary>
+ /// <returns></returns>
+ 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;
+ }
+ }
+
+ #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
+
+ }
+}
\ No newline at end of file
--
Gitblit v1.9.3