@page "/home" @using MasaBlazorApp3.Util @using log4net @layout EmptyLayout 操作人:@Operator.NickName @if (Reviewer != null) { 复核人:@Reviewer.NickName } 出库 @if (!Operator.role.permissionIds.Any(id => id - 10 < 10)) {
}
入库 @if (!Operator.role.permissionIds.Any(id => id - 20 > 0 && id - 20 < 10)) {
}
归还 @if (!Operator.role.permissionIds.Any(id => id - 30 > 0 && id - 30 < 10)) {
}
库存管理 @if (!Operator.role.permissionIds.Any(id => id - 40 > 0 && id - 40 < 10)) {
}
系统设置 @if (!Operator.role.permissionIds.Any(id => id - 50 > 0 && id - 50 < 10)) {
}
@code { @inject NavigationManager na; @inject TooltipService tooltipService private List userPremissions { get; set; } = new(); @inject GlobalStateService globalStateService; Pojo.User Operator; Pojo.User Reviewer; Timer timer; @inject PortUtil _portUtil; private readonly ILog logger = LogManager.GetLogger(typeof(Home)); @inject Microsoft.Extensions.Options.IOptions setting; bool currentPage = true; protected override void OnInitialized() { Operator = globalStateService.Operator; Reviewer = globalStateService.Reviewer; // timer = new Timer(state => // { // var now = DateTime.Now; // InvokeAsync(StateHasChanged); // }, null, 0, 1000); if (setting.Value.autoOutLog > 0) { // 是否需要自动退出 var promiseUtil = new PromiseUtil(); promiseUtil.taskAsyncLoop(500, null, async (data, next, stop) => { if (globalStateService.Operator == null || !currentPage) { logger.Info($"Home页自动退出循环停止{globalStateService.Operator==null},{!currentPage}"); stop(); } else { try { //没有在操作抽屉 if (!_portUtil.Operate) { // 无人操作鼠标键盘 if ((DateTime.Now - _portUtil.dateTime).TotalSeconds > setting.Value.autoOutLog && CheckComputerFreeState.GetLastInputTime() > setting.Value.autoOutLog) { logger.Info($"设备{setting.Value.autoOutLog}内无人操作,用户【{Operator?.NickName}】自动退出登录,_portUtil.Operate:{_portUtil.Operate},totalSecond:{(DateTime.Now - _portUtil.dateTime).TotalSeconds},lastInputTime:{CheckComputerFreeState.GetLastInputTime()},autoOutLog:{setting.Value.autoOutLog}"); globalStateService.Operator = null; globalStateService.Reviewer = null; na.NavigateTo(""); stop(); } else { next(); } } else { next(); } } catch (Exception ex) { logger.Info($"检查是否自动退出循环异常:{ex.Message}"); next(); } } }); } base.OnInitialized(); } public void Dispose() { timer?.Dispose(); } void jump2Page(int parentId) { List childrenIds = Operator.role.permissionIds.Where(id => id - (parentId * 10) > 0 && id - (parentId * 10) < 10).ToList(); if(childrenIds.Count > 0) { childrenIds.Sort(); int minId = childrenIds[0]; string path = new Premission().getAdminPremission().Find(p => p.Id == parentId).Items.ToList().Find(p2 => p2.Id == minId).PremissionPath; na.NavigateTo(path); currentPage = false; } } void logout() { globalStateService.Operator = null; globalStateService.Reviewer = null; na.NavigateTo(""); } }