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>();
|
|
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();
|
}
|
|
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 async 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("",
|
"User/GetUserLoginInfo", JsonConvert.SerializeObject(_obj));
|
var _job = JObject.Parse(strJson);
|
var rtnCode = _job["rtnCode"].ToString();
|
_loading.Stop();
|
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)
|
{
|
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();
|
_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("提示:初始化失败,请联系管理员!");
|
}
|
}
|
catch (Exception ex)
|
{
|
_loading.Stop();
|
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)
|
{
|
RemoveTabPage(tab, e);
|
}
|
|
/// <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, EventArgs e)
|
{
|
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)
|
{
|
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;
|
}
|
}
|
}
|
}
|