|
@@ -1,3 +1,6 @@
|
|
|
+using BLL;
|
|
|
+using BLL.Dto.AuthDto;
|
|
|
+using BLL.Manager;
|
|
|
using Helper;
|
|
|
using HZY.Framework.DependencyInjection;
|
|
|
using IoTClient.Clients.PLC;
|
|
@@ -12,16 +15,31 @@ using Sunny.UI;
|
|
|
|
|
|
namespace Scada
|
|
|
{
|
|
|
- public partial class FormMain : UIHeaderAsideMainFooterFrame,IScopedSelfDependency
|
|
|
+ public partial class FormMain : UIHeaderAsideMainFooterFrame, IScopedSelfDependency
|
|
|
{
|
|
|
private bool plcIsConnected;
|
|
|
private readonly ILogger<FormMain> _logger;
|
|
|
private Point mPoint;
|
|
|
private CancellationTokenSource cts = new CancellationTokenSource();
|
|
|
-
|
|
|
- public FormMain(ILogger<FormMain> logger)
|
|
|
+ private readonly UserManager _userManager;
|
|
|
+ private Dictionary<string, Control> pageControls = new Dictionary<string, Control>
|
|
|
+{
|
|
|
+ { "控制模块", Globals.ServiceProvider.GetRequiredService<PageTotalEquipmentControl>() },
|
|
|
+ { "用户模块", Globals.ServiceProvider.GetRequiredService<PageUserManage>() },
|
|
|
+ { "权限模块", Globals.ServiceProvider.GetRequiredService<PageAuthManage>() },
|
|
|
+ { "监控模块1", Globals.ServiceProvider.GetRequiredService<PageEquipmentMonitor1>() },
|
|
|
+ { "监控模块2", Globals.ServiceProvider.GetRequiredService<PageEquipmentMonitor2>() },
|
|
|
+ { "监控模块3", Globals.ServiceProvider.GetRequiredService<PageEquipmentMonitor3>() },
|
|
|
+ { "配方模块", Globals.ServiceProvider.GetRequiredService<PageRecipeManage>() },
|
|
|
+ { "日志模块", Globals.ServiceProvider.GetRequiredService<PageLogManage>() },
|
|
|
+ { "报表模块", Globals.ServiceProvider.GetRequiredService<PageReportManage>() },
|
|
|
+ { "图表模块", Globals.ServiceProvider.GetRequiredService<PageChartManage>() },
|
|
|
+ { "参数模块", Globals.ServiceProvider.GetRequiredService<PageSystemParameterSet>() }
|
|
|
+};
|
|
|
+ public FormMain(ILogger<FormMain> logger,UserManager userManager)
|
|
|
{
|
|
|
_logger = logger ?? throw new ArgumentNullException(nameof(logger));
|
|
|
+ _userManager = userManager ?? throw new ArgumentNullException(nameof(userManager));
|
|
|
InitializeComponent();
|
|
|
InitAsideUI();
|
|
|
InitHeaderUI();
|
|
@@ -79,7 +97,7 @@ namespace Scada
|
|
|
Globals.SiemensClient = new SiemensClient(Globals.CpuType, Globals.IpAddress, Globals.Port, Globals.Slot, Globals.Rack, Globals.ConnectTimeOut);
|
|
|
var connectResult = Globals.SiemensClient.Open();
|
|
|
|
|
|
- if(connectResult.IsSucceed)
|
|
|
+ if (connectResult.IsSucceed)
|
|
|
{
|
|
|
plcIsConnected = true;
|
|
|
this.led_PlcState.On = true;
|
|
@@ -282,5 +300,99 @@ namespace Scada
|
|
|
this.Location = new Point(this.Location.X + e.X - mPoint.X, this.Location.Y + e.Y - mPoint.Y);
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ private void pictureBox2_Click(object sender, EventArgs e)
|
|
|
+ {
|
|
|
+ //把Aside折叠起来
|
|
|
+ Aside.CollapseAll();
|
|
|
+ Aside.SelectFirst();
|
|
|
+
|
|
|
+ var frmLogin = Globals.ServiceProvider.GetRequiredService<FormLogin>();
|
|
|
+ frmLogin.ShowDialog();
|
|
|
+ if (frmLogin.IsLogin)
|
|
|
+ {
|
|
|
+ //更新登录用户
|
|
|
+ this.lbl_User.Text = frmLogin.UserName;
|
|
|
+ foreach (var control in pageControls.Values)
|
|
|
+ {
|
|
|
+ control.Enabled = true;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ #region 控制权限
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 侧边栏菜单折叠事件(折叠之前)
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="sender"></param>
|
|
|
+ /// <param name="e"></param>
|
|
|
+ private async void Aside_BeforeExpand(object sender, TreeViewCancelEventArgs e)
|
|
|
+ {
|
|
|
+ UINavMenu uINavMenu = sender as UINavMenu;
|
|
|
+
|
|
|
+ string moduleName = e.Node.Text;
|
|
|
+
|
|
|
+ string user = this.lbl_User.Text;
|
|
|
+ var roleRes = await _userManager.GetUserAuthAsync(new BLL.Dto.UserDto.QueryUserRoleDto() { UserName = user });
|
|
|
+
|
|
|
+ if (roleRes.Status == SystemEnums.Result.Success)
|
|
|
+ {
|
|
|
+ if (roleRes.Data[0].Role != "管理员")
|
|
|
+ {
|
|
|
+ var authRes = await _authManager.GetAuthAsync(new QueryAuthDto { Role = roleRes.Data[0].Role });
|
|
|
+ if (authRes.Status == SystemEnums.Result.Success)
|
|
|
+ {
|
|
|
+ UpdateControlAccess(moduleName, authRes.Data[0], pageControls);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ private void UpdateControlAccess(string moduleName, QueryAuthResultDto authDto, Dictionary<string, Control> pageControls)
|
|
|
+ {
|
|
|
+ switch (moduleName)
|
|
|
+ {
|
|
|
+ case "控制模块":
|
|
|
+ pageControls["控制模块"].Enabled = authDto.ControlModule;
|
|
|
+ break;
|
|
|
+
|
|
|
+ case "用户模块":
|
|
|
+ pageControls["用户模块"].Enabled = false;
|
|
|
+ pageControls["权限模块"].Enabled = false;
|
|
|
+ break;
|
|
|
+
|
|
|
+ case "监控模块":
|
|
|
+ pageControls["监控模块"].Enabled = authDto.MonitorModule;
|
|
|
+ pageControls["监控模块1"].Enabled = authDto.MonitorModule;
|
|
|
+ pageControls["监控模块2"].Enabled = authDto.MonitorModule;
|
|
|
+ break;
|
|
|
+
|
|
|
+ case "配方模块":
|
|
|
+ pageControls["配方模块"].Enabled = authDto.RecipeModule;
|
|
|
+ break;
|
|
|
+
|
|
|
+ case "日志模块":
|
|
|
+ pageControls["日志模块"].Enabled = authDto.LogModule;
|
|
|
+ break;
|
|
|
+
|
|
|
+ case "报表模块":
|
|
|
+ pageControls["报表模块"].Enabled = authDto.ReportModule;
|
|
|
+ break;
|
|
|
+
|
|
|
+ case "图表模块":
|
|
|
+ pageControls["图表模块"].Enabled = authDto.ChartModule;
|
|
|
+ break;
|
|
|
+
|
|
|
+ case "参数模块":
|
|
|
+ pageControls["参数模块"].Enabled = authDto.ParamModule;
|
|
|
+ break;
|
|
|
+
|
|
|
+ default:
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ #endregion 控制权限
|
|
|
}
|
|
|
}
|