WinFormTools/WinformGeneralDeveloperFrame/MainForm.cs

134 lines
5.0 KiB
C#

using DevExpress.XtraBars.Helpers;
using DevExpress.XtraNavBar;
using MES;
using MES.Entity;
using System;
using System.Collections.Generic;
using System.Data;
using System.Diagnostics;
using System.Linq;
using System.Threading;
using System.Windows.Forms;
using DevExpress.XtraSplashScreen;
using WinformGeneralDeveloperFrame.Commons;
using Login;
namespace WinformGeneralDeveloperFrame
{
public partial class MainForm : DevExpress.XtraBars.Ribbon.RibbonForm
{
public MainForm()
{
InitializeComponent();
SplashScreenManager.ShowForm(this, typeof(LoadForm), true, true, false);
for (int i = 1; i <= 100; i++)
{
SplashScreenManager.Default.SendCommand(LoadForm.SplashScreenCommand.SetProgress, i);
SplashScreenManager.Default.SendCommand(LoadForm.SplashScreenCommand.Command2, "正在加载.." + i+"%");
//To process commands, override the SplashScreen.ProcessCommand method.
Thread.Sleep(new Random().Next(1,20));
}
SplashScreenManager.CloseForm(false);
}
private void InitData()
{
using (var db=new MESDB())
{
AppInfo.FunctionList = db.Database.SqlQuery<string>(string.Format(@"SELECT a.functionCode
FROM[winformdevfarme].[dbo].[sysFunction] a
left join[winformdevfarme].[dbo].[sysRoleFunction] b on a.id = b.functionId
left join[winformdevfarme].[dbo].[sysUserRole] c on b.roleId = c.roleId
left join[winformdevfarme].[dbo].[sysUser] d on d.id = c.userId
where d.account = '{0}'",AppInfo.LoginUserInfo.account)).ToListAsync().Result;
}
}
private void ribbonControl1_Click(object sender, EventArgs e)
{
}
private void MainForm_Load(object sender, EventArgs e)
{
SkinHelper.InitSkinGallery(ribbonGalleryBarItem1);
Init();
barUserName.Caption = $"用户名:{AppInfo.LoginUserInfo.username}";
}
private void timer1_Tick(object sender, EventArgs e)
{
bsi_Date.Caption = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
}
private void navBarItem1_LinkClicked(object sender, NavBarLinkEventArgs e)
{
NavBarItem navBarItem =sender as NavBarItem;
ChildWinManagement.LoadShowForm(this, typeof(FrmShowForm), navBarItem.Caption,1);
}
private void Init()
{
InitData();
NarBarInit();
}
private void NarBarInit()
{
navBarControl1.Items.Clear();
List<sysMenuInfo> menusList = new List<sysMenuInfo>();
using (var db = new MESDB())
{
menusList=db.sysMenuInfo.Where(p=>p.isEnabled).ToList();
}
foreach (var item in menusList)
{
if (item.pid == 0&&AppInfo.FunctionList.Contains(item.functionCode))
{
NavBarGroup gNavBarGroup = new NavBarGroup(item.name);
foreach (var itemInfo in menusList)
{
if (itemInfo.pid == item.id && AppInfo.FunctionList.Contains(itemInfo.functionCode))
{
NavBarItem navBarItem = new NavBarItem(itemInfo.name);
navBarItem.LinkClicked += (sender, args) =>
{
NavBarItem nav = sender as NavBarItem;
SplashScreenManager.ShowForm(typeof(frmLoading));
ChildWinManagement.LoadShowForm(this, typeof(FrmShowForm), nav.Caption, itemInfo.id);
SplashScreenManager.CloseForm();
};
NavBarItemLink navBarItemLink = new NavBarItemLink(navBarItem);
gNavBarGroup.ItemLinks.Add(navBarItemLink);
}
}
navBarControl1.Groups.Add(gNavBarGroup);
}
}
}
private void barButtonItem1_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
{
//使用QQ开放平台的发邮件界面
string mailUrl = string.Format("http://mail.qq.com/cgi-bin/qm_share?t=qm_mailme&email=648428741@qq.com");
Process.Start(mailUrl);
}
private void navBarControl1_Click(object sender, EventArgs e)
{
}
private void barButtonItem3_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
{
if ("您确定要注销登录吗?".ShowYesNoAndTips() == DialogResult.Yes)
{
Application.Exit();
System.Diagnostics.Process.Start(Application.StartupPath+ "\\WinformGeneralDeveloperFrame.Start.exe");
}
}
}
}