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; using 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; namespace Gs.DevApp.DevFrm { public partial class FrmMain : FluentDesignForm { private static readonly Dictionary TabPageDic = new Dictionary(); 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; //取消。返回窗体 } } /// /// 退出 /// /// /// private void BarExit_ItemClick(object sender, ItemClickEventArgs e) { if (MsgHelper.AskQuestion("确定要退出系统吗?")) { var i = _userOut(); if (i > 0) { FormClosing -= FrmMain_FormClosing; Application.Exit(); } } } /// /// 设置用户密码 /// /// /// private void BarPwd_ItemClick(object sender, ItemClickEventArgs e) { var frm = new UserSetPwd(LoginInfoModel.CurrentUser.LoginUserGuid); frm.ShowDialog(); } /// /// 重新加载系统 /// /// /// 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( 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); } } /// /// 左侧菜单点击 /// /// /// 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); } /// /// 关闭选项卡 /// /// /// private void Tab_CloseButtonClick(object sender, EventArgs e) { var args = (ClosePageButtonEventArgs)e; var name = args.Page.Tooltip; RemoveTabPage(tab, name); } /// /// 新增选项卡页 /// /// 选项卡控件 /// 当期选项卡页name名称 /// 当前选项卡页Text标题 /// 当前选项卡中的新窗体路径,类名 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; } } /// /// 移除选项卡页 /// /// /// /// 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; } } /// /// 判断选项卡是否已经存在 /// /// 选项卡控件 /// 选项卡名称 /// private bool IsTabpageExsit(XtraTabControl tabControl, string tabPageName) { foreach (var item in TabPageDic) if (item.Key == tabPageName) { tabControl.SelectedTabPage = item.Value; return true; } return false; } /// /// 在选项卡中生成窗体 /// /// 窗体名称 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; } } 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); } } } }